%%
%% This is file `glossary-longextra-2021-11-22.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% glossaries-extra.dtx  (with options: `glossary-longextra-2021-11-22.sty,package')
%% 
%%  glossaries-extra.dtx
%%  Copyright 2023 Nicola Talbot
%% 
%%  This work may be distributed and/or modified under the
%%  conditions of the LaTeX Project Public License, either version 1.3
%%  of this license or (at your option) any later version.
%%  The latest version of this license is in
%%    http://www.latex-project.org/lppl.txt
%%  and version 1.3 or later is part of all distributions of LaTeX
%%  version 2005/12/01 or later.
%% 
%%  This work has the LPPL maintenance status `maintained'.
%% 
%%  The Current Maintainer of this work is Nicola Talbot.
%% 
%%  This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-abbrstyles.def, glossaries-extra-bib2gls.sty, glossaries-extra-stylemods.sty, glossary-bookindex.sty, glossary-longextra.sty, glossary-topic.sty, glossary-table.sty, example-glossaries-xr.tex, example-glossaries-acronym-desc.bib, example-glossaries-acronym.bib, example-glossaries-acronyms-lang.bib, example-glossaries-brief.bib, example-glossaries-childmultipar.bib, example-glossaries-childnoname.bib, example-glossaries-cite.bib, example-glossaries-images.bib, example-glossaries-long.bib, example-glossaries-longchild.bib, example-glossaries-multipar.bib, example-glossaries-parent.bib, example-glossaries-symbolnames.bib, example-glossaries-symbols.bib, example-glossaries-url.bib, example-glossaries-user.bib, example-glossaries-utf8.bib, example-glossaries-xr.bib, glossaries-extra-2021-11-22.sty, glossaries-extra-bib2gls-2021-11-22.sty, glossaries-extra-stylemods-2021-11-22.sty, glossary-bookindex-2021-11-22.sty, glossary-longextra-2021-11-22.sty, glossary-topic-2021-11-22.sty.
%% 
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{glossary-longextra}[2021/11/22 v1.48 (NLCT)]
\RequirePackage{glossary-longbooktabs}
\newcommand{\glslongextraNameFmt}[1]{%
 \glsentryitem{#1}\glstarget{#1}{\glossentryname{#1}}%
}
\newcommand{\glslongextraDescFmt}[1]{%
  \glossentrydesc{#1}\glspostdescription
}
\newcommand{\glslongextraSymbolFmt}[1]{\glossentrysymbol{#1}}
\newcommand{\glslongextraLocationFmt}[2]{#2}
\newcommand{\glslongextraSubNameFmt}[2]{%
 \glssubentryitem{#2}\glstarget{#2}{\strut}%
}
\newcommand{\glslongextraSubDescFmt}[2]{%
  \glslongextraDescFmt{#2}%
}
\newcommand{\glslongextraSubSymbolFmt}[2]{%
  \glslongextraSymbolFmt{#2}%
}
\newcommand{\glslongextraSubLocationFmt}[3]{#3}
\newcommand{\glslongextraNameAlign}{l}
\newcommand{\glslongextraDescAlign}{>{\raggedright}p{\glsdescwidth}}
\newcommand{\glslongextraSymbolAlign}{c}
\newcommand{\glslongextraLocationAlign}{>{\raggedright}p{\glspagelistwidth}}
\newcommand{\glslongextraGroupHeading}[2]{}
\newcommand{\glslongextraHeaderFmt}[1]{\textbf{#1}}
\newcommand{\glslongextraNameDescHeader}{%
 \glslongextraNameDescTabularHeader\endhead
 \glslongextraNameDescTabularFooter\endfoot
}
\newcommand{\glslongextraNameDescTabularHeader}{%
 \toprule
 \glslongextraHeaderFmt\entryname &
 \glslongextraHeaderFmt\descriptionname\tabularnewline
 \midrule
}
\newcommand{\glslongextraNameDescTabularFooter}{%
 \bottomrule
}
\newcommand*{\glslongextraSetWidest}[1]{%
 \def\@glslongextrawidestname{#1}%
}
\newcommand*{\@glslongextrawidestname}{\csuse{@glswidestname}}
\newcommand*{\glslongextraUpdateWidest}[1]{%
  \ifundef\@glslongextrawidestname
  {\def\@glslongextrawidestname{#1}}%
  {%
    \settowidth{\dimen@}{\@glslongextrawidestname}%
    \settowidth{\dimen@ii}{#1}%
    \ifdim\dimen@ii>\dimen@
     \def\@glslongextrawidestname{#1}%
    \fi
  }%
}
\newcommand*{\glslongextraUpdateWidestChild}[2]{}
\newcommand{\glslongextraSetDescWidth}{%
  \settowidth{\gls@tmplen}{\glslongextraHeaderFmt\entryname}%
  \settowidth{\dimen@}{\glsnamefont{\@glslongextrawidestname}}%
  \ifdim\dimen@>\gls@tmplen
   \gls@tmplen=\dimen@
  \fi
  \setlength{\glsdescwidth}{\dimexpr\linewidth-4\tabcolsep-\gls@tmplen}%
}
\newcommand{\glslongextraSymSetDescWidth}{%
  \glslongextraSetDescWidth
  \settowidth{\gls@tmplen}{\glslongextraHeaderFmt\symbolname}%
  \setlength{\glsdescwidth}{\dimexpr\glsdescwidth-2\tabcolsep-\gls@tmplen}%
}
\newcommand{\glslongextraLocSetDescWidth}{%
  \glslongextraSetDescWidth
  \setlength{\glsdescwidth}{\dimexpr\glsdescwidth-2\tabcolsep-\glspagelistwidth}%
}
\newcommand{\glslongextraSymLocSetDescWidth}{%
  \glslongextraSymSetDescWidth
  \setlength{\glsdescwidth}{\dimexpr\glsdescwidth-2\tabcolsep-\glspagelistwidth}%
}
\newif\ifGlsLongExtraUseTabular
\GlsLongExtraUseTabularfalse
\newcommand*{\glslongextraTabularVAlign}{c}
\newglossarystyle{long-name-desc}%
{%
  \ifGlsLongExtraUseTabular
   \renewenvironment{theglossary}%
    {%
      \glslongextraSetDescWidth
      \edef\@glslongextra@begintab{%
        \noexpand\begin{tabular}[\glslongextraTabularVAlign]{%
          \expandonce\glslongextraNameAlign
          \expandonce\glslongextraDescAlign}}%
      \@glslongextra@begintab
    }%
    {%
      \glslongextraNameDescTabularFooter
      \end{tabular}%
    }%
   \renewcommand*{\glossaryheader}{\glslongextraNameDescTabularHeader}%
  \else
   \renewenvironment{theglossary}%
    {%
      \glspatchLToutput
      \glslongextraSetDescWidth
      \edef\@glslongextra@begintab{%
        \noexpand\begin{longtable}{%
          \expandonce\glslongextraNameAlign
          \expandonce\glslongextraDescAlign}}%
      \@glslongextra@begintab
    }%
    {\end{longtable}}%
   \renewcommand*{\glossaryheader}{\glslongextraNameDescHeader}%
  \fi
  \renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{2}{##1}}%
  \renewcommand{\glossentry}[2]{%
    \glslongextraNameFmt{##1} &
    \glslongextraDescFmt{##1}\tabularnewline
  }%
  \renewcommand{\subglossentry}[3]{%
     \glslongextraSubNameFmt{##1}{##2}
     &
     \glslongextraSubDescFmt{##1}{##2}%
     \tabularnewline
  }%
  \ifglsnogroupskip
    \renewcommand*{\glsgroupskip}{}%
  \else
    \renewcommand*{\glsgroupskip}{\glspenaltygroupskip}%
  \fi
}
\newcommand{\glslongextraNameDescLocationHeader}{%
 \glslongextraNameDescLocationTabularHeader\endhead
 \glslongextraNameDescLocationTabularFooter\endfoot
}
\newcommand{\glslongextraNameDescLocationTabularHeader}{%
 \toprule
 \glslongextraHeaderFmt\entryname &
 \glslongextraHeaderFmt\descriptionname &
 \glslongextraHeaderFmt\pagelistname\tabularnewline
 \midrule
}
\newcommand{\glslongextraNameDescLocationTabularFooter}{%
 \bottomrule
}
\newglossarystyle{long-name-desc-loc}%
{%
  \ifGlsLongExtraUseTabular
   \renewenvironment{theglossary}%
    {%
      \glslongextraLocSetDescWidth
      \edef\@glslongextra@begintab{%
        \noexpand\begin{tabular}[\glslongextraTabularVAlign]{%
          \expandonce\glslongextraNameAlign
          \expandonce\glslongextraDescAlign
          \expandonce\glslongextraLocationAlign
      }}%
      \@glslongextra@begintab
    }%
    {%
      \glslongextraNameDescLocationTabularFooter
      \end{tabular}%
    }%
   \renewcommand*{\glossaryheader}{\glslongextraNameDescLocationTabularHeader}%
  \else
   \renewenvironment{theglossary}%
    {%
      \glspatchLToutput
      \glslongextraLocSetDescWidth
      \edef\@glslongextra@begintab{%
        \noexpand\begin{longtable}{%
          \expandonce\glslongextraNameAlign
          \expandonce\glslongextraDescAlign
          \expandonce\glslongextraLocationAlign
      }}%
      \@glslongextra@begintab
    }%
    {\end{longtable}}%
   \renewcommand*{\glossaryheader}{\glslongextraNameDescLocationHeader}%
   \fi
  \renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{3}{##1}}%
  \renewcommand{\glossentry}[2]{%
    \glslongextraNameFmt{##1} &
    \glslongextraDescFmt{##1} &
    \glslongextraLocationFmt{##1}{##2}\tabularnewline
  }%
  \renewcommand{\subglossentry}[3]{%
     \glslongextraSubNameFmt{##1}{##2}&
     \glslongextraSubDescFmt{##1}{##2}&
     \glslongextraSubLocationFmt{##1}{##2}{##3}%
     \tabularnewline
  }%
  \ifglsnogroupskip
    \renewcommand*{\glsgroupskip}{}%
  \else
    \renewcommand*{\glsgroupskip}{\glspenaltygroupskip}%
  \fi
}
\newcommand{\glslongextraDescNameHeader}{%
 \glslongextraDescNameTabularHeader\endhead
 \glslongextraDescNameTabularFooter\endfoot
}
\newcommand{\glslongextraDescNameTabularHeader}{%
 \toprule
 \glslongextraHeaderFmt\descriptionname&
 \glslongextraHeaderFmt\entryname \tabularnewline
 \midrule
}
\newcommand{\glslongextraDescNameTabularFooter}{%
 \bottomrule
}
\newglossarystyle{long-desc-name}%
{%
  \ifGlsLongExtraUseTabular
   \renewenvironment{theglossary}%
    {%
      \glslongextraSetDescWidth
      \edef\@glslongextra@begintab{%
        \noexpand\begin{tabular}[\glslongextraTabularVAlign]{%
          \expandonce\glslongextraDescAlign
          \expandonce\glslongextraNameAlign}}%
      \@glslongextra@begintab
    }%
    {%
      \glslongextraDescNameTabularFooter
      \end{tabular}%
    }%
    \renewcommand*{\glossaryheader}{\glslongextraDescNameTabularHeader}%
  \else
   \renewenvironment{theglossary}%
    {%
      \glspatchLToutput
      \glslongextraSetDescWidth
      \edef\@glslongextra@begintab{%
        \noexpand\begin{longtable}{%
          \expandonce\glslongextraDescAlign
          \expandonce\glslongextraNameAlign}}%
      \@glslongextra@begintab
    }%
    {\end{longtable}}%
    \renewcommand*{\glossaryheader}{\glslongextraDescNameHeader}%
  \fi
  \renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{2}{##1}}%
  \renewcommand{\glossentry}[2]{%
    \glslongextraDescFmt{##1} &
    \glslongextraNameFmt{##1}\tabularnewline
  }%
  \renewcommand{\subglossentry}[3]{%
     \glslongextraSubDescFmt{##1}{##2} &
     \glslongextraSubNameFmt{##1}{##2}\tabularnewline
  }%
  \ifglsnogroupskip
    \renewcommand*{\glsgroupskip}{}%
  \else
    \renewcommand*{\glsgroupskip}{\glspenaltygroupskip}%
  \fi
}
\newcommand{\glslongextraLocationDescNameHeader}{%
 \glslongextraLocationDescNameTabularHeader\endhead
 \glslongextraLocationDescNameTabularFooter\endfoot
}
\newcommand{\glslongextraLocationDescNameTabularHeader}{%
 \toprule
 \glslongextraHeaderFmt\pagelistname&
 \glslongextraHeaderFmt\descriptionname&
 \glslongextraHeaderFmt\entryname \tabularnewline
 \midrule
}
\newcommand{\glslongextraLocationDescNameTabularFooter}{%
 \bottomrule
}
\newglossarystyle{long-loc-desc-name}%
{%
  \ifGlsLongExtraUseTabular
   {%
     \glslongextraLocSetDescWidth
     \edef\@glslongextra@begintab{%
       \noexpand\begin{tabular}[\glslongextraTabularVAlign]{%
         \expandonce\glslongextraLocationAlign
         \expandonce\glslongextraDescAlign
         \expandonce\glslongextraNameAlign}}%
     \@glslongextra@begintab
   }%
   {%
     \glslongextraLocationDescNameTabularFooter
     \end{tabular}%
   }%
   \renewcommand*{\glossaryheader}{\glslongextraLocationDescNameTabularHeader}%
  \else
  \renewenvironment{theglossary}%
   {%
     \glspatchLToutput
     \glslongextraLocSetDescWidth
     \edef\@glslongextra@begintab{%
       \noexpand\begin{longtable}{%
         \expandonce\glslongextraLocationAlign
         \expandonce\glslongextraDescAlign
         \expandonce\glslongextraNameAlign}}%
     \@glslongextra@begintab
   }%
   {\end{longtable}}%
   \renewcommand*{\glossaryheader}{\glslongextraLocationDescNameHeader}%
  \fi
  \renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{3}{##1}}%
  \renewcommand{\glossentry}[2]{%
    \glslongextraLocationFmt{##1}{##2} &
    \glslongextraDescFmt{##1} &
    \glslongextraNameFmt{##1}\tabularnewline
  }%
  \renewcommand{\subglossentry}[3]{%
     \glslongextraSubLocationFmt{##1}{##2}{##3} &
     \glslongextraSubDescFmt{##1}{##2} &
     \glslongextraSubNameFmt{##1}{##2}\tabularnewline
  }%
  \ifglsnogroupskip
    \renewcommand*{\glsgroupskip}{}%
  \else
    \renewcommand*{\glsgroupskip}{\glspenaltygroupskip}%
  \fi
}
\newcommand{\glslongextraNameDescSymHeader}{%
 \glslongextraNameDescSymTabularHeader\endhead
 \glslongextraNameDescSymTabularFooter\endfoot
}
\newcommand{\glslongextraNameDescSymTabularHeader}{%
 \toprule
 \glslongextraHeaderFmt\entryname &
 \glslongextraHeaderFmt\descriptionname &
 \glslongextraHeaderFmt\symbolname\tabularnewline
 \midrule
}
\newcommand{\glslongextraNameDescSymTabularFooter}{%
 \bottomrule
}
\newglossarystyle{long-name-desc-sym}%
{%
  \ifGlsLongExtraUseTabular
   \renewenvironment{theglossary}%
    {%
      \glslongextraSymSetDescWidth
      \edef\@glslongextra@begintab{%
        \noexpand\begin{tabular}[\glslongextraTabularVAlign]{%
          \expandonce\glslongextraNameAlign
          \expandonce\glslongextraDescAlign
          \expandonce\glslongextraSymbolAlign
        }}%
      \@glslongextra@begintab
    }%
    {%
      \glslongextraNameDescSymTabularFooter
      \end{tabular}%
    }%
   \renewcommand*{\glossaryheader}{\glslongextraNameDescSymTabularHeader}%
  \else
   \renewenvironment{theglossary}%
    {%
      \glspatchLToutput
      \glslongextraSymSetDescWidth
      \edef\@glslongextra@begintab{%
        \noexpand\begin{longtable}{%
          \expandonce\glslongextraNameAlign
          \expandonce\glslongextraDescAlign
          \expandonce\glslongextraSymbolAlign
        }}%
      \@glslongextra@begintab
    }%
    {\end{longtable}}%
   \renewcommand*{\glossaryheader}{\glslongextraNameDescSymHeader}%
  \fi
  \renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{3}{##1}}%
  \renewcommand{\glossentry}[2]{%
    \glslongextraNameFmt{##1} &
    \glslongextraDescFmt{##1} &
    \glslongextraSymbolFmt{##1}\tabularnewline
  }%
  \renewcommand{\subglossentry}[3]{%
     \glslongextraSubNameFmt{##1}{##2} &
     \glslongextraSubDescFmt{##1}{##2} &
     \glslongextraSubSymbolFmt{##1}{##2}%
     \tabularnewline
  }%
  \ifglsnogroupskip
    \renewcommand*{\glsgroupskip}{}%
  \else
    \renewcommand*{\glsgroupskip}{\glspenaltygroupskip}%
  \fi
}
\newcommand{\glslongextraNameDescSymLocationHeader}{%
 \glslongextraNameDescSymLocationTabularHeader\endhead
 \glslongextraNameDescSymLocationTabularFooter\endfoot
}
\newcommand{\glslongextraNameDescSymLocationTabularHeader}{%
 \toprule
 \glslongextraHeaderFmt\entryname &
 \glslongextraHeaderFmt\descriptionname &
 \glslongextraHeaderFmt\symbolname &
 \glslongextraHeaderFmt\pagelistname\tabularnewline
 \midrule
}
\newcommand{\glslongextraNameDescSymLocationTabularFooter}{%
 \bottomrule
}
\newglossarystyle{long-name-desc-sym-loc}%
{%
  \ifGlsLongExtraUseTabular
   \renewenvironment{theglossary}%
    {%
      \glslongextraSymLocSetDescWidth
      \edef\@glslongextra@begintab{%
        \noexpand\begin{tabular}[\glslongextraTabularVAlign]{%
          \expandonce\glslongextraNameAlign
          \expandonce\glslongextraDescAlign
          \expandonce\glslongextraSymbolAlign
          \expandonce\glslongextraLocationAlign
        }}%
      \@glslongextra@begintab
    }%
    {%
      \glslongextraNameDescSymLocationTabularFooter
      \end{tabular}%
    }%
   \renewcommand*{\glossaryheader}{\glslongextraNameDescSymLocationTabularHeader}%
  \else
   \renewenvironment{theglossary}%
    {%
      \glspatchLToutput
      \glslongextraSymLocSetDescWidth
      \edef\@glslongextra@begintab{%
        \noexpand\begin{longtable}{%
          \expandonce\glslongextraNameAlign
          \expandonce\glslongextraDescAlign
          \expandonce\glslongextraSymbolAlign
          \expandonce\glslongextraLocationAlign
        }}%
      \@glslongextra@begintab
    }%
    {\end{longtable}}%
   \renewcommand*{\glossaryheader}{\glslongextraNameDescSymLocationHeader}%
  \fi
  \renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{4}{##1}}%
  \renewcommand{\glossentry}[2]{%
    \glslongextraNameFmt{##1} &
    \glslongextraDescFmt{##1} &
    \glslongextraSymbolFmt{##1}&
    \glslongextraLocationFmt{##1}{##2}\tabularnewline
  }%
  \renewcommand{\subglossentry}[3]{%
     \glslongextraSubNameFmt{##1}{##2} &
     \glslongextraSubDescFmt{##1}{##2} &
     \glslongextraSubSymbolFmt{##1}{##2}&
     \glslongextraSubLocationFmt{##1}{##2}{##3}%
     \tabularnewline
  }%
  \ifglsnogroupskip
    \renewcommand*{\glsgroupskip}{}%
  \else
    \renewcommand*{\glsgroupskip}{\glspenaltygroupskip}%
  \fi
}
\newcommand{\glslongextraNameSymDescHeader}{%
 \glslongextraNameSymDescTabularHeader\endhead
 \glslongextraNameSymDescTabularFooter\endfoot
}
\newcommand{\glslongextraNameSymDescTabularHeader}{%
 \toprule
 \glslongextraHeaderFmt\entryname &
 \glslongextraHeaderFmt\symbolname &
 \glslongextraHeaderFmt\descriptionname\tabularnewline
 \midrule
}
\newcommand{\glslongextraNameSymDescTabularFooter}{%
 \bottomrule
}
\newglossarystyle{long-name-sym-desc}%
{%
  \ifGlsLongExtraUseTabular
   \renewenvironment{theglossary}%
    {%
      \glslongextraSymSetDescWidth
      \edef\@glslongextra@begintab{%
        \noexpand\begin{tabular}[\glslongextraTabularVAlign]{%
          \expandonce\glslongextraNameAlign
          \expandonce\glslongextraSymbolAlign
          \expandonce\glslongextraDescAlign
        }}%
      \@glslongextra@begintab
    }%
    {%
      \glslongextraNameSymDescTabularFooter
      \end{tabular}%
    }%
   \renewcommand*{\glossaryheader}{\glslongextraNameSymDescTabularHeader}%
  \else
   \renewenvironment{theglossary}%
    {%
      \glspatchLToutput
      \glslongextraSymSetDescWidth
      \edef\@glslongextra@begintab{%
        \noexpand\begin{longtable}{%
          \expandonce\glslongextraNameAlign
          \expandonce\glslongextraSymbolAlign
          \expandonce\glslongextraDescAlign
        }}%
      \@glslongextra@begintab
    }%
    {\end{longtable}}%
   \renewcommand*{\glossaryheader}{\glslongextraNameSymDescHeader}%
  \fi
  \renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{3}{##1}}%
  \renewcommand{\glossentry}[2]{%
    \glslongextraNameFmt{##1} &
    \glslongextraSymbolFmt{##1} &
    \glslongextraDescFmt{##1}\tabularnewline
  }%
  \renewcommand{\subglossentry}[3]{%
     \glslongextraSubNameFmt{##1}{##2} &
     \glslongextraSubSymbolFmt{##1}{##2} &
     \glslongextraSubDescFmt{##1}{##2}\tabularnewline
  }%
  \ifglsnogroupskip
    \renewcommand*{\glsgroupskip}{}%
  \else
    \renewcommand*{\glsgroupskip}{\glspenaltygroupskip}%
  \fi
}
\newcommand{\glslongextraNameSymDescLocationHeader}{%
 \glslongextraNameSymDescLocationTabularHeader\endhead
 \glslongextraNameSymDescLocationTabularFooter\endfoot
}
\newcommand{\glslongextraNameSymDescLocationTabularHeader}{%
 \toprule
 \glslongextraHeaderFmt\entryname &
 \glslongextraHeaderFmt\symbolname &
 \glslongextraHeaderFmt\descriptionname &
 \glslongextraHeaderFmt\pagelistname\tabularnewline
 \midrule
}
\newcommand{\glslongextraNameSymDescLocationTabularFooter}{%
 \bottomrule
}
\newglossarystyle{long-name-sym-desc-loc}%
{%
  \ifGlsLongExtraUseTabular
    \renewenvironment{theglossary}%
     {%
       \glslongextraSymLocSetDescWidth
       \edef\@glslongextra@begintab{%
         \noexpand\begin{tabular}[\glslongextraTabularVAlign]{%
           \expandonce\glslongextraNameAlign
           \expandonce\glslongextraSymbolAlign
           \expandonce\glslongextraDescAlign
           \expandonce\glslongextraLocationAlign
         }}%
       \@glslongextra@begintab
     }%
     {%
       \glslongextraNameSymDescLocationTabularFooter
       \end{tabular}%
     }%
    \renewcommand*{\glossaryheader}{\glslongextraNameSymDescLocationTabularHeader}%
  \else
    \renewenvironment{theglossary}%
     {%
       \glspatchLToutput
       \glslongextraSymLocSetDescWidth
       \edef\@glslongextra@begintab{%
         \noexpand\begin{longtable}{%
           \expandonce\glslongextraNameAlign
           \expandonce\glslongextraSymbolAlign
           \expandonce\glslongextraDescAlign
           \expandonce\glslongextraLocationAlign
         }}%
       \@glslongextra@begintab
     }%
     {\end{longtable}}%
    \renewcommand*{\glossaryheader}{\glslongextraNameSymDescLocationHeader}%
  \fi
  \renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{4}{##1}}%
  \renewcommand{\glossentry}[2]{%
    \glslongextraNameFmt{##1} &
    \glslongextraSymbolFmt{##1} &
    \glslongextraDescFmt{##1} &
    \glslongextraLocationFmt{##1}{##2}\tabularnewline
  }%
  \renewcommand{\subglossentry}[3]{%
     \glslongextraSubNameFmt{##1}{##2} &
     \glslongextraSubSymbolFmt{##1}{##2} &
     \glslongextraSubDescFmt{##1}{##2} &
     \glslongextraSubLocationFmt{##1}{##2}{##3}\tabularnewline
  }%
  \ifglsnogroupskip
    \renewcommand*{\glsgroupskip}{}%
  \else
    \renewcommand*{\glsgroupskip}{\glspenaltygroupskip}%
  \fi
}
\newcommand{\glslongextraSymDescNameHeader}{%
 \glslongextraSymDescNameTabularHeader\endhead
 \glslongextraSymDescNameTabularFooter\endfoot
}
\newcommand{\glslongextraSymDescNameTabularHeader}{%
 \toprule
 \glslongextraHeaderFmt\symbolname &
 \glslongextraHeaderFmt\descriptionname &
 \glslongextraHeaderFmt\entryname\tabularnewline
 \midrule
}
\newcommand{\glslongextraSymDescNameTabularFooter}{%
 \bottomrule
}
\newglossarystyle{long-sym-desc-name}%
{%
  \ifGlsLongExtraUseTabular
   \renewenvironment{theglossary}%
    {%
      \glslongextraSymSetDescWidth
      \edef\@glslongextra@begintab{%
        \noexpand\begin{tabular}[\glslongextraTabularVAlign]{%
          \expandonce\glslongextraSymbolAlign
          \expandonce\glslongextraDescAlign
          \expandonce\glslongextraNameAlign
        }}%
      \@glslongextra@begintab
    }%
    {%
      \glslongextraSymDescNameTabularFooter
      \end{tabular}%
    }%
   \renewcommand*{\glossaryheader}{\glslongextraSymDescNameTabularHeader}%
  \else
   \renewenvironment{theglossary}%
    {%
      \glspatchLToutput
      \glslongextraSymSetDescWidth
      \edef\@glslongextra@begintab{%
        \noexpand\begin{longtable}{%
          \expandonce\glslongextraSymbolAlign
          \expandonce\glslongextraDescAlign
          \expandonce\glslongextraNameAlign
        }}%
      \@glslongextra@begintab
    }%
    {\end{longtable}}%
   \renewcommand*{\glossaryheader}{\glslongextraSymDescNameHeader}%
  \fi
  \renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{3}{##1}}%
  \renewcommand{\glossentry}[2]{%
    \glslongextraSymbolFmt{##1} &
    \glslongextraDescFmt{##1} &
    \glslongextraNameFmt{##1}\tabularnewline
  }%
  \renewcommand{\subglossentry}[3]{%
     \glslongextraSubSymbolFmt{##1}{##2} &
     \glslongextraSubDescFmt{##1}{##2} &
     \glslongextraSubNameFmt{##1}{##2}\tabularnewline
  }%
  \ifglsnogroupskip
    \renewcommand*{\glsgroupskip}{}%
  \else
    \renewcommand*{\glsgroupskip}{\glspenaltygroupskip}%
  \fi
}
\newcommand{\glslongextraLocationSymDescNameHeader}{%
 \glslongextraLocationSymDescNameTabularHeader\endhead
 \glslongextraLocationSymDescNameTabularFooter\endfoot
}
\newcommand{\glslongextraLocationSymDescNameTabularHeader}{%
 \toprule
 \glslongextraHeaderFmt\pagelistname &
 \glslongextraHeaderFmt\symbolname &
 \glslongextraHeaderFmt\descriptionname &
 \glslongextraHeaderFmt\entryname\tabularnewline
 \midrule
}
\newcommand{\glslongextraLocationSymDescNameTabularFooter}{%
 \bottomrule
}
\newglossarystyle{long-loc-sym-desc-name}%
{%
  \ifGlsLongExtraUseTabular
   \renewenvironment{theglossary}%
    {%
      \glslongextraSymLocSetDescWidth
      \edef\@glslongextra@begintab{%
        \noexpand\begin{tabular}[\glslongextraTabularVAlign]{%
          \expandonce\glslongextraLocationAlign
          \expandonce\glslongextraSymbolAlign
          \expandonce\glslongextraDescAlign
          \expandonce\glslongextraNameAlign
        }}%
      \@glslongextra@begintab
    }%
    {%
      \glslongextraLocationSymDescNameTabularFooter
      \end{tabular}%
    }%
   \renewcommand*{\glossaryheader}{\glslongextraLocationSymDescNameTabularHeader}%
  \else
   \renewenvironment{theglossary}%
    {%
      \glspatchLToutput
      \glslongextraSymLocSetDescWidth
      \edef\@glslongextra@begintab{%
        \noexpand\begin{longtable}{%
          \expandonce\glslongextraLocationAlign
          \expandonce\glslongextraSymbolAlign
          \expandonce\glslongextraDescAlign
          \expandonce\glslongextraNameAlign
        }}%
      \@glslongextra@begintab
    }%
    {\end{longtable}}%
   \renewcommand*{\glossaryheader}{\glslongextraLocationSymDescNameHeader}%
  \fi
  \renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{4}{##1}}%
  \renewcommand{\glossentry}[2]{%
    \glslongextraLocationFmt{##1}{##2} &
    \glslongextraSymbolFmt{##1} &
    \glslongextraDescFmt{##1} &
    \glslongextraNameFmt{##1}\tabularnewline
  }%
  \renewcommand{\subglossentry}[3]{%
     \glslongextraSubLocationFmt{##1}{##2}{##3} &
     \glslongextraSubSymbolFmt{##1}{##2} &
     \glslongextraSubDescFmt{##1}{##2} &
     \glslongextraSubNameFmt{##1}{##2}\tabularnewline
  }%
  \ifglsnogroupskip
    \renewcommand*{\glsgroupskip}{}%
  \else
    \renewcommand*{\glsgroupskip}{\glspenaltygroupskip}%
  \fi
}
\newcommand{\glslongextraDescSymNameHeader}{%
 \glslongextraDescSymNameTabularHeader\endhead
 \glslongextraDescSymNameTabularFooter\endfoot
}
\newcommand{\glslongextraDescSymNameTabularHeader}{%
 \toprule
 \glslongextraHeaderFmt\descriptionname &
 \glslongextraHeaderFmt\symbolname &
 \glslongextraHeaderFmt\entryname\tabularnewline
 \midrule
}
\newcommand{\glslongextraDescSymNameTabularFooter}{%
 \bottomrule
}
\newglossarystyle{long-desc-sym-name}%
{%
  \ifGlsLongExtraUseTabular
   \renewenvironment{theglossary}%
    {%
      \glslongextraSymSetDescWidth
      \edef\@glslongextra@begintab{%
        \noexpand\begin{tabular}[\glslongextraTabularVAlign]{%
          \expandonce\glslongextraDescAlign
          \expandonce\glslongextraSymbolAlign
          \expandonce\glslongextraNameAlign
        }}%
      \@glslongextra@begintab
    }%
    {%
      \glslongextraDescSymNameTabularFooter
      \end{tabular}%
    }%
   \renewcommand*{\glossaryheader}{\glslongextraDescSymNameTabularHeader}%
  \else
   \renewenvironment{theglossary}%
    {%
      \glspatchLToutput
      \glslongextraSymSetDescWidth
      \edef\@glslongextra@begintab{%
        \noexpand\begin{longtable}{%
          \expandonce\glslongextraDescAlign
          \expandonce\glslongextraSymbolAlign
          \expandonce\glslongextraNameAlign
        }}%
      \@glslongextra@begintab
    }%
    {\end{longtable}}%
   \renewcommand*{\glossaryheader}{\glslongextraDescSymNameHeader}%
  \fi
  \renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{3}{##1}}%
  \renewcommand{\glossentry}[2]{%
    \glslongextraDescFmt{##1} &
    \glslongextraSymbolFmt{##1} &
    \glslongextraNameFmt{##1}\tabularnewline
  }%
  \renewcommand{\subglossentry}[3]{%
     \glslongextraSubDescFmt{##1}{##2} &
     \glslongextraSubSymbolFmt{##1}{##2} &
     \glslongextraSubNameFmt{##1}{##2}\tabularnewline
  }%
  \ifglsnogroupskip
    \renewcommand*{\glsgroupskip}{}%
  \else
    \renewcommand*{\glsgroupskip}{\glspenaltygroupskip}%
  \fi
}
\newcommand{\glslongextraLocationDescSymNameHeader}{%
 \glslongextraLocationDescSymNameTabularHeader\endhead
 \glslongextraLocationDescSymNameTabularFooter\endfoot
}
\newcommand{\glslongextraLocationDescSymNameTabularHeader}{%
 \toprule
 \glslongextraHeaderFmt\pagelistname &
 \glslongextraHeaderFmt\descriptionname &
 \glslongextraHeaderFmt\symbolname &
 \glslongextraHeaderFmt\entryname\tabularnewline
 \midrule
}
\newcommand{\glslongextraLocationDescSymNameTabularFooter}{%
 \bottomrule
}
\newglossarystyle{long-loc-desc-sym-name}%
{%
  \ifGlsLongExtraUseTabular
   \renewenvironment{theglossary}%
    {%
      \glslongextraSymLocSetDescWidth
      \edef\@glslongextra@begintab{%
        \noexpand\begin{tabular}[\glslongextraTabularVAlign]{%
          \expandonce\glslongextraLocationAlign
          \expandonce\glslongextraDescAlign
          \expandonce\glslongextraSymbolAlign
          \expandonce\glslongextraNameAlign
        }}%
      \@glslongextra@begintab
    }%
    {%
      \glslongextraLocationDescSymNameTabularFooter
      \end{tabular}%
    }%
   \renewcommand*{\glossaryheader}{\glslongextraLocationDescSymNameTabularHeader}%
  \else
   \renewenvironment{theglossary}%
    {%
      \glspatchLToutput
      \glslongextraSymLocSetDescWidth
      \edef\@glslongextra@begintab{%
        \noexpand\begin{longtable}{%
          \expandonce\glslongextraLocationAlign
          \expandonce\glslongextraDescAlign
          \expandonce\glslongextraSymbolAlign
          \expandonce\glslongextraNameAlign
        }}%
      \@glslongextra@begintab
    }%
    {\end{longtable}}%
   \renewcommand*{\glossaryheader}{\glslongextraLocationDescSymNameHeader}%
  \fi
  \renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{4}{##1}}%
  \renewcommand{\glossentry}[2]{%
    \glslongextraLocationFmt{##1}{##2} &
    \glslongextraDescFmt{##1} &
    \glslongextraSymbolFmt{##1} &
    \glslongextraNameFmt{##1}\tabularnewline
  }%
  \renewcommand{\subglossentry}[3]{%
     \glslongextraSubLocationFmt{##1}{##2}{##3} &
     \glslongextraSubDescFmt{##1}{##2} &
     \glslongextraSubSymbolFmt{##1}{##2} &
     \glslongextraSubNameFmt{##1}{##2}\tabularnewline
  }%
  \ifglsnogroupskip
    \renewcommand*{\glsgroupskip}{}%
  \else
    \renewcommand*{\glsgroupskip}{\glspenaltygroupskip}%
  \fi
}
\endinput
%%
%% End of file `glossary-longextra-2021-11-22.sty'.
