%% %% This is file `glossary.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% glossary.dtx (with options: `glossary.sty,package') %% Copyright (C) 2005 Nicola Talbot, all rights reserved. %% If you modify this file, you must change its name first. %% You are NOT ALLOWED to distribute this file alone. You are NOT %% ALLOWED to take money for the distribution or use of either this %% file or a changed version, except for a nominal charge for copying %% etc. %% \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}[2005/09/27 2.24 (NLCT)] \RequirePackage{ifthen} \RequirePackage{keyval} \define@key{gloss} {style} {\ifthenelse{\equal{#1}{list} \or \equal{#1}{altlist} \or \equal{#1}{super} \or \equal{#1}{long}} {\def\gls@style{#1}} {\PackageError{glossary} {Unknown glossary style '#1'} {Available styles are: list, altlist, super and long}}} \define@key{gloss} {header}[plain]{\ifthenelse{\equal{#1}{none} \or \equal{#1}{plain}} {\def\gls@header{#1}} {\PackageError{glossary} {Unknown glossary style '#1'} {Available styles are: none and plain}}} \define@key{gloss} {border}[plain]{\ifthenelse{\equal{#1}{none} \or \equal{#1}{plain}} {\def\gls@border{#1}} {\PackageError{glossary} {Unknown glossary border '#1'} {Available styles are: none and plain}}} \newcount\gls@cols \define@key{gloss}{cols}{\gls@cols=#1\relax \ifthenelse{\gls@cols<2 \or \gls@cols>3} {\PackageError{glossary} {invalid number of columns} {The cols option can only be 2 or 3}} {}} \define@key{gloss} {number} {\ifthenelse{\equal{#1}{none}\or\equal{#1}{page}\or\equal{#1}{section}} {\def\gls@number{#1}} {\PackageError{glossary} {Unknown glossary number style '#1'} {Available styles are: none, page and section}}} \newif\ifgls@toc \define@key{gloss}{toc}[true]{\ifthenelse{\equal{#1}{true} \or \equal{#1}{false}} {\csname gls@toc#1\endcsname} {\PackageError{glossary}{Glossary option 'toc' is boolean} {The value of 'toc' can only be set to 'true' or 'false'}}} \newif\ifgls@hypertoc \define@key{gloss}{hypertoc}[true]{\ifthenelse{\equal{#1}{true} \or \equal{#1}{false}} {\csname gls@hypertoc#1\endcsname} {\PackageError{glossary}{Glossary option 'hypertoc' is boolean} {The value of 'hypertoc' can only be set to 'true' or 'false'}}} \newif\ifgls@section \define@key{gloss}{section}[true]{\ifthenelse{\equal{#1}{true} \or \equal{#1}{false}} {\csname gls@section#1\endcsname} {\PackageError{glossary}{Glossary option 'section' is boolean} {The value of 'section' can only be set to 'true' or 'false'}}} \gls@sectionfalse \newif\ifglshyper \newif\ifglshyperacronym \define@key{gloss}{hyper}[true]{\ifthenelse{\equal{#1}{true} \or \equal{#1}{false}} {\csname glshyper#1\endcsname\glshyperacronymtrue} {\PackageError{glossary}{Glossary option 'hyper' is boolean} {The value of 'hyper' can only be set to 'true' or 'false'}}} \define@key{gloss}{hyperacronym}[true]{\ifthenelse{\equal{#1}{true} \or \equal{#1}{false}} {\csname glshyperacronym#1\endcsname} {\PackageError{glossary}{Glossary option 'hyperacronym' is boolean} {The value of 'hyperacronym' can only be set to 'true' or 'false'}}} \newif\ifglsacronym \define@key{gloss}{acronym}[true]{\ifthenelse{\equal{#1}{true} \or \equal{#1}{false}}{\setboolean{glsacronym}{#1}}{% \PackageError{glossary}{Glossary option 'acronym' is boolean}{The value of 'acronym' canonly be set to 'true' or 'false'}}} \def\gls@style{long} \def\gls@header{none} \def\gls@border{none} \def\gls@number{page} \gls@cols=2\relax \gls@tocfalse \@ifundefined{hyperpage}{\glshyperfalse\glshyperacronymfalse}{\glshypertrue\glshyperacronymtrue} \@ifundefined{hypertarget}{ \newcommand{\glosslabel}[2]{#2}% \newcommand{\glossref}[2]{#2}% }{% \newcommand{\glosslabel}[2]{\hypertarget{#1}{#2}}% \newcommand{\glossref}[2]{\hyperlink{#1}{#2}} } \@ifundefined{xspace}{% \let\glsxspace\relax}{% \let\glsxspace\xspace} \newcommand{\gls@noxspace}[1]{{\let\glsxspace\relax#1}} \newcommand{\glossarypackageoptions}[1]{\setkeys{gloss}{#1}} \InputIfFileExists{glossary.cfg}{% \typeout{Glossary configuration file loaded}}{% \typeout{No configuration file glossary.cfg found}} \renewcommand{\glossarypackageoptions}[1]{% \PackageError{glossary}{Command \string\glossarypackageoptions ^^Jcan only be used in configuration file}{}} \DeclareOption*{\edef\@pkg@ptions{\noexpand\setkeys{gloss}{\CurrentOption}} \ifthenelse{\equal{\CurrentOption}{}}{}{\@pkg@ptions}} \ProcessOptions \ifthenelse{\(\equal{\gls@style}{list} \or \equal{\gls@style}{altlist}\) \and \(\not\equal{\gls@header}{none} \or \not\equal{\gls@border}{none} \or \gls@cols=3\)} {\PackageError{glossary}{You can't have option 'style=list' or 'style=altlist' in combination with any of the other options} {The 'list' and 'altlist' options don't have a header, border or number of columns option.}} {} \ifthenelse{\boolean{gls@hypertoc} \and \boolean{gls@toc}}{% \PackageWarning{glossary}{Can't have both 'toc' and 'hypertoc', ignoring 'toc' option} \ifgls@hypertoc\gls@tocfalse\fi}{} \define@key{wrgloss}{name}{\gdef\@glo@n@me{#1}} \define@key{wrgloss}{description}{\def\@descr{#1}} \define@key{wrgloss}{sort}{\gdef\@s@rt{#1}} \define@key{wrgloss}{format}{\def\@f@rm@t{#1}} \newcommand{\@@wrglossary}{} \newcommand{\@glo@l@bel}{} \renewcommand{\@wrglossary}[1]{\relax \gdef\@glo@n@me{}\def\@descr{}\def\@s@rt{}\def\@f@rm@t{}\relax \setkeys{wrgloss}{#1}\relax \ifthenelse{\equal{\@s@rt}{}}{\gdef\@s@rt{\@glo@n@me}}{}% \ifthenelse{\equal{\@glo@l@bel}{}}{\gdef\@glo@l@bel{GGG:\@s@rt}}{}% \ifthenelse{\equal{\@f@rm@t}{}} {\protected@write\@glossaryfile{}% {\string\glossaryentry{\@s@rt @{% \string\glosslabel{\@glo@l@bel}{\@glo@n@me}}\@descr \string\relax|glsnumformat}{\theglossarynum}}} {\protected@write\@glossaryfile{}% {\string\glossaryentry{\@s@rt @{% \string\glosslabel{\@glo@l@bel}{\@glo@n@me}}\@descr \string\relax|\@f@rm@t}{\theglossarynum}}}\relax \endgroup\@esphack \@@wrglossary } \newcommand{\@gls@getn@me}[1]{\@bsphack\begingroup\@sanitize \gdef\@glo@n@me{}\setkeys{wrgloss}{#1}\relax \endgroup\@esphack} \newcommand{\xglossary}{\renewcommand{\@@wrglossary}[1]{% \glossref{\@glo@l@bel}{##1}\renewcommand{\@@wrglossary}{}}% \glossary} \newcommand*{\storeglosentry}[3][glossary]{% \@ifundefined{glo@#2@entry}{% \expandafter\def\csname glo@#2@type\endcsname{#1}% \expandafter\def\csname glo@#2@entry\endcsname{#3}% \@gls@getn@me{#3}% \expandafter\protected@edef\csname glo@#2@name\endcsname{\@glo@n@me}% }{% \PackageError{glossary}{Glossary entry '#2' already defined}{There already exists a glossary entry with the label '#2'}}% } \providecommand{\useglosentry}[2][\relax]{% \@ifundefined{glo@#2@type}{% \PackageError{glossary}{Glossary entry '#2' undefined}{You need to define the entry using \string\storeglosentry\space before using it.}}{% \edef\@glostype{\csname glo@#2@type\endcsname}% \ifx#1\relax \protected@edef\@glo@cmd{\expandafter\noexpand\csname \@glostype\endcsname{\csname glo@#2@entry\endcsname}}% \else \protected@edef\@glo@cmd{\expandafter\noexpand\csname \@glostype{\csname glo@#2@entry\endcsname,#1}}% \fi \@glo@cmd }} \providecommand{\useGlosentry}[3][\relax]{% \@ifundefined{glo@#2@type}{% \PackageError{glossary}{Glossary entry '#2' undefined}{You need to define the entry using \string\storeglosentry\space before using it.}}{% \edef\@glostype{x\csname glo@#2@type\endcsname}% \ifx#1\relax \protected@edef\@glo@cmd{\expandafter\noexpand\csname \@glostype\endcsname{\csname glo@#2@entry\endcsname}}% \else \protected@edef\@glo@cmd{\expandafter\noexpand\csname \@glostype\endcsname{\csname glo@#2@entry\endcsname,#1}}% \fi \@glo@cmd{#3}% }} \newcommand{\gls}[2][\relax]{\useGlosentry[#1]{#2}{\csname glo@#2@name\endcsname}} \providecommand{\saveglosentry}[3][glossary]{% \expandafter\def\csname glo@#2@type\endcsname{#1}% \expandafter\def\csname glo@#2@entry\endcsname{name={#2},description={#3}} } \ifthenelse{\equal{\gls@number}{page}}{ \newcommand{\theglossarynum}{\thepage} \newcommand{\pagecompositor}{-} \newcommand{\@glossary@delimN}{, } \newcommand{\@glossary@delimR}{--} \ifglshyper \newcommand{\glsXglossaryXnumformat}[1]{\hyperrm{#1}}% \else \newcommand{\glsXglossaryXnumformat}[1]{#1}\fi} {\ifthenelse{\equal{\gls@number}{section}} {\newcommand{\theglossarynum}{\thesection} \newcommand{\pagecompositor}{.} \newcommand{\@glossary@delimN}{, } \newcommand{\@glossary@delimR}{--} \ifglshyper \newcommand{\glsXglossaryXnumformat}[1]{\hyperrm{#1}}% \else \newcommand{\glsXglossaryXnumformat}[1]{#1}% \fi} {\newcommand{\theglossarynum}{\thepage} \newcommand{\pagecompositor}{-} \newcommand{\@glossary@delimN}{} \newcommand{\@glossary@delimR}{} \newcommand{\glsXglossaryXnumformat}[1]{}}} \newcommand{\glsnumformat}[2][glossary]{% \@ifundefined{glsX#1Xnumformat}{% \PackageError{glossary}{Glossary type '#1' undefined}{}}{% \csname glsX#1Xnumformat\endcsname{#2}}} \def\@glostype{glossary} \newcommand{\delimN}{\csname @\@glostype @delimN\endcsname} \newcommand{\delimR}{\csname @\@glostype @delimR\endcsname} \newcommand{\glodelim}{\csname @\@glostype @glodelim\endcsname} \define@key{glossnum}{glsnumformat}{\def\@glsnumformat{#1}} \define@key{glossnum}{type}{\def\@glsnumtype{#1}} \define@key{glossnum}{delimN}{\def\@delimN{#1}} \define@key{glossnum}{delimR}{\def\@delimR{#1}} \define@key{glossnum}{glodelim}{\def\@glodelim{#1}} \providecommand{\ignore}[1]{} \newcommand{\setglossary}[1]{% \def\@glsnumformat{}% \def\@glsnumtype{glossary}% \def\@delimN{@dontchange@}% \def\@delimR{@dontchange@}% \def\@glodelim{@dontchange@}% \setkeys{glossnum}{#1}\relax \@ifundefined{print\@glsnumtype}{% \PackageError{glossary}{Invalid glossary type '\@glsnumtype'}{% Glossary type '\@glsnumtype' has not been defined} }{% \ifthenelse{\equal{\@glsnumformat}{}}{}{% \expandafter\xdef\csname glsX\@glsnumtype Xnumformat\endcsname{% \noexpand\csname\@glsnumformat\noexpand\endcsname}% \ifthenelse{\equal{\@glsnumformat}{ignore}}{% \expandafter\xdef\csname @\@glsnumtype @delimN\endcsname{}% \expandafter\xdef\csname @\@glsnumtype @delimR\endcsname{}% }{}% }% \ifthenelse{\equal{\@delimN}{@dontchange@}}{}{% \expandafter\xdef\csname @\@glsnumtype @delimN\endcsname{% \@delimN}} \ifthenelse{\equal{\@delimR}{@dontchange@}}{}{% \expandafter\xdef\csname @\@glsnumtype @delimR\endcsname{% \@delimR}} \ifthenelse{\equal{\@glodelim}{@dontchange@}}{}{% \expandafter\xdef\csname @\@glsnumtype @glodelim\endcsname{% \@glodelim} } }} \newcommand{\@gls@glossary@inext}{gls} \newcommand\printglossary[1][glossary]{% \def\@glostype{#1}% \@ifundefined{#1name}{% \renewcommand{\@glossaryname}{\glossaryname}}{% \renewcommand{\@glossaryname}{\csname #1name\endcsname}}% \@ifundefined{short#1name}{% \renewcommand{\@shortglossaryname}{\@glossaryname}}{% \renewcommand{\@shortglossaryname}{\csname short#1name\endcsname}}% \@input@{\jobname.\csname @gls@#1@inext\endcsname}} \providecommand{\glossaryname}{Glossary} \newcommand{\shortglossaryname}{\glossaryname} \newcommand{\entryname}{Notation} \newcommand{\descriptionname}{Description} \newcommand{\istfilename}{\jobname.ist} \def\@glossaryname{\glossaryname} \def\@shortglossaryname{\shortglossaryname} \providecommand{\glossarytitle}{% \@ifundefined{chapter} {\section*{\@glossaryname}\relax \ifgls@toc\@glosaddtoc{section}\fi} {\ifthenelse{\boolean{gls@section}} {\section*{\@glossaryname}\relax \ifgls@toc\@glosaddtoc{section}\fi} {\ifgls@hypertoc\@ifundefined{if@twoside}{\clearpage}{% \if@twoside\@ifundefined{cleardoublepage}{\cleardoublepage}{\clearpage}\else \clearpage\fi}\phantomsection\@glosaddtoc{chapter}\fi\chapter*{\@glossaryname}\relax \ifgls@toc\@glosaddtoc{chapter}\fi}} \markboth{\@shortglossaryname}{\@shortglossaryname}% } \@ifundefined{theglossary}{ \newenvironment{theglossary} {\glossarytitle \glossarypreamble\@bef@reglos} {\@ftergl@s\glossarypostamble} }{% \PackageWarning{glossary}{Redefining 'theglossary' environment} \renewenvironment{theglossary} {\glossarytitle \glossarypreamble\@bef@reglos} {\@ftergl@s\glossarypostamble} } \newcommand{\glossarypreamble}{} \newcommand{\glossarypostamble}{} \newcommand{\@glosaddtoc}[1]{% \addcontentsline{toc}{#1}{\@shortglossaryname} } \newif\ifgloitemfirst \newcommand{\@bef@reglos}{\global\gloitemfirsttrue\beforeglossary} \newcommand{\@ftergl@s}{\afterglossary\global\gloitemfirstfalse} \ifthenelse{\equal{\gls@style}{list} \or \equal{\gls@style}{altlist}} { \newcommand{\beforeglossary}{\begin{description}} \newcommand{\afterglossary}{\end{description}} \newcommand{\gloskip}{\indexspace} \ifthenelse{\equal{\gls@style}{list}} {\newcommand{\gloitem}[1]{\item[#1]} \newcommand{\@glossary@glodelim}{, }} {\newcommand{\gloitem}[1]{\item[#1]\mbox{}\par} \newcommand{\@glossary@glodelim}{ }} }{ \ifthenelse{\equal{\gls@style}{super}}{ \IfFileExists{supertab.sty}{\RequirePackage{supertab}} {\IfFileExists{supertabular.sty}{\RequirePackage{supertabular}} {\PackageError{glossary}{Option "super" chosen, but can't find "supertab" package} {If you want the "super" option, you have to have the "supertab" package installed.}}} } {\RequirePackage{longtable}} \newlength{\descriptionwidth} \setlength{\descriptionwidth}{0.6\textwidth} \ifthenelse{\equal{\gls@header}{none}} { \ifthenelse{\equal{\gls@border}{none}} {\newcommand{\glossaryheader}{}} {\newcommand{\glossaryheader}{\hline }} } { \ifnum\gls@cols=2\relax \ifthenelse{\equal{\gls@border}{none}} {\newcommand{\glossaryheader} {\bfseries\entryname & \bfseries \descriptionname\\}} {\newcommand{\glossaryheader} {\hline\bfseries\entryname & \bfseries\descriptionname \\\hline\hline}} \else \ifthenelse{\equal{\gls@border}{none}} {\newcommand{\glossaryheader} {\bfseries\entryname & \bfseries \descriptionname & \\}} {\newcommand{\glossaryheader} {\hline\bfseries\entryname &\bfseries\descriptionname & \\\hline\hline}} \fi } \ifthenelse{\equal{\gls@border}{none}} { \ifnum\gls@cols=2\relax \@ifundefined{newcolumntype}{\newcommand{\glossaryalignment}{@{\hspace{\tabcolsep}\bfseries}lp{\descriptionwidth}}}{ \newcolumntype{G}{@{\hspace{\tabcolsep}\bfseries}lp{\descriptionwidth}}} \else \@ifundefined{newcolumntype}{\newcommand{\glossaryalignment}{@{\hspace{\tabcolsep}\bfseries}lp{\descriptionwidth}l}}{ \newcolumntype{G}{@{\hspace{\tabcolsep}\bfseries}lp{\descriptionwidth}l}} \fi \ifthenelse{\equal{\gls@style}{super}}{ \newcommand{\afterglossary}{ \\\end{supertabular}} } { \newcommand{\afterglossary}{ \\\end{longtable}} } \newcommand{\glosstail}{} } { \ifnum\gls@cols=2\relax \@ifundefined{newcolumntype}{\newcommand{\glossaryalignment}{|@{\hspace{\tabcolsep}\bfseries}lp{\descriptionwidth}|}}{ \newcolumntype{G}{|@{\hspace{\tabcolsep}\bfseries}lp{\descriptionwidth}|}} \else \@ifundefined{newcolumntype}{\newcommand{\glossaryalignment}{|@{\hspace{\tabcolsep}\bfseries}lp{\descriptionwidth}l|}}{ \newcolumntype{G}{|@{\hspace{\tabcolsep}\bfseries}lp{\descriptionwidth}l|}} \fi \ifthenelse{\equal{\gls@style}{super}}{ \newcommand{\afterglossary}{ \\\hline\end{supertabular}} } { \newcommand{\afterglossary}{ \\\hline\end{longtable}} } \newcommand{\glosstail}{\hline} } \ifthenelse{\equal{\gls@style}{super}} { \@ifundefined{newcolumntype}{ \newcommand{\beforeglossary} {\tablehead{\glossaryheader}\tabletail{\glosstail} \begin{supertabular}{\glossaryalignment}}} {\newcommand{\beforeglossary} {\tablehead{\glossaryheader}\tabletail{\glosstail} \begin{supertabular}{G}}} } { \@ifundefined{newcolumntype}{\newcommand{\beforeglossary} {\begin{longtable}{\glossaryalignment} \glossaryheader\endhead\glosstail\endfoot}} {\newcommand{\beforeglossary} {\begin{longtable}{G} \glossaryheader\endhead\glosstail\endfoot}} } \ifnum\gls@cols=2\relax \newcommand{\gloskip}{\ifgloitemfirst\global\gloitemfirstfalse \else\\ \fi &} \newcommand{\@glossary@glodelim}{, } \else \newcommand{\gloskip}{\ifgloitemfirst\global\gloitemfirstfalse \else\\ \fi & &} \newcommand{\@glossary@glodelim}{& } \fi \newcommand{\gloitem}[1]{\ifgloitemfirst\global\gloitemfirstfalse #1 \else \\#1 \fi &} } \ifthenelse{\equal{\gls@number}{none} \and \gls@cols<3}{\renewcommand{\@glossary@glodelim}{}}{} \newif\ifist \let\noist=\istfalse \if@filesw\isttrue\else\istfalse\fi \newwrite\istfile \catcode`\%11\relax \newcommand{\writeist}{ \openout\istfile=\istfilename \write\istfile{% makeindex style file created by LaTeX for document "\jobname" on \the\year-\the\month-\the\day} \write\istfile{keyword "\string\\glossaryentry"} \write\istfile{preamble "\string\\begin{theglossary}"} \write\istfile{postamble "\string\n\string\\end{theglossary}\string\n"} \write\istfile{group_skip "\string\\gloskip "} \write\istfile{item_0 "\string\n\string\\gloitem "} \write\istfile{delim_0 "\string\n\string\\glodelim "} \write\istfile{page_compositor "\pagecompositor"} \write\istfile{delim_n "\string\\delimN "} \write\istfile{delim_r "\string\\delimR "} \closeout\istfile } \catcode`\%14\relax \renewcommand{\makeglossary}{ \newwrite\@glossaryfile \immediate\openout\@glossaryfile=\jobname.glo \renewcommand{\glossary}[1][]{\gdef\@glo@l@bel{##1}% \@bsphack \begingroup \@sanitize \@wrglossary } \typeout {Writing glossary file \jobname .glo } \let \makeglossary \@empty \ifist\writeist\fi \noist} \renewcommand{\glossary}[1][]{% \@bsphack\begingroup\@sanitize\@index} \newcommand{\@newglossarytype}[4][glg]{} \newcommand{\newglossarytype}[4][glg]{ \@ifundefined{#2}{% \protected@write\@auxout{}{\@newglossarytype[#1]{#2}{#3}{#4}}% \def\@glstype{#2}\def\@glsout{#3}\def\@glsin{#4}% \expandafter\gdef\csname glsX\@glstype Xnumformat\endcsname{\glsXglossaryXnumformat}% \expandafter\gdef\csname @\@glstype @delimN\endcsname{\@glossary@delimN}% \expandafter\gdef\csname @\@glstype @delimR\endcsname{\@glossary@delimR}% \expandafter\gdef\csname @\@glstype @glodelim\endcsname{\@glossary@glodelim}% \expandafter\gdef\csname @gls@\@glstype @inext\endcsname{#4}% \expandafter\def\csname @gls@#2@type\endcsname{#4}% \expandafter\edef\csname make\@glstype\endcsname{% \noexpand\@m@kegl@ss{\@glstype}{\@glsout}} \expandafter\edef\csname \@glstype\endcsname{% \noexpand\@gl@ss@ary{\@glstype}} \expandafter\edef\csname x\@glstype\endcsname{% \noexpand\@Gl@ss@ary{\@glstype}} \expandafter\edef\csname print\@glstype\endcsname{% \noexpand\def\noexpand\@glostype{\@glstype}% \noexpand\@ifundefined{\@glstype name}{% \noexpand\def\noexpand\@glossaryname{\noexpand\glossaryname}% }{% \noexpand\def\noexpand\@glossaryname{% \noexpand\csname\@glstype name\noexpand\endcsname}}% \noexpand\@ifundefined{short\@glstype name}{% \noexpand\def\noexpand\@shortglossaryname{\noexpand\@glossaryname}% }{% \noexpand\edef\noexpand\@shortglossaryname{% \noexpand\csname short\@glstype name\noexpand\endcsname}}% \noexpand\@prntgl@ss@ry{\@glsin}} }{\PackageError{glossary}{Command \expandafter\string\csname #2\endcsname \space already defined}{% You can't call your new glossary type '#2' because there already exists a command with this name}} } \newcommand\@m@kegl@ss[2]{ \expandafter\newwrite\csname @#1file\endcsname \expandafter\immediate\expandafter \openout\csname @#1file\endcsname=\jobname.#2 \typeout {Writing #1 file \jobname .#2 } \expandafter\let \csname make#1\endcsname \@empty \ifist\writeist\fi \expandafter\def\csname the#1num\endcsname{\thepage} \noist } \newcommand{\@wrgl@ss@ry}[2]{\relax \gdef\@glo@n@me{}\def\@descr{}\def\@s@rt{}\def\@f@rm@t{}\relax \xdef\@pr@fix{\csname @gls@#1@type\endcsname}% \ifthenelse{\equal{\@s@rt}{}}{\gdef\@s@rt{\@glo@n@me}}{}% \ifthenelse{\equal{\@glo@l@bel}{}}{\gdef\@glo@l@bel{\@pr@fix:\@s@rt}}{}% \setkeys{wrgloss}{#2}\relax \ifthenelse{\equal{\@f@rm@t}{}} {\expandafter\protected@write\csname @#1file\endcsname{}{% \string\glossaryentry{\@s@rt @{% \string\glosslabel{\@glo@l@bel}{\@glo@n@me}}% \@descr\string\relax|glsnumformat[#1]}{\csname the#1num\endcsname}}} {\expandafter\protected@write\csname @#1file\endcsname{}{% \string\glossaryentry{\@s@rt @{% \string\glosslabel{\@glo@l@bel}{\@glo@n@me}}% \@descr\string\relax|\@f@rm@t}{\csname the#1num\endcsname}}}\relax \endgroup\@esphack \@@wrgl@ss@ry } \newcommand{\@@wrgl@ss@ry}{} \newcommand\@gl@ss@ary[2][]{\@ifundefined{@#2file}{% \@bsphack\begingroup \@sanitize \@index}{% \gdef\@glo@l@bel{#1}% \@bsphack \begingroup \@sanitize \@wrgl@ss@ry{#2}}} \newcommand{\@Gl@ss@ary}{% \renewcommand{\@@wrgl@ss@ry}[1]{% \glossref{\@glo@l@bel}{##1}\renewcommand{\@@wrgl@ss@ry}{}}% \@gl@ss@ary} \newcommand\@prntgl@ss@ry[1]{\@input@{\jobname.#1}} \@onlypreamble{\newglossarytype} \newcommand\@acrnmsh{} \newcommand\@sacrnmsh{} \newcommand\@acrnmln{} \newcommand\@acrnmcmd{} \newcommand\@acrnmgls{} \newcommand\@acrnmins{} \toksdef\@glo@tb=2 \newcommand{\@acr@list}{} \newcommand{\@acr@addtolist}[1]{\edef\@glo@ta{#1}% \ifthenelse{\equal{\@acr@list}{}}{% \edef\@acr@list{\@glo@ta}}{% \@glo@tb=\expandafter{\@acr@list}% \edef\@acr@list{\the\@glo@tb,\@glo@ta}}} \newcommand{\glsprimaryfmt}[1]{\textbf{\glsnumformat{#1}}} \newcommand{\@acronymnamefmt}{\glolong\ (\gloshort)} \newcommand{\setacronymnamefmt}[1]{\def\@acronymnamefmt{#1}} \newcommand{\acronymfont}[1]{#1} \newcommand{\newacronym}[4][]{% \ifthenelse{\equal{#1}{}}{\renewcommand\@acrnmcmd{#2}}{\renewcommand\@acrnmcmd{#1}} \@ifundefined{\@acrnmcmd}{% \expandafter\newcommand\csname\@acrnmcmd short\endcsname{#2\protect\glsxspace} \expandafter\newcommand\csname\@acrnmcmd long\endcsname{#3\protect\glsxspace} \def\@acrn@entry{#4} { \def\glolong{#3}% \def\gloshort{\noexpand\acronymfont{#2}}% \expandafter\protected@xdef\expandafter\@acrnamefmt{\@acronymnamefmt} } \@acr@addtolist{\@acrnmcmd} \protected@edef\@acr@glsentry{name=\@acrnamefmt,format=glsnumformat,sort=\@acrnmcmd,\@acrn@entry} \newboolean{\@acrnmcmd first}\setboolean{\@acrnmcmd first}{true} \expandafter\protected@edef\csname \@acrnmcmd\endcsname{\noexpand\@ifstar{\csname @s@\@acrnmcmd\endcsname}{\csname @\@acrnmcmd\endcsname}} \ifglshyperacronym \expandafter\protected@edef\csname @\@acrnmcmd\endcsname{% \noexpand\ifthenelse{\noexpand\boolean{\@acrnmcmd first}}{% \noexpand\gls@noxspace{\csname\@acrnmcmd long\endcsname\noexpand\@acrnmins\ (\noexpand\xacronym{\@acr@glsentry}{% \noexpand\acronymfont{\csname\@acrnmcmd short\endcsname}% })}\noexpand\setboolean{\@acrnmcmd first}{false}% }{\noexpand\xacronym{\@acr@glsentry}{% \noexpand\acronymfont{\csname\@acrnmcmd short\endcsname}\noexpand\@acrnmins}}\noexpand\glsxspace} \expandafter\protected@edef\csname @s@\@acrnmcmd\endcsname{% \noexpand\ifthenelse{\noexpand\boolean{\@acrnmcmd first}}{% \noexpand\gls@noxspace{\noexpand\expandafter\noexpand\MakeUppercase \csname\@acrnmcmd long\endcsname\noexpand\@acrnmins\ (\noexpand\xacronym{\@acr@glsentry}{% \noexpand\acronymfont{\csname\@acrnmcmd short\endcsname}% })}% \noexpand\setboolean{\@acrnmcmd first}{false}}{% \noexpand\xacronym{\@acr@glsentry}{% \noexpand\acronymfont{\noexpand\expandafter\noexpand\MakeUppercase \csname\@acrnmcmd short\endcsname}% \noexpand\@acrnmins}}\noexpand\glsxspace} \else \expandafter\protected@edef\csname @\@acrnmcmd\endcsname{% \noexpand\ifthenelse{\noexpand\boolean{\@acrnmcmd first}}{% \noexpand\gls@noxspace{\csname\@acrnmcmd long\endcsname\ (\noexpand\acronym{\@acr@glsentry}{% \noexpand\acronymfont{\csname\@acrnmcmd short\endcsname}% })}\noexpand\setboolean{\@acrnmcmd first}{false}% }{\noexpand\acronym{\@acr@glsentry}{% \noexpand\acronymfont{\csname\@acrnmcmd short\endcsname}}}% \noexpand\glsxspace} \expandafter\protected@edef\csname @s@\@acrnmcmd\endcsname{% \noexpand\ifthenelse{\noexpand\boolean{\@acrnmcmd first}}{% \noexpand\gls@noxspace{\noexpand\expandafter \noexpand\MakeUppercase \csname\@acrnmcmd long\endcsname\noexpand\@acrnmins\ (\noexpand\acronym{\@acr@glsentry}{% \noexpand\acronymfont{\csname\@acrnmcmd short\endcsname}% })}% \noexpand\setboolean{\@acrnmcmd first}{false}}{% \noexpand\acronym{\@acr@glsentry}{% \noexpand\acronymfont{\noexpand\expandafter\noexpand\MakeUppercase \csname\@acrnmcmd short\endcsname}% \noexpand\@acrnmins}}\noexpand\glsxspace} \fi }{% \PackageError{glossary}{Command '\expandafter\string\csname\@acrnmcmd\endcsname' already defined}{ The command name specified by \string\newacronym already exists.}}} \newcommand{\useacronym}{\@ifstar\@suseacronym\@useacronym} \newcommand{\@suseacronym}[2][]{{\let\glsxspace\relax \def\@acrnmins{#1}\csname @s@#2\endcsname}% \setboolean{#2first}{false}} \newcommand{\@useacronym}[2][]{{\let\glsxspace\relax \def\@acrnmins{#1}\csname @#2\endcsname}% \setboolean{#2first}{false}} \newcommand{\acrln}{\@ifstar\@sacrln\@acrln} \newcommand{\@acrln}[1]{\@ifundefined{#1long}{% \PackageError{glossary}{Acronym '#1' has not been defined}{}}{% \gls@noxspace{\csname#1long\endcsname}}} \newcommand{\@sacrln}[1]{\@ifundefined{#1long}{% \PackageError{glossary}{Acronym '#1' has not been defined}{}}{% \gls@noxspace{\expandafter\expandafter\expandafter \MakeUppercase\csname#1long\endcsname}}} \newcommand{\acrsh}{\@ifstar\@sacrsh\@acrsh} \newcommand{\@acrsh}[1]{\@ifundefined{#1short}{% \PackageError{glossary}{Acronym '#1' has not been defined}{}}{\acronymfont{\gls@noxspace{\csname#1short\endcsname}}}} \newcommand{\@sacrsh}[1]{\@ifundefined{#1short}{% \PackageError{glossary}{Acronym '#1' has not been defined}{}}{% \acronymfont{\gls@noxspace{\expandafter\expandafter\expandafter\MakeUppercase\csname#1short\endcsname}}}} \newcommand{\ifacronymfirstuse}[3]{% \@ifundefined{if#1first}{% \PackageError{glossary}{Acronym '#1' not defined}{}}{% \ifthenelse{\boolean{#1first}}{#2}{#3}}} \newcommand{\resetacronym}[1]{% \@ifundefined{if#1first}{% \PackageError{glossary}{Acronym '#1' not defined}{}}{% \setboolean{#1first}{true}}} \newcommand{\resetallacronyms}{% \@for\@acr:=\@acr@list\do{\resetacronym{\@acr}}} \ifglshyper \def\glshyperpage#1{\@glshyperpage#1\delimR \delimR \\} \def\@glshyperpage#1\delimR #2\delimR #3\\{% \ifx\\#2\\% \@delimNhyperpage{#1}% \else \@ifundefined{hyperlink}{#1\delimR #2}{\hyperlink{page.#1}{#1}\delimR \hyperlink{page.#2}{#2}}% \fi } \def\@delimNhyperpage#1{\@@delimNhyperpage#1\delimN \delimN\\} \def\@@delimNhyperpage#1\delimN #2\delimN #3\\{% \ifx\\#2\\% \@ifundefined{hyperlink}{#1}{\hyperlink{page.#1}{#1}}% \else \@ifundefined{hyperlink}{#1\delimN #2}{\hyperlink{page.#1}{#1}\delimN \hyperlink{page.#2}{#2}}% \fi } \def\glshypersection#1{\@glshypersection#1\delimR \delimR \\} \def\@glshypersection#1\delimR #2\delimR #3\\{% \ifx\\#2\\% \@delimNhypersection{#1}% \else \@ifundefined{hyperlink}{#1\delimR #2}{\hyperlink{section.#1}{#1}\delimR \hyperlink{section.#2}{#2}}% \fi } \def\@delimNhypersection#1{\@@delimNhypersection#1\delimN \delimN\\} \def\@@delimNhypersection#1\delimN #2\delimN #3\\{% \ifx\\#2\\% \@ifundefined{hyperlink}{#1}{\hyperlink{section.#1}{#1}}% \else \@ifundefined{hyperlink}{#1\delimN #2}{\hyperlink{section.#1}{#1}\delimN \hyperlink{section.#2}{#2}}% \fi } \ifthenelse{\equal{\gls@number}{section}}{ \ifglshyper \@ifundefined{chapter} {} {\let\@gls@old@chapter\@chapter \def\@chapter[#1]#2{\@gls@old@chapter[{#1}]{#2}\@ifundefined{hyperdef}{}{\hyperdef{section}{\thechapter.0}{}}}} \fi \providecommand\hyperrm[1]{\textrm{\glshypersection{#1}}} \providecommand\hypersf[1]{\textsf{\glshypersection{#1}}} \providecommand\hypertt[1]{\texttt{\glshypersection{#1}}} \providecommand\hyperbf[1]{\textbf{\glshypersection{#1}}} \providecommand\hyperit[1]{\textit{\glshypersection{#1}}} } { \providecommand\hyperrm[1]{\textrm{\glshyperpage{#1}}} \providecommand\hypersf[1]{\textsf{\glshyperpage{#1}}} \providecommand\hypertt[1]{\texttt{\glshyperpage{#1}}} \providecommand\hyperbf[1]{\textbf{\glshyperpage{#1}}} \providecommand\hyperit[1]{\textit{\glshyperpage{#1}}} } \else \providecommand\hyperrm[1]{\textsf{#1}} \providecommand\hypersf[1]{\textsf{#1}} \providecommand\hypertt[1]{\texttt{#1}} \providecommand\hyperbf[1]{\textbf{#1}} \providecommand\hyperit[1]{\textit{#1}} \fi \ifglsacronym \newglossarytype[alg]{acronym}{acr}{acn} \newcommand{\acronymname}{List of Acronyms} \else \let\acronym=\glossary \let\xacronym=\xglossary \fi \endinput %% %% End of file `glossary.sty'.