diff options
author | Karl Berry <karl@freefriends.org> | 2013-11-14 22:52:09 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-11-14 22:52:09 +0000 |
commit | 033271bfdf58e2563bd3fbdbeb0f1facfb0c02e5 (patch) | |
tree | 1ca0cddf673e09a878c83db761e4dc52c65ba48b /Master/texmf-dist/source/latex | |
parent | e537bba01fd3f3a532b7fc1f6186c24065208638 (diff) |
glossaries (14nov13)
git-svn-id: svn://tug.org/texlive/trunk@32147 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex')
-rw-r--r-- | Master/texmf-dist/source/latex/glossaries/glossaries.dtx | 8443 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/glossaries/glossaries.ins | 17 |
2 files changed, 6248 insertions, 2212 deletions
diff --git a/Master/texmf-dist/source/latex/glossaries/glossaries.dtx b/Master/texmf-dist/source/latex/glossaries/glossaries.dtx index c3d0d7ef498..c5b4d894614 100644 --- a/Master/texmf-dist/source/latex/glossaries/glossaries.dtx +++ b/Master/texmf-dist/source/latex/glossaries/glossaries.dtx @@ -1,5 +1,5 @@ %\iffalse -% glossaries.dtx generated using makedtx version 0.94b (c) Nicola Talbot +% glossaries.dtx generated using makedtx version 1.1 (c) Nicola Talbot % Command line args: % -macrocode ".*\.perl" % -macrocode ".*\.tex" @@ -11,9 +11,10 @@ % -comment ".*\.tex" % -comment ".*\.xdy" % -src "glossaries.sty\Z=>glossaries.sty" +% -src "glossaries-prefix.sty\Z=>glossaries-prefix.sty" % -src "mfirstuc.sty\Z=>mfirstuc.sty" % -src "(glossary-.+)\.(sty)\Z=>\1.\2" -% -src "(glossaries-compatible-207)\.(sty)\Z=>\1.\2" +% -src "(glossaries-compatible-.+)\.(sty)\Z=>\1.\2" % -src "(glossaries-accsupp)\.(sty)\Z=>\1.\2" % -src "(glossaries-babel)\.(sty)\Z=>\1.\2" % -src "(glossaries-polyglossia)\.(sty)\Z=>\1.\2" @@ -27,7 +28,7 @@ % -author "Nicola Talbot" % -codetitle "Main Package Code" % glossaries -% Created on 2013/7/5 21:47 +% Created on 2013/11/14 14:05 %\fi %\iffalse %<*package> @@ -61,8 +62,6 @@ glossaries-manual.tex is a stub file used by makedtx to create glossaries.dtx \fi -\RecordChanges - \usepackage{alltt} \usepackage{pifont} \usepackage[utf8]{inputenc} @@ -75,6 +74,8 @@ glossaries.dtx pdfkeywords={LaTeX,package,glossary,acronyms}]{hyperref} \usepackage[toc]{glossaries} +\RecordChanges + \makeglossaries \renewcommand*{\main}[1]{\hyperpage{#1}} @@ -136,7 +137,7 @@ governed by the \gloskey{first} and \gloskey{firstplural} keys of \setcounter{IndexColumns}{2} -\CheckSum{14003} +\CheckSum{16315} \newcommand*{\ifirstuse}{\iterm{first use}} \newcommand*{\firstuse}{\gls{firstuse}} @@ -164,12 +165,12 @@ governed by the \gloskey{first} and \gloskey{firstplural} keys of %\MakeShortVerb{"} %\DeleteShortVerb{\|} % -% \title{Documented Code For glossaries v3.07} +% \title{Documented Code For glossaries v4.0} % \author{Nicola L.C. Talbot\\[10pt] %Dickimaw Books\\ %\url{http://www.dickimaw-books.com/}} % -% \date{2013-07-05} +% \date{2013-11-14} % \maketitle % %This is the documented code for the \styfmt{glossaries} package. @@ -185,7 +186,7 @@ governed by the \gloskey{first} and \gloskey{firstplural} keys of %glossaries package}. % %\item[\url{glossaries-user.pdf}] -%For the main user guide, read \qt{glossaries.sty v3.07: +%For the main user guide, read \qt{glossaries.sty v4.0: %\LaTeX2e\ Package to Assist Generating Glossaries}. % %\item[\url{mfirstuc-manual.pdf}] @@ -211,9 +212,9 @@ governed by the \gloskey{first} and \gloskey{firstplural} keys of % \printglossaries % \phantomsection % \addcontentsline{toc}{section}{Change History}% +% \raggedright % \PrintChanges -% \clearpage\phantomsection -% \addcontentsline{toc}{section}{Index}\PrintIndex +% \PrintIndex %} % % @@ -229,13 +230,22 @@ governed by the \gloskey{first} and \gloskey{firstplural} keys of % This package requires \LaTeXe. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries}[2013/07/05 v3.07 (NLCT)] +\ProvidesPackage{glossaries}[2013/11/14 v4.0 (NLCT)] % \end{macrocode} % Required packages: % \begin{macrocode} \RequirePackage{ifthen} \RequirePackage{xkeyval}[2006/11/18] \RequirePackage{mfirstuc} +% \end{macrocode} +%\changes{3.11a}{2013-10-15}{Now requires textcase} +% The \sty{textcase} package has much better case changing handling, +% so use \cs{MakeTextUppercase} instead of \cs{MakeUppercase} +% \begin{macrocode} +\RequirePackage{textcase} +\renewcommand*{\mfirstucMakeUppercase}{\MakeTextUppercase}% +% \end{macrocode} +% \begin{macrocode} \RequirePackage{xfor} % \end{macrocode} %\changes{3.04}{2012-11-18}{added datatool-base as a required @@ -269,12 +279,9 @@ governed by the \gloskey{first} and \gloskey{firstplural} keys of {% \@ifclassloaded{nlctdoc}{\@gls@docloadedtrue}{\@gls@docloadedfalse}% } -% \end{macrocode} -%\end{macro} -% \begin{macrocode} \if@gls@docloaded % \end{macrocode} -% It has been loaded, so some modifications need to be made to +% \cs{doc} has been loaded, so some modifications need to be made to % ensure both packages can work together. %\begin{macro}{\glsorg@glossary} %\changes{3.04}{2012-11-18}{new} @@ -283,7 +290,7 @@ governed by the \gloskey{first} and \gloskey{firstplural} keys of \newcommand{\glsorg@glossary}{% \@bsphack \begingroup - \@sanitize \glsorg@wrglossary + \@sanitize \endgroup\@esphack } % \end{macrocode} %\end{macro} @@ -298,8 +305,17 @@ governed by the \gloskey{first} and \gloskey{firstplural} keys of } % \end{macrocode} %\end{macro} +%\changes{3.09a}{2013-10-09}{Add a fix for \cs{RecordChanges}} +% \begin{macrocode} + \renewcommand*{\RecordChanges}{% + \newwrite\@glossaryfile + \immediate\openout\@glossaryfile=\jobname.glo + \def\glsorg@glossary{\@bsphack\begingroup\@sanitize\glsorg@wrglossary}% + \typeout{Writing glossary file \jobname .glo}% + } +% \end{macrocode} +%\end{macro} %\begin{macro}{\changes} -%\changes{3.04}{2012-11-18}{new} % Now we need to redefine \cs{changes} so that it uses the original % definition of \cs{glossary}. % \begin{macrocode} @@ -452,7 +468,8 @@ false,nolabel,autolabel}[nolabel]{% % \autoref{sec:code:styles}. % \begin{macrocode} \define@key{glossaries.sty}{style}{% -\renewcommand*{\@glossary@default@style}{#1}} + \renewcommand*{\@glossary@default@style}{#1}% +} % \end{macrocode} %\end{option} % @@ -630,11 +647,20 @@ false,nolabel,autolabel}[nolabel]{% % %\begin{option}{ucmark} % Boolean option to determine whether or not to use -% \ics{MakeUppercase} in definition of \ics{glossarymark} +% use upper case in definition of \ics{glsglossarymark} %\changes{3.02}{2012/05/21}{new} % \begin{macrocode} \define@boolkey{glossaries.sty}[gls]{ucmark}[true]{} -\glsucmarkfalse +% \end{macrocode} +%\changes{3.13a}{2013-11-05}{added check for memoir} +% \begin{macrocode} +\@ifclassloaded{memoir} +{% + \glsucmarktrue +}% +{% + \glsucmarkfalse +} % \end{macrocode} %\end{option} % @@ -691,6 +717,22 @@ false,nolabel,autolabel}[nolabel]{% } % \end{macrocode} %\end{option} +% +%\begin{macro}{\glsprestandardsort} +%\changes{3.13a}{2013-11-05}{new} +%\begin{definition} +%\cs{glsprestandardsort}\marg{sort cs}\marg{type}\marg{label} +%\end{definition} +% Allow user to hook into sort mechanism. The first argument +% \meta{sort cs} is the temporary control sequence containing the +% sort value before it has been sanitized and had +% \gls{makeindex}\slash\gls{xindy} special characters escaped. +% \begin{macrocode} +\newcommand*{\glsprestandardsort}[3]{% + \glsdosanitizesort +} +% \end{macrocode} +%\end{macro} %\begin{macro}{\@gls@setupsort@standard} %\changes{3.0}{2011/04/02}{new} % Set up the macros for default sorting. @@ -707,6 +749,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Sort according to sort key (\cs{@glo@sort}) if provided otherwise % sort according to the entry's name (\cs{@glo@name}). +% (First argument glossary type, second argument entry label.) % \begin{macrocode} \def\@gls@defsort##1##2{% \ifx\@glo@sort\@glsdefaultsort @@ -714,8 +757,11 @@ false,nolabel,autolabel}[nolabel]{% \fi % \end{macrocode} %\changes{3.03}{2012/09/21}{used \cs{@gls@sanitizesort}} +%\changes{3.13a}{2013-11-05}{moved \cs{@gls@santizesort} to +%\cs{glsprestandardsort}} % \begin{macrocode} - \@gls@sanitizesort + \let\glsdosanitizesort\@gls@sanitizesort + \glsprestandardsort{\@glo@sort}{##1}{##2}% \expandafter\protected@xdef\csname glo@##2@sort\endcsname{\@glo@sort}% }% % \end{macrocode} @@ -897,6 +943,50 @@ false,nolabel,autolabel}[nolabel]{% % or not to define a separate glossary for acronyms. % \begin{macrocode} \define@boolkey{glossaries.sty}[gls]{acronym}[true]{% + \ifglsacronym + \renewcommand{\@gls@do@acronymsdef}{% + \DeclareAcronymList{acronym}% + \newglossary[alg]{acronym}{acr}{acn}{\acronymname}% + \renewcommand*{\acronymtype}{acronym}% + }% + \else + \let\@gls@do@acronymsdef\relax + \fi +} +% \end{macrocode} +%\end{option} +%\begin{macro}{\printacronyms} +% Define \cs{printacronyms} at the start of the document if +% \pkgopt{acronym} is set and compatibility mode isn't on and +% \cs{printacronyms} hasn't already been defined. +% \begin{macrocode} +\AtBeginDocument{% + \ifglsacronym + \ifbool{glscompatible-3.07}% + {}% + {% + \providecommand*{\printacronyms}[1][]{% + \printglossary[type=\acronymtype,#1]}% + }% + \fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@gls@do@acronymsdef} +% Set default value +% \begin{macrocode} +\newcommand*{\@gls@do@acronymsdef}{} +% \end{macrocode} +%\end{macro} +% +%\begin{option}{acronyms} +%\changes{3.14a}{2013-11-12}{new} +% Provide a synonym for \pkgopt[true]{acronym} that can be passed +% via the document class options. +% \begin{macrocode} +\DeclareOptionX{acronyms}{% + \glsacronymtrue \DeclareAcronymList{acronym}% } % \end{macrocode} @@ -934,7 +1024,9 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} %\end{macro} %\begin{macro}{\glsIfListOfAcronyms} -%\cs{glsIfListOfAcronyms}\marg{label}\marg{true part}\marg{false part}\\[10pt] +%\begin{definition} +%\cs{glsIfListOfAcronyms}\marg{label}\marg{true part}\marg{false part} +%\end{definition} % Determines if the glossary with the given label has been identified % as being a list of acronyms. % \begin{macrocode} @@ -994,9 +1086,11 @@ false,nolabel,autolabel}[nolabel]{% %\end{macro} %\begin{option}{acronymlists} %\changes{2.04}{2009 November 10}{new}% +%\changes{3.11a}{2013-10-15}{replaced \cs{@addtoacronymlists} with +%\cs{DeclareAcronymList}} % \begin{macrocode} \define@key{glossaries.sty}{acronymlists}{% - \@addtoacronymlists{#1}% + \DeclareAcronymList{#1}% } % \end{macrocode} %\end{option} @@ -1052,52 +1146,137 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} %\end{option} % -% The glossary keys whose values are written to another file (i.e.\ -% \gloskey{sort}, \gloskey{name}, \gloskey{description} and -% \gloskey{symbol}) need to be sanitized, otherwise fragile -% commands would not be able to be used in -% \ics{newglossaryentry}. However, strange results will occur -% if you then use those fields in the document. As these fields -% are not normally used in the document, but are by default only -% used in the glossary, the default is to sanitize them. If however -% you want to use these values in the document (either by redefining -% commands like \ics{glsdisplay} or by using commands like -% \ics{glsentrydesc}) you will have to switch off the -% sanitization using the \pkgopt{sanitize} package option, but -% you will then have to use \ics{protect} to protect fragile -% commands when defining new glossary entries. -% The \pkgopt{sanitize} option -% takes a key-value list as its value, which can be used to -% switch individual values on and off. For example: -%\begin{verbatim} -%\usepackage[sanitize={description,name,symbol=false}]{glossaries} -%\end{verbatim} -%will switch off the sanitization for the \gloskey{symbol} key, but -% switch it on for the \gloskey{description} and \gloskey{name} keys. -% This would mean that you can use fragile commands in the -%description and name when defining a new glossary entry, but not -% for the symbol. +%\begin{macro}{\GlossariesWarning} +% Prints a warning message. +% \begin{macrocode} +\newcommand*{\GlossariesWarning}[1]{% + \PackageWarning{glossaries}{#1}% +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\GlossariesWarningNoLine} +% Prints a warning message without the line number. +% \begin{macrocode} +\newcommand*{\GlossariesWarningNoLine}[1]{% + \PackageWarningNoLine{glossaries}{#1}% +} +% \end{macrocode} +%\end{macro} +% Define package option to suppress warnings +% \begin{macrocode} +\DeclareOptionX{nowarn}{% + \renewcommand*{\GlossariesWarning}[1]{}% + \renewcommand*{\GlossariesWarningNoLine}[1]{}% +} +% \end{macrocode} +% As from version 3.08a, the only information written to the external +% glossary files are the label and sort values. Therefore, now, the +% only sanitize option that makes sense is the one for the sort key. +% so the sanitize option is now deprecated and there is only a +% sanitizesort option. % -% The default values are defined as: %\begin{macro}{\@gls@sanitizedesc} % \begin{macrocode} -\newcommand*{\@gls@sanitizedesc}{\@onelevel@sanitize\@glo@desc} +\newcommand*{\@gls@sanitizedesc}{% +} +%\end{macro} +% +%\begin{macro}{\glssetexpandfield} +%\changes{3.13a}{2013-11-05}{new} +%\begin{definition} +%\cs{glssetexpandfield}\marg{field} +%\end{definition} +% Sets field to always expand. +% \begin{macrocode} +\newcommand*{\glssetexpandfield}[1]{% + \csdef{gls@assign@#1@field}##1##2{% + \@@gls@expand@field{##1}{#1}{##2}% + }% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\glssetnoexpandfield} +%\changes{3.13a}{2013-11-05}{new} +%\begin{definition} +%\cs{glssetnoexpandfield}\marg{field} +%\end{definition} +% Sets field to never expand. +% \begin{macrocode} +\newcommand*{\glssetnoexpandfield}[1]{% + \csdef{gls@assign@#1@field}##1##2{% + \@@gls@noexpand@field{##1}{#1}{##2}% + }% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\gls@assign@type@field} +%\changes{3.10a}{2013-09-28}{new} +%\changes{3.13a}{2013-11-05}{changed to use \cs{glssetexpandfield}} +% The type must always be expandable. +% \begin{macrocode} +\glssetexpandfield{type} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\gls@assign@desc@field} +%\changes{3.08a}{2013-09-28}{new} +%\changes{3.13a}{2013-11-05}{changed to use \cs{glssetnoexpandfield}} +% The description is not expanded by default: +% \begin{macrocode} +\glssetnoexpandfield{desc} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\gls@assign@descplural@field} +%\changes{3.08a}{2013-09-28}{new} +%\changes{3.13a}{2013-11-05}{changed to use \cs{glssetnoexpandfield}} +% \begin{macrocode} +\glssetnoexpandfield{descplural} % \end{macrocode} %\end{macro} %\begin{macro}{\@gls@sanitizename} % \begin{macrocode} -\newcommand*{\@gls@sanitizename}{\@onelevel@sanitize\@glo@name} +\newcommand*{\@gls@sanitizename}{} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\gls@assign@name@field} +%\changes{3.13a}{2013-11-05}{changed to use \cs{glssetnoexpandfield}} +% Don't expand name by default. +% \begin{macrocode} +\glssetnoexpandfield{name} % \end{macrocode} %\end{macro} %\begin{macro}{\@gls@sanitizesymbol} % \begin{macrocode} -\newcommand*{\@gls@sanitizesymbol}{\@onelevel@sanitize\@glo@symbol} +\newcommand*{\@gls@sanitizesymbol}{} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@gls@assign@symbol@field} +%\changes{3.13a}{2013-11-05}{changed to use \cs{glssetnoexpandfield}} +% Don't expand symbol by default. +% \begin{macrocode} +\glssetnoexpandfield{symbol} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@gls@assign@symbolplural@field} +%\changes{3.13a}{2013-11-05}{changed to use \cs{glssetnoexpandfield}} +%\changes{3.09a}{2013-10-09}{new} +% \begin{macrocode} +\glssetnoexpandfield{symbolplural} % \end{macrocode} %\end{macro} +% +% Sanitizing stuff: %\begin{macro}{\@gls@sanitizesort} %\changes{3.03}{2012/09/21}{new} % \begin{macrocode} -\newcommand*{\@gls@sanitizesort}{\@onelevel@sanitize\@glo@sort} +\newcommand*{\@gls@sanitizesort}{% + \ifglssanitizesort + \@onelevel@sanitize\@glo@sort + \else + \fi +} % \end{macrocode} %\end{macro} % @@ -1106,74 +1285,133 @@ false,nolabel,autolabel}[nolabel]{% % These are all boolean keys. If they are not given a value, assume % \texttt{true}. % -% Firstly the \gloskey{description}. If set, it will redefine -% \cs{@gls@sanitizedesc} to use \cs{@onelevel@sanitize}, -% otherwise \cs{@gls@sanitizedesc} will do nothing. % \begin{macrocode} \define@boolkey[gls]{sanitize}{description}[true]{% -\ifgls@sanitize@description - \renewcommand*{\@gls@sanitizedesc}{\@onelevel@sanitize\@glo@desc}% -\else - \renewcommand*{\@gls@sanitizedesc}{}% -\fi + \GlossariesWarning{sanitize={description} package option deprecated}% + \ifgls@sanitize@description + \glssetnoexpandfield{desc}% + \glssetnoexpandfield{descplural}% + \else + \glssetexpandfield{desc}% + \glssetexpandfield{descplural}% + \fi } % \end{macrocode} -% Similarly for the \gloskey{name} key: % \begin{macrocode} \define@boolkey[gls]{sanitize}{name}[true]{% -\ifgls@sanitize@name - \renewcommand*{\@gls@sanitizename}{\@onelevel@sanitize\@glo@name}% -\else - \renewcommand*{\@gls@sanitizename}{}% -\fi} + \GlossariesWarning{sanitize={name} package option +deprecated}% + \ifgls@sanitize@name + \glssetnoexpandfield{name}% + \else + \glssetexpandfield{name}% + \fi +} % \end{macrocode} -% and for the \gloskey{symbol} key: % \begin{macrocode} \define@boolkey[gls]{sanitize}{symbol}[true]{% -\ifgls@sanitize@symbol - \renewcommand*{\@gls@sanitizesymbol}{% -\@onelevel@sanitize\@glo@symbol}% -\else - \renewcommand*{\@gls@sanitizesymbol}{}% -\fi} + \GlossariesWarning{sanitize={symbol} package option +deprecated}% + \ifgls@sanitize@symbol + \glssetnoexpandfield{symbol}% + \glssetnoexpandfield{symbolplural}% + \else + \glssetexpandfield{symbol}% + \glssetexpandfield{symbolplural}% + \fi +} % \end{macrocode} -% and for the \gloskey{sort} key: +% +%\begin{option}{sanitizesort} % \begin{macrocode} -\define@boolkey[gls]{sanitize}{sort}[true]{% -\ifgls@sanitize@sort - \renewcommand*{\@gls@sanitizesort}{% -\@onelevel@sanitize\@glo@sort}% -\else - \renewcommand*{\@gls@sanitizesort}{}% -\fi} +\define@boolkey{glossaries.sty}[gls]{sanitizesort}[true]{% + \ifglssanitizesort + \glssetnoexpandfield{sortvalue}% + \else + \glssetexpandfield{sortvalue}% + \fi +} % \end{macrocode} +% Default setting: +% \begin{macrocode} +\glssanitizesorttrue +\glssetnoexpandfield{sortvalue}% +% \end{macrocode} +%\end{option} % +% \begin{macrocode} +\define@choicekey{sanitize}{sort}{true,false}[true]{% + \setbool{glssanitizesort}{#1}% + \ifglssanitizesort + \glssetnoexpandfield{sortvalue}% + \else + \glssetexpandfield{sortvalue}% + \fi + \GlossariesWarning{sanitize={sort} package option + deprecated. Use sanitizesort instead}% +} +% \end{macrocode} % %\begin{option}{sanitize} -% Now define the \pkgopt{sanitize} option. It can either take -% a key-val list as its value, or it can take the keyword -% \texttt{none}, which is equivalent to \texttt{description=false, -% symbol=false, name=false}: % \begin{macrocode} \define@key{glossaries.sty}{sanitize}[description=true,symbol=true, name=true]{% -\ifthenelse{\equal{#1}{none}}% -{% - \renewcommand*{\@gls@sanitizedesc}{}% - \renewcommand*{\@gls@sanitizename}{}% - \renewcommand*{\@gls@sanitizesymbol}{}% -}% -{% - \setkeys[gls]{sanitize}{#1}}% + \ifthenelse{\equal{#1}{none}}% + {% + \GlossariesWarning{sanitize package option deprecated}% + }% + {% + \setkeys[gls]{sanitize}{#1}% + }% +} +% \end{macrocode} +%\end{option} +% +%\begin{macro}{\ifglstranslate} +% As from version 3.13a, the \pkgopt{translator} package option is a +% choice rather than boolean option so now need to define +% conditional: +% \begin{macrocode} +\newif\ifglstranslate +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@gls@notranslatorhook} +%\changes{3.13a}{2013-11-05}{new} +% \begin{macrocode} +\newcommand*\@gls@notranslatorhook{} +% \end{macrocode} +%\end{macro} +% +%\begin{option}{notranslate} +%\changes{3.14a}{2013-11-12}{new} +% Provide a synonym for \pkgopt[false]{translate} that can be passed +% via the document class. +% \begin{macrocode} +\DeclareOptionX{notranslate}{% + \glstranslatefalse + \let\@gls@notranslatorhook\relax } % \end{macrocode} %\end{option} +% %\begin{option}{translate} %\changes{1.1}{2008 Feb 22}{translate option added} % Define \pkgopt{translate} option. If false don't set up % multi-lingual support. % \begin{macrocode} -\define@boolkey{glossaries.sty}[gls]{translate}[true]{} +\define@choicekey{glossaries.sty}{translate}[\val\nr]% + {true,false,babel}[true]% + {% + \ifcase\nr\relax + \glstranslatetrue + \or + \glstranslatefalse + \let\@gls@notranslatorhook\relax + \or + \glstranslatefalse + \def\@gls@notranslatorhook{\RequirePackage{glossaries-babel}}% + \fi + } % \end{macrocode} %\end{option} % Set the default value: @@ -1208,12 +1446,23 @@ name=true]{% % \end{macrocode} %\end{option} % +%\begin{macro}{\@gls@setacrstyle} +% Keep track of whether an acronym style has been set (for the +% benefit of \cs{setupglossaries}): +% \begin{macrocode} +\newcommand*{\@gls@setacrstyle}{} +% \end{macrocode} +%\end{macro} %\begin{option}{footnote} % Set the long form of the acronym in footnote on first use. % \begin{macrocode} \define@boolkey{glossaries.sty}[glsacr]{footnote}[true]{% -\ifthenelse{\boolean{glsacrdescription}}{}% -{\renewcommand*{\@gls@sanitizedesc}{}}% + \ifbool{glsacrdescription}% + {}% + {% + \renewcommand*{\@gls@sanitizedesc}{}% + }% + \renewcommand*{\@gls@setacrstyle}{\SetAcronymStyle}% } % \end{macrocode} %\end{option} @@ -1224,6 +1473,7 @@ name=true]{% % \begin{macrocode} \define@boolkey{glossaries.sty}[glsacr]{description}[true]{% \renewcommand*{\@gls@sanitizesymbol}{}% + \renewcommand*{\@gls@setacrstyle}{\SetAcronymStyle}% } % \end{macrocode} %\end{option} @@ -1232,6 +1482,7 @@ name=true]{% % \begin{macrocode} \define@boolkey{glossaries.sty}[glsacr]{smallcaps}[true]{% \renewcommand*{\@gls@sanitizesymbol}{}% + \renewcommand*{\@gls@setacrstyle}{\SetAcronymStyle}% } % \end{macrocode} %\end{option} @@ -1242,6 +1493,7 @@ name=true]{% % \begin{macrocode} \define@boolkey{glossaries.sty}[glsacr]{smaller}[true]{% \renewcommand*{\@gls@sanitizesymbol}{}% + \renewcommand*{\@gls@setacrstyle}{\SetAcronymStyle}% } % \end{macrocode} %\end{option} @@ -1251,6 +1503,7 @@ name=true]{% % \begin{macrocode} \define@boolkey{glossaries.sty}[glsacr]{dua}[true]{% \renewcommand*{\@gls@sanitizesymbol}{}% + \renewcommand*{\@gls@setacrstyle}{\SetAcronymStyle}% } % \end{macrocode} %\end{option} @@ -1346,6 +1599,7 @@ name=true]{% % \end{macrocode} %\end{macro} % +%\begin{option}{xindy} % Define package option to specify that \app{xindy} will be % used to sort the glossaries: % \begin{macrocode} @@ -1354,48 +1608,90 @@ name=true]{% \setkeys[gls]{xindy}{#1}% } % \end{macrocode} +%\end{option} +% +%\begin{option}{xindygloss} +%\changes{3.14a}{2013-11-12}{new} +% Provide a synonym for \pkgopt[]{xindy} that can be passed via the +% document class options. +% \begin{macrocode} +\DeclareOptionX{xindygloss}{% + \glsxindytrue +} +% \end{macrocode} +%\end{option} % %\begin{option}{savewrites} %\changes{3.0}{2011/04/02}{new} % The \pkgopt{savewrites} package option is provided to save on % the number of write registers. % \begin{macrocode} -\define@boolkey{glossaries.sty}[gls]{savewrites}[true]{} +\define@boolkey{glossaries.sty}[gls]{savewrites}[true]{% + \ifglssavewrites + \renewcommand*{\glswritefiles}{\@glswritefiles}% + \else + \let\glswritefiles\relax + \fi +} % \end{macrocode} %\end{option} % Set default: % \begin{macrocode} \glssavewritesfalse +\let\glswritefiles\relax % \end{macrocode} % -%\begin{macro}{\GlossariesWarning} -% Prints a warning message. +%\begin{option}{compatible-3.07} +%\changes{3.11a}{2013-10-15}{cnew} % \begin{macrocode} -\newcommand*{\GlossariesWarning}[1]{% - \PackageWarning{glossaries}{#1}% -} +\define@boolkey{glossaries.sty}[gls]{compatible-3.07}[true]{} +\boolfalse{glscompatible-3.07} % \end{macrocode} -%\end{macro} -%\begin{macro}{\GlossariesWarningNoLine} -% Prints a warning message without the line number. +%\end{option} +% +%\begin{option}{compatible-2.07} +%\changes{3.0}{2011/04/02}{compatible-2.07 option added} % \begin{macrocode} -\newcommand*{\GlossariesWarningNoLine}[1]{% - \PackageWarningNoLine{glossaries}{#1}% -} +\define@boolkey{glossaries.sty}[gls]{compatible-2.07}[true]{% % \end{macrocode} -%\end{macro} -% Define package option to suppress warnings +% Also set 3.07 compatibility if this option is set. +%\changes{3.14a}{2013-11-12}{added check for 2.07 before setting 3.07 +%compatibility} % \begin{macrocode} -\DeclareOptionX{nowarn}{% - \renewcommand*{\GlossariesWarning}[1]{}% - \renewcommand*{\GlossariesWarningNoLine}[1]{}% + \ifbool{glscompatible-2.07}% + {% + \booltrue{glscompatible-3.07}% + }% + {}% } +\boolfalse{glscompatible-2.07} % \end{macrocode} -%\begin{option}{compatible-2.07} -%\changes{3.0}{2011/04/02}{compatible-2.07 option added} +%\end{option} +% +%\begin{option}{symbols} +% Create a \qt{symbols} glossary type +%\changes{3.11a}{2013-10-15}{new} % \begin{macrocode} -\define@boolkey{glossaries.sty}[gls]{compatible-2.07}[true]{} -\csname glscompatible-2.07false\endcsname +\newcommand{\@gls@do@symbolsdef}{} +\DeclareOptionX{symbols}{% + \renewcommand{\@gls@do@symbolsdef}{% + \newglossary[slg]{symbols}{sls}{slo}{\glssymbolsgroupname}% + \newcommand*{\printsymbols}[1][]{\printglossary[type=symbols,#1]}% + }% +} +% \end{macrocode} +%\end{option} +%\begin{option}{numbers} +% Create a \qt{symbols} glossary type +%\changes{3.11a}{2013-10-15}{new} +% \begin{macrocode} +\newcommand{\@gls@do@numbersdef}{} +\DeclareOptionX{numbers}{% + \renewcommand{\@gls@do@numbersdef}{% + \newglossary[nlg]{numbers}{nls}{nlo}{\glsnumbersgroupname}% + \newcommand*{\printnumbers}[1][]{\printglossary[type=numbers,#1]}% + }% +} % \end{macrocode} %\end{option} % @@ -1404,6 +1700,48 @@ name=true]{% % \begin{macrocode} \ProcessOptionsX % \end{macrocode} +% Load backward compatibility stuff: +% \begin{macrocode} +\RequirePackage{glossaries-compatible-307} +% \end{macrocode} +% +%\begin{macro}{\setupglossaries} +%\changes{3.11a}{2013-10-15}{new} +% Provide way to set options after package has been loaded. However, +% some options must be set before \cs{ProcessOptionsX}, so they have +% to be disabled: +% \begin{macrocode} +\disable@keys{glossaries.sty}{compatible-2.07,% + xindy,xindygloss,makeindex,% + acronym,translate,notranslate,nolong,nosuper,notree,nostyles,nomain} +% \end{macrocode} +%Now define \cs{setupglossaries}: +% \begin{macrocode} +\newcommand*{\setupglossaries}[1]{% + \renewcommand*{\@gls@setacrstyle}{}% + \ifglsacrshortcuts + \def\@gls@setupshortcuts{\glsacrshortcutstrue}% + \else + \def\@gls@setupshortcuts{% + \ifglsacrshortcuts + \DefineAcronymSynonyms + \fi + }% + \fi + \glsacrshortcutsfalse + \let\@gls@do@numbersdef\relax + \let\@gls@do@symbolssdef\relax + \let\@gls@do@acronymsdef\relax + \setkeys{glossaries.sty}{#1}% + \@gls@setacrstyle + \@gls@setupshortcuts + \@gls@do@acronymsdef + \@gls@do@numbersdef + \@gls@do@symbolssdef +} +% \end{macrocode} +%\end{macro} +% % If \isty{babel} package is loaded, check to see if % \isty{translator} is installed, but only if translation is % required. @@ -1432,7 +1770,6 @@ name=true]{% } \fi % \end{macrocode} -% % If chapters are defined and the user has requested the % section counter as a package option, \cs{@chapter} will % be modified so @@ -1474,12 +1811,13 @@ name=true]{% % must be disabled after \ics{makeglossaries}. % \begin{macrocode} \newcommand*{\@onlypremakeg}[1]{% -\ifx\@gls@onlypremakeg\@empty - \def\@gls@onlypremakeg{#1}% -\else - \expandafter\toks@\expandafter{\@gls@onlypremakeg}% - \edef\@gls@onlypremakeg{\the\toks@,\noexpand#1}% -\fi} + \ifx\@gls@onlypremakeg\@empty + \def\@gls@onlypremakeg{#1}% + \else + \expandafter\toks@\expandafter{\@gls@onlypremakeg}% + \edef\@gls@onlypremakeg{\the\toks@,\noexpand#1}% + \fi +} % \end{macrocode} %\end{macro} %\begin{macro}{\@disable@onlypremakeg} @@ -1614,7 +1952,7 @@ name=true]{% % \isty{babel} captions, otherwise load \isty{translator} % dictionary. %\changes{1.1}{2008 Feb 22}{Added support for translator package} -%\changes{1.15}{2008 August 15}{Added 'glssettoctitle} +%\changes{1.15}{2008 August 15}{Added \cs{glssettoctitle}} % \begin{macrocode} \@ifpackageloaded{translator}{% \usedictionary{glossaries-dictionary}% @@ -1677,6 +2015,11 @@ name=true]{% \@ifpackageloaded{babel}{% \RequirePackage{glossaries-babel}}{}% }} +\else +% \end{macrocode} +%\changes{3.13a}{2013-11-05}{added cs{@gls@nottranslatorhook} to else clause} +% \begin{macrocode} + \@gls@notranslatorhook \fi % \end{macrocode} %\begin{macro}{\nopostdesc} @@ -1699,6 +2042,12 @@ name=true]{% } % \end{macrocode} %\end{macro} +%\begin{macro}{\@no@post@desc} +% Used for comparison purposes. +% \begin{macrocode} +\newcommand*{\@no@post@desc}{\nopostdesc} +% \end{macrocode} +%\end{macro} %\begin{macro}{\glspar} % Provide means of having a paragraph break in glossary entries % \begin{macrocode} @@ -1923,7 +2272,7 @@ name=true]{% \ifglossaryexists{#1}{% \csgdef{@glossarypreamble@#1}{#2}% }{% - \PackageWarning{glossaries}{% + \GlossariesWarning{% Glossary `#1' is not defined% }% }% @@ -1957,8 +2306,10 @@ name=true]{% % style.) If \ics{phantomsection} % is defined, it uses \cs{\@p@glossarysection}, otherwise it % uses \cs{@glossarysection}. -%\changes{1.05}{2007 Aug 10}{added '@mkboth to 'glossarysection} -%\changes{2.02}{2009 July 13}{changed '@mkboth to 'glossarymark} +%\changes{1.05}{2007 Aug 10}{added \cs{@mkboth} to +%\cs{glossarysection}} +%\changes{2.02}{2009 July 13}{changed \cs{@mkboth} to +%\cs{glossarymark}} %\changes{3.0}{2011/04/02}{replaced \cs{@ifundefined} with %\cs{ifcsundef}} % \begin{macrocode} @@ -1971,55 +2322,65 @@ name=true]{% {% \@p@glossarysection{#1}{#2}% }% - \glossarymark{\glossarytoctitle}% +% \end{macrocode} +%\changes{3.13a}{2013-11-05}{changed \cs{glossarymark} to \cs{glsglossarymark}} +% \begin{macrocode} + \glsglossarymark{\glossarytoctitle}% } % \end{macrocode} %\end{macro} -%\begin{macro}{\glossarymark} +%\begin{macro}{\glsglossarymark} %\changes{2.02}{2009 July 13}{New} %\changes{2.03}{2009 Sep 23}{Added check to see if it's already %defined} -% Sets the header mark for the glossary. Takes the glossary short -% (TOC) title as the argument. %\changes{3.0}{2011/04/02}{replaced \cs{@ifundefined} with %\cs{ifcsundef}} +%\changes{3.11a}{2013-10-15}{replaced \cs{MakeUppercase} with +%\cs{mfirstucMakeUppercase}} +%\changes{3.13a}{2013-11-05}{renamed \cs{glossarymark} to +%\cs{glsglossarymark} to avoid conflict with memoir} +% Sets the header mark for the glossary. Takes the glossary short +% (TOC) title as the argument. % \begin{macrocode} \ifcsundef{glossarymark}% {% - \ifglsucmark - \newcommand{\glossarymark}[1]{% - \@mkboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}% - } - \else - \newcommand{\glossarymark}[1]{\@mkboth{#1}{#1}} - \fi + \newcommand{\glsglossarymark}[1]{\glossarymark{#1}} }% {% - \GlossariesWarning{overriding \string\glossarymark}% - \@ifclassloaded{memoir}% - { - \ifglsucmark - \renewcommand{\glossarymark}[1]{% - \@mkboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}% - } - \else - \renewcommand{\glossarymark}[1]{% + \@ifclassloaded{memoir} + {% + \newcommand{\glsglossarymark}[1]{% + \ifglsucmark \markboth{\memUChead{#1}}{\memUChead{#1}}% - } - \fi - } - { - \ifglsucmark - \renewcommand{\glossarymark}[1]{% - \@mkboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}% - } - \else - \renewcommand{\glossarymark}[1]{\@mkboth{#1}{#1}} - \fi + \else + \markboth{#1}{#1}% + \fi + } + }% + {% + \newcommand{\glsglossarymark}[1]{% + \ifglsucmark + \@mkboth{\mfirstucMakeUppercase{#1}}{\mfirstucMakeUppercase{#1}}% + \else + \@mkboth{#1}{#1}% + \fi + } } } % \end{macrocode} %\end{macro} +%\begin{macro}{\glossarymark} +% Provided for backward compatibility: +% \begin{macrocode} +\providecommand{\glossarymark}[1]{% + \ifglsucmark + \@mkboth{\mfirstucMakeUppercase{#1}}{\mfirstucMakeUppercase{#1}}% + \else + \@mkboth{#1}{#1}% + \fi +} +% \end{macrocode} +%\end{macro} % % The required sectional unit is given by \cs{@@glossarysec} % which was defined by the \pkgopt{section} package option. The @@ -2041,13 +2402,14 @@ name=true]{% %\changes{1.1}{2008 Feb 22}{numbered sections and auto label added} % \begin{macrocode} \newcommand*{\@glossarysection}[2]{% -\ifx\@@glossarysecstar\@empty - \csname\@@glossarysec\endcsname{#2}% -\else - \csname\@@glossarysec\endcsname*{#2}% - \@gls@toc{#1}{\@@glossarysec}% -\fi -\@@glossaryseclabel} + \ifx\@@glossarysecstar\@empty + \csname\@@glossarysec\endcsname{#2}% + \else + \csname\@@glossarysec\endcsname*{#2}% + \@gls@toc{#1}{\@@glossarysec}% + \fi + \@@glossaryseclabel +} % \end{macrocode} %\end{macro} % @@ -2060,15 +2422,16 @@ name=true]{% %\changes{1.1}{2008 Feb 22}{numbered sections and auto label added} % \begin{macrocode} \newcommand*{\@p@glossarysection}[2]{% -\glsclearpage -\phantomsection -\ifx\@@glossarysecstar\@empty - \csname\@@glossarysec\endcsname{#2}% -\else - \@gls@toc{#1}{\@@glossarysec}% - \csname\@@glossarysec\endcsname*{#2}% -\fi -\@@glossaryseclabel} + \glsclearpage + \phantomsection + \ifx\@@glossarysecstar\@empty + \csname\@@glossarysec\endcsname{#2}% + \else + \@gls@toc{#1}{\@@glossarysec}% + \csname\@@glossarysec\endcsname*{#2}% + \fi + \@@glossaryseclabel +} % \end{macrocode} %\end{macro} % @@ -2124,13 +2487,14 @@ name=true]{% %\changes{1.1}{2008 Feb 22}{numberline added} % \begin{macrocode} \newcommand*{\@gls@toc}[2]{% -\ifglstoc - \ifglsnumberline - \addcontentsline{toc}{#2}{\numberline{}#1}% - \else - \addcontentsline{toc}{#2}{#1}% + \ifglstoc + \ifglsnumberline + \addcontentsline{toc}{#2}{\numberline{}#1}% + \else + \addcontentsline{toc}{#2}{#1}% + \fi \fi -\fi} +} % \end{macrocode} %\end{macro} % @@ -2689,13 +3053,14 @@ name=true]{% \renewcommand*{\gls@codepage}{#1}% } % \end{macrocode} -%\changes{}{}{} +%\changes{3.07}{2013-07-05}{Added check for fontspec} % Suggested by egreg: % \begin{macrocode} -\AtBeginDocument{ - \ifx\gls@codepage\@empty - \@ifpackageloaded{fontspec}{\def\gls@codepage{utf8}}{} -\fi} + \AtBeginDocument{% + \ifx\gls@codepage\@empty + \@ifpackageloaded{fontspec}{\def\gls@codepage{utf8}}{}% + \fi + } \else \newcommand*{\GlsSetXdyCodePage}[1]{% \glsnoxindywarning\GlsSetXdyCodePage} @@ -2758,10 +3123,14 @@ name=true]{% % control sequence which will be set to the entry label in the % current iteration. %\changes{2.01}{2009 May 30}{replaced \cs{ifthenelse} with \cs{ifx}} +%\changes{3.11a}{2013-10-15}{replaced \cs{ifx} with \cs{ifdefempty}} % \begin{macrocode} \newcommand*{\forglsentries}[3][\glsdefaulttype]{% \edef\@@glo@list{\csname glolist@#1\endcsname}% - \@for#2:=\@@glo@list\do{\ifx#2\@empty\else#3\fi}% + \@for#2:=\@@glo@list\do + {% + \ifdefempty{#2}{}{#3}% + }% } % \end{macrocode} %\end{macro} @@ -2774,8 +3143,11 @@ name=true]{% % is given by \cs{@@this@glo@}. % \begin{macrocode} \newcommand*{\forallglsentries}[3][\@glo@types]{% -\expandafter\forallglossaries\expandafter[#1]{\@@this@glo@}{% -\forglsentries[\@@this@glo@]{#2}{#3}}} + \expandafter\forallglossaries\expandafter[#1]{\@@this@glo@}% + {% + \forglsentries[\@@this@glo@]{#2}{#3}% + }% +} % \end{macrocode} %\end{macro} % @@ -2793,8 +3165,10 @@ name=true]{% %\end{macro} % %\begin{macro}{\ifglsentryexists} -% To check to see if a glossary entry has been defined use:\\[10pt] -% \cs{ifglsentryexists}\marg{label}\marg{true text}\marg{false text}\\[10pt] +% To check to see if a glossary entry has been defined use: +%\begin{definition} +% \cs{ifglsentryexists}\marg{label}\marg{true text}\marg{false text} +%\end{definition} %where \meta{label} is the entry's label. %\changes{3.0}{2011/04/02}{replaced \cs{@ifundefined} with %\cs{ifcsundef}} @@ -2807,13 +3181,17 @@ name=true]{% % %\begin{macro}{\ifglsused} % To determine if given glossary entry has been -% used in the document text yet use:\\[10pt] -% \cs{ifglsused}\marg{label}\marg{true text}\marg{false text}\\[10pt] +% used in the document text yet use: +%\begin{definition} +% \cs{ifglsused}\marg{label}\marg{true text}\marg{false text} +%\end{definition} % where \meta{label} is the entry's label. % If true it will do \meta{true text} % otherwise it will do \meta{false text}. +%\changes{3.11a}{2013-10-15}{replaced \cs{ifthenelse} with +%\cs{ifbool}} % \begin{macrocode} -\newcommand*{\ifglsused}[3]{\ifthenelse{\boolean{glo@#1@flag}}{#2}{#3}} +\newcommand*{\ifglsused}[3]{\ifbool{glo@#1@flag}{#2}{#3}} % \end{macrocode} %\end{macro} %The following two commands will cause an error if the given @@ -2884,6 +3262,92 @@ name=true]{% % \end{macrocode} %\end{macro} % +%\begin{macro}{\ifglshasdesc} +%\cs{ifglshasdesc}\marg{label}\marg{true part}\marg{false part} +%\changes{3.08a}{2013-09-28}{new} +%\changes{3.11a}{2013-10-15}{replaced \cs{ifdefempty} with +%\cs{ifcsempty}} +% \begin{macrocode} +\newcommand*{\ifglshasdesc}[3]{% + \ifcsempty{glo@#1@desc}% + {#3}% + {#2}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\ifglsdescsuppressed} +%\cs{ifglsdescsuppressed}\marg{label}\marg{true part}\marg{false part} +%\changes{3.08a}{2013-09-28}{new} +% Does \meta{true part} if the description is just \cs{nopostdesc} +% otherwise does \meta{false part}. +% \begin{macrocode} +\newcommand*{\ifglsdescsuppressed}[3]{% + \ifcsequal{glos@#1@desc}{@no@post@desc}% + {#2}% + {#3}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\ifglshassymbol} +%\cs{ifglshassymbol}\marg{label}\marg{true part}\marg{false part} +%\changes{3.08a}{2013-09-28}{new} +%\changes{3.09a}{2013-10-09}{changed test to check for +%\cs{@gls@default@symbol}} +%\changes{3.11a}{2013-10-15}{replaced \cs{ifdefempty} with +%\cs{ifcsempty}} +% \begin{macrocode} +\newcommand*{\ifglshassymbol}[3]{% + \ifcsempty{glo@#1@symbol}% + {#3}% + {% + \expandafter\ifx\csname glo@#1@symbol\endcsname\@gls@default@value + #3% + \else + #2% + \fi + }% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\ifglshaslong} +%\cs{ifglshaslong}\marg{label}\marg{true part}\marg{false part} +%\changes{3.11a}{2013-10-15}{new} +% \begin{macrocode} +\newcommand*{\ifglshaslong}[3]{% + \ifcsempty{glo@#1@long}% + {#3}% + {% + \expandafter\ifx\csname glo@#1@long\endcsname\@gls@default@value + #3% + \else + #2% + \fi + }% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\ifglshasshort} +%\cs{ifglshasshort}\marg{label}\marg{true part}\marg{false part} +%\changes{3.11a}{2013-10-15}{new} +% \begin{macrocode} +\newcommand*{\ifglshasshort}[3]{% + \ifcsempty{glo@#1@short}% + {#3}% + {% + \expandafter\ifx\csname glo@#1@short\endcsname\@gls@default@value + #3% + \else + #2% + \fi + }% +} +% \end{macrocode} +%\end{macro} +% %\subsection{Defining new glossaries}\label{sec:newglos} % A comma-separated list of glossary names is stored % in \cs{@glo@types}. When a new glossary type @@ -2896,9 +3360,45 @@ name=true]{% % \end{macrocode} %\end{macro} % +%\begin{macro}{\@gls@provide@newglossary} +%\changes{3.10a}{2013-10-13}{new} +% If the user removes the glossary package from their document, +% ensure the next run doesn't throw a load of undefined control +% sequence errors when the aux file is parsed. +% \begin{macrocode} +\newcommand*\@gls@provide@newglossary{% + \protected@write\@auxout{}{\string\providecommand\string\@newglossary[4]{}}% +% \end{macrocode} +% Only need to do this once. +% \begin{macrocode} + \let\@gls@provide@newglossary\relax +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\defglsentryfmt} +%\changes{3.11a}{2013-10-15}{new} +% Allow different glossaries to have different display styles. +% \begin{macrocode} +\newcommand*{\defglsentryfmt}[2][\glsdefaulttype]{% + \csgdef{gls@#1@entryfmt}{#2}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\gls@doentryfmt} +%\changes{3.11a}{2013-10-15}{new} +% \begin{macrocode} +\newcommand*{\gls@doentryfmt}[1]{\csuse{gls@#1@entryfmt}} +% \end{macrocode} +%\end{macro} +% % A new glossary type is defined using \cs{newglossary}. -% Syntax:\\[10pt]\cs{newglossary}\oarg{log-ext}\marg{name}\marg{in-ext}\marg{out-ext}% -%\marg{title}\oarg{counter}\\[10pt]% +% Syntax: +%\begin{definition} +%\cs{newglossary}\oarg{log-ext}\marg{name}\marg{in-ext}\marg{out-ext}% +%\marg{title}\oarg{counter} +%\end{definition} % where \meta{log-ext} is the extension of the \app{makeindex} % transcript file, \meta{in-ext} is the extension of the glossary % input file (read in by \ics{printglossary} and created by @@ -2915,17 +3415,20 @@ name=true]{% %\begin{macro}{\newglossary} % \begin{macrocode} \newcommand*{\newglossary}[5][glg]{% -\ifglossaryexists{#2}{% - \PackageError{glossaries}{Glossary type `#2' already exists}{% - You can't define a new glossary called `#2' because it already - exists}% -}{% + \ifglossaryexists{#2}% + {% + \PackageError{glossaries}{Glossary type `#2' already exists}{% + You can't define a new glossary called `#2' because it already + exists}% + }% + {% % \end{macrocode} % Check if default has been set % \begin{macrocode} - \ifx\glsdefaulttype\relax + \ifundef\glsdefaulttype + {% \gdef\glsdefaulttype{#2}% - \fi + }{}% % \end{macrocode} % Add this to the list of glossary types: % \begin{macrocode} @@ -2943,12 +3446,16 @@ name=true]{% \expandafter\def\csname @glotype@#2@in\endcsname{#3}% \expandafter\def\csname @glotype@#2@out\endcsname{#4}% \expandafter\def\csname @glotype@#2@title\endcsname{#5}% +% \end{macrocode} +%\changes{3.10a}{2013-10-13}{added \cs{@gls@provide@newglossary}} +% \begin{macrocode} + \@gls@provide@newglossary \protected@write\@auxout{}{\string\@newglossary{#2}{#1}{#3}{#4}}% % \end{macrocode} % How to display this entry in the document text (uses -% \cs{glsdisplay} and \cs{glsdisplayfirst} by -% default). These can be redefined by the user later if required -% (see \ics{defglsdisplay} and \ics{defglsdisplayfirst}). These +% \cs{glsentry} by +% default). This can be redefined by the user later if required +% (see \ics{defglsentry}). This % may already have been defined if this has been specified as % a list of acronyms. %\changes{2.04}{2009 November 10}{added check to determine if @@ -2956,17 +3463,12 @@ name=true]{% % have been defined.} %\changes{3.0}{2011/04/02}{replaced \cs{@ifundefined} with %\cs{ifcsundef}} +%\changes{3.11a}{2013-10-15}{replaced \cs{glsdisplay} and +%\cs{glsdisplayfirst} with \cs{glsentryfmt}} % \begin{macrocode} - \ifcsundef{gls@#2@display}% + \ifcsundef{gls@#2@entryfmt}% {% - \expandafter\gdef\csname gls@#2@display\endcsname{\glsdisplay}% - }% - {}% - \ifcsundef{gls@#2@displayfirst}% - {% - \expandafter\gdef\csname gls@#2@displayfirst\endcsname{% - \glsdisplayfirst - }% + \defglsentryfmt[#2]{\glsentryfmt}% }% {}% % \end{macrocode} @@ -3031,7 +3533,8 @@ name=true]{% %\begin{macro}{\@gls@getcounter} % \begin{macrocode} \newcommand*{\@gls@getcounter}[1]{% -\csname @glotype@#1@counter\endcsname} + \csname @glotype@#1@counter\endcsname +} % \end{macrocode} %\end{macro} % @@ -3040,6 +3543,16 @@ name=true]{% % \begin{macrocode} \glsdefmain % \end{macrocode} +% Define the \qt{acronym} glossaries if required. +% \begin{macrocode} +\@gls@do@acronymsdef +% \end{macrocode} +% Define the \qt{symbols} and \qt{numbers} glossaries if required. +% \begin{macrocode} +\@gls@do@symbolsdef +\@gls@do@numbersdef +% \end{macrocode} +% % %\subsection{Defining new entries}\label{sec:newentry} % New glossary entries are defined using \cs{newglossaryentry}. @@ -3068,20 +3581,10 @@ name=true]{% %\begin{key}{description} % The \gloskey{description} key is usually only used in % the glossary, but can be made to appear in the text by redefining -% \ics{glsdisplay} and \ics{glsdisplayfirst} (or -% using \ics{defglsdisplay} and \ics{defglsdisplayfirst}), however, -% you will have to disable the sanitize option (using the -% \pkgopt{sanitize} package option, -% "sanitize={description=false}", and protect fragile -% commands). The \gloskey{description} key is required when -% defining a new glossary entry. (Be careful not to make the -% description too long, because \app{makeindex} has a limited -% buffer. \cs{@glo@desc} is defined to be a short command -% to discourage lengthy descriptions -% for this reason. If you do have a very long description, or if -% you require paragraph breaks, define a separate command that -% contains the description, and use it as the value to the -% \gloskey{description} key.) +% \ics{glsentryfmt} or using \ics{defglsentryfmt}. The +% \gloskey{description} key is required when +% defining a new glossary entry. If a long description is required, +% use \ics{longnewglossaryentry} instead of \ics{newglossaryentry}. % \begin{macrocode} \define@key{glossentry}{description}{% \def\@glo@desc{#1}% @@ -3103,7 +3606,8 @@ name=true]{% % not for use in the document). The \gloskey{sort} key is optional % when defining a new glossary entry. If omitted, the value % is given by \meta{name} \meta{description}. -%\changes{1.18}{2009 January 14}{moved sanitization to 'newglossaryentry} +%\changes{1.18}{2009 January 14}{moved sanitization to +%\cs{newglossaryentry}} % \begin{macrocode} \define@key{glossentry}{sort}{% \def\@glo@sort{#1}} @@ -3155,6 +3659,12 @@ name=true]{% } % \end{macrocode} %\end{key} +%\begin{macro}{\@gls@default@value} +%\changes{3.09a}{2013-10-09}{new} +% \begin{macrocode} +\newcommand*{\@gls@default@value}{\relax} +% \end{macrocode} +%\end{macro} % %\begin{key}{symbol} % The \gloskey{symbol} key is ignored by most of the predefined @@ -3162,12 +3672,10 @@ name=true]{% % It is provided for glossary styles that require an associated % symbol, as well as a name and description. To make this value % appear in the glossary, you need to redefine -% \ics{glossaryentryfield} so that it uses its fourth parameter. +% \ics{glossentry}. % If you want this value to appear in the text when the term is used % by commands like \ics{gls}, you will need to change -% \ics{glsdisplay} and \ics{glsdisplayfirst} (either -% explicitly for all glossaries or via \ics{defglsdisplay} -% and \ics{defglsdisplayfirst} for individual glossaries). +% \ics{glsentryfmt} (or use for \ics{defglsentryfmt} individual glossaries). % \begin{macrocode} \define@key{glossentry}{symbol}{% \def\@glo@symbol{#1}% @@ -3219,14 +3727,28 @@ name=true]{% % The \gloskey{see} key specifies a list of cross-references % \changes{1.17}{2008 December 26}{new} % \changes{3.0}{2011/04/02}{added \cs{@glo@seeautonumberlist}} +%\changes{3.13a}{2013-11-05}{added \cs{gls@checkseeallowed}} % \begin{macrocode} \define@key{glossentry}{see}{% + \gls@checkseeallowed \def\@glo@see{#1}% \@glo@seeautonumberlist } % \end{macrocode} %\end{key} % +%\begin{macro}{\gls@checkseeallowed} +%\changes{3.13a}{2013-11-05}{new} +% \begin{macrocode} +\newcommand*{\gls@checkseeallowed}{% + \PackageError{glossaries}% + {`see' key may only be used after \string\makeglossaries}% + {You must use \string\makeglossaries\space before defining + any entries that have a `see' key}% +} +% \end{macrocode} +%\end{macro} +% %\begin{key}{parent} % The \gloskey{parent} key specifies the parent entry, if % required. @@ -3354,11 +3876,29 @@ name=true]{% haven't specified the entry name}} % \end{macrocode} %\end{macro} +%\begin{macro}{\@glsnodesc} +% \changes{3.10a}{2013-10-13}{new} +% Define command to generate error if \gloskey{description} key is missing. +% \begin{macrocode} +\newcommand*\@glsnodesc{% + \PackageError{glossaries} + {% + description key required in \string\newglossaryentry\space + for entry `\@glo@label'% + }% + {% + You haven't specified the entry description% + }% +}% +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\@glsdefaultplural} -% Define command to set default plural. % \changes{1.17}{2008 December 26}{new} +%\changes{3.10a}{2013-10-13}{Obsolete} +% Now obsolete. Don't use. % \begin{macrocode} -\newcommand*{\@glsdefaultplural}{\@glo@text\glspluralsuffix} +\newcommand*{\@glsdefaultplural}{} % \end{macrocode} %\end{macro} % @@ -3398,6 +3938,131 @@ name=true]{% % \end{macrocode} %\end{macro} % +%\begin{macro}{\@gls@noexpand@field} +% \begin{macrocode} +\newcommand{\@@gls@noexpand@field}[3]{% + \expandafter\global\expandafter + \let\csname glo@#1@#2\endcsname#3% +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@gls@noexpand@fields} +% \begin{macrocode} +\newcommand{\@gls@noexpand@fields}[4]{% + \ifcsdef{gls@assign@#3@field} + {% + \ifdefequal{#4}{\@gls@default@value}% + {% + \edef\@gls@value{\expandonce{#1}}% + \csuse{gls@assign@#3@field}{#2}{\@gls@value}% + }% + {% + \csuse{gls@assign@#3@field}{#2}{#4}% + }% + }% + {% + \ifdefequal{#4}{\@gls@default@value}% + {% + \edef\@gls@value{\expandonce{#1}}% +% \end{macrocode} +%\changes{3.11a}{2013-10-15}{Fixed bug \texttt{expand} replaced with +%\texttt{noexpand}} +% \begin{macrocode} + \@@gls@noexpand@field{#2}{#3}{\@gls@value}% + }% + {% + \@@gls@noexpand@field{#2}{#3}{#4}% + }% + }% +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@@gls@expand@field} +% \begin{macrocode} +\newcommand{\@@gls@expand@field}[3]{% + \expandafter + \protected@xdef\csname glo@#1@#2\endcsname{#3}% +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{@gls@expand@fields} +% \begin{macrocode} +\newcommand{\@gls@expand@fields}[4]{% + \ifcsdef{gls@assign@#3@field} + {% + \ifdefequal{#4}{\@gls@default@value}% + {% + \edef\@gls@value{\expandonce{#1}}% + \csuse{gls@assign@#3@field}{#2}{\@gls@value}% + }% + {% + \expandafter\@gls@startswithexpandonce#4\relax\relax\gls@endcheck + {% + \@@gls@expand@field{#2}{#3}{#4}% + }% + {% + \csuse{gls@assign@#3@field}{#2}{#4}% + }% + }% + }% + {% + \ifdefequal{#4}{\@gls@default@value}% + {% + \@@gls@expand@field{#2}{#3}{#1}% + }% + {% + \@@gls@expand@field{#2}{#3}{#4}% + }% + }% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@gls@startswithexpandonce} +% \begin{macrocode} +\def\@gls@expandonce{\expandonce} +\def\@gls@startswithexpandonce#1#2\gls@endcheck#3#4{% + \def\@gls@tmp{#1}% + \ifdefequal{\@gls@expandonce}{\@gls@tmp}{#3}{#4}% +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\gls@assign@field} +%\begin{definition} +%\cs{gls@assign@field}\marg{def value}\marg{glossary type}\marg{field}\marg{tmp +%cs} +%\end{definition} +% Assigns an entry field. Expansion performed by default (except for +% name, symbol and description where backward compatibility required). +% If \meta{tmp cs} is \meta{@gls@default@value}, \meta{def value} is +% used instead. +%\changes{3.08a}{2013-09-28}{new} +% \begin{macrocode} +\let\gls@assign@field\@gls@expand@fields +% \end{macrocode} +%\end{macro} +%\begin{macro}{\glsexpandfields} +%\changes{3.08a}{2013-09-28}{new} +% Fully expand values when assigning fields (except for specific +% fields that are overridden by \cs{glssetnoexpandfield}). +% \begin{macrocode} +\newcommand*{\glsexpandfields}{% + \let\gls@assign@field\@gls@expand@fields +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\glsnoexpandfields} +%\changes{3.08a}{2013-09-28}{new} +% Don't expand values when assigning fields (except for specific +% fields that are overridden by \cs{glssetexpandfield}). +% \begin{macrocode} +\newcommand*{\glsnoexpandfields}{% + \let\gls@assign@field\@gls@noexpand@fields +} +% \end{macrocode} +%\end{macro} +% +% %\begin{macro}{\newglossaryentry} % Define \cs{newglossaryentry}% % \marg{label} \marg{key-val list}. @@ -3413,73 +4078,408 @@ name=true]{% % \begin{macrocode} \glsdoifnoexists{#1}% {% + \gls@defglossaryentry{#1}{#2}% + }% +} % \end{macrocode} -% Store label +%\end{macro} +% +%\begin{macro}{\provideglossaryentry} +% Like \cs{newglossaryentry} but does nothing if the entry has +% already been defined. +%\changes{3.14a}{2013-11-12}{new} % \begin{macrocode} - \def\@glo@label{#1}% +\newrobustcmd{\provideglossaryentry}[2]{% + \ifglsentryexists{#1}% + {}% + {% + \gls@defglossaryentry{#1}{#2}% + }% +} +\@onlypreamble{\provideglossaryentry} % \end{macrocode} -% Set up defaults. If the \gloskey{name} or \gloskey{description} -% keys are omitted, an error will be generated. +%\end{macro} +% +%\begin{macro}{\new@glossaryentry} +%\changes{3.10a}{2013-10-13}{new} +% For use in document environment. % \begin{macrocode} - \let\@glo@name\@glsnoname +\newrobustcmd{\new@glossaryentry}[2]{% + \ifundef\@gls@deffile + {% + \global\newwrite\@gls@deffile + \immediate\openout\@gls@deffile=\jobname.glsdefs + }% + {}% + \ifglsentryexists{#1}{}% + {% + \gls@defglossaryentry{#1}{#2}% + }% + \@gls@writedef{#1}% +} +\AtBeginDocument +{ + \makeatletter + \InputIfFileExists{\jobname.glsdefs}{}{}% + \makeatother + \let\newglossaryentry\new@glossaryentry +} +\AtEndDocument{\ifdef\@gls@deffile{\closeout\@gls@deffile}{}} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@gls@writedef} +%\changes{3.10a}{2013-10-13}{new} +% Writes glossary entry definition to \cs{@gls@deffile}. +% \begin{macrocode} +\newcommand*{\@gls@writedef}[1]{% + \immediate\write\@gls@deffile + {% + \string\ifglsentryexists{#1}{}\expandafter\@gobble\string\%^^J% + \expandafter\@gobble\string\{\expandafter\@gobble\string\%^^J% + \string\gls@defglossaryentry{#1}\expandafter\@gobble\string\%^^J% + \expandafter\@gobble\string\{\expandafter\@gobble\string\%% + }% % \end{macrocode} -%\changes{1.08}{2007 Oct 13}{Fixed error message to say ``description -%key'' rather than ``desc key''} +% Write key value information: % \begin{macrocode} - \def\@glo@desc{% - \PackageError{glossaries} - {% - description key required in \string\newglossaryentry\space - for entry `\@glo@label'% + \@for\@gls@map:=\@gls@keymap\do + {% + \edef\glo@value{\expandafter\expandonce + \csname glo@#1@\expandafter\@secondoftwo\@gls@map\endcsname}% + \@onelevel@sanitize\glo@value + \immediate\write\@gls@deffile + {% + \expandafter\@firstoftwo\@gls@map + =\expandafter\@gobble\string\{\glo@value\expandafter\@gobble\string\},% + \expandafter\@gobble\string\%% + }% + }% +% \end{macrocode} +% Provide hook: +% \begin{macrocode} + \glswritedefhook + \immediate\write\@gls@deffile + {% + \expandafter\@gobble\string\%^^J% + \expandafter\@gobble\string\}\expandafter\@gobble\string\%^^J% + \expandafter\@gobble\string\}\expandafter\@gobble\string\%% + }% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@gls@keymap} +%\changes{3.10a}{2013-10-13}{new} +% List of entry definition key names and corresponding tag in +% control sequence used to store the value. +% \begin{macrocode} +\newcommand*{\@gls@keymap}{% + {name}{name},% + {sort}{sortvalue},% unescaped sort value + {type}{type},% + {first}{first},% + {firstplural}{firstpl},% + {text}{text},% + {plural}{plural},% + {description}{desc},% + {descriptionplural}{descplural},% + {symbol}{symbol},% + {symbolplural}{symbolplural},% + {user1}{useri},% + {user2}{userii},% + {user3}{useriii},% + {user4}{useriv},% + {user5}{userv},% + {user6}{uservi},% + {long}{long},% + {longplural}{longpl},% + {short}{short},% + {shortplural}{shortpl},% + {counter}{counter},% + {parent}{parent}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\glsaddkey} +%\begin{definition} +%\cs{glsaddkey}\marg{key}\marg{default value}\marg{no link cs}\marg{no link ucfirst +%cs}\marg{link cs}\marg{link ucfirst cs}\marg{link allcaps cs} +%\end{definition} +%\changes{3.12a}{2013-10-16}{new} +% Allow user to add their own custom keys. +% \begin{macrocode} +\newcommand*{\glsaddkey}{\@ifstar\@sglsaddkey\@glsaddkey} +% \end{macrocode} +% Starred version switches on expansion for this key. +% \begin{macrocode} +\newcommand*{\@sglsaddkey}[1]{% + \key@ifundefined{glossentry}{#1}% + {% + \expandafter\newcommand\expandafter*\expandafter + {\csname gls@assign@#1@field\endcsname}[2]{% + \@@gls@expand@field{##1}{#1}{##2}% + }% + }% + {}% + \@glsaddkey{#1}% +} +% \end{macrocode} +% Unstarred version doesn't override default expansion. +% \begin{macrocode} +\newcommand*{\@glsaddkey}[7]{% +% \end{macrocode} +% Check the specified key doesn't already exist. +% \begin{macrocode} + \key@ifundefined{glossentry}{#1}% + {% +% \end{macrocode} +% Set up the key. +% \begin{macrocode} + \define@key{glossentry}{#1}{\csdef{@glo@#1}{##1}}% + \appto\@gls@keymap{,{#1}{#1}}% +% \end{macrocode} +% Set the default value. +% \begin{macrocode} + \appto\@newglossaryentryprehook{\csdef{@glo@#1}{#2}}% +% \end{macrocode} +% Assignment code. +% \begin{macrocode} + \appto\@newglossaryentryposthook{% + \letcs{\@glo@tmp}{@glo@#1}% + \gls@assign@field{#2}{\@glo@label}{#1}{\@glo@tmp}% + }% +% \end{macrocode} +% Define the no-link commands. +% \begin{macrocode} + \newcommand*{#3}[1]{\csuse{glo@##1@#1}}% + \newcommand*{#4}[1]{% + \letcs{\@glo@text}{glo@##1@#1}% + \xmakefirstuc\@glo@text + }% +% \end{macrocode} +% Now for the commands with links. First the version with no case +% change: +% \begin{macrocode} + \ifcsdef{@gls@user@#1@}% + {% + \PackageError{glossaries}% + {Can't define `\string#5' as helper command + `\expandafter\string\csname @gls@user@#1@\endcsname' already exists}% + {}% + }% + {% + \newrobustcmd*{#5}{\@ifstar{\csuse{@sgls@user@#1}}{\csuse{@gls@user@#1}}}% + \expandafter\newcommand\expandafter*\expandafter + {\csname @sgls@user@#1\endcsname}[1][]{% + \csuse{@gls@user@#1}[hyper=false,##1]% + }% + \expandafter\newcommand\expandafter*\expandafter + {\csname @gls@user@#1\endcsname}[2][]{% + \new@ifnextchar[% + {\csuse{@gls@user@#1@}{##1}{##2}}% + {\csuse{@gls@user@#1@}{##1}{##2}[]}}% + \csdef{@gls@user@#1@}##1##2[##3]{% + \glsdoifexists{##2}% + {% + \edef\@glo@type{\glsentrytype{##2}}% + \@gls@link[##1]{##2}{#3{##2}##3}% + }% }% - {% - You haven't specified the entry description% + }% +% \end{macrocode} +% Next the version with the first letter converted to upper case: +% \begin{macrocode} + \ifcsdef{@Gls@user@#1@}% + {% + \PackageError{glossaries}% + {Can't define `\string#6' as helper command + `\expandafter\string\csname @Gls@user@#1@\endcsname' already exists}% + {}% + }% + {% + \newrobustcmd*{#6}{\@ifstar{\csuse{@sGls@user@#1}}{\csuse{@Gls@user@#1}}}% + \expandafter\newcommand\expandafter*\expandafter + {\csname @sGls@user@#1\endcsname}[1][]{% + \csuse{@Gls@user@#1}[hyper=false,##1]% + }% + \expandafter\newcommand\expandafter*\expandafter + {\csname @Gls@user@#1\endcsname}[2][]{% + \new@ifnextchar[% + {\csuse{@Gls@user@#1@}{##1}{##2}}% + {\csuse{@Gls@user@#1@}{##1}{##2}[]}}% + \csdef{@Gls@user@#1@}##1##2[##3]{% + \glsdoifexists{##2}% + {% + \edef\@glo@type{\glsentrytype{##2}}% + \@gls@link[##1]{##2}{#4{##2}##3}% + }% + }% + }% +% \end{macrocode} +% Finally the all caps version: +% \begin{macrocode} + \ifcsdef{@GLS@user@#1@}% + {% + \PackageError{glossaries}% + {Can't define `\string#7' as helper command + `\expandafter\string\csname @GLS@user@#1@\endcsname' already exists}% + {}% + }% + {% + \newrobustcmd*{#7}{\@ifstar{\csuse{@sGLS@user@#1}}{\csuse{@GLS@user@#1}}}% + \expandafter\newcommand\expandafter*\expandafter + {\csname @sGLS@user@#1\endcsname}[1][]{% + \csuse{@GLS@user@#1}[hyper=false,##1]% + }% + \expandafter\newcommand\expandafter*\expandafter + {\csname @GLS@user@#1\endcsname}[2][]{% + \new@ifnextchar[% + {\csuse{@GLS@user@#1@}{##1}{##2}}% + {\csuse{@GLS@user@#1@}{##1}{##2}[]}}% + \csdef{@GLS@user@#1@}##1##2[##3]{% + \glsdoifexists{##2}% + {% + \edef\@glo@type{\glsentrytype{##2}}% + \@gls@link[##1]{##2}{\mfirstucMakeUppercase{#3{##2}##3}}% + }% }% }% + }% + {% + \PackageError{glossaries}{Key `#1' already exists}{}% + }% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\glswritedefhook} +%\changes{3.10a}{2013-10-13}{new} +% \begin{macrocode} +\newcommand*{\glswritedefhook}{} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\gls@assign@desc} +%\changes{3.11a}{2013-10-15}{new} +% \begin{macrocode} +\newcommand*{\gls@assign@desc}[1]{% + \gls@assign@field{}{#1}{desc}{\@glo@desc}% + \gls@assign@field{\@glo@desc}{#1}{descplural}{\@glo@descplural}% +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\longnewglossaryentry} +%\changes{3.11a}{2013-10-15}{new} +% \begin{macrocode} +\newcommand{\longnewglossaryentry}[3]{% + \glsdoifnoexists{#1}% + {% + \bgroup + \let\@org@newglossaryentryprehook\@newglossaryentryprehook + \long\def\@newglossaryentryprehook{% + \long\def\@glo@desc{#3\leavevmode\unskip\nopostdesc}% + \@org@newglossaryentryprehook + }% + \renewcommand*{\gls@assign@desc}[1]{% + \global\cslet{glo@#1@desc}{\@glo@desc}% + \global\cslet{glo@#1@descplural}{\@glo@desc}% + } + \gls@defglossaryentry{#1}{#2}% + \egroup + } +} +% \end{macrocode} +% Only allowed in the preamble. (Otherwise a long description could +% cause problems when writing the entry definition to the temporary +% file.) +% \begin{macrocode} +\@onlypreamble{\longnewglossaryentry} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\longprovideglossaryentry} +%\changes{3.14a}{2013-11-12}{new} +% As the above but only defines the entry if it doesn't already +% exist. +% \begin{macrocode} +\newcommand{\longprovideglossaryentry}[3]{% + \ifglsentryexists{#1}{}% + {\longnewglossaryentry{#1}{#2}{#3}}% +} +\@onlypreamble{\longprovideglossaryentry} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\gls@defglossaryentry} +%\begin{definition} +%\cs{gls@defglossaryentry}\marg{label}\marg{key-val list} +%\end{definition} +% Defines a new entry without checking if it already exists. +%\changes{3.10a}{2013-10-13}{new} +% \begin{macrocode} +\newcommand{\gls@defglossaryentry}[2]{% +% \end{macrocode} +% Store label +% \begin{macrocode} + \def\@glo@label{#1}% +% \end{macrocode} +% \changes{3.12a}{2013-10-16}{added \cs{glslabel}} +% Provide a means for user define keys to reference the label: +% \begin{macrocode} + \let\glslabel\@glo@label +% \end{macrocode} +% Set up defaults. If the \gloskey{name} or \gloskey{description} +% keys are omitted, an error will be generated. +% \begin{macrocode} + \let\@glo@name\@glsnoname + \let\@glo@desc\@glsnodesc % \end{macrocode} % \changes{1.12}{2008 Mar 8}{descriptionplural support added} % \begin{macrocode} - \def\@glo@descplural{\@glo@desc}% + \let\@glo@descplural\@gls@default@value % \end{macrocode} % \begin{macrocode} - \def\@glo@type{\glsdefaulttype}% - \def\@glo@symbol{\relax}% + \let\@glo@type\@gls@default@value + \let\@glo@symbol\@gls@default@value % \end{macrocode} % \changes{1.12}{2008 Mar 8}{symbolplural support added} % \begin{macrocode} - \def\@glo@symbolplural{\@glo@symbol}% + \let\@glo@symbolplural\@gls@default@value % \end{macrocode} % \begin{macrocode} - \def\@glo@text{\@glo@name}% + \let\@glo@text\@gls@default@value % \end{macrocode} % \begin{macrocode} - \let\@glo@plural\@glsdefaultplural + \let\@glo@plural\@gls@default@value % \end{macrocode} % \changes{1.13}{2008 May 10}{Changed default first value} % Using \cs{let} instead of \cs{def} to make later comparison % avoid expansion issues. (Thanks to Ulrich~Diez for suggesting % this.) % \changes{1.16}{2008 August 27}{Changed def to let} +%\changes{3.10a}{2013-10-13}{Changed to using \cs{@gls@default@value}} % \begin{macrocode} - \let\@glo@first\relax + \let\@glo@first\@gls@default@value % \end{macrocode} % \changes{1.12}{2008 Mar 8}{Changed default first plural to be first % key with s appended (was text key with s appended)} % \changes{1.13}{2008 May 10}{Changed default firstplural value} % \begin{macrocode} - \let\@glo@firstplural\relax + \let\@glo@firstplural\@gls@default@value % \end{macrocode} % Set the default sort: +%\changes{3.10a}{2013-10-13}{Changed to using \cs{@gls@default@value}} %\changes{1.05}{2007 Aug 10}{Changed the default value of the sort % key to just the value of the name key}% %\changes{1.18}{2009 January 14}{Changed default value of sort -% to '@glsdefaultsort} +% to \cs{@glsdefaultsort}} % \begin{macrocode} - \let\@glo@sort\@glsdefaultsort + \let\@glo@sort\@gls@default@value % \end{macrocode} % Set the default counter: % \begin{macrocode} - \def\@glo@counter{\@gls@getcounter{\@glo@type}}% + \let\@glo@counter\@gls@default@value % \end{macrocode} %\changes{1.17}{2008 December 26}{added see key} % \begin{macrocode} @@ -3517,6 +4517,23 @@ name=true]{% % \begin{macrocode} \setkeys{glossentry}{#2}% % \end{macrocode} +%\changes{3.14a}{2013-11-12}{added check for existence of default glossary} +% Check there is a default glossary. +% \begin{macrocode} + \ifundef\glsdefaulttype + {% + \PackageError{glossaries}% + {No default glossary type (have you used `nomain'?)}% + {If you use package option `nomain' you must define + a new glossary before you can define entries}% + }% + {}% +% \end{macrocode} +% Assign type. This must be fully expandable +% \begin{macrocode} + \gls@assign@field{\glsdefaulttype}{#1}{type}{\@glo@type}% + \edef\@glo@type{\glsentrytype{#1}}% +% \end{macrocode} % Check to see if this glossary type has been defined, if it has, % add this label to the relevant list, otherwise generate an error. %\changes{3.0}{2011/04/02}{replaced \cs{@ifundefined} with @@ -3525,7 +4542,7 @@ name=true]{% \ifcsundef{glolist@\@glo@type}% {% \PackageError{glossaries}% - {Glossary type '\@glo@type' has not been defined}% + {Glossary type `\@glo@type' has not been defined}% {You need to define a new glossary type, before making entries in it}% }% @@ -3580,7 +4597,7 @@ name=true]{% % \end{macrocode} % If name and plural haven't been specified, use same as the parent % \begin{macrocode} - \ifx\@glo@plural\@glsdefaultplural + \ifx\@glo@plural\@gls@default@value \expandafter\let\expandafter\@glo@plural \csname glo@\@glo@parent @plural\endcsname \fi @@ -3609,64 +4626,60 @@ name=true]{% % \begin{macrocode} \expandafter\xdef\csname glo@#1@level\endcsname{\number\gls@level}% % \end{macrocode} -% Check if \gloskey{first} and \gloskey{firstplural} have been use. -% If \gloskey{firstplural} hasn't been specified, but \gloskey{first} -% has been specified, then form \gloskey{firstplural} by appending -% \cs{glspluralsuffix} to value of \gloskey{first} key, otherwise -% obtain the value from the \gloskey{plural} key. -% \changes{1.16}{2008 August 27}{Changed if to ifx} -% This now uses \cs{ifx} instead of \cs{if} to avoid expansion -% issues. (Thanks to Ulrich~Diez for suggesting this.) -% \begin{macrocode} - \ifx\relax\@glo@firstplural - \ifx\relax\@glo@first - \def\@glo@firstplural{\@glo@plural}% - \def\@glo@first{\@glo@text}% - \else - \def\@glo@firstplural{\@glo@first\glspluralsuffix}% - \fi +% Define commands associated with this entry: +% \begin{macrocode} + \gls@assign@field{\@glo@name}{#1}{sortvalue}{\@glo@sort}% + \letcs\@glo@sort{glo@#1@sortvalue}% + \gls@assign@field{\@glo@name}{#1}{text}{\@glo@text}% + \expandafter\gls@assign@field\expandafter + {\csname glo@#1@text\endcsname\glspluralsuffix}% + {#1}{plural}{\@glo@plural}% + \expandafter\gls@assign@field\expandafter + {\csname glo@#1@text\endcsname}% + {#1}{first}{\@glo@first}% +% \end{macrocode} +%\changes{3.14a}{2013-11-12}{set the default for firstplural to be the value +%of plural} +%\changes{4.0}{2013-11-14}{added check for first key} +% If \gloskey{first} has been specified, make the default by appending +% \cs{glspluralsuffix}, otherwise make the default the value of the +% \gloskey{plural} key. +% \begin{macrocode} + \ifx\@glo@first\@gls@default@value + \expandafter\gls@assign@field\expandafter + {\csname glo@#1@plural\endcsname}% + {#1}{firstpl}{\@glo@firstplural}% \else - \ifx\relax\@glo@first - \def\@glo@first{\@glo@text}% - \fi + \expandafter\gls@assign@field\expandafter + {\csname glo@#1@first\endcsname\glspluralsuffix}% + {#1}{firstpl}{\@glo@firstplural}% \fi % \end{macrocode} -% Define commands associated with this entry: +%\changes{3.11a}{2013-10-15}{Fixed default counter if none supplied} % \begin{macrocode} - \expandafter - \protected@xdef\csname glo@#1@text\endcsname{\@glo@text}% - \expandafter - \protected@xdef\csname glo@#1@plural\endcsname{\@glo@plural}% - \expandafter - \protected@xdef\csname glo@#1@first\endcsname{\@glo@first}% - \expandafter - \protected@xdef\csname glo@#1@firstpl\endcsname{\@glo@firstplural}% - \expandafter - \protected@xdef\csname glo@#1@type\endcsname{\@glo@type}% - \expandafter - \protected@xdef\csname glo@#1@counter\endcsname{\@glo@counter}% - \expandafter - \protected@xdef\csname glo@#1@useri\endcsname{\@glo@useri}% - \expandafter - \protected@xdef\csname glo@#1@userii\endcsname{\@glo@userii}% - \expandafter - \protected@xdef\csname glo@#1@useriii\endcsname{\@glo@useriii}% - \expandafter - \protected@xdef\csname glo@#1@useriv\endcsname{\@glo@useriv}% - \expandafter - \protected@xdef\csname glo@#1@userv\endcsname{\@glo@userv}% - \expandafter - \protected@xdef\csname glo@#1@uservi\endcsname{\@glo@uservi}% - \expandafter - \protected@xdef\csname glo@#1@short\endcsname{\@glo@short}% - \expandafter - \protected@xdef\csname glo@#1@shortpl\endcsname{\@glo@shortpl}% - \expandafter - \protected@xdef\csname glo@#1@long\endcsname{\@glo@long}% - \expandafter - \protected@xdef\csname glo@#1@longpl\endcsname{\@glo@longpl}% - \@gls@sanitizename - \expandafter\protected@xdef\csname glo@#1@name\endcsname{\@glo@name}% + \ifcsundef{@glotype@\@glo@type @counter}% + {% + \def\@glo@defaultcounter{\glscounter}% + }% + {% + \letcs\@glo@defaultcounter{@glotype@\@glo@type @counter}% + }% + \gls@assign@field{\@glo@defaultcounter}{#1}{counter}{\@glo@counter}% + \gls@assign@field{}{#1}{useri}{\@glo@useri}% + \gls@assign@field{}{#1}{userii}{\@glo@userii}% + \gls@assign@field{}{#1}{useriii}{\@glo@useriii}% + \gls@assign@field{}{#1}{useriv}{\@glo@useriv}% + \gls@assign@field{}{#1}{userv}{\@glo@userv}% + \gls@assign@field{}{#1}{uservi}{\@glo@uservi}% + \gls@assign@field{}{#1}{short}{\@glo@short}% + \gls@assign@field{}{#1}{shortpl}{\@glo@shortpl}% + \gls@assign@field{}{#1}{long}{\@glo@long}% + \gls@assign@field{}{#1}{longpl}{\@glo@longpl}% + \ifx\@glo@name\@glsnoname + \@glsnoname + \let\@gloname\@gls@default@value + \fi + \gls@assign@field{}{#1}{name}{\@glo@name}% % \end{macrocode} %\changes{3.02}{2012/05/21}{added numberlist element} % Set default numberlist if not defined: @@ -3680,32 +4693,36 @@ name=true]{% % The smaller and smallcaps options set the description to % \cs{@glo@first}. Need to check for this, otherwise it won't get % expanded if the description gets sanitized. -%\changes{1.15}{2008 August 15}{check for '@glo@first in description}% +%\changes{1.15}{2008 August 15}{check for \cs{@glo@first} in description}% % \begin{macrocode} \def\@glo@@desc{\@glo@first}% \ifx\@glo@desc\@glo@@desc \let\@glo@desc\@glo@first \fi - \@gls@sanitizedesc - \expandafter\protected@xdef\csname glo@#1@desc\endcsname{\@glo@desc}% - \expandafter\protected@xdef\csname glo@#1@descplural\endcsname{\@glo@descplural}% + \ifx\@glo@desc\@glsnodesc + \@glsnodesc + \let\@glodesc\@gls@default@value + \fi + \gls@assign@desc{#1}% % \end{macrocode} %\changes{1.18}{2009 January 14}{moved sort sanitization to -% 'newglossaryentry} +% \cs{newglossaryentry}} %\changes{3.0}{2011/04/02}{added \cs{@gls@defsort}} % Set the sort key for this entry: % \begin{macrocode} \@gls@defsort{\@glo@type}{#1}% % \end{macrocode} -%\changes{1.15}{2008 August 15}{check for '@glo@text in symbol}% +%\changes{1.15}{2008 August 15}{check for \cs{@glo@text} in symbol}% % \begin{macrocode} \def\@glo@@symbol{\@glo@text}% \ifx\@glo@symbol\@glo@@symbol \let\@glo@symbol\@glo@text \fi - \@gls@sanitizesymbol - \expandafter\protected@xdef\csname glo@#1@symbol\endcsname{\@glo@symbol}% - \expandafter\protected@xdef\csname glo@#1@symbolplural\endcsname{\@glo@symbolplural}% + \gls@assign@field{\relax}{#1}{symbol}{\@glo@symbol}% + \expandafter + \gls@assign@field\expandafter + {\csname glo@#1@symbol\endcsname} + {#1}{symbolplural}{\@glo@symbolplural}% % \end{macrocode} % Define an associated boolean variable to determine whether this % entry has been used yet (needs to be defined globally): @@ -3730,7 +4747,6 @@ name=true]{% \noexpand\expandafter\noexpand\@glssee\noexpand\@glo@list{#1}}% \@do@glssee \fi - }% % \end{macrocode} % Determine and store main part of the entry's index format. %\changes{1.17}{2008 December 26}{Stored main part of entry @@ -3745,7 +4761,7 @@ name=true]{% } % \end{macrocode} %\changes{1.13}{2008 May 10}{Removed restriction on only using -% 'newglossaryentry in the preamble} +% \cs{newglossaryentry} in the preamble} %\end{macro} %\begin{macro}{\@newglossaryentryprehook} % Allow extra information to be added to glossary entries: @@ -3785,11 +4801,12 @@ name=true]{% % the glossary. (This enables the \sty{glossaries-accsupp} package % to use \cs{accsuppglossaryentryfield} instead.) %\changes{2.04}{2009 November 10}{new} +%\changes{3.08a}{2013-09-28}{switched to \cs{glossentry}} % \begin{macrocode} \ifglsxindy - \newcommand*{\@glossaryentryfield}{\string\\glossaryentryfield} + \newcommand*{\@glossaryentryfield}{\string\\glossentry} \else - \newcommand*{\@glossaryentryfield}{\string\glossaryentryfield} + \newcommand*{\@glossaryentryfield}{\string\glossentry} \fi % \end{macrocode} %\end{macro} @@ -3799,18 +4816,22 @@ name=true]{% % the glossary. (This enables the \sty{glossaries-accsupp} package % to use \cs{accsuppglossarysubentryfield} instead.) %\changes{2.04}{2009 November 10}{new} +%\changes{3.08a}{2013-09-28}{switched to \cs{subglossentry}} % \begin{macrocode} \ifglsxindy \newcommand*{\@glossarysubentryfield}{% - \string\\glossarysubentryfield} + \string\\subglossentry} \else \newcommand*{\@glossarysubentryfield}{% - \string\glossarysubentryfield} + \string\subglossentry} \fi % \end{macrocode} %\end{macro} % %\begin{macro}{\@glo@storeentry} +%\begin{definition} +%\cs{@glo@storeentry}\marg{label} +%\end{definition} %\changes{1.17}{2008 December 26}{new} % Determine the format to write the entry in the glossary % output (\filetype{.glo}) file. @@ -3821,100 +4842,81 @@ name=true]{% % \begin{macrocode} \newcommand{\@glo@storeentry}[1]{% % \end{macrocode} -% Get the sort string and escape any special characters -% \begin{macrocode} -\protected@edef\@glo@sort{\csname glo@#1@sort\endcsname}% -\@gls@checkmkidxchars\@glo@sort -% \end{macrocode} -% Same again for the name string. -% \begin{macrocode} -\protected@edef\@@glo@name{\csname glo@#1@name\endcsname}% -\@gls@checkmkidxchars\@@glo@name -% \end{macrocode} -% Add the font command. (The backslash needs to be escaped for -% \app{xindy}.) +% Escape special characters in the label: % \begin{macrocode} -\ifglsxindy - \protected@edef\@glo@name{\string\\glsnamefont{\@@glo@name}}% -\else - \protected@edef\@glo@name{\string\glsnamefont{\@@glo@name}}% -\fi + \def\@glo@label{#1}% + \@gls@checkmkidxchars\@glo@label % \end{macrocode} -% Get the description string and escape any special characters -% \begin{macrocode} -\protected@edef\@glo@desc{\csname glo@#1@desc\endcsname}% -\@gls@checkmkidxchars\@glo@desc -% \end{macrocode} -% Same again for the symbol +% Get the sort string and escape any special characters % \begin{macrocode} -\protected@edef\@glo@symbol{\csname glo@#1@symbol\endcsname}% -\@gls@checkmkidxchars\@glo@symbol + \protected@edef\@glo@sort{\csname glo@#1@sort\endcsname}% + \@gls@checkmkidxchars\@glo@sort % \end{macrocode} +% Same again for the name string. +%\changes{3.08a}{2013-09-28}{no longer need to check for special characters +%in any of the fields other than sort} % Escape any special characters in the prefix % \begin{macrocode} -\@gls@checkmkidxchars\@glo@prefix + \@gls@checkmkidxchars\@glo@prefix % \end{macrocode} % Get the parent, if one exists % \begin{macrocode} -\edef\@glo@parent{\csname glo@#1@parent\endcsname}% + \edef\@glo@parent{\csname glo@#1@parent\endcsname}% % \end{macrocode} % Write the information to the glossary file. % \begin{macrocode} -\ifglsxindy + \ifglsxindy % \end{macrocode} % Store using \app{xindy} syntax. % \begin{macrocode} - \ifx\@glo@parent\@empty + \ifx\@glo@parent\@empty % \end{macrocode} % Entry doesn't have a parent +%\changes{3.08a}{2013-09-28}{updated for \cs{glossentry}} % \begin{macrocode} - \expandafter\protected@xdef\csname glo@#1@index\endcsname{% - (\string"\@glo@sort\string" % - \string"\@glo@prefix\@glossaryentryfield{#1}{\@glo@name - }{\@glo@desc}{\@glo@symbol}\string") % - }% - \else + \expandafter\protected@xdef\csname glo@#1@index\endcsname{% + (\string"\@glo@sort\string" % + \string"\@glo@prefix\@glossaryentryfield{\@glo@label}\string") % + }% + \else % \end{macrocode} % Entry has a parent % \begin{macrocode} - \expandafter\protected@xdef\csname glo@#1@index\endcsname{% - \csname glo@\@glo@parent @index\endcsname - (\string"\@glo@sort\string" % - \string"\@glo@prefix\@glossarysubentryfield% - {\csname glo@#1@level\endcsname}{#1}{\@glo@name - }{\@glo@desc}{\@glo@symbol}\string") % - }% - \fi -\else + \expandafter\protected@xdef\csname glo@#1@index\endcsname{% + \csname glo@\@glo@parent @index\endcsname + (\string"\@glo@sort\string" % + \string"\@glo@prefix\@glossarysubentryfield + {\csname glo@#1@level\endcsname}{\@glo@label}\string") % + }% + \fi + \else % \end{macrocode} % Store using \app{makeindex} syntax. % \begin{macrocode} - \ifx\@glo@parent\@empty + \ifx\@glo@parent\@empty % \end{macrocode} % Sanitize \cs{@glo@prefix} % \begin{macrocode} - \@onelevel@sanitize\@glo@prefix + \@onelevel@sanitize\@glo@prefix % \end{macrocode} % Entry doesn't have a parent % \begin{macrocode} - \expandafter\protected@xdef\csname glo@#1@index\endcsname{% - \@glo@sort\@gls@actualchar\@glo@prefix - \@glossaryentryfield{#1}{\@glo@name}{\@glo@desc - }{\@glo@symbol}% - }% - \else + \expandafter\protected@xdef\csname glo@#1@index\endcsname{% + \@glo@sort\@gls@actualchar\@glo@prefix + \@glossaryentryfield{\@glo@label}% + }% + \else % \end{macrocode} % Entry has a parent % \begin{macrocode} - \expandafter\protected@xdef\csname glo@#1@index\endcsname{% - \csname glo@\@glo@parent @index\endcsname\@gls@levelchar - \@glo@sort\@gls@actualchar\@glo@prefix - \@glossarysubentryfield - {\csname glo@#1@level\endcsname}{#1}{\@glo@name}{\@glo@desc - }{\@glo@symbol}% - }% + \expandafter\protected@xdef\csname glo@#1@index\endcsname{% + \csname glo@\@glo@parent @index\endcsname\@gls@levelchar + \@glo@sort\@gls@actualchar\@glo@prefix + \@glossarysubentryfield + {\csname glo@#1@level\endcsname}{\@glo@label}% + }% + \fi \fi -\fi } % \end{macrocode} %\end{macro} @@ -3924,42 +4926,88 @@ name=true]{% %\cs{ifglo@}\meta{label}\texttt{@flag} which determines % whether or not the entry has been used (see also % \ics{ifglsused} defined below). These flags can -% be set and unset using the following macros: +% be set and unset using the following macros, but first we need to +% know if we're in \sty{amsmath}'s \env{align} environment's +% measuring pass. +% +%\begin{macro}{\gls@ifnotmeasuring} +%\changes{3.08a}{2013-09-28}{new} +% \begin{macrocode} +\AtBeginDocument{% + \@ifpackageloaded{amsmath}% + {\let\gls@ifnotmeasuring\@gls@ifnotmeasuring}% + {}% +} +\newcommand*{\@gls@ifnotmeasuring}[1]{% + \ifmeasuring@ + \else + #1% + \fi +} +\newcommand*\gls@ifnotmeasuring[1]{#1} +% \end{macrocode} +%\end{macro} % +%\begin{macro}{\glsreset} % The command \cs{glsreset}\marg{label} can be used % to set the entry flag to indicate that it hasn't been used yet. The % required argument is the entry label. -%\begin{macro}{\glsreset} % \begin{macrocode} \newcommand*{\glsreset}[1]{% -\glsdoifexists{#1}{% -\expandafter\global\csname glo@#1@flagfalse\endcsname}} + \gls@ifnotmeasuring + {% + \glsdoifexists{#1}% + {% + \expandafter\global\csname glo@#1@flagfalse\endcsname + }% + }% +} % \end{macrocode} %\end{macro} -% As above, but with only a local effect: +% %\begin{macro}{\glslocalreset} +% As above, but with only a local effect: % \begin{macrocode} \newcommand*{\glslocalreset}[1]{% -\glsdoifexists{#1}{% -\expandafter\let\csname ifglo@#1@flag\endcsname\iffalse}} + \gls@ifnotmeasuring + {% + \glsdoifexists{#1}% + {% + \expandafter\let\csname ifglo@#1@flag\endcsname\iffalse + }% + }% +} % \end{macrocode} %\end{macro} +%\begin{macro}{\glsunset} % The command \cs{glsunset}\marg{label} can be used to % set the entry flag to indicate that it has been used. The required % argument is the entry label. -%\begin{macro}{\glsunset} % \begin{macrocode} \newcommand*{\glsunset}[1]{% -\glsdoifexists{#1}{% -\expandafter\global\csname glo@#1@flagtrue\endcsname}} + \gls@ifnotmeasuring + {% + \glsdoifexists{#1}% + {% + \expandafter\global\csname glo@#1@flagtrue\endcsname + }% + }% +} % \end{macrocode} %\end{macro} -% As above, but with only a local effect: +% %\begin{macro}{\glslocalunset} +% As above, but with only a local effect: % \begin{macrocode} \newcommand*{\glslocalunset}[1]{% -\glsdoifexists{#1}{% -\expandafter\let\csname ifglo@#1@flag\endcsname\iftrue}} + \gls@ifnotmeasuring + {% + \glsdoifexists{#1}% + {% + \expandafter\let\csname ifglo@#1@flag\endcsname\iftrue + }% + }% +} % \end{macrocode} %\end{macro} % Reset all entries for the named glossaries (supplied in a @@ -3968,16 +5016,22 @@ name=true]{% %\begin{macro}{\glsresetall} % \begin{macrocode} \newcommand*{\glsresetall}[1][\@glo@types]{% -\forallglsentries[#1]{\@glsentry}{% -\glsreset{\@glsentry}}} + \forallglsentries[#1]{\@glsentry}% + {% + \glsreset{\@glsentry}% + }% +} % \end{macrocode} %\end{macro} % As above, but with only a local effect: %\begin{macro}{\glslocalresetall} % \begin{macrocode} \newcommand*{\glslocalresetall}[1][\@glo@types]{% -\forallglsentries[#1]{\@glsentry}{% -\glslocalreset{\@glsentry}}} + \forallglsentries[#1]{\@glsentry}% + {% + \glslocalreset{\@glsentry}% + }% +} % \end{macrocode} %\end{macro} % Unset all entries for the named glossaries (supplied in a @@ -3986,16 +5040,22 @@ name=true]{% %\begin{macro}{\glsunsetall} % \begin{macrocode} \newcommand*{\glsunsetall}[1][\@glo@types]{% -\forallglsentries[#1]{\@glsentry}{% -\glsunset{\@glsentry}}} + \forallglsentries[#1]{\@glsentry}% + {% + \glsunset{\@glsentry}% + }% +} % \end{macrocode} %\end{macro} % As above, but with only a local effect: %\begin{macro}{\glslocalunsetall} % \begin{macrocode} \newcommand*{\glslocalunsetall}[1][\@glo@types]{% -\forallglsentries[#1]{\@glsentry}{% -\glslocalunset{\@glsentry}}} + \forallglsentries[#1]{\@glsentry}% + {% + \glslocalunset{\@glsentry}% + }% +} % \end{macrocode} %\end{macro} % @@ -4018,9 +5078,10 @@ name=true]{% %\begin{macro}{\loadglsentries} % \begin{macrocode} \newcommand*{\loadglsentries}[2][\@gls@default]{% -\let\@gls@default\glsdefaulttype -\def\glsdefaulttype{#1}\input{#2}% -\let\glsdefaulttype\@gls@default} + \let\@gls@default\glsdefaulttype + \def\glsdefaulttype{#1}\input{#2}% + \let\glsdefaulttype\@gls@default +} % \end{macrocode} %\end{macro} % \cs{loadglsentries} can only be used in the preamble: @@ -4041,83 +5102,468 @@ name=true]{% % subsequent use). Any formatting commands (such as \cs{textbf} % is governed by \ics{glstextformat}. By default this just % displays the \term{link text} ``as is''. -%\changes{1.04}{2007 Aug 3}{Added 'glstextformat}% +%\changes{1.04}{2007 Aug 3}{Added \cs{glstextformat}}% %\begin{macro}{\glstextformat} % \begin{macrocode} \newcommand*{\glstextformat}[1]{#1} % \end{macrocode} %\end{macro} % -% The first time an entry is used, the way in which it is -% displayed is governed by \cs{glsdisplayfirst}. This -% takes four parameters: \verb|#1| will be the value -% of the entry's \gloskey{first} or \gloskey{firstplural} key, -% \verb|#2| will be the value of the entry's \gloskey{description} -% key, \verb|#3| will be the value of the entry's \gloskey{symbol} -% key and \verb|#4| is additional text supplied by the final optional -% argument to commands like \ics{gls} and \ics{glspl}. -% The default is to display the first parameter followed by the -% additional text. +%\begin{macro}{\glsentryfmt} +% As from version 3.11a, the way in which an entry is displayed is now +% governed by \cs{glsentryfmt}. This doesn't take any arguments. The +% required information is set by commands like \cs{gls}. +% To ensure backward compatibility, the default use the old +% \cs{glsdisplay} and \cs{glsdisplayfirst} style of commands +% \begin{macrocode} +\newcommand*{\glsentryfmt}{% + \@@gls@default@entryfmt\glsdisplayfirst\glsdisplay +} +% \end{macrocode} +% Format that provides backwards compatibility: +% \begin{macrocode} +\newcommand*{\@@gls@default@entryfmt}[2]{% + \ifdefempty\glscustomtext + {% + \glsifplural + {% +% \end{macrocode} +% Plural form +% \begin{macrocode} + \glscapscase + {% +% \end{macrocode} +% Don't adjust case +% \begin{macrocode} + \ifglsused\glslabel + {% +% \end{macrocode} +% Subsequent use +% \begin{macrocode} + #2{\glsentryplural{\glslabel}}% + {\glsentrydescplural{\glslabel}}% + {\glsentrysymbolplural{\glslabel}}{\glsinsert}% + }% + {% +% \end{macrocode} +% First use +% \begin{macrocode} + #1{\glsentryfirstplural{\glslabel}}% + {\glsentrydescplural{\glslabel}}% + {\glsentrysymbolplural{\glslabel}}{\glsinsert}% + }% + }% + {% +% \end{macrocode} +% Make first letter upper case +% \begin{macrocode} + \ifglsused\glslabel + {% +% \end{macrocode} +% Subsequent use. (Expansion was used in version 3.07 and below +% in case the name wasn't the first thing to be displayed, but now +% the user can sort out the upper casing in \ics{defglsentryfmt}, +% which avoids the issues caused by fragile commands.) +% \begin{macrocode} + \ifbool{glscompatible-3.07}% + {% + \protected@edef\@glo@etext{% + #2{\glsentryplural{\glslabel}}% + {\glsentrydescplural{\glslabel}}% + {\glsentrysymbolplural{\glslabel}}{\glsinsert}}% + \xmakefirstuc\@glo@etext + }% + {% + #2{\Glsentryplural{\glslabel}}% + {\glsentrydescplural{\glslabel}}% + {\glsentrysymbolplural{\glslabel}}{\glsinsert}% + }% + }% + {% +% \end{macrocode} +% First use +% \begin{macrocode} + \ifbool{glscompatible-3.07}% + {% + \protected@edef\@glo@etext{% + #1{\glsentryfirstplural{\glslabel}}% + {\glsentrydescplural{\glslabel}}% + {\glsentrysymbolplural{\glslabel}}{\glsinsert}}% + \xmakefirstuc\@glo@etext + }% + {% + #1{\Glsentryfirstplural{\glslabel}}% + {\glsentrydescplural{\glslabel}}% + {\glsentrysymbolplural{\glslabel}}{\glsinsert}% + }% + }% + }% + {% +% \end{macrocode} +% Make all upper case +% \begin{macrocode} + \ifglsused\glslabel + {% +% \end{macrocode} +% Subsequent use +% \begin{macrocode} + \mfirstucMakeUppercase{#2{\glsentryplural{\glslabel}}% + {\glsentrydescplural{\glslabel}}% + {\glsentrysymbolplural{\glslabel}}{\glsinsert}}% + }% + {% +% \end{macrocode} +% First use +% \begin{macrocode} + \mfirstucMakeUppercase{#1{\glsentryfirstplural{\glslabel}}% + {\glsentrydescplural{\glslabel}}% + {\glsentrysymbolplural{\glslabel}}{\glsinsert}}% + }% + }% + }% + {% +% \end{macrocode} +% Singular form +% \begin{macrocode} + \glscapscase + {% +% \end{macrocode} +% Don't adjust case +% \begin{macrocode} + \ifglsused\glslabel + {% +% \end{macrocode} +% Subsequent use +% \begin{macrocode} + #2{\glsentrytext{\glslabel}}% + {\glsentrydesc{\glslabel}}% + {\glsentrysymbol{\glslabel}}{\glsinsert}% + }% + {% +% \end{macrocode} +% First use +% \begin{macrocode} + #1{\glsentryfirst{\glslabel}}% + {\glsentrydesc{\glslabel}}% + {\glsentrysymbol{\glslabel}}{\glsinsert}% + }% + }% + {% +% \end{macrocode} +% Make first letter upper case +% \begin{macrocode} + \ifglsused\glslabel + {% +% \end{macrocode} +% Subsequent use +% \begin{macrocode} + \ifbool{glscompatible-3.07}% + {% + \protected@edef\@glo@etext{% + #2{\glsentrytext{\glslabel}}% + {\glsentrydesc{\glslabel}}% + {\glsentrysymbol{\glslabel}}{\glsinsert}}% + \xmakefirstuc\@glo@etext + }% + {% + #2{\Glsentrytext{\glslabel}}% + {\glsentrydesc{\glslabel}}% + {\glsentrysymbol{\glslabel}}{\glsinsert}% + }% + }% + {% +% \end{macrocode} +% First use +% \begin{macrocode} + \ifbool{glscompatible-3.07}% + {% + \protected@edef\@glo@etext{% + #1{\glsentryfirst{\glslabel}}% + {\glsentrydesc{\glslabel}}% + {\glsentrysymbol{\glslabel}}{\glsinsert}}% + \xmakefirstuc\@glo@etext + }% + {% + #1{\Glsentryfirst{\glslabel}}% + {\glsentrydesc{\glslabel}}% + {\glsentrysymbol{\glslabel}}{\glsinsert}% + }% + }% + }% + {% +% \end{macrocode} +% Make all upper case +% \begin{macrocode} + \ifglsused\glslabel + {% +% \end{macrocode} +% Subsequent use +% \begin{macrocode} + \mfirstucMakeUppercase{#2{\glsentrytext{\glslabel}}% + {\glsentrydesc{\glslabel}}% + {\glsentrysymbol{\glslabel}}{\glsinsert}}% + }% + {% +% \end{macrocode} +% First use +% \begin{macrocode} + \mfirstucMakeUppercase{#1{\glsentryfirst{\glslabel}}% + {\glsentrydesc{\glslabel}}% + {\glsentrysymbol{\glslabel}}{\glsinsert}}% + }% + }% + }% + }% + {% +% \end{macrocode} +% Custom text provided in \cs{glsdisp} +% \begin{macrocode} + \ifglsused{\glslabel}% + {% +% \end{macrocode} +% Subsequent use +% \begin{macrocode} + #2{\glscustomtext}% + {\glsentrydesc{\glslabel}}% + {\glsentrysymbol{\glslabel}}{}% + }% + {% +% \end{macrocode} +% First use +% \begin{macrocode} + #1{\glscustomtext}% + {\glsentrydesc{\glslabel}}% + {\glsentrysymbol{\glslabel}}{}% + }% + }% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\glsgenentryfmt} +% Define a generic format that just uses the first, text, plural or +% first plural keys (or the custom text) with the insert text appended. +%\changes{3.11a}{2013-10-15}{new} +% \begin{macrocode} +\newcommand*{\glsgenentryfmt}{% + \ifdefempty\glscustomtext + {% + \glsifplural + {% +% \end{macrocode} +% Plural form +% \begin{macrocode} + \glscapscase + {% +% \end{macrocode} +% Don't adjust case +% \begin{macrocode} + \ifglsused\glslabel + {% +% \end{macrocode} +% Subsequent use +% \begin{macrocode} + \glsentryplural{\glslabel}\glsinsert + }% + {% +% \end{macrocode} +% First use +% \begin{macrocode} + \glsentryfirstplural{\glslabel}\glsinsert + }% + }% + {% +% \end{macrocode} +% Make first letter upper case +% \begin{macrocode} + \ifglsused\glslabel + {% +% \end{macrocode} +% Subsequent use. +% \begin{macrocode} + \Glsentryplural{\glslabel}\glsinsert + }% + {% +% \end{macrocode} +% First use +% \begin{macrocode} + \Glsentryfirstplural{\glslabel}\glsinsert + }% + }% + {% +% \end{macrocode} +% Make all upper case +% \begin{macrocode} + \ifglsused\glslabel + {% +% \end{macrocode} +% Subsequent use +% \begin{macrocode} + \mfirstucMakeUppercase + {\glsentryplural{\glslabel}\glsinsert}% + }% + {% +% \end{macrocode} +% First use +% \begin{macrocode} + \mfirstucMakeUppercase + {\glsentryfirstplural{\glslabel}\glsinsert}% + }% + }% + }% + {% +% \end{macrocode} +% Singular form +% \begin{macrocode} + \glscapscase + {% +% \end{macrocode} +% Don't adjust case +% \begin{macrocode} + \ifglsused\glslabel + {% +% \end{macrocode} +% Subsequent use +% \begin{macrocode} + \glsentrytext{\glslabel}\glsinsert + }% + {% +% \end{macrocode} +% First use +% \begin{macrocode} + \glsentryfirst{\glslabel}\glsinsert + }% + }% + {% +% \end{macrocode} +% Make first letter upper case +% \begin{macrocode} + \ifglsused\glslabel + {% +% \end{macrocode} +% Subsequent use +% \begin{macrocode} + \Glsentrytext{\glslabel}\glsinsert + }% + {% +% \end{macrocode} +% First use +% \begin{macrocode} + \Glsentryfirst{\glslabel}\glsinsert + }% + }% + {% +% \end{macrocode} +% Make all upper case +% \begin{macrocode} + \ifglsused\glslabel + {% +% \end{macrocode} +% Subsequent use +% \begin{macrocode} + \mfirstucMakeUppercase{\glsentrytext{\glslabel}\glsinsert}% + }% + {% +% \end{macrocode} +% First use +% \begin{macrocode} + \mfirstucMakeUppercase{\glsentryfirst{\glslabel}\glsinsert}% + }% + }% + }% + }% + {% +% \end{macrocode} +% Custom text provided in \cs{glsdisp}. (The insert is most likely +% to be empty at this point.) +% \begin{macrocode} + \glscustomtext\glsinsert + }% +} +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\glsdisplayfirst} +% Deprecated. Kept for backward compatibility. +%\changes{3.11a}{2013-10-15}{obsoleted} % \begin{macrocode} \newcommand*{\glsdisplayfirst}[4]{#1#4} % \end{macrocode} %\end{macro} % -% After the first use, the entry is displayed according to -% the format of \cs{glsdisplay}. Again, it takes four -% parameters: \verb|#1| will be the value of the -% entry's \gloskey{text} or \gloskey{plural} key, -% \verb|#2| will be the value of the entry's \gloskey{description} -% key, \verb|#3| will be the value of the entry's \gloskey{symbol} -% key and \verb|#4| is additional text supplied by the final optional -% argument to commands like \ics{gls} and \ics{glspl}. %\begin{macro}{\glsdisplay} +% Deprecated. Kept for backward compatibility. +%\changes{3.11a}{2013-10-15}{obsoleted} % \begin{macrocode} \newcommand*{\glsdisplay}[4]{#1#4} % \end{macrocode} %\end{macro} % -% When a new glossary is created it uses \cs{glsdisplayfirst} -% and \cs{glsdisplay} as the default way of displaying its -% entry in the text. This can be changed for the entries belonging -% to an individual glossary using -% \ics{defglsdisplay} and \ics{defglsdisplayfirst}. -%\\[10pt] -% \cs{defglsdisplay}\oarg{type}\marg{definition}\\[10pt]% -% The glossary type is given by \meta{type} (the default glossary -% if omitted) and -% \meta{definition} should have at most \verb|#1|, \verb|#2|, -% \verb|#3| and \verb|#4|. These represent the same arguments -% as those described for \ics{glsdisplay}. %\begin{macro}{\defglsdisplay} +%\changes{3.11a}{2013-10-15}{obsoleted} +% Deprecated. Kept for backward compatibility. % \begin{macrocode} \newcommand*{\defglsdisplay}[2][\glsdefaulttype]{% -\expandafter\def\csname gls@#1@display\endcsname##1##2##3##4{#2}} + \GlossariesWarning{\string\defglsdisplay\space is now obsolete.^^J + Use \string\defglsentryfmt\space instead}% + \expandafter\def\csname gls@#1@display\endcsname##1##2##3##4{#2}% + \edef\@gls@doentrydef{% + \noexpand\defglsentryfmt[#1]{% + \noexpand\ifcsdef{gls@#1@displayfirst}% + {% + \noexpand\@@gls@default@entryfmt + {\noexpand\csuse{gls@#1@displayfirst}} + {\noexpand\csuse{gls@#1@display}}% + }% + {% + \noexpand\@@gls@default@entryfmt + {\noexpand\glsdisplayfirst} + {\noexpand\csuse{gls@#1@display}}% + }% + }% + }% + \@gls@doentrydef +} % \end{macrocode} %\end{macro} -%\vskip5pt -% \cs{defglsdisplayfirst}\oarg{type}\marg{definition}\\[10pt]% -% The glossary type is given by \meta{type} (the default glossary -% if omitted) and -% \meta{definition} should have at most \verb|#1|, \verb|#2|, -% \verb|#3| and \verb|#4|. These represent the same arguments -% as those described for \ics{glsdisplayfirst}. +% %\begin{macro}{\defglsdisplayfirst} +% Deprecated. Kept for backward compatibility. +%\changes{3.11a}{2013-10-15}{obsoleted} % \begin{macrocode} \newcommand*{\defglsdisplayfirst}[2][\glsdefaulttype]{% -\expandafter\def\csname gls@#1@displayfirst\endcsname##1##2##3##4{#2}} + \GlossariesWarning{\string\defglsdisplayfirst\space is now obsolete.^^J + Use \string\defglsentryfmt\space instead}% + \expandafter\def\csname gls@#1@displayfirst\endcsname##1##2##3##4{#2}% + \edef\@gls@doentrydef{% + \noexpand\defglsentryfmt[#1]{% + \noexpand\ifcsdef{gls@#1@display}% + {% + \noexpand\@@gls@default@entryfmt + {\noexpand\csuse{gls@#1@displayfirst}} + {\noexpand\csuse{gls@#1@display}}% + }% + {% + \noexpand\@@gls@default@entryfmt + {\noexpand\csuse{gls@#1@displayfirst}}% + {\noexpand\glsdisplay} + }% + }% + }% + \@gls@doentrydef +} % \end{macrocode} %\end{macro} % %\subsubsection{Links to glossary entries} % The links to glossary entries all have a first optional % argument that can be used to change the format and counter -% of the associated entry number. Except for \cs{glslink}, +% of the associated entry number. Except for \cs{glslink} +% and \cs{glsdisp}, % the commands like \cs{gls} have a final optional % argument that can be used to insert additional text in the % link (this will usually be appended, but can be redefined using -% \ics{defglsdisplay} and \ics{defglsdisplayfirst}). +% \ics{defentryfmt}). % It goes against the \LaTeX\ norm to have an optional % argument after the mandatory arguments, but it makes more % sense to write, say, \verb|\gls{label}['s]| rather than, say, @@ -4191,7 +5637,8 @@ name=true]{% %\changes{3.01}{2011/04/12}{made robust} % \begin{macrocode} \newrobustcmd*{\glslink}{% -\@ifstar\@sgls@link\@gls@@link} + \@ifstar\@sgls@link\@gls@@link +} % \end{macrocode} %\end{macro} %\begin{macro}{\@sgls@link} @@ -4227,7 +5674,7 @@ name=true]{% %\end{macro} %\begin{macro}{\@gls@link} %\changes{1.07}{2007 Sep 13}{fixed bug caused by \cs{theglsentrycounter} setting the page number too soon} -%\changes{1.15}{2008 August 15}{added 'glslabel} +%\changes{1.15}{2008 August 15}{added \cs{glslabel}} % \begin{macrocode} \def\@gls@link[#1]#2#3{% % \end{macrocode} @@ -4275,7 +5722,10 @@ name=true]{% \ifKV@glslink@hyper \@glslink{\glolinkprefix#2}{\glstextformat{#3}}% \else - \glstextformat{#3}\relax +% \end{macrocode} +%\changes{3.13a}{2013-11-05}{removed \cs{relax}} +% \begin{macrocode} + \glstextformat{#3}% \fi } % \end{macrocode} @@ -4458,31 +5908,31 @@ name=true]{% %\begin{macro}{\@gls@checkmkidxchars} % \begin{macrocode} \newcommand{\@gls@checkmkidxchars}[1]{% -\ifglsxindy - \@gls@escbsdq{#1}% -\else - \def\@gls@checkedmkidx{}% - \expandafter\@gls@checkquote#1\@nil""\null - \expandafter\@gls@updatechecked\@gls@checkedmkidx{#1}% - \def\@gls@checkedmkidx{}% - \expandafter\@gls@checkescquote#1\@nil\"\"\null - \expandafter\@gls@updatechecked\@gls@checkedmkidx{#1}% - \def\@gls@checkedmkidx{}% - \expandafter\@gls@checkescactual#1\@nil\?\?\null - \expandafter\@gls@updatechecked\@gls@checkedmkidx{#1}% - \def\@gls@checkedmkidx{}% - \expandafter\@gls@checkactual#1\@nil??\null - \expandafter\@gls@updatechecked\@gls@checkedmkidx{#1}% - \def\@gls@checkedmkidx{}% - \expandafter\@gls@checkbar#1\@nil||\null - \expandafter\@gls@updatechecked\@gls@checkedmkidx{#1}% - \def\@gls@checkedmkidx{}% - \expandafter\@gls@checkescbar#1\@nil\|\|\null - \expandafter\@gls@updatechecked\@gls@checkedmkidx{#1}% - \def\@gls@checkedmkidx{}% - \expandafter\@gls@checklevel#1\@nil!!\null - \expandafter\@gls@updatechecked\@gls@checkedmkidx{#1}% -\fi + \ifglsxindy + \@gls@escbsdq{#1}% + \else + \def\@gls@checkedmkidx{}% + \expandafter\@gls@checkquote#1\@nil""\null + \expandafter\@gls@updatechecked\@gls@checkedmkidx{#1}% + \def\@gls@checkedmkidx{}% + \expandafter\@gls@checkescquote#1\@nil\"\"\null + \expandafter\@gls@updatechecked\@gls@checkedmkidx{#1}% + \def\@gls@checkedmkidx{}% + \expandafter\@gls@checkescactual#1\@nil\?\?\null + \expandafter\@gls@updatechecked\@gls@checkedmkidx{#1}% + \def\@gls@checkedmkidx{}% + \expandafter\@gls@checkactual#1\@nil??\null + \expandafter\@gls@updatechecked\@gls@checkedmkidx{#1}% + \def\@gls@checkedmkidx{}% + \expandafter\@gls@checkbar#1\@nil||\null + \expandafter\@gls@updatechecked\@gls@checkedmkidx{#1}% + \def\@gls@checkedmkidx{}% + \expandafter\@gls@checkescbar#1\@nil\|\|\null + \expandafter\@gls@updatechecked\@gls@checkedmkidx{#1}% + \def\@gls@checkedmkidx{}% + \expandafter\@gls@checklevel#1\@nil!!\null + \expandafter\@gls@updatechecked\@gls@checkedmkidx{#1}% + \fi } % \end{macrocode} %\end{macro} @@ -4504,55 +5954,57 @@ name=true]{% % special character\mkidxspch. % \begin{macrocode} \def\@gls@checkquote#1"#2"#3\null{% -\@gls@tmpb=\expandafter{\@gls@checkedmkidx}% -\toks@={#1}% -\ifx\null#2\null - \ifx\null#3\null - \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@}% - \def\@@gls@checkquote{\relax}% - \else - \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ - \@gls@quotechar\@gls@quotechar\@gls@quotechar\@gls@quotechar}% - \def\@@gls@checkquote{\@gls@checkquote#3\null}% - \fi -\else - \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ - \@gls@quotechar\@gls@quotechar}% - \ifx\null#3\null - \def\@@gls@checkquote{\@gls@checkquote#2""\null}% - \else - \def\@@gls@checkquote{\@gls@checkquote#2"#3\null}% - \fi -\fi -\@@gls@checkquote} + \@gls@tmpb=\expandafter{\@gls@checkedmkidx}% + \toks@={#1}% + \ifx\null#2\null + \ifx\null#3\null + \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@}% + \def\@@gls@checkquote{\relax}% + \else + \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ + \@gls@quotechar\@gls@quotechar\@gls@quotechar\@gls@quotechar}% + \def\@@gls@checkquote{\@gls@checkquote#3\null}% + \fi + \else + \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ + \@gls@quotechar\@gls@quotechar}% + \ifx\null#3\null + \def\@@gls@checkquote{\@gls@checkquote#2""\null}% + \else + \def\@@gls@checkquote{\@gls@checkquote#2"#3\null}% + \fi + \fi + \@@gls@checkquote +} % \end{macrocode} %\end{macro} %\begin{macro}{\@gls@checkescquote} % Do the same for \verb|\"|: % \begin{macrocode} \def\@gls@checkescquote#1\"#2\"#3\null{% -\@gls@tmpb=\expandafter{\@gls@checkedmkidx}% -\toks@={#1}% -\ifx\null#2\null - \ifx\null#3\null - \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@}% - \def\@@gls@checkescquote{\relax}% - \else - \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ - \@gls@quotechar\string\"\@gls@quotechar - \@gls@quotechar\string\"\@gls@quotechar}% - \def\@@gls@checkescquote{\@gls@checkescquote#3\null}% - \fi -\else - \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ - \@gls@quotechar\string\"\@gls@quotechar}% - \ifx\null#3\null - \def\@@gls@checkescquote{\@gls@checkescquote#2\"\"\null}% - \else - \def\@@gls@checkescquote{\@gls@checkescquote#2\"#3\null}% - \fi -\fi -\@@gls@checkescquote} + \@gls@tmpb=\expandafter{\@gls@checkedmkidx}% + \toks@={#1}% + \ifx\null#2\null + \ifx\null#3\null + \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@}% + \def\@@gls@checkescquote{\relax}% + \else + \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ + \@gls@quotechar\string\"\@gls@quotechar + \@gls@quotechar\string\"\@gls@quotechar}% + \def\@@gls@checkescquote{\@gls@checkescquote#3\null}% + \fi + \else + \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ + \@gls@quotechar\string\"\@gls@quotechar}% + \ifx\null#3\null + \def\@@gls@checkescquote{\@gls@checkescquote#2\"\"\null}% + \else + \def\@@gls@checkescquote{\@gls@checkescquote#2\"#3\null}% + \fi + \fi +\@@gls@checkescquote +} % \end{macrocode} %\end{macro} %\begin{macro}{\@gls@checkescactual} @@ -4560,165 +6012,171 @@ name=true]{% % \app{makeindex}'s special character): % \begin{macrocode} \def\@gls@checkescactual#1\?#2\?#3\null{% -\@gls@tmpb=\expandafter{\@gls@checkedmkidx}% -\toks@={#1}% -\ifx\null#2\null - \ifx\null#3\null - \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@}% - \def\@@gls@checkescactual{\relax}% - \else - \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ - \@gls@quotechar\string\"\@gls@actualchar + \@gls@tmpb=\expandafter{\@gls@checkedmkidx}% + \toks@={#1}% + \ifx\null#2\null + \ifx\null#3\null + \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@}% + \def\@@gls@checkescactual{\relax}% + \else + \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ + \@gls@quotechar\string\"\@gls@actualchar + \@gls@quotechar\string\"\@gls@actualchar}% + \def\@@gls@checkescactual{\@gls@checkescactual#3\null}% + \fi + \else + \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ \@gls@quotechar\string\"\@gls@actualchar}% - \def\@@gls@checkescactual{\@gls@checkescactual#3\null}% - \fi -\else - \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ - \@gls@quotechar\string\"\@gls@actualchar}% - \ifx\null#3\null - \def\@@gls@checkescactual{\@gls@checkescactual#2\?\?\null}% - \else - \def\@@gls@checkescactual{\@gls@checkescactual#2\?#3\null}% - \fi -\fi -\@@gls@checkescactual} + \ifx\null#3\null + \def\@@gls@checkescactual{\@gls@checkescactual#2\?\?\null}% + \else + \def\@@gls@checkescactual{\@gls@checkescactual#2\?#3\null}% + \fi + \fi +\@@gls@checkescactual +} % \end{macrocode} %\end{macro} %\begin{macro}{\@gls@checkescbar} % Similarly for \verb"\|": % \begin{macrocode} \def\@gls@checkescbar#1\|#2\|#3\null{% -\@gls@tmpb=\expandafter{\@gls@checkedmkidx}% -\toks@={#1}% -\ifx\null#2\null - \ifx\null#3\null - \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@}% - \def\@@gls@checkescbar{\relax}% - \else - \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ - \@gls@quotechar\string\"\@gls@encapchar - \@gls@quotechar\string\"\@gls@encapchar}% - \def\@@gls@checkescbar{\@gls@checkescbar#3\null}% - \fi -\else - \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ - \@gls@quotechar\string\"\@gls@encapchar}% - \ifx\null#3\null - \def\@@gls@checkescbar{\@gls@checkescbar#2\|\|\null}% - \else - \def\@@gls@checkescbar{\@gls@checkescbar#2\|#3\null}% - \fi -\fi -\@@gls@checkescbar} + \@gls@tmpb=\expandafter{\@gls@checkedmkidx}% + \toks@={#1}% + \ifx\null#2\null + \ifx\null#3\null + \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@}% + \def\@@gls@checkescbar{\relax}% + \else + \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ + \@gls@quotechar\string\"\@gls@encapchar + \@gls@quotechar\string\"\@gls@encapchar}% + \def\@@gls@checkescbar{\@gls@checkescbar#3\null}% + \fi + \else + \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ + \@gls@quotechar\string\"\@gls@encapchar}% + \ifx\null#3\null + \def\@@gls@checkescbar{\@gls@checkescbar#2\|\|\null}% + \else + \def\@@gls@checkescbar{\@gls@checkescbar#2\|#3\null}% + \fi + \fi +\@@gls@checkescbar +} % \end{macrocode} %\end{macro} %\begin{macro}{\@gls@checkesclevel} % Similarly for \verb"\!": % \begin{macrocode} \def\@gls@checkesclevel#1\!#2\!#3\null{% -\@gls@tmpb=\expandafter{\@gls@checkedmkidx}% -\toks@={#1}% -\ifx\null#2\null - \ifx\null#3\null - \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@}% - \def\@@gls@checkesclevel{\relax}% - \else - \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ - \@gls@quotechar\string\"\@gls@levelchar - \@gls@quotechar\string\"\@gls@levelchar}% - \def\@@gls@checkesclevel{\@gls@checkesclevel#3\null}% - \fi -\else - \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ - \@gls@quotechar\string\"\@gls@levelchar}% - \ifx\null#3\null - \def\@@gls@checkesclevel{\@gls@checkesclevel#2\!\!\null}% - \else - \def\@@gls@checkesclevel{\@gls@checkesclevel#2\!#3\null}% - \fi -\fi -\@@gls@checkesclevel} + \@gls@tmpb=\expandafter{\@gls@checkedmkidx}% + \toks@={#1}% + \ifx\null#2\null + \ifx\null#3\null + \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@}% + \def\@@gls@checkesclevel{\relax}% + \else + \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ + \@gls@quotechar\string\"\@gls@levelchar + \@gls@quotechar\string\"\@gls@levelchar}% + \def\@@gls@checkesclevel{\@gls@checkesclevel#3\null}% + \fi + \else + \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ + \@gls@quotechar\string\"\@gls@levelchar}% + \ifx\null#3\null + \def\@@gls@checkesclevel{\@gls@checkesclevel#2\!\!\null}% + \else + \def\@@gls@checkesclevel{\@gls@checkesclevel#2\!#3\null}% + \fi + \fi +\@@gls@checkesclevel +} % \end{macrocode} %\end{macro} %\begin{macro}{\@gls@checkbar} % and for \verb"|": % \begin{macrocode} \def\@gls@checkbar#1|#2|#3\null{% -\@gls@tmpb=\expandafter{\@gls@checkedmkidx}% -\toks@={#1}% -\ifx\null#2\null - \ifx\null#3\null - \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@}% - \def\@@gls@checkbar{\relax}% - \else - \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ - \@gls@quotechar\@gls@encapchar\@gls@quotechar\@gls@encapchar}% - \def\@@gls@checkbar{\@gls@checkbar#3\null}% - \fi -\else - \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ - \@gls@quotechar\@gls@encapchar}% - \ifx\null#3\null - \def\@@gls@checkbar{\@gls@checkbar#2||\null}% - \else - \def\@@gls@checkbar{\@gls@checkbar#2|#3\null}% - \fi -\fi -\@@gls@checkbar} + \@gls@tmpb=\expandafter{\@gls@checkedmkidx}% + \toks@={#1}% + \ifx\null#2\null + \ifx\null#3\null + \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@}% + \def\@@gls@checkbar{\relax}% + \else + \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ + \@gls@quotechar\@gls@encapchar\@gls@quotechar\@gls@encapchar}% + \def\@@gls@checkbar{\@gls@checkbar#3\null}% + \fi + \else + \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ + \@gls@quotechar\@gls@encapchar}% + \ifx\null#3\null + \def\@@gls@checkbar{\@gls@checkbar#2||\null}% + \else + \def\@@gls@checkbar{\@gls@checkbar#2|#3\null}% + \fi + \fi + \@@gls@checkbar +} % \end{macrocode} %\end{macro} %\begin{macro}{\@gls@checklevel} % and for \verb"!": % \begin{macrocode} \def\@gls@checklevel#1!#2!#3\null{% -\@gls@tmpb=\expandafter{\@gls@checkedmkidx}% -\toks@={#1}% -\ifx\null#2\null - \ifx\null#3\null - \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@}% - \def\@@gls@checklevel{\relax}% - \else - \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ - \@gls@quotechar\@gls@levelchar\@gls@quotechar\@gls@levelchar}% - \def\@@gls@checklevel{\@gls@checklevel#3\null}% - \fi -\else - \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ - \@gls@quotechar\@gls@levelchar}% - \ifx\null#3\null - \def\@@gls@checklevel{\@gls@checklevel#2!!\null}% - \else - \def\@@gls@checklevel{\@gls@checklevel#2!#3\null}% - \fi -\fi -\@@gls@checklevel} + \@gls@tmpb=\expandafter{\@gls@checkedmkidx}% + \toks@={#1}% + \ifx\null#2\null + \ifx\null#3\null + \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@}% + \def\@@gls@checklevel{\relax}% + \else + \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ + \@gls@quotechar\@gls@levelchar\@gls@quotechar\@gls@levelchar}% + \def\@@gls@checklevel{\@gls@checklevel#3\null}% + \fi + \else + \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ + \@gls@quotechar\@gls@levelchar}% + \ifx\null#3\null + \def\@@gls@checklevel{\@gls@checklevel#2!!\null}% + \else + \def\@@gls@checklevel{\@gls@checklevel#2!#3\null}% + \fi + \fi + \@@gls@checklevel +} % \end{macrocode} %\end{macro} %\begin{macro}{\@gls@checkactual} % and for \verb"?": % \begin{macrocode} \def\@gls@checkactual#1?#2?#3\null{% -\@gls@tmpb=\expandafter{\@gls@checkedmkidx}% -\toks@={#1}% -\ifx\null#2\null - \ifx\null#3\null - \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@}% - \def\@@gls@checkactual{\relax}% - \else - \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ - \@gls@quotechar\@gls@actualchar\@gls@quotechar\@gls@actualchar}% - \def\@@gls@checkactual{\@gls@checkactual#3\null}% - \fi -\else - \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ - \@gls@quotechar\@gls@actualchar}% - \ifx\null#3\null - \def\@@gls@checkactual{\@gls@checkactual#2??\null}% - \else - \def\@@gls@checkactual{\@gls@checkactual#2?#3\null}% - \fi -\fi -\@@gls@checkactual} + \@gls@tmpb=\expandafter{\@gls@checkedmkidx}% + \toks@={#1}% + \ifx\null#2\null + \ifx\null#3\null + \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@}% + \def\@@gls@checkactual{\relax}% + \else + \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ + \@gls@quotechar\@gls@actualchar\@gls@quotechar\@gls@actualchar}% + \def\@@gls@checkactual{\@gls@checkactual#3\null}% + \fi + \else + \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ + \@gls@quotechar\@gls@actualchar}% + \ifx\null#3\null + \def\@@gls@checkactual{\@gls@checkactual#2??\null}% + \else + \def\@@gls@checkactual{\@gls@checkactual#2?#3\null}% + \fi + \fi + \@@gls@checkactual +} % \end{macrocode} %\end{macro} % @@ -4726,27 +6184,27 @@ name=true]{% % As before but for use with \app{xindy} % \begin{macrocode} \def\@gls@xdycheckquote#1"#2"#3\null{% -\@gls@tmpb=\expandafter{\@gls@checkedmkidx}% -\toks@={#1}% -\ifx\null#2\null - \ifx\null#3\null - \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@}% - \def\@@gls@xdycheckquote{\relax}% - \else - \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ - \string\"\string\"}% - \def\@@gls@xdycheckquote{\@gls@xdycheckquote#3\null}% - \fi -\else - \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ - \string\"}% - \ifx\null#3\null - \def\@@gls@xdycheckquote{\@gls@xdycheckquote#2""\null}% - \else - \def\@@gls@xdycheckquote{\@gls@xdycheckquote#2"#3\null}% - \fi -\fi -\@@gls@xdycheckquote + \@gls@tmpb=\expandafter{\@gls@checkedmkidx}% + \toks@={#1}% + \ifx\null#2\null + \ifx\null#3\null + \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@}% + \def\@@gls@xdycheckquote{\relax}% + \else + \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ + \string\"\string\"}% + \def\@@gls@xdycheckquote{\@gls@xdycheckquote#3\null}% + \fi + \else + \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@ + \string\"}% + \ifx\null#3\null + \def\@@gls@xdycheckquote{\@gls@xdycheckquote#2""\null}% + \else + \def\@@gls@xdycheckquote{\@gls@xdycheckquote#2"#3\null}% + \fi + \fi + \@@gls@xdycheckquote } % \end{macrocode} %\end{macro} @@ -4813,8 +6271,9 @@ name=true]{% } % \end{macrocode} %\end{macro} -%\changes{1.12}{2008 Mar 8}{added check for 'hypertarget separate -% to 'hyperlink (memoir defines 'hyperlink but not 'hypertarget)} +%\changes{1.12}{2008 Mar 8}{added check for \cs{hypertarget} separate +% to \cs{hyperlink} (memoir defines \cs{hyperlink} but not +% \cs{hypertarget})} %\begin{macro}{\@glstarget} % If \ics{hypertarget} is not defined, \cs{@glstarget} % ignores its first argument and just does the second argument, @@ -4822,8 +6281,7 @@ name=true]{% %\changes{1.16}{2008 August 27}{raised the hypertarget so the target text doesn't % scroll off the top of the page} % \begin{macrocode} -\newlength\gls@tmplen -\ifcsundef{hypertarget}% +\newlength\gls@tmplen \ifcsundef{hypertarget}% {% \gdef\@glstarget#1#2{#2}% }% @@ -4841,8 +6299,9 @@ name=true]{% %\begin{macro}{\glsdisablehyper} % \begin{macrocode} \newcommand{\glsdisablehyper}{% -\renewcommand*\@glslink[2]{##2}% -\renewcommand*\@glstarget[2]{##2}} + \renewcommand*\@glslink[2]{##2}% + \renewcommand*\@glstarget[2]{##2}% +} % \end{macrocode} %\end{macro} % Glossary hyperlinks can be enabled using \cs{glsenablehyper} @@ -4857,8 +6316,17 @@ name=true]{% % \end{macrocode} %\end{macro} % -%Syntax:\\[10pt] -% \cs{gls}\oarg{options}\marg{label}\oarg{insert text}\\[10pt] +% Provide some convenience commands if not already defined: +% \begin{macrocode} +\providecommand{\@firstofthree}[3]{#1} +\providecommand{\@secondofthree}[3]{#2} +\providecommand{\@thirdofthree}[3]{#3} +% \end{macrocode} +% +%Syntax: +%\begin{definition} +% \cs{gls}\oarg{options}\marg{label}\oarg{insert text} +%\end{definition} % Link to glossary entry using singular form. The link text % is taken from the value of the \gloskey{text} or \gloskey{first} % keys used when the entry was defined. @@ -4909,27 +6377,29 @@ name=true]{% \def\@gls@link@opts{#1}% \def\@gls@link@label{#2}% % \end{macrocode} +%\changes{3.11a}{2013-10-15}{add \cs{glslabel}, \cs{glsifplural}, +% \cs{glscapscase}, \cs{glscustomtext} and \cs{glsinsert}} +% \begin{macrocode} + \def\glslabel{#2}% + \let\glsifplural\@secondoftwo + \let\glscapscase\@firstofthree + \let\glscustomtext\@empty + \def\glsinsert{#3}% +% \end{macrocode} % Determine what the link text should be (this is stored in % \cs{@glo@text}) +%\changes{3.11a}{2013-10-15}{change to using \cs{glsentryfmt} style +%commands} % \begin{macrocode} - \ifglsused{#2}% - {% - \def\@glo@text{% - \csname gls@\@glo@type @display\endcsname - {\glsentrytext{#2}}{\glsentrydesc{#2}}{\glsentrysymbol{#2}}{#3}}% - }% - {% - \def\@glo@text{% - \csname gls@\@glo@type @displayfirst\endcsname - {\glsentryfirst{#2}}{\glsentrydesc{#2}}{\glsentrysymbol{#2}}{#3}}% - }% + \def\@glo@text{\csname gls@\@glo@type @entryfmt\endcsname}% % \end{macrocode} % Call \cs{@gls@link}. % If \pkgopt{footnote} package option has been used and the glossary % type is \cs{acronymtype}, suppress % hyperlink for first use. Likewise if the \pkgopt[false]{hyperfirst} % package option is used. -%\changes{1.16}{2008 August 27}{Test glossary type is 'acronymtype in addition to +%\changes{1.16}{2008 August 27}{Test glossary type is +%\cs{acronymtype} in addition to %checking if footnote option has been used} %\changes{2.03}{2009 Sep 23}{Added check for hyperfirst} %\changes{2.04}{2009 November 10}{Changed test to check if glossary type @@ -5001,38 +6471,38 @@ name=true]{% \def\@gls@link@label{#2}% \def\glslabel{#2}% % \end{macrocode} +%\changes{3.11a}{2013-10-15}{add \cs{glsifplural}, +% \cs{glscapscase}, \cs{glscustomtext} and \cs{glsinsert}} +% \begin{macrocode} + \let\glsifplural\@secondoftwo + \let\glscapscase\@secondofthree + \let\glscustomtext\@empty + \def\glsinsert{#3}% +% \end{macrocode} % Determine what the link text should be (this is stored in % \cs{@glo@text}) +%\changes{3.11a}{2013-10-15}{change to using \cs{glsentryfmt} style +%commands} % \begin{macrocode} - \ifglsused{#2}% - {% - \protected@edef\@glo@text{% - \csname gls@\@glo@type @display\endcsname - {\glsentrytext{#2}}{\glsentrydesc{#2}}% - {\glsentrysymbol{#2}}{#3}}% - }% - {% - \protected@edef\@glo@text{% - \csname gls@\@glo@type @displayfirst\endcsname - {\glsentryfirst{#2}}{\glsentrydesc{#2}}% - {\glsentrysymbol{#2}}{#3}}% - }% + \def\@glo@text{\csname gls@\@glo@type @entryfmt\endcsname}% % \end{macrocode} % Call \cs{@gls@link} % If \pkgopt{footnote} package option has been used and the glossary % type is \cs{acronymtype}, suppress % hyperlink for first use. Likewise if the \pkgopt[false]{hyperfirst} % package option is used. -%\changes{1.16}{2008 August 27}{Test glossary type is 'acronymtype in addition to +%\changes{1.16}{2008 August 27}{Test glossary type is +%\cs{acronymtype} in addition to %checking if footnote option has been used} %\changes{2.03}{2009 Sep 23}{Added check for hyperfirst} %\changes{2.04}{2009 November 10}{Changed test to check if glossary type %has been identified as a list of acronyms} +%\changes{3.11a}{2013-10-15}{removed \cs{makefirstuc} (now dealt +%with in \cs{glsentryfmt})} % \begin{macrocode} \ifglsused{#2}% {% - \@gls@link[#1]{#2}{% - \expandafter\makefirstuc\expandafter{\@glo@text}}% + \@gls@link[#1]{#2}{\@glo@text}% }% {% \gls@checkisacronymlist\@glo@type @@ -5042,12 +6512,10 @@ name=true]{% \OR \NOT\boolean{glshyperfirst}% }% {% - \@gls@link[#1,hyper=false]{#2}{% - \expandafter\makefirstuc\expandafter{\@glo@text}}% + \@gls@link[#1,hyper=false]{#2}{\@glo@text}% }% {% - \@gls@link[#1]{#2}{% - \expandafter\makefirstuc\expandafter{\@glo@text}}% + \@gls@link[#1]{#2}{\@glo@text}% }% }% % \end{macrocode} @@ -5095,37 +6563,39 @@ name=true]{% \def\@gls@link@opts{#1}% \def\@gls@link@label{#2}% % \end{macrocode} +%\changes{3.11a}{2013-10-15}{add \cs{glslabel}, \cs{glsifplural}, +% \cs{glscapscase}, \cs{glscustomtext} and \cs{glsinsert}} +% \begin{macrocode} + \def\glslabel{#2}% + \let\glsifplural\@secondoftwo + \let\glscapscase\@thirdofthree + \let\glscustomtext\@empty + \def\glsinsert{#3}% +% \end{macrocode} % Determine what the link text should be (this is stored in % \cs{@glo@text}). +%\changes{3.11a}{2013-10-15}{change to using \cs{glsentryfmt} style +%commands} % \begin{macrocode} - \ifglsused{#2}% - {% - \def\@glo@text{% - \csname gls@\@glo@type @display\endcsname - {\glsentrytext{#2}}{\glsentrydesc{#2}}{\glsentrysymbol{#2}}{#3}% - }% - }% - {% - \def\@glo@text{% - \csname gls@\@glo@type @displayfirst\endcsname - {\glsentryfirst{#2}}{\glsentrydesc{#2}}{\glsentrysymbol{#2}}{#3}% - }% - }% + \def\@glo@text{\csname gls@\@glo@type @entryfmt\endcsname}% % \end{macrocode} % Call \cs{@gls@link} % If \pkgopt{footnote} package option has been used and the glossary % type is \cs{acronymtype}, suppress % hyperlink for first use. Likewise if the \pkgopt[false]{hyperfirst} % package option is used. -%\changes{1.16}{2008 August 27}{Test glossary type is 'acronymtype in addition to +%\changes{1.16}{2008 August 27}{Test glossary type is +%\cs{acronymtype} in addition to %checking if footnote option has been used} %\changes{2.03}{2009 Sep 23}{Added check for hyperfirst} %\changes{2.04}{2009 November 10}{Changed test to check if glossary type %has been identified as a list of acronyms} +%\changes{3.11a}{2013-10-15}{removed \cs{MakeUppercase} (now moved +%to \cs{glsentryfmt})} % \begin{macrocode} \ifglsused{#2}% {% - \@gls@link[#1]{#2}{\MakeUppercase{\@glo@text}}% + \@gls@link[#1]{#2}{\@glo@text}% }% {% \gls@checkisacronymlist\@glo@type @@ -5133,10 +6603,10 @@ name=true]{% {% \(\boolean{@glsisacronymlist}\AND \boolean{glsacrfootnote}\) \OR \NOT\boolean{glshyperfirst}}{% - \@gls@link[#1,hyper=false]{#2}{\MakeUppercase{\@glo@text}}% + \@gls@link[#1,hyper=false]{#2}{\@glo@text}% }% {% - \@gls@link[#1]{#2}{\MakeUppercase{\@glo@text}}% + \@gls@link[#1]{#2}{\@glo@text}% }% }% % \end{macrocode} @@ -5184,31 +6654,31 @@ name=true]{% \def\@gls@link@opts{#1}% \def\@gls@link@label{#2}% % \end{macrocode} +%\changes{3.11a}{2013-10-15}{add \cs{glslabel}, \cs{glsifplural}, +% \cs{glscapscase}, \cs{glscustomtext} and \cs{glsinsert}} +% \begin{macrocode} + \def\glslabel{#2}% + \let\glsifplural\@firstoftwo + \let\glscapscase\@firstofthree + \let\glscustomtext\@empty + \def\glsinsert{#3}% % Determine what the link text should be (this is stored in % \cs{@glo@text}) -%\changes{1.12}{2008 Mar 8}{now uses 'glsentrydescplural and -% 'glsentrysymbolplural instead of 'glsentrydesc and 'glsentrysymbol} +%\changes{1.12}{2008 Mar 8}{now uses \cs{glsentrydescplural} and +% \cs{glsentrysymbolplural} instead of \cs{glsentrydesc} and +% \cs{glsentrysymbol}} +%\changes{3.11a}{2013-10-15}{change to using \cs{glsentryfmt} style +%commands} % \begin{macrocode} - \ifglsused{#2}% - {% - \def\@glo@text{% - \csname gls@\@glo@type @display\endcsname - {\glsentryplural{#2}}{\glsentrydescplural{#2}}% - {\glsentrysymbolplural{#2}}{#3}}% - }% - {% - \def\@glo@text{% - \csname gls@\@glo@type @displayfirst\endcsname - {\glsentryfirstplural{#2}}{\glsentrydescplural{#2}}% - {\glsentrysymbolplural{#2}}{#3}}% - }% + \def\@glo@text{\csname gls@\@glo@type @entryfmt\endcsname}% % \end{macrocode} % Call \cs{@gls@link}. % If \pkgopt{footnote} package option has been used and the glossary % type is \cs{acronymtype}, suppress % hyperlink for first use. Likewise if the \pkgopt[false]{hyperfirst} % package option is used. -%\changes{1.16}{2008 August 27}{Test glossary type is 'acronymtype in addition to +%\changes{1.16}{2008 August 27}{Test glossary type is +%\cs{acronymtype} in addition to %checking if footnote option has been used} %\changes{2.03}{2009 Sep 23}{Added check for hyperfirst} %\changes{2.04}{2009 November 10}{Changed test to check if glossary type @@ -5280,41 +6750,42 @@ name=true]{% \def\@gls@link@label{#2}% \def\glslabel{#2}% % \end{macrocode} +%\changes{3.11a}{2013-10-15}{add \cs{glsifplural}, +% \cs{glscapscase}, \cs{glscustomtext} and \cs{glsinsert}} +% \begin{macrocode} + \let\glsifplural\@firstoftwo + \let\glscapscase\@secondofthree + \let\glscustomtext\@empty + \def\glsinsert{#3}% +% \end{macrocode} % Determine what the link text should be (this is stored in % \cs{@glo@text}). This needs to be expanded so that the % \cs{@glo@text} can be passed to \cs{xmakefirstuc}. -%\changes{1.12}{2008 Mar 8}{now uses 'glsentrydescplural and -% 'glsentrysymbolplural instead of 'glsentrydesc and 'glsentrysymbol} +%\changes{1.12}{2008 Mar 8}{now uses \cs{glsentrydescplural} and +% \cs{glsentrysymbolplural} instead of \cs{glsentrydesc} and +% \cs{glsentrysymbol}} +%\changes{3.11a}{2013-10-15}{change to using \cs{glsentryfmt} style +%commands} % \begin{macrocode} - \ifglsused{#2}% - {% - \protected@edef\@glo@text{% - \csname gls@\@glo@type @display\endcsname - {\glsentryplural{#2}}{\glsentrydescplural{#2}}% - {\glsentrysymbolplural{#2}}{#3}}% - }% - {% - \protected@edef\@glo@text{% - \csname gls@\@glo@type @displayfirst\endcsname - {\glsentryfirstplural{#2}}{\glsentrydescplural{#2}}% - {\glsentrysymbolplural{#2}}{#3}}% - }% + \def\@glo@text{\csname gls@\@glo@type @entryfmt\endcsname}% % \end{macrocode} % Call \cs{@gls@link}. % If \pkgopt{footnote} package option has been used and the glossary % type is \cs{acronymtype}, suppress % hyperlink for first use. Likewise if the \pkgopt[false]{hyperfirst} % package option is used. -%\changes{1.16}{2008 August 27}{Test glossary type is 'acronymtype in addition to +%\changes{1.16}{2008 August 27}{Test glossary type is +%\cs{acronymtype} in addition to %checking if footnote option has been used} %\changes{2.03}{2009 Sep 23}{Added check for hyperfirst} %\changes{2.04}{2009 November 10}{Changed test to check if glossary type %has been identified as a list of acronyms} +%\changes{3.11a}{2013-10-15}{removed \cs{makefirstuc} (now dealt +%with in \cs{glsentryfmt})} % \begin{macrocode} \ifglsused{#2}% {% - \@gls@link[#1]{#2}{% - \expandafter\makefirstuc\expandafter{\@glo@text}}% + \@gls@link[#1]{#2}{\@glo@text}% }% {% \gls@checkisacronymlist\@glo@type @@ -5324,12 +6795,10 @@ name=true]{% \OR \NOT\boolean{glshyperfirst}% }% {% - \@gls@link[#1,hyper=false]{#2}{% - \expandafter\makefirstuc\expandafter{\@glo@text}}% + \@gls@link[#1,hyper=false]{#2}{\@glo@text}% }% {% - \@gls@link[#1]{#2}{% - \expandafter\makefirstuc\expandafter{\@glo@text}}% + \@gls@link[#1]{#2}{\@glo@text}% }% }% % \end{macrocode} @@ -5377,41 +6846,42 @@ name=true]{% \def\@gls@link@opts{#1}% \def\@gls@link@label{#2}% % \end{macrocode} +%\changes{3.11a}{2013-10-15}{add \cs{glslabel}, \cs{glsifplural}, +% \cs{glscapscase}, \cs{glscustomtext} and \cs{glsinsert}} +% \begin{macrocode} + \def\glslabel{#2}% + \let\glsifplural\@firstoftwo + \let\glscapscase\@thirdofthree + \let\glscustomtext\@empty + \def\glsinsert{#3}% +% \end{macrocode} % Determine what the link text should be (this is stored in % \cs{@glo@text}) -%\changes{1.12}{2008 Mar 8}{now uses 'glsentrydescplural and -% 'glsentrysymbolplural instead of 'glsentrydesc and 'glsentrysymbol} +%\changes{1.12}{2008 Mar 8}{now uses \cs{glsentrydescplural} and +% \cs{glsentrysymbolplural} instead of \cs{glsentrydesc} and +% \cs{glsentrysymbol}} +%\changes{3.11a}{2013-10-15}{change to using \cs{glsentryfmt} style +%commands} % \begin{macrocode} - \ifglsused{#2}% - {% - \def\@glo@text{% - \csname gls@\@glo@type @display\endcsname - {\glsentryplural{#2}}{\glsentrydescplural{#2}}% - {\glsentrysymbolplural{#2}}{#3}% - }% - }% - {% - \def\@glo@text{% - \csname gls@\@glo@type @displayfirst\endcsname - {\glsentryfirstplural{#2}}{\glsentrydescplural{#2}}% - {\glsentrysymbolplural{#2}}{#3}% - }% - }% + \def\@glo@text{\csname gls@\@glo@type @entryfmt\endcsname}% % \end{macrocode} % Call \cs{@gls@link}. % If \pkgopt{footnote} package option has been used and the glossary % type is \cs{acronymtype}, suppress % hyperlink for first use. Likewise if the \pkgopt[false]{hyperfirst} % package option is used. -%\changes{1.16}{2008 August 27}{Test glossary type is 'acronymtype in addition to +%\changes{1.16}{2008 August 27}{Test glossary type is +%\cs{acronymtype} in addition to %checking if footnote option has been used} %\changes{2.03}{2009 Sep 23}{Added check for hyperfirst} %\changes{2.04}{2009 November 10}{Changed test to check if glossary type %has been identified as a list of acronyms} +%\changes{3.11a}{2013-10-15}{removed \cs{MakeUppercase} as now dealt +%with in \cs{glsentryfmt}} % \begin{macrocode} \ifglsused{#2}% {% - \@gls@link[#1]{#2}{\MakeUppercase{\@glo@text}}% + \@gls@link[#1]{#2}{\@glo@text}% }% {% \gls@checkisacronymlist\@glo@type @@ -5421,10 +6891,10 @@ name=true]{% \OR \NOT\boolean{glshyperfirst}% }% {% - \@gls@link[#1,hyper=false]{#2}{\MakeUppercase{\@glo@text}}% + \@gls@link[#1,hyper=false]{#2}{\@glo@text}% }% {% - \@gls@link[#1]{#2}{\MakeUppercase{\@glo@text}}% + \@gls@link[#1]{#2}{\@glo@text}% }% }% % \end{macrocode} @@ -5474,27 +6944,29 @@ name=true]{% \def\@gls@link@opts{#1}% \def\@gls@link@label{#2}% % \end{macrocode} +%\changes{3.11a}{2013-10-15}{add \cs{glslabel}, \cs{glsifplural}, +% \cs{glscapscase}, \cs{glscustomtext} and \cs{glsinsert}} +% \begin{macrocode} + \def\glslabel{#2}% + \let\glsifplural\@secondoftwo + \let\glscapscase\@firstofthree + \def\glscustomtext{#3}% + \def\glsinsert{}% +% \end{macrocode} % Determine what the link text should be (this is stored in % \cs{@glo@text}) +%\changes{3.11a}{2013-10-15}{change to using \cs{glsentryfmt} style +%commands} % \begin{macrocode} - \ifglsused{#2}% - {% - \def\@glo@text{% - \csname gls@\@glo@type @display\endcsname - {#3}{\glsentrydesc{#2}}{\glsentrysymbol{#2}}{}}% - }% - {% - \def\@glo@text{% - \csname gls@\@glo@type @displayfirst\endcsname - {#3}{\glsentrydesc{#2}}{\glsentrysymbol{#2}}{}}% - }% + \def\@glo@text{\csname gls@\@glo@type @entryfmt\endcsname}% % \end{macrocode} % Call \cs{@gls@link}. % If \pkgopt{footnote} package option has been used and the glossary % type is \cs{acronymtype}, suppress % hyperlink for first use. Likewise if the \pkgopt[false]{hyperfirst} % package option is used. -%\changes{1.16}{2008 August 27}{Test glossary type is 'acronymtype in addition to +%\changes{1.16}{2008 August 27}{Test glossary type is +%\cs{acronymtype} in addition to %checking if footnote option has been used} %\changes{2.03}{2009 Sep 23}{Added check for hyperfirst} %\changes{2.04}{2009 November 10}{Changed test to check if glossary type @@ -5546,25 +7018,21 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@glstext}[2][]{% -\new@ifnextchar[{\@glstext@{#1}{#2}}{\@glstext@{#1}{#2}[]}} + \new@ifnextchar[{\@glstext@{#1}{#2}}{\@glstext@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@glstext@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \changes{1.12}{2008 Mar 8}{fixed bug ('glstext shouldn't use -% 'gls@\meta{type}@display)} -% \begin{macrocode} -\protected@edef\@glo@text{\glsentrytext{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} -% \changes{1.13}{2008 May 10}{fixed bug that ignores 3rd parameter} +% \changes{1.13}{2008 May 10}{fixed bug that ignored 3rd parameter} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{glsentrytext}} % \begin{macrocode} -\@gls@link[#1]{#2}{\@glo@text#3}% -}% + \@gls@link[#1]{#2}{\glsentrytext{#2}#3}% + }% } % \end{macrocode} % @@ -5583,25 +7051,20 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@GLStext}[2][]{% -\new@ifnextchar[{\@GLStext@{#1}{#2}}{\@GLStext@{#1}{#2}[]}} + \new@ifnextchar[{\@GLStext@{#1}{#2}}{\@GLStext@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@GLStext@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \changes{1.12}{2008 Mar 8}{fixed bug ('GLStext shouldn't use -% 'gls@\meta{type}@display)} -% \begin{macrocode} -\protected@edef\@glo@text{\glsentrytext{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} -% \changes{1.13}{2008 May 10}{fixed bug that ignores 3rd parameter} +% \changes{1.13}{2008 May 10}{fixed bug that ignored 3rd parameter} % \begin{macrocode} -\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}% -}% + \@gls@link[#1]{#2}{\mfirstucMakeUppercase{\glsentrytext{#2}#3}}% + }% } % \end{macrocode} % @@ -5621,26 +7084,21 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@Glstext}[2][]{% -\new@ifnextchar[{\@Glstext@{#1}{#2}}{\@Glstext@{#1}{#2}[]}} + \new@ifnextchar[{\@Glstext@{#1}{#2}}{\@Glstext@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@Glstext@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \changes{1.12}{2008 Mar 8}{fixed bug ('Glstext shouldn't use -% 'gls@\meta{type}@display)} -% \begin{macrocode} -\protected@edef\@glo@text{\glsentrytext{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} -% \changes{1.13}{2008 May 10}{fixed bug that ignores 3rd parameter} +% \changes{1.13}{2008 May 10}{fixed bug that ignored 3rd parameter} +%\changes{3.11a}{2013-10-15}{Changed to just use \cs{Glsentrytext}} % \begin{macrocode} -\@gls@link[#1]{#2}{% - \expandafter\makefirstuc\expandafter{\@glo@text}#3}% -}% + \@gls@link[#1]{#2}{\Glsentrytext{#2}#3}% + }% } % \end{macrocode} % @@ -5661,25 +7119,21 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@glsfirst}[2][]{% -\new@ifnextchar[{\@glsfirst@{#1}{#2}}{\@glsfirst@{#1}{#2}[]}} + \new@ifnextchar[{\@glsfirst@{#1}{#2}}{\@glsfirst@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@glsfirst@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \changes{1.12}{2008 Mar 8}{fixed bug ('glsfirst shouldn't use -% 'gls@\meta{type}@display)} -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryfirst{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} -% \changes{1.13}{2008 May 10}{fixed bug that ignores 3rd parameter} +% \changes{1.13}{2008 May 10}{fixed bug that ignored 3rd parameter} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{glsentryfirst}} % \begin{macrocode} -\@gls@link[#1]{#2}{\@glo@text#3}% -}% + \@gls@link[#1]{#2}{\glsentryfirst{#2}#3}% + }% } % \end{macrocode} % @@ -5698,26 +7152,20 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@Glsfirst}[2][]{% -\new@ifnextchar[{\@Glsfirst@{#1}{#2}}{\@Glsfirst@{#1}{#2}[]}} + \new@ifnextchar[{\@Glsfirst@{#1}{#2}}{\@Glsfirst@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@Glsfirst@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \changes{1.12}{2008 Mar 8}{fixed bug ('Glsfirst shouldn't use -% 'gls@\meta{type}@display)} -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryfirst{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} -% \changes{1.13}{2008 May 10}{fixed bug that ignores 3rd parameter} +% \changes{1.13}{2008 May 10}{fixed bug that ignored 3rd parameter} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{Glsentryfirst}} % \begin{macrocode} -\@gls@link[#1]{#2}{% - \expandafter\makefirstuc\expandafter{\@glo@text}#3}% -}% + \@gls@link[#1]{#2}{\Glsentryfirst{#2}#3}}% } % \end{macrocode} % @@ -5736,25 +7184,22 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@GLSfirst}[2][]{% -\new@ifnextchar[{\@GLSfirst@{#1}{#2}}{\@GLSfirst@{#1}{#2}[]}} + \new@ifnextchar[{\@GLSfirst@{#1}{#2}}{\@GLSfirst@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@GLSfirst@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \changes{1.12}{2008 Mar 8}{fixed bug ('GLSfirst shouldn't use -% 'gls@\meta{type}@display)} -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryfirst{#2}}% -% \end{macrocode} % Call \cs{@gls@link} -% \changes{1.13}{2008 May 10}{fixed bug that ignores 3rd parameter} +% \changes{1.13}{2008 May 10}{fixed bug that ignored 3rd parameter} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{glsentryfirst}} % \begin{macrocode} -\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}% -}% + \@gls@link[#1]{#2}{\mfirstucMakeUppercase{\glsentryfirst{#2}#3}}% + }% } % \end{macrocode} % @@ -5774,25 +7219,21 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@glsplural}[2][]{% -\new@ifnextchar[{\@glsplural@{#1}{#2}}{\@glsplural@{#1}{#2}[]}} + \new@ifnextchar[{\@glsplural@{#1}{#2}}{\@glsplural@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@glsplural@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \changes{1.12}{2008 Mar 8}{fixed bug ('glsplural shouldn't use -% 'gls@\meta{type}@display)} -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryplural{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} -% \changes{1.13}{2008 May 10}{fixed bug that ignores 3rd parameter} +% \changes{1.13}{2008 May 10}{fixed bug that ignored 3rd parameter} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{glsentryplural}} % \begin{macrocode} -\@gls@link[#1]{#2}{\@glo@text#3}% -}% + \@gls@link[#1]{#2}{\glsentryplural{#2}#3}% + }% } % \end{macrocode} % @@ -5811,26 +7252,21 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@Glsplural}[2][]{% -\new@ifnextchar[{\@Glsplural@{#1}{#2}}{\@Glsplural@{#1}{#2}[]}} + \new@ifnextchar[{\@Glsplural@{#1}{#2}}{\@Glsplural@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@Glsplural@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \changes{1.12}{2008 Mar 8}{fixed bug ('Glsplural shouldn't use -% 'gls@\meta{type}@display)} -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryplural{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} -% \changes{1.13}{2008 May 10}{fixed bug that ignores 3rd parameter} +% \changes{1.13}{2008 May 10}{fixed bug that ignored 3rd parameter} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{Glsentryplural}} % \begin{macrocode} -\@gls@link[#1]{#2}{% - \expandafter\makefirstuc\expandafter{\@glo@text}#3}% -}% + \@gls@link[#1]{#2}{\Glsentryplural{#2}#3}% + }% } % \end{macrocode} % @@ -5850,25 +7286,21 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@GLSplural}[2][]{% -\new@ifnextchar[{\@GLSplural@{#1}{#2}}{\@GLSplural@{#1}{#2}[]}} + \new@ifnextchar[{\@GLSplural@{#1}{#2}}{\@GLSplural@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@GLSplural@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \changes{1.12}{2008 Mar 8}{fixed bug ('GLSplural shouldn't use -% 'gls@\meta{type}@display)} -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryplural{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} -% \changes{1.13}{2008 May 10}{fixed bug that ignores 3rd parameter} +% \changes{1.13}{2008 May 10}{fixed bug that ignored 3rd parameter} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{glsentryplural}} % \begin{macrocode} -\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}% -}% + \@gls@link[#1]{#2}{\mfirstucMakeUppercase{\glsentryplural{#2}#3}}% + }% } % \end{macrocode} % @@ -5889,25 +7321,22 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@glsfirstplural}[2][]{% -\new@ifnextchar[{\@glsfirstplural@{#1}{#2}}{\@glsfirstplural@{#1}{#2}[]}} + \new@ifnextchar[{\@glsfirstplural@{#1}{#2}}{\@glsfirstplural@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@glsfirstplural@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \changes{1.12}{2008 Mar 8}{fixed bug ('glsfirstplural shouldn't use -% 'gls@\meta{type}@display)} -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryfirstplural{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} -% \changes{1.13}{2008 May 10}{fixed bug that ignores 3rd parameter} +% \changes{1.13}{2008 May 10}{fixed bug that ignored 3rd parameter} +%\changes{3.11a}{2013-10-15}{changed to just use +%\cs{glsentryfirstplural}} % \begin{macrocode} -\@gls@link[#1]{#2}{\@glo@text#3}% -}% + \@gls@link[#1]{#2}{\glsentryfirstplural{#2}#3}% + }% } % \end{macrocode} % @@ -5927,26 +7356,22 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@Glsfirstplural}[2][]{% -\new@ifnextchar[{\@Glsfirstplural@{#1}{#2}}{\@Glsfirstplural@{#1}{#2}[]}} + \new@ifnextchar[{\@Glsfirstplural@{#1}{#2}}{\@Glsfirstplural@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@Glsfirstplural@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \changes{1.12}{2008 Mar 8}{fixed bug ('Glsfirstplural shouldn't use -% 'gls@\meta{type}@display)} -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryfirstplural{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} -% \changes{1.13}{2008 May 10}{fixed bug that ignores 3rd parameter} +% \changes{1.13}{2008 May 10}{fixed bug that ignored 3rd parameter} +%\changes{3.11a}{2013-10-15}{changed to just use +%\cs{Glsentryfirstplural}} % \begin{macrocode} -\@gls@link[#1]{#2}{% - \expandafter\makefirstuc\expandafter{\@glo@text}#3}% -}% + \@gls@link[#1]{#2}{\Glsentryfirstplural{#2}#3}% + }% } % \end{macrocode} % @@ -5966,25 +7391,22 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@GLSfirstplural}[2][]{% -\new@ifnextchar[{\@GLSfirstplural@{#1}{#2}}{\@GLSfirstplural@{#1}{#2}[]}} + \new@ifnextchar[{\@GLSfirstplural@{#1}{#2}}{\@GLSfirstplural@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@GLSfirstplural@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \changes{1.12}{2008 Mar 8}{fixed bug ('GLSfirstplural shouldn't use -% 'gls@\meta{type}@display)} -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryfirstplural{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} -% \changes{1.13}{2008 May 10}{fixed bug that ignores 3rd parameter} +% \changes{1.13}{2008 May 10}{fixed bug that ignored 3rd parameter} +%\changes{3.11a}{2013-10-15}{changed to just use +%\cs{glsentryfirstplural}} % \begin{macrocode} -\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}% -}% + \@gls@link[#1]{#2}{\mfirstucMakeUppercase{\glsentryfirstplural{#2}#3}}% + }% } % \end{macrocode} % @@ -6005,25 +7427,21 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@glsname}[2][]{% -\new@ifnextchar[{\@glsname@{#1}{#2}}{\@glsname@{#1}{#2}[]}} + \new@ifnextchar[{\@glsname@{#1}{#2}}{\@glsname@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@glsname@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \changes{1.12}{2008 Mar 8}{fixed bug ('glsname shouldn't use -% 'gls@\meta{type}@display)} -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryname{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} -% \changes{1.13}{2008 May 10}{fixed bug that ignores 3rd parameter} +% \changes{1.13}{2008 May 10}{fixed bug that ignored 3rd parameter} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{glsentryname}} % \begin{macrocode} -\@gls@link[#1]{#2}{\@glo@text#3}% -}% + \@gls@link[#1]{#2}{\glsentryname{#2}#3}% + }% } % \end{macrocode} % @@ -6043,26 +7461,21 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@Glsname}[2][]{% -\new@ifnextchar[{\@Glsname@{#1}{#2}}{\@Glsname@{#1}{#2}[]}} + \new@ifnextchar[{\@Glsname@{#1}{#2}}{\@Glsname@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@Glsname@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \changes{1.12}{2008 Mar 8}{fixed bug ('glsname shouldn't use -% 'gls@\meta{type}@display)} -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryname{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} -% \changes{1.13}{2008 May 10}{fixed bug that ignores 3rd parameter} +% \changes{1.13}{2008 May 10}{fixed bug that ignored 3rd parameter} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{Glsentryname}} % \begin{macrocode} -\@gls@link[#1]{#2}{% - \expandafter\makefirstuc\expandafter{\@glo@text}#3}% -}% + \@gls@link[#1]{#2}{\Glsentryname{#2}#3}% + }% } % \end{macrocode} % @@ -6082,25 +7495,21 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@GLSname}[2][]{% -\new@ifnextchar[{\@GLSname@{#1}{#2}}{\@GLSname@{#1}{#2}[]}} + \new@ifnextchar[{\@GLSname@{#1}{#2}}{\@GLSname@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@GLSname@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \changes{1.12}{2008 Mar 8}{fixed bug ('GLSname shouldn't use -% 'gls@\meta{type}@display)} -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryname{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} -% \changes{1.13}{2008 May 10}{fixed bug that ignores 3rd parameter} +% \changes{1.13}{2008 May 10}{fixed bug that ignored 3rd parameter} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{glsentryname}} % \begin{macrocode} -\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}% -}% + \@gls@link[#1]{#2}{\mfirstucMakeUppercase{\glsentryname{#2}#3}}% + }% } % \end{macrocode} % @@ -6121,25 +7530,21 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@glsdesc}[2][]{% -\new@ifnextchar[{\@glsdesc@{#1}{#2}}{\@glsdesc@{#1}{#2}[]}} + \new@ifnextchar[{\@glsdesc@{#1}{#2}}{\@glsdesc@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@glsdesc@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \changes{1.12}{2008 Mar 8}{fixed bug ('glsdesc shouldn't use -% 'gls@\meta{type}@display)} -% \begin{macrocode} -\protected@edef\@glo@text{\glsentrydesc{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} -% \changes{1.13}{2008 May 10}{fixed bug that ignores 3rd parameter} +% \changes{1.13}{2008 May 10}{fixed bug that ignored 3rd parameter} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{glsentrydesc}} % \begin{macrocode} -\@gls@link[#1]{#2}{\@glo@text#3}% -}% + \@gls@link[#1]{#2}{\glsentrydesc{#2}#3}% + }% } % \end{macrocode} % @@ -6159,26 +7564,21 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@Glsdesc}[2][]{% -\new@ifnextchar[{\@Glsdesc@{#1}{#2}}{\@Glsdesc@{#1}{#2}[]}} + \new@ifnextchar[{\@Glsdesc@{#1}{#2}}{\@Glsdesc@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@Glsdesc@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \changes{1.12}{2008 Mar 8}{fixed bug ('Glsdesc shouldn't use -% 'gls@\meta{type}@display)} -% \begin{macrocode} -\protected@edef\@glo@text{\glsentrydesc{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} -% \changes{1.13}{2008 May 10}{fixed bug that ignores 3rd parameter} +% \changes{1.13}{2008 May 10}{fixed bug that ignored 3rd parameter} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{Glsentrydesc}} % \begin{macrocode} -\@gls@link[#1]{#2}{% - \expandafter\makefirstuc\expandafter{\@glo@text}#3}% -}% + \@gls@link[#1]{#2}{\Glsentrydesc{#2}#3}% + }% } % \end{macrocode} % @@ -6198,25 +7598,21 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@GLSdesc}[2][]{% -\new@ifnextchar[{\@GLSdesc@{#1}{#2}}{\@GLSdesc@{#1}{#2}[]}} + \new@ifnextchar[{\@GLSdesc@{#1}{#2}}{\@GLSdesc@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@GLSdesc@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \changes{1.12}{2008 Mar 8}{fixed bug ('GLSdesc shouldn't use -% 'gls@\meta{type}@display)} -% \begin{macrocode} -\protected@edef\@glo@text{\glsentrydesc{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} -% \changes{1.13}{2008 May 10}{fixed bug that ignores 3rd parameter} +% \changes{1.13}{2008 May 10}{fixed bug that ignored 3rd parameter} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{glsentrydesc}} % \begin{macrocode} -\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}% -}% + \@gls@link[#1]{#2}{\mfirstucMakeUppercase{\glsentrydesc{#2}#3}}% + }% } % \end{macrocode} % @@ -6237,23 +7633,22 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@glsdescplural}[2][]{% -\new@ifnextchar[{\@glsdescplural@{#1}{#2}}{\@glsdescplural@{#1}{#2}[]}} + \new@ifnextchar[{\@glsdescplural@{#1}{#2}}{\@glsdescplural@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@glsdescplural@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \begin{macrocode} -\protected@edef\@glo@text{\glsentrydescplural{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} -% \changes{1.13}{2008 May 10}{fixed bug that ignores 3rd parameter} +% \changes{1.13}{2008 May 10}{fixed bug that ignored 3rd parameter} +%\changes{3.11a}{2013-10-15}{changed to just use +%\cs{glsentrydescplural}} % \begin{macrocode} -\@gls@link[#1]{#2}{\@glo@text#3}% -}% + \@gls@link[#1]{#2}{\glsentrydescplural{#2}#3}% + }% } % \end{macrocode} % @@ -6273,24 +7668,22 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@Glsdescplural}[2][]{% -\new@ifnextchar[{\@Glsdescplural@{#1}{#2}}{\@Glsdescplural@{#1}{#2}[]}} + \new@ifnextchar[{\@Glsdescplural@{#1}{#2}}{\@Glsdescplural@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@Glsdescplural@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \begin{macrocode} -\protected@edef\@glo@text{\glsentrydescplural{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} -% \changes{1.13}{2008 May 10}{fixed bug that ignores 3rd parameter} +% \changes{1.13}{2008 May 10}{fixed bug that ignored 3rd parameter} +%\changes{3.11a}{2013-10-15}{changed to just use +%\cs{Glsentrydescplural}} % \begin{macrocode} -\@gls@link[#1]{#2}{% - \expandafter\makefirstuc\expandafter{\@glo@text}#3}% -}% + \@gls@link[#1]{#2}{\Glsentrydescplural{#2}#3}% + }% } % \end{macrocode} % @@ -6310,23 +7703,22 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@GLSdescplural}[2][]{% -\new@ifnextchar[{\@GLSdescplural@{#1}{#2}}{\@GLSdescplural@{#1}{#2}[]}} + \new@ifnextchar[{\@GLSdescplural@{#1}{#2}}{\@GLSdescplural@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@GLSdescplural@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \begin{macrocode} -\protected@edef\@glo@text{\glsentrydescplural{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} -% \changes{1.13}{2008 May 10}{fixed bug that ignores 3rd parameter} +% \changes{1.13}{2008 May 10}{fixed bug that ignored 3rd parameter} +%\changes{3.11a}{2013-10-15}{changed to just use +%\cs{glsentrydescplural}} % \begin{macrocode} -\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}% -}% + \@gls@link[#1]{#2}{\mfirstucMakeUppercase{\glsentrydescplural{#2}#3}}% + }% } % \end{macrocode} % @@ -6347,25 +7739,21 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@glssymbol}[2][]{% -\new@ifnextchar[{\@glssymbol@{#1}{#2}}{\@glssymbol@{#1}{#2}[]}} + \new@ifnextchar[{\@glssymbol@{#1}{#2}}{\@glssymbol@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@glssymbol@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \changes{1.12}{2008 Mar 8}{fixed bug ('glssymbol shouldn't use -% 'gls@\meta{type}@display)} -% \begin{macrocode} -\protected@edef\@glo@text{\glsentrysymbol{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} -% \changes{1.13}{2008 May 10}{fixed bug that ignores 3rd parameter} +% \changes{1.13}{2008 May 10}{fixed bug that ignored 3rd parameter} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{glsentrysymbol}} % \begin{macrocode} -\@gls@link[#1]{#2}{\@glo@text#3}% -}% + \@gls@link[#1]{#2}{\glsentrysymbol{#2}#3}% + }% } % \end{macrocode} % @@ -6385,26 +7773,21 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@Glssymbol}[2][]{% -\new@ifnextchar[{\@Glssymbol@{#1}{#2}}{\@Glssymbol@{#1}{#2}[]}} + \new@ifnextchar[{\@Glssymbol@{#1}{#2}}{\@Glssymbol@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@Glssymbol@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \changes{1.12}{2008 Mar 8}{fixed bug ('Glssymbol shouldn't use -% 'gls@\meta{type}@display)} -% \begin{macrocode} -\protected@edef\@glo@text{\glsentrysymbol{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} -% \changes{1.13}{2008 May 10}{fixed bug that ignores 3rd parameter} +% \changes{1.13}{2008 May 10}{fixed bug that ignored 3rd parameter} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{Glsentrysymbol}} % \begin{macrocode} -\@gls@link[#1]{#2}{% - \expandafter\makefirstuc\expandafter{\@glo@text}#3}% -}% + \@gls@link[#1]{#2}{\Glsentrysymbol{#2}#3}% + }% } % \end{macrocode} % @@ -6424,25 +7807,21 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@GLSsymbol}[2][]{% -\new@ifnextchar[{\@GLSsymbol@{#1}{#2}}{\@GLSsymbol@{#1}{#2}[]}} + \new@ifnextchar[{\@GLSsymbol@{#1}{#2}}{\@GLSsymbol@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@GLSsymbol@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \changes{1.12}{2008 Mar 8}{fixed bug ('GLSsymbol shouldn't use -% 'gls@\meta{type}@display)} -% \begin{macrocode} -\protected@edef\@glo@text{\glsentrysymbol{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} -% \changes{1.13}{2008 May 10}{fixed bug that ignores 3rd parameter} +% \changes{1.13}{2008 May 10}{fixed bug that ignored 3rd parameter} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{glsentrysymbol}} % \begin{macrocode} -\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}% -}% + \@gls@link[#1]{#2}{\mfirstucMakeUppercase{\glsentrysymbol{#2}#3}}% + }% } % \end{macrocode} % @@ -6463,25 +7842,22 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@glssymbolplural}[2][]{% -\new@ifnextchar[{\@glssymbolplural@{#1}{#2}}{\@glssymbolplural@{#1}{#2}[]}} + \new@ifnextchar[{\@glssymbolplural@{#1}{#2}}{\@glssymbolplural@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@glssymbolplural@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \changes{1.12}{2008 Mar 8}{fixed bug ('glssymbolplural shouldn't use -% 'gls@\meta{type}@display)} -% \begin{macrocode} -\protected@edef\@glo@text{\glsentrysymbolplural{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} -% \changes{1.13}{2008 May 10}{fixed bug that ignores 3rd parameter} +% \changes{1.13}{2008 May 10}{fixed bug that ignored 3rd parameter} +%\changes{3.11a}{2013-10-15}{changed to just use +%\cs{glsentrysymbolplural}} % \begin{macrocode} -\@gls@link[#1]{#2}{\@glo@text#3}% -}% + \@gls@link[#1]{#2}{\glsentrysymbolplural{#2}#3}% + }% } % \end{macrocode} % @@ -6501,24 +7877,22 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@Glssymbolplural}[2][]{% -\new@ifnextchar[{\@Glssymbolplural@{#1}{#2}}{\@Glssymbolplural@{#1}{#2}[]}} + \new@ifnextchar[{\@Glssymbolplural@{#1}{#2}}{\@Glssymbolplural@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@Glssymbolplural@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \begin{macrocode} -\protected@edef\@glo@text{\glsentrysymbolplural{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} -% \changes{1.13}{2008 May 10}{fixed bug that ignores 3rd parameter} +% \changes{1.13}{2008 May 10}{fixed bug that ignored 3rd parameter} +%\changes{3.11a}{2013-10-15}{changed to just use +%\cs{Glsentrysymbolplural}} % \begin{macrocode} -\@gls@link[#1]{#2}{% - \expandafter\makefirstuc\expandafter{\@glo@text}#3}% -}% + \@gls@link[#1]{#2}{\Glsentrysymbolplural{#2}#3}% + }% } % \end{macrocode} % @@ -6538,23 +7912,21 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@GLSsymbolplural}[2][]{% -\new@ifnextchar[{\@GLSsymbolplural@{#1}{#2}}{\@GLSsymbolplural@{#1}{#2}[]}} + \new@ifnextchar[{\@GLSsymbolplural@{#1}{#2}}{\@GLSsymbolplural@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@GLSsymbolplural@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \begin{macrocode} -\protected@edef\@glo@text{\glsentrysymbolplural{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} -% Call \cs{@gls@link} -% \changes{1.13}{2008 May 10}{fixed bug that ignores 3rd parameter} +% \changes{1.13}{2008 May 10}{fixed bug that ignored 3rd parameter} +%\changes{3.11a}{2013-10-15}{changed to just use +%\cs{glsentrysymbolplural}} % \begin{macrocode} -\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}% -}% + \@gls@link[#1]{#2}{\mfirstucMakeUppercase{\glsentrysymbolplural{#2}#3}}% + }% } % \end{macrocode} % @@ -6575,22 +7947,20 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@glsuseri}[2][]{% -\new@ifnextchar[{\@glsuseri@{#1}{#2}}{\@glsuseri@{#1}{#2}[]}} + \new@ifnextchar[{\@glsuseri@{#1}{#2}}{\@glsuseri@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@glsuseri@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryuseri{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{glsentryuseri}} % \begin{macrocode} -\@gls@link[#1]{#2}{\@glo@text#3}% -}% + \@gls@link[#1]{#2}{\glsentryuseri{#2}#3}% + }% } % \end{macrocode} % @@ -6610,23 +7980,20 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@Glsuseri}[2][]{% -\new@ifnextchar[{\@Glsuseri@{#1}{#2}}{\@Glsuseri@{#1}{#2}[]}} + \new@ifnextchar[{\@Glsuseri@{#1}{#2}}{\@Glsuseri@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@Glsuseri@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryuseri{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{Glsentryuseri}} % \begin{macrocode} -\@gls@link[#1]{#2}{% - \expandafter\makefirstuc\expandafter{\@glo@text}#3}% -}% + \@gls@link[#1]{#2}{\Glsentryuseri{#2}#3}% + }% } % \end{macrocode} % @@ -6646,22 +8013,20 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@GLSuseri}[2][]{% -\new@ifnextchar[{\@GLSuseri@{#1}{#2}}{\@GLSuseri@{#1}{#2}[]}} + \new@ifnextchar[{\@GLSuseri@{#1}{#2}}{\@GLSuseri@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@GLSuseri@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryuseri{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{glsentryuseri}} % \begin{macrocode} -\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}% -}% + \@gls@link[#1]{#2}{\mfirstucMakeUppercase{\glsentryuseri{#2}#3}}% + }% } % \end{macrocode} % @@ -6682,22 +8047,20 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@glsuserii}[2][]{% -\new@ifnextchar[{\@glsuserii@{#1}{#2}}{\@glsuserii@{#1}{#2}[]}} + \new@ifnextchar[{\@glsuserii@{#1}{#2}}{\@glsuserii@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@glsuserii@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryuserii{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{glsentryuserii}} % \begin{macrocode} -\@gls@link[#1]{#2}{\@glo@text#3}% -}% + \@gls@link[#1]{#2}{\glsentryuserii{#2}#3}% + }% } % \end{macrocode} % @@ -6717,23 +8080,20 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@Glsuserii}[2][]{% -\new@ifnextchar[{\@Glsuserii@{#1}{#2}}{\@Glsuserii@{#1}{#2}[]}} + \new@ifnextchar[{\@Glsuserii@{#1}{#2}}{\@Glsuserii@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@Glsuserii@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryuserii{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{Glsentryuserii}} % \begin{macrocode} -\@gls@link[#1]{#2}{% - \expandafter\makefirstuc\expandafter{\@glo@text}#3}% -}% + \@gls@link[#1]{#2}{\Glsentryuserii{#2}#3}% + }% } % \end{macrocode} % @@ -6753,22 +8113,20 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@GLSuserii}[2][]{% -\new@ifnextchar[{\@GLSuserii@{#1}{#2}}{\@GLSuserii@{#1}{#2}[]}} + \new@ifnextchar[{\@GLSuserii@{#1}{#2}}{\@GLSuserii@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@GLSuserii@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryuserii{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{glsentryuserii}} % \begin{macrocode} -\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}% -}% + \@gls@link[#1]{#2}{\mfirstucMakeUppercase{\glsentryuserii{#2}#3}}% + }% } % \end{macrocode} % @@ -6789,22 +8147,20 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@glsuseriii}[2][]{% -\new@ifnextchar[{\@glsuseriii@{#1}{#2}}{\@glsuseriii@{#1}{#2}[]}} + \new@ifnextchar[{\@glsuseriii@{#1}{#2}}{\@glsuseriii@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@glsuseriii@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryuseriii{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{glsentryuseriii}} % \begin{macrocode} -\@gls@link[#1]{#2}{\@glo@text#3}% -}% + \@gls@link[#1]{#2}{\glsentryuseriii{#2}#3}% + }% } % \end{macrocode} % @@ -6824,23 +8180,20 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@Glsuseriii}[2][]{% -\new@ifnextchar[{\@Glsuseriii@{#1}{#2}}{\@Glsuseriii@{#1}{#2}[]}} + \new@ifnextchar[{\@Glsuseriii@{#1}{#2}}{\@Glsuseriii@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@Glsuseriii@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryuseriii{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{Glsentryuseriii}} % \begin{macrocode} -\@gls@link[#1]{#2}{% - \expandafter\makefirstuc\expandafter{\@glo@text}#3}% -}% + \@gls@link[#1]{#2}{\Glsentryuseriii{#2}#3}% + }% } % \end{macrocode} % @@ -6860,22 +8213,20 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@GLSuseriii}[2][]{% -\new@ifnextchar[{\@GLSuseriii@{#1}{#2}}{\@GLSuseriii@{#1}{#2}[]}} + \new@ifnextchar[{\@GLSuseriii@{#1}{#2}}{\@GLSuseriii@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@GLSuseriii@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryuseriii{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{glsentryuseriii}} % \begin{macrocode} -\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}% -}% + \@gls@link[#1]{#2}{\mfirstucMakeUppercase{\glsentryuseriii{#2}#3}}% + }% } % \end{macrocode} % @@ -6896,22 +8247,19 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@glsuseriv}[2][]{% -\new@ifnextchar[{\@glsuseriv@{#1}{#2}}{\@glsuseriv@{#1}{#2}[]}} + \new@ifnextchar[{\@glsuseriv@{#1}{#2}}{\@glsuseriv@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@glsuseriv@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryuseriv{#2}}% -% \end{macrocode} + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % Call \cs{@gls@link} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{glsentryuseriv}} % \begin{macrocode} -\@gls@link[#1]{#2}{\@glo@text#3}% -}% + \@gls@link[#1]{#2}{\glsentryuseriv{#2}#3}% + }% } % \end{macrocode} % @@ -6931,23 +8279,20 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@Glsuseriv}[2][]{% -\new@ifnextchar[{\@Glsuseriv@{#1}{#2}}{\@Glsuseriv@{#1}{#2}[]}} + \new@ifnextchar[{\@Glsuseriv@{#1}{#2}}{\@Glsuseriv@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@Glsuseriv@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryuseriv{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{Glsentryuseriv}} % \begin{macrocode} -\@gls@link[#1]{#2}{% - \expandafter\makefirstuc\expandafter{\@glo@text}#3}% -}% + \@gls@link[#1]{#2}{\Glsentryuseriv{#2}#3}% + }% } % \end{macrocode} % @@ -6967,22 +8312,20 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@GLSuseriv}[2][]{% -\new@ifnextchar[{\@GLSuseriv@{#1}{#2}}{\@GLSuseriv@{#1}{#2}[]}} + \new@ifnextchar[{\@GLSuseriv@{#1}{#2}}{\@GLSuseriv@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@GLSuseriv@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryuseriv{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{glsentryuseriv}} % \begin{macrocode} -\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}% -}% + \@gls@link[#1]{#2}{\mfirstucMakeUppercase{\glsentryuseriv{#2}#3}}% + }% } % \end{macrocode} % @@ -7003,22 +8346,20 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@glsuserv}[2][]{% -\new@ifnextchar[{\@glsuserv@{#1}{#2}}{\@glsuserv@{#1}{#2}[]}} + \new@ifnextchar[{\@glsuserv@{#1}{#2}}{\@glsuserv@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@glsuserv@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryuserv{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{glsentryuserv}} % \begin{macrocode} -\@gls@link[#1]{#2}{\@glo@text#3}% -}% + \@gls@link[#1]{#2}{\glsentryuserv{#2}#3}% + }% } % \end{macrocode} % @@ -7043,18 +8384,15 @@ name=true]{% % Read in the final optional argument: % \begin{macrocode} \def\@Glsuserv@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryuserv{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{Glsentryuserv}} % \begin{macrocode} -\@gls@link[#1]{#2}{% - \expandafter\makefirstuc\expandafter{\@glo@text}#3}% -}% + \@gls@link[#1]{#2}{\Glsentryuserv{#2}#3}% + }% } % \end{macrocode} % @@ -7079,17 +8417,15 @@ name=true]{% % Read in the final optional argument: % \begin{macrocode} \def\@GLSuserv@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryuserv{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{glsentryuserv}} % \begin{macrocode} -\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}% -}% + \@gls@link[#1]{#2}{\mfirstucMakeUppercase{\glsentryuserv{#2}#3}}% + }% } % \end{macrocode} % @@ -7110,22 +8446,20 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@glsuservi}[2][]{% -\new@ifnextchar[{\@glsuservi@{#1}{#2}}{\@glsuservi@{#1}{#2}[]}} + \new@ifnextchar[{\@glsuservi@{#1}{#2}}{\@glsuservi@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@glsuservi@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryuservi{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{glsentryuservi}} % Call \cs{@gls@link} % \begin{macrocode} -\@gls@link[#1]{#2}{\@glo@text#3}% -}% + \@gls@link[#1]{#2}{\glsentryuservi{#2}#3}% + }% } % \end{macrocode} % @@ -7145,23 +8479,20 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@Glsuservi}[2][]{% -\new@ifnextchar[{\@Glsuservi@{#1}{#2}}{\@Glsuservi@{#1}{#2}[]}} + \new@ifnextchar[{\@Glsuservi@{#1}{#2}}{\@Glsuservi@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@Glsuservi@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryuservi{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} % Call \cs{@gls@link} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{Glsentryuservi}} % \begin{macrocode} -\@gls@link[#1]{#2}{% - \expandafter\makefirstuc\expandafter{\@glo@text}#3}% -}% + \@gls@link[#1]{#2}{\Glsentryuservi{#2}#3}% + }% } % \end{macrocode} % @@ -7181,22 +8512,20 @@ name=true]{% % a final optional argument % \begin{macrocode} \newcommand*{\@GLSuservi}[2][]{% -\new@ifnextchar[{\@GLSuservi@{#1}{#2}}{\@GLSuservi@{#1}{#2}[]}} + \new@ifnextchar[{\@GLSuservi@{#1}{#2}}{\@GLSuservi@{#1}{#2}[]}} % \end{macrocode} % Read in the final optional argument: % \begin{macrocode} \def\@GLSuservi@#1#2[#3]{% -\glsdoifexists{#2}{\edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) -% \begin{macrocode} -\protected@edef\@glo@text{\glsentryuservi{#2}}% + \glsdoifexists{#2}% + {% + \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} +%\changes{3.11a}{2013-10-15}{changed to just use \cs{glsentryuservi}} % Call \cs{@gls@link} % \begin{macrocode} -\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}% -}% + \@gls@link[#1]{#2}{\mfirstucMakeUppercase{\glsentryuservi{#2}#3}}% + }% } % \end{macrocode} % @@ -7228,14 +8557,20 @@ name=true]{% {% \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) +%\changes{3.11a}{2013-10-15}{added \cs{glslabel}, \cs{glsifplural}, +% \cs{glscapscase}, \cs{glsinsert} and \cs{glscustomtext}} % \begin{macrocode} - \protected@edef\@glo@text{\glsentryshort{#2}}% + \def\glslabel{#2}% + \let\glsifplural\@secondoftwo + \let\glscapscase\@firstofthree + \let\glsinsert\@empty + \def\glscustomtext{% + \acronymfont{\glsentryshort{#2}}#3% + }% % \end{macrocode} % Call \cs{@gls@link} % \begin{macrocode} - \@gls@link[#1]{#2}{\acronymfont{\@glo@text}#3}% + \@gls@link[#1]{#2}{\csname gls@\@glo@type @entryfmt\endcsname}% }% } % \end{macrocode} @@ -7267,17 +8602,20 @@ name=true]{% {% \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) +%\changes{3.11a}{2013-10-15}{added \cs{glslabel}, \cs{glsifplural}, +% \cs{glscapscase}, \cs{glsinsert} and \cs{glscustomtext}} % \begin{macrocode} - \protected@edef\@glo@text{\glsentryshort{#2}}% + \def\glslabel{#2}% + \let\glsifplural\@secondoftwo + \let\glscapscase\@secondofthree + \let\glsinsert\@empty + \def\glscustomtext{% + \acronymfont{\Glsentryshort{#2}}#3% + }% % \end{macrocode} % Call \cs{@gls@link} % \begin{macrocode} - \@gls@link[#1]{#2}% - {% - \acronymfont{\expandafter\makefirstuc\expandafter{\@glo@text}}#3% - }% + \@gls@link[#1]{#2}{\csname gls@\@glo@type @entryfmt\endcsname}% }% } % \end{macrocode} @@ -7309,14 +8647,20 @@ name=true]{% {% \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) +%\changes{3.11a}{2013-10-15}{added \cs{glslabel}, \cs{glsifplural}, +% \cs{glscapscase}, \cs{glsinsert} and \cs{glscustomtext}} % \begin{macrocode} - \protected@edef\@glo@text{\glsentryshort{#2}}% + \def\glslabel{#2}% + \let\glsifplural\@secondoftwo + \let\glscapscase\@thirdofthree + \let\glsinsert\@empty + \def\glscustomtext{% + \mfirstucMakeUppercase{\acronymfont{\glsentryshort{#2}}#3}% + }% % \end{macrocode} % Call \cs{@gls@link} % \begin{macrocode} - \@gls@link[#1]{#2}{\acronymfont{\MakeUppercase{\@glo@text#3}}}% + \@gls@link[#1]{#2}{\csname gls@\@glo@type @entryfmt\endcsname}% }% } % \end{macrocode} @@ -7349,14 +8693,20 @@ name=true]{% {% \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) +%\changes{3.11a}{2013-10-15}{added \cs{glslabel}, \cs{glsifplural}, +% \cs{glscapscase}, \cs{glsinsert} and \cs{glscustomtext}} % \begin{macrocode} - \protected@edef\@glo@text{\glsentryshortpl{#2}}% + \def\glslabel{#2}% + \let\glsifplural\@firstoftwo + \let\glscapscase\@firstofthree + \let\glsinsert\@empty + \def\glscustomtext{% + \acronymfont{\glsentryshortpl{#2}}#3% + }% % \end{macrocode} % Call \cs{@gls@link} % \begin{macrocode} - \@gls@link[#1]{#2}{\acronymfont{\@glo@text}#3}% + \@gls@link[#1]{#2}{\csname gls@\@glo@type @entryfmt\endcsname}% }% } % \end{macrocode} @@ -7388,17 +8738,20 @@ name=true]{% {% \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) +%\changes{3.11a}{2013-10-15}{added \cs{glslabel}, \cs{glsifplural}, +% \cs{glscapscase}, \cs{glsinsert} and \cs{glscustomtext}} % \begin{macrocode} - \protected@edef\@glo@text{\glsentryshortpl{#2}}% + \def\glslabel{#2}% + \let\glsifplural\@firstoftwo + \let\glscapscase\@secondofthree + \let\glsinsert\@empty + \def\glscustomtext{% + \acronymfont{\Glsentryshortpl{#2}}#3% + }% % \end{macrocode} % Call \cs{@gls@link} % \begin{macrocode} - \@gls@link[#1]{#2}% - {% - \acronymfont{\expandafter\makefirstuc\expandafter{\@glo@text}}#3% - }% + \@gls@link[#1]{#2}{\csname gls@\@glo@type @entryfmt\endcsname}% }% } % \end{macrocode} @@ -7430,14 +8783,20 @@ name=true]{% {% \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) +%\changes{3.11a}{2013-10-15}{added \cs{glslabel}, \cs{glsifplural}, +% \cs{glscapscase}, \cs{glsinsert} and \cs{glscustomtext}} % \begin{macrocode} - \protected@edef\@glo@text{\glsentryshortpl{#2}}% + \def\glslabel{#2}% + \let\glsifplural\@firstoftwo + \let\glscapscase\@thirdofthree + \let\glsinsert\@empty + \def\glscustomtext{% + \mfirstucMakeUppercase{\acronymfont{\glsentryshortpl{#2}}#3}% + }% % \end{macrocode} % Call \cs{@gls@link} % \begin{macrocode} - \@gls@link[#1]{#2}{\acronymfont{\MakeUppercase{\@glo@text#3}}}% + \@gls@link[#1]{#2}{\csname gls@\@glo@type @entryfmt\endcsname}% }% } % \end{macrocode} @@ -7469,14 +8828,20 @@ name=true]{% {% \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) +%\changes{3.11a}{2013-10-15}{added \cs{glslabel}, \cs{glsifplural}, +% \cs{glscapscase}, \cs{glsinsert} and \cs{glscustomtext}} % \begin{macrocode} - \protected@edef\@glo@text{\glsentrylong{#2}}% + \def\glslabel{#2}% + \let\glsifplural\@secondoftwo + \let\glscapscase\@firstofthree + \let\glsinsert\@empty + \def\glscustomtext{% + \acronymfont{\glsentrylong{#2}}#3% + }% % \end{macrocode} % Call \cs{@gls@link} % \begin{macrocode} - \@gls@link[#1]{#2}{\@glo@text#3}% + \@gls@link[#1]{#2}{\csname gls@\@glo@type @entryfmt\endcsname}% }% } % \end{macrocode} @@ -7508,17 +8873,20 @@ name=true]{% {% \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) +%\changes{3.11a}{2013-10-15}{added \cs{glslabel}, \cs{glsifplural}, +% \cs{glscapscase}, \cs{glsinsert} and \cs{glscustomtext}} % \begin{macrocode} - \protected@edef\@glo@text{\glsentrylong{#2}}% + \def\glslabel{#2}% + \let\glsifplural\@secondoftwo + \let\glscapscase\@secondofthree + \let\glsinsert\@empty + \def\glscustomtext{% + \acronymfont{\Glsentrylong{#2}}#3% + }% % \end{macrocode} % Call \cs{@gls@link} % \begin{macrocode} - \@gls@link[#1]{#2}% - {% - \expandafter\makefirstuc\expandafter{\@glo@text}#3% - }% + \@gls@link[#1]{#2}{\csname gls@\@glo@type @entryfmt\endcsname}% }% } % \end{macrocode} @@ -7550,14 +8918,20 @@ name=true]{% {% \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) +%\changes{3.11a}{2013-10-15}{added \cs{glslabel}, \cs{glsifplural}, +% \cs{glscapscase}, \cs{glsinsert} and \cs{glscustomtext}} % \begin{macrocode} - \protected@edef\@glo@text{\glsentrylong{#2}}% + \def\glslabel{#2}% + \let\glsifplural\@secondoftwo + \let\glscapscase\@thirdofthree + \let\glsinsert\@empty + \def\glscustomtext{% + \mfirstucMakeUppercase{\acronymfont{\glsentrylong{#2}}#3}% + }% % \end{macrocode} % Call \cs{@gls@link} % \begin{macrocode} - \@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}% + \@gls@link[#1]{#2}{\csname gls@\@glo@type @entryfmt\endcsname}% }% } % \end{macrocode} @@ -7590,14 +8964,20 @@ name=true]{% {% \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) +%\changes{3.11a}{2013-10-15}{added \cs{glslabel}, \cs{glsifplural}, +% \cs{glscapscase}, \cs{glsinsert} and \cs{glscustomtext}} % \begin{macrocode} - \protected@edef\@glo@text{\glsentrylongpl{#2}}% + \def\glslabel{#2}% + \let\glsifplural\@firstoftwo + \let\glscapscase\@firstofthree + \let\glsinsert\@empty + \def\glscustomtext{% + \acronymfont{\glsentrylongpl{#2}}#3% + }% % \end{macrocode} % Call \cs{@gls@link} % \begin{macrocode} - \@gls@link[#1]{#2}{\@glo@text#3}% + \@gls@link[#1]{#2}{\csname gls@\@glo@type @entryfmt\endcsname}% }% } % \end{macrocode} @@ -7629,17 +9009,20 @@ name=true]{% {% \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) +%\changes{3.11a}{2013-10-15}{added \cs{glslabel}, \cs{glsifplural}, +% \cs{glscapscase}, \cs{glsinsert} and \cs{glscustomtext}} % \begin{macrocode} - \protected@edef\@glo@text{\glsentrylongpl{#2}}% + \def\glslabel{#2}% + \let\glsifplural\@firstoftwo + \let\glscapscase\@secondofthree + \let\glsinsert\@empty + \def\glscustomtext{% + \acronymfont{\Glsentrylongpl{#2}}#3% + }% % \end{macrocode} % Call \cs{@gls@link} % \begin{macrocode} - \@gls@link[#1]{#2}% - {% - \expandafter\makefirstuc\expandafter{\@glo@text}#3% - }% + \@gls@link[#1]{#2}{\csname gls@\@glo@type @entryfmt\endcsname}% }% } % \end{macrocode} @@ -7671,14 +9054,20 @@ name=true]{% {% \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) +%\changes{3.11a}{2013-10-15}{added \cs{glslabel}, \cs{glsifplural}, +% \cs{glscapscase}, \cs{glsinsert} and \cs{glscustomtext}} % \begin{macrocode} - \protected@edef\@glo@text{\glsentrylongpl{#2}}% + \def\glslabel{#2}% + \let\glsifplural\@firstoftwo + \let\glscapscase\@thirdofthree + \let\glsinsert\@empty + \def\glscustomtext{% + \mfirstucMakeUppercase{\acronymfont{\glsentrylongpl{#2}}#3}% + }% % \end{macrocode} % Call \cs{@gls@link} % \begin{macrocode} - \@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}% + \@gls@link[#1]{#2}{\csname gls@\@glo@type @entryfmt\endcsname}% }% } % \end{macrocode} @@ -7702,10 +9091,12 @@ name=true]{% % \end{macrocode} %\end{macro} %\begin{macro}{\Glsentryname} +%\changes{3.09a}{2013-10-09}{made robust} % \begin{macrocode} -\newcommand*{\Glsentryname}[1]{% -\protected@edef\@glo@text{\csname glo@#1@name\endcsname}% -\expandafter\makefirstuc\expandafter{\@glo@text}} +\newrobustcmd*{\Glsentryname}[1]{% + \protected@edef\@glo@text{\csname glo@#1@name\endcsname}% + \expandafter\makefirstuc\expandafter{\@glo@text}% +} % \end{macrocode} %\end{macro} % @@ -7721,10 +9112,12 @@ name=true]{% % \end{macrocode} %\end{macro} %\begin{macro}{\Glsentrydesc} +%\changes{3.09a}{2013-10-09}{made robust} % \begin{macrocode} -\newcommand*{\Glsentrydesc}[1]{% -\protected@edef\@glo@text{\csname glo@#1@desc\endcsname}% -\expandafter\makefirstuc\expandafter{\@glo@text}} +\newrobustcmd*{\Glsentrydesc}[1]{% + \protected@edef\@glo@text{\csname glo@#1@desc\endcsname}% + \expandafter\makefirstuc\expandafter{\@glo@text}% +} % \end{macrocode} %\end{macro} % Plural form: @@ -7732,13 +9125,14 @@ name=true]{% %\changes{1.12}{2008 Mar 8}{New} % \begin{macrocode} \newcommand*{\glsentrydescplural}[1]{% -\csname glo@#1@descplural\endcsname} + \csname glo@#1@descplural\endcsname} % \end{macrocode} %\end{macro} %\begin{macro}{\Glsentrydescplural} %\changes{1.12}{2008 Mar 8}{New} +%\changes{3.09a}{2013-10-09}{made robust} % \begin{macrocode} -\newcommand*{\Glsentrydescplural}[1]{% +\newrobustcmd*{\Glsentrydescplural}[1]{% \protected@edef\@glo@text{\csname glo@#1@descplural\endcsname}% \expandafter\makefirstuc\expandafter{\@glo@text}} % \end{macrocode} @@ -7753,9 +9147,10 @@ name=true]{% % \end{macrocode} %\end{macro} %\begin{macro}{\Glsentrytext} +%\changes{3.09a}{2013-10-09}{made robust} % \begin{macrocode} -\newcommand*{\Glsentrytext}[1]{% -\protected@edef\@glo@text{\csname glo@#1@text\endcsname}% +\newrobustcmd*{\Glsentrytext}[1]{% + \protected@edef\@glo@text{\csname glo@#1@text\endcsname}% \expandafter\makefirstuc\expandafter{\@glo@text}} % \end{macrocode} %\end{macro} @@ -7767,8 +9162,9 @@ name=true]{% % \end{macrocode} %\end{macro} %\begin{macro}{\Glsentryplural} +%\changes{3.09a}{2013-10-09}{made robust} % \begin{macrocode} -\newcommand*{\Glsentryplural}[1]{% +\newrobustcmd*{\Glsentryplural}[1]{% \protected@edef\@glo@text{\csname glo@#1@plural\endcsname}% \expandafter\makefirstuc\expandafter{\@glo@text}} % \end{macrocode} @@ -7785,8 +9181,9 @@ name=true]{% % \end{macrocode} %\end{macro} %\begin{macro}{\Glsentrysymbol} +%\changes{3.09a}{2013-10-09}{made robust} % \begin{macrocode} -\newcommand*{\Glsentrysymbol}[1]{% +\newrobustcmd*{\Glsentrysymbol}[1]{% \protected@edef\@glo@text{\csname glo@#1@symbol\endcsname}% \expandafter\makefirstuc\expandafter{\@glo@text}} % \end{macrocode} @@ -7796,13 +9193,14 @@ name=true]{% %\changes{1.12}{2008 Mar 8}{New} % \begin{macrocode} \newcommand*{\glsentrysymbolplural}[1]{% -\csname glo@#1@symbolplural\endcsname} + \csname glo@#1@symbolplural\endcsname} % \end{macrocode} %\end{macro} %\begin{macro}{\Glsentrysymbolplural} %\changes{1.12}{2008 Mar 8}{New} +%\changes{3.09a}{2013-10-09}{made robust} % \begin{macrocode} -\newcommand*{\Glsentrysymbolplural}[1]{% +\newrobustcmd*{\Glsentrysymbolplural}[1]{% \protected@edef\@glo@text{\csname glo@#1@symbolplural\endcsname}% \expandafter\makefirstuc\expandafter{\@glo@text}} % \end{macrocode} @@ -7817,8 +9215,9 @@ name=true]{% % \end{macrocode} %\end{macro} %\begin{macro}{\Glsentryfirst} +%\changes{3.09a}{2013-10-09}{made robust} % \begin{macrocode} -\newcommand*{\Glsentryfirst}[1]{% +\newrobustcmd*{\Glsentryfirst}[1]{% \protected@edef\@glo@text{\csname glo@#1@first\endcsname}% \expandafter\makefirstuc\expandafter{\@glo@text}} % \end{macrocode} @@ -7829,12 +9228,13 @@ name=true]{% %\begin{macro}{\glsentryfirstplural} % \begin{macrocode} \newcommand*{\glsentryfirstplural}[1]{% -\csname glo@#1@firstpl\endcsname} + \csname glo@#1@firstpl\endcsname} % \end{macrocode} %\end{macro} %\begin{macro}{\Glsentryfirstplural} +%\changes{3.09a}{2013-10-09}{made robust} % \begin{macrocode} -\newcommand*{\Glsentryfirstplural}[1]{% +\newrobustcmd*{\Glsentryfirstplural}[1]{% \protected@edef\@glo@text{\csname glo@#1@firstpl\endcsname}% \expandafter\makefirstuc\expandafter{\@glo@text}} % \end{macrocode} @@ -7869,8 +9269,9 @@ name=true]{% %\end{macro} %\begin{macro}{\Glsentryuseri} %\changes{2.04}{2009 November 10}{new} +%\changes{3.09a}{2013-10-09}{made robust} % \begin{macrocode} -\newcommand*{\Glsentryuseri}[1]{% +\newrobustcmd*{\Glsentryuseri}[1]{% \protected@edef\@glo@text{\csname glo@#1@useri\endcsname}% \expandafter\makefirstuc\expandafter{\@glo@text}} % \end{macrocode} @@ -7887,8 +9288,9 @@ name=true]{% %\end{macro} %\begin{macro}{\Glsentryuserii} %\changes{2.04}{2009 November 10}{new} +%\changes{3.09a}{2013-10-09}{made robust} % \begin{macrocode} -\newcommand*{\Glsentryuserii}[1]{% +\newrobustcmd*{\Glsentryuserii}[1]{% \protected@edef\@glo@text{\csname glo@#1@userii\endcsname}% \expandafter\makefirstuc\expandafter{\@glo@text}} % \end{macrocode} @@ -7905,8 +9307,9 @@ name=true]{% %\end{macro} %\begin{macro}{\Glsentryuseriii} %\changes{2.04}{2009 November 10}{new} +%\changes{3.09a}{2013-10-09}{made robust} % \begin{macrocode} -\newcommand*{\Glsentryuseriii}[1]{% +\newrobustcmd*{\Glsentryuseriii}[1]{% \protected@edef\@glo@text{\csname glo@#1@useriii\endcsname}% \expandafter\makefirstuc\expandafter{\@glo@text}} % \end{macrocode} @@ -7923,8 +9326,9 @@ name=true]{% %\end{macro} %\begin{macro}{\Glsentryuseriv} %\changes{2.04}{2009 November 10}{new} +%\changes{3.09a}{2013-10-09}{made robust} % \begin{macrocode} -\newcommand*{\Glsentryuseriv}[1]{% +\newrobustcmd*{\Glsentryuseriv}[1]{% \protected@edef\@glo@text{\csname glo@#1@useriv\endcsname}% \expandafter\makefirstuc\expandafter{\@glo@text}} % \end{macrocode} @@ -7941,8 +9345,9 @@ name=true]{% %\end{macro} %\begin{macro}{\Glsentryuserv} %\changes{2.04}{2009 November 10}{new} +%\changes{3.09a}{2013-10-09}{made robust} % \begin{macrocode} -\newcommand*{\Glsentryuserv}[1]{% +\newrobustcmd*{\Glsentryuserv}[1]{% \protected@edef\@glo@text{\csname glo@#1@userv\endcsname}% \expandafter\makefirstuc\expandafter{\@glo@text}} % \end{macrocode} @@ -7959,8 +9364,9 @@ name=true]{% %\end{macro} %\begin{macro}{\Glsentryuservi} %\changes{2.04}{2009 November 10}{new} +%\changes{3.09a}{2013-10-09}{made robust} % \begin{macrocode} -\newcommand*{\Glsentryuservi}[1]{% +\newrobustcmd*{\Glsentryuservi}[1]{% \protected@edef\@glo@text{\csname glo@#1@uservi\endcsname}% \expandafter\makefirstuc\expandafter{\@glo@text}} % \end{macrocode} @@ -7977,8 +9383,9 @@ name=true]{% %\end{macro} %\begin{macro}{\Glsentryshort} %\changes{3.0}{2011/04/02}{new} +%\changes{3.09a}{2013-10-09}{made robust} % \begin{macrocode} -\newcommand*{\Glsentryshort}[1]{% +\newrobustcmd*{\Glsentryshort}[1]{% \protected@edef\@glo@text{\csname glo@#1@short\endcsname}% \expandafter\makefirstuc\expandafter{\@glo@text}} % \end{macrocode} @@ -7995,8 +9402,9 @@ name=true]{% %\end{macro} %\begin{macro}{\Glsentryshortpl} %\changes{3.0}{2011/04/02}{new} +%\changes{3.09a}{2013-10-09}{made robust} % \begin{macrocode} -\newcommand*{\Glsentryshortpl}[1]{% +\newrobustcmd*{\Glsentryshortpl}[1]{% \protected@edef\@glo@text{\csname glo@#1@shortpl\endcsname}% \expandafter\makefirstuc\expandafter{\@glo@text}} % \end{macrocode} @@ -8013,9 +9421,10 @@ name=true]{% %\end{macro} %\begin{macro}{\Glsentrylong} %\changes{3.0}{2011/04/02}{new} +%\changes{3.09a}{2013-10-09}{made robust} % \begin{macrocode} -\newcommand*{\Glsentrylong}[1]{% -\protected@edef\@glo@text{\csname glo@#1@long\endcsname}% +\newrobustcmd*{\Glsentrylong}[1]{% + \protected@edef\@glo@text{\csname glo@#1@long\endcsname}% \expandafter\makefirstuc\expandafter{\@glo@text}} % \end{macrocode} %\end{macro} @@ -8031,8 +9440,9 @@ name=true]{% %\end{macro} %\begin{macro}{\Glsentrylongpl} %\changes{3.0}{2011/04/02}{new} +%\changes{3.09a}{2013-10-09}{made robust} % \begin{macrocode} -\newcommand*{\Glsentrylongpl}[1]{% +\newrobustcmd*{\Glsentrylongpl}[1]{% \protected@edef\@glo@text{\csname glo@#1@longpl\endcsname}% \expandafter\makefirstuc\expandafter{\@glo@text}} % \end{macrocode} @@ -8040,34 +9450,40 @@ name=true]{% % % Short cut macros to access full form: %\begin{macro}{\glsentryfull} +%\changes{3.13a}{2013-11-05}{changed to use \cs{acrfullformat}} % \begin{macrocode} \newcommand*{\glsentryfull}[1]{% - \glsentrylong{#1}\space(\glsentryshort{#1})% + \acrfullformat{\glsentrylong{#1}}{\glsentryshort{#1}}% } % \end{macrocode} %\end{macro} %\begin{macro}{\Glsentryfull} +%\changes{3.09a}{2013-10-09}{made robust} %\changes{3.02}{2012/05/21}{fixed bug (replaced \cs{glsentryshortpl} %with \cs{glsentryshort})} +%\changes{3.13a}{2013-11-05}{changed to use \cs{acrfullformat}} % \begin{macrocode} -\newcommand*{\Glsentryfull}[1]{% - \Glsentrylong{#1}\space(\glsentryshort{#1})% +\newrobustcmd*{\Glsentryfull}[1]{% + \acrfullformat{\Glsentrylong{#1}}{\glsentryshort{#1}}% } % \end{macrocode} %\end{macro} %\begin{macro}{\glsentryfullpl} %\changes{3.02}{2012/05/21}{fixed bug (replaced \cs{glsentryshort} %with \cs{glsentryshortpl})} +%\changes{3.13a}{2013-11-05}{changed to use \cs{acrfullformat}} % \begin{macrocode} \newcommand*{\glsentryfullpl}[1]{% - \glsentrylongpl{#1}\space(\glsentryshortpl{#1})% + \acrfullformat{\glsentrylongpl{#1}}{\glsentryshortpl{#1}}% } % \end{macrocode} %\end{macro} %\begin{macro}{\Glsentryfullpl} +%\changes{3.09a}{2013-10-09}{made robust} +%\changes{3.13a}{2013-11-05}{changed to use \cs{acrfullformat}} % \begin{macrocode} -\newcommand*{\Glsentryfullpl}[1]{% - \Glsentrylongpl{#1}\space(\glsentryshortpl{#1})% +\newrobustcmd*{\Glsentryfullpl}[1]{% + \acrfullformat{\Glsentrylongpl{#1}}{\glsentryshortpl{#1}}% } % \end{macrocode} %\end{macro} @@ -8090,8 +9506,7 @@ name=true]{% % Formats the number list for the given entry label. % Doesn't work with hyperref. % \begin{macrocode} -\@ifpackageloaded{hyperref} -{% +\@ifpackageloaded{hyperref} {% \newcommand*{\glsdisplaynumberlist}[1]{% \GlossariesWarning {% @@ -8185,8 +9600,10 @@ name=true]{% % \begin{macrocode} \define@key{glossadd}{types}{\def\@glo@type{#1}} % \end{macrocode} -%\vskip5pt -%\cs{glsadd}\oarg{options}\marg{label}\\[10pt] +% +%\begin{definition} +%\cs{glsadd}\oarg{options}\marg{label} +%\end{definition} % Add a term to the glossary without generating any link text. % The optional argument indicates which counter to use, % and how to format it (using a key-value list) @@ -8213,8 +9630,10 @@ name=true]{% } % \end{macrocode} %\end{macro} -%\vskip5pt -%\cs{glsaddall}\oarg{option list}\\[10pt] +% +%\begin{definition} +%\cs{glsaddall}\oarg{option list} +%\end{definition} % Add all terms defined for the listed glossaries (without displaying % any text). If \gloskey[glsaddall]{types} key is omitted, apply to all % glossary types. @@ -8222,10 +9641,30 @@ name=true]{% %\changes{3.01}{2011/04/12}{made robust} % \begin{macrocode} \newrobustcmd*{\glsaddall}[1][]{% -\edef\@glo@type{\@glo@types}% -\setkeys{glossadd}{#1}% -\forallglsentries[\@glo@type]{\@glo@entry}{% -\glsadd[#1]{\@glo@entry}}% + \edef\@glo@type{\@glo@types}% + \setkeys{glossadd}{#1}% + \forallglsentries[\@glo@type]{\@glo@entry}{% + \glsadd[#1]{\@glo@entry}% + }% +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\glsaddallunused} +%\begin{definition} +%\cs{glsaddallunused}\oarg{glossary type} +%\end{definition} +% Add all used terms defined for the listed glossaries (without displaying +% any text). If optional argument is omitted, apply to all +% glossary types. This should typically go at the end of the +% document. +%\changes{3.08a}{2013-09-28}{new} +%\changes{3.13a}{2013-11-05}{set default to \cs{@glo@types}} +% \begin{macrocode} +\newrobustcmd*{\glsaddallunused}[1][\@glo@types]{% + \forallglsentries[#1]{\@glo@entry}% + {% + \ifglsused{\@glo@entry}{}{\glsadd[format=@gobble]{\@glo@entry}}% + }% } % \end{macrocode} %\end{macro} @@ -8326,7 +9765,8 @@ name=true]{% %\begin{macro}{\writeist} %\changes{1.17}{2008 December 26}{added xindy support} -%\changes{1.01}{2007 May 17}{Added spaces after 'delimN and 'delimR in ist file}% +%\changes{1.01}{2007 May 17}{Added spaces after \cs{delimN} and +%\cs{delimR} in ist file}% %\changes{3.0}{2011/04/02}{modified to support new format} % \begin{macrocode} \ifglsxindy @@ -8747,6 +10187,13 @@ name=true]{% % \begin{macrocode} \newcommand*{\makeglossaries}{% % \end{macrocode} +%\changes{3.10a}{2013-10-13}{Added providecommand code to aux file} +% If the user removes the glossary package from their document, +% ensure the next run doesn't throw a load of undefined control +% sequence errors when the aux file is parsed. +% \begin{macrocode} + \protected@write\@auxout{}{\string\providecommand\string\@glsorder[1]{}} + \protected@write\@auxout{}{\string\providecommand\string\@istfilename[1]{}} % Write the name of the style file to the aux file % (needed by \app{makeglossaries}) % \begin{macrocode} @@ -8779,6 +10226,10 @@ name=true]{% % \begin{macrocode} \@disable@onlypremakeg % \end{macrocode} +% Allow \gloskey{see} key: +% \begin{macrocode} + \let\gls@checkseeallowed\relax +% \end{macrocode} % Suppress warning about no \cs{makeglossaries} % \begin{macrocode} \let\warn@nomakeglossaries\relax @@ -8841,51 +10292,50 @@ name=true]{% \glswritefiles } % \end{macrocode} -%\begin{macro}{\glswritefiles} +%\begin{macro}{\@glswritefiles} % Only write the files if \pkgopt[true]{savewrites} +%\changes{3.14a}{2013-11-12}{renamed \cs{glswritefiles} to +%\cs{@glswritefiles} and used ``savewrites'' option to set +%\cs{glswritefiles}} % \begin{macrocode} -\ifglssavewrites - \newcommand*{\glswritefiles}{% +\newcommand*{\@glswritefiles}{% % \end{macrocode} % Iterate through all the glossaries %\changes{3.01}{2011/04/12}{added check for empty glossaries} %\changes{3.02}{2012/05/21}{added check for existence of token % in case \cs{makeglossaries has been omitted}} % \begin{macrocode} - \forallglossaries{\@glo@type}{% + \forallglossaries{\@glo@type}{% % \end{macrocode} % Check for empty glossaries (patch provided by Patrick H\"acker) % \begin{macrocode} - \ifcsundef{glo@\@glo@type @filetok}% - {% - \def\gls@tmp{}% - }% - {% - \edef\gls@tmp{\expandafter\the - \csname glo@\@glo@type @filetok\endcsname}% - }% - \ifx\gls@tmp\@empty - \ifx\@glo@type\glsdefaulttype - \GlossariesWarningNoLine{Glossary `\@glo@type' has no - entries.^^JRemember to use package option `nomain' if + \ifcsundef{glo@\@glo@type @filetok}% + {% + \def\gls@tmp{}% + }% + {% + \edef\gls@tmp{\expandafter\the + \csname glo@\@glo@type @filetok\endcsname}% + }% + \ifx\gls@tmp\@empty + \ifx\@glo@type\glsdefaulttype + \GlossariesWarningNoLine{Glossary `\@glo@type' has no + entries.^^JRemember to use package option `nomain' if you - don't want to^^Juse the main glossary}% - \else - \GlossariesWarningNoLine{Glossary `\@glo@type' has no - entries}% - \fi - \else - \@glsopenfile{\glswrite}{\@glo@type}% - \immediate\write\glswrite{% - \expandafter\the - \csname glo@\@glo@type @filetok\endcsname}% - \immediate\closeout\glswrite - \fi - }% - } -\else - \let\glswritefiles\relax -\fi + don't want to^^Juse the main glossary}% + \else + \GlossariesWarningNoLine{Glossary `\@glo@type' has no + entries}% + \fi + \else + \@glsopenfile{\glswrite}{\@glo@type}% + \immediate\write\glswrite{% + \expandafter\the + \csname glo@\@glo@type @filetok\endcsname}% + \immediate\closeout\glswrite + \fi + }% +} % \end{macrocode} %\end{macro} % @@ -9214,8 +10664,9 @@ you %\begin{macro}{\glssee} %\cs{glssee}\marg{label}\marg{cross-ref list} %\changes{1.17}{2008 December 26}{new} +%\changes{3.08a}{2013-09-28}{made robust} % \begin{macrocode} -\newcommand*{\glssee}[3][\seename]{% +\DeclareRobustCommand*{\glssee}[3][\seename]{% \@do@seeglossary{#2}{[#1]{#3}}} \newcommand*{\@glssee}[3][\seename]{% \glssee[#1]{#3}{#2}} @@ -9224,17 +10675,20 @@ you % %\begin{macro}{\glsseeformat} %\changes{1.17}{2008 December 26}{new} +%\changes{3.08a}{2013-09-28}{made robust} % The first argument specifies what tag to use (e.g.\ ``see''), % the second argument is a comma-separated list of labels. % The final argument (the location) is ignored. % \begin{macrocode} -\newcommand*{\glsseeformat}[3][\seename]{\emph{#1} \glsseelist{#2}} +\DeclareRobustCommand*{\glsseeformat}[3][\seename]{% + \emph{#1} \glsseelist{#2}} % \end{macrocode} %\end{macro} %\begin{macro}{\glsseelist} %\cs{glsseelist}\marg{list} formats list of entry labels. +%\changes{3.08a}{2013-09-28}{made robust} % \begin{macrocode} -\newcommand*{\glsseelist}[1]{% +\DeclareRobustCommand*{\glsseelist}[1]{% % \end{macrocode} % If there is only one item in the list, set the last separator % to do nothing. @@ -9288,8 +10742,9 @@ you % cross-referencing list. %\changes{3.0}{2011/04/02}{hyperlink uses \cs{glsseeitemformat} instead %of \cs{glsentryname}} +%\changes{3.08a}{2013-09-28}{made robust} % \begin{macrocode} -\newcommand*{\glsseeitem}[1]{\glshyperlink[\glsseeitemformat{#1}]{#1}} +\DeclareRobustCommand*{\glsseeitem}[1]{\glshyperlink[\glsseeitemformat{#1}]{#1}} % \end{macrocode} %\end{macro} %\begin{macro}{\glsseeitemformat} @@ -9345,7 +10800,8 @@ you %\begin{macro}{\printglossary} %\changes{1.17}{2008 December 26}{added print language to aux file} %\changes{1.15}{2008 August 15}{changed the way the TOC title is set} -%\changes{1.17}{2008 December 26}{added check to determine if 'printglossary is already +%\changes{1.17}{2008 December 26}{added check to determine if +%\cs{printglossary} is already % defined} % The TOC title needs to be processed in a different manner % to the main title in case the \sty{translator} and \sty{hyperref} packages @@ -9432,15 +10888,16 @@ you \@glossarystyle % \end{macrocode} %\changes{3.02}{2012/05/21}{add a way to fetch current entry label} -% added a way to fetch the current entry label: +% added a way to fetch the current entry label (v3.08 updated for +% new \cs{glossentry} and \cs{subglossentry}): % \begin{macrocode} - \let\gls@org@glossaryentryfield\glossaryentryfield - \let\gls@org@glossarysubentryfield\glossarysubentryfield - \renewcommand{\glossaryentryfield}[1]{% + \let\gls@org@glossaryentryfield\glossentry + \let\gls@org@glossarysubentryfield\subglossentry + \renewcommand{\glossentry}[1]{% \gdef\glscurrententrylabel{##1}% \gls@org@glossaryentryfield{##1}% }% - \renewcommand{\glossarysubentryfield}[2]{% + \renewcommand{\subglossentry}[2]{% \gdef\glscurrententrylabel{##2}% \gls@org@glossarysubentryfield{##1}{##2}% }% @@ -9476,6 +10933,14 @@ you {% \edef\@do@auxoutstuff{% \noexpand\AtEndDocument{% +% \end{macrocode} +%\changes{3.10a}{2013-10-13}{Added providecommand code to aux file} +% If the user removes the glossary package from their document, +% ensure the next run doesn't throw a load of undefined control +% sequence errors when the aux file is parsed. +% \begin{macrocode} + \noexpand\immediate\noexpand\write\@auxout{% + \string\providecommand\string\@xdylanguage[2]{}}% \noexpand\immediate\noexpand\write\@auxout{% \string\@xdylanguage{\@glo@type}{\@xdy@main@language}}% }% @@ -9485,6 +10950,8 @@ you \edef\@do@auxoutstuff{% \noexpand\AtEndDocument{% \noexpand\immediate\noexpand\write\@auxout{% + \string\providecommand\string\@xdylanguage[2]{}}% + \noexpand\immediate\noexpand\write\@auxout{% \string\@xdylanguage{\@glo@type}{\csname @xdy@\@glo@type @language\endcsname}}% }% @@ -9493,6 +10960,14 @@ you \@do@auxoutstuff \edef\@do@auxoutstuff{% \noexpand\AtEndDocument{% +% \end{macrocode} +%\changes{3.10a}{2013-10-13}{Added providecommand code to aux file} +% If the user removes the glossary package from their document, +% ensure the next run doesn't throw a load of undefined control +% sequence errors when the aux file is parsed. +% \begin{macrocode} + \noexpand\immediate\noexpand\write\@auxout{% + \string\providecommand\string\@gls@codepage[2]{}}% \noexpand\immediate\noexpand\write\@auxout{% \string\@gls@codepage{\@glo@type}{\gls@codepage}}% }% @@ -9566,11 +11041,13 @@ you {Glossary style `#1' undefined}{}% }% {% - \def\@glossarystyle{\csname @glsstyle@#1\endcsname}% + \def\@glossarystyle{\setglossentrycompatibility + \csname @glsstyle@#1\endcsname}% }% } % \end{macrocode} -% \changes{1.14}{2008 June 17}{added numberedsection key to 'printglossary} +% \changes{1.14}{2008 June 17}{added numberedsection key to +% \cs{printglossary}} % The \gloskey[printglossary]{numberedsection} key determines if this % glossary should be in a numbered section. % \begin{macrocode} @@ -9587,7 +11064,17 @@ false,nolabel,autolabel}[nolabel]{% \renewcommand*{\@@glossaryseclabel}{\label{\glsautoprefix\@glo@type}}% \fi} % \end{macrocode} -% \changes{1.14}{2008 June 17}{added nonumberlist key to 'printglossary} +% +%\changes{3.08a}{2013-09-28}{added nogroupskip key to \cs{printglossary}} +% The \gloskey[printglossary]{nogroupskip} key determines whether or +% not there should be a vertical gap between glossary groups. +% \begin{macrocode} +\define@choicekey{printgloss}{nogroupskip}{true,false}[true]{% + \csuse{glsnogroupskip#1}% +} +% \end{macrocode} +% \changes{1.14}{2008 June 17}{added nonumberlist key to +% \cs{printglossary}} % The \gloskey[printglossary]{nonumberlist} key determines if this % glossary should have a number list. % \begin{macrocode} @@ -9857,17 +11344,154 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} %\end{macro} % +% As from version 3.08, glossary information is now written to the +% external files using \ics{glossentry} and \ics{subglossentry} +% instead of \cs{glossaryentryfield} and \cs{glossarysubentryfield}. +% The default definition provides backward compatibility for +% glossary styles that use the old forms. +%\begin{macro}{\compatibleglossentry} +%\changes{3.08a}{2013-09-28}{new} +%\begin{definition} +% \cs{glossentry}\marg{label}\marg{page-list} +%\end{definition} +% \begin{macrocode} +\providecommand*{\compatibleglossentry}[2]{% + \toks@{#2}% + \protected@edef\@do@glossentry{\noexpand\glossaryentryfield{#1}% + {\noexpand\glsnamefont + {\expandafter\expandonce\csname glo@#1@name\endcsname}}% + {\expandafter\expandonce\csname glo@#1@desc\endcsname}% + {\expandafter\expandonce\csname glo@#1@symbol\endcsname}% + {\the\toks@}% + }% + \@do@glossentry +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\glossentryname} +%\changes{3.08a}{2013-09-28}{new} +% \begin{macrocode} +\newcommand*{\glossentryname}[1]{% + \glsdoifexists{#1}% + {% + \letcs{\glo@name}{glo@#1@name}% + \expandafter\glsnamefont\expandafter{\glo@name}% + }% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\Glossentryname} +%\changes{3.08a}{2013-09-28}{new} +% \begin{macrocode} +\newcommand*{\Glossentryname}[1]{% + \glsdoifexists{#1}% + {% + \glsnamefont{\Glsentryname{#1}}% + }% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\glossentrydesc} +%\changes{3.08a}{2013-09-28}{new} +% \begin{macrocode} +\newcommand*{\glossentrydesc}[1]{% + \glsdoifexists{#1}% + {% + \glsentrydesc{#1}% + }% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\Glossentrydesc} +%\changes{3.08a}{2013-09-28}{new} +% \begin{macrocode} +\newcommand*{\Glossentrydesc}[1]{% + \glsdoifexists{#1}% + {% + \Glsentrydesc{#1}% + }% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\glossentrysymbol} +%\changes{3.08a}{2013-09-28}{new} +% \begin{macrocode} +\newcommand*{\glossentrysymbol}[1]{% + \glsdoifexists{#1}% + {% + \glsentrysymbol{#1}% + }% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\Glossentrysymbol} +%\changes{3.08a}{2013-09-28}{new} +% \begin{macrocode} +\newcommand*{\Glossentrysymbol}[1]{% + \glsdoifexists{#1}% + {% + \Glsentrysymbol{#1}% + }% +} +% \end{macrocode} +%\end{macro} +% +% +%\begin{macro}{\compatiblesubglossentry} +%\changes{3.08a}{2013-09-28}{new} +%\begin{definition} +% \cs{subglossentry}\marg{level}\marg{label}\marg{page-list} +%\end{definition} +% \begin{macrocode} +\providecommand*{\compatiblesubglossentry}[3]{% + \toks@{#3}% + \protected@edef\@do@subglossentry{\noexpand\glossarysubentryfield{\number#1}% + {#2}% + {\noexpand\glsnamefont + {\expandafter\expandonce\csname glo@#2@name\endcsname}}% + {\expandafter\expandonce\csname glo@#2@desc\endcsname}% + {\expandafter\expandonce\csname glo@#2@symbol\endcsname}% + {\the\toks@}% + }% + \@do@subglossentry +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\setglossentrycompatibility} +%\changes{3.08a}{2013-09-28}{new} +% \begin{macrocode} +\newcommand*{\setglossentrycompatibility}{% + \let\glossentry\compatibleglossentry + \let\subglossentry\compatiblesubglossentry +} +\setglossentrycompatibility +% \end{macrocode} +%\end{macro} +% +% %\begin{macro}{\glossaryentryfield} % \cs{glossaryentryfield}\marg{label}\marg{name}\marg{description}\marg{symbol}\marg{page-list}\\[10pt] -% This command governs how each entry row should be formatted -% in the glossary. Glossary styles need to redefine this command. -% Most of the predefined styles ignore \meta{symbol}. +% This command formerly governed how each entry row should be formatted +% in the glossary. Now deprecated. +%\changes{3.08a}{2013-09-28}{deprecated} % \begin{macrocode} -\newcommand*{\glossaryentryfield}[5]{% -\noindent\textbf{\glstarget{#1}{#2}} #4 #3. #5\par} +\newcommand{\glossaryentryfield}[5]{% + \GlossariesWarning + {Deprecated use of \string\glossaryentryfield.^^J + I recommend you change to \string\glossentry.^^J + If you've just upgraded, try removing your gls auxiliary + files^^J and recompile}% + \noindent\textbf{\glstarget{#1}{#2}} #4 #3. #5\par} % \end{macrocode} %\end{macro} -%\begin{macro}{\glossaryentryfield} +%\begin{macro}{\glossarysubentryfield} % \cs{glossarysubentryfield}\marg{level}\marg{label}\marg{name}\marg{description}\marg{symbol}\marg{page-list}\\[10pt] % This command governs how each subentry should be formatted % in the glossary. Glossary styles need to redefine this command. @@ -9876,7 +11500,12 @@ false,nolabel,autolabel}[nolabel]{% % be greater than or equal to 1.) % \begin{macrocode} \newcommand*{\glossarysubentryfield}[6]{% -\glstarget{#2}{\strut}#4. #6\par} + \GlossariesWarning + {Deprecated use of \string\glossarysubentryfield.^^J + I recommend you change to \string\subglossentry.^^J + If you've just upgraded, try removing your gls auxiliary + files^^J and recompile}% + \glstarget{#2}{\strut}#4. #6\par} % \end{macrocode} %\end{macro} % @@ -9923,8 +11552,10 @@ false,nolabel,autolabel}[nolabel]{% % modify the translation control sequences \cs{glsgetgrouptitle} % and \cs{glsgetgrouplabel} so that the label is translated % into the required title (and vice-versa). -%\\[10pt] -%\cs{glsgetgrouptitle}\marg{label}\\[10pt] +% +%\begin{definition} +%\cs{glsgetgrouptitle}\marg{label} +%\end{definition} % This command produces the title for the glossary group % whose label is given by \meta{label}. By default, the group % labelled \texttt{glssymbols} produces @@ -9934,17 +11565,52 @@ false,nolabel,autolabel}[nolabel]{% % As mentioned above, the group labels are: \texttt{glssymbols}, \texttt{glsnumbers}, % \texttt{A}, \ldots, \texttt{Z}\@. If you want to redefine % the group titles, you will need to redefine this command. +% Languages other than English may produce labels that are +% non-expandable, so we need to check for that otherwise it will +% create a \qt{missing \cs{endcsname} inserted} error. %\begin{macro}{\glsgetgrouptitle} %\changes{3.0}{2011/04/02}{replaced \cs{@ifundefined} with %\cs{ifcsundef}} +%\changes{3.11a}{2013-10-15}{Added check in case non-Latin alphabet +%in use} % \begin{macrocode} \newcommand*{\glsgetgrouptitle}[1]{% - \ifcsundef{#1groupname}{#1}{\csname #1groupname\endcsname}% + \@gls@getgrouptitle{#1}{\@gls@grptitle}% + \@gls@grptitle } % \end{macrocode} %\end{macro} -%\vskip5pt -%\cs{glsgetgrouplabel}\marg{title}\\[10pt] +%\begin{macro}{\@gls@getgrouptitle} +% Gets the group title specified by the label (first argument) and +% stores in the second argument, which must be a control sequence. +% \begin{macrocode} +\newcommand*{\@gls@getgrouptitle}[2]{% +% \end{macrocode} +% Even if the argument appears to be a single letter, it won't be +% considered a single letter by \cs{dtl@ifsingle} if it's an active +% character. +% \begin{macrocode} + \dtl@ifsingle{#1}% + {% + \ifcsundef{#1groupname}{\def#2{#1}}{\letcs#2{#1groupname}}% + }% + {% + \ifboolexpr{test{\ifstrequal{#1}{glssymbols}} + or test{\ifstrequal{#1}{glsnumbers}}}% + {% + \ifcsundef{#1groupname}{\def#2{#1}}{\letcs#2{#1groupname}}% + }% + {% + \def#2{#1}% + }% + }% +} +% \end{macrocode} +%\end{macro} +% +%\begin{definition} +%\cs{glsgetgrouplabel}\marg{title} +%\end{definition} %This command does the reverse to the previous command. The % argument is the group title, and it produces the group label. % Note that if you redefine \cs{glsgetgrouptitle}, you @@ -9980,7 +11646,21 @@ false,nolabel,autolabel}[nolabel]{% %\end{macro} % % The current glossary style can be set using -% \cs{glossarystyle}\marg{style}. +% \cs{setglossarystyle}\marg{style}. +%\begin{macro}{\setglossarystyle} +%\changes{3.08a}{2013-09-28}{new} +% \begin{macrocode} +\newcommand*{\setglossarystyle}[1]{% + \ifcsundef{@glsstyle@#1}% + {% + \PackageError{glossaries}{Glossary style `#1' undefined}{}% + }% + {% + \csname @glsstyle@#1\endcsname + }% +} +% \end{macrocode} +%\end{macro} %\begin{macro}{\glossarystyle} %\changes{3.0}{2011/04/02}{replaced \cs{@ifundefined} with %\cs{ifcsundef}} @@ -9991,7 +11671,19 @@ false,nolabel,autolabel}[nolabel]{% \PackageError{glossaries}{Glossary style `#1' undefined}{}% }% {% + \GlossariesWarning + {Deprecated command \string\glossarystyle.^^J + I recommend you switch to \string\setglossarystyle\space unless + you want to maintain backward compatibility}% + \setglossentrycompatibility \csname @glsstyle@#1\endcsname +% \end{macrocode} +%\changes{3.13a}{2013-11-05}{fixed bug caused by using \cs{ifdef} instead of +%\cs{ifcsdef}} +% \begin{macrocode} + \ifcsdef{@glscompstyle@#1}% + {\setglossentrycompatibility\csuse{@glscompstyle@#1}}% + {}% }% } % \end{macrocode} @@ -10009,7 +11701,7 @@ false,nolabel,autolabel}[nolabel]{% % \ics{glossarypostamble}, as % the user should be able to switch between styles without affecting % the pre- and postambles. -%\changes{1.17}{2008 December 26}{made 'newglossarystyle long} +%\changes{1.17}{2008 December 26}{made \cs{newglossarystyle} long} %\changes{3.0}{2011/04/02}{replaced \cs{@ifundefined} with %\cs{ifcsundef}} % \begin{macrocode} @@ -10228,17 +11920,6 @@ false,nolabel,autolabel}[nolabel]{% %\end{macro} % %\subsection{Acronyms}\label{sec:acronym} -%If the \pkgopt{acronym} package option is used, a -% new glossary called "acronym" is created -% \begin{macrocode} -\ifglsacronym - \newglossary[alg]{acronym}{acr}{acn}{\acronymname} -% \end{macrocode} -%and \ics{acronymtype} is set to the name of this new glossary. -% \begin{macrocode} - \renewcommand*{\acronymtype}{acronym} -\fi -% \end{macrocode} %\begin{macro}{\oldacronym} %\cs{oldacronym}\oarg{label}\marg{abbrv}\marg{long}\marg{key-val list}\\[10pt] % This emulates the way the old \isty{glossary} package defined @@ -10307,7 +11988,7 @@ false,nolabel,autolabel}[nolabel]{% \newcommand{\newacronym}[4][]{} % \end{macrocode} %\changes{1.13}{2008 May 10}{Removed restriction on only using -% 'newacronym in the preamble} +% \cs{newacronym} in the preamble} %\end{macro} % Set up some convenient short cuts. These need to be changed if % \cs{newacronym} is changed (or if the \gloskey{description} key @@ -10327,6 +12008,14 @@ false,nolabel,autolabel}[nolabel]{% \newcommand*{\acrpluralsuffix}{\glspluralsuffix} % \end{macrocode} %\end{macro} +% If \sty{garamondx} has been loaded, need to use \cs{textulc} +% instead of \cs{textup}. +%\begin{macro}{\glstextup} +%\changes{3.09a}{2013-10-09}{new} +% \begin{macrocode} +\newrobustcmd*{\glstextup}[1]{\ifdef\textulc{\textulc{#1}}{\textup{#1}}} +% \end{macrocode} +%\end{macro} % % The following are defined for compatibility with version 2.07 and % earlier. @@ -10586,10 +12275,10 @@ false,nolabel,autolabel}[nolabel]{% %\begin{macro}{\SetDefaultAcronymDisplayStyle} % Sets the default acronym display style for given glossary. %\changes{2.04}{2009 November 10}{new} +%\changes{3.11a}{2013-10-15}{changed to use \cs{defglsentryfmt}} % \begin{macrocode} \newcommand*{\SetDefaultAcronymDisplayStyle}[1]{% - \defglsdisplay[#1]{##1##4}% - \defglsdisplayfirst[#1]{##1##4}% + \defglsentryfmt[#1]{\glsgenentryfmt}% } % \end{macrocode} %\end{macro} @@ -10607,22 +12296,37 @@ false,nolabel,autolabel}[nolabel]{% sort={\the\glsshorttok},% text={\the\glsshorttok},% first={\acrfullformat{\the\glslongtok}{\the\glsshorttok}},% - plural={\the\glsshorttok\noexpand\acrpluralsuffix},% - firstplural={\acrfullformat{\noexpand\@glo@longpl}% - {\noexpand\@glo@shortpl}},% + plural={\noexpand\expandonce\noexpand\@glo@shortpl},% + firstplural={\acrfullformat{\noexpand\expandonce\noexpand\@glo@longpl}% + {\noexpand\expandonce\noexpand\@glo@shortpl}},% short={\the\glsshorttok},% shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},% long={\the\glslongtok},% longplural={\the\glslongtok\noexpand\acrpluralsuffix},% description={\the\glslongtok},% - descriptionplural={\the\glslongtok\noexpand\acrpluralsuffix},% + descriptionplural={\noexpand\expandonce\noexpand\@glo@longpl},% % \end{macrocode} % Remaining options specified by the user: % \begin{macrocode} \the\glskeylisttok }% }% + \let\@org@gls@assign@firstpl\gls@assign@firstpl + \let\@org@gls@assign@plural\gls@assign@plural + \let\@org@gls@assign@descplural\gls@assign@descplural + \def\gls@assign@firstpl##1##2{% + \@@gls@expand@field{##1}{firstpl}{##2}% + }% + \def\gls@assign@plural##1##2{% + \@@gls@expand@field{##1}{plural}{##2}% + }% + \def\gls@assign@descplural##1##2{% + \@@gls@expand@field{##1}{descplural}{##2}% + }% \@do@newglossaryentry + \let\gls@assign@firstpl\@org@gls@assign@firstpl + \let\gls@assign@plural\@org@gls@assign@plural + \let\gls@assign@symbolplural\@org@gls@assign@symbolplural } % \end{macrocode} %\end{macro} @@ -10693,38 +12397,69 @@ false,nolabel,autolabel}[nolabel]{% % description and footnote combination. %\changes{2.04}{2009 November 10}{new} %\changes{3.0}{2011/04/02}{expanded options link options} +%\changes{3.11a}{2013-10-15}{updated to use \cs{defglsentryfmt}} % \begin{macrocode} \newcommand*{\SetDescriptionFootnoteAcronymDisplayStyle}[1]{% - \defglsdisplayfirst[#1]{% - \firstacronymfont{##1}##4% - \expandafter\protect\expandafter\acrfootnote\expandafter - {\@gls@link@opts}{\@gls@link@label}{##3}% + \defglsentryfmt[#1]{% + \ifglsused{\glslabel}% + {% + \acronymfont{\glsgenentryfmt}% + }% + {% + \firstacronymfont{\glsgenentryfmt}% + \ifglshassymbol{\glslabel}% + {% + \expandafter\protect\expandafter\acrfootnote\expandafter + {\@gls@link@opts}{\@gls@link@label}% + {% + \glsifplural + {\glsentrysymbolplural{\glslabel}}% + {\glsentrysymbol{\glslabel}}% + }% + }% + }% }% - \defglsdisplay[#1]{\acronymfont{##1}##4}% } % \end{macrocode} %\end{macro} %\begin{macro}{\DescriptionFootnoteNewAcronymDef} % \begin{macrocode} \newcommand*{\DescriptionFootnoteNewAcronymDef}{% - \edef\@do@newglossaryentry{% - \noexpand\newglossaryentry{\the\glslabeltok}% - {% - type=\acronymtype,% - name={\noexpand\acronymfont{\the\glsshorttok}},% - sort={\the\glsshorttok},% - text={\the\glsshorttok},% - plural={\the\glsshorttok\noexpand\acrpluralsuffix},% - short={\the\glsshorttok},% - shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},% - long={\the\glslongtok},% - longplural={\the\glslongtok\noexpand\acrpluralsuffix},% - symbol={\the\glslongtok},% - symbolplural={\the\glslongtok\noexpand\acrpluralsuffix},% - \the\glskeylisttok - }% + \edef\@do@newglossaryentry{% + \noexpand\newglossaryentry{\the\glslabeltok}% + {% + type=\acronymtype,% + name={\noexpand\acronymfont{\the\glsshorttok}},% + sort={\the\glsshorttok},% + first={\the\glsshorttok},% + firstplural={\noexpand\expandonce\noexpand\@glo@shortpl},% + text={\the\glsshorttok},% + plural={\noexpand\expandonce\noexpand\@glo@shortpl},% + short={\the\glsshorttok},% + shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},% + long={\the\glslongtok},% + longplural={\the\glslongtok\noexpand\acrpluralsuffix},% + symbol={\the\glslongtok},% + symbolplural={\noexpand\expandonce\noexpand\@glo@longpl},% + \the\glskeylisttok }% - \@do@newglossaryentry + }% + \let\@org@gls@assign@firstpl\gls@assign@firstpl + \let\@org@gls@assign@plural\gls@assign@plural + \let\@org@gls@assign@symbolplural\gls@assign@symbolplural + \def\gls@assign@firstpl##1##2{% + \@@gls@expand@field{##1}{firstpl}{##2}% + }% + \def\gls@assign@plural##1##2{% + \@@gls@expand@field{##1}{plural}{##2}% + }% + \def\gls@assign@symbolplural##1##2{% + \@@gls@expand@field{##1}{symbolplural}{##2}% + }% + \@do@newglossaryentry + \let\gls@assign@plural\@org@gls@assign@plural + \let\gls@assign@firstpl\@org@gls@assign@firstpl + \let\gls@assign@symbolplural\@org@gls@assign@symbolplural } % \end{macrocode} %\end{macro} @@ -10755,8 +12490,8 @@ false,nolabel,autolabel}[nolabel]{% % If \pkgopt{footnote} package option is specified, set the first % use to append the long form (stored in \gloskey{symbol}) as a % footnote. -%\changes{1.12}{2008 Mar 8}{Added 'protect before 'footnote -% and 'glslink} +%\changes{1.12}{2008 Mar 8}{Added \cs{protect} before \cs{footnote} +% and \cs{glslink}} % \begin{macrocode} \@for\@gls@type:=\@glsacronymlists\do{% \SetDescriptionFootnoteAcronymDisplayStyle{\@gls@type}% @@ -10765,13 +12500,16 @@ false,nolabel,autolabel}[nolabel]{% % Redefine \ics{acronymfont} if small caps required. The plural suffix % is set in an upright font so that it remains in normal lower case, % otherwise it looks as though it's part of the acronym. -%\changes{1.19}{2009 Mar 2}{changed 'acronymfont to use 'textsmaller instead -%of 'smaller} +%\changes{1.19}{2009 Mar 2}{changed \cs{acronymfont} to use +%\cs{textsmaller} instead +%of \cs{smaller}} % \begin{macrocode} \ifglsacrsmallcaps \renewcommand*{\acronymfont}[1]{\textsc{##1}}% +% \end{macrocode} +% \begin{macrocode} \renewcommand*{\acrpluralsuffix}{% - \textup{\glspluralsuffix}}% + \glstextup{\glspluralsuffix}}% \else \ifglsacrsmaller \renewcommand*{\acronymfont}[1]{\textsmaller{##1}}% @@ -10792,10 +12530,10 @@ false,nolabel,autolabel}[nolabel]{% % Sets the acronym display style for given glossary with % description and dua combination. %\changes{2.04}{2009 November 10}{new} +%\changes{3.11a}{2013-10-15}{updated to use \cs{defglsentryfmt}} % \begin{macrocode} \newcommand*{\SetDescriptionDUAAcronymDisplayStyle}[1]{% - \defglsdisplay[#1]{##1##4}% - \defglsdisplayfirst[#1]{##1##4}% + \defglsentryfmt[#1]{\glsgenentryfmt}% } % \end{macrocode} %\end{macro} @@ -10809,17 +12547,34 @@ false,nolabel,autolabel}[nolabel]{% name={\the\glslongtok},% sort={\the\glslongtok}, text={\the\glslongtok},% - plural={\the\glslongtok\noexpand\acrpluralsuffix},% + first={\the\glslongtok},% + plural={\noexpand\expandonce\noexpand\@glo@longpl},% + firstplural={\noexpand\expandonce\noexpand\@glo@longpl},% short={\the\glsshorttok},% shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},% long={\the\glslongtok},% longplural={\the\glslongtok\noexpand\acrpluralsuffix},% symbol={\the\glsshorttok},% - symbolplural={\the\glsshorttok\noexpand\acrpluralsuffix},% + symbolplural={\noexpand\expandonce\noexpand\@glo@shortpl},% \the\glskeylisttok }% }% + \let\@org@gls@assign@firstpl\gls@assign@firstpl + \let\@org@gls@assign@plural\gls@assign@plural + \let\@org@gls@assign@symbolplural\gls@assign@symbolplural + \def\gls@assign@firstpl##1##2{% + \@@gls@expand@field{##1}{firstpl}{##2}% + }% + \def\gls@assign@plural##1##2{% + \@@gls@expand@field{##1}{plural}{##2}% + }% + \def\gls@assign@symbolplural##1##2{% + \@@gls@expand@field{##1}{symbolplural}{##2}% + }% \@do@newglossaryentry + \let\gls@assign@firstpl\@org@gls@assign@firstpl + \let\gls@assign@plural\@org@gls@assign@plural + \let\gls@assign@symbolplural\@org@gls@assign@symbolplural } % \end{macrocode} %\end{macro} @@ -10868,11 +12623,39 @@ false,nolabel,autolabel}[nolabel]{% % the description setting (but not \pkgopt{footnote} or \pkgopt{dua}). %\changes{2.04}{2009 November 10}{new} %\changes{3.07}{2013-07-05}{now using \cs{glsdoparenifnotempty}} +%\changes{3.11a}{2013-10-15}{updated to use \cs{defglsentryfmt}} % \begin{macrocode} \newcommand*{\SetDescriptionAcronymDisplayStyle}[1]{% - \defglsdisplayfirst[#1]{% - ##1##4\glsdoparenifnotempty{##3}{\protect\firstacronymfont}}% - \defglsdisplay[#1]{\acronymfont{##1}##4}% + \defglsentryfmt[#1]{% + \ifglsused{\glslabel}% + {% +% \end{macrocode} +% Move the inserted text outside of \cs{acronymfont} +% \begin{macrocode} + \let\gls@org@insert\glsinsert + \let\glsinsert\@empty + \acronymfont{\glsgenentryfmt}\gls@org@insert + }% + {% + \glsgenentryfmt + \ifglshassymbol{\glslabel}% + {% + \glsifplural + {% + \def\@glo@symbol{\glsentrysymbolplural{\glslabel}}% + }% + {% + \def\@glo@symbol{\glsentrysymbol{\glslabel}}% + }% + \space(\protect\firstacronymfont + {\glscapscase + {\@glo@symbol} + {\@glo@symbol} + {\mfirstucMakeUppercase{\@glo@symbol}}})% + }% + {}% + }% + }% } % \end{macrocode} %\end{macro} @@ -10887,18 +12670,33 @@ false,nolabel,autolabel}[nolabel]{% \acrnameformat{\the\glsshorttok}{\the\glslongtok}},% sort={\the\glsshorttok},% first={\the\glslongtok},% - firstplural={\the\glslongtok\noexpand\acrpluralsuffix},% + firstplural={\noexpand\expandonce\noexpand\@glo@longpl},% text={\the\glsshorttok},% - plural={\the\glsshorttok\noexpand\acrpluralsuffix},% + plural={\noexpand\expandonce\noexpand\@glo@shortpl},% short={\the\glsshorttok},% shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},% long={\the\glslongtok},% longplural={\the\glslongtok\noexpand\acrpluralsuffix},% symbol={\noexpand\@glo@text},% - symbolplural={\noexpand\@glo@plural},% + symbolplural={\noexpand\expandonce\noexpand\@glo@shortpl},% \the\glskeylisttok}% }% + \let\@org@gls@assign@firstpl\gls@assign@firstpl + \let\@org@gls@assign@plural\gls@assign@plural + \let\@org@gls@assign@symbolplural\gls@assign@symbolplural + \def\gls@assign@firstpl##1##2{% + \@@gls@expand@field{##1}{firstpl}{##2}% + }% + \def\gls@assign@plural##1##2{% + \@@gls@expand@field{##1}{plural}{##2}% + }% + \def\gls@assign@symbolplural##1##2{% + \@@gls@expand@field{##1}{symbolplural}{##2}% + }% \@do@newglossaryentry + \let\gls@assign@firstpl\@org@gls@assign@firstpl + \let\gls@assign@plural\@org@gls@assign@plural + \let\gls@assign@symbolplural\@org@gls@assign@symbolplural } % \end{macrocode} %\end{macro} @@ -10936,13 +12734,14 @@ false,nolabel,autolabel}[nolabel]{% % Redefine \ics{acronymfont} if small caps required. The plural suffix % is set in an upright font so that it remains in normal lower case, % otherwise it looks as though it's part of the acronym. -%\changes{1.19}{2009 Mar 2}{changed 'acronymfont to use 'textsmaller instead -%of 'smaller} +%\changes{1.19}{2009 Mar 2}{changed \cs{acronymfont} to use +%\cs{textsmaller} instead +%of \cs{smaller}} % \begin{macrocode} \ifglsacrsmallcaps \renewcommand{\acronymfont}[1]{\textsc{##1}} \renewcommand*{\acrpluralsuffix}{% - \textup{\glspluralsuffix}}% + \glstextup{\glspluralsuffix}}% \else \ifglsacrsmaller \renewcommand*{\acronymfont}[1]{\textsmaller{##1}}% @@ -10956,14 +12755,37 @@ false,nolabel,autolabel}[nolabel]{% % Sets the acronym display style for given glossary with % footnote setting (but not \pkgopt{description} or \pkgopt{dua}). %\changes{2.04}{2009 November 10}{new} +%\changes{3.11a}{2013-10-15}{updated to use \cs{defglsentryfmt}} % \begin{macrocode} \newcommand*{\SetFootnoteAcronymDisplayStyle}[1]{% - \defglsdisplayfirst[#1]{% - \firstacronymfont{##1}##4% - \expandafter\protect\expandafter\acrfootnote\expandafter - {\@gls@link@opts}{\@gls@link@label}{##2}% + \defglsentryfmt[#1]{% +% \end{macrocode} +% Move the inserted text outside of \cs{acronymfont} +% \begin{macrocode} + \let\gls@org@insert\glsinsert + \let\glsinsert\@empty + \ifglsused{\glslabel}% + {% + \acronymfont{\glsgenentryfmt}\gls@org@insert + }% + {% + \firstacronymfont{\glsgenentryfmt}\gls@org@insert + \ifglshaslong{\glslabel}% + {% + \expandafter\protect\expandafter\acrfootnote\expandafter + {\@gls@link@opts}{\@gls@link@label}% + {% + \glsifplural + {\glsentrylongpl{\glslabel}}% + {\glsentrylong{\glslabel}}% + }% + }% +% \end{macrocode} +%\changes{3.13a}{2013-11-05}{fixed missing argument bug} +% \begin{macrocode} + {}% + }% }% - \defglsdisplay[#1]{\acronymfont{##1}##4}% } % \end{macrocode} %\end{macro} @@ -10977,17 +12799,34 @@ false,nolabel,autolabel}[nolabel]{% name={\noexpand\acronymfont{\the\glsshorttok}},% sort={\the\glsshorttok},% text={\the\glsshorttok},% - plural={\the\glsshorttok\noexpand\acrpluralsuffix},% + plural={\noexpand\expandonce\noexpand\@glo@shortpl},% + first={\the\glsshorttok},% + firstplural={\noexpand\expandonce\noexpand\@glo@shortpl},% short={\the\glsshorttok},% shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},% long={\the\glslongtok},% longplural={\the\glslongtok\noexpand\acrpluralsuffix},% description={\the\glslongtok},% - descriptionplural={\the\glslongtok\noexpand\acrpluralsuffix},% + descriptionplural={\noexpand\expandonce\noexpand\@glo@longpl},% \the\glskeylisttok }% }% + \let\@org@gls@assign@plural\gls@assign@plural + \let\@org@gls@assign@firstpl\gls@assign@firstpl + \let\@org@gls@assign@descplural\gls@assign@descplural + \def\gls@assign@firstpl##1##2{% + \@@gls@expand@field{##1}{firstpl}{##2}% + }% + \def\gls@assign@plural##1##2{% + \@@gls@expand@field{##1}{plural}{##2}% + }% + \def\gls@assign@descplural##1##2{% + \@@gls@expand@field{##1}{descplural}{##2}% + }% \@do@newglossaryentry + \let\gls@assign@plural\@org@gls@assign@plural + \let\gls@assign@firstpl\@org@gls@assign@firstpl + \let\gls@assign@descplural\@org@gls@assign@descplural } % \end{macrocode} %\end{macro} @@ -11014,8 +12853,8 @@ false,nolabel,autolabel}[nolabel]{% }% % \end{macrocode} % Set display -%\changes{1.12}{2008 Mar 8}{Added 'protect before 'footnote and -% 'glslink} +%\changes{1.12}{2008 Mar 8}{Added \cs{protect} before \cs{footnote} and +% \cs{glslink}} % \begin{macrocode} \@for\@gls@type:=\@glsacronymlists\do{% \SetFootnoteAcronymDisplayStyle{\@gls@type}% @@ -11024,13 +12863,14 @@ false,nolabel,autolabel}[nolabel]{% % Redefine \ics{acronymfont} if small caps required. The plural suffix % is set in an upright font so that it remains in normal lower case, % otherwise it looks as though it's part of the acronym. -%\changes{1.19}{2009 Mar 2}{changed 'acronymfont to use 'textsmaller instead -%of 'smaller} +%\changes{1.19}{2009 Mar 2}{changed \cs{acronymfont} to use +%\cs{textsmaller} instead +%of \cs{smaller}} % \begin{macrocode} \ifglsacrsmallcaps \renewcommand*{\acronymfont}[1]{\textsc{##1}}% \renewcommand*{\acrpluralsuffix}{% - \textup{\glspluralsuffix}}% + \glstextup{\glspluralsuffix}}% \else \ifglsacrsmaller \renewcommand*{\acronymfont}[1]{\textsmaller{##1}}% @@ -11057,7 +12897,7 @@ false,nolabel,autolabel}[nolabel]{% \ifdefempty\gls@tmp {}% {% - \if\gls@tmp\relax + \ifx\gls@tmp\@gls@default@value \else \space (#2{#1})% \fi @@ -11071,10 +12911,39 @@ false,nolabel,autolabel}[nolabel]{% % footnote nor description is required, but smallcaps or smaller % specified. %\changes{2.04}{2009 November 10}{new} +%\changes{3.11a}{2013-10-15}{updated to use \cs{defglsentryfmt}} % \begin{macrocode} \newcommand*{\SetSmallAcronymDisplayStyle}[1]{% - \defglsdisplayfirst[#1]{##1##4\glsdoparenifnotempty{##3}{\protect\firstacronymfont}} - \defglsdisplay[#1]{\acronymfont{##1}##4}% + \defglsentryfmt[#1]{% +% \end{macrocode} +% Move the inserted text outside of \cs{acronymfont} +% \begin{macrocode} + \let\gls@org@insert\glsinsert + \let\glsinsert\@empty + \ifglsused{\glslabel}% + {% + \acronymfont{\glsgenentryfmt}\gls@org@insert + }% + {% + \glsgenentryfmt + \ifglshassymbol{\glslabel}% + {% + \glsifplural + {% + \def\@glo@symbol{\glsentrysymbolplural{\glslabel}}% + }% + {% + \def\@glo@symbol{\glsentrysymbol{\glslabel}}% + }% + \space + (\glscapscase + {\firstacronymfont{\@glo@symbol}}% + {\firstacronymfont{\@glo@symbol}}% + {\firstacronymfont{\mfirstucMakeUppercase{\@glo@symbol}}})% + }% + {}% + }% + }% } % \end{macrocode} %\end{macro} @@ -11088,31 +12957,51 @@ false,nolabel,autolabel}[nolabel]{% type=\acronymtype,% name={\noexpand\acronymfont{\the\glsshorttok}},% sort={\the\glsshorttok},% - text={\noexpand\@glo@symbol},% + text={\the\glsshorttok},% % \end{macrocode} % Default to the short plural. % \begin{macrocode} - plural={\noexpand\@glo@shortpl},% + plural={\noexpand\expandonce\noexpand\@glo@shortpl},% first={\the\glslongtok},% % \end{macrocode} % Default to the long plural. % \begin{macrocode} - firstplural={\noexpand\@glo@longpl},% + firstplural={\noexpand\expandonce\noexpand\@glo@longpl},% short={\the\glsshorttok},% shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},% long={\the\glslongtok},% longplural={\the\glslongtok\noexpand\acrpluralsuffix},% description={\noexpand\@glo@first},% - descriptionplural={\noexpand\@glo@firstplural},% + descriptionplural={\noexpand\expandonce\noexpand\@glo@longpl},% symbol={\the\glsshorttok},% % \end{macrocode} % Default to the short plural. % \begin{macrocode} - symbolplural={\noexpand\@glo@shortpl},% + symbolplural={\noexpand\expandonce\noexpand\@glo@shortpl},% \the\glskeylisttok }% }% + \let\@org@gls@assign@firstpl\gls@assign@firstpl + \let\@org@gls@assign@plural\gls@assign@plural + \let\@org@gls@assign@descplural\gls@assign@descplural + \let\@org@gls@assign@symbolplural\gls@assign@symbolplural + \def\gls@assign@firstpl##1##2{% + \@@gls@expand@field{##1}{firstpl}{##2}% + }% + \def\gls@assign@plural##1##2{% + \@@gls@expand@field{##1}{plural}{##2}% + }% + \def\gls@assign@descplural##1##2{% + \@@gls@expand@field{##1}{descplural}{##2}% + }% + \def\gls@assign@symbolplural##1##2{% + \@@gls@expand@field{##1}{symbolplural}{##2}% + }% \@do@newglossaryentry + \let\gls@assign@firstpl\@org@gls@assign@firstpl + \let\gls@assign@plural\@org@gls@assign@plural + \let\gls@assign@descplural\@org@gls@assign@descplural + \let\gls@assign@symbolplural\@org@gls@assign@symbolplural } % \end{macrocode} %\end{macro} @@ -11147,13 +13036,14 @@ false,nolabel,autolabel}[nolabel]{% % Redefine \ics{acronymfont} if small caps required. The plural suffix % is set in an upright font so that it remains in normal lower case, % otherwise it looks as though it's part of the acronym. -%\changes{1.19}{2009 Mar 2}{changed 'acronymfont to use 'textsmaller instead -%of 'smaller} +%\changes{1.19}{2009 Mar 2}{changed \cs{acronymfont} to use +%\cs{textsmaller} instead +%of \cs{smaller}} % \begin{macrocode} \ifglsacrsmallcaps \renewcommand*{\acronymfont}[1]{\textsc{##1}} \renewcommand*{\acrpluralsuffix}{% - \textup{\glspluralsuffix}}% + \glstextup{\glspluralsuffix}}% \else \renewcommand*{\acronymfont}[1]{\textsmaller{##1}} \fi @@ -11177,10 +13067,10 @@ false,nolabel,autolabel}[nolabel]{% % Sets the acronym display style for given glossary with dua % setting. %\changes{2.04}{2009 November 10}{new} +%\changes{3.11a}{2013-10-15}{updated to use \cs{defglsentryfmt}} % \begin{macrocode} \newcommand*{\SetDUADisplayStyle}[1]{% - \defglsdisplay[#1]{##1##4}% - \defglsdisplayfirst[#1]{##1##4}% + \defglsentryfmt[#1]{\glsgenentryfmt}% } % \end{macrocode} %\end{macro} @@ -11193,18 +13083,41 @@ false,nolabel,autolabel}[nolabel]{% type=\acronymtype,% name={\the\glsshorttok},% text={\the\glslongtok},% - plural={\the\glslongtok\noexpand\acrpluralsuffix},% + first={\the\glslongtok},% + plural={\noexpand\expandonce\noexpand\@glo@longpl},% + firstplural={\noexpand\expandonce\noexpand\@glo@longpl},% short={\the\glsshorttok},% shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},% long={\the\glslongtok},% longplural={\the\glslongtok\noexpand\acrpluralsuffix},% description={\the\glslongtok},% + descriptionplural={\noexpand\expandonce\noexpand\@glo@longpl},% symbol={\the\glsshorttok},% - symbolplural={\the\glsshorttok\noexpand\acrpluralsuffix},% + symbolplural={\noexpand\expandonce\noexpand\@glo@shortpl},% \the\glskeylisttok }% }% + \let\@org@gls@assign@firstpl\gls@assign@firstpl + \let\@org@gls@assign@plural\gls@assign@plural + \let\@org@gls@assign@symbolplural\gls@assign@symbolplural + \let\@org@gls@assign@descplural\gls@assign@descplural + \def\gls@assign@firstpl##1##2{% + \@@gls@expand@field{##1}{firstpl}{##2}% + }% + \def\gls@assign@plural##1##2{% + \@@gls@expand@field{##1}{plural}{##2}% + }% + \def\gls@assign@symbolplural##1##2{% + \@@gls@expand@field{##1}{symbolplural}{##2}% + }% + \def\gls@assign@descplural##1##2{% + \@@gls@expand@field{##1}{descplural}{##2}% + }% \@do@newglossaryentry + \let\gls@assign@firstpl\@org@gls@assign@firstpl + \let\gls@assign@plural\@org@gls@assign@plural + \let\gls@assign@symbolplural\@org@gls@assign@symbolplural + \let\gls@assign@descplural\@org@gls@assign@descplural } % \end{macrocode} %\end{macro} @@ -11283,10 +13196,10 @@ false,nolabel,autolabel}[nolabel]{% %\begin{macro}{\SetCustomDisplayStyle} % Sets the acronym display style. %\changes{2.06}{2010 June 14}{new} +%\changes{3.11a}{2013-10-15}{updated to use \cs{defglsentryfmt}} % \begin{macrocode} \newcommand*{\SetCustomDisplayStyle}[1]{% - \defglsdisplay[#1]{##1##4}% - \defglsdisplayfirst[#1]{##1##4}% + \defglsentryfmt[#1]{\glsgenentryfmt}% } % \end{macrocode} %\end{macro} @@ -11298,7 +13211,8 @@ false,nolabel,autolabel}[nolabel]{% description={\the\glslongtok},% first={\noexpand\acrfullformat{\the\glslongtok}{\the\glsshorttok}},% firstplural={\noexpand\acrfullformat - {\the\glslongtok\noexpand\acrpluralsuffix}{\the\glsshorttok}}% + {\noexpand\glsentrylongpl{\the\glslabeltok}}% + {\noexpand\glsentryshortpl{\the\glslabeltok}}}% text={\the\glsshorttok},% plural={\the\glsshorttok\noexpand\acrpluralsuffix}% } @@ -11505,7 +13419,7 @@ false,nolabel,autolabel}[nolabel]{% % \begin{macrocode} \ifx\@glossary@default@style\relax \else - \glossarystyle{\@glossary@default@style} + \setglossarystyle{\@glossary@default@style} \fi % \end{macrocode} % @@ -11751,6 +13665,30 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} %\end{macro} % +%\begin{macro}{\showgloshort} +%\changes{3.11a}{2013-10-15}{new} +%\begin{definition} +%\cs{showgloshort}\marg{label} +%\end{definition} +% \begin{macrocode} +\newcommand*{\showgloshort}[1]{% + \expandafter\show\csname glo@#1@short\endcsname +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\showglolong} +%\changes{3.11a}{2013-10-15}{new} +%\begin{definition} +%\cs{showglolong}\marg{label} +%\end{definition} +% \begin{macrocode} +\newcommand*{\showglolong}[1]{% + \expandafter\show\csname glo@#1@long\endcsname +} +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\showgloindex} %\changes{3.0}{2011/04/02}{new} %\begin{definition} @@ -11897,6 +13835,449 @@ false,nolabel,autolabel}[nolabel]{% %\fi %\iffalse % \begin{macrocode} +%<*glossaries-prefix.sty> +% \end{macrocode} +%\fi +%\section{Prefix Support (glossaries-prefix Code)} +%\label{sec:code:accsupp} +%\changes{3.14a}{2013-11-12}{new} +% This package provides a means of adding prefixes to your glossary +% entries. For example, you may want to use ``a +% \cs{gls}\marg{label}'' on first use but use ``an +% \cs{gls}\marg{label}'' on subsequent use. +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{glossaries-prefix}[2013/11/14 v4.0 (NLCT)] +% \end{macrocode} +% Pass all options to \sty{glossaries}: +% \begin{macrocode} +\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{glossaries}} +% \end{macrocode} +% Process options: +% \begin{macrocode} +\ProcessOptions +% \end{macrocode} +% Load \sty{glossaries}: +% \begin{macrocode} +\RequirePackage{glossaries} +% \end{macrocode} +% Add the new keys: +% \begin{macrocode} +\define@key{glossentry}{prefixfirst}{\def\@glo@entryprefixfirst{#1}}% +\define@key{glossentry}{prefixfirstplural}{\def\@glo@entryprefixfirstplural{#1}}% +\define@key{glossentry}{prefix}{\def\@glo@entryprefix{#1}}% +\define@key{glossentry}{prefixplural}{\def\@glo@entryprefixplural{#1}}% +% \end{macrocode} +% Add them to \ics{@gls@keymap}: +% \begin{macrocode} +\appto\@gls@keymap{,% + {prefixfirst}{prefixfirst},% + {prefixfirstplural}{prefixfirstplural},% + {prefix}{prefix},% + {prefixplural}{prefixplural}% + } +% \end{macrocode} +% Set the default values: +% \begin{macrocode} +\appto\@newglossaryentryprehook{% + \def\@glo@entryprefix{}% + \def\@glo@entryprefixplural{}% + \let\@glo@entryprefixfirst\@gls@default@value + \let\@glo@entryprefixfirstplural\@gls@default@value +} +% \end{macrocode} +% Set the assignment code: +% \begin{macrocode} +\appto\@newglossaryentryposthook{% + \gls@assign@field{}{\@glo@label}{prefix}{\@glo@entryprefix}% + \gls@assign@field{}{\@glo@label}{prefixplural}{\@glo@entryprefixplural}% +% \end{macrocode} +% If \gloskey{prefixfirst} has not been supplied, make it the same +% as \gloskey{prefix}. +% \begin{macrocode} + \expandafter\gls@assign@field\expandafter + {\csname glo@\@glo@label @prefix\endcsname}{\@glo@label}{prefixfirst}% + {\@glo@entryprefixfirst}% +% \end{macrocode} +% If \gloskey{prefixfirstplural} has not been supplied, make it the same +% as \gloskey{prefixplural}. +% \begin{macrocode} + \expandafter\gls@assign@field\expandafter + {\csname glo@\@glo@label @prefixplural\endcsname}{\@glo@label}% + {prefixfirstplural}{\@glo@entryprefixfirstplural}% +} +% \end{macrocode} +% +% Define commands to access these fields: +%\begin{macro}{\glsentryprefixfirst} +% \begin{macrocode} +\newcommand*{\glsentryprefixfirst}[1]{\csuse{glo@#1@prefixfirst}} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\glsentryprefixfirstplural} +% \begin{macrocode} +\newcommand*{\glsentryprefixfirstplural}[1]{\csuse{glo@#1@prefixfirstplural}} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\glsentryprefix} +% \begin{macrocode} +\newcommand*{\glsentryprefix}[1]{\csuse{glo@#1@prefix}} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\glsentryprefixplural} +% \begin{macrocode} +\newcommand*{\glsentryprefixplural}[1]{\csuse{glo@#1@prefixplural}} +% \end{macrocode} +%\end{macro} +% +% Now for the initial upper case variants: +%\begin{macro}{\Glsentryprefixfirst} +% \begin{macrocode} +\newrobustcmd*{\Glsentryprefixfirst}[1]{% + \protected@edef\@glo@text{\csname glo@#1@prefixfirst\endcsname}% + \xmakefirstuc\@glo@text +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\Glsentryprefixfirstplural} +% \begin{macrocode} +\newrobustcmd*{\Glsentryprefixfirstplural}[1]{% + \protected@edef\@glo@text{\csname glo@#1@prefixfirstplural\endcsname}% + \xmakefirstuc\@glo@text +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\Glsentryprefix} +% \begin{macrocode} +\newrobustcmd*{\Glsentryprefix}[1]{% + \protected@edef\@glo@text{\csname glo@#1@prefix\endcsname}% + \xmakefirstuc\@glo@text +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\Glsentryprefixplural} +% \begin{macrocode} +\newrobustcmd*{\Glsentryprefixplural}[1]{% + \protected@edef\@glo@text{\csname glo@#1@prefixplural\endcsname}% + \xmakefirstuc\@glo@text +} +% \end{macrocode} +%\end{macro} +% +% Define commands to determine if the prefix keys have been set: +%\begin{macro}{\ifglshasprefix} +% \begin{macrocode} +\newcommand*{\ifglshasprefix}[3]{% + \ifcsempty{glo@#1@prefix}% + {#3}% + {#2}% +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\ifglshasprefixplural} +% \begin{macrocode} +\newcommand*{\ifglshasprefixplural}[3]{% + \ifcsempty{glo@#1@prefixplural}% + {#3}% + {#2}% +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\ifglshasprefixfirst} +% \begin{macrocode} +\newcommand*{\ifglshasprefixfirst}[3]{% + \ifcsempty{glo@#1@prefixfirst}% + {#3}% + {#2}% +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\ifglshasprefixfirstplural} +% \begin{macrocode} +\newcommand*{\ifglshasprefixfirstplural}[3]{% + \ifcsempty{glo@#1@prefixfirstplural}% + {#3}% + {#2}% +} +% \end{macrocode} +%\end{macro} +% +% Define commands that insert the prefix before commands like \ics{gls}: +%\begin{macro}{\pgls} +% \begin{macrocode} +\newrobustcmd{\pgls}{\@ifstar\@spgls\@pgls} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@spgls} +% Starred version. +% \begin{macrocode} +\newcommand*{\@spgls}[2][]{\@pgls@{hyper=false,#1}{#2}} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@pgls} +% Unstarred version. +% \begin{macrocode} +\newcommand*{\@pgls}[2][]{% + \new@ifnextchar[% + {\@pgls@{#1}{#2}}% + {\@pgls@{#1}{#2}[]}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@pgls@} +% Read in the final optional argument: +% \begin{macrocode} +\def\@pgls@#1#2[#3]{% + \glsdoifexists{#2}% + {% + \ifglsused{#2}% + {% + \glsentryprefix{#2}% + }% + {% + \glsentryprefixfirst{#2}% + }% + \@gls@{#1}{#2}[#3]% + }% +} +% \end{macrocode} +%\end{macro} +% +% Similarly for the plural version: +%\begin{macro}{\pglspl} +% \begin{macrocode} +\newrobustcmd{\pglspl}{\@ifstar\@spglspl\@pglspl} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@spglspl} +% Starred version. +% \begin{macrocode} +\newcommand*{\@spglspl}[2][]{\@pglspl@{hyper=false,#1}{#2}} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@pglspl} +% Unstarred version. +% \begin{macrocode} +\newcommand*{\@pglspl}[2][]{% + \new@ifnextchar[% + {\@pglspl@{#1}{#2}}% + {\@pglspl@{#1}{#2}[]}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@pglspl@} +% Read in the final optional argument: +% \begin{macrocode} +\def\@pglspl@#1#2[#3]{% + \glsdoifexists{#2}% + {% + \ifglsused{#2}% + {% + \glsentryprefixplural{#2}% + }% + {% + \glsentryprefixfirstplural{#2}% + }% + \@glspl@{#1}{#2}[#3]% + }% +} +% \end{macrocode} +%\end{macro} +% +% Now for the first letter upper case versions: +%\begin{macro}{\Pgls} +% \begin{macrocode} +\newrobustcmd{\Pgls}{\@ifstar\@sPgls\@Pgls} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@sPgls} +% Starred version. +% \begin{macrocode} +\newcommand*{\@sPgls}[2][]{\@Pgls@{hyper=false,#1}{#2}} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@Pgls} +% Unstarred version. +% \begin{macrocode} +\newcommand*{\@Pgls}[2][]{% + \new@ifnextchar[% + {\@Pgls@{#1}{#2}}% + {\@Pgls@{#1}{#2}[]}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@Pgls@} +% Read in the final optional argument: +% \begin{macrocode} +\def\@Pgls@#1#2[#3]{% + \glsdoifexists{#2}% + {% + \ifglsused{#2}% + {% + \ifglshasprefix{#2}% + {% + \Glsentryprefix{#2}% + \@gls@{#1}{#2}[#3]% + }% + {\@Gls@{#1}{#2}[#3]}% + }% + {% + \ifglshasprefixfirst{#2}% + {% + \Glsentryprefixfirst{#2}% + \@gls@{#1}{#2}[#3]% + }% + {\@Gls@{#1}{#2}[#3]}% + }% + }% +} +% \end{macrocode} +%\end{macro} +% +% Similarly for the plural version: +%\begin{macro}{\Pglspl} +% \begin{macrocode} +\newrobustcmd{\Pglspl}{\@ifstar\@sPglspl\@Pglspl} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@sPglspl} +% Starred version. +% \begin{macrocode} +\newcommand*{\@sPglspl}[2][]{\@Pglspl@{hyper=false,#1}{#2}} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@Pglspl} +% Unstarred version. +% \begin{macrocode} +\newcommand*{\@Pglspl}[2][]{% + \new@ifnextchar[% + {\@Pglspl@{#1}{#2}}% + {\@Pglspl@{#1}{#2}[]}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@Pglspl@} +% Read in the final optional argument: +% \begin{macrocode} +\def\@Pglspl@#1#2[#3]{% + \glsdoifexists{#2}% + {% + \ifglsused{#2}% + {% + \ifglshasprefixplural{#2}% + {% + \Glsentryprefixplural{#2}% + \@glspl@{#1}{#2}[#3]% + }% + {\@Glspl@{#1}{#2}[#3]}% + }% + {% + \ifglshasprefixfirstplural{#2}% + {% + \Glsentryprefixfirstplural{#2}% + \@glspl@{#1}{#2}[#3]% + }% + {\@Glspl@{#1}{#2}[#3]}% + }% + }% +} +% \end{macrocode} +%\end{macro} +% +% Finally the all upper case versions: +%\begin{macro}{\PGLS} +% \begin{macrocode} +\newrobustcmd{\PGLS}{\@ifstar\@sPGLS\@PGLS} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@sPGLS} +% Starred version. +% \begin{macrocode} +\newcommand*{\@sPGLS}[2][]{\@PGLS@{hyper=false,#1}{#2}} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@PGLS} +% Unstarred version. +% \begin{macrocode} +\newcommand*{\@PGLS}[2][]{% + \new@ifnextchar[% + {\@PGLS@{#1}{#2}}% + {\@PGLS@{#1}{#2}[]}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@PGLS@} +% Read in the final optional argument: +% \begin{macrocode} +\def\@PGLS@#1#2[#3]{% + \glsdoifexists{#2}% + {% + \ifglsused{#2}% + {% + \mfirstucMakeUppercase{\glsentryprefix{#2}}% + }% + {% + \mfirstucMakeUppercase{\glsentryprefixfirst{#2}}% + }% + \@GLS@{#1}{#2}[#3]% + }% +} +% \end{macrocode} +%\end{macro} +% +% Plural version: +%\begin{macro}{\PGLSpl} +% \begin{macrocode} +\newrobustcmd{\PGLSpl}{\@ifstar\@sPGLSpl\@PGLSpl} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@sPGLSpl} +% Starred version. +% \begin{macrocode} +\newcommand*{\@sPGLSpl}[2][]{\@PGLSpl@{hyper=false,#1}{#2}} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@PGLSpl} +% Unstarred version. +% \begin{macrocode} +\newcommand*{\@PGLSpl}[2][]{% + \new@ifnextchar[% + {\@PGLSpl@{#1}{#2}}% + {\@PGLSpl@{#1}{#2}[]}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@PGLSpl@} +% Read in the final optional argument: +% \begin{macrocode} +\def\@PGLSpl@#1#2[#3]{% + \glsdoifexists{#2}% + {% + \ifglsused{#2}% + {% + \mfirstucMakeUppercase{\glsentryprefixplural{#2}}% + }% + {% + \mfirstucMakeUppercase{\glsentryprefixfirstplural{#2}}% + }% + \@GLSpl@{#1}{#2}[#3]% + }% +} +% \end{macrocode} +%\end{macro} +%\iffalse +% \begin{macrocode} +%</glossaries-prefix.sty> +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} %<*mfirstuc.sty> % \end{macrocode} %\fi @@ -11904,7 +14285,7 @@ false,nolabel,autolabel}[nolabel]{% %\label{sec:code:mfirstuc} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{mfirstuc}[2012/05/21 v1.06 (NLCT)] +\ProvidesPackage{mfirstuc}[2013/11/04 v1.08 (NLCT)] % \end{macrocode} % Requires \sty{etoolbox}:\changes{1.06}{2012/05/21}{now requires % etoolbox} @@ -11912,8 +14293,10 @@ false,nolabel,autolabel}[nolabel]{% \RequirePackage{etoolbox} % \end{macrocode} %\begin{macro}{\makefirstuc} -% Syntax:\\ -% \cs{makefirstuc}\marg{text}\\ +% Syntax: +%\begin{definition} +% \cs{makefirstuc}\marg{text} +%\end{definition} % Makes the first letter uppercase, but will % skip initial control sequences if they are followed by a group % and make the first thing in the group uppercase, unless the group @@ -11922,11 +14305,12 @@ false,nolabel,autolabel}[nolabel]{% % \verb|\makefirstuc{\ae bc}| will produce: \AE bc, but % \verb|\makefirstuc{\emph{abc}}| will produce \emph{Abc}. % This is required by \ics{Gls} and \ics{Glspl}. +%\changes{1.08}{2013-11-04}{made robust} % \begin{macrocode} \newif\if@glscs \newtoks\@glsmfirst \newtoks\@glsmrest -\def\makefirstuc#1{% +\newrobustcmd*{\makefirstuc}[1]{% \def\gls@argi{#1}% \ifx\gls@argi\@empty % \end{macrocode} @@ -11980,10 +14364,20 @@ false,nolabel,autolabel}[nolabel]{% \fi } % \end{macrocode} +%\begin{macro}{\@gls@makefirstuc} % Make first thing upper case: % \begin{macrocode} -\def\@gls@makefirstuc#1{\MakeUppercase #1} +\def\@gls@makefirstuc#1{\mfirstucMakeUppercase #1} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\mfirstucMakeUppercase} +% Allow user to replace \cs{MakeUppercase} with another case +% changing command. +% \begin{macrocode} +\newcommand*{\mfirstucMakeUppercase}{\MakeUppercase} % \end{macrocode} +%\end{macro} %\begin{macro}{\glsmakefirstuc} %\changes{1.05}{2011/04/02}{new} % Provide a user command to make it easier to customise. @@ -12015,11 +14409,11 @@ false,nolabel,autolabel}[nolabel]{% % Capitalise each word in the argument. Words are considered to be % separated by plain spaces (i.e.\ non-breakable spaces won't be % considered a word break). +%\changes{1.08}{2013-11-04}{made robust} % \begin{macrocode} -\newcommand*{\capitalisewords}[1]{% +\newrobustcmd*{\capitalisewords}[1]{% \def\gls@add@space{}% \mfu@capitalisewords#1 \@nil\mfu@endcap - %\gls@add@space\makefirstuc{##1}\def\gls@add@space{ }% } % \end{macrocode} %\end{macro} @@ -12065,7 +14459,7 @@ false,nolabel,autolabel}[nolabel]{% %\label{sec:code:hypernav} % Package Definition: % \begin{macrocode} -\ProvidesPackage{glossary-hypernav}[2007/07/04 v1.01 (NLCT)] +\ProvidesPackage{glossary-hypernav}[2013/11/14 v4.0 (NLCT)] % \end{macrocode} % % The commands defined in this package are provided to @@ -12189,7 +14583,12 @@ false,nolabel,autolabel}[nolabel]{% }% \@for\@gls@tmp:=\@gls@list\do{% \@gls@between - \glsnavhyperlink{\@gls@tmp}{\glsgetgrouptitle{\@gls@tmp}}% +% \end{macrocode} +%\changes{3.11a}{2013-10-15}{switched to using +%\cs{@gls@getgrouptitle}} +% \begin{macrocode} + \@gls@getgrouptitle{\@gls@tmp}{\@gls@grptitle}% + \glsnavhyperlink{\@gls@tmp}{\@gls@grptitle}% \let\@gls@between\glshypernavsep% }% } @@ -12228,7 +14627,7 @@ false,nolabel,autolabel}[nolabel]{% % This defines an in-line style where the entries are % comma-separated with just the name and description displayed. % \begin{macrocode} -\ProvidesPackage{glossary-inline}[2012/09/21 v3.03 (NLCT)] +\ProvidesPackage{glossary-inline}[2013/11/14 v4.0 (NLCT)] % \end{macrocode} % %\begin{style}{inline} @@ -12237,7 +14636,7 @@ false,nolabel,autolabel}[nolabel]{% \newglossarystyle{inline}{% % \end{macrocode} % Start of glossary sets up first empty separator between entries. -% (This is then changed by \cs{glossaryentryfield}) +% (This is then changed by \cs{glossentry}) % \begin{macrocode} \renewenvironment{theglossary}% {% @@ -12258,20 +14657,31 @@ false,nolabel,autolabel}[nolabel]{% \renewcommand*{\glsgroupheading}[1]{}% % \end{macrocode} % Just display separator followed by name and description: +%\changes{3.08a}{2013-08-30}{updated inline style to use +%\cs{glossentry} and \cs{subglossentry}} % \begin{macrocode} - \renewcommand{\glossaryentryfield}[5]{% + \renewcommand{\glossentry}[2]{% \glsinlinedopostchild \gls@inlinesep - \def\glo@desc{##3}% - \def\@no@post@desc{\nopostdesc}% - \glsentryitem{##1}\glsinlinenameformat{##1}{##2}% - \ifx\glo@desc\@no@post@desc - \glsinlineemptydescformat{##4}{##5}% - \else - \ifstrempty{##3}% - {\glsinlineemptydescformat{##4}{##5}}% - {\glsinlinedescformat{##3}{##4}{##5}}% - \fi + \glsentryitem{##1}% + \glsinlinenameformat{##1}{% + \glossentryname{##1}% + }% + \ifglsdescsuppressed{##1}% + {% + \glsinlineemptydescformat + {% + \glossentrysymbol{##1}% + }% + {% + ##2% + }% + }% + {% + \ifglshasdesc{##1}% + {\glsinlinedescformat{\glossentrydesc{##1}}{\glossentrysymbol{##1}}{##2}}% + {\glsinlineemptydescformat{\glossentrysymbol{##1}}{##2}}% + }% \ifglshaschildren{##1}% {% \glsresetsubentrycounter @@ -12285,10 +14695,12 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Sub-entries display description: % \begin{macrocode} - \renewcommand{\glossarysubentryfield}[6]{% + \renewcommand{\subglossentry}[3]{% \gls@inlinesubsep% - \glsinlinesubnameformat{##2}{##3}% - \glssubentryitem{##2}\glsinlinesubdescformat{##4}{##5}{##6}% + \glsinlinesubnameformat{##2}{% + \glossentryname{##2}}% + \glssubentryitem{##2}% + \glsinlinesubdescformat{\glossentrydesc{##2}}{\glossentrysymbol{##2}}{##3}% \def\gls@inlinesubsep{\glsinlinesubseparator}% }% % \end{macrocode} @@ -12330,7 +14742,7 @@ false,nolabel,autolabel}[nolabel]{% %\end{macro} % %\begin{macro}{\glsinlinepostchild} -%\changes{}{}{new} +%\changes{3.03}{2012/09/21}{new} % Hook to use between child and next entry % \begin{macrocode} \newcommand*{\glsinlinepostchild}{} @@ -12339,14 +14751,14 @@ false,nolabel,autolabel}[nolabel]{% % %\begin{macro}{\glspostinline} % Terminator for inline glossary. -%\changes{}{}{replaced ``.'' with \cs{glspostdescription}} +%\changes{3.03}{2012/09/21}{replaced ``.'' with \cs{glspostdescription}} % \begin{macrocode} \newcommand*{\glspostinline}{\glspostdescription\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\glsinlinenameformat} -%\changes{}{}{new} +%\changes{3.03}{2012/09/21}{new} % Formats the name of the entry (first argument label, second % argument name): % \begin{macrocode} @@ -12355,7 +14767,7 @@ false,nolabel,autolabel}[nolabel]{% %\end{macro} % %\begin{macro}{\glsinlinedescformat} -%\changes{}{}{new} +%\changes{3.03}{2012/09/21}{new} % Formats the entry's description, symbol and location list: % \begin{macrocode} \newcommand*{\glsinlinedescformat}[3]{\space#1} @@ -12363,7 +14775,7 @@ false,nolabel,autolabel}[nolabel]{% %\end{macro} % %\begin{macro}{\glsinlineemptydescformat} -%\changes{}{}{new} +%\changes{3.03}{2012/09/21}{new} % Formats the entry's symbol and location list when the description % is empty: % \begin{macrocode} @@ -12372,7 +14784,7 @@ false,nolabel,autolabel}[nolabel]{% %\end{macro} % %\begin{macro}{\glsinlinesubnameformat} -%\changes{}{}{new} +%\changes{3.03}{2012/09/21}{new} % Formats the name of the subentry (first argument label, second % argument name): % \begin{macrocode} @@ -12381,7 +14793,7 @@ false,nolabel,autolabel}[nolabel]{% %\end{macro} % %\begin{macro}{\glsinlinesubdescformat} -%\changes{}{}{new} +%\changes{3.03}{2012/09/21}{new} % Formats the subentry's description, symbol and location list: % \begin{macrocode} \newcommand*{\glsinlinesubdescformat}[3]{#1} @@ -12406,7 +14818,7 @@ false,nolabel,autolabel}[nolabel]{% % \ics{item} command, it will appear in a bold font by % default. % \begin{macrocode} -\ProvidesPackage{glossary-list}[2012/11/11 v3.04 (NLCT)] +\ProvidesPackage{glossary-list}[2013/11/14 v4.0 (NLCT)] % \end{macrocode} %\begin{style}{list} % The \glostyle{list} glossary style @@ -12434,16 +14846,20 @@ false,nolabel,autolabel}[nolabel]{% \renewcommand*{\glsgroupheading}[1]{}% % \end{macrocode} % Main (level 0) entries start a new item in the list: +%\changes{3.08a}{2013-08-30}{updated list style to use +%\cs{glossentry} and \cs{subglossentry}} % \begin{macrocode} - \renewcommand*{\glossaryentryfield}[5]{% - \item[\glsentryitem{##1}\glstarget{##1}{##2}] - ##3\glspostdescription\space ##5}% + \renewcommand*{\glossentry}[2]{% + \item[\glsentryitem{##1}% + \glstarget{##1}{\glossentryname{##1}}] + \glossentrydesc{##1}\glspostdescription\space ##2}% % \end{macrocode} % Sub-entries continue on the same line: % \begin{macrocode} - \renewcommand*{\glossarysubentryfield}[6]{% + \renewcommand*{\subglossentry}[3]{% \glssubentryitem{##2}% - \glstarget{##2}{\strut}##4\glspostdescription\space ##6.}% + \glstarget{##2}{\strut}% + \glossentrydesc{##2}\glspostdescription\space ##3.}% % \end{macrocode} % Add vertical space between groups: %\changes{3.03}{2012/09/21}{added check for glsnogroupskip} @@ -12462,7 +14878,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the \glostyle{list} style: % \begin{macrocode} - \glossarystyle{list}% + \setglossarystyle{list}% % \end{macrocode} % Each group has a heading: % \begin{macrocode} @@ -12479,7 +14895,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the \glostyle{list} style: % \begin{macrocode} - \glossarystyle{list}% + \setglossarystyle{list}% % \end{macrocode} % Add navigation links at the start of the environment: % \begin{macrocode} @@ -12503,13 +14919,16 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the \glostyle{list} style: % \begin{macrocode} - \glossarystyle{list}% + \setglossarystyle{list}% % \end{macrocode} % Main (level 0) entries start a new item in the list with a % line break after the entry name: +%\changes{3.08a}{2013-08-30}{updated altlist style to use +%\cs{glossentry} and \cs{subglossentry}} % \begin{macrocode} - \renewcommand*{\glossaryentryfield}[5]{% - \item[\glsentryitem{##1}\glstarget{##1}{##2}]% + \renewcommand*{\glossentry}[2]{% + \item[\glsentryitem{##1}% + \glstarget{##1}{\glossentryname{##1}}]% % \end{macrocode} %\changes{3.04}{2012-11-11}{replaced \cs{newline} with paragraph break} % Version 3.04 changed \cs{newline} to the following paragraph break @@ -12517,14 +14936,14 @@ false,nolabel,autolabel}[nolabel]{% % a page break occurring at this point. % \begin{macrocode} \mbox{}\par\nobreak\@afterheading - ##3\glspostdescription\space ##5}% + \glossentrydesc{##1}\glspostdescription\space ##2}% % \end{macrocode} % Sub-entries start a new paragraph: % \begin{macrocode} - \renewcommand{\glossarysubentryfield}[6]{% + \renewcommand{\subglossentry}[3]{% \par \glssubentryitem{##2}% - \glstarget{##2}{\strut}##4\glspostdescription\space ##6}% + \glstarget{##2}{\strut}\glossentrydesc{##2}\glspostdescription\space ##3}% } % \end{macrocode} %\end{style} @@ -12537,7 +14956,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the \glostyle{altlist} style: % \begin{macrocode} - \glossarystyle{altlist}% + \setglossarystyle{altlist}% % \end{macrocode} % Each group has a heading: % \begin{macrocode} @@ -12554,7 +14973,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the \glostyle{altlist} style: % \begin{macrocode} - \glossarystyle{altlist}% + \setglossarystyle{altlist}% % \end{macrocode} % Add navigation links at the start of the environment: % \begin{macrocode} @@ -12581,22 +15000,25 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the \glostyle{list} style: % \begin{macrocode} - \glossarystyle{list}% + \setglossarystyle{list}% % \end{macrocode} % Each main (level 0) entry starts a new item: +%\changes{3.08a}{2013-08-30}{updated listdotted style to use +%\cs{glossentry} and \cs{subglossentry}} % \begin{macrocode} - \renewcommand*{\glossaryentryfield}[5]{% + \renewcommand*{\glossentry}[2]{% \item[]\makebox[\glslistdottedwidth][l]{% - \glsentryitem{##1}\glstarget{##1}{##2}% - \unskip\leaders\hbox to 2.9mm{\hss.}\hfill\strut}##3}% + \glsentryitem{##1}% + \glstarget{##1}{\glossentryname{##1}}% + \unskip\leaders\hbox to 2.9mm{\hss.}\hfill\strut}\glossentrydesc{##1}}% % \end{macrocode} % Sub entries have the same format as main entries: % \begin{macrocode} - \renewcommand*{\glossarysubentryfield}[6]{% + \renewcommand*{\subglossentry}[3]{% \item[]\makebox[\glslistdottedwidth][l]{% \glssubentryitem{##2}% - \glstarget{##2}{##3}% - \unskip\leaders\hbox to 2.9mm{\hss.}\hfill\strut}##4}% + \glstarget{##2}{\glossentryname{##2}}% + \unskip\leaders\hbox to 2.9mm{\hss.}\hfill\strut}\glossentrydesc{##2}}% } % \end{macrocode} %\end{style} @@ -12616,12 +15038,12 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the \glostyle{listdotted} style: % \begin{macrocode} - \glossarystyle{listdotted}% + \setglossarystyle{listdotted}% % \end{macrocode} % Main (level 0) entries just display the name: % \begin{macrocode} - \renewcommand*{\glossaryentryfield}[5]{% - \item[\glsentryitem{##1}\glstarget{##1}{##2}]}% + \renewcommand*{\glossentry}[2]{% + \item[\glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}}]}% } % \end{macrocode} %\end{style} @@ -12640,7 +15062,7 @@ false,nolabel,autolabel}[nolabel]{% % The glossary styles defined in the \isty{glossary-long} package % used the \env{longtable} environment in the glossary. % \begin{macrocode} -\ProvidesPackage{glossary-long}[2012/09/21 v3.03 (NLCT)] +\ProvidesPackage{glossary-long}[2013/11/14 v4.0 (NLCT)] % \end{macrocode} % Requires the \isty{longtable} package: % \begin{macrocode} @@ -12693,21 +15115,30 @@ false,nolabel,autolabel}[nolabel]{% \renewcommand*{\glsgroupheading}[1]{}% % \end{macrocode} % Main (level 0) entries displayed in a row: +%\changes{3.08a}{2013-09-28}{updated to use \cs{glossentry} and +%\cs{subglossentry}} +%\changes{3.13a}{2013-11-05}{switched to \cs{tabularnewline}} % \begin{macrocode} - \renewcommand*{\glossaryentryfield}[5]{% - \glsentryitem{##1}\glstarget{##1}{##2} & ##3\glspostdescription\space ##5\\}% + \renewcommand{\glossentry}[2]{% + \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} & + \glossentrydesc{##1}\glspostdescription\space ##2\tabularnewline + }% % \end{macrocode} % Sub entries displayed on the following row without the name: % \begin{macrocode} - \renewcommand*{\glossarysubentryfield}[6]{% - & + \renewcommand{\subglossentry}[3]{% + & \glssubentryitem{##2}% - \glstarget{##2}{\strut}##4\glspostdescription\space ##6\\}% + \glstarget{##2}{\strut}\glosentrydesc{##2}\glspostdescription\space + ##3\tabularnewline + }% % \end{macrocode} % Blank row between groups: %\changes{3.03}{2012/09/21}{added check for glsnogroupskip} +%\changes{3.13a}{2013-11-05}{switched to \cs{tabularnewline}} % \begin{macrocode} - \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else & \\\fi}% + \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else & +\tabularnewline\fi}% } % \end{macrocode} %\end{style} @@ -12720,7 +15151,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{long} style: % \begin{macrocode} - \glossarystyle{long}% + \setglossarystyle{long}% % \end{macrocode} % Use \env{longtable} with two columns with vertical lines % between each column: @@ -12743,12 +15174,13 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{long} style: % \begin{macrocode} - \glossarystyle{long}% + \setglossarystyle{long}% % \end{macrocode} % Set the table's header: +%\changes{3.13a}{2013-11-05}{switched to \cs{tabularnewline}} % \begin{macrocode} \renewcommand*{\glossaryheader}{% - \bfseries \entryname & \bfseries \descriptionname\\\endhead}% + \bfseries \entryname & \bfseries \descriptionname\tabularnewline\endhead}% } % \end{macrocode} %\end{style} @@ -12761,12 +15193,14 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{longborder} style: % \begin{macrocode} - \glossarystyle{longborder}% + \setglossarystyle{longborder}% % \end{macrocode} % Set the table's header and add horizontal line to table's foot: +%\changes{3.13a}{2013-11-05}{switched to \cs{tabularnewline}} % \begin{macrocode} \renewcommand*{\glossaryheader}{% - \hline\bfseries \entryname & \bfseries \descriptionname\\\hline + \hline\bfseries \entryname & \bfseries + \descriptionname\tabularnewline\hline \endhead \hline\endfoot}% } @@ -12794,22 +15228,28 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Main (level 0) entries on a row (name in first column, % description in second column, page list in last column): +%\changes{3.13a}{2013-11-05}{switched to \cs{tabularnewline}} % \begin{macrocode} - \renewcommand*{\glossaryentryfield}[5]{% - \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##5\\}% + \renewcommand{\glossentry}[2]{% + \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} & + \glossentrydesc{##1} & ##2\tabularnewline + }% % \end{macrocode} % Sub-entries on a separate row (no name, description in % second column, page list in third column): % \begin{macrocode} - \renewcommand*{\glossarysubentryfield}[6]{% + \renewcommand{\subglossentry}[3]{% & \glssubentryitem{##2}% - \glstarget{##2}{\strut}##4 & ##6\\}% + \glstarget{##2}{\strut}\glossentrydesc{##2} & + ##3\tabularnewline + }% % \end{macrocode} % Blank row between groups: %\changes{3.03}{2012/09/21}{added check for glsnogroupskip} % \begin{macrocode} - \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else & &\\\fi}% + \renewcommand*{\glsgroupskip}{% + \ifglsnogroupskip\else & &\tabularnewline\fi}% } % \end{macrocode} %\end{style} @@ -12822,7 +15262,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{long3col} style: % \begin{macrocode} - \glossarystyle{long3col}% + \setglossarystyle{long3col}% % \end{macrocode} % Use a \env{longtable} with 3 columns with vertical lines % around them: @@ -12845,13 +15285,14 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{long3col} style: % \begin{macrocode} - \glossarystyle{long3col}% + \setglossarystyle{long3col}% % \end{macrocode} % Set the table's header: +%\changes{3.13a}{2013-11-05}{switched to \cs{tabularnewline}} % \begin{macrocode} \renewcommand*{\glossaryheader}{% \bfseries\entryname&\bfseries\descriptionname& - \bfseries\pagelistname\\\endhead}% + \bfseries\pagelistname\tabularnewline\endhead}% } % \end{macrocode} %\end{style} @@ -12863,14 +15304,15 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{long3colborder} style: % \begin{macrocode} - \glossarystyle{long3colborder}% + \setglossarystyle{long3colborder}% % \end{macrocode} % Set the table's header and add horizontal line at table's foot: +%\changes{3.13a}{2013-11-05}{switched to \cs{tabularnewline}} % \begin{macrocode} \renewcommand*{\glossaryheader}{% \hline \bfseries\entryname&\bfseries\descriptionname& - \bfseries\pagelistname\\\hline\endhead + \bfseries\pagelistname\tabularnewline\hline\endhead \hline\endfoot}% } % \end{macrocode} @@ -12899,22 +15341,30 @@ false,nolabel,autolabel}[nolabel]{% % Main (level 0) entries on a single row (name in first column, % description in second column, symbol in third column, page list % in last column): +%\changes{3.13a}{2013-11-05}{switched to \cs{tabularnewline}} % \begin{macrocode} - \renewcommand*{\glossaryentryfield}[5]{% - \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##4 & ##5\\}% + \renewcommand{\glossentry}[2]{% + \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} & + \glossentrydesc{##1} & + \glossentrysymbol{##1} & + ##2\tabularnewline + }% % \end{macrocode} % Sub entries on a single row with no name (description in second % column, symbol in third column, page list in last column): % \begin{macrocode} - \renewcommand*{\glossarysubentryfield}[6]{% + \renewcommand{\subglossentry}[3]{% & \glssubentryitem{##2}% - \glstarget{##2}{\strut}##4 & ##5 & ##6\\}% + \glstarget{##2}{\strut}\glossentrydesc{##2} & + \glossentrysymbol{##2} & ##3\tabularnewline + }% % \end{macrocode} % Blank row between groups: %\changes{3.03}{2012/09/21}{added check for glsnogroupskip} % \begin{macrocode} - \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else & & &\\\fi}% + \renewcommand*{\glsgroupskip}{% + \ifglsnogroupskip\else & & &\tabularnewline\fi}% } % \end{macrocode} %\end{style} @@ -12927,14 +15377,15 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{long4col} style: % \begin{macrocode} - \glossarystyle{long4col}% + \setglossarystyle{long4col}% % \end{macrocode} % Table has a header: +%\changes{3.13a}{2013-11-05}{switched to \cs{tabularnewline}} % \begin{macrocode} \renewcommand*{\glossaryheader}{% \bfseries\entryname&\bfseries\descriptionname& \bfseries \symbolname& - \bfseries\pagelistname\\\endhead}% + \bfseries\pagelistname\tabularnewline\endhead}% } % \end{macrocode} %\end{style} @@ -12947,7 +15398,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{long4col} style: % \begin{macrocode} - \glossarystyle{long4col}% + \setglossarystyle{long4col}% % \end{macrocode} % Use a \env{longtable} with 4 columns surrounded by vertical % lines: @@ -12971,7 +15422,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{long4col} style: % \begin{macrocode} - \glossarystyle{long4col}% + \setglossarystyle{long4col}% % \end{macrocode} % Use a \env{longtable} with 4 columns surrounded by vertical % lines: @@ -12985,7 +15436,8 @@ false,nolabel,autolabel}[nolabel]{% \renewcommand*{\glossaryheader}{% \hline\bfseries\entryname&\bfseries\descriptionname& \bfseries \symbolname& - \bfseries\pagelistname\\\hline\endhead\hline\endfoot}% + \bfseries\pagelistname\tabularnewline\hline\endhead + \hline\endfoot}% } % \end{macrocode} %\end{style} @@ -12998,7 +15450,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{long4col} style: % \begin{macrocode} - \glossarystyle{long4col}% + \setglossarystyle{long4col}% % \end{macrocode} % Use a \env{longtable} with 4 columns where the second and % last columns may have multiple lines in each row: @@ -13018,7 +15470,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{long4colheader} style: % \begin{macrocode} - \glossarystyle{long4colheader}% + \setglossarystyle{long4colheader}% % \end{macrocode} % Use a \env{longtable} with 4 columns where the second and % last columns may have multiple lines in each row: @@ -13038,7 +15490,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{long4colborder} style: % \begin{macrocode} - \glossarystyle{long4colborder}% + \setglossarystyle{long4colborder}% % \end{macrocode} % Use a \env{longtable} with 4 columns where the second and % last columns may have multiple lines in each row: @@ -13058,7 +15510,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{long4colheaderborder} style: % \begin{macrocode} - \glossarystyle{long4colheaderborder}% + \setglossarystyle{long4colheaderborder}% % \end{macrocode} % Use a \env{longtable} with 4 columns where the second and % last columns may have multiple lines in each row: @@ -13085,7 +15537,7 @@ false,nolabel,autolabel}[nolabel]{% % used the \env{longtable} environment in the glossary and use % ragged right formatting for the multiline columns. % \begin{macrocode} -\ProvidesPackage{glossary-longragged}[2012/09/21 v3.03 (NLCT)] +\ProvidesPackage{glossary-longragged}[2013/11/14 v4.0 (NLCT)] % \end{macrocode} % Requires the \isty{array} package: % \begin{macrocode} @@ -13139,18 +15591,24 @@ false,nolabel,autolabel}[nolabel]{% \renewcommand*{\glsgroupheading}[1]{}% % \end{macrocode} % Main (level 0) entries displayed in a row: +%\changes{3.08a}{2013-09-28}{updated to use \cs{glossentry} and +%\cs{subglossentry}} % \begin{macrocode} - \renewcommand*{\glossaryentryfield}[5]{% - \glsentryitem{##1}\glstarget{##1}{##2} & ##3\glspostdescription\space ##5% - \tabularnewline}% + \renewcommand{\glossentry}[2]{% + \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} & + \glossentrydesc{##1}\glspostdescription\space ##2% + \tabularnewline + }% % \end{macrocode} % Sub entries displayed on the following row without the name: % \begin{macrocode} - \renewcommand*{\glossarysubentryfield}[6]{% - & + \renewcommand{\subglossentry}[3]{% + & \glssubentryitem{##2}% - \glstarget{##2}{\strut}##4\glspostdescription\space ##6% - \tabularnewline}% + \glstarget{##2}{\strut}\glossentrydesc{##2}% + \glspostdescription\space ##3% + \tabularnewline + }% % \end{macrocode} % Blank row between groups: %\changes{3.03}{2012/09/21}{added check for glsnogroupskip} @@ -13168,7 +15626,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{longragged} style: % \begin{macrocode} - \glossarystyle{longragged}% + \setglossarystyle{longragged}% % \end{macrocode} % Use \env{longtable} with two columns with vertical lines % between each column: @@ -13192,7 +15650,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{longragged} style: % \begin{macrocode} - \glossarystyle{longragged}% + \setglossarystyle{longragged}% % \end{macrocode} % Set the table's header: % \begin{macrocode} @@ -13211,7 +15669,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{longraggedborder} style: % \begin{macrocode} - \glossarystyle{longraggedborder}% + \setglossarystyle{longraggedborder}% % \end{macrocode} % Set the table's header and add horizontal line to table's foot: % \begin{macrocode} @@ -13246,22 +15704,29 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Main (level 0) entries on a row (name in first column, % description in second column, page list in last column): +%\changes{3.08a}{2013-09-28}{updated to use \cs{glossentry} and +%\cs{subglossentry}} % \begin{macrocode} - \renewcommand*{\glossaryentryfield}[5]{% - \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##5\tabularnewline}% + \renewcommand{\glossentry}[2]{% + \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} & + \glossentrydesc{##1} & ##2\tabularnewline + }% % \end{macrocode} % Sub-entries on a separate row (no name, description in % second column, page list in third column): % \begin{macrocode} - \renewcommand*{\glossarysubentryfield}[6]{% + \renewcommand{\subglossentry}[3]{% & \glssubentryitem{##2}% - \glstarget{##2}{\strut}##4 & ##6\tabularnewline}% + \glstarget{##2}{\strut}\glossentrydesc{##2} & + ##3\tabularnewline + }% % \end{macrocode} % Blank row between groups: %\changes{3.03}{2012/09/21}{added check for glsnogroupskip} % \begin{macrocode} - \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else & &\tabularnewline\fi}% + \renewcommand*{\glsgroupskip}{% + \ifglsnogroupskip\else & &\tabularnewline\fi}% } % \end{macrocode} %\end{style} @@ -13274,7 +15739,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{longragged3col} style: % \begin{macrocode} - \glossarystyle{longragged3col}% + \setglossarystyle{longragged3col}% % \end{macrocode} % Use a \env{longtable} with 3 columns with vertical lines % around them: @@ -13298,7 +15763,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{longragged3col} style: % \begin{macrocode} - \glossarystyle{longragged3col}% + \setglossarystyle{longragged3col}% % \end{macrocode} % Set the table's header: % \begin{macrocode} @@ -13316,7 +15781,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{longragged3colborder} style: % \begin{macrocode} - \glossarystyle{longragged3colborder}% + \setglossarystyle{longragged3colborder}% % \end{macrocode} % Set the table's header and add horizontal line at table's foot: % \begin{macrocode} @@ -13356,22 +15821,30 @@ false,nolabel,autolabel}[nolabel]{% % Main (level 0) entries on a single row (name in first column, % description in second column, symbol in third column, page list % in last column): +%\changes{3.08a}{2013-09-28}{updated to use \cs{glossentry} and +%\cs{subglossentry}} % \begin{macrocode} - \renewcommand*{\glossaryentryfield}[5]{% - \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##4 & ##5\tabularnewline}% + \renewcommand{\glossentry}[2]{% + \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} & + \glossentrydesc{##1} & \glossentrydesc{##1} & + ##2\tabularnewline + }% % \end{macrocode} % Sub entries on a single row with no name (description in second % column, symbol in third column, page list in last column): % \begin{macrocode} - \renewcommand*{\glossarysubentryfield}[6]{% + \renewcommand{\subglossentry}[3]{% & \glssubentryitem{##2}% - \glstarget{##2}{\strut}##4 & ##5 & ##6\tabularnewline}% + \glstarget{##2}{\strut}\glossentrydesc{##2} & + \glossentrysymbol{##2} & ##3\tabularnewline + }% % \end{macrocode} % Blank row between groups: %\changes{3.03}{2012/09/21}{added check for glsnogroupskip} % \begin{macrocode} - \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else & & &\tabularnewline\fi}% + \renewcommand*{\glsgroupskip}{% + \ifglsnogroupskip\else & & &\tabularnewline\fi}% } % \end{macrocode} %\end{style} @@ -13384,7 +15857,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{altlongragged4col} style: % \begin{macrocode} - \glossarystyle{altlongragged4col}% + \setglossarystyle{altlongragged4col}% % \end{macrocode} % Use a \env{longtable} with 4 columns where the second and % last columns may have multiple lines in each row: @@ -13412,7 +15885,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{altlongragged4col} style: % \begin{macrocode} - \glossarystyle{altlongragged4col}% + \setglossarystyle{altlongragged4col}% % \end{macrocode} % Use a \env{longtable} with 4 columns where the second and % last columns may have multiple lines in each row: @@ -13437,7 +15910,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{altlongragged4col} style: % \begin{macrocode} - \glossarystyle{altlongragged4col}% + \setglossarystyle{altlongragged4col}% % \end{macrocode} % Use a \env{longtable} with 4 columns where the second and % last columns may have multiple lines in each row: @@ -13473,7 +15946,7 @@ false,nolabel,autolabel}[nolabel]{% %use the \sty{multicol} package. These use the tree-like glossary %styles in a multicol environment. % \begin{macrocode} -\ProvidesPackage{glossary-mcols}[2013/04/21 v3.05 (NLCT)] +\ProvidesPackage{glossary-mcols}[2013/11/14 v4.0 (NLCT)] % \end{macrocode} % Required packages: % \begin{macrocode} @@ -13496,7 +15969,7 @@ false,nolabel,autolabel}[nolabel]{% % the glossary style.) % \begin{macrocode} \newglossarystyle{mcolindex}{% - \glossarystyle{index}% + \setglossarystyle{index}% \renewenvironment{theglossary}% {% % \end{macrocode} @@ -13515,7 +15988,7 @@ false,nolabel,autolabel}[nolabel]{% % As \glostyle{mcolindex} but has headings: % \begin{macrocode} \newglossarystyle{mcolindexgroup}{% - \glossarystyle{mcolindex}% + \setglossarystyle{mcolindex}% \renewcommand*{\glsgroupheading}[1]{% \item\textbf{\glsgetgrouptitle{##1}}\indexspace}% } @@ -13530,7 +16003,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{mcolindex} style: % \begin{macrocode} - \glossarystyle{mcolindex}% + \setglossarystyle{mcolindex}% % \end{macrocode} % Put navigation links to the groups at the start of the glossary: % \begin{macrocode} @@ -13552,7 +16025,7 @@ false,nolabel,autolabel}[nolabel]{% % glossary in multiple columns. % \begin{macrocode} \newglossarystyle{mcoltree}{% - \glossarystyle{tree}% + \setglossarystyle{tree}% \renewenvironment{theglossary}% {% % \end{macrocode} @@ -13575,7 +16048,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{mcoltree} style: % \begin{macrocode} - \glossarystyle{mcoltree}% + \setglossarystyle{mcoltree}% % \end{macrocode} % Each group has a heading (in bold) followed by a vertical gap): % \begin{macrocode} @@ -13595,7 +16068,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{mcoltree} style: % \begin{macrocode} - \glossarystyle{mcoltree}% + \setglossarystyle{mcoltree}% % \end{macrocode} % Put navigation links to the groups at the start of the % \env{theglossary} environment: @@ -13619,7 +16092,7 @@ false,nolabel,autolabel}[nolabel]{% % glossary in multiple columns. % \begin{macrocode} \newglossarystyle{mcoltreenoname}{% - \glossarystyle{treenoname}% + \setglossarystyle{treenoname}% \renewenvironment{theglossary}% {% % \end{macrocode} @@ -13642,7 +16115,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{mcoltreenoname} style: % \begin{macrocode} - \glossarystyle{mcoltreenoname}% + \setglossarystyle{mcoltreenoname}% % \end{macrocode} % Give each group a heading: % \begin{macrocode} @@ -13662,7 +16135,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{mcoltreenoname} style: % \begin{macrocode} - \glossarystyle{mcoltreenoname}% + \setglossarystyle{mcoltreenoname}% % \end{macrocode} % Put navigation links to the groups at the start of the % \env{theglossary} environment: @@ -13686,7 +16159,7 @@ false,nolabel,autolabel}[nolabel]{% % glossary in multiple columns. % \begin{macrocode} \newglossarystyle{mcolalttree}{% - \glossarystyle{alttree}% + \setglossarystyle{alttree}% \renewenvironment{theglossary}% {% % \end{macrocode} @@ -13709,7 +16182,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{mcolalttree} style: % \begin{macrocode} - \glossarystyle{mcolalttree}% + \setglossarystyle{mcolalttree}% % \end{macrocode} % Give each group a heading. % \begin{macrocode} @@ -13731,7 +16204,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{mcolalttree} style: % \begin{macrocode} - \glossarystyle{mcolalttree}% + \setglossarystyle{mcolalttree}% % \end{macrocode} % Put the navigation links in the header % \begin{macrocode} @@ -13769,7 +16242,7 @@ false,nolabel,autolabel}[nolabel]{% % The glossary styles defined in the \isty{glossary-super} package % use the \env{supertabular} environment. % \begin{macrocode} -\ProvidesPackage{glossary-super}[2012/09/21 v3.03 (NLCT)] +\ProvidesPackage{glossary-super}[2013/11/14 v4.0 (NLCT)] % \end{macrocode} % Requires the \isty{supertabular} package: % \begin{macrocode} @@ -13826,22 +16299,28 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Main (level 0) entries put in a row (name in first column, % description and page list in second column): +%\changes{3.13a}{2013-11-05}{switched to \cs{tabularnewline}} % \begin{macrocode} - \renewcommand*{\glossaryentryfield}[5]{% - \glsentryitem{##1}\glstarget{##1}{##2} & ##3\glspostdescription\space ##5\\}% + \renewcommand{\glossentry}[2]{% + \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} & + \glossentrydesc{##1}\glspostdescription\space ##2\tabularnewline + }% % \end{macrocode} % Sub entries put in a row (no name, description and page list % in second column): % \begin{macrocode} - \renewcommand*{\glossarysubentryfield}[6]{% + \renewcommand{\subglossentry}[3]{% & \glssubentryitem{##2}% - \glstarget{##2}{\strut}##4\glspostdescription\space ##6\\}% + \glstarget{##2}{\strut}\glosentrydesc{##2}\glspostdescription\space + ##3\tabularnewline + }% % \end{macrocode} % Blank row between groups: %\changes{3.03}{2012/09/21}{added check for glsnogroupskip} % \begin{macrocode} - \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else & \\\fi}% + \renewcommand*{\glsgroupskip}{% + \ifglsnogroupskip\else & \tabularnewline\fi}% } % \end{macrocode} %\end{style} @@ -13854,7 +16333,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{super} style: % \begin{macrocode} - \glossarystyle{super}% + \setglossarystyle{super}% % \end{macrocode} % Put the glossary in a \env{supertabular} environment with % two columns and a horizontal line in the head and tail: @@ -13875,13 +16354,15 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{super} style: % \begin{macrocode} - \glossarystyle{super}% + \setglossarystyle{super}% % \end{macrocode} % Put the glossary in a \env{supertabular} environment with % two columns, a header and no tail: +%\changes{3.13a}{2013-11-05}{switched to \cs{tabularnewline}} % \begin{macrocode} \renewenvironment{theglossary}% - {\tablehead{\bfseries \entryname & \bfseries \descriptionname\\}% + {\tablehead{\bfseries \entryname & + \bfseries\descriptionname\tabularnewline}% \tabletail{}% \begin{supertabular}{lp{\glsdescwidth}}}% {\end{supertabular}}% @@ -13897,15 +16378,16 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{super} style: % \begin{macrocode} - \glossarystyle{super}% + \setglossarystyle{super}% % \end{macrocode} % Put the glossary in a \env{supertabular} environment with % two columns, a header and horizontal lines above and below the % table: +%\changes{3.13a}{2013-11-05}{switched to \cs{tabularnewline}} % \begin{macrocode} \renewenvironment{theglossary}% {\tablehead{\hline\bfseries \entryname & - \bfseries \descriptionname\\\hline}% + \bfseries \descriptionname\tabularnewline\hline}% \tabletail{\hline} \begin{supertabular}{|l|p{\glsdescwidth}|}}% {\end{supertabular}}% @@ -13937,22 +16419,28 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Main (level 0) entries on a row (name in first column, % description in second column, page list in last column): +%\changes{3.13a}{2013-11-05}{switched to \cs{tabularnewline}} % \begin{macrocode} - \renewcommand*{\glossaryentryfield}[5]{% - \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##5\\}% + \renewcommand{\glossentry}[2]{% + \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} & + \glossentrydesc{##1} & ##2\tabularnewline + }% % \end{macrocode} % Sub entries on a row (no name, description in second column, % page list in last column): % \begin{macrocode} - \renewcommand*{\glossarysubentryfield}[6]{% + \renewcommand{\subglossentry}[3]{% & \glssubentryitem{##2}% - \glstarget{##2}{\strut}##4 & ##6\\}% + \glstarget{##2}{\strut}\glossentrydesc{##2} & + ##3\tabularnewline + }% % \end{macrocode} % Blank row between groups: %\changes{3.03}{2012/09/21}{added check for glsnogroupskip} % \begin{macrocode} - \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else & &\\\fi}% + \renewcommand*{\glsgroupskip}{% + \ifglsnogroupskip\else & &\tabularnewline\fi}% } % \end{macrocode} %\end{style} @@ -13965,7 +16453,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{super3col} style: % \begin{macrocode} - \glossarystyle{super3col}% + \setglossarystyle{super3col}% % \end{macrocode} % Put the glossary in a \env{supertabular} environment with % three columns and a horizontal line in the head and tail: @@ -13986,14 +16474,15 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{super3col} style: % \begin{macrocode} - \glossarystyle{super3col}% + \setglossarystyle{super3col}% % \end{macrocode} % Put the glossary in a \env{supertabular} environment with % three columns, a header and no tail: +%\changes{3.13a}{2013-11-05}{switched to \cs{tabularnewline}} % \begin{macrocode} \renewenvironment{theglossary}% {\tablehead{\bfseries\entryname&\bfseries\descriptionname& - \bfseries\pagelistname\\}\tabletail{}% + \bfseries\pagelistname\tabularnewline}\tabletail{}% \begin{supertabular}{lp{\glsdescwidth}p{\glspagelistwidth}}}% {\end{supertabular}}% } @@ -14008,7 +16497,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{super3colborder} style: % \begin{macrocode} - \glossarystyle{super3colborder}% + \setglossarystyle{super3colborder}% % \end{macrocode} % Put the glossary in a \env{supertabular} environment with % three columns, a header with horizontal lines and a horizontal @@ -14017,7 +16506,7 @@ false,nolabel,autolabel}[nolabel]{% \renewenvironment{theglossary}% {\tablehead{\hline \bfseries\entryname&\bfseries\descriptionname& - \bfseries\pagelistname\\\hline}% + \bfseries\pagelistname\tabularnewline\hline}% \tabletail{\hline}% \begin{supertabular}{|l|p{\glsdescwidth}|p{\glspagelistwidth}|}}% {\end{supertabular}}% @@ -14052,22 +16541,29 @@ false,nolabel,autolabel}[nolabel]{% % Main (level 0) entries on a row with the name in the first % column, description in second column, symbol in third column % and page list in last column: +%\changes{3.13a}{2013-11-05}{switched to \cs{tabularnewline}} % \begin{macrocode} - \renewcommand*{\glossaryentryfield}[5]{% - \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##4 & ##5\\}% + \renewcommand{\glossentry}[2]{% + \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} & + \glossentrydesc{##1} & + \glossentrysymbol{##1} & ##3\tabularnewline + }% % \end{macrocode} % Sub entries on a row with no name, the description in the second % column, symbol in third column and page list in last column: % \begin{macrocode} - \renewcommand*{\glossarysubentryfield}[6]{% + \renewcommand{\subglossentry}[3]{% & \glssubentryitem{##2}% - \glstarget{##2}{\strut}##4 & ##5 & ##6\\}% + \glstarget{##2}{\strut}\glossentrydesc{##2} & + \glossentrysymbol{##2} & ##3\tabularnewline + }% % \end{macrocode} % Blank row between groups: %\changes{3.03}{2012/09/21}{added check for glsnogroupskip} % \begin{macrocode} - \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else & & &\\\fi}% + \renewcommand*{\glsgroupskip}{% + \ifglsnogroupskip\else & & &\tabularnewline\fi}% } % \end{macrocode} %\end{style} @@ -14080,15 +16576,16 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{super4col} style: % \begin{macrocode} - \glossarystyle{super4col}% + \setglossarystyle{super4col}% % \end{macrocode} % Put the glossary in a \env{supertabular} environment with % four columns, a header and no tail: +%\changes{3.13a}{2013-11-05}{switched to \cs{tabularnewline}} % \begin{macrocode} \renewenvironment{theglossary}% {\tablehead{\bfseries\entryname&\bfseries\descriptionname& \bfseries\symbolname & - \bfseries\pagelistname\\}% + \bfseries\pagelistname\tabularnewline}% \tabletail{}% \begin{supertabular}{llll}}% {\end{supertabular}}% @@ -14104,7 +16601,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{super4col} style: % \begin{macrocode} - \glossarystyle{super4col}% + \setglossarystyle{super4col}% % \end{macrocode} % Put the glossary in a \env{supertabular} environment with % four columns and a horizontal line in the head and tail: @@ -14125,16 +16622,18 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{super4col} style: % \begin{macrocode} - \glossarystyle{super4col}% + \setglossarystyle{super4col}% % \end{macrocode} % Put the glossary in a \env{supertabular} environment with % four columns and a header bordered by horizontal lines and % a horizontal line in the tail: +%\changes{3.13a}{2013-11-05}{switched to \cs{tabularnewline}} % \begin{macrocode} \renewenvironment{theglossary}% {\tablehead{\hline\bfseries\entryname&\bfseries\descriptionname& \bfseries\symbolname & - \bfseries\pagelistname\\\hline}\tabletail{\hline}% + \bfseries\pagelistname\tabularnewline\hline}% + \tabletail{\hline}% \begin{supertabular}{|l|l|l|l|}}% {\end{supertabular}}% } @@ -14149,7 +16648,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{super4col} style: % \begin{macrocode} - \glossarystyle{super4col}% + \setglossarystyle{super4col}% % \end{macrocode} % Put the glossary in a \env{supertabular} environment with % four columns and no head or tail: @@ -14170,15 +16669,16 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{super4colheader} style: % \begin{macrocode} - \glossarystyle{super4colheader}% + \setglossarystyle{super4colheader}% % \end{macrocode} % Put the glossary in a \env{supertabular} environment with % four columns, a header and no tail: +%\changes{3.13a}{2013-11-05}{switched to \cs{tabularnewline}} % \begin{macrocode} \renewenvironment{theglossary}% {\tablehead{\bfseries\entryname&\bfseries\descriptionname& \bfseries\symbolname & - \bfseries\pagelistname\\}\tabletail{}% + \bfseries\pagelistname\tabularnewline}\tabletail{}% \begin{supertabular}{lp{\glsdescwidth}lp{\glspagelistwidth}}}% {\end{supertabular}}% } @@ -14193,7 +16693,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{super4colborder} style: % \begin{macrocode} - \glossarystyle{super4colborder}% + \setglossarystyle{super4colborder}% % \end{macrocode} % Put the glossary in a \env{supertabular} environment with % four columns and a horizontal line in the head and tail: @@ -14215,18 +16715,19 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{super4colheaderborder} style: % \begin{macrocode} - \glossarystyle{super4colheaderborder}% + \setglossarystyle{super4colheaderborder}% % \end{macrocode} % Put the glossary in a \env{supertabular} environment with % four columns and a header bordered by horizontal lines and % a horizontal line in the tail: +%\changes{3.13a}{2013-11-05}{switched to \cs{tabularnewline}} % \begin{macrocode} \renewenvironment{theglossary}% {\tablehead{\hline \bfseries\entryname & \bfseries\descriptionname & \bfseries\symbolname & - \bfseries\pagelistname\\\hline}% + \bfseries\pagelistname\tabularnewline\hline}% \tabletail{\hline}% \begin{supertabular}% {|l|p{\glsdescwidth}|l|p{\glspagelistwidth}|}}% @@ -14250,7 +16751,7 @@ false,nolabel,autolabel}[nolabel]{% % are like those provided by the \isty{glossary-super} package, % except that the multiline columns have ragged right justification. % \begin{macrocode} -\ProvidesPackage{glossary-superragged}[2012/09/21 v3.03 (NLCT)] +\ProvidesPackage{glossary-superragged}[2013/11/14 v4.0 (NLCT)] % \end{macrocode} % Requires the \isty{array} package: % \begin{macrocode} @@ -14306,19 +16807,25 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Main (level 0) entries put in a row (name in first column, % description and page list in second column): +%\changes{3.08a}{2013-09-28}{updated to use \cs{glossentry} and +%\cs{subglossentry}} % \begin{macrocode} - \renewcommand*{\glossaryentryfield}[5]{% - \glsentryitem{##1}\glstarget{##1}{##2} & ##3\glspostdescription\space ##5% - \tabularnewline}% + \renewcommand{\glossentry}[2]{% + \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} & + \glossentrydesc{##1}\glspostdescription\space ##2% + \tabularnewline + }% % \end{macrocode} % Sub entries put in a row (no name, description and page list % in second column): % \begin{macrocode} - \renewcommand*{\glossarysubentryfield}[6]{% + \renewcommand{\subglossentry}[3]{% & \glssubentryitem{##2}% - \glstarget{##2}{\strut}##4\glspostdescription\space ##6% - \tabularnewline}% + \glstarget{##2}{\strut}\glossentrydesc{##2}\glspostdescription\space + ##3% + \tabularnewline + }% % \end{macrocode} % Blank row between groups: %\changes{3.03}{2012/09/21}{added check for glsnogroupskip} @@ -14336,7 +16843,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{superragged} style: % \begin{macrocode} - \glossarystyle{superragged}% + \setglossarystyle{superragged}% % \end{macrocode} % Put the glossary in a \env{supertabular} environment with % two columns and a horizontal line in the head and tail: @@ -14357,7 +16864,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{superragged} style: % \begin{macrocode} - \glossarystyle{superragged}% + \setglossarystyle{superragged}% % \end{macrocode} % Put the glossary in a \env{supertabular} environment with % two columns, a header and no tail: @@ -14380,7 +16887,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{super} style: % \begin{macrocode} - \glossarystyle{superragged}% + \setglossarystyle{superragged}% % \end{macrocode} % Put the glossary in a \env{supertabular} environment with % two columns, a header and horizontal lines above and below the @@ -14422,16 +16929,21 @@ false,nolabel,autolabel}[nolabel]{% % Main (level 0) entries on a row (name in first column, % description in second column, page list in last column): % \begin{macrocode} - \renewcommand*{\glossaryentryfield}[5]{% - \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##5\tabularnewline}% + \renewcommand{\glossentry}[2]{% + \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} & + \glossentrydesc{##1} & + ##2\tabularnewline + }% % \end{macrocode} % Sub entries on a row (no name, description in second column, % page list in last column): % \begin{macrocode} - \renewcommand*{\glossarysubentryfield}[6]{% + \renewcommand{\subglossentry}[3]{% & \glssubentryitem{##2}% - \glstarget{##2}{\strut}##4 & ##6\tabularnewline}% + \glstarget{##2}{\strut}\glossentrydesc{##2} & + ##3\tabularnewline + }% % \end{macrocode} % Blank row between groups: %\changes{3.03}{2012/09/21}{added check for glsnogroupskip} @@ -14449,7 +16961,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{superragged3col} style: % \begin{macrocode} - \glossarystyle{superragged3col}% + \setglossarystyle{superragged3col}% % \end{macrocode} % Put the glossary in a \env{supertabular} environment with % three columns and a horizontal line in the head and tail: @@ -14471,7 +16983,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{superragged3col} style: % \begin{macrocode} - \glossarystyle{superragged3col}% + \setglossarystyle{superragged3col}% % \end{macrocode} % Put the glossary in a \env{supertabular} environment with % three columns, a header and no tail: @@ -14494,7 +17006,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{superragged3colborder} style: % \begin{macrocode} - \glossarystyle{superragged3colborder}% + \setglossarystyle{superragged3colborder}% % \end{macrocode} % Put the glossary in a \env{supertabular} environment with % three columns, a header with horizontal lines and a horizontal @@ -14541,15 +17053,21 @@ false,nolabel,autolabel}[nolabel]{% % column, description in second column, symbol in third column % and page list in last column: % \begin{macrocode} - \renewcommand*{\glossaryentryfield}[5]{% - \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##4 & ##5\tabularnewline}% + \renewcommand{\glossentry}[2]{% + \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} & + \glossentrydesc{##1} & + \glossentrysymbol{##1} & ##2\tabularnewline + }% % \end{macrocode} -% Sub entries on a row with no name, the description in the second% column, symbol in third column and page list in last column: +% Sub entries on a row with no name, the description in the second +% column, symbol in third column and page list in last column: % \begin{macrocode} - \renewcommand*{\glossarysubentryfield}[6]{% + \renewcommand{\subglossentry}[3]{% & \glssubentryitem{##2}% - \glstarget{##2}{\strut}##4 & ##5 & ##6\tabularnewline}% + \glstarget{##2}{\strut}\glossentrydesc{##2} & + \glossentrysymbol{##2} & ##3\tabularnewline + }% % \end{macrocode} % Blank row between groups: %\changes{3.03}{2012/09/21}{added check for glsnogroupskip} @@ -14567,7 +17085,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{altsuperragged4col} style: % \begin{macrocode} - \glossarystyle{altsuperragged4col}% + \setglossarystyle{altsuperragged4col}% % \end{macrocode} % Put the glossary in a \env{supertabular} environment with % four columns, a header and no tail: @@ -14591,7 +17109,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{altsuperragged4col} style: % \begin{macrocode} - \glossarystyle{altsuper4col}% + \setglossarystyle{altsuper4col}% % \end{macrocode} % Put the glossary in a \env{supertabular} environment with % four columns and a horizontal line in the head and tail: @@ -14614,7 +17132,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{altsuperragged4col} style: % \begin{macrocode} - \glossarystyle{altsuperragged4col}% + \setglossarystyle{altsuperragged4col}% % \end{macrocode} % Put the glossary in a \env{supertabular} environment with % four columns and a header bordered by horizontal lines and @@ -14649,7 +17167,7 @@ false,nolabel,autolabel}[nolabel]{% % that have a tree-like structure. These are designed for % hierarchical glossaries. % \begin{macrocode} -\ProvidesPackage{glossary-tree}[2012/09/21 v3.03 (NLCT)] +\ProvidesPackage{glossary-tree}[2013/11/14 v4.0 (NLCT)] % \end{macrocode} % %\begin{style}{index} @@ -14671,7 +17189,10 @@ false,nolabel,autolabel}[nolabel]{% {\setlength{\parindent}{0pt}% \setlength{\parskip}{0pt plus 0.3pt}% \let\item\@idxitem}% - {}% +% \end{macrocode} +%\changes{3.08a}{2013-09-28}{added paragraph break at end of environment} +% \begin{macrocode} + {\par}% % \end{macrocode} % Do nothing at the start of the environment: % \begin{macrocode} @@ -14684,23 +17205,23 @@ false,nolabel,autolabel}[nolabel]{% % Main (level 0) entry starts a new item with the name in bold % followed by the symbol in brackets (if it exists), the description % and the page list. +%\changes{3.08a}{2013-09-28}{updated to use \cs{glossentry} and +%\cs{subglossentry}} % \begin{macrocode} -\renewcommand*{\glossaryentryfield}[5]{% -\item\glsentryitem{##1}\textbf{\glstarget{##1}{##2}}% - \ifx\relax##4\relax - \else - \space(##4)% - \fi - \space ##3\glspostdescription \space ##5}% + \renewcommand*{\glossentry}[2]{% + \item\glsentryitem{##1}\textbf{\glstarget{##1}{\glossentryname{##1}}}% + \ifglshassymbol{##1}{\space(\glossentrysymbol{##1})}{}% + \space \glossentrydesc{##1}\glspostdescription\space ##2% + }% % \end{macrocode} % Sub entries: level 1 entries use \ics{subitem}, levels greater % than~1 use \ics{subsubitem}. The level ("##1") shouldn't be 0, -% as that's catered by \cs{glossaryentryfield}, but for completeness, +% as that's catered by \cs{glossentry}, but for completeness, % if the level is 0, \ics{item} is used. The name is put in bold, % followed by the symbol in brackets (if it exists), the description % and the page list. % \begin{macrocode} - \renewcommand*{\glossarysubentryfield}[6]{% + \renewcommand{\subglossentry}[3]{% \ifcase##1\relax % level 0 \item @@ -14712,12 +17233,10 @@ false,nolabel,autolabel}[nolabel]{% % all other levels \subsubitem \fi - \textbf{\glstarget{##2}{##3}}% - \ifx\relax##5\relax - \else - \space(##5)% - \fi - \space##4\glspostdescription\space ##6}% + \textbf{\glstarget{##2}{\glossentryname{##2}}}% + \ifglshassymbol{##2}{\space(\glossentrysymbol{##2})}{}% + \space\glossentrydesc{##2}\glspostdescription\space ##3% + }% % \end{macrocode} % Vertical gap between groups is the same as that used by indices: %\changes{3.03}{2012/09/21}{added check for glsnogroupskip} @@ -14734,7 +17253,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{index} style: % \begin{macrocode} - \glossarystyle{index}% + \setglossarystyle{index}% % \end{macrocode} % Add a heading for each group. This puts the group's title in % bold followed by a vertical gap. @@ -14753,7 +17272,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{index} style: % \begin{macrocode} - \glossarystyle{index}% + \setglossarystyle{index}% % \end{macrocode} % Put navigation links to the groups at the start of the glossary: % \begin{macrocode} @@ -14794,34 +17313,32 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Main (level 0) entries: name in bold, followed by symbol in % brackets (if it exists), the description and the page list: +%\changes{3.08a}{2013-09-28}{updated to use \cs{glossentry} and +%\cs{subglossentry}} % \begin{macrocode} - \renewcommand{\glossaryentryfield}[5]{% + \renewcommand{\glossentry}[2]{% \hangindent0pt\relax \parindent0pt\relax - \glsentryitem{##1}\textbf{\glstarget{##1}{##2}}% - \ifx\relax##4\relax - \else - \space(##4)% - \fi - \space ##3\glspostdescription \space ##5\par}% + \glsentryitem{##1}\textbf{\glstarget{##1}{\glossentryname{##1}}}% + \ifglshassymbol{##1}{\space(\glossentrysymbol{##1})}{}% + \space\glossentrydesc{##1}\glspostdescription\space##2\par + }% % \end{macrocode} % Sub entries: level \meta{n} is indented by \meta{n} times % \ics{glstreeindent}. The name is in bold, followed by the % symbol in brackets (if it exists), the description and the % page list. % \begin{macrocode} - \renewcommand{\glossarysubentryfield}[6]{% + \renewcommand{\subglossentry}[3]{% \hangindent##1\glstreeindent\relax \parindent##1\glstreeindent\relax \ifnum##1=1\relax \glssubentryitem{##2}% \fi - \textbf{\glstarget{##2}{##3}}% - \ifx\relax##5\relax - \else - \space(##5)% - \fi - \space##4\glspostdescription\space ##6\par}% + \textbf{\glstarget{##2}{\glossentryname{##2}}}% + \ifglshassymbol{##2}{\space(\glossentrysymbol{##2})}{}% + \space\glossentrydesc{##2}\glspostdescription\space ##3\par + }% % \end{macrocode} % Vertical gap between groups is the same as that used by % indices: @@ -14839,7 +17356,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{tree} style: % \begin{macrocode} - \glossarystyle{tree}% + \setglossarystyle{tree}% % \end{macrocode} % Each group has a heading (in bold) followed by a vertical gap): % \begin{macrocode} @@ -14858,7 +17375,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{tree} style: % \begin{macrocode} - \glossarystyle{tree}% + \setglossarystyle{tree}% % \end{macrocode} % Put navigation links to the groups at the start of the % \env{theglossary} environment: @@ -14906,34 +17423,33 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % No group headings: % \begin{macrocode} -\renewcommand*{\glsgroupheading}[1]{}% + \renewcommand*{\glsgroupheading}[1]{}% % \end{macrocode} % Main (level 0) entries: the name is in bold, followed by the % symbol in brackets (if it exists), the description and the % page list. % \begin{macrocode} - \renewcommand{\glossaryentryfield}[5]{% + \renewcommand{\glossentry}[2]{% \hangindent0pt\relax \parindent0pt\relax - \glsentryitem{##1}\textbf{\glstarget{##1}{##2}}% - \ifx\relax##4\relax - \else - \space(##4)% - \fi - \space ##3\glspostdescription \space ##5\par}% + \glsentryitem{##1}\textbf{\glstarget{##1}{\glossentryname{##1}}}% + \ifglshassymbol{##1}{\space(\glossentrysymbol{##1})}{}% + \space\glossentrydesc{##1}\glspostdescription\space##2\par + }% % \end{macrocode} % Sub entries: level \meta{n} is indented by \meta{n} times % \ics{glstreeindent}. The name and symbol are omitted. The % description followed by the page list are displayed. % \begin{macrocode} - \renewcommand{\glossarysubentryfield}[6]{% + \renewcommand{\subglossentry}[3]{% \hangindent##1\glstreeindent\relax \parindent##1\glstreeindent\relax \ifnum##1=1\relax \glssubentryitem{##2}% \fi \glstarget{##2}{\strut}% - ##4\glspostdescription\space ##6\par}% + \glossentrydesc{##2}\glspostdescription\space##3\par + }% % \end{macrocode} % Vertical gap between groups is the same as that used by indices: %\changes{3.03}{2012/09/21}{added check for glsnogroupskip} @@ -14951,7 +17467,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{treenoname} style: % \begin{macrocode} - \glossarystyle{treenoname}% + \setglossarystyle{treenoname}% % \end{macrocode} % Give each group a heading: % \begin{macrocode} @@ -14970,7 +17486,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{treenoname} style: % \begin{macrocode} - \glossarystyle{treenoname}% + \setglossarystyle{treenoname}% % \end{macrocode} % Put navigation links to the groups at the start of the % \env{theglossary} environment: @@ -15029,8 +17545,10 @@ false,nolabel,autolabel}[nolabel]{% \renewcommand*{\glsgroupheading}[1]{}% % \end{macrocode} % Redefine the way that the level~0 entries are displayed. +%\changes{3.08a}{2013-09-28}{updated to use \cs{glossentry} and +%\cs{subglossentry}} % \begin{macrocode} - \renewcommand{\glossaryentryfield}[5]{% + \renewcommand{\glossentry}[2]{% % \end{macrocode} % If the level hasn't changed, keep the same settings, otherwise % change \cs{glstreeindent} accordingly. @@ -15052,20 +17570,17 @@ false,nolabel,autolabel}[nolabel]{% % Put the name to the left of the paragraph block. % \begin{macrocode} \makebox[0pt][r]{\makebox[\glstreeindent][l]{% - \glsentryitem{##1}\textbf{\glstarget{##1}{##2}}}}% + \glsentryitem{##1}\textbf{\glstarget{##1}{\glossentryname{##1}}}}}% % \end{macrocode} % If the symbol is missing, ignore it, otherwise put it in % brackets. % \begin{macrocode} - \ifx\relax##4\relax - \else - (##4)\space - \fi + \ifglshassymbol{##1}{\space(\glossentrysymbol{##1})}{}% % \end{macrocode} % Do the description followed by the description terminator and % location list. % \begin{macrocode} - ##3\glspostdescription \space ##5\par + \glossentrydesc{##1}\glspostdescription \space ##2\par % \end{macrocode} % Set the previous level to 0. % \begin{macrocode} @@ -15074,7 +17589,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Redefine the way sub-entries are displayed. % \begin{macrocode} - \renewcommand{\glossarysubentryfield}[6]{% + \renewcommand{\subglossentry}[3]{% % \end{macrocode} % Increment and display the sub-entry counter if this is a level~1 % entry and the sub-entry counter is in use. @@ -15136,20 +17651,17 @@ false,nolabel,autolabel}[nolabel]{% % Put the name to the left of the paragraph block % \begin{macrocode} \makebox[0pt][r]{\makebox[\gls@tmplen][l]{% - \textbf{\glstarget{##2}{##3}}}}% + \textbf{\glstarget{##2}{\glossentryname{##2}}}}}% % \end{macrocode} % If the symbol is missing, ignore it, otherwise put it in % brackets. % \begin{macrocode} - \ifx##5\relax\relax - \else - (##5)\space - \fi + \ifglshassymbol{##2}{\space(\glossentrysymbol{##2})}{}% % \end{macrocode} % Do the description followed by the description terminator and % location list. % \begin{macrocode} - ##4\glspostdescription\space ##6\par + \glossentrydesc{##2}\glspostdescription\space ##3\par % \end{macrocode} % Set the previous level macro to the current level. % \begin{macrocode} @@ -15172,7 +17684,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{alttree} style: % \begin{macrocode} - \glossarystyle{alttree}% + \setglossarystyle{alttree}% % \end{macrocode} % Give each group a heading. % \begin{macrocode} @@ -15194,7 +17706,7 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} % Base it on the glostyle{alttree} style: % \begin{macrocode} - \glossarystyle{alttree}% + \setglossarystyle{alttree}% % \end{macrocode} % Put the navigation links in the header % \begin{macrocode} @@ -15589,6 +18101,806 @@ false,nolabel,autolabel}[nolabel]{% %\fi %\iffalse % \begin{macrocode} +%<*glossaries-compatible-307.sty> +% \end{macrocode} +%\fi +% Compatibility macros. +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{glossaries-compatible-307}[2013/11/14 v4.0 (NLCT)] +% \end{macrocode} +% +% Compatibility macros for predefined glossary styles: +%\begin{macro}{\compatglossarystyle} +% Defines a compatibility glossary style. +% \begin{macrocode} +\newcommand{\compatglossarystyle}[2]{% + \ifcsundef{@glscompstyle@#1}% + {% + \csdef{@glscompstyle@#1}{#2}% + }% + {% + \PackageError{glossaries}{Glossary compatibility style `#1' is already defined}{}% + }% +} +% \end{macrocode} +%\end{macro} +% Backward compatible \glostyle{inline} style. +% \begin{macrocode} +\compatglossarystyle{inline}{% + \renewcommand{\glossaryentryfield}[5]{% + \glsinlinedopostchild + \gls@inlinesep + \def\glo@desc{##3}% + \def\@no@post@desc{\nopostdesc}% + \glsentryitem{##1}\glsinlinenameformat{##1}{##2}% + \ifx\glo@desc\@no@post@desc + \glsinlineemptydescformat{##4}{##5}% + \else + \ifstrempty{##3}% + {\glsinlineemptydescformat{##4}{##5}}% + {\glsinlinedescformat{##3}{##4}{##5}}% + \fi + \ifglshaschildren{##1}% + {% + \glsresetsubentrycounter + \glsinlineparentchildseparator + \def\gls@inlinesubsep{}% + \def\gls@inlinepostchild{\glsinlinepostchild}% + }% + {}% + \def\gls@inlinesep{\glsinlineseparator}% + }% +% \end{macrocode} +% Sub-entries display description: +% \begin{macrocode} + \renewcommand{\glossarysubentryfield}[6]{% + \gls@inlinesubsep% + \glsinlinesubnameformat{##2}{##3}% + \glssubentryitem{##2}\glsinlinesubdescformat{##4}{##5}{##6}% + \def\gls@inlinesubsep{\glsinlinesubseparator}% + }% +} +% \end{macrocode} +% Backward compatible \glostyle{list} style. +% \begin{macrocode} +\compatglossarystyle{list}{% + \renewcommand*{\glossaryentryfield}[5]{% + \item[\glsentryitem{##1}\glstarget{##1}{##2}] + ##3\glspostdescription\space ##5}% +% \end{macrocode} +% Sub-entries continue on the same line: +% \begin{macrocode} + \renewcommand*{\glossarysubentryfield}[6]{% + \glssubentryitem{##2}% + \glstarget{##2}{\strut}##4\glspostdescription\space ##6.}% +} +% \end{macrocode} +% Backward compatible \glostyle{listgroup} style. +% \begin{macrocode} +\compatglossarystyle{listgroup}{% + \csuse{@glscompstyle@list}% +}% +% \end{macrocode} +% Backward compatible \glostyle{listhypergroup} style. +% \begin{macrocode} +\compatglossarystyle{listhypergroup}{% + \csuse{@glscompstyle@list}% +}% +% \end{macrocode} +% Backward compatible \glostyle{altlist} style. +% \begin{macrocode} +\compatglossarystyle{altlist}{% + \renewcommand*{\glossaryentryfield}[5]{% + \item[\glsentryitem{##1}\glstarget{##1}{##2}]% + \mbox{}\par\nobreak\@afterheading + ##3\glspostdescription\space ##5}% + \renewcommand{\glossarysubentryfield}[6]{% + \par + \glssubentryitem{##2}% + \glstarget{##2}{\strut}##4\glspostdescription\space ##6}% +}% +% \end{macrocode} +% Backward compatible \glostyle{altlistgroup} style. +% \begin{macrocode} +\compatglossarystyle{altlistgroup}{% + \csuse{@glscompstyle@altlist}% +}% +% \end{macrocode} +% Backward compatible \glostyle{altlisthypergroup} style. +% \begin{macrocode} +\compatglossarystyle{altlisthypergroup}{% + \csuse{@glscompstyle@altlist}% +}% +% \end{macrocode} +% Backward compatible \glostyle{listdotted} style. +% \begin{macrocode} +\compatglossarystyle{listdotted}{% + \renewcommand*{\glossaryentryfield}[5]{% + \item[]\makebox[\glslistdottedwidth][l]{% + \glsentryitem{##1}\glstarget{##1}{##2}% + \unskip\leaders\hbox to 2.9mm{\hss.}\hfill\strut}##3}% + \renewcommand*{\glossarysubentryfield}[6]{% + \item[]\makebox[\glslistdottedwidth][l]{% + \glssubentryitem{##2}% + \glstarget{##2}{##3}% + \unskip\leaders\hbox to 2.9mm{\hss.}\hfill\strut}##4}% +}% +% \end{macrocode} +% Backward compatible \glostyle{sublistdotted} style. +% \begin{macrocode} +\compatglossarystyle{sublistdotted}{% + \csuse{@glscompstyle@listdotted}% + \renewcommand*{\glossaryentryfield}[5]{% + \item[\glsentryitem{##1}\glstarget{##1}{##2}]}% +}% +% \end{macrocode} +% Backward compatible \glostyle{long} style. +% \begin{macrocode} +\compatglossarystyle{long}{% + \renewcommand*{\glossaryentryfield}[5]{% + \glsentryitem{##1}\glstarget{##1}{##2} & ##3\glspostdescription\space ##5\\}% + \renewcommand*{\glossarysubentryfield}[6]{% + & + \glssubentryitem{##2}% + \glstarget{##2}{\strut}##4\glspostdescription\space ##6\\}% +}% +% \end{macrocode} +% Backward compatible \glostyle{longborder} style. +% \begin{macrocode} +\compatglossarystyle{longborder}{% + \csuse{@glscompstyle@long}% +}% +% \end{macrocode} +% Backward compatible \glostyle{longheader} style. +% \begin{macrocode} +\compatglossarystyle{longheader}{% + \csuse{@glscompstyle@long}% +}% +% \end{macrocode} +% Backward compatible \glostyle{longheaderborder} style. +% \begin{macrocode} +\compatglossarystyle{longheaderborder}{% + \csuse{@glscompstyle@long}% +}% +% \end{macrocode} +% Backward compatible \glostyle{long3col} style. +% \begin{macrocode} +\compatglossarystyle{long3col}{% + \renewcommand*{\glossaryentryfield}[5]{% + \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##5\\}% + \renewcommand*{\glossarysubentryfield}[6]{% + & + \glssubentryitem{##2}% + \glstarget{##2}{\strut}##4 & ##6\\}% +}% +% \end{macrocode} +% Backward compatible \glostyle{long3colborder} style. +% \begin{macrocode} +\compatglossarystyle{long3colborder}{% + \csuse{@glscompstyle@long3col}% +}% +% \end{macrocode} +% Backward compatible \glostyle{long3colheader} style. +% \begin{macrocode} +\compatglossarystyle{long3colheader}{% + \csuse{@glscompstyle@long3col}% +}% +% \end{macrocode} +% Backward compatible \glostyle{long3colheaderborder} style. +% \begin{macrocode} +\compatglossarystyle{long3colheaderborder}{% + \csuse{@glscompstyle@long3col}% +}% +% \end{macrocode} +% Backward compatible \glostyle{long4col} style. +% \begin{macrocode} +\compatglossarystyle{long4col}{% + \renewcommand*{\glossaryentryfield}[5]{% + \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##4 & ##5\\}% + \renewcommand*{\glossarysubentryfield}[6]{% + & + \glssubentryitem{##2}% + \glstarget{##2}{\strut}##4 & ##5 & ##6\\}% +}% +% \end{macrocode} +% Backward compatible \glostyle{long4colheader} style. +% \begin{macrocode} +\compatglossarystyle{long4colheader}{% + \csuse{@glscompstyle@long4col}% +}% +% \end{macrocode} +% Backward compatible \glostyle{long4colborder} style. +% \begin{macrocode} +\compatglossarystyle{long4colborder}{% + \csuse{@glscompstyle@long4col}% +}% +% \end{macrocode} +% Backward compatible \glostyle{long4colheaderborder} style. +% \begin{macrocode} +\compatglossarystyle{long4colheaderborder}{% + \csuse{@glscompstyle@long4col}% +}% +% \end{macrocode} +% Backward compatible \glostyle{altlong4col} style. +% \begin{macrocode} +\compatglossarystyle{altlong4col}{% + \csuse{@glscompstyle@long4col}% +}% +% \end{macrocode} +% Backward compatible \glostyle{altlong4colheader} style. +% \begin{macrocode} +\compatglossarystyle{altlong4colheader}{% + \csuse{@glscompstyle@long4col}% +}% +% \end{macrocode} +% Backward compatible \glostyle{altlong4colborder} style. +% \begin{macrocode} +\compatglossarystyle{altlong4colborder}{% + \csuse{@glscompstyle@long4col}% +}% +% \end{macrocode} +% Backward compatible \glostyle{altlong4colheaderborder} style. +% \begin{macrocode} +\compatglossarystyle{altlong4colheaderborder}{% + \csuse{@glscompstyle@long4col}% +}% +% \end{macrocode} +% +% Backward compatible \glostyle{long} style. +% \begin{macrocode} +\compatglossarystyle{longragged}{% + \renewcommand*{\glossaryentryfield}[5]{% + \glsentryitem{##1}\glstarget{##1}{##2} & ##3\glspostdescription\space ##5% + \tabularnewline}% + \renewcommand*{\glossarysubentryfield}[6]{% + & + \glssubentryitem{##2}% + \glstarget{##2}{\strut}##4\glspostdescription\space ##6% + \tabularnewline}% +}% +% \end{macrocode} +% Backward compatible \glostyle{longraggedborder} style. +% \begin{macrocode} +\compatglossarystyle{longraggedborder}{% + \csuse{@glscompstyle@longragged}% +}% +% \end{macrocode} +% Backward compatible \glostyle{longraggedheader} style. +% \begin{macrocode} +\compatglossarystyle{longraggedheader}{% + \csuse{@glscompstyle@longragged}% +}% +% \end{macrocode} +% Backward compatible \glostyle{longraggedheaderborder} style. +% \begin{macrocode} +\compatglossarystyle{longraggedheaderborder}{% + \csuse{@glscompstyle@longragged}% +}% +% \end{macrocode} +% Backward compatible \glostyle{longragged3col} style. +% \begin{macrocode} +\compatglossarystyle{longragged3col}{% + \renewcommand*{\glossaryentryfield}[5]{% + \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##5\tabularnewline}% + \renewcommand*{\glossarysubentryfield}[6]{% + & + \glssubentryitem{##2}% + \glstarget{##2}{\strut}##4 & ##6\tabularnewline}% +}% +% \end{macrocode} +% Backward compatible \glostyle{longragged3colborder} style. +% \begin{macrocode} +\compatglossarystyle{longragged3colborder}{% + \csuse{@glscompstyle@longragged3col}% +}% +% \end{macrocode} +% Backward compatible \glostyle{longragged3colheader} style. +% \begin{macrocode} +\compatglossarystyle{longragged3colheader}{% + \csuse{@glscompstyle@longragged3col}% +}% +% \end{macrocode} +% Backward compatible \glostyle{longragged3colheaderborder} style. +% \begin{macrocode} +\compatglossarystyle{longragged3colheaderborder}{% + \csuse{@glscompstyle@longragged3col}% +}% +% \end{macrocode} +% Backward compatible \glostyle{altlongragged4col} style. +% \begin{macrocode} +\compatglossarystyle{altlongragged4col}{% + \renewcommand*{\glossaryentryfield}[5]{% + \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##4 & ##5\tabularnewline}% + \renewcommand*{\glossarysubentryfield}[6]{% + & + \glssubentryitem{##2}% + \glstarget{##2}{\strut}##4 & ##5 & ##6\tabularnewline}% +}% +% \end{macrocode} +% Backward compatible \glostyle{altlongragged4colheader} style. +% \begin{macrocode} +\compatglossarystyle{altlongragged4colheader}{% + \csuse{@glscompstyle@altlong4col}% +}% +% \end{macrocode} +% Backward compatible \glostyle{altlongragged4colborder} style. +% \begin{macrocode} +\compatglossarystyle{altlongragged4colborder}{% + \csuse{@glscompstyle@altlong4col}% +}% +% \end{macrocode} +% Backward compatible \glostyle{altlongragged4colheaderborder} style. +% \begin{macrocode} +\compatglossarystyle{altlongragged4colheaderborder}{% + \csuse{@glscompstyle@altlong4col}% +}% +% \end{macrocode} +% +% Backward compatible \glostyle{index} style. +% \begin{macrocode} +\compatglossarystyle{index}{% + \renewcommand*{\glossaryentryfield}[5]{% + \item\glsentryitem{##1}\textbf{\glstarget{##1}{##2}}% + \ifx\relax##4\relax + \else + \space(##4)% + \fi + \space ##3\glspostdescription \space ##5}% + \renewcommand*{\glossarysubentryfield}[6]{% + \ifcase##1\relax + % level 0 + \item + \or + % level 1 + \subitem + \glssubentryitem{##2}% + \else + % all other levels + \subsubitem + \fi + \textbf{\glstarget{##2}{##3}}% + \ifx\relax##5\relax + \else + \space(##5)% + \fi + \space##4\glspostdescription\space ##6}% +}% +% \end{macrocode} +% Backward compatible \glostyle{indexgroup} style. +% \begin{macrocode} +\compatglossarystyle{indexgroup}{% + \csuse{@glscompstyle@index}% +}% +% \end{macrocode} +% Backward compatible \glostyle{indexhypergroup} style. +% \begin{macrocode} +\compatglossarystyle{indexhypergroup}{% + \csuse{@glscompstyle@index}% +}% +% \end{macrocode} +% Backward compatible \glostyle{tree} style. +% \begin{macrocode} +\compatglossarystyle{tree}{% + \renewcommand{\glossaryentryfield}[5]{% + \hangindent0pt\relax + \parindent0pt\relax + \glsentryitem{##1}\textbf{\glstarget{##1}{##2}}% + \ifx\relax##4\relax + \else + \space(##4)% + \fi + \space ##3\glspostdescription \space ##5\par}% + \renewcommand{\glossarysubentryfield}[6]{% + \hangindent##1\glstreeindent\relax + \parindent##1\glstreeindent\relax + \ifnum##1=1\relax + \glssubentryitem{##2}% + \fi + \textbf{\glstarget{##2}{##3}}% + \ifx\relax##5\relax + \else + \space(##5)% + \fi + \space##4\glspostdescription\space ##6\par}% +}% +% \end{macrocode} +% Backward compatible \glostyle{treegroup} style. +% \begin{macrocode} +\compatglossarystyle{treegroup}{% + \csuse{@glscompstyle@tree}% +}% +% \end{macrocode} +% Backward compatible \glostyle{treehypergroup} style. +% \begin{macrocode} +\compatglossarystyle{treehypergroup}{% + \csuse{@glscompstyle@tree}% +}% +% \end{macrocode} +% Backward compatible \glostyle{treenoname} style. +% \begin{macrocode} +\compatglossarystyle{treenoname}{% + \renewcommand{\glossaryentryfield}[5]{% + \hangindent0pt\relax + \parindent0pt\relax + \glsentryitem{##1}\textbf{\glstarget{##1}{##2}}% + \ifx\relax##4\relax + \else + \space(##4)% + \fi + \space ##3\glspostdescription \space ##5\par}% + \renewcommand{\glossarysubentryfield}[6]{% + \hangindent##1\glstreeindent\relax + \parindent##1\glstreeindent\relax + \ifnum##1=1\relax + \glssubentryitem{##2}% + \fi + \glstarget{##2}{\strut}% + ##4\glspostdescription\space ##6\par}% +}% +% \end{macrocode} +% Backward compatible \glostyle{treenonamegroup} style. +% \begin{macrocode} +\compatglossarystyle{treenonamegroup}{% + \csuse{@glscompstyle@treenoname}% +}% +% \end{macrocode} +% Backward compatible \glostyle{treenonamehypergroup} style. +% \begin{macrocode} +\compatglossarystyle{treenonamehypergroup}{% + \csuse{@glscompstyle@treenoname}% +}% +% \end{macrocode} +% Backward compatible \glostyle{alttree} style. +% \begin{macrocode} +\compatglossarystyle{alttree}{% + \renewcommand{\glossaryentryfield}[5]{% + \ifnum\@gls@prevlevel=0\relax + \else + \settowidth{\glstreeindent}{\textbf{\@glswidestname\space}}% + \hangindent\glstreeindent + \parindent\glstreeindent + \fi + \makebox[0pt][r]{\makebox[\glstreeindent][l]{% + \glsentryitem{##1}\textbf{\glstarget{##1}{##2}}}}% + \ifx\relax##4\relax + \else + (##4)\space + \fi + ##3\glspostdescription \space ##5\par + \def\@gls@prevlevel{0}% + }% + \renewcommand{\glossarysubentryfield}[6]{% + \ifnum##1=1\relax + \glssubentryitem{##2}% + \fi + \ifnum\@gls@prevlevel=##1\relax + \else + \@ifundefined{@glswidestname\romannumeral##1}{% + \settowidth{\gls@tmplen}{\textbf{\@glswidestname\space}}}{% + \settowidth{\gls@tmplen}{\textbf{% + \csname @glswidestname\romannumeral##1\endcsname\space}}}% + \ifnum\@gls@prevlevel<##1\relax + \setlength\glstreeindent\gls@tmplen + \addtolength\glstreeindent\parindent + \parindent\glstreeindent + \else + \@ifundefined{@glswidestname\romannumeral\@gls@prevlevel}{% + \settowidth{\glstreeindent}{\textbf{% + \@glswidestname\space}}}{% + \settowidth{\glstreeindent}{\textbf{% + \csname @glswidestname\romannumeral\@gls@prevlevel + \endcsname\space}}}% + \addtolength\parindent{-\glstreeindent}% + \setlength\glstreeindent\parindent + \fi + \fi + \hangindent\glstreeindent + \makebox[0pt][r]{\makebox[\gls@tmplen][l]{% + \textbf{\glstarget{##2}{##3}}}}% + \ifx##5\relax\relax + \else + (##5)\space + \fi + ##4\glspostdescription\space ##6\par + \def\@gls@prevlevel{##1}% + }% +}% +% \end{macrocode} +% Backward compatible \glostyle{alttreegroup} style. +% \begin{macrocode} +\compatglossarystyle{alttreegroup}{% + \csuse{@glscompstyle@alttree}% +}% +% \end{macrocode} +% Backward compatible \glostyle{alttreehypergroup} style. +% \begin{macrocode} +\compatglossarystyle{alttreehypergroup}{% + \csuse{@glscompstyle@alttree}% +}% +% \end{macrocode} +% +% Backward compatible \glostyle{mcolindex} style. +% \begin{macrocode} +\compatglossarystyle{mcolindex}{% + \csuse{@glscompstyle@index}% +}% +% \end{macrocode} +% Backward compatible \glostyle{mcolindexgroup} style. +% \begin{macrocode} +\compatglossarystyle{mcolindexgroup}{% + \csuse{@glscompstyle@index}% +}% +% \end{macrocode} +% Backward compatible \glostyle{mcolindexhypergroup} style. +% \begin{macrocode} +\compatglossarystyle{mcolindexhypergroup}{% + \csuse{@glscompstyle@index}% +}% +% \end{macrocode} +% Backward compatible \glostyle{mcoltree} style. +% \begin{macrocode} +\compatglossarystyle{mcoltree}{% + \csuse{@glscompstyle@tree}% +}% +% \end{macrocode} +% Backward compatible \glostyle{mcoltreegroup} style. +% \begin{macrocode} +\compatglossarystyle{mcolindextreegroup}{% + \csuse{@glscompstyle@tree}% +}% +% \end{macrocode} +% Backward compatible \glostyle{mcoltreehypergroup} style. +% \begin{macrocode} +\compatglossarystyle{mcolindextreehypergroup}{% + \csuse{@glscompstyle@tree}% +}% +% \end{macrocode} +% Backward compatible \glostyle{mcoltreenoname} style. +% \begin{macrocode} +\compatglossarystyle{mcoltreenoname}{% + \csuse{@glscompstyle@tree}% +}% +% \end{macrocode} +% Backward compatible \glostyle{mcoltreenonamegroup} style. +% \begin{macrocode} +\compatglossarystyle{mcoltreenonamegroup}{% + \csuse{@glscompstyle@tree}% +}% +% \end{macrocode} +% Backward compatible \glostyle{mcoltreenonamehypergroup} style. +% \begin{macrocode} +\compatglossarystyle{mcoltreenonamehypergroup}{% + \csuse{@glscompstyle@tree}% +}% +% \end{macrocode} +% Backward compatible \glostyle{mcolalttree} style. +% \begin{macrocode} +\compatglossarystyle{mcolalttree}{% + \csuse{@glscompstyle@alttree}% +}% +% \end{macrocode} +% Backward compatible \glostyle{mcolalttreegroup} style. +% \begin{macrocode} +\compatglossarystyle{mcolalttreegroup}{% + \csuse{@glscompstyle@alttree}% +}% +% \end{macrocode} +% Backward compatible \glostyle{mcolalttreehypergroup} style. +% \begin{macrocode} +\compatglossarystyle{mcolalttreehypergroup}{% + \csuse{@glscompstyle@alttree}% +}% +% \end{macrocode} + +% Backward compatible \glostyle{superragged} style. +% \begin{macrocode} +\compatglossarystyle{superragged}{% + \renewcommand*{\glossaryentryfield}[5]{% + \glsentryitem{##1}\glstarget{##1}{##2} & ##3\glspostdescription\space ##5% + \tabularnewline}% + \renewcommand*{\glossarysubentryfield}[6]{% + & + \glssubentryitem{##2}% + \glstarget{##2}{\strut}##4\glspostdescription\space ##6% + \tabularnewline}% +}% +% \end{macrocode} +% Backward compatible \glostyle{superraggedborder} style. +% \begin{macrocode} +\compatglossarystyle{superraggedborder}{% + \csuse{@glscompstyle@superragged}% +}% +% \end{macrocode} +% Backward compatible \glostyle{superraggedheader} style. +% \begin{macrocode} +\compatglossarystyle{superraggedheader}{% + \csuse{@glscompstyle@superragged}% +}% +% \end{macrocode} +% Backward compatible \glostyle{superraggedheaderborder} style. +% \begin{macrocode} +\compatglossarystyle{superraggedheaderborder}{% + \csuse{@glscompstyle@superragged}% +}% +% \end{macrocode} +% Backward compatible \glostyle{superragged3col} style. +% \begin{macrocode} +\compatglossarystyle{superragged3col}{% + \renewcommand*{\glossaryentryfield}[5]{% + \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##5\tabularnewline}% + \renewcommand*{\glossarysubentryfield}[6]{% + & + \glssubentryitem{##2}% + \glstarget{##2}{\strut}##4 & ##6\tabularnewline}% +}% +% \end{macrocode} +% Backward compatible \glostyle{superragged3colborder} style. +% \begin{macrocode} +\compatglossarystyle{superragged3colborder}{% + \csuse{@glscompstyle@superragged3col}% +}% +% \end{macrocode} +% Backward compatible \glostyle{superragged3colheader} style. +% \begin{macrocode} +\compatglossarystyle{superragged3colheader}{% + \csuse{@glscompstyle@superragged3col}% +}% +% \end{macrocode} +% Backward compatible \glostyle{superragged3colheaderborder} style. +% \begin{macrocode} +\compatglossarystyle{superragged3colheaderborder}{% + \csuse{@glscompstyle@superragged3col}% +}% +% \end{macrocode} +% Backward compatible \glostyle{altsuperragged4col} style. +% \begin{macrocode} +\compatglossarystyle{altsuperragged4col}{% + \renewcommand*{\glossaryentryfield}[5]{% + \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##4 & ##5\tabularnewline}% + \renewcommand*{\glossarysubentryfield}[6]{% + & + \glssubentryitem{##2}% + \glstarget{##2}{\strut}##4 & ##5 & ##6\tabularnewline}% +}% +% \end{macrocode} +% Backward compatible \glostyle{altsuperragged4colheader} style. +% \begin{macrocode} +\compatglossarystyle{altsuperragged4colheader}{% + \csuse{@glscompstyle@altsuperragged4col}% +}% +% \end{macrocode} +% Backward compatible \glostyle{altsuperragged4colborder} style. +% \begin{macrocode} +\compatglossarystyle{altsuperragged4colborder}{% + \csuse{@glscompstyle@altsuperragged4col}% +}% +% \end{macrocode} +% Backward compatible \glostyle{altsuperragged4colheaderborder} style. +% \begin{macrocode} +\compatglossarystyle{altsuperragged4colheaderborder}{% + \csuse{@glscompstyle@altsuperragged4col}% +}% +% \end{macrocode} +% +% Backward compatible \glostyle{super} style. +% \begin{macrocode} +\compatglossarystyle{super}{% + \renewcommand*{\glossaryentryfield}[5]{% + \glsentryitem{##1}\glstarget{##1}{##2} & ##3\glspostdescription\space ##5\\}% + \renewcommand*{\glossarysubentryfield}[6]{% + & + \glssubentryitem{##2}% + \glstarget{##2}{\strut}##4\glspostdescription\space ##6\\}% +}% +% \end{macrocode} +% Backward compatible \glostyle{superborder} style. +% \begin{macrocode} +\compatglossarystyle{superborder}{% + \csuse{@glscompstyle@super}% +}% +% \end{macrocode} +% Backward compatible \glostyle{superheader} style. +% \begin{macrocode} +\compatglossarystyle{superheader}{% + \csuse{@glscompstyle@super}% +}% +% \end{macrocode} +% Backward compatible \glostyle{superheaderborder} style. +% \begin{macrocode} +\compatglossarystyle{superheaderborder}{% + \csuse{@glscompstyle@super}% +}% +% \end{macrocode} +% Backward compatible \glostyle{super3col} style. +% \begin{macrocode} +\compatglossarystyle{super3col}{% + \renewcommand*{\glossaryentryfield}[5]{% + \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##5\\}% + \renewcommand*{\glossarysubentryfield}[6]{% + & + \glssubentryitem{##2}% + \glstarget{##2}{\strut}##4 & ##6\\}% +}% +% \end{macrocode} +% Backward compatible \glostyle{super3colborder} style. +% \begin{macrocode} +\compatglossarystyle{super3colborder}{% + \csuse{@glscompstyle@super3col}% +}% +% \end{macrocode} +% Backward compatible \glostyle{super3colheader} style. +% \begin{macrocode} +\compatglossarystyle{super3colheader}{% + \csuse{@glscompstyle@super3col}% +}% +% \end{macrocode} +% Backward compatible \glostyle{super3colheaderborder} style. +% \begin{macrocode} +\compatglossarystyle{super3colheaderborder}{% + \csuse{@glscompstyle@super3col}% +}% +% \end{macrocode} +% Backward compatible \glostyle{super4col} style. +% \begin{macrocode} +\compatglossarystyle{super4col}{% + \renewcommand*{\glossaryentryfield}[5]{% + \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##4 & ##5\\}% + \renewcommand*{\glossarysubentryfield}[6]{% + & + \glssubentryitem{##2}% + \glstarget{##2}{\strut}##4 & ##5 & ##6\\}% +}% +% \end{macrocode} +% Backward compatible \glostyle{super4colheader} style. +% \begin{macrocode} +\compatglossarystyle{super4colheader}{% + \csuse{@glscompstyle@super4col}% +}% +% \end{macrocode} +% Backward compatible \glostyle{super4colborder} style. +% \begin{macrocode} +\compatglossarystyle{super4colborder}{% + \csuse{@glscompstyle@super4col}% +}% +% \end{macrocode} +% Backward compatible \glostyle{super4colheaderborder} style. +% \begin{macrocode} +\compatglossarystyle{super4colheaderborder}{% + \csuse{@glscompstyle@super4col}% +}% +% \end{macrocode} +% Backward compatible \glostyle{altsuper4col} style. +% \begin{macrocode} +\compatglossarystyle{altsuper4col}{% + \csuse{@glscompstyle@super4col}% +}% +% \end{macrocode} +% Backward compatible \glostyle{altsuper4colheader} style. +% \begin{macrocode} +\compatglossarystyle{altsuper4colheader}{% + \csuse{@glscompstyle@super4col}% +}% +% \end{macrocode} +% Backward compatible \glostyle{altsuper4colborder} style. +% \begin{macrocode} +\compatglossarystyle{altsuper4colborder}{% + \csuse{@glscompstyle@super4col}% +}% +% \end{macrocode} +% Backward compatible \glostyle{altsuper4colheaderborder} style. +% \begin{macrocode} +\compatglossarystyle{altsuper4colheaderborder}{% + \csuse{@glscompstyle@super4col}% +}% +% \end{macrocode} +%\iffalse +% \begin{macrocode} +%</glossaries-compatible-307.sty> +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} %<*glossaries-accsupp.sty> % \end{macrocode} %\fi @@ -15605,7 +18917,7 @@ false,nolabel,autolabel}[nolabel]{% % but will only be updated when \texttt{glossaries-accsupp.sty} is % modified. % \begin{macrocode} -\ProvidesPackage{glossaries-accsupp}[2011/04/02 v3.0 (NLCT) +\ProvidesPackage{glossaries-accsupp}[2013/11/14 v4.0 (NLCT) Experimental glossaries accessibility] % \end{macrocode} % Pass all options to \sty{glossaries}: @@ -15616,6 +18928,37 @@ false,nolabel,autolabel}[nolabel]{% % \begin{macrocode} \ProcessOptions % \end{macrocode} +% Override style compatibility macros: +% \begin{macrocode} +\newcommand*{\compatibleglossentry}[2]{% + \toks@{#2}% + \protected@edef\@do@glossentry{% + \noexpand\accsuppglossaryentryfield{#1}% + {\noexpand\glsnamefont + {\expandafter\expandonce\csname glo@#1@name\endcsname}}% + {\expandafter\expandonce\csname glo@#1@desc\endcsname}% + {\expandafter\expandonce\csname glo@#1@symbol\endcsname}% + {\the\toks@}% + }% + \@do@glossentry +} +% \end{macrocode} +% +% \begin{macrocode} +\newcommand*{\compatiblesubglossentry}[3]{% + \toks@{#3}% + \protected@edef\@do@subglossentry{% + \noexpand\accsuppglossarysubentryfield{\number#1}% + {#2}% + {\noexpand\glsnamefont + {\expandafter\expandonce\csname glo@#2@name\endcsname}}% + {\expandafter\expandonce\csname glo@#2@desc\endcsname}% + {\expandafter\expandonce\csname glo@#2@symbol\endcsname}% + {\the\toks@}% + }% + \@do@subglossentry +} +% \end{macrocode} % Required packages: % \begin{macrocode} \RequirePackage{glossaries} @@ -15738,6 +19081,25 @@ false,nolabel,autolabel}[nolabel]{% % explicitly put in the value, e.g., % "user1={\glsaccsupp{inches}{in}}". % +% Append these new keys to \cs{@gls@keymap}: +% \begin{macrocode} +\appto\@gls@keymap{,% + {access}{access},% + {textaccess}{textaccess},% + {firstaccess}{firstaccess},% + {pluralaccess}{pluralaccess},% + {firstpluralaccess}{firstpluralaccess},% + {symbolaccess}{symbolaccess},% + {symbolpluralaccess}{symbolpluralaccess},% + {descaccess}{descaccess},% + {descpluralaccess}{descpluralaccess},% + {shortaccess}{shortaccess},% + {shortpluralaccess}{shortpluralaccess},% + {longaccess}{longaccess},% + {longpluralaccess}{longpluralaccess}% +} +% \end{macrocode} +% %\begin{macro}{\@gls@noaccess} % Indicates that no replacement text has been provided. % \begin{macrocode} @@ -16152,360 +19514,237 @@ false,nolabel,autolabel}[nolabel]{% % \end{macrocode} %\end{macro} % -%\begin{macro}{\@gls@} -% Redefine \cs{@gls@} to change the way the link text is defined +%\begin{macro}{\@@gls@default@entryfmt} +% Redefine the default entry format to use accessibility information % \begin{macrocode} -\def\@gls@#1#2[#3]{% - \glsdoifexists{#2}% +\renewcommand*{\@@gls@default@entryfmt}[2]{% + \ifdefempty\glscustomtext {% - \edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Save options in \cs{@gls@link@opts} and label in \cs{@gls@link@label} -% \begin{macrocode} - \def\@gls@link@opts{#1}% - \def\@gls@link@label{#2}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}). This is no longer expanded. -% \begin{macrocode} - \ifglsused{#2}% + \glsifplural {% - \def\@glo@text{\csname gls@\@glo@type @display\endcsname - {\glstextaccessdisplay{\glsentrytext{#2}}{#2}}% - {\glsdescriptionaccessdisplay{\glsentrydesc{#2}}{#2}}% - {\glssymbolaccessdisplay{\glsentrysymbol{#2}}{#2}}% - {#3}}% - }% - {% - \def\@glo@text{\csname gls@\@glo@type @displayfirst\endcsname - {\glsfirstaccessdisplay{\glsentryfirst{#2}}{#2}}% - {\glsdescriptionaccessdisplay{\glsentrydesc{#2}}{#2}}% - {\glssymbolaccessdisplay{\glsentrysymbol{#2}}{#2}}% - {#3}}% - }% % \end{macrocode} -% Call \cs{@gls@link}. -% If \pkgopt{footnote} package option has been used, suppress -% hyperlink for first use. +% Plural form % \begin{macrocode} - \ifglsused{#2}% - {% - \@gls@link[#1]{#2}{\@glo@text}% - }% - {% - \gls@checkisacronymlist\@glo@type - \ifthenelse{\(\boolean{@glsisacronymlist}\AND - \boolean{glsacrfootnote}\) \OR\NOT\boolean{glshyperfirst}}% - {% - \@gls@link[#1,hyper=false]{#2}{\@glo@text}% - }% + \glscapscase {% - \@gls@link[#1]{#2}{\@glo@text}% - }% - }% % \end{macrocode} -% Indicate that this entry has now been used +% Don't adjust case % \begin{macrocode} - \glsunset{#2}% - }% -} + \ifglsused\glslabel + {% % \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@Gls@} +% Subsequent use % \begin{macrocode} -\def\@Gls@#1#2[#3]{% - \glsdoifexists{#2}% - {% - \edef\@glo@type{\glsentrytype{#2}}% + #2{\glspluralaccessdisplay + {\glsentryplural{\glslabel}}{\glslabel}}% + {\glsdescriptionpluralaccessdisplay + {\glsentrydescplural{\glslabel}}{\glslabel}}% + {\glssymbolpluralaccessdisplay + {\glsentrysymbolplural{\glslabel}}{\glslabel}} + {\glsinsert}% + }% + {% % \end{macrocode} -% Save options in \cs{@gls@link@opts} and label in \cs{@gls@link@label} +% First use % \begin{macrocode} - \def\@gls@link@opts{#1}% - \def\@gls@link@label{#2}% + #1{\glsfirstpluralaccessdisplay + {\glsentryfirstplural{\glslabel}}{\glslabel}}% + {\glsdescriptionpluralaccessdisplay + {\glsentrydescplural{\glslabel}}{\glslabel}}% + {\glssymbolpluralaccessdisplay + {\glsentrysymbolplural{\glslabel}}{\glslabel}}% + {\glsinsert}% + }% + }% + {% % \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}). The first character of the entry text is -% converted to uppercase before passing to -% \cs{gls@}\meta{type}"@display" or -% \cs{gls@}\meta{type}"@displayfirst" +% Make first letter upper case % \begin{macrocode} - \ifglsused{#2}% - {% - \def\@glo@text{\csname gls@\@glo@type @display\endcsname - {\glstextaccessdisplay{\Glsentrytext{#2}}{#2}}% - {\glsdescriptionaccessdisplay{\glsentrydesc{#2}}{#2}}% - {\glssymbolaccessdisplay{\glsentrysymbol{#2}}{#2}}% - {#3}}% - }% - {% - \def\@glo@text{\csname gls@\@glo@type @displayfirst\endcsname - {\glsfirstaccessdisplay{\Glsentryfirst{#2}}{#2}}% - {\glsdescriptionaccessdisplay{\glsentrydesc{#2}}{#2}}% - {\glssymbolaccessdisplay{\glsentrysymbol{#2}}{#2}}% - {#3}}% - }% + \ifglsused\glslabel + {% % \end{macrocode} -% Call \cs{@gls@link}. -% If \pkgopt{footnote} package option has been used, suppress -% hyperlink for first use. +% Subsequent use. % \begin{macrocode} - \ifglsused{#2}% - {% - \@gls@link[#1]{#2}{\@glo@text}% - }% - {% - \gls@checkisacronymlist\@glo@type - \ifthenelse{\(\boolean{@glsisacronymlist}\AND - \boolean{glsacrfootnote}\) \OR\NOT\boolean{glshyperfirst}}% - {% - \@gls@link[#1,hyper=false]{#2}{\@glo@text}% - }% - {% - \@gls@link[#1]{#2}{\@glo@text}% - }% - }% + #2{\glspluralaccessdisplay + {\Glsentryplural{\glslabel}}{\glslabel}}% + {\glsdescriptionpluralaccessdisplay + {\glsentrydescplural{\glslabel}}{\glslabel}}% + {\glssymbolpluralaccessdisplay + {\glsentrysymbolplural{\glslabel}}{\glslabel}}% + {\glsinsert}% + }% + {% % \end{macrocode} -% Indicate that this entry has now been used +% First use % \begin{macrocode} - \glsunset{#2}% - }% -} + #1{\glsfirstpluralaccessdisplay + {\Glsentryfirstplural{\glslabel}}{\glslabel}}% + {\glsdescriptionpluralaccessdisplay + {\glsentrydescplural{\glslabel}}{\glslabel}}% + {\glssymbolpluralaccessdisplay + {\glsentrysymbolplural{\glslabel}}{\glslabel}}% + {\glsinsert}% + }% + }% + {% % \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@GLS@} +% Make all upper case % \begin{macrocode} -\def\@GLS@#1#2[#3]{% - \glsdoifexists{#2}{% - \edef\@glo@type{\glsentrytype{#2}}% + \ifglsused\glslabel + {% % \end{macrocode} -% Save options in \cs{@gls@link@opts} and label in \cs{@gls@link@label} +% Subsequent use % \begin{macrocode} - \def\@gls@link@opts{#1}% - \def\@gls@link@label{#2}% + \MakeUppercase{% + #2{\glspluralaccessdisplay + {\glsentryplural{\glslabel}}{\glslabel}}% + {\glsdescriptionpluralaccessdisplay + {\glsentrydescplural{\glslabel}}{\glslabel}}% + {\glssymbolpluralaccessdisplay + {\glsentrysymbolplural{\glslabel}}{\glslabel}}% + {\glsinsert}}% + }% + {% % \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}). +% First use % \begin{macrocode} - \ifglsused{#2}% - {% - \def\@glo@text{\csname gls@\@glo@type @display\endcsname - {\glstextaccessdisplay{\glsentrytext{#2}}{#2}}% - {\glsdescriptionaccessdisplay{\glsentrydesc{#2}}{#2}}% - {\glssymbolaccessdisplay{\glsentrysymbol{#2}}{#2}}% - {#3}}% + \MakeUppercase{% + #1{\glsfirstpluralaccessdisplay + {\glsentryfirstplural{\glslabel}}{\glslabel}}% + {\glsdescriptionpluralaccessdisplay + {\glsentrydescplural{\glslabel}}{\glslabel}}% + {\glssymbolpluralaccessdisplay + {\glsentrysymbolplural{\glslabel}}{\glslabel}}% + {\glsinsert}}% + }% + }% }% {% - \edef\@glo@text{\csname gls@\@glo@type @displayfirst\endcsname - {\glsfirstaccessdisplay{\glsentryfirst{#2}}{#2}}% - {\glsdescriptionaccessdisplay{\glsentrydesc{#2}}{#2}}% - {\glssymbolaccessdisplay{\glsentrysymbol{#2}}{#2}}% - {#3}}% - }% % \end{macrocode} -% Call \cs{@gls@link} -% If \pkgopt{footnote} package option has been used, suppress -% hyperlink for first use. -%\changes{1.16}{2008 August 27}{Test glossary type is 'acronymtype in addition to -%checking if footnote option has been used} +% Singular form % \begin{macrocode} - \ifglsused{#2}% - {% - \@gls@link[#1]{#2}{\MakeUppercase{\@glo@text}}% - }% - {% - \gls@checkisacronymlist\@glo@type - \ifthenelse{\(\boolean{@glsisacronymlist}\AND - \boolean{glsacrfootnote}\) \OR\NOT\boolean{glshyperfirst}}{% - \@gls@link[#1,hyper=false]{#2}{\MakeUppercase{\@glo@text}}% - }% + \glscapscase {% - \@gls@link[#1]{#2}{\MakeUppercase{\@glo@text}}% - }% - }% % \end{macrocode} -% Indicate that this entry has now been used +% Don't adjust case % \begin{macrocode} - \glsunset{#2}% - }% -} -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@gls@pl@} -% \begin{macrocode} -\def\@glspl@#1#2[#3]{% - \glsdoifexists{#2}% - {% - \edef\@glo@type{\glsentrytype{#2}}% -% \end{macrocode} -% Save options in \cs{@gls@link@opts} and label in \cs{@gls@link@label} -% \begin{macrocode} - \def\@gls@link@opts{#1}% - \def\@gls@link@label{#2}% + \ifglsused\glslabel + {% % \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) +% Subsequent use % \begin{macrocode} - \ifglsused{#2}% - {% - \def\@glo@text{\csname gls@\@glo@type @display\endcsname - {\glspluralaccessdisplay{\glsentryplural{#2}}{#2}}% - {\glsdescriptionpluralaccessdisplay{\glsentrydescplural{#2}}{#2}}% - {\glssymbolpluralaccessdisplay{\glsentrysymbolplural{#2}}{#2}}% - {#3}}% - }% - {% - \def\@glo@text{\csname gls@\@glo@type @displayfirst\endcsname - {\glsfirstpluralaccessdisplay{\glsentryfirstplural{#2}}{#2}}% - {\glsdescriptionpluralaccessdisplay{\glsentrydescplural{#2}}{#2}}% - {\glssymbolpluralaccessdisplay{\glsentrysymbolplural{#2}}{#2}}% - {#3}}% - }% + #2{\glstextaccessdisplay + {\glsentrytext{\glslabel}}{\glslabel}}% + {\glsdescriptionaccessdisplay + {\glsentrydesc{\glslabel}}{\glslabel}}% + {\glssymbolaccessdisplay + {\glsentrysymbol{\glslabel}}{\glslabel}}% + {\glsinsert}% + }% + {% % \end{macrocode} -% Call \cs{@gls@link} -% If \pkgopt{footnote} package option has been used, suppress -% hyperlink for first use. -%\changes{1.16}{2008 August 27}{Test glossary type is 'acronymtype in addition to -%checking if footnote option has been used} +% First use % \begin{macrocode} - \ifglsused{#2}% - {% - \@gls@link[#1]{#2}{\@glo@text}% - }% - {% - \gls@checkisacronymlist\@glo@type - \ifthenelse{\(\boolean{@glsisacronymlist}\AND - \boolean{glsacrfootnote}\) \OR\NOT\boolean{glshyperfirst}}% - {% - \@gls@link[#1,hyper=false]{#2}{\@glo@text}% + #1{\glsfirstaccessdisplay + {\glsentryfirst{\glslabel}}{\glslabel}}% + {\glsdescriptionaccessdisplay + {\glsentrydesc{\glslabel}}{\glslabel}}% + {\glssymbolaccessdisplay + {\glsentrysymbol{\glslabel}}{\glslabel}}% + {\glsinsert}% + }% }% {% - \@gls@link[#1]{#2}{\@glo@text}% - }% - }% -% \end{macrocode} -% Indicate that this entry has now been used -% \begin{macrocode} - \glsunset{#2}% - }% -} % \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@Glspl@} +% Make first letter upper case % \begin{macrocode} -\def\@Glspl@#1#2[#3]{% - \glsdoifexists{#2}% - {% - \edef\@glo@type{\glsentrytype{#2}}% + \ifglsused\glslabel + {% % \end{macrocode} -% Save options in \cs{@gls@link@opts} and label in \cs{@gls@link@label} +% Subsequent use % \begin{macrocode} - \def\@gls@link@opts{#1}% - \def\@gls@link@label{#2}% -% \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}). -% \begin{macrocode} - \ifglsused{#2}% - {% - \def\@glo@text{\csname gls@\@glo@type @display\endcsname - {\glspluralaccessdisplay{\Glsentryplural{#2}}{#2}}% - {\glsdescriptionpluralaccessdisplay{\glsentrydescplural{#2}}{#2}}% - {\glssymbolpluralaccessdisplay{\glsentrysymbolplural{#2}}{#2}}% - {#3}}% - }% - {% - \def\@glo@text{\csname gls@\@glo@type @displayfirst\endcsname - {\glsfirstpluralaccessdisplay{\Glsentryfirstplural{#2}}{#2}}% - {\glsdescriptionpluralaccessdisplay{\glsentrydescplural{#2}}{#2}}% - {\glssymbolpluralaccessdisplay{\glsentrysymbolplural{#2}}{#2}}% - {#3}}% - }% + #2{\glstextaccessdisplay + {\Glsentrytext{\glslabel}}{\glslabel}}% + {\glsdescriptionaccessdisplay + {\glsentrydesc{\glslabel}}{\glslabel}}% + {\glssymbolaccessdisplay + {\glsentrysymbol{\glslabel}}{\glslabel}}% + {\glsinsert}% + }% + {% % \end{macrocode} -% Call \cs{@gls@link} -% If \pkgopt{footnote} package option has been used, suppress -% hyperlink for first use. +% First use % \begin{macrocode} - \ifglsused{#2}% - {% - \@gls@link[#1]{#2}{\@glo@text}% - }% - {% - \ifthenelse{\equal{\@glo@type}{\acronymtype}\and - \boolean{glsacrfootnote}}% - {% - \@gls@link[#1,hyper=false]{#2}{\@glo@text}% + #1{\glsfirstaccessdisplay + {\Glsentryfirst{\glslabel}}{\glslabel}}% + {\glsdescriptionaccessdisplay + {\glsentrydesc{\glslabel}}{\glslabel}}% + {\glssymbolaccessdisplay + {\glsentrysymbol{\glslabel}}{\glslabel}}% + {\glsinsert}% + }% }% {% - \@gls@link[#1]{#2}{\@glo@text}% - }% - }% % \end{macrocode} -% Indicate that this entry has now been used +% Make all upper case % \begin{macrocode} - \glsunset{#2}% - }% -} + \ifglsused\glslabel + {% % \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@GLSpl@} +% Subsequent use % \begin{macrocode} -\def\@GLSpl@#1#2[#3]{% - \glsdoifexists{#2}% - {% - \edef\@glo@type{\glsentrytype{#2}}% + \MakeUppercase{% + #2{\glstextaccessdisplay + {\glsentrytext{\glslabel}}{\glslabel}}% + {\glsdescriptionaccessdisplay + {\glsentrydesc{\glslabel}}{\glslabel}}% + {\glssymbolaccessdisplay + {\glsentrysymbol{\glslabel}}{\glslabel}}% + {\glsinsert}}% + }% + {% % \end{macrocode} -% Save options in \cs{@gls@link@opts} and label in \cs{@gls@link@label} +% First use % \begin{macrocode} - \def\@gls@link@opts{#1}% - \def\@gls@link@label{#2}% + \MakeUppercase{% + #1{\glsfirstaccessdisplay + {\glsentryfirst{\glslabel}}{\glslabel}}% + {\glsdescriptionaccessdisplay + {\glsentrydesc{\glslabel}}{\glslabel}}% + {\glssymbolaccessdisplay + {\glsentrysymbol{\glslabel}}{\glslabel}}% + {\glsinsert}}% + }% + }% + }% + }% + {% % \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) +% Custom text provided in \cs{glsdisp} % \begin{macrocode} - \ifglsused{#2}% - {% - \def\@glo@text{\csname gls@\@glo@type @display\endcsname - {\glspluralaccessdisplay{\glsentryplural{#2}}{#2}}% - {\glsdescriptionpluralaccessdisplay{\glsentrydescplural{#2}}{#2}}% - {\glssymbolpluralaccessdisplay{\glsentrysymbolplural{#2}}{#2}}% - {#3}}% - }% + \ifglsused{\glslabel}% {% - \def\@glo@text{\csname gls@\@glo@type @displayfirst\endcsname - {\glsfirstpluralaccessdisplay{\glsentryfirstplural{#2}}{#2}}% - {\glsdescriptionpluralaccessdisplay{\glsentrydescplural{#2}}{#2}}% - {\glssymbolpluralaccessdisplay{\glsentrysymbolplural{#2}}{#2}}% - {#3}}% - }% % \end{macrocode} -% Call \cs{@gls@link} -% If \pkgopt{footnote} package option has been used, suppress -% hyperlink for first use. +% Subsequent use % \begin{macrocode} - \ifglsused{#2}% - {% - \@gls@link[#1]{#2}{\MakeUppercase{\@glo@text}}% + #2{\glscustomtext}% + {\glsdescriptionaccessdisplay + {\glsentrydesc{\glslabel}}{\glslabel}}% + {\glssymbolaccessdisplay + {\glsentrysymbol{\glslabel}}{\glslabel}}% + {\glsinsert}% }% {% - \gls@checkisacronymlist\@glo@type - \ifthenelse{\(\boolean{@glsisacronymlist}\AND - \boolean{glsacrfootnote}\)\OR\NOT\boolean{glshyperfirst}}% - {% - \@gls@link[#1,hyper=false]{#2}{\MakeUppercase{\@glo@text}}% - }% - {% - \@gls@link[#1]{#2}{\MakeUppercase{\@glo@text}}% - }% - }% % \end{macrocode} -% Indicate that this entry has now been used +% First use % \begin{macrocode} - \glsunset{#2}% + #1{\glscustomtext}% + {\glsdescriptionaccessdisplay + {\glsentrydesc{\glslabel}}{\glslabel}}% + {\glssymbolaccessdisplay + {\glsentrysymbol{\glslabel}}{\glslabel}}% + {\glsinsert}% + }% }% } % \end{macrocode} @@ -16518,16 +19757,20 @@ false,nolabel,autolabel}[nolabel]{% {% \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) +%\changes{3.11a}{2013-10-15}{added \cs{glslabel}, \cs{glsifplural}, +% \cs{glscapscase}, \cs{glsinsert} and \cs{glscustomtext}} % \begin{macrocode} - \def\@glo@text{% - \glsshortaccessdisplay{\glsentryshort{#2}}{#2}% + \def\glslabel{#2}% + \let\glsifplural\@secondoftwo + \let\glscapscase\@firstofthree + \let\glsinsert\@empty + \def\glscustomtext{% + \acronymfont{\glsshortaccessdisplay{\glsentryshort{#2}}{#2}}#3% }% % \end{macrocode} % Call \cs{@gls@link} % \begin{macrocode} - \@gls@link[#1]{#2}{\acronymfont{\@glo@text}#3}% + \@gls@link[#1]{#2}{\csname gls@\@glo@type @entryfmt\endcsname}% }% } % \end{macrocode} @@ -16540,16 +19783,20 @@ false,nolabel,autolabel}[nolabel]{% {% \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) +%\changes{3.11a}{2013-10-15}{added \cs{glslabel}, \cs{glsifplural}, +% \cs{glscapscase}, \cs{glsinsert} and \cs{glscustomtext}} % \begin{macrocode} - \def\@glo@text{% - \glsshortaccessdisplay{\Glsentryshort{#2}}{#2}% + \def\glslabel{#2}% + \let\glsifplural\@secondoftwo + \let\glscapscase\@secondofthree + \let\glsinsert\@empty + \def\glscustomtext{% + \acronymfont{\glsshortaccessdisplay{\Glsentryshort{#2}}{#2}}#3% }% % \end{macrocode} % Call \cs{@gls@link} % \begin{macrocode} - \@gls@link[#1]{#2}{\acronymfont{\@glo@text}#3}% + \@gls@link[#1]{#2}{\csname gls@\@glo@type @entryfmt\endcsname}% }% } % \end{macrocode} @@ -16562,16 +19809,21 @@ false,nolabel,autolabel}[nolabel]{% {% \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) +%\changes{3.11a}{2013-10-15}{added \cs{glslabel}, \cs{glsifplural}, +% \cs{glscapscase}, \cs{glsinsert} and \cs{glscustomtext}} % \begin{macrocode} - \def\@glo@text{% - \glsshortaccessdisplay{\MakeUppercase{\glsentryshort{#2}}}{#2}% + \def\glslabel{#2}% + \let\glsifplural\@secondoftwo + \let\glscapscase\@thirdofthree + \let\glsinsert\@empty + \def\glscustomtext{% + \acronymfont{\glsshortaccessdisplay + {\MakeUppercase{\glsentryshort{#2}}}{#2}}#3% }% % \end{macrocode} % Call \cs{@gls@link} % \begin{macrocode} - \@gls@link[#1]{#2}{\acronymfont{\@glo@text#3}}% + \@gls@link[#1]{#2}{\csname gls@\@glo@type @entryfmt\endcsname}% }% } % \end{macrocode} @@ -16584,16 +19836,20 @@ false,nolabel,autolabel}[nolabel]{% {% \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) +%\changes{3.11a}{2013-10-15}{added \cs{glslabel}, \cs{glsifplural}, +% \cs{glscapscase}, \cs{glsinsert} and \cs{glscustomtext}} % \begin{macrocode} - \def\@glo@text{% - \glslongaccessdisplay{\glsentrylong{#2}}{#2}% + \def\glslabel{#2}% + \let\glsifplural\@secondoftwo + \let\glscapscase\@firstofthree + \let\glsinsert\@empty + \def\glscustomtext{% + \acronymfont{\glslongaccessdisplay{\glsentrylong{#2}}{#2}}#3% }% % \end{macrocode} % Call \cs{@gls@link} % \begin{macrocode} - \@gls@link[#1]{#2}{\@glo@text#3}% + \@gls@link[#1]{#2}{\csname gls@\@glo@type @entryfmt\endcsname}% }% } % \end{macrocode} @@ -16606,16 +19862,20 @@ false,nolabel,autolabel}[nolabel]{% {% \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) +%\changes{3.11a}{2013-10-15}{added \cs{glslabel}, \cs{glsifplural}, +% \cs{glscapscase}, \cs{glsinsert} and \cs{glscustomtext}} % \begin{macrocode} - \def\@glo@text{% - \glslongaccessdisplay{\Glsentrylong{#2}}{#2}% + \def\glslabel{#2}% + \let\glsifplural\@secondoftwo + \let\glscapscase\@firstofthree + \let\glsinsert\@empty + \def\glscustomtext{% + \acronymfont{\glslongaccessdisplay{\Glsentrylong{#2}}{#2}}#3% }% % \end{macrocode} % Call \cs{@gls@link} % \begin{macrocode} - \@gls@link[#1]{#2}{\@glo@text#3}% + \@gls@link[#1]{#2}{\csname gls@\@glo@type @entryfmt\endcsname}% }% } % \end{macrocode} @@ -16628,47 +19888,94 @@ false,nolabel,autolabel}[nolabel]{% {% \edef\@glo@type{\glsentrytype{#2}}% % \end{macrocode} -% Determine what the link text should be (this is stored in -% \cs{@glo@text}) +%\changes{3.11a}{2013-10-15}{added \cs{glslabel}, \cs{glsifplural}, +% \cs{glscapscase}, \cs{glsinsert} and \cs{glscustomtext}} % \begin{macrocode} - \def\@glo@text{% - \glslongaccessdisplay{\MakeUppercase{\glsentrylong{#2}}}{#2}% + \def\glslabel{#2}% + \let\glsifplural\@secondoftwo + \let\glscapscase\@firstofthree + \let\glsinsert\@empty + \def\glscustomtext{% + \acronymfont{\glslongaccessdisplay{% + \MakeUppercase{\glsentrylong{#2}}}{#2}#3}% }% % \end{macrocode} % Call \cs{@gls@link} % \begin{macrocode} - \@gls@link[#1]{#2}{\@glo@text#3}% + \@gls@link[#1]{#2}{\csname gls@\@glo@type @entryfmt\endcsname}% }% } % \end{macrocode} %\end{macro} % %\subsection{Displaying the Glossary} -% Entries within the glossary or list of acronyms are now formatted -% via \cs{accsuppglossaryentryfield} and +%\changes{3.08a}{2013-09-28}{removed definition of \cs{@glossaryentryfield}} +%\changes{3.08a}{2013-09-28}{removed definition of \cs{@glossarysubentryfield}} +% +% We need to redefine the way the glossary entries are formatted to +% include the accessibility support. The predefined glossary styles +% use \ics{glossentryname}, \ics{glossentrydesc} and +% \ics{glossentrysymbol}, but we need to provide compatibility with +% earlier versions in case users have defined their own styles using +% \cs{accsuppglossaryentryfield} and % \cs{accsuppglossarysubentryfield}. -%\begin{macro}{\@glossaryentryfield} +% +% Now redefine \cs{glossentryname}, \cs{glossentrydesc} and +% \cs{glossentrysymbol} etc so they use the accessibility stuff. % \begin{macrocode} -\ifglsxindy - \renewcommand*{\@glossaryentryfield}{% - \string\\accsuppglossaryentryfield} -\else - \renewcommand*{\@glossaryentryfield}{% - \string\accsuppglossaryentryfield} -\fi +\renewcommand*{\glossentryname}[1]{% + \glsdoifexists{#1}% + {% + \glsnamefont{\glsnameaccessdisplay{\glsentryname{#1}}{#1}}% + }% +} % \end{macrocode} -%\end{macro} -%\begin{macro}{\@glossarysubentryfield} +% % \begin{macrocode} -\ifglsxindy - \renewcommand*{\@glossarysubentryfield}{% - \string\\accsuppglossarysubentryfield} -\else - \renewcommand*{\@glossarysubentryfield}{% - \string\accsuppglossarysubentryfield} -\fi +\renewcommand*{\glossentryname}[1]{% + \glsdoifexists{#1}% + {% + \glsnamefont{\glsnameaccessdisplay{\Glsentryname{#1}}{#1}}% + }% +} % \end{macrocode} -%\end{macro} +% +% \begin{macrocode} +\renewcommand*{\glossentrydesc}[1]{% + \glsdoifexists{#1}% + {% + \glsdescriptionaccessdisplay{\glsentrydesc{#1}}{#1}% + }% +} +% \end{macrocode} +% +% \begin{macrocode} +\renewcommand*{\Glossentrydesc}[1]{% + \glsdoifexists{#1}% + {% + \glsdescriptionaccessdisplay{\Glsentrydesc{#1}}{#1}% + }% +} +% \end{macrocode} +% +% \begin{macrocode} +\renewcommand*{\glossentrysymbol}[1]{% + \glsdoifexists{#1}% + {% + \glssymbolaccessdisplay{\glsentrysymbol{#1}}{#1}% + }% +} +% \end{macrocode} +% +% \begin{macrocode} +\renewcommand*{\Glossentrysymbol}[1]{% + \glsdoifexists{#1}% + {% + \glssymbolaccessdisplay{\Glsentrysymbol{#1}}{#1}% + }% +} +% \end{macrocode} +% %\begin{macro}{\accsuppglossaryentryfield} % \begin{macrocode} \newcommand*{\accsuppglossaryentryfield}[5]{% @@ -16682,7 +19989,7 @@ false,nolabel,autolabel}[nolabel]{% %\begin{macro}{\accsuppglossarysubentryfield} % \begin{macrocode} \newcommand*{\accsuppglossarysubentryfield}[6]{% - \glossaryentryfield{#1}{#2}% + \glossarysubentryfield{#1}{#2}% {\glsnameaccessdisplay{#3}{#2}}% {\glsdescriptionaccessdisplay{#4}{#2}}% {\glssymbolaccessdisplay{#5}{#2}}{#6}% @@ -16993,7 +20300,7 @@ false,nolabel,autolabel}[nolabel]{% % support is required, but the \isty{translator} package is not loaded. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries-babel}[2009/04/16 v1.2 (NLCT)] +\ProvidesPackage{glossaries-babel}[2013/11/14 v4.0 (NLCT)] % \end{macrocode} % English: % \begin{macrocode} @@ -17308,7 +20615,7 @@ false,nolabel,autolabel}[nolabel]{% %\subsection{Polyglossia Captions} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries-polyglossia}[2009/11/09 v1.0 (NLCT)] +\ProvidesPackage{glossaries-polyglossia}[2013/11/14 v4.0 (NLCT)] % \end{macrocode} % English: % \begin{macrocode} @@ -17846,15 +21153,29 @@ false,nolabel,autolabel}[nolabel]{% % A further run through LaTeX will be required to ensure that % the table of contents is up to date if the toc option % is used. + % Alternatively, if you use arara, you can add the following + % directives in your document: + % + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } + \documentclass{article} \listfiles \usepackage[colorlinks]{hyperref} - \usepackage{glossaries} % acronym will go in main glossary - %\usepackage[acronym]{glossaries} % make a separate list of acronyms + %\usepackage{glossaries} % acronym will go in main glossary + \usepackage[acronym]{glossaries} % make a separate list of acronyms \makeglossaries +\longnewglossaryentry{par}{name={par}}% +{% + A long description with a paragraph break. + + This is the next paragraph. +} + \newglossaryentry{sample}{name={sample}, description={a sample entry}} @@ -17869,6 +21190,9 @@ A \gls{sample} entry and \gls{aca}. Second use: \gls{aca}. Plurals: \glspl{sample}. Reset acronym\glsreset{aca}. First use: \glspl{aca}. Second use: \glspl{aca}. +If you want paragraph breaks in the description use +\verb|\longnewglossaryentry|, as with entry \gls{par}. + \printglossaries \end{document} % \end{macrocode} @@ -17885,6 +21209,11 @@ First use: \glspl{aca}. Second use: \glspl{aca}. %\fi %\iffalse % \begin{macrocode} + % This file is public domain + % If you want to use arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } \documentclass{article} \usepackage[colorlinks]{hyperref} @@ -17908,10 +21237,10 @@ a \gls{pear}}} \newglossaryentry{fruit}{name=fruit, description={sweet, fleshy product of plant containing seed}} -% \glssee{fruit}{pear,apple,banana} +\glssee{fruit}{pear,apple,banana} \begin{document} -%\gls{pear}, \gls{apple} and \gls{banana}. +\gls{pear}, \gls{apple} and \gls{banana}. \printglossaries @@ -17931,15 +21260,17 @@ description={sweet, fleshy product of plant containing seed}} %\iffalse % \begin{macrocode} % This file is public domain + % If you want to use arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } \documentclass{report} \usepackage[colorlinks]{hyperref} \usepackage[acronym, % create list of acronyms nomain, % don't need main glossary for this example style=tree, % need a style that displays the symbol - hyperfirst=false,% don't hyperlink first use - sanitize=none % switch off sanitization as description - % will be used in the main text + hyperfirst=false% don't hyperlink first use ]{glossaries} \makeglossaries @@ -17951,7 +21282,7 @@ description={sweet, fleshy product of plant containing seed}} % document the short form will be displayed in small caps, but in % the list of acronyms the short form is displayed in normal % capitals. To ensure this, the short form should be written in - % lower case when the acronym is defined, and \MakeUppercase is + % lower case when the acronym is defined, and \MakeTextUppercase is % used when it's displayed in the list of acronyms. % In the list of acronyms, the long form is used as the name, the @@ -17960,28 +21291,14 @@ description={sweet, fleshy product of plant containing seed}} \renewcommand*{\CustomAcronymFields}{% name={\the\glslongtok},% - symbol={\MakeUppercase{\the\glsshorttok}},% + symbol={\MakeTextUppercase{\the\glsshorttok}},% text={\textsc{\the\glsshorttok}},% plural={\textsc{\the\glsshorttok}\noexpand\acrpluralsuffix}% } \renewcommand*{\SetCustomDisplayStyle}[1]{% - % ##1 corresponds to the 'first' key - % ##2 corresponds to the 'description' key - % ##3 corresponds to the 'symbol' key - % ##4 is the inserted text given by the final optional argument to - % commands like \gls - % The short form can be obtained via \glsentryshort{\glslabel} - % The plural short form can be obtained via - % \glsentryshortplural{\glslabel} - % The long form can be obtained via \glsentrylong{\glslabel} - % The plural long form can be obtained via - % \glsentrylongplural{\glslabel} - \defglsdisplayfirst[#1]{##1##4\protect\footnote{% - \glsentrylong{\glslabel}: ##2}}% - % ##1 corresponds to the 'text' key - % the rest as above - \defglsdisplay[#1]{##1##4}% + \defglsentryfmt[#1]{\glsgenentryfmt + \ifglsused{\glslabel}{}{\footnote{\glsentrylong{\glslabel}}}}% } % Now set the custom acronym style (to override the default style) @@ -18020,6 +21337,10 @@ Sheet} %\iffalse % \begin{macrocode} % This file is public domain + % If you want to use arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } \documentclass{article} \usepackage[acronym]{glossaries} @@ -18028,11 +21349,11 @@ Sheet} \newcommand*{\newdualentry}[5][]{% \newglossaryentry{main-#2}{name={#4},% - text={#3\protect\glsadd{#2}},% + text={#3\glsadd{#2}},% description={#5},% #1 }% - \newacronym{#2}{#3\protect\glsadd{main-#2}}{#4} + \newacronym{#2}{#3\glsadd{main-#2}}{#4} } \newdualentry{svm}% label @@ -18057,12 +21378,178 @@ Sheet} %\fi %\iffalse % \begin{macrocode} +%<*sample-entryfmt.tex> +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} + % This file is public domain + % If you want to use arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } +\documentclass{article} + +\usepackage[colorlinks]{hyperref} +\usepackage[style=tree]{glossaries} + +\makeglossaries + +\renewcommand*{\glsentryfmt}{% + \glsgenentryfmt + \ifglsused{\glslabel}{}{\space (\glsentrysymbol{\glslabel})}% +} + +\newglossaryentry{distance}{name=distance, +description={The length between two points}, +symbol={km}} + +\begin{document} + +First use: \gls{distance}. Next use: \gls{distance}. + +\printglossaries + +\end{document} +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%</sample-entryfmt.tex> +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*sample-FnDesc.tex> +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} + % This file is public domain + % If you are using arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } +\documentclass{report} + +\usepackage[colorlinks]{hyperref} +\usepackage[hyperfirst=false]{glossaries} + +\makeglossaries + +\renewcommand*{\glsentryfmt}{% + \glsgenentryfmt + \ifglsused{\glslabel}{}{\footnote{\glsentrydesc{\glslabel}}}% +} + +\newglossaryentry{sample}{name={sample},description={an example +description}} + +\begin{document} +\chapter{Sample Chapter} + +First use: \gls{sample}. + +Next use: \gls{sample}. + +\printglossaries +\end{document} +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%</sample-FnDesc.tex> +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*sample-index.tex> +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} + % This file is public domain + % If you want to use arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } +\documentclass{report} + +\usepackage[colorlinks]{hyperref} +\usepackage[toc]{glossaries} +\usepackage{glossary-mcols} + +\newglossary[ilg]{index}{ind}{idx}{\indexname} + +\makeglossaries + +\newcommand*{\newterm}[2][]{% + \newglossaryentry{#2}{type={index},name={#2},description={\nopostdesc},#1}% +} + +% define terms for the index + +\newterm[plural={stegosauruses}]{stegosaurus} +\newterm[plural={triceratopses}]{triceratops} +\newterm[plural={apatosauruses}]{apatosaurus} + +\newterm[name={dinosaur}]{ind-dinosaur} +\newterm[name={Triassic}]{ind-triassic} + +% define terms for the main glossary + +\newglossaryentry{dinosaur}% +{% + name={dinosaur\glsadd{ind-dinosaur}},% + description={One of a group of dinosauria}% +} + +\newglossaryentry{Triassic}% +{% + name={Triassic\glsadd{ind-triassic}},% + description={The first period of the Mesozoic Era} +} + +\begin{document} +\tableofcontents + +\chapter{Dinosaurs} + +\Glspl{dinosaur} are now extinct. They first appeared during the +\gls{Triassic} period. Examples of \glspl{dinosaur} include the +\gls{triceratops}, the \gls{apatosaurus} and the \gls{stegosaurus}. + +\renewcommand*{\glsnamefont}[1]{\textbf{\makefirstuc{#1}}} + +\printglossary[style=long,nogroupskip] + +\renewcommand*{\glsnamefont}[1]{\textmd{#1}} + +\printglossary[type=index,style=mcolindexgroup] + +\end{document} +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%</sample-index.tex> +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} %<*sample-inline.tex> % \end{macrocode} %\fi %\iffalse % \begin{macrocode} % This file is public domain + % If you want to use arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } + % arara: pdflatex: { synctex: on } \documentclass[a4paper]{report} \usepackage[plainpages=false,colorlinks]{hyperref} @@ -18072,7 +21559,7 @@ Sheet} \renewcommand*{\glossarysection}[2][]{\textbf{#1}: } \renewcommand{\glsnamefont}[1]{\textsc{#1}} -\glossarystyle{inline} +\setglossarystyle{inline} \makeglossaries @@ -18219,6 +21706,11 @@ There are two types of ordering: word ordering (which places %\fi %\iffalse % \begin{macrocode} + % This file is public domain + % If you want to use arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } \documentclass[english,french]{article} \usepackage[utf8]{inputenc} @@ -18267,6 +21759,9 @@ Le \gls{fr-cat} s'est repos\'e sur la \gls{fr-mat}. %\fi %\iffalse % \begin{macrocode} + % This file is public domain + % If you want to use arara, you need the following directive: + % arara: pdflatex: { synctex: on } \documentclass{article} \usepackage{mfirstuc} @@ -18306,11 +21801,149 @@ Le \gls{fr-cat} s'est repos\'e sur la \gls{fr-mat}. %\fi %\iffalse % \begin{macrocode} +%<*sample-newkeys.tex> +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} + % This file is public domain + % If you are using arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } +\documentclass{article} + +\usepackage[colorlinks]{hyperref} +\usepackage[nopostdot,nogroupskip]{glossaries} + +\glsaddkey*% star version needed as default value needs expanding + {ed}% key + {\glsentrytext{\glslabel}ed}% default value + {\glsentryed}% command analogous to \glsentrytext + {\Glsentryed}% command analogous to \Glsentrytext + {\glsed}% command analogous to \glstext + {\Glsed}% command analogous to \Glstext + {\GLSed}% command analogous to \GLStext + +\glsaddkey* + {ing}% key + {\glsentrytext{\glslabel}ing}% default value + {\glsentrying}% command analogous to \glsentrytext + {\Glsentrying}% command analogous to \Glsentrytext + {\glsing}% command analogous to \glstext + {\Glsing}% command analogous to \Glstext + {\GLSing}% command analogous to \GLStext + + +\makeglossaries + +\newglossaryentry{jump}{name={jump},description={}} + +\newglossaryentry{run}{name={run},% + ed={ran},% + ing={running}, + description={}} + +\newglossaryentry{waddle}{name={waddle},% + ed={waddled},% + ing={waddling},% + description={}} + +\begin{document} + +This is a sample document illustrating how to add new glossary entry +keys. + +The dog \glsed{jump} over the duck. + +The duck was \glsing{waddle} round the dog. + +The dog \glsed{run} away from the duck. + +\printglossaries + +\end{document} +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%</sample-newkeys.tex> +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*sample-nomathhyper.tex> +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} + % This file is public domain + % If you want to use arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } +\documentclass{report} + +\usepackage[colorlinks]{hyperref} +\usepackage{glossaries} + +\makeglossaries + + % switch off hyperlinks: +\glsdisablehyper + + % redefine \glsentryfmt so that it adds a hyperlink + % if not in math mode +\renewcommand*{\glsentryfmt}{% + \ifmmode + \glsgenentryfmt + \else + % Temporarily enable hyperlinks: + \glsenablehyper + \glshyperlink[\glsgenentryfmt]{\glslabel}% + % Disable hyperlinks again + \glsdisablehyper + \fi +} + +\renewcommand{\glossarypreamble}{\glsenablehyper} +\renewcommand{\glossarypostamble}{\glsdisablehyper} + + % define a sample entry: +\newglossaryentry{x}{name={x},description={sample entry}} + +\begin{document} +\chapter{Sample} +In text mode: \gls{x}. Inline maths: $\gls{x}$. Displayed +maths: +\[ + \gls{x} +\] + +Back to text mode again: \gls{x}. + +\printglossaries +\end{document} +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%</sample-nomathhyper.tex> +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} %<*sample-numberlist.tex> % \end{macrocode} %\fi %\iffalse % \begin{macrocode} + % This file is public domain + % If you want to use arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } + % arara: pdflatex: { synctex: on } \documentclass{report} \usepackage[colorlinks]{hyperref} @@ -18354,12 +21987,139 @@ Here's some more information about \glspl{sample}. %\fi %\iffalse % \begin{macrocode} +%<*sample-prefix.tex> +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} + % This file is public domain + % If you want to use arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } + % arara: pdflatex: { synctex: on } + +\documentclass{article} + +\usepackage[colorlinks]{hyperref} +\usepackage[toc,acronym]{glossaries-prefix} + +\makeglossaries + +\newglossaryentry{sample}{name={sample}, + description={an example}, + prefix={a~}, + prefixplural={the\space}% +} + +\newglossaryentry{oeil}{name={oeil}, + plural={yeux}, + description={eye}, + prefix={l'}, + prefixplural={les\space}} + +\newacronym + [% + prefix={an\space},prefixfirst={a~}% + ]{svm}{SVM}{support vector machine} + +\newglossarystyle{plist}{% + \setglossarystyle{list}% + \renewcommand*{\glossentry}[2]{% + \item[\glsentryitem{##1}% + \Glsentryprefix{##1}% + \glstarget{##1}{\glossentryname{##1}}] + \glossentrydesc{##1}\glspostdescription\space ##2}% +} + +\begin{document} + +\tableofcontents + +\section{Sample} + +First use: \pgls{sample}, \pgls{svm}, \pgls{oeil}. Next use: \pgls{sample}, \pgls{svm}, \pgls{oeil}. + +Reset. \glsresetall + +First use: \pglspl{sample}, \pglspl{svm}, \pglspl{oeil}. Next use: +\pglspl{sample}, \pglspl{svm}, \pglspl{oeil}. + +Reset. \glsresetall + +First use: \Pgls{sample}, \Pgls{svm}. Next use: \Pgls{sample}, \Pgls{svm}. + +Reset. \glsresetall + +First use: \Pglspl{sample}, \Pglspl{svm}. Next use: \Pglspl{sample}, \Pglspl{svm}. + +Reset. \glsresetall + +First use: \PGLS{sample}, \PGLS{svm}. Next use: \PGLS{sample}, \PGLS{svm}. + +Reset. \glsresetall + +First use: \PGLSpl{sample}, \PGLSpl{svm}. Next use: \PGLSpl{sample}, \PGLSpl{svm}. + +\printglossary[style=plist] + +\printacronyms +\end{document} +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%</sample-prefix.tex> +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*sample-si.tex> +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} + % If you want to use arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } +\documentclass{article} +\usepackage{siunitx} +\usepackage[style=long4col]{glossaries} +% +\makeglossaries +% +\newglossaryentry{ohm}{% + name=ohm, + symbol={\si{\ohm}}, + description=unit of electrical resistance% +} +% +\begin{document} +\glsaddallunused +% +\printglossaries +\end{document} +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%</sample-si.tex> +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} %<*sample.tex> % \end{macrocode} %\fi %\iffalse % \begin{macrocode} % This file is public domain + % If you want to use arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } + % arara: pdflatex: { synctex: on } \documentclass[a4paper]{report} \usepackage[plainpages=false,colorlinks]{hyperref} @@ -18509,6 +22269,10 @@ There are two types of ordering: word ordering (which places %\iffalse % \begin{macrocode} % This file is public domain + % If you want to use arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } \documentclass[a4paper]{article} \usepackage[style=long4colheaderborder]{glossaries} @@ -18548,9 +22312,15 @@ measured in kilograms. %\iffalse % \begin{macrocode} % This file is public domain -\documentclass{article} + % If you want to use arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } +\documentclass[a4paper]{article} -\usepackage[acronym,smallcaps]{glossaries-accsupp} +\usepackage[margin=0.5in]{geometry} +\usepackage{booktabs} +\usepackage[acronym]{glossaries-accsupp} \makeglossaries @@ -18560,16 +22330,28 @@ measured in kilograms. \newacronym{eg}{e.g.}{for example} -\begin{document} -\gls{dr}~Jones. -\gls{dr}~Jones. +\newcommand*{\samplerow}[1]{% + \gls{#1} & \gls{#1} & \acrshort{#1} & \acrlong{#1}\\ + \glsreset{#1}\Gls{#1} & \Gls{#1} & \Acrshort{#1} & \Acrlong{#1}\\ + \glsreset{#1}\GLS{#1} & \GLS{#1} & \ACRshort{#1} & \ACRlong{#1}\\ +} -\Gls{eg}, \gls{eg}, \acrshort{eg}, \acrlong{eg}, \acrfull{eg}. +\begin{document} -\Acrshort{eg}, \ACRshort{eg}. \Acrlong{eg}, \ACRlong{eg}. -\Acrfull{eg}, \ACRfull{eg}. +\begin{center} +\begin{tabular}{lllll} +\toprule +\bfseries First & \bfseries Next & \bfseries Short & \bfseries Long +\\\midrule +\samplerow{dr} +\midrule +\samplerow{eg} +\midrule +\samplerow{svm} +\bottomrule +\end{tabular} +\end{center} -\gls{svm}. \gls{svm}, \acrshort{svm}, \acrlong{svm}, \acrfull{svm}. \printglossaries \end{document} @@ -18588,6 +22370,11 @@ measured in kilograms. %\iffalse % \begin{macrocode} % This file is public domain + % If you want to use arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } + % arara: pdflatex: { synctex: on } \documentclass[a4paper]{report} \usepackage[colorlinks,plainpages=false]{hyperref} @@ -18683,6 +22470,11 @@ You don't need to worry about makeindex's special characters: %\iffalse % \begin{macrocode} % This file is public domain + % If you want to use arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } + % arara: pdflatex: { synctex: on } \documentclass[a4paper]{report} \usepackage[colorlinks,plainpages=false]{hyperref} @@ -18766,6 +22558,10 @@ one \gls[format=hyperbf]{svm}. %\iffalse % \begin{macrocode} % This file is public domain + % If you want to use arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } \documentclass{article} \usepackage[acronym,footnote,acronymlists={main,acronym2}]{glossaries} @@ -18815,6 +22611,10 @@ one \gls[format=hyperbf]{svm}. %\iffalse % \begin{macrocode} % This file is public domain + % If you want to use arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } \documentclass{article} \usepackage[colorlinks,plainpages=false]{hyperref} @@ -18851,13 +22651,18 @@ one \gls[format=hyperbf]{svm}. % This file is public domain % % See also sampleAcrDesc.tex + % + % If you want to use arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } + % arara: pdflatex: { synctex: on } \documentclass[a4paper]{report} \usepackage[colorlinks,plainpages=false]{hyperref} \usepackage[style=altlist, % use altlist style - toc, % add the glossary to the table of contents - sanitize={description=false}% don't sanitize description + toc % add the glossary to the table of contents ]{glossaries} \makeglossaries @@ -18866,10 +22671,8 @@ one \gls[format=hyperbf]{svm}. % how the entry name should appear in the glossary name={Support vector machine (SVM)}, % how the description should appear in the glossary - % since I have used sanitize={description=false} - % I have to protect fragile commands description={Statistical pattern recognition -technique~\protect\cite{svm}}, +technique~\cite{svm}}, % how the entry should appear in the document text text={svm}, % how the entry should appear the first time it is @@ -18935,7 +22738,7 @@ one \gls[format=hyperbf]{svm}. \usepackage{amsmath} \usepackage[colorlinks]{hyperref} -\usepackage[toc,ucmark,style=long3colheader,counter=equation]{glossaries} +\usepackage[xindy,toc,ucmark,style=long3colheader,counter=equation]{glossaries} \makeglossaries @@ -19199,6 +23002,13 @@ Bessel functions $Z_\nu$ are solutions of % (Note that this problem is avoided if the page numbering is % reset after the glossary. For example, if the glossary has % roman numbering and the subsequent pages have arabic numbering) + % + % If you want to use arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } \documentclass[a4paper,12pt]{report} \usepackage{amsmath} @@ -19486,11 +23296,16 @@ Bessel functions $Z_\nu(z)$ are solutions of %\iffalse % \begin{macrocode} % This file is public domain + % If you want to use arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } + % arara: pdflatex: { synctex: on } \documentclass{report} \usepackage[plainpages=false,colorlinks]{hyperref} \usepackage{html} -\usepackage[toc,savewrites,xindy]{glossaries} +\usepackage[toc,xindy]{glossaries} % Define a new glossary type called notation \newglossary[nlg]{notation}{not}{ntn}{Notation} @@ -19577,12 +23392,88 @@ The factorial symbol: \gls{not:fact}. %\fi %\iffalse % \begin{macrocode} +%<*samplePeople.tex> +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} + % This file is public domain + % If you are using arara, you need the following directives: + % If you want to use arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } + % arara: pdflatex: { synctex: on } +\documentclass{report} + +\usepackage[colorlinks]{hyperref} +\usepackage[toc]{glossaries} + +\makeglossaries + +\newcommand{\sortname}[2]{#2, #1} +\newcommand{\textname}[2]{#1 #2} + + % Syntax: \name{first name}{surname} + \let\name\textname + +\renewcommand{\glsprestandardsort}[3]{% + \let\name\sortname + \edef#1{\expandafter\expandonce\expandafter{#1}}% + \let\name\textname + \glsdosanitizesort +} + +\newglossaryentry{joebloggs}{name={\name{Joe}{Bloggs}},description={\nopostdesc}} + +\newglossaryentry{johnsmith}{name={\name{John}{Smith}},description={\nopostdesc}} + +\newglossaryentry{zoeadams}{name={\name{Zo\'e}{Adams}},description={\nopostdesc}} + +\newglossaryentry{maryadams}{name={\name{Mary}{Adams}},description={\nopostdesc}} + +\begin{document} +\tableofcontents + +\chapter{\glsentrytext{joebloggs}} + +\gls{joebloggs} was a fairly ordinary person. + +\chapter{\glsentrytext{johnsmith}} + +\gls{johnsmith} was great friends with \gls{joebloggs}. + +\chapter{\glsentrytext{maryadams}} + +\gls{maryadams} worked with \gls{johnsmith} but never met +\gls{joebloggs}. + +\chapter{\glsentrytext{zoeadams}} + +\gls{zoeadams} was \gls{maryadams}['s] sister. +\printglossaries + +\end{document} +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%</samplePeople.tex> +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} %<*sampleSec.tex> % \end{macrocode} %\fi %\iffalse % \begin{macrocode} % This file is public domain + % If you want to use arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } + % arara: pdflatex: { synctex: on } \documentclass{report} \usepackage[plainpages=false,colorlinks]{hyperref} @@ -19650,12 +23541,132 @@ Another \gls{ident} entry. %\fi %\iffalse % \begin{macrocode} +%<*sampleSort.tex> +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} + % This file is public domain + % If you want to use arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } + % arara: pdflatex: { synctex: on } +\documentclass{report} + +\usepackage[plainpages=false,colorlinks]{hyperref} +\usepackage[toc,acronym]{glossaries} + + % Define a new glossary type called notation +\newglossary[nlg]{notation}{not}{ntn}{Notation} + +\makeglossaries + +\newcounter{sortcount} + +\renewcommand{\glsprestandardsort}[3]{% + \ifdefstring{#2}{notation}% + {% + \stepcounter{sortcount}% + \edef#1{\glssortnumberfmt{\arabic{sortcount}}}% + }% + {% + \glsdosanitizesort + }% +} + + % Notation definitions + +\newglossaryentry{not:set}{type=notation, % glossary type +name={$\mathcal{S}$}, +text={\mathcal{S}}, +description={A set}} + +\newglossaryentry{not:emptyset}{type=notation, +name={$\emptyset$}, +text={\emptyset}, +description={The empty set}} + +\newglossaryentry{not:card}{type=notation, +name={$|\mathcal{S}|$}, +text={|\mathcal{S}|}, +description={cardinality of $\mathcal{S}$}} + + % Main glossary definitions + +\newglossaryentry{gls:set}{name=set, +description={A collection of distinct objects}} + +\newglossaryentry{gls:card}{name=cardinality, +description={The number of elements in the specified set}} + + % Acronym definitions + +\newacronym{zfc}{ZFC}{Zermelo-Fraenkel set theory} + +\newacronym{ad}{AD}{axiom of determinacy} + +\newacronym{nf}{NF}{new foundations} + +\begin{document} +\title{Sample Document using the glossaries Package} +\author{Nicola Talbot} +\pagenumbering{alph} +\maketitle + +\begin{abstract} + %stop hyperref complaining about duplicate page identifiers: +\pagenumbering{Alph} +This is a sample document illustrating the use of the +\textsf{glossaries} package. In this example, a new glossary type +called \texttt{notation} is defined, so that the document can have a +separate glossary of terms, list of acronyms and index of notation. +\end{abstract} + + +\pagenumbering{roman} +\tableofcontents + +\printglossaries + +\chapter{Introduction} +\pagenumbering{arabic} + +\Glspl{gls:set} are denoted by a calligraphic font +e.g.\ $\gls{not:set}$. + +The \gls{gls:card} of a set $\mathcal{S}$ is denoted +$\gls{not:card}$. The empty set is denoted +$\gls{not:emptyset}$. + +Here are some acronyms: \gls{nf}, \gls{zfc} and \gls{ad}. + +\chapter{Another Chapter} + +Another mention of the empty set $\gls{not:emptyset}$. + +Here are the acronyms again: \gls{nf}, \gls{zfc} and \gls{ad}. + +\end{document} +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%</sampleSort.tex> +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} %<*sampletree.tex> % \end{macrocode} %\fi %\iffalse % \begin{macrocode} % This file is public domain + % If you want to use arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } \documentclass{report} \usepackage[colorlinks]{hyperref} @@ -19735,6 +23746,10 @@ The letter \gls{C} represents Euler's constant. %\iffalse % \begin{macrocode} % This file is public domain + % If you want to use arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } \documentclass{article} \usepackage[utf8]{inputenc} @@ -19743,9 +23758,9 @@ The letter \gls{C} represents Euler's constant. \makeglossaries -% Note that because the é is the first letter of the -% name, it needs to be grouped or it will cause a -% problem for \makefirstuc due to expansion issues. + % Note that because the é is the first letter of the + % name, it needs to be grouped or it will cause a + % problem for \makefirstuc due to expansion issues. \newglossaryentry{elite}{name={{é}lite}, description={select group or class}} @@ -19758,8 +23773,8 @@ description=large deer} \newglossaryentry{mannerly}{name=mannerly, description=polite} -% The œ is not the first letter, so it doesn't need to -% be grouped. + % The œ is not the first letter, so it doesn't need to + % be grouped. \newglossaryentry{manoeuvre}{name={manœuvre}, description=planned and controlled movement} @@ -19777,7 +23792,6 @@ description={canal from mouth to stomach}} description=man-eating giant} \begin{document} -\null % ensure that the first run produces some output \glsaddall \printglossaries @@ -20070,6 +24084,10 @@ This page discusses \gls{mcnemar} who introduced % % xindy -L english -C utf8 -I xindy -M samplexdy -t samplexdy.glg -o samplexdy.gls samplexdy.glo % + % If you want to use arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } \documentclass{article} \usepackage[utf8]{inputenc} @@ -20332,6 +24350,10 @@ This page discusses \gls{mcnemar} who introduced % % This sample file won't work with makeindex % + % If you want to use arara, you need the following directives: + % arara: pdflatex: { synctex: on } + % arara: makeglossaries + % arara: pdflatex: { synctex: on } \documentclass{report} \usepackage[utf8]{inputenc} @@ -20372,6 +24394,7 @@ the glossaries package. \part{First Part} \chapter{Sample Chapter} +This example document has an eccentric section numbering system. \section{First Section} diff --git a/Master/texmf-dist/source/latex/glossaries/glossaries.ins b/Master/texmf-dist/source/latex/glossaries/glossaries.ins index d374e0f50cd..c337a6f6a95 100644 --- a/Master/texmf-dist/source/latex/glossaries/glossaries.ins +++ b/Master/texmf-dist/source/latex/glossaries/glossaries.ins @@ -1,4 +1,4 @@ -% glossaries.ins generated using makedtx version 0.94b 2013/7/5 21:47 +% glossaries.ins generated using makedtx version 1.1 2013/11/14 14:05 \input docstrip \preamble @@ -18,7 +18,7 @@ The Current Maintainer of this work is Nicola Talbot. - This work consists of the files glossaries.dtx and glossaries.ins and the derived files glossaries.sty, mfirstuc.sty, glossary-hypernav.sty, glossary-inline.sty, glossary-list.sty, glossary-long.sty, glossary-longragged.sty, glossary-mcols.sty, glossary-super.sty, glossary-superragged.sty, glossary-tree.sty, glossaries-compatible-207.sty, glossaries-accsupp.sty, glossaries-babel.sty, glossaries-polyglossia.sty, glossaries-dictionary-Brazilian.dict, glossaries-dictionary-Danish.dict, glossaries-dictionary-Dutch.dict, glossaries-dictionary-English.dict, glossaries-dictionary-French.dict, glossaries-dictionary-German.dict, glossaries-dictionary-Irish.dict, glossaries-dictionary-Italian.dict, glossaries-dictionary-Magyar.dict, glossaries-dictionary-Polish.dict, glossaries-dictionary-Serbian.dict, glossaries-dictionary-Spanish.dict, minimalgls.tex, sample-crossref.tex, sample-custom-acronym.tex, sample-dual.tex, sample-inline.tex, sample-langdict.tex, sample-mfirstuc.tex, sample-numberlist.tex, sample.tex, sample4col.tex, sampleaccsupp.tex, sampleAcr.tex, sampleAcrDesc.tex, sampleacronyms.tex, sampleDB.tex, sampleDesc.tex, sampleEq.tex, sampleEqPg.tex, sampleNtn.tex, sampleSec.tex, sampletree.tex, sampleutf8.tex, samplexdy-compatible207.tex, samplexdy.tex, samplexdy2.tex, samplexdy-mc.xdy, samplexdy-mc207.xdy, database1.tex, database2.tex, glossaries.perl, mfirstuc.perl. + This work consists of the files glossaries.dtx and glossaries.ins and the derived files glossaries.sty, glossaries-prefix.sty, mfirstuc.sty, glossary-hypernav.sty, glossary-inline.sty, glossary-list.sty, glossary-long.sty, glossary-longragged.sty, glossary-mcols.sty, glossary-super.sty, glossary-superragged.sty, glossary-tree.sty, glossaries-compatible-207.sty, glossaries-compatible-307.sty, glossaries-accsupp.sty, glossaries-babel.sty, glossaries-polyglossia.sty, glossaries-dictionary-Brazilian.dict, glossaries-dictionary-Danish.dict, glossaries-dictionary-Dutch.dict, glossaries-dictionary-English.dict, glossaries-dictionary-French.dict, glossaries-dictionary-German.dict, glossaries-dictionary-Irish.dict, glossaries-dictionary-Italian.dict, glossaries-dictionary-Magyar.dict, glossaries-dictionary-Polish.dict, glossaries-dictionary-Serbian.dict, glossaries-dictionary-Spanish.dict, minimalgls.tex, sample-crossref.tex, sample-custom-acronym.tex, sample-dual.tex, sample-entryfmt.tex, sample-FnDesc.tex, sample-index.tex, sample-inline.tex, sample-langdict.tex, sample-mfirstuc.tex, sample-newkeys.tex, sample-nomathhyper.tex, sample-numberlist.tex, sample-prefix.tex, sample-si.tex, sample.tex, sample4col.tex, sampleaccsupp.tex, sampleAcr.tex, sampleAcrDesc.tex, sampleacronyms.tex, sampleDB.tex, sampleDesc.tex, sampleEq.tex, sampleEqPg.tex, sampleNtn.tex, samplePeople.tex, sampleSec.tex, sampleSort.tex, sampletree.tex, sampleutf8.tex, samplexdy-compatible207.tex, samplexdy.tex, samplexdy2.tex, samplexdy-mc.xdy, samplexdy-mc207.xdy, database1.tex, database2.tex, glossaries.perl, mfirstuc.perl. \endpreamble @@ -26,6 +26,8 @@ \generate{\file{glossaries.sty}{\usepreamble\defaultpreamble \usepostamble\defaultpostamble\from{glossaries.dtx}{glossaries.sty,package}} +\file{glossaries-prefix.sty}{\usepreamble\defaultpreamble +\usepostamble\defaultpostamble\from{glossaries.dtx}{glossaries-prefix.sty,package}} \file{mfirstuc.sty}{\usepreamble\defaultpreamble \usepostamble\defaultpostamble\from{glossaries.dtx}{mfirstuc.sty,package}} \file{glossary-hypernav.sty}{\usepreamble\defaultpreamble @@ -48,6 +50,8 @@ \usepostamble\defaultpostamble\from{glossaries.dtx}{glossary-tree.sty,package}} \file{glossaries-compatible-207.sty}{\usepreamble\defaultpreamble \usepostamble\defaultpostamble\from{glossaries.dtx}{glossaries-compatible-207.sty,package}} +\file{glossaries-compatible-307.sty}{\usepreamble\defaultpreamble +\usepostamble\defaultpostamble\from{glossaries.dtx}{glossaries-compatible-307.sty,package}} \file{glossaries-accsupp.sty}{\usepreamble\defaultpreamble \usepostamble\defaultpostamble\from{glossaries.dtx}{glossaries-accsupp.sty,package}} \file{glossaries-babel.sty}{\usepreamble\defaultpreamble @@ -82,10 +86,17 @@ \file{sample-crossref.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{sample-crossref.tex}} \file{sample-custom-acronym.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{sample-custom-acronym.tex}} \file{sample-dual.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{sample-dual.tex}} +\file{sample-entryfmt.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{sample-entryfmt.tex}} +\file{sample-FnDesc.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{sample-FnDesc.tex}} +\file{sample-index.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{sample-index.tex}} \file{sample-inline.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{sample-inline.tex}} \file{sample-langdict.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{sample-langdict.tex}} \file{sample-mfirstuc.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{sample-mfirstuc.tex}} +\file{sample-newkeys.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{sample-newkeys.tex}} +\file{sample-nomathhyper.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{sample-nomathhyper.tex}} \file{sample-numberlist.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{sample-numberlist.tex}} +\file{sample-prefix.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{sample-prefix.tex}} +\file{sample-si.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{sample-si.tex}} \file{sample.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{sample.tex}} \file{sample4col.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{sample4col.tex}} \file{sampleaccsupp.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{sampleaccsupp.tex}} @@ -97,7 +108,9 @@ \file{sampleEq.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{sampleEq.tex}} \file{sampleEqPg.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{sampleEqPg.tex}} \file{sampleNtn.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{sampleNtn.tex}} +\file{samplePeople.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{samplePeople.tex}} \file{sampleSec.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{sampleSec.tex}} +\file{sampleSort.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{sampleSort.tex}} \file{sampletree.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{sampletree.tex}} \file{sampleutf8.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{sampleutf8.tex}} \file{samplexdy-compatible207.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{samplexdy-compatible207.tex}} |