summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2011-04-04 23:19:17 +0000
committerKarl Berry <karl@freefriends.org>2011-04-04 23:19:17 +0000
commitd49526563e8a66d6774a086ad2a91fbf249b35b3 (patch)
treeaecb9254e4f4db280b2f7ab8a9dc9f154fa08dd7 /Master/texmf-dist/source
parentaeb22f958bf3b465bb5e3f085176c7fe0f2ef562 (diff)
glossaries 3.0 (4apr11)
git-svn-id: svn://tug.org/texlive/trunk@21968 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r--Master/texmf-dist/source/latex/glossaries/glossaries.dtx10996
-rw-r--r--Master/texmf-dist/source/latex/glossaries/glossaries.ins13
2 files changed, 5019 insertions, 5990 deletions
diff --git a/Master/texmf-dist/source/latex/glossaries/glossaries.dtx b/Master/texmf-dist/source/latex/glossaries/glossaries.dtx
index 43a001e0367..6de6f15c633 100644
--- a/Master/texmf-dist/source/latex/glossaries/glossaries.dtx
+++ b/Master/texmf-dist/source/latex/glossaries/glossaries.dtx
@@ -13,20 +13,21 @@
% -src "glossaries.sty\Z=>glossaries.sty"
% -src "mfirstuc.sty\Z=>mfirstuc.sty"
% -src "(glossary-.+)\.(sty)\Z=>\1.\2"
+% -src "(glossaries-compatible-207)\.(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"
% -src "(glossaries-dictionary-.+)\.(dict)\Z=>\1.\2"
% -src "(minimalgls\.tex)\Z=>\1"
% -src "(sample.*\.tex)\Z=>\1"
-% -src "(samplexdy-mc\.xdy)\Z=>\1"
+% -src "(samplexdy-mc.*\.xdy)\Z=>\1"
% -src "(database.*\.tex)\Z=>\1"
% -src "(glossaries\.perl)\Z=>\1"
% -doc "glossaries-manual.tex"
% -author "Nicola Talbot"
-% -codetitle "Glossaries Documented Code"
+% -codetitle "Main Package Code"
% glossaries
-% Created on 2010/7/10 12:21
+% Created on 2011/4/3 22:26
%\fi
%\iffalse
%<*package>
@@ -49,12 +50,17 @@
%\fi
% \iffalse
% Doc-Source file to use with LaTeX2e
-% Copyright (C) 2010 Nicola Talbot, all rights reserved.
+% Copyright (C) 2011 Nicola Talbot, all rights reserved.
% \fi
% \iffalse
%<*driver>
\documentclass{nlctdoc}
+\iffalse
+glossaries-manual.tex is a stub file used by makedtx to create
+glossaries.dtx
+\fi
+
\usepackage{alltt}
\usepackage{pifont}
\usepackage[utf8]{inputenc}
@@ -69,12 +75,11 @@
\doxitem{Option}{option}{package options}
\doxitem{GlsKey}{key}{glossary keys}
\doxitem{Style}{style}{glossary styles}
+\doxitem{Counter}{counter}{glossary counters}
\setcounter{IndexColumns}{2}
-\CheckSum{11106}
-
-\newcommand*{\tick}{\ding{51}}
+\CheckSum{13110}
\newcommand*{\ifirstuse}{\iterm{first use}}
\newcommand*{\firstuse}{first use\ifirstuse}
@@ -102,8 +107,7 @@
%\MakeShortVerb{"}
%\DeleteShortVerb{\|}
%
-% \title{glossaries.sty v2.07:
-% \LaTeXe\ Package to Assist Generating Glossaries}
+% \title{Documented Code For glossaries v3.0}
% \author{Nicola L.C. Talbot\\[10pt]
%School of Computing Sciences\\
%University of East Anglia\\
@@ -111,5020 +115,43 @@
%NR4 7TJ. United Kingdom.\\
%\url{http://theoval.cmp.uea.ac.uk/~nlct/}}
%
-% \date{2010-07-10}
+% \date{2011-04-02}
% \maketitle
%
-%This is the user manual for the \styfmt{glossaries} package. Other
-%documents accompanying this manual:
-%\begin{itemize}
-%\item \qtdocref{The glossaries package: a guide for beginners}{glossariesbegin}
-%\item \qtdocref{Upgrading from the glossary package to the
-%glossaries package}{glossary2glossaries}
-%\end{itemize}
-%See the file \texttt{INSTALL} for installation instructions.
-%Related web resources:
-%\begin{itemize}
-%\item
-%\urlfootref{http://theoval.cmp.uea.ac.uk/~nlct/latex/packages/faq/glossariesfaq.html}{The glossaries FAQ}
-%
-%\item
-%\urlfootref{http://www.latex-community.org/index.php?option=com_content&view=article&id=263&Itemid=114}{Glossaries,
-%Nomenclature, Lists of Symbols and Acronyms }
-%\end{itemize}
-%
-%\clearpage
-%\tableofcontents
-%
-% \section{Introduction}
-%
-% \changes{1.0}{2007 May 16}{Initial version}
-%The \styfmt{glossaries} package is provided to assist generating
-%glossaries. It has a certain amount of flexibility, allowing the
-%user to customize the format of the glossary and define multiple
-%glossaries. It also supports acronyms and glossary styles that
-%include symbols (in addition to a name and description) for glossary
-%entries. There is provision for loading a database of glossary
-%terms. Only those terms used\footnote{that is, if the term has been
-%referenced using any of the commands described in
-%\sectionref{sec:glslink}, \sectionref{sec:glsadd} or via
-%\ics{glssee} (or the \gloskey{see} key)} in the document will be
-%added to the glossary.
-%
-%\textbf{This package replaces the \sty{glossary} package which is
-%now obsolete.} Please see the document \qtdocref{Upgrading from the
-%glossary package to the glossaries package}{glossary2glossaries} for
-%assistance in upgrading.
-%
-%One of the strengths of this package is its flexibility, however
-%the drawback of this is the necessity of having a large manual
-%that can cover all the various settings. If you are daunted by the
-%size of the manual, try starting off with the much shorter
-%\docref{guide for beginners}{glossariesbegin}.
-%
-%\begin{important}
-%The \styfmt{glossaries} package comes with a
-%\href{http://www.perl.org/about.html}{Perl} script called
-%\app{makeglossaries}. This provides a convenient interface to
-%\app{makeindex} or \app{xindy}. It is strongly recommended
-%that you use this script, but \emph{it is not essential}. If you are
-%reluctant to install Perl, or for any other reason you don't want to
-%use \app{makeglossaries}, you can called \app{makeindex} or
-%\app{xindy} explicitly. See \sectionref{sec:makeglossaries} for
-%further details.
-%\end{important}
-%
-%This manual is structured as follows:
-%\begin{itemize}
-%\item \sectionref{sec:overview} gives an overview of the main user
-%commands and their syntax.
-%
-%\item \sectionref{sec:mfirstuc} describes the associated
-%\styfmt{mfirstuc} package.
-%
-%\ifpdf
-% \item \sectionref{sec:code} contains the documented source code for
-% those who want to know more about how the package works. This
-% describes more advanced commands, such as determining if an entry or
-% a glossary exists and commands that iterate through defined terms or
-% glossaries.
-%
-% \item \sectionref{sec:code:mfirstuc} contains the documented code for
-% the \styfmt{mfirstuc} package.
-%\fi
-%\end{itemize}
-%\ifpdf
-%\else
-% The \href{glossaries.pdf}{PDF version} of this manual also describes
-% more advanced commands in the documented code section (such as
-% determining if an entry or a glossary exists and commands that
-% iterate through defined terms or glossaries).
-%\fi
-%
-%\noindent The remainder of this introductory section covers the
-%following:
-%\begin{itemize}
-%\item \sectionref{sec:samples} lists the sample documents provided
-%with this package.
-%
-%\item \sectionref{sec:languages} provides information for users who
-%wish to write in a language other than English.
-%
-%\item \sectionref{sec:makeglossaries} describes how to use a
-%post-processor to create the sorted glossaries for your document.
-%
-%\item \sectionref{sec:trouble} provides some assistance in the event
-%that you encounter a problem.
-%\end{itemize}
-%
-%
-%\subsection{Sample Documents}
-%\label{sec:samples}
-%
-%The \styfmt{glossaries} package is provided with some sample
-%documents that illustrate the various functions. These should
-%be located in the \texttt{samples} subdirectory (folder) of the
-%\styfmt{glossaries} documentation directory. This location varies
-%according to your operating system and \TeX\ distribution. You
-%can use \texttt{texdoc} to locate the main glossaries documentation.
-%For example, in a terminal or command prompt, type:
-%\begin{prompt}
-%texdoc -l glossaries
-%\end{prompt}
-%This should display the full pathname of the file
-%\texttt{glossaries.pdf}. View the contents of that directory and
-%see if it contains the \texttt{samples} subdirectory.
-%
-%If you can't find the sample files, they are available in the
-%subdirectory \texttt{doc/latex/glossaries/samples/} in the
-%\texttt{glossaries.tds.zip} archive which can be downloaded from
-%\href{http://tug.ctan.org/tex-archive/macros/latex/contrib/glossaries/}{CTAN}.
-%
-%
-%The sample documents are as follows:
-%\begin{description}
-%\item[minimalgls.tex]\label{ex:minimalgls} This document is a
-%minimal working example. You can test your installation using this
-%file. To create the complete document you will need to do the
-%following steps:
-% \begin{enumerate}
-% \item Run \texttt{minimalgls.tex} through \LaTeX\ either by
-% typing
-%\begin{prompt}
-%latex minimalgls
-%\end{prompt}
-% in a terminal or by using the relevant button or menu item in
-% your text editor or front-end. This will create the required
-% associated files but you will not see the glossary. If you use
-% PDF\LaTeX\ you will also get warnings about non-existent
-% references. These warnings may be ignored on the first run.
-%
-% If you get a \verb"Missing \begin{document}" error, then
-% it's most likely that your version of \sty{xkeyval} is
-% out of date. Check the log file for a warning of that nature.
-% If this is the case, you will need to update the \styfmt{xkeyval}
-% package.
-%
-% \item Run \app{makeglossaries} on the document. This can
-% be done on a terminal either by typing
-%\begin{prompt}
-%makeglossaries minimalgls
-%\end{prompt}
-% or by typing
-%\begin{prompt}
-%perl makeglossaries minimalgls
-%\end{prompt}
-% If your system doesn't recognise the command \texttt{perl} then
-% it's likely you don't have Perl installed. In which case you
-% will need to use \app{makeindex} directly. You can do this
-% in a terminal by typing (all on one line):
-%\begin{prompt}
-%makeindex -s minimalgls.ist -t minimalgls.glg -o minimalgls.gls minimalgls.glo
-%\end{prompt}
-% (See \sectionref{sec:makeindexapp} for further details on using
-% \app{makeindex} explicitly.)
-%
-% Note that if you need to specify the full path and the path
-% contains spaces, you will need to delimit the file names with
-% the double-quote character.
-%
-% \item Run \texttt{minimalgls.tex} through \LaTeX\ again (as step~1)
-% \end{enumerate}
-%You should now have a complete document. The number following
-%each entry in the glossary is the location number. By default, this
-%is the page number where the entry was referenced.
-%
-%\item[sample4col.tex]\label{ex:sample4col} This document illustrates
-%a four column glossary where the entries have a symbol in addition
-%to the name and description. To create the complete document, you
-%need to do:
-%\begin{prompt}
-%latex sample4col
-%makeglossaries sample4col
-%latex sample4col
-%\end{prompt}
-%As before, if you don't have Perl installed, you will need to use
-%\app{makeindex} directly instead of using
-%\app{makeglossaries}. The vertical gap between entries is the
-%gap created at the start of each group. This can be suppressed by
-%redefining \ics{glsgroupskip} after the glossary style has been set:
-%\begin{verbatim}
-%\renewcommand*{\glsgroupskip}{}
-%\end{verbatim}
-%
-%\item[sampleAcr.tex]\label{ex:sampleAcr} This document has some
-%sample acronyms. It also adds the glossary to the table of contents,
-%so an extra run through \LaTeX\ is required to ensure the document
-%is up to date:
-%\begin{prompt}
-%latex sampleAcr
-%makeglossaries sampleAcr
-%latex sampleAcr
-%latex sampleAcr
-%\end{prompt}
-%
-%\item[sampleAcrDesc.tex]\label{ex:sampleAcrDesc} This is similar to
-%the previous example, except that the acronyms have an associated
-%description. As with the previous example, the glossary is added to
-%the table of contents, so an extra run through \LaTeX\ is required:
-%\begin{prompt}
-%latex sampleAcrDesc
-%makeglossaries sampleAcrDesc
-%latex sampleAcrDesc
-%latex sampleAcrDesc
-%\end{prompt}
-%
-%\item[sampleDesc.tex]\label{ex:sampleDesc} This is similar to the
-%previous example, except that it defines the acronyms using
-%\ics{newglossaryentry} instead of \ics{newacronym}. As with the
-%previous example, the glossary is added to the table of contents, so
-%an extra run through \LaTeX\ is required:
-%\begin{prompt}
-%latex sampleDesc
-%makeglossaries sampleDesc
-%latex sampleDesc
-%latex sampleDesc
-%\end{prompt}
-%
-%\item[sample-custom-acronym.tex]\label{ex:sample-custom-acronym}
-%This document illustrates how to define your own acronym style if
-%the predefined styles don't suit your requirements.
-%\begin{prompt}
-%latex sample-custom-acronym
-%makeglossaries sample-custom-acronym
-%latex sample-custom-acronym
-%\end{prompt}
-%
-%\item[sampleDB.tex]\label{ex:sampleDB} This document illustrates how
-%to load external files containing the glossary definitions. It also
-%illustrates how to define a new glossary type. This document has the
-%\term{number list} suppressed and uses \ics{glsaddall} to add all
-%the entries to the glossaries without referencing each one
-%explicitly. To create the document do:
-%\begin{prompt}
-%latex sampleDB
-%makeglossaries sampleDB
-%latex sampleDB
-%\end{prompt}
-%The glossary definitions are stored in the accompanying files
-%\texttt{database1.tex} and \texttt{database2.tex}. Note that if you
-%don't have Perl installed, you will need to use \app{makeindex}
-%twice instead of a single call to \app{makeglossaries}:
-%\begin{enumerate}
-%\item Create the main glossary:
-%\begin{prompt}
-%makeindex -s sampleDB.ist -t sampleDB.glg -o sampleDB.gls sampleDB.glo
-%\end{prompt}
-%\item Create the secondary glossary:
-%\begin{prompt}
-%makeindex -s sampleDB.ist -t sampleDB.nlg -o sampleDB.not sampleDB.ntn
-%\end{prompt}
-%\end{enumerate}
-%
-%\item[sampleEq.tex]\label{ex:sampleEq} This document illustrates how
-%to change the location to something other than the page number. In
-%this case, the \texttt{equation} counter is used since all glossary
-%entries appear inside an \env{equation} environment. To create
-%the document do:
-%\begin{prompt}
-%latex sampleEq
-%makeglossaries sampleEq
-%latex sampleEq
-%\end{prompt}
-%
-%\item[sampleEqPg.tex]\label{ex:sampleEqPg} This is similar to the
-%previous example, but the number lists\iterm{number list} are a
-%mixture of page numbers and equation numbers. This example adds the
-%glossary to the table of contents, so an extra \LaTeX\ run is
-%required:
-%\begin{prompt}
-%latex sampleEqPg
-%makeglossaries sampleEqPg
-%latex sampleEqPg
-%latex sampleEqPg
-%\end{prompt}
-%
-%\item[sampleSec.tex]\label{ex:sampleSec} This document also
-%illustrates how to change the location to something other than the
-%page number. In this case, the \texttt{section} counter is used.
-%This example adds the glossary to the table of contents, so an extra
-%\LaTeX\ run is required:
-%\begin{prompt}
-%latex sampleSec
-%makeglossaries sampleSec
-%latex sampleSec
-%latex sampleSec
-%\end{prompt}
-%
-%\item[sampleNtn.tex]\label{ex:sampleNtn} This document illustrates
-%how to create an additional glossary type. This example adds the
-%glossary to the table of contents, so an extra \LaTeX\ run is
-%required:
-%\begin{prompt}
-%latex sampleNtn
-%makeglossaries sampleNtn
-%latex sampleNtn
-%latex sampleNtn
-%\end{prompt}
-%Note that if you don't have Perl installed, you will need to use
-%\app{makeindex} twice instead of a single call to
-%\app{makeglossaries}:
-%\begin{enumerate}
-%\item Create the main glossary:
-%\begin{prompt}
-%makeindex -s sampleNtn.ist -t sampleNtn.glg -o sampleNtn.gls sampleNtn.glo
-%\end{prompt}
-%\item Create the secondary glossary:
-%\begin{prompt}
-%makeindex -s sampleNtn.ist -t sampleNtn.nlg -o sampleNtn.not sampleNtn.ntn
-%\end{prompt}
-%\end{enumerate}
-%
-%\item[sample.tex]\label{ex:sample} This document illustrates some of
-%the basics, including how to create child entries that use the same
-%name as the parent entry. This example adds the glossary to the
-%table of contents, so an extra \LaTeX\ run is required:
-%\begin{prompt}
-%latex sample
-%makeglossaries sample
-%latex sample
-%latex sample
-%\end{prompt}
-%You can see the difference between word and letter ordering if you
-%substitute \pkgopt[word]{order} with \pkgopt[letter]{order}. (Note
-%that this will only have an effect if you use
-%\app{makeglossaries}. If you use \app{makeindex} explicitly,
-%you will need to use the \texttt{-l} switch to indicate letter
-%ordering.)
-%
-%\item[sampletree.tex]\label{ex:sampletree} This document illustrates
-%a hierarchical glossary structure where child entries have different
-%names to their corresponding parent entry. To create the document
-%do:
-%\begin{prompt}
-%latex sampletree
-%makeglossaries sampletree
-%latex sampletree
-%\end{prompt}
-%
-%\item[samplexdy.tex]\label{ex:samplexdy} This document illustrates
-%how to use the \styfmt{glossaries} package with \app{xindy} instead
-%of \app{makeindex}. The document uses UTF8 encoding (with the
-%\sty{inputenc} package). The encoding is picked up by
-%\app{makeglossaries}. By default, this document will create a
-%\app{xindy} style file called \texttt{samplexdy.xdy}, but if you
-%uncomment the lines
-%\begin{verbatim}
-%\setStyleFile{samplexdy-mc}
-%\noist
-%\GlsSetXdyLanguage{}
-%\end{verbatim}
-%it will set the style file to \texttt{samplexdy-mc.xdy} instead.
-%This provides an additional letter group for entries starting with
-%\qt{Mc} or \qt{Mac}. If you use \app{makeglossaries}, you don't
-%need to supply any additional information. If you don't use
-%\app{makeglossaries}, you will need to specify the required
-%information. Note that if you set the style file to
-%\texttt{samplexdy-mc.xdy} you must also specify \ics{noist},
-%otherwise the \styfmt{glossaries} package will overwrite
-%\texttt{samplexdy-mc.xdy} and you will lose the \qt{Mc} letter
-%group.
-%
-%To create the document do:
-%\begin{prompt}
-%latex samplexdy
-%makeglossaries samplexdy
-%latex samplexdy
-%\end{prompt}
-%If you don't have Perl installed, you will have to call
-%\app{xindy} explicitly instead of using \app{makeglossaries}.
-%If you are using the default style file \texttt{samplexdy.xdy}, then
-%do (no line breaks):
-%\begin{prompt}
-%xindy -L english -C utf8 -I xindy -M samplexdy -t samplexdy.glg -o samplexdy.gls samplexdy.glo
-%\end{prompt}
-%otherwise, if you are using \texttt{samplexdy-mc.xdy}, then do
-%(no line breaks):
-%\begin{prompt}
-%xindy -I xindy -M samplexdy-mc -t samplexdy.glg -o samplexdy.gls samplexdy.glo
-%\end{prompt}
-%
-%\item[sampleutf8.tex]\label{ex:sampleutf8} This is another example
-%that uses \app{xindy}. Unlike \app{makeindex},
-%\app{xindy} can cope with accented or non-Latin characters. This
-%document uses UTF8 encoding. To create the document do:
-%\begin{prompt}
-%latex sampleutf8
-%makeglossaries sampleutf8
-%latex sampleutf8
-%\end{prompt}
-%If you don't have Perl installed, you will have to call
-%\app{xindy} explicitly instead of using \app{makeglossaries}
-%(no line breaks):
-%\begin{prompt}
-%xindy -L english -C utf8 -I xindy -M sampleutf8 -t sampleutf8.glg -o sampleutf8.gls sampleutf8.glo
-%\end{prompt}
-%
-%If you remove the \pkgopt{xindy} option from \texttt{sampleutf8.tex}
-%and do:
-%\begin{prompt}
-%latex sampleutf8
-%makeglossaries sampleutf8
-%latex sampleutf8
-%\end{prompt}
-%you will see that the entries that start with a non-Latin character
-%now appear in the symbols group, and the word \qt{man\oe uvre} is now
-%after \qt{manor} instead of before it. If you are unable to use
-%\app{makeglossaries}, the call to \app{makeindex} is as
-%follows (no line breaks):
-%\begin{prompt}
-%makeindex -s sampleutf8.ist -t sampleutf8.glg -o sampleutf8.gls sampleutf8.glo
-%\end{prompt}
-%
-%\item[sampleaccsupp.tex]\label{ex:sampleaccsupp} This document
-%uses the experimental \sty{glossaries-accsupp} package. The
-%symbol is set to the replacement text. Note that some PDF
-%viewers don't use the accessibility support. Information
-%about the \styfmt{glossaries-accsupp} package can be found in
-%\sectionref{sec:accsupp}.
-%
-%\end{description}
-%
-%
-%\subsection{Multi-Lingual Support}
-%\label{sec:languages}
-%
-%As from version 1.17, the \styfmt{glossaries} package can now be
-%used with \app{xindy} as well as \app{makeindex}. If you
-%are writing in a language that uses accented characters or
-%non-Latin characters it is recommended that you use \app{xindy}
-%as \app{makeindex} is hard-coded for Latin languages. This
-%means that you are not restricted to the A, \ldots, Z letter groups.
-%If you want to use \app{xindy}, remember to use the
-%\pkgopt{xindy} package option. For example:
-%\begin{verbatim}
-%\documentclass[frenchb]{article}
-%\usepackage[utf8]{inputenc}
-%\usepackage[T1]{fontenc}
-%\usepackage{babel}
-%\usepackage[xindy]{glossaries}
-%\end{verbatim}
-%
-%\begin{important}
-%If you use an accented or other expandable character at the start of
-%an entry name, you must place it in a group, or it will cause
-%a problem for commands that convert the first letter to uppercase
-%(e.g.\ \ics{Gls}) due to expansion issues. For example:
-%\begin{verbatim}
-%\newglossaryentry{elite}{name={{é}lite},
-%description={select group or class}}
-%\end{verbatim}
-%\end{important}
-%
-%If you use the \sty{inputenc} package, \app{makeglossaries}
-%will pick up the encoding from the auxiliary file. If you use
-%\app{xindy} explicitly instead of via \app{makeglossaries},
-%you may need to specify the encoding using the \texttt{-C}
-%option. Read the \app{xindy} manual for further details.
-%
-%\subsubsection{Changing the Fixed Names}
-%\label{sec:fixednames}
-%
-%As from version 1.08, the \styfmt{glossaries} package now has
-%limited multi-lingual support, thanks to all the people who have sent
-%me the relevant translations either via email or via
-%\texttt{comp.text.tex}.
-%However you must load \sty{babel} or \sty{polyglossia} \emph{before}
-%\styfmt{glossaries} to enable this. Note that if \sty{babel} is loaded
-%and the \sty{translator} package is detected on \TeX's path, then the
-%\sty{translator} package will be loaded automatically. However,
-%it may not pick up on the required languages so, if the predefined
-%text is not translated, you may need to explicitly load the
-%\sty{translator} package with the required languages. For example:
-%\begin{verbatim}
-%\usepackage[spanish]{babel}
-%\usepackage[spanish]{translator}
-%\usepackage{glossaries}
-%\end{verbatim}
-%Alternatively, specify the language as a class option rather
-%than a package option. For example:
-%\begin{verbatim}
-%\documentclass[spanish]{report}
-%
-%\usepackage{babel}
-%\usepackage{glossaries}
-%\end{verbatim}
-%
-%If you want to use \sty{ngerman} or \sty{german} instead
-%of \sty{babel}, you will need to include the \sty{translator} package
-%to provide the translations. For example:
-%\begin{verbatim}
-%\documentclass[ngerman]{article}
-%\usepackage{ngerman}
-%\usepackage{translator}
-%\usepackage{glossaries}
-%\end{verbatim}
-%
-%The languages are currently supported by the
-%\styfmt{glossaries} package are listed in
-%\tableref{tab:supportedlanguages}.
-%
-%\begin{table}[htbp]
-%\caption{Supported Languages}
-%\label{tab:supportedlanguages}
-%\begin{center}
-%\begin{tabular}{lc}
-%\bfseries Language & \bfseries As from version\\
-%Brazilian Portuguese & 1.17\\
-%Danish & 1.08\\
-%Dutch & 1.08\\
-%English & 1.08\\
-%French & 1.08\\
-%German & 1.08\\
-%Irish & 1.08\\
-%Italian & 1.08\\
-%Hungarian & 1.08\\
-%Polish & 1.13\\
-%Serbian & 2.06\\
-%Spanish & 1.08
-%\end{tabular}
-%\end{center}
-%\end{table}
-%
-%The language dependent commands and \sty{translator} keys used by the
-%glossaries package are listed in \tableref{tab:predefinednames}.
-%
-%\begin{table}[htbp]
-%\caption{Customised Text}
-%\label{tab:predefinednames}
-%\begin{center}
-%\begin{tabular}{@{}llp{0.4\linewidth}@{}}
-%\bfseries Command Name & \bfseries Translator Key Word &
-%\bfseries Purpose\\
-%\ics{glossaryname} & \texttt{Glossary} & Title of the main glossary.\\
-%\ics{acronymname} & \texttt{Acronyms} & Title of the list of acronyms
-%(when used with package option \pkgopt{acronym}).\\
-%\ics{entryname} & \texttt{Notation (glossaries)} &
-%Header for first column in the glossary (for 2, 3 or 4 column glossaries
-%that support headers).\\
-%\ics{descriptionname} & \texttt{Description (glossaries)} &
-%Header for second column in the glossary (for 2, 3 or 4 column glossaries
-%that support headers).\\
-%\ics{symbolname} & \texttt{Symbol (glossaries)} & Header for symbol
-%column in the glossary for glossary styles that support this option.\\
-%\ics{pagelistname} & \texttt{Page List (glossaries)} &
-%Header for page list column in the glossary for glossaries that support
-%this option.\\
-%\ics{glssymbolsgroupname} & \texttt{Symbols (glossaries)} &
-%Header for symbols section of the glossary for glossary styles that
-%support this option.\\
-%\ics{glsnumbersgroupname} & \texttt{Numbers (glossaries)} & Header for
-%numbers section of the glossary for glossary styles that support
-%this option.
-%\end{tabular}
-%\end{center}
-%\end{table}
-%
-%Due to the varied nature of glossaries, it's likely that the
-%predefined translations may not be appropriate. If you are using the
-%\sty{babel} package and do not have the \sty{translator} package
-%installed, you need to be familiar with the advice given in
-%\urlref{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=latexwords}{changing
-%the words babel uses}. If you have the \sty{translator} package
-%installed, then you can provide your own dictionary with the
-%necessary modifications (using \cs{deftranslation}) and load it
-%using \cs{usedictionary}. Note that the dictionaries are loaded at
-%the beginning of the document, so it won't have any effect if you
-%put \cs{deftranslation} in the preamble. It should be put in your
-%personal dictionary instead. See the \sty{translator} documentation
-%for further details.
-%
-%If you are using \sty{babel} and don't want to use the
-%\sty{translator} interface, you can suppress it using the package
-%option \pkgopt[false]{translate}, and either load
-%\sty{glossaries-babel} after \styfmt{glossaries} or specify you're own
-%translations. For example:
-%\begin{verbatim}
-%\documentclass[british]{article}
-%
-%\usepackage{babel}
-%\usepackage[translate=false]{glossaries}
-%\usepackage{glossaries-babel}
-%\end{verbatim}
-%or:
-%\begin{verbatim}
-%\documentclass[british]{article}
-%
-%\usepackage{babel}
-%\usepackage[translate=false]{glossaries}
-%
-%\addto\captionsbritish{%
-% \renewcommand*{\glossaryname}{List of Terms}%
-% \renewcommand*{\acronymname}{List of Acronyms}%
-% \renewcommand*{\entryname}{Notation}%
-% \renewcommand*{\descriptionname}{Description}%
-% \renewcommand*{\symbolname}{Symbol}%
-% \renewcommand*{\pagelistname}{Page List}%
-% \renewcommand*{\glssymbolsgroupname}{Symbols}%
-% \renewcommand*{\glsnumbersgroupname}{Numbers}%
-%}
-%\end{verbatim}
-%
-%If you are using \sty{polyglossia} instead of \sty{babel},
-%\sty{glossaries-polyglossia} will automatically be loaded unless
-%you specify the package option \pkgopt[false]{translate}.
-%
-%Note that \app{xindy} provides much better multi-lingual support
-%than \app{makeindex}, so it's recommended that you use \app{xindy}
-%if you have glossary entries that contain diacritics or
-%non-Roman letters. See \sectionref{sec:xindy} for further
-%details.
-%
-%\subsection{Generating the Associated Glossary Files}
-%\label{sec:makeglossaries}
-%
-%In order to generate a sorted glossary with compact location lists,
-%it is necessary to use an external indexing application as an
-%intermediate step. It is this application that creates the file
-%containing the code that typesets the glossary. If this step is
-%omitted, the glossaries will not appear in your document. The two
-%indexing applications that are most commonly used with \LaTeX\ are
-%\app{makeindex} and \app{xindy}. As from version 1.17, the
-%\styfmt{glossaries} package can be used with either of these
-%applications. Previous versions were designed to be used with
-%\app{makeindex} only. Note that \app{xindy} has much better
-%multi-lingual support than \app{makeindex}, so \app{xindy} is
-%recommended if you're not writing in English. Commands that only
-%have an effect when \app{xindy} is used are described in
-%\sectionref{sec:xindy}.
-%
-%
-%The \styfmt{glossaries} package comes with the Perl script
-%\app{makeglossaries} which will run \app{makeindex} or \app{xindy}
-%on all the glossary files using a customized style file (which is
-%created by \ics{makeglossaries}). See
-%\sectionref{sec:makeglossariesapp} for further
-%details. Perl is stable, cross-platform, open source software that
-%is used by a number of \TeX-related applications. Further
-%information is available at \url{http://www.perl.org/about.html}.
-%However, whilst it is strongly recommended that you use the
-%\app{makeglossaries} script, it is possible to use the
-%\styfmt{glossaries} package without having Perl installed. In which
-%case, if you have used the \pkgopt{xindy} package option, you will
-%need to use \app{xindy} (see \sectionref{sec:xindyapp}), otherwise
-%you will need to use \app{makeindex} (see
-%\sectionref{sec:makeindexapp}). Note that some commands and package
-%options have no effect if you don't use \app{makeglossaries}. These
-%are listed in \tableref{tab:makeglossariesCmds}.
-%
-%Note that if any of your entries use an entry
-%that is not referenced outside the glossary, you will need to
-%do an additional \app{makeglossaries}, \app{makeindex}
-%or \app{xindy} run, as appropriate. For example,
-%suppose you have defined the following entries:
-%\begin{verbatim}
-%\newglossaryentry{citrusfruit}{name={citrus fruit},
-%description={fruit of any citrus tree. (See also
-%\gls{orange})}}
-%
-%\newglossaryentry{orange}{name={orange},
-%description={an orange coloured fruit.}}
-%\end{verbatim}
-%and suppose you have \verb|\gls{citrusfruit}| in your document
-%but don't reference the \texttt{orange} entry, then the
-%\texttt{orange} entry won't appear in your glossary until
-%you first create the glossary and then do another run
-%of \app{makeglossaries}, \app{makeindex} or \app{xindy}.
-%For example, if the document is called \texttt{myDoc.tex}, then
-%you must do:
-%\begin{prompt}
-%latex myDoc
-%makeglossaries myDoc
-%latex myDoc
-%makeglossaries myDoc
-%latex myDoc
-%\end{prompt}
-%
-%Likewise, an additional \app{makeglossaries} and \LaTeX\ run
-%may be required if the document pages shift with re-runs. For
-%example, if the page numbering is not reset after the table of
-%contents, the insertion of the table of contents on the second
-%\LaTeX\ run may push glossary entries across page boundaries, which
-%means that the number lists\iterm{number list} in the glossary may
-%need updating.
-%
-%The examples in this document assume that you are accessing
-%\app{makeglossaries}, \app{xindy} or \app{makeindex} via a terminal.
-%Windows users can use the MSDOS Prompt which is usually accessed via
-%the \menu{Start}\submenu{All Programs} menu or
-%\menu{Start}\submenu{All Programs}\submenu{Accessories} menu.
-%
-%Alternatively, your text editor may have the facility to create a
-%function that will call the required application. The article
-%\href{http://www.latex-community.org/index.php?option=com_content&view=article\&id=263:glossaries-nomenclature-lists-of-symbols-and-acronyms&catid=55:latex-general&Itemid=114}{\qt{Glossaries, Nomenclature, List of Symbols and
-%Acronyms}}
-%in the \urlfootref{http://www.latex-community.org/}{\LaTeX\
-%Community's} Know How section
-%describes how to do this for TeXnicCenter, and the thread
-%\href{http://groups.google.com/group/comp.text.tex/browse_thread/thread/edd83831b81b0759?hl=en}{\qt{Executing Glossaries' makeindex from a WinEdt
-%macro}} on the \texttt{comp.text.tex} newsgroup
-%describes how to do it for WinEdt. For other editors see the editor's
-%user manual for further details.
-%
-%If any problems occur, remember to check the transcript files
-%(e.g.\ \filetype{.glg} or \filetype{.alg}) for messages.
-%
-%\begin{table}[htbp]
-%\caption{Commands and package options that have no effect when
-%using \texttt{xindy} or \texttt{makeindex} explicitly}
-%\label{tab:makeglossariesCmds}
-%\vskip\baselineskip
-%\begin{tabular}{@{}lll@{}}
-%\bfseries Command or Package Option & \app{makeindex} &
-%\app{xindy}\\
-%\pkgopt[letter]{order} & use \texttt{-l} &
-% use \texttt{-M ord/letorder}\\
-%\pkgopt[word]{order} & default & default\\
-%\pkgopt{xindy}=\{\pkgoptfmt{language=}\meta{lang}\pkgoptfmt{,codename=}\meta{code}\} &
-%N/A & use \texttt{-L} \meta{lang} \texttt{-C} \meta{code}\\
-%\ics{GlsSetXdyLanguage}\marg{lang} & N/A &
-%use \texttt{-L} \meta{lang}\\
-%\ics{GlsSetXdyCodePage}\marg{code} & N/A &
-%use \texttt{-C} \meta{code}
-%\end{tabular}
-%\par
-%\end{table}
-%
-%
-%\subsubsection{Using the makeglossaries Perl Script}
-%\label{sec:makeglossariesapp}
-%
-%The \app{makeglossaries} script picks up the relevant information
-%from the auxiliary (\filetype{.aux}) file and will either call
-%\app{xindy} or \app{makeindex}, depending on the supplied
-%information. Therefore, you only need to pass the document's name
-%without the extension to \app{makeglossaries}. For example, if your
-%document is called \texttt{myDoc.tex}, type the following in your
-%terminal:
-%\begin{prompt}
-%latex myDoc
-%makeglossaries myDoc
-%latex myDoc
-%\end{prompt}
-%You may need to explicitly load \app{makeglossaries} into Perl:
-%\begin{prompt}
-%perl makeglossaries myDoc
-%\end{prompt}
-%There is a batch file called \texttt{makeglossaries.bat} which does
-%this for Windows users, but you must have Perl installed to be able
-%to use it.
-%
-%The \app{makeglossaries} script contains POD (Plain Old
-%Documentation). If you want, you can create a man page for
-%\app{makeglossaries} using \app{pod2man} and move the
-%resulting file onto the man path.
-%
-%
-%\subsubsection{Using xindy explicitly}
-%\label{sec:xindyapp}
-%
-%If you want to use \app{xindy} to process the glossary
-%files, you must make sure you have used the
-%\pkgopt{xindy} package option:
-%\begin{verbatim}
-%\usepackage[xindy]{glossaries}
-%\end{verbatim}
-%This is required regardless of whether you use \app{xindy}
-%explicitly or whether it's called implicitly via
-%\app{makeglossaries}. This causes the glossary
-%entries to be written in raw \app{xindy} format, so you need to
-%use \texttt{-I xindy} \emph{not} \texttt{-I tex}.
-%
-%To run \app{xindy} type the following in your terminal
-%(all on one line):
-%\begin{prompt}
-%xindy -L \meta{language} -C \meta{encoding} -I xindy -M \meta{style} -t \meta{base}.glg -o \meta{base}.gls \meta{base}.glo
-%\end{prompt}
-%where \meta{language} is the required language name, \meta{encoding}
-%is the encoding, \meta{base} is the name of the document without the
-%\filetype{.tex} extension and \meta{style} is the name of the
-%\app{xindy} style file without the \filetype{.xdy} extension.
-%The default name for this style file is \meta{base}\filetype{.xdy}
-%but can be changed via \ics{setStyleFile}\marg{style}. You may need
-%to specify the full path name depending on the current working
-%directory. If any of the file names contain spaces, you must delimit
-%them using double-quotes.
-%
-%For example, if your document is called \texttt{myDoc.tex} and
-%you are using UTF8 encoding in English, then type the
-%following in your terminal:
-%\begin{prompt}
-%xindy -L english -C utf8 -I xindy -M myDoc -t myDoc.glg -o myDoc.gls myDoc.glo
-%\end{prompt}
-%
-%Note that this just creates the main glossary. You need to do
-%the same for each of the other glossaries (including the
-%list of acronyms if you have used the \pkgopt{acronym}
-%package option), substituting \filetype{.glg}, \filetype{.gls}
-%and \filetype{.glo} with the relevant extensions. For example,
-%if you have used the \pkgopt{acronym} package option, then
-%you would need to do:
-%\begin{prompt}
-%xindy -L english -C utf8 -I xindy -M myDoc -t myDoc.alg -o myDoc.acr myDoc.acn
-%\end{prompt}
-%For additional glossaries, the extensions are those supplied
-%when you created the glossary with \ics{newglossary}.
-%
-%Note that if you use \app{makeglossaries} instead, you can
-%replace all those calls to \app{xindy} with just one call
-%to \app{makeglossaries}:
-%\begin{prompt}
-%makeglossaries myDoc
-%\end{prompt}
-%Note also that some commands and package options have no effect if
-%you use \app{xindy} explicitly instead of using
-%\app{makeglossaries}. These are listed in
-%\tableref{tab:makeglossariesCmds}.
-%
-%
-%\subsubsection{Using makeindex explicitly}
-%\label{sec:makeindexapp}
-%
-%If you want to use \app{makeindex} explicitly, you must
-%make sure that you haven't used the \pkgopt{xindy} package
-%option or the glossary entries will be written in the wrong
-%format. To run \app{makeindex}, type the following in
-%your terminal:
-%\begin{prompt}
-%makeindex -s \meta{style}.ist -t \meta{base}.glg -o \meta{base}.gls \meta{base}.glo
-%\end{prompt}
-%where \meta{base} is the name of your document without the
-%\filetype{.tex} extension and \meta{style}\filetype{.ist} is the
-%name of the \app{makeindex} style file. By default, this is
-%\meta{base}\filetype{.ist}, but may be changed via
-%\ics{setStyleFile}\marg{style}. Note that there are other options,
-%such as \texttt{-l} (letter ordering). See the \app{makeindex}
-%manual for further details.
-%
-%For example, if your document is called \texttt{myDoc.tex}, then
-%type the following at the terminal:
-%\begin{prompt}
-%makeindex -s myDoc.ist -t myDoc.glg -o myDoc.gls myDoc.glo
-%\end{prompt}
-%Note that this only creates the main glossary. If you have
-%additional glossaries (for example, if you have used the
-%\pkgopt{acronym} package option) then you must call
-%\app{makeindex} for each glossary, substituting
-%\filetype{.glg}, \filetype{.gls} and \filetype{.glo} with the
-%relevant extensions. For example, if you have used the
-%\pkgopt{acronym} package option, then you need to type the
-%following in your terminal:
-%\begin{prompt}
-%makeindex -s myDoc.ist -t myDoc.alg -o myDoc.acr myDoc.acn
-%\end{prompt}
-%For additional glossaries, the extensions are those supplied
-%when you created the glossary with \ics{newglossary}.
-%
-%Note that if you use \app{makeglossaries} instead, you can
-%replace all those calls to \app{makeindex} with just one call
-%to \app{makeglossaries}:
-%\begin{prompt}
-%makeglossaries myDoc
-%\end{prompt}
-%Note also that some commands and package options have no effect if
-%you use \app{makeindex} explicitly instead of using
-%\app{makeglossaries}. These are listed in
-%\tableref{tab:makeglossariesCmds}.
-%
-%
-%\subsubsection{Note to Front-End and Script Developers}
-%
-%The information needed to determine whether to use \app{xindy}
-%or \app{makeindex} and the information needed to call those
-%applications is stored in the auxiliary file. This information can
-%be gathered by a front-end, editor or script to make the glossaries
-%where appropriate. This section describes how the information is
-%stored in the auxiliary file.
-%
-%The file extensions used by each defined glossary are given by
-%\begin{definition}[\DescribeMacro{\@newglossary}]
-%\cs{@newglossary}\marg{label}\marg{log}\marg{out-ext}\marg{in-ext}
-%\end{definition}
-%where \meta{in-ext} is the extension of the \emph{indexing
-%application's} input file (the output file from the \styfmt{glossaries}
-%package's point of view), \meta{out-ext} is the extension of the
-%\emph{indexing application's} output file (the input file from
-%the \styfmt{glossaries} package's point of view) and \meta{log} is the
-%extension of the indexing application's transcript file. The label
-%for the glossary is also given for information purposes only, but
-%is not required by the indexing applications. For example, the
-%information for the main glossary is written as:
-%\begin{verbatim}
-%\@newglossary{main}{glg}{gls}{glo}
-%\end{verbatim}
-%
-%The indexing application's style file is specified by
-%\begin{definition}[\DescribeMacro{\@istfilename}]
-%\cs{@istfilename}\marg{filename}
-%\end{definition}
-%The file extension indicates whether to use \app{makeindex}
-%(\filetype{.ist}) or \app{xindy} (\filetype{.xdy}). Note that
-%the glossary information is formatted differently depending on
-%which indexing application is supposed to be used, so it's
-%important to call the correct one.
-%
-%Word or letter ordering is specified by:
-%\begin{definition}[\DescribeMacro{\@glsorder}]
-%\cs{@glsorder}\marg{order}
-%\end{definition}
-%where \meta{order} can be either \texttt{word} or \texttt{letter}.
-%
-%If \app{xindy} should be used, the language and code page
-%for each glossary is specified by
-%\begin{definition}[\DescribeMacro{\@xdylanguage}\DescribeMacro{\@gls@codepage}]
-%\cs{@xdylanguage}\marg{label}\marg{language}\\
-%\cs{@gls@codepage}\marg{label}\marg{code}
-%\end{definition}
-%where \meta{label} identifies the glossary, \meta{language} is
-%the root language (e.g.\ \texttt{english}) and \meta{code}
-%is the encoding (e.g.\ \texttt{utf8}). These commands are omitted
-%if \app{makeindex} should be used.
-%
-%
-%\subsection{Troubleshooting}
-%\label{sec:trouble}
-%
-%The \styfmt{glossaries} package comes with a minimal file called
-%\texttt{minimalgls.tex} which can be used for testing. This
-%should be located in the \texttt{samples} subdirectory (folder)
-%of the \styfmt{glossaries} documentation directory. The location
-%varies according to your operating system and \TeX\ installation.
-%For example, on my Linux partition it can be found in
-%\texttt{/usr/local/texlive/2008/texmf-dist/doc/latex/glossaries/}.
-%Further information on debugging \LaTeX\ code is available at
-%\url{http://theoval.cmp.uea.ac.uk/~nlct/latex/minexample/}.
-%
-%Below is a list of the most frequently asked questions. For
-%other queries, consult the \styfmt{glossaries} FAQ at
-%\url{http://theoval.cmp.uea.ac.uk/~nlct/latex/packages/faq/glossariesfaq.html}.
-%
-%\begin{enumerate}
-%\item \textbf{Q.} I get the error message:
-%\begin{verbatim}
-%Missing \begin{document}
-%\end{verbatim}
-%
-%\textbf{A.} Check you are using an up to date version of the \sty{xkeyval}
-%package.
-%
-%\item \textbf{Q.} I've used the \pkgopt{smallcaps} option, but the acronyms
-%are displayed in normal sized upper case letters.
-%
-%\textbf{A.} The \pkgopt{smallcaps} package option uses \cs{textsc} to typeset
-%the acronyms. This command converts lower case letters to small
-%capitals, while upper case letters remain their usual size. Therefore
-%you need to specify the acronym in lower case letters.
-%
-%\item \textbf{Q.} My acronyms won't break across a line when they're
-%expanded.
-%
-%\textbf{A.} PDF\LaTeX\ can break hyperlinks across a line, but
-%\LaTeX\ can't. If you can't use PDF\LaTeX\ then disable the first use
-%links using the package option \pkgopt[false]{hyperfirst}.
-%
-%\item \textbf{Q.} How do I change the font that the acronyms are displayed in?
-%
-%\textbf{A.} The easiest way to do this is to specify the \pkgopt{smaller} package
-%option and redefine \cs{acronymfont} to use the required typesetting
-%command. For example, suppose you would like the acronyms displayed in
-%a sans-serif font, then you can do:
-%\begin{verbatim}
-%\usepackage[smaller]{glossaries}
-%\renewcommand*{\acronymfont}[1]{\textsf{#1}}
-%\end{verbatim}
-%
-%\item \textbf{Q.} How do I change the font that the acronyms are displayed in
-%on \firstuse?
-%
-%\textbf{A.} The easiest way to do this is to specify the \pkgopt{smaller} package
-%option and redefine \cs{firstacronymfont} to use the required
-%command. Note that if you don't want the acronym on subsequent use
-%to use \cs{textsmaller}, you will also need to redefine \cs{acronymfont},
-%as above. For example to make the acronym emphasized on
-%\firstuse, but use the surrounding font for subsequent use, you can do:
-%\begin{verbatim}
-%\usepackage[smaller]{glossaries}
-%\renewcommand*{\firstacronymfont}[1]{\emph{#1}}
-%\renewcommand*{\acronymfont}[1]{#1}
-%\end{verbatim}
-%
-%\item \textbf{Q.} I don't have Perl installed, do I have to use
-%\app{makeglossaries}?
-%
-%\textbf{A.} Although it is strongly recommended that you use
-%\app{makeglossaries}, you don't have to use it. For further details,
-%read \sectionref{sec:xindyapp} or \sectionref{sec:makeindexapp},
-%depending on whether you want to use \app{xindy} or \app{makeindex}.
-%
-%\item \textbf{Q.} I'm used to using the \styfmt{glossary} package: are there any
-%instructions on migrating from the \sty{glossary} package to the
-%\styfmt{glossaries} package?
-%
-%\textbf{A.} Read \qtdocref{Upgrading from the glossary package to
-%the glossaries package}{glossary2glossaries} which should be
-%available from the same location as this document.
-%
-%\item \textbf{Q.} I'm using \sty{babel} but the fixed names haven't
-%been translated.
-%
-%\textbf{A.} The \styfmt{glossaries} package currently only supports
-%the following languages: Brazilian Portuguese, Danish, Dutch,
-%English, French, German, Irish, Italian, Hungarian, Polish, Serbian and
-%Spanish. If you want to add another language, send me the
-%translations, and I'll add them to the next version.
-%
-%If you are using one of the above languages, but the text hasn't been
-%translated, try adding the \sty{translator} package with the
-%required languages explicitly (before you load the \styfmt{glossaries}
-%package). For example:
-%\begin{verbatim}
-%\usepackage[ngerman]{babel}
-%\usepackage[ngerman]{translator}
-%\usepackage{glossaries}
-%\end{verbatim}
-%Alternatively, you can add the language as a global option
-%to the class file. Check the \styfmt{translator} package documentation
-%for further details.
-%
-%\item \textbf{Q.} My acronyms contain strange characters when I use commands
-%like \ics{acrlong}.
-%
-%\textbf{A.} Switch off the sanitization:
-%\begin{verbatim}
-%\usepackage[sanitize=none]{glossaries}
-%\end{verbatim}
-%and protect fragile commands.
-%
-%\item \textbf{Q.} My glossaries haven't appeared.
-%
-%\textbf{A.} Remember to do the following:
-%\begin{itemize}
-%\item Add \ics{makeglossaries} to the document preamble.
-%
-%\item Use either \ics{printglossary} for each glossary that has
-%been defined or \ics{printglossaries}.
-%
-%\item Use the commands listed in \sectionref{sec:glslink},
-%\sectionref{sec:glsadd} or \sectionref{sec:crossref} for each entry
-%that you want to appear in the glossary.
-%
-%\item Run \LaTeX\ on your document, then run \app{makeglossaries},
-%then run \LaTeX\ on your document again. If you want the glossaries
-%to appear in the table of contents, you will need an extra \LaTeX\
-%run. If any of your entries cross-reference an entry that's not
-%referenced in the main body of the document, you will need to run
-%\app{makeglossaries} (see \sectionref{sec:makeglossaries}) after the
-%second \LaTeX\ run, followed by another \LaTeX\ run.
-%\end{itemize}
-%
-%Check the log files (\filetype{.log}, \filetype{.glg} etc) for any
-%warnings.
-%
-%\item \textbf{Q.} It is possible to change the rules used to sort
-%the glossary entries?
-%
-%\textbf{A.} If it's for an individual entry, then you can use the
-%entry's \gloskey{sort} key to sort it according to a different term.
-%If it's for the entire alphabet, then you will need to use
-%\app{xindy} (instead of \app{makeindex}) and use an appropriate
-%\app{xindy} language module. Writing \app{xindy} modules or styles
-%is beyond the scope of this manual. Further information about
-%\app{xindy} can be found at the
-%\urlfootref{http://xindy.sourceforge.net/}{Xindy Web Site}. There is
-%also a link to the \app{xindy} mailing list from that site.
-%
-%\end{enumerate}
-%
-%
-%\section{Overview of Main User Commands}\label{sec:overview}
-% \changes{1.02}{2007 May 25}{added overview section}
-%
-%This section is an overview of the main user commands and package
-%options. If you find this too complicated, try starting out with the
-%\docref{guide for beginners}{glossariesbegin}.
-%
-%\subsection{Package Options}
-%\label{sec:pkgopts}
-%
-%The \styfmt{glossaries} package options are as follows:
+%This is the documented code for the \styfmt{glossaries} package.
+%This bundle comes with the following documentation:
%\begin{description}
-%\item[\pkgopt{nowarn}] This suppresses all warnings generated by
-%the \styfmt{glossaries} package.
-%
-%\item[\pkgopt{nomain}] This suppresses the creation of the main
-%glossary. Note that if you use this option, you must create another
-%glossary in which to put all your entries (either via the
-%\pkgopt{acronym} package option described below or via
-%\ics{newglossary} described in \sectionref{sec:newglossary}).
-%
-%\item[\pkgopt{toc}] Add the glossaries to the table of contents.
-%Note that an extra \LaTeX\ run is required with this option.
-%Alternatively, you can switch this function on and off using
-%\begin{definition}[\DescribeMacro{\glstoctrue}]
-%\cs{glstoctrue}
-%\end{definition}
-%and
-%\begin{definition}[\DescribeMacro{\glstocfalse}]
-%\cs{glstocfalse}
-%\end{definition}
+%\item[\url{glossariesbegin.pdf}]
+%If you are a complete beginner, start with \qt{The glossaries
+%package: a guide for beginners}.
%
-%\item[\pkgopt{numberline}] When used with \pkgopt{toc}, this will
-%add \cs{numberline}\verb|{}| in the final argument of
-%\cs{addcontentsline}. This will align the table of contents entry
-%with the numbered section titles. Note that this option has no
-%effect if the \pkgopt{toc} option is omitted. If \pkgopt{toc} is
-%used without \pkgopt{numberline}, the title will be aligned with
-%the section numbers rather than the section titles.
+%\item[\url{glossary2glossaries.pdf}]
+%If you are moving over from the obsolete \sty{glossary} package,
+%read \qt{Upgrading from the glossary package to the
+%glossaries package}.
%
-%\item[\pkgopt{acronym}] This creates a new glossary with the
-%label \texttt{acronym}. This is equivalent to:
-%\begin{verbatim}
-%\newglossary[alg]{acronym}{acr}{acn}{\acronymname}
-%\end{verbatim}
-%If the \pkgopt{acronym} package option is used, \ics{acronymtype}
-%is set to \texttt{acronym} otherwise it is set to
-%\texttt{main}.\footnote{Actually it sets \ics{acronymtype} to
-%\ics{glsdefaulttype} if the \pkgopt{acronym} package option is
-%not used, but \ics{glsdefaulttype} usually has the value
-%\texttt{main}.}
-%Entries that are defined using \ics{newacronym} are placed in
-%the glossary whose label is given by \ics{acronymtype}, unless
-%another glossary is explicitly specified.
-%
-%\item[\pkgopt{acronymlists}] By default, only the \texttt{acronym}
-%glossary is considered to be a list of acronyms. If you have other
-%lists of acronyms, you can specify them as a comma-separated list
-%in the value of \pkgopt{acronymlists}. For example, if you want
-%the \texttt{main} glossary to also contain a list of acronyms, you
-%can do:
-%\begin{verbatim}
-%\usepackage[acronym,acronymlists={main}]{glossaries}
-%\end{verbatim}
-%No check is performed to determine if the listed glossaries exist,
-%so you can add glossaries you haven't defined yet. For example:
-%\begin{verbatim}
-%\usepackage[acronym,acronymlists={main,acronym2}]{glossaries}
-%\newglossary[alg2]{acronym2}{acr2}{acn2}{Statistical Acronyms}
-%\end{verbatim}
+%\item[\url{glossaries-user.pdf}]
+%For the main user guide, read \qt{glossaries.sty v3.0:
+%\LaTeX2e\ Package to Assist Generating Glossaries}.
%
-%\item[\pkgopt{section}] This is a \meta{key}=\meta{value} option. Its
-%value should be the name of a sectional unit (e.g.\ chapter).
-%This will make the glossaries appear in the named sectional unit,
-%otherwise each glossary will appear in a chapter, if chapters
-%exist, otherwise in a section. Unnumbered sectional units will be used
-%by default. Example:
-%\begin{verbatim}
-%\usepackage[section=subsection]{glossaries}
-%\end{verbatim}
-%You can omit the value if you want to use sections, i.e.\
-%\begin{verbatim}
-%\usepackage[section]{glossaries}
-%\end{verbatim}
-%is equivalent to
-%\begin{verbatim}
-%\usepackage[section=section]{glossaries}
-%\end{verbatim}
-%You can change this value later in the document using
-%\begin{definition}[\DescribeMacro{\setglossarysection}]
-%\cs{setglossarysection}\marg{name}
-%\end{definition}
-%where \meta{name} is the sectional unit.
+%\item[\url{mfirstuc-manual.pdf}]
+%The commands provided by the \sty{mfirstuc} package are briefly
+%described in \qt{mfirstuc.sty: uppercasing first letter}.
%
-%The start of each glossary adds information to the page header via
-%\begin{definition}[\DescribeMacro{\glossarymark}]
-%\cs{glossarymark}\marg{glossary title}
-%\end{definition}
-%This defaults to \cs{@mkboth}, but you may need to redefine it.
-%For example, to only change the right header:
-%\begin{verbatim}
-%\renewcommand{\glossarymark}[1]{\markright{#1}}
-%\end{verbatim}
-%or to prevent it from changing the headers:
-%\begin{verbatim}
-%\renewcommand{\glossarymark}[1]{}
-%\end{verbatim}
+%\item[glossaries.pdf]
+%This document is for advanced users wishing to know more about the
+%inner workings of the \styfmt{glossaries} package.
%
-%Occasionally you may find that another package defines
-%\cs{cleardoublepage} when it is not required. This may cause an
-%unwanted blank page to appear before each glossary. This can
-%be fixed by redefining \ics{glsclearpage}:
-%\begin{verbatim}
-%\renewcommand*{\glsclearpage}{\clearpage}
-%\end{verbatim}
+%\item[INSTALL] Installation instructions.
%
-%\item[\pkgopt{numberedsection}]
-%The glossaries are placed in unnumbered sectional units by default,
-%but this can be changed using \pkgopt{numberedsection}. This option can take
-%three possible values: \pkgoptval{false}{numberedsection} (no
-%number, i.e.\ use starred form), \pkgoptval{nolabel}{numberedsection}
-%(numbered, i.e.\ unstarred form, but not labelled) and
-%\pkgoptval{autolabel}{numberedsection} (numbered with automatic
-%labelling). If \pkgopt[autolabel]{numberedsection} is used, each
-%glossary is given a label that matches the glossary type, so the
-%main (default) glossary is labelled \texttt{main}, the list of
-%acronyms is labelled \texttt{acronym}\footnote{if the
-%\pkgopt{acronym} option is used, otherwise the list of
-%acronyms is the main glossary} and additional glossaries are labelled
-%using the value specified in the first mandatory argument to
-%\cs{newglossary}. For example, if you load \styfmt{glossaries}
-%using:
-%\begin{verbatim}
-%\usepackage[section,numberedsection=autolabel]{glossaries}
-%\end{verbatim}
-%then each glossary will appear in a numbered section, and can
-%be referenced using something like:
-%\begin{verbatim}
-%The main glossary is in section~\ref{main} and the list of
-%acronyms is in section~\ref{acronym}.
-%\end{verbatim}
-%If you can't decide whether to have the acronyms in the main
-%glossary or a separate list of acronyms, you can use
-%\ics{acronymtype} which is set to \texttt{main} if the
-%\pkgopt{acronym} option is not used and is set to \texttt{acronym}
-%if the \pkgopt{acronym} option is used. For example:
-%\begin{verbatim}
-%The list of acronyms is in section~\ref{\acronymtype}.
-%\end{verbatim}
+%\item[CHANGES] Change log.
%
-%As from version 1.14, you can add a prefix to the label by
-%redefining
-%\begin{definition}[\DescribeMacro{\glsautoprefix}]
-%\cs{glsautoprefix}
-%\end{definition}
-%For example:
-%\begin{verbatim}
-%\renewcommand*{\glsautoprefix}{glo:}
-%\end{verbatim}
-%will add \texttt{glo:} to the automatically generated label, so
-%you can then, for example, refer to the list of acronyms as follows:
-%\begin{verbatim}
-%The list of acronyms is in section~\ref{glo:\acronymtype}.
-%\end{verbatim}
-%Or, if you are undecided on a prefix:
-%\begin{verbatim}
-%The list of acronyms is in section~\ref{\glsautoprefix\acronymtype}.
-%\end{verbatim}
-%
-%
-%\item[\pkgopt{style}] This is a \meta{key}=\meta{value} option. Its
-%value should be the name of the glossary style to use. Predefined
-%glossary styles are listed in \sectionref{sec:styles}.
-%
-%\item[\pkgopt{nolong}] This prevents the \styfmt{glossaries} package
-%from automatically loading \sty{glossary-long} (which means that
-%the \sty{longtable} package also won't be loaded). This reduces
-%overhead by not defining unwanted styles and commands. Note that if
-%you use this option, you won't be able to use any of the
-%glossary styles defined in the \styfmt{glossary-long} package.
-%
-%\item[\pkgopt{nosuper}] This prevents the \styfmt{glossaries} package
-%from automatically loading \sty{glossary-super} (which means that
-%the \sty{supertabular} package also won't be loaded). This reduces
-%overhead by not defining unwanted styles and commands. Note that if
-%you use this option, you won't be able to use any of the
-%glossary styles defined in the \styfmt{glossary-super} package.
-%
-%\item[\pkgopt{nolist}] This prevents the \styfmt{glossaries} package
-%from automatically loading \sty{glossary-list}. This reduces
-%overhead by not defining unwanted styles. Note that if
-%you use this option, you won't be able to use any of the
-%glossary styles defined in the \styfmt{glossary-list} package.
-%Note that since the default style is \glostyle{list}, you will
-%also need to use the \pkgopt{style} option to set the style to
-%something else.
-%
-%\item[\pkgopt{notree}] This prevents the \styfmt{glossaries} package
-%from automatically loading \sty{glossary-tree}. This reduces
-%overhead by not defining unwanted styles. Note that if
-%you use this option, you won't be able to use any of the
-%glossary styles defined in the \styfmt{glossary-tree} package.
-%
-%\item[\pkgopt{nostyles}] This prevents all the predefined styles
-%from being loaded. This option is provided in the event that the
-%user has custom styles that are not dependent on the styles
-%provided by the \styfmt{glossaries} package. Note that if you use
-%this option, you can't use the \pkgopt{style} package option. Instead
-%you must either use \ics{glossarystyle}\marg{style} or
-%the \gloskey[printglossary]{style} key in the
-%optional argument to \ics{printglossary}.
-%
-%\item[\pkgopt{nonumberlist}] This option will suppress the
-%associated number lists\iterm{number list} in the glossaries (see also
-%\sectionref{sec:numberlists}).
-%
-%\item[\pkgopt{counter}] This is a \meta{key}=\meta{value} option. The
-%value should be the name of the default counter to use in the number
-%lists\iterm{number list}.
-%
-%\hypertarget{sanitize}{}\relax \item[\pkgopt{sanitize}] This is a
-%\meta{key}=\meta{value} option whose value is also a
-%\meta{key}=\meta{value} list. By default, the \styfmt{glossaries}
-%package sanitizes the values of the \gloskey{name},
-%\gloskey{description} and \gloskey{symbol} keys used when defining a
-%new glossary entry. This means that you can use fragile commands in
-%those keys, but it may lead to unexpected results if you try to
-%display these values within the document text. This sanitization can
-%be switched off using the \pkgopt{sanitize} package option. \ifpdf
-%(See \sectionref{sec:pkgopt} and \sectionref{sec:newentry} for
-%further details.) \fi For example, to switch off the sanitization
-%for the \gloskey{description} and \gloskey{name} keys, but not for
-%the \gloskey{symbol} key, do:
-%\begin{verbatim}
-%\usepackage[sanitize={name=false,description=false,%
-%symbol=true}]{glossaries}
-%\end{verbatim}
-%You can use \pkgopt[none]{sanitize} as a shortcut for\newline
-%\pkgoptfmt{sanitize=\{name=false,description=false,symbol=false\}}.
-%
-%\begin{important}%
-%\textbf{Note}: this sanitization only applies to the \gloskey{name},
-%\gloskey{description} and \gloskey{symbol} keys. It doesn't apply
-%to any of the other keys (except the \gloskey{sort} key which is
-%always sanitized) so fragile commands contained in the value of
-%the other keys must always be protected using \cs{protect}.
-%Since the value of the \gloskey{text} key is obtained from the
-%\gloskey{name} key, you will still need to protect fragile commands
-%in the \gloskey{name} key if you don't use the \gloskey{text} key.
-%\end{important}
-%
-%\item[\pkgopt{description}] This option changes the definition of
-%\ics{newacronym} to allow a description. See \sectionref{sec:acronyms}
-%for further details.
-%
-%\item[\pkgopt{footnote}] This option changes the definition of
-%\ics{newacronym} and the way that acronyms are displayed. See
-%\sectionref{sec:acronyms} for further details.
-%
-%\item[\pkgopt{smallcaps}] This option changes the definition of
-%\ics{newacronym} and the way that acronyms are displayed. See
-%\sectionref{sec:acronyms} for further details.
-%
-%\item[\pkgopt{smaller}] This option changes the definition of
-%\ics{newacronym} and the way that acronyms are displayed.
-%If you use this option, you will need to include the \sty{relsize}
-%package or otherwise define \ics{textsmaller} or redefine
-%\ics{acronymfont}. See \sectionref{sec:acronyms} for further details.
-%
-%\item[\pkgopt{dua}] This option changes the definition of
-%\ics{newacronym} so that acronyms are always expanded.
-%See \sectionref{sec:acronyms} for further details.
-%
-%\item[\pkgopt{shortcuts}] This option provides shortcut commands
-%for acronyms. See \sectionref{sec:acronyms} for further details.
-%
-%\item[\pkgopt{makeindex}] (Default) The glossary information and
-%indexing style file will be written in \app{makeindex} format. If
-%you use \app{makeglossaries}, it will automatically detect that it
-%needs to call \app{makeindex}. If you don't use
-%\app{makeglossaries}, you need to remember to use \app{makeindex}
-%not \app{xindy}. The indexing style file will been given a
-%\filetype{.ist} extension.
-%
-%\item[\pkgopt{xindy}] The glossary information and indexing style
-%file will be written in \app{xindy} format. If you use
-%\app{makeglossaries}, it will automatically detect that it needs to
-%call \app{xindy}. If you don't use \app{makeglossaries}, you need to
-%remember to use \app{xindy} not \app{makeindex}. The indexing style
-%file will been given a \filetype{.xdy} extension.
-%
-%The \pkgopt{xindy} package option may additionally have a value that
-%is a \meta{key}=\meta{value} comma-separated list to override the
-%language and codepage. For example:
-%\begin{verbatim}
-%\usepackage[xindy={language=english,codepage=utf8}]{glossaries}
-%\end{verbatim}
-%You can also specify whether you want a number group in the
-%glossary. This defaults to true, but can be suppressed. For example:
-%\begin{verbatim}
-%\usepackage[xindy={glsnumbers=false}]{glossaries}
-%\end{verbatim}
-%See \sectionref{sec:xindy} for further details on using \app{xindy}
-%with the \styfmt{glossaries} package.
-%
-%\item[\pkgopt{order}] This may take two values:
-%\pkgoptval{word}{order} or \pkgoptval{letter}{order}. The default
-%is word ordering. Note that this option has no effect if you
-%don't use \app{makeglossaries}.
-%
-%\item[\pkgopt{translate}] This is a boolean option. The default is
-%\pkgoptval{true}{translate} if \sty{babel}, \sty{polyglossia} or
-%\sty{translator} have been loaded, otherwise the default value is
-%\pkgoptval{false}{translate}.
-%
-% \begin{description}
-% \item[{\pkgopt[true]{translate}}] If \sty{babel} has been loaded
-% and the \sty{translator} package is installed, \sty{translator}
-% will be loaded and the translations will be provided by the
-% \sty{translator} package interface. You can modify the
-% translations by providing your own dictionary. If the
-% \sty{translator} package isn't installed and \sty{babel} is
-% loaded, the \sty{glossaries-babel} package will
-% be loaded and the translations will be provided using \styfmt{babel}'s
-% \cs{addto}\cs{caption}\meta{language} mechanism. If
-% \sty{polyglossia} has been loaded, \sty{glossaries-polyglossia}
-% will be loaded.
-%
-% \item[{\pkgopt[false]{translate}}] Don't provide translations, even
-% if \sty{babel} or \sty{polyglossia} has been loaded. You can
-% then provide you're own translations or explicitly load
-% \sty{glossaries-babel} or \sty{glossaries-polyglossia}.
-% \end{description}
-%
-%See \sectionref{sec:fixednames} for further details.
-%
-%\item[\pkgopt{hyperfirst}] This is a boolean option that specifies
-%whether each term has a hyperlink on \firstuse. The default is
-%\pkgopt[true]{hyperfirst} (terms on first use have a hyperlink,
-%unless explicitly suppressed using starred versions of commands
-%such as \cs{gls*}).
+%\item[README] Package summary.
%
%\end{description}
%
-%\subsection{Defining Glossary Entries}
-%\label{sec:newglosentry}
-%
-%All glossary entries must be defined before they are used, so it is
-%better to define them in the preamble to ensure this.\footnote{The
-%only preamble restriction on \cs{newglossaryentry} and
-%\cs{newacronym} was removed in version 1.13, but the restriction
-%remains for \cs{loadglsentries}.} However only those entries that
-%occur in the document (using any of the commands described in
-%\sectionref{sec:glslink}, \sectionref{sec:glsadd} or
-%\sectionref{sec:crossref}) will appear in the glossary. Each time an
-%entry is used in this way, a line is added to an associated glossary
-%file (\filetype{.glo}), which then needs to be converted into a
-%corresponding \filetype{.gls} file which contains the typeset
-%glossary which is input by \ics{printglossary} or
-%\ics{printglossaries}. The Perl script \app{makeglossaries} can be
-%used to call \app{makeindex} or \app{xindy}, using a customised
-%indexing style file, for each of the glossaries that are defined in
-%the document. Note that there should be no need for you to
-%explicitly edit or input any of these external files. See
-%\sectionref{sec:makeglossaries} for further details.
-%
-%The command
-%\begin{definition}[\DescribeMacro{\makeglossaries}]
-%\cs{makeglossaries}
-%\end{definition}
-%must be placed in the preamble in order to create the customised
-%\app{makeindex} (\filetype{.ist}) or \app{xindy} (\filetype{.xdy})
-%style file and to ensure that glossary entries are written to the
-%appropriate output files. If you omit \cs{makeglossaries} none of
-%the glossaries will be created.
-%
-%\begin{important}
-%Note that some of the commands provided by the \styfmt{glossaries}
-%package must be placed before \cs{makeglossaries} as they are
-%required when creating the customised style file. If you attempt
-%to use those commands after \cs{makeglossaries} you will generate
-%an error.
-%\end{important}
-%
-%You can suppress the creation of the customised \app{xindy}
-%or \app{makeindex} style file using
-%\begin{definition}[\DescribeMacro{\noist}]
-%\cs{noist}
-%\end{definition}
-%Note that this command must be used before \cs{makeglossaries}.
-%
-%The default name for the customised style file is given by
-%\ics{jobname}\filetype{.ist} (for \app{makeindex}) or
-%\ics{jobname}\filetype{.xdy} (for \app{xindy}). This name may be
-%changed using:
-%\begin{definition}[\DescribeMacro{\setStyleFile}]
-%\cs{setStyleFile}\marg{name}
-%\end{definition}
-%where \meta{name} is the name of the style file without the
-%extension. Note that this command must be used before
-%\cs{makeglossaries}.
-%
-%Each glossary entry is assigned a \term{number list} that lists all
-%the locations in the document where that entry was used. By default,
-%the location refers to the page number but this may be overridden
-%using the \pkgopt{counter} package option. The default form of
-%the location number assumes a full stop compositor (e.g.\ 1.2),
-%but if your location numbers use a different compositor (e.g. 1-2)
-%you need to set this using
-%\begin{definition}[\DescribeMacro{\glsSetCompositor}]
-%\cs{glsSetCompositor}\marg{symbol}
-%\end{definition}
-%For example:
-%\begin{verbatim}
-%\glsSetCompositor{-}
-%\end{verbatim}
-%Note that this command must be used before \cs{makeglossaries}.
-%
-%If you use \app{xindy}, you can have a different compositor for page
-%numbers starting with an uppercase alphabetical character using:
-%\begin{definition}[\DescribeMacro{\glsSetAlphaCompositor}]
-%\cs{glsSetAlphaCompositor}\marg{symbol}
-%\end{definition}
-%Note that this command has no effect if you haven't used the
-%\pkgopt{xindy} package option. For example, if you want number
-%lists\iterm{number list} containing a mixture of A-1 and 2.3 style
-%formats, then do:
-%\begin{verbatim}
-%\glsSetCompositor{.} \glsSetAlphaCompositor{-}
-%\end{verbatim}
-%See \sectionref{sec:numberlists} for further information about
-%number lists\iterm{number list}.
-%
-%New glossary entries are defined using the command:
-%\begin{definition}[\DescribeMacro{\newglossaryentry}]
-%\cs{newglossaryentry}\marg{label}\marg{key-val list}
-%\end{definition}
-%The first argument, \meta{label}, must be a unique label with which
-%to identify this entry. The second argument, \meta{key-val list}, is
-%a \meta{key}=\meta{value} list that supplies the relevant
-%information about this entry. There are two required fields:
-%\gloskey{description} and either \gloskey{name} or \gloskey{parent}.
-%Available fields are listed below:
-%
-%\begin{description}
-%\item[{\gloskey{name}}] The name of the entry (as it will appear in
-%the glossary). If this key is omitted and the \gloskey{parent}
-%key is supplied, this value will be the same as the parent's name.
-%
-%\item[{\gloskey{description}}] A brief description of this term (to
-%appear in the glossary). Within this value, you can use
-%\begin{definition}[\DescribeMacro{\nopostdesc}]
-%\cs{nopostdesc}
-%\end{definition}
-%to suppress the
-%description terminator for this entry. For example, if this
-%entry is a parent entry that doesn't require a description, you
-%can do \verb|description={\nopostdesc}|. If you want a paragraph
-%break in the description use
-%\begin{definition}[\DescribeMacro{\glspar}]
-%\cs{glspar}
-%\end{definition}
-%However, note that not all glossary styles support multi-line
-%descriptions. If you are using one of the tabular-like glossary
-%styles that permit multi-line descriptions, use \ics{newline}
-%not \verb"\\" if you want to force a line break.
-%
-%\item[{\gloskey{parent}}] The label of the parent entry. Note that
-%the parent entry must be defined before its sub-entries.
-%See \sectionref{sec:subentries} for further details.
-%
-%\item[{\gloskey{descriptionplural}}] The plural form of the
-%description (as passed to \ics{glsdisplay} and \ics{glsdisplayfirst}
-%by \ics{glspl}, \ics{Glspl} and \ics{GLSpl}). If omitted, the value
-%is set to the same as the \gloskey{description} key.
-%
-%\item[{\gloskey{text}}] How this entry will appear in the document text
-%when using \ics{gls} (or one of its uppercase variants). If this
-%field is omitted, the value of the \gloskey{name} key is used.
-%
-%\item[{\gloskey{first}}] How the entry will appear in the document text
-%the first time it is used with \ics{gls}\ifirstusetext\ (or one of its uppercase
-%variants). If this field is omitted, the value of the \gloskey{text}
-%key is used.
-%
-%\item[{\gloskey{plural}}] How the entry will appear in the document text
-%when using \ics{glspl} (or one of its uppercase variants).
-%If this field is omitted, the value is obtained by appending
-%\ics{glspluralsuffix} to the value of the \gloskey{text} field.
-%The default value of \cs{glspluralsuffix} is the letter
-%\qt{s}.
-%
-%\item[{\gloskey{firstplural}}] How the entry will appear in the
-%document text the first time it is used with \ics{glspl}\ifirstusetext\ (or one of its
-%uppercase variants). If this field is omitted, the value is obtained
-%from the \gloskey{plural} key, if the \gloskey{first} key is omitted,
-%or by appending \ics{glspluralsuffix} to the value of the
-%\gloskey{first} field, if the \gloskey{first} field is present.
-%
-%\textbf{Note:} prior to version 1.13, the default value of
-%\gloskey{firstplural} was always taken by appending \qt{s} to the
-%\gloskey{first} key, which meant that you had to specify both
-%\gloskey{plural} and \gloskey{firstplural}, even if you hadn't
-%used the \gloskey{first} key.
-%
-%\item[{\gloskey{symbol}}] This field is provided to allow the user to
-%specify an associated symbol. If omitted, the value is set to
-%\cs{relax}. Note that not all glossary styles display the
-%symbol.
-%
-%\item[{\gloskey{symbolplural}}] This is the plural form of the
-%symbol (as passed to \ics{glsdisplay} and \ics{glsdisplayfirst}
-%by \ics{glspl}, \ics{Glspl} and \ics{GLSpl}). If omitted, the value
-%is set to the same as the \gloskey{symbol} key.
-%
-%\item[{\gloskey{sort}}] This value indicates how \app{makeindex}
-%or \app{xindy} should sort this entry. If omitted, the value is
-%given by the \gloskey{name} field.
-%
-%\item[{\gloskey{type}}] This specifies the label of the glossary in
-%which this entry belongs. If omitted, the default glossary is
-%assumed. The list of acronyms type is given by
-%\ics{acronymtype} which will either be \texttt{main} or
-%\texttt{acronym}, depending on whether the \pkgopt{acronym} package
-%option was used.
-%
-%\item[{\gloskey{user1}, \ldots, \gloskey{user6}}] Six additional
-%keys provided for any additional information the user may want
-%to specify. (For example, an associated dimension or an alternative
-%plural.)
-%
-%\item[{\gloskey{nonumberlist}}] Suppress the \term{number list} for
-%this entry.
-%
-%\item[{\gloskey{see}}] Cross-reference another entry. Using the
-%\gloskey{see} key will automatically add this entry to the
-%glossary, but will not automatically add the cross-referenced entry.
-%The referenced entry should be supplied as the value to this key.
-%If you want to override the \qt{see} tag, you can supply the new
-%tag in square brackets before the label. For example
-%\verb|see=[see also]{anotherlabel}|. For further details,
-%see \sectionref{sec:crossref}.
-%
-%\end{description}
-%Note that if the name starts with an accented letter or non-Latin
-%character, you must group the accented letter, otherwise it will
-%cause a problem for commands like \cs{Gls} and \cs{Glspl}.
-%For example:
-%\begin{verbatim}
-%\newglossaryentry{elite}{name={{\'e}lite},
-%description={select group or class}}
-%\end{verbatim}
-%Note that the same applies if you are using the \sty{inputenc}
-%package:
-%\begin{verbatim}
-%\newglossaryentry{elite}{name={{é}lite},
-%description={select group or class}}
-%\end{verbatim}
-%Note that in both of the above examples, you will also need to
-%supply the \gloskey{sort} key if you are using \app{makeindex}
-%whereas \app{xindy} is usually able to sort accented letters
-%correctly.
-%
-%
-%
-%\subsubsection{Plurals}
-%You may have noticed from above that you can specify the plural form
-%when you define a term. If you omit this, the plural will be
-%obtained by appending
-%\begin{definition}[\DescribeMacro{\glspluralsuffix}]
-%\cs{glspluralsuffix}
-%\end{definition}
-%to the singular form. This command defaults to the letter \qt{s}.
-%For example:
-%\begin{verbatim}
-%\newglossaryentry{cow}{name=cow,description={a fully grown
-%female of any bovine animal}}
-%\end{verbatim}
-%defines a new entry whose singular form is \qt{cow} and plural form
-%is \qt{cows}. However, if you are writing in archaic English, you
-%may want to use \qt{kine} as the plural form, in which case you
-%would have to do:
-%\begin{verbatim}
-%\newglossaryentry{cow}{name=cow,plural=kine,
-%description={a fully grown female of any bovine animal}}
-%\end{verbatim}
-%
-%If you are writing in a language that supports
-%multiple plurals (for a given term) then use the \gloskey{plural} key
-%for one of them and one of the user keys to specify the
-%other plural form. For example:
-%\begin{verbatim}
-%\newglossaryentry{cow}{name=cow,description={a fully grown
-%female of any bovine animal (plural cows, archaic plural kine)},
-%user1={kine}}
-%\end{verbatim}
-%You can then use \verb|\glspl{cow}| to produce \qt{cows} and
-%\verb|\glsuseri{cow}| to produce \qt{kine}. You can, of course,
-%define an easy to remember synonym. For example:
-%\begin{verbatim}
-%\let\glsaltpl\glsuseri
-%\end{verbatim}
-%Then you don't have to remember which key you used to store the
-%alternative plural.
-%
-%If you are using a language that usually forms plurals
-%by appending a different letter, or sequence of letters, you can
-%redefine \cs{glspluralsuffix} as required. However, this must be
-%done \emph{before} the entries are defined. For languages that don't
-%form plurals by simply appending a suffix, all the plural forms must be
-%specified using the \gloskey{plural} key (and the \gloskey{firstplural}
-%key where necessary).
-%
-%
-%\subsubsection{Sub-Entries}
-%\label{sec:subentries}
-%
-%As from version 1.17, it is possible to specify sub-entries. These
-%may be used to order the glossary into categories, in which case
-%the sub-entry will have a different name to its parent entry, or
-%it may be used to distinguish different definitions for the same
-%word, in which case the sub-entries will have the same name as
-%the parent entry. Note that not all glossary styles support
-%hierarchical entries and may display all the entries in a flat
-%format. Of the styles that support sub-entries, some display the
-%sub-entry's name whilst others don't. Therefore you need to
-%ensure that you use a suitable style. See \sectionref{sec:styles}
-%for a list of predefined styles.
-%
-%Note that the parent entry will automatically be added to the
-%glossary if any of its child entries are used in the document.
-%If the parent entry is not referenced in the document, it will not
-%have a \term{number list}.
-%
-%
-%\paragraph{Hierarchical Categories} To arrange a glossary
-%with hierarchical categories, you need to first define the
-%category and then define the sub-entries using the relevant
-%category entry as the value of the \gloskey{parent} key. For
-%example, suppose I want a glossary of mathematical symbols that
-%are divided into Greek letters and Roman letters. Then I can
-%define the categories as follows:
-%\begin{verbatim}
-%\newglossaryentry{greekletter}{name={Greek letters},
-%description={\nopostdesc}}
-%
-%\newglossaryentry{romanletter}{name={Roman letters},
-%description={\nopostdesc}}
-%\end{verbatim}
-%
-%Note that in this example, the category entries don't need a
-%description so I have set the descriptions to \ics{nopostdesc}.
-%This gives a blank description and suppresses the
-%description terminator.
-%
-%I can now define my sub-entries as follows:
-%\begin{verbatim}
-%\newglossaryentry{pi}{name={pi},
-%description={ratio of the circumference of a circle to the diameter},
-%parent=greekletter}
-%
-%\newglossaryentry{C}{name=C,
-%description={Euler's constant},
-%parent=romanletter}
-%\end{verbatim}
-%
-%
-%\paragraph{Homographs} Sub-entries that have the same name as
-%the parent entry, don't need to have the \gloskey{name} key.
-%For example, the word \qt{glossary} can mean a list of technical
-%words or a collection of glosses. In both cases the plural is
-%\qt{glossaries}. So first define the parent entry:
-%\begin{verbatim}
-%\newglossaryentry{glossary}{name=glossary,
-%description={\nopostdesc},
-%plural={glossaries}}
-%\end{verbatim}
-%Again, the parent entry has no description, so the description
-%terminator needs to be suppressed using \ics{nopostdesc}.
-%
-%Now define the two different meanings of the word:
-%\begin{verbatim}
-%\newglossaryentry{glossarylist}{
-%description={1) list of technical words},
-%sort={1},
-%parent={glossary}}
-%
-%\newglossaryentry{glossarycol}{
-%description={2) collection of glosses},
-%sort={2},
-%parent={glossary}}
-%\end{verbatim}
-%Note that if I reference the parent entry, the location will be
-%added to the parent's \term{number list}, whereas if I reference
-%any of the child entries, the location will be added to the child
-%entry's number list. Note also that since the sub-entries have the
-%same name, the \gloskey{sort} key is required.
-%
-%In the above example, the plural form for both of the child entries
-%is the same as the parent entry, so the \gloskey{plural} key was
-%not required for the child entries. However, if the sub-entries
-%have different plurals, they will need to be specified. For example:
-%\begin{verbatim}
-%\newglossaryentry{bravo}{name={bravo},
-%description={\nopostdesc}}
-%
-%\newglossaryentry{bravocry}{description={1) cry of approval (pl.\ bravos)},
-%sort={1},
-%plural={bravos},
-%parent=bravo}
-%
-%\newglossaryentry{bravoruffian}{description={2) hired ruffian or
-%killer (pl.\ bravoes)},
-%sort={2},
-%plural={bravoes},
-%parent=bravo}
-%\end{verbatim}
-%
-%
-%\subsubsection{Loading Entries From a File}
-%\label{sec:loadglsentries}
-%
-%You can store all your glossary entry definitions in another
-%file and use:
-%\begin{definition}[\DescribeMacro{\loadglsentries}]
-%\cs{loadglsentries}\oarg{type}\marg{filename}
-%\end{definition}
-%where \meta{filename} is the name of the file containing all the
-%\cs{newglossaryentry} commands. The optional argument
-%\meta{type} is the name of the glossary to which those entries
-%should belong, for those entries where the \gloskey{type} key has
-%been omitted (or, more specifically, for those entries whose
-%type has been specified by \cs{glsdefaulttype}, which is what
-%\cs{newglossaryentry} uses by default). For example, suppose I have
-%a file called \texttt{myentries.tex} which contains:
-%\begin{verbatim}
-%\newglossaryentry{perl}{type=main,
-%name={Perl},
-%description={A scripting language}}
-%
-%\newglossaryentry{tex}{name={\TeX},
-%description={A typesetting language},sort={TeX}}
-%
-%\newglossaryentry{html}{type=\glsdefaulttype,
-%name={html},
-%description={A mark up language}}
-%\end{verbatim}
-%and suppose in my document preamble I use the command:
-%\begin{verbatim}
-%\loadglsentries[languages]{myentries}
-%\end{verbatim}
-%then this will add the entries \texttt{tex} and \texttt{html}
-%to the glossary whose type is given by \texttt{languages}, but
-%the entry \texttt{perl} will be added to the main glossary, since
-%it explicitly sets the type to \texttt{main}.
-%
-%\textbf{Note:} if you use \cs{newacronym} (see
-%\sectionref{sec:acronyms}) the type is set as
-%\verb|type=\acronymtype| unless you explicitly override it. For
-%example, if my file \texttt{myacronyms.tex} contains:
-%\begin{verbatim}
-%\newacronym{aca}{aca}{a contrived acronym}
-%\end{verbatim}
-%then (supposing I have defined a new glossary type called
-%\texttt{altacronym})
-%\begin{verbatim}
-%\loadglsentries[altacronym]{myacronyms}
-%\end{verbatim}
-%will add \texttt{aca} to the glossary type \texttt{acronym}, if the
-%package option \pkgopt{acronym} has been specified, or will add
-%\texttt{aca} to the glossary type \texttt{altacronym}, if the
-%package option \pkgopt{acronym} is not specified.\footnote{This is
-%because \cs{acronymtype} is set to \cs{glsdefaulttype} if the
-%\pkgopt{acronym} package option is not used.} In this instance, it
-%is better to change \texttt{myacronyms.tex} to:
-%\begin{verbatim}
-%\newacronym[type=\glsdefaulttype]{aca}{aca}{a contrived acronym}
-%\end{verbatim}
-%and now
-%\begin{verbatim}
-%\loadglsentries[altacronym]{myacronyms}
-%\end{verbatim}
-%will add \texttt{aca} to the glossary type \texttt{altacronym},
-%regardless of whether or not the package option \pkgopt{acronym} is
-%used.
-%
-%Note that only those entries that have been used
-%in the text will appear in the relevant glossaries.
-%Note also that \cs{loadglsentries} may only be used in the
-%preamble.
-%
-%\subsection{Number lists}
-%\label{sec:numberlists}
-%
-%Each entry in the glossary has an associated \termdef{number list}.
-%By default,
-%these numbers refer to the pages on which that entry has been used
-%(using any of the commands described in \sectionref{sec:glslink}
-%and \sectionref{sec:glsadd}). The number list can be suppressed using
-%the \pkgopt{nonumberlist} package option, or an alternative counter
-%can be set as the default using the \pkgopt{counter} package option.
-%The number list is also referred to as the location
-%list\index{location list|see{number list}}.
-%
-%Both \app{makeindex} and \app{xindy} concatenate a
-%sequence of 3 or more consecutive pages into a range. With
-%\app{xindy} you can vary the minimum sequence length using
-%\ics{GlsSetXdyMinRangeLength}\marg{n} where \meta{n} is either
-%an integer or the keyword \texttt{none} which indicates that there
-%should be no range formation.
-%
-%\begin{important}
-%Note that \cs{GlsSetXdyMinRangeLength} must be used before
-%\ics{makeglossaries} and has no effect if \ics{noist} is used.
-%\end{important}
-%
-%With both \app{makeindex} and \app{xindy}, you can replace
-%the separator and the closing number in the range using:
-%\begin{definition}[\DescribeMacro{\glsSetSuffixF}]
-%\cs{glsSetSuffixF}\marg{suffix}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\glsSetSuffixFF}]
-%\cs{glsSetSuffixFF}\marg{suffix}
-%\end{definition}
-%where the former command specifies the suffix to use for a 2 page
-%list and the latter specifies the suffix to use for longer lists.
-%For example:
-%\begin{verbatim}
-%\glsSetSuffixF{f.}
-%\glsSetSuffixFF{ff.}
-%\end{verbatim}
-%Note that if you use \app{xindy}, you will also need to
-%set the minimum range length to 1 if you want to change these
-%suffixes:
-%\begin{verbatim}
-%\GlsSetXdyMinRangeLength{1}
-%\end{verbatim}
-%Note that if you use the \sty{hyperref} package, you will need
-%to use \ics{nohyperpage} in the suffix to ensure that the hyperlinks
-%work correctly. For example:
-%\begin{verbatim}
-%\glsSetSuffixF{\nohyperpage{f.}}
-%\glsSetSuffixFF{\nohyperpage{ff.}}
-%\end{verbatim}
-%
-%\begin{important}
-%Note that \cs{glsSetSuffixF} and \cs{glsSetSuffixFF} must be used
-%before \ics{makeglossaries} and have no effect if \ics{noist} is
-%used.
-%\end{important}
-%
-%
-%\subsection{Links to Glossary Entries}
-%\label{sec:glslink}
-%
-%Once you have defined a glossary entry using \ics{newglossaryentry},
-%you can refer to that entry in the document using one of the
-%commands listed in this section. The text which appears at that
-%point in the document when using one of these commands is referred
-%to as the \termdef{link text} (even if there are no hyperlinks). The
-%commands in this section also add a line to an external file that is
-%used by \app{makeindex} or \app{xindy} to generate the relevant
-%entry in the glossary. This information includes an associated
-%location that is added to the \term{number list} for that entry. By
-%default, the location refers to the page number. For further
-%information on number lists, see \sectionref{sec:numberlists}.
-%
-%\begin{important}
-%It is strongly recommended that you don't use the commands
-%defined in this section in the arguments of sectioning or caption
-%commands.
-%\end{important}
-%
-%The above warning is particularly important if you are using the
-%\styfmt{glossaries} package in conjunction with the \sty{hyperref}
-%package. Instead, use one of the commands listed in
-%\sectionref{sec:glsnolink} (such as \cs{glsentrytext}) or provide an
-%alternative via the optional argument to the sectioning/caption
-%command. Examples:
-%\begin{verbatim}
-%\section{An overview of \glsentrytext{perl}}
-%\section[An overview of Perl]{An overview of \gls{perl}}
-%\end{verbatim}
-%
-%The way the \term{link text} is displayed depends on
-%\begin{definition}[\DescribeMacro{\glstextformat}]
-%\cs{glstextformat}\marg{text}
-%\end{definition}
-%For example, to make all \term{link text} appear in a sans-serif
-%font, do:
-%\begin{verbatim}
-%\renewcommand*{\glstextformat}[1]{\textsf{#1}}
-%\end{verbatim}
-%
-%Each entry has an associated conditional referred to as the
-%\firstuseflag. This determines whether \ics{gls},
-%\ics{glspl} (and their uppercase variants) should use the
-%value of the \gloskey{first} or \gloskey{text} keys. Note that an
-%entry can be used without affecting the \firstuseflag\ (for example,
-%when used with \cs{glslink}). See \sectionref{sec:glsunset} for
-%commands that unset or reset this conditional.
-%
-%The command:
-%\begin{definition}[\DescribeMacro{\glslink}]
-%\cs{glslink}\oarg{options}\marg{label}\marg{text}
-%\end{definition}
-%will place \cs{glstextformat}\marg{text} in the document at that
-%point and add a line into the associated glossary file for the
-%glossary entry given by \meta{label}. If hyperlinks are supported,
-%\meta{text} will be a hyperlink to the relevant line in the
-%glossary. (Note that this command doesn't affect the \firstuseflag:
-%use \ics{glsdisp} instead.) The optional argument \meta{options}
-%must be a \meta{key}=\meta{value} list which can take any of the
-%following keys:
-%
-%\begin{description}
-%\item[{\gloskey[glslink]{format}}] This specifies how to format the
-%associated location number for this entry in the glossary. This
-%value is equivalent to the \app{makeindex} encap value, and (as
-%with \cs{index}) the value needs to be the name of a command
-%\emph{without} the initial backslash. As with \cs{index}, the
-%characters \verb"(" and \verb")" can also be used to specify the
-%beginning and ending of a number range. Again as with \cs{index},
-%the command should be the name of a command which takes an argument
-%(which will be the associated location). Be careful not to use a
-%declaration (such as \texttt{bfseries}) instead of a text block command
-%(such as \texttt{textbf}) as the effect is not guaranteed to be
-%localised. If you want to apply more than one style to a given entry
-%(e.g.\ \textbf{bold} and \emph{italic}) you will need to create a
-%command that applies both formats, e.g.\
-%\begin{verbatim}
-%\newcommand*{\textbfem}[1]{\textbf{\emph{#1}}}
-%\end{verbatim}
-%and use that command.
-%
-%In this document, the standard formats refer to the standard text
-%block commands such as \ics{textbf} or \ics{emph} or any of the
-%commands listed in \tableref{tab:hyperxx}.
-%
-%\begin{important}
-%If you use \app{xindy} instead of \app{makeindex}, you
-%must specify any non-standard formats that you want to use
-%with the \gloskey[glslink]{format} key using
-%\ics{GlsAddXdyAttribute}\marg{name}. So if you use
-%\app{xindy} with the above example, you would need to add:
-%\begin{verbatim}
-%\GlsAddXdyAttribute{textbfem}
-%\end{verbatim}
-%\end{important}
-%
-%Note that unlike \cs{index}, you can't have anything following the
-%command name, such as an asterisk or arguments. If you want to
-%cross-reference another entry, either use the \gloskey{see} key when
-%you define the entry or use \ics{glssee} (described in
-%\sectionref{sec:crossref}).
-%
-%
-%If you are using hyperlinks and you want to change the font of the
-%hyperlinked location, don't use \ics{hyperpage} (provided by the
-%\sty{hyperref} package) as the locations may not refer to a page
-%number. Instead, the \styfmt{glossaries} package provides number
-%formats listed in \tableref{tab:hyperxx}.
-%
-%\begin{table}[htbp]
-%\caption{Predefined Hyperlinked Location Formats}
-%\label{tab:hyperxx}
-%\centering
-%\vskip\baselineskip
-%\begin{tabular}{ll}
-%\locfmt{hyperrm} & serif hyperlink\\
-%\locfmt{hypersf} & sans-serif hyperlink\\
-%\locfmt{hypertt} & monospaced hyperlink\\
-%\locfmt{hyperbf} & bold hyperlink\\
-%\locfmt{hypermd} & medium weight hyperlink\\
-%\locfmt{hyperit} & italic hyperlink\\
-%\locfmt{hypersl} & slanted hyperlink\\
-%\locfmt{hyperup} & upright hyperlink\\
-%\locfmt{hypersc} & small caps hyperlink\\
-%\locfmt{hyperemph} & emphasized hyperlink
-%\end{tabular}
-%\par
-%\end{table}
-%
-%Note that if the \ics{hyperlink} command hasn't been defined,
-%the \texttt{hyper}\meta{xx} formats are equivalent to the
-%analogous \texttt{text}\meta{xx} font commands (and \texttt{hyperemph}
-%is equivalent to \texttt{emph}). If you want to
-%make a new format, you will need to define a command which takes
-%one argument and use that. For example, if you want the location
-%number to be in a bold sans-serif font, you can define a
-%command called, say, \cs{hyperbsf}:
-%\begin{verbatim}
-%\newcommand{\hyperbsf}[1]{\textbf{\hypersf{#1}}}
-%\end{verbatim}
-%and then use \texttt{hyperbsf} as the value for the \gloskey{format}
-%key. \ifpdf (See also \sectionref{sec:code:printglos}.) \fi
-%Remember that if you use \app{xindy}, you will need to add
-%this to the list of location attributes:
-%\begin{verbatim}
-%\GlsAddXdyAttribute{hyperbsf}
-%\end{verbatim}
-%
-%\item[{\gloskey[glslink]{counter}}] This specifies which counter
-%to use for this location. This overrides the default counter
-%used by this entry. (See also \sectionref{sec:numberlists}.)
-%
-%\item[{\gloskey[glslink]{hyper}}] This is a boolean key which can
-%be used to enable/disable the hyperlink to the relevant entry
-%in the glossary. (Note that setting \texttt{hyper=true} will have no
-%effect if \cs{hyperlink} has not been defined.) The default
-%value is \texttt{hyper=true}.
-%
-%\end{description}
-%There is also a starred version:
-%\begin{definition}[\DescribeMacro{\glslink*}]
-%\cs{glslink*}\oarg{options}\marg{label}\marg{text}
-%\end{definition}
-%which is equivalent to \cs{glslink}, except it sets
-%\texttt{hyper=false}. Similarly, all the following commands
-%described in this section also have a starred version that disables
-%the hyperlink.
-%
-%The command:
-%\begin{definition}[\DescribeMacro{\gls}]
-%\cs{gls}\oarg{options}\marg{label}\oarg{insert}
-%\end{definition}
-%is the same as \cs{glslink}, except that the \term{link text}
-%is determined from the values of the \gloskey{text} and
-%\gloskey{first} keys supplied when the entry was defined using
-%\ics{newglossaryentry}. If the entry has been marked as having
-%been used\ifirstuseflag, the value of the \gloskey{text} key will be used, otherwise
-%the value of the \gloskey{first} key will be used.
-%On completion, \cs{gls} will mark the entry's first use flag\ifirstuseflag\ as
-%used.
-%
-%There are two uppercase variants:
-%\begin{definition}[\DescribeMacro{\Gls}]
-%\cs{Gls}\oarg{options}\marg{label}\oarg{insert}
-%\end{definition}
-%and
-%\begin{definition}[\DescribeMacro{\GLS}]
-%\cs{GLS}\oarg{options}\marg{label}\oarg{insert}
-%\end{definition}
-%which make the first letter of the link text or all the link text
-%uppercase, respectively.
-%
-%The final optional argument \meta{insert}, allows you to insert
-%some additional text into the link text. By default, this will
-%append \meta{insert} at the end of the link text, but this
-%can be changed (see \sectionref{sec:glsdisplay}).
-%
-%
-%The first optional argument \meta{options} is the same as the optional
-%argument to \ics{glslink}. As with \cs{glslink}, these commands also
-%have a starred version that disable the hyperlink.
-%
-%There are also analogous plural forms:
-%\begin{definition}[\DescribeMacro{\glspl}]
-%\cs{glspl}\oarg{options}\marg{label}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\Glspl}]
-%\cs{Glspl}\oarg{options}\marg{label}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\GLSpl}]
-%\cs{GLSpl}\oarg{options}\marg{label}\oarg{insert}
-%\end{definition}
-%These determine the link text from the \gloskey{plural} and
-%\gloskey{firstplural} keys supplied when the entry was first
-%defined. As before, these commands also have
-%a starred version that disable the hyperlink.
-%
-%Note that \cs{glslink} doesn't use or affect the \firstuseflag,
-%nor does it use \ics{glsdisplay} or \ics{glsdisplayfirst} (see
-%\sectionref{sec:glsdisplay}). Instead, you can use:
-%\begin{definition}[\DescribeMacro{\glsdisp}]
-%\cs{glsdisp}\oarg{options}\marg{label}\marg{link text}
-%\end{definition}
-%This behaves in the same way as \cs{gls}, except that it uses
-%\meta{link text} instead of the value of the \gloskey{first}
-%or \gloskey{text} key. (Note that this command always sets
-%\meta{insert} to nothing.) This command affects the \firstuseflag,
-%and uses \ics{glsdisplay} or \ics{glsdisplayfirst}.
-%
-%The command:
-%\begin{definition}[\DescribeMacro{\glstext}]
-%\cs{glstext}\oarg{options}\marg{label}\oarg{insert}
-%\end{definition}
-%is similar to \ics{gls} except that it always uses the value
-%of the \gloskey{text} key and does not affect the
-%\firstuseflag.
-%Unlike \cs{gls}, the inserted text \meta{insert}
-%is always appended to the link text since \cs{glstext} doesn't
-%use \ics{glsdisplay} or \ics{glsdisplayfirst}. (The same is
-%true for all the following commands described in this section.)
-%
-%There are also analogous commands:
-%\begin{definition}[\DescribeMacro{\Glstext}]
-%\cs{Glstext}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\GLStext}]
-%\cs{GLStext}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%As before, these commands also have a starred version that disable
-%the hyperlink.
-%
-%The command:
-%\begin{definition}[\DescribeMacro{\glsfirst}]
-%\cs{glsfirst}\oarg{options}\marg{label}\oarg{insert}
-%\end{definition}
-%is similar to \ics{glstext} except that it always uses the value
-%of the \gloskey{first} key. Again, \meta{insert} is always appended
-%to the end of the link text and does not affect the
-%\firstuseflag.
-%
-%There are also analogous commands:
-%\begin{definition}[\DescribeMacro{\Glsfirst}]
-%\cs{Glsfirst}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\GLSfirst}]
-%\cs{GLSfirst}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%As before, these commands also have a starred version that disable
-%the hyperlink.
-%
-%The command:
-%\begin{definition}[\DescribeMacro{\glsplural}]
-%\cs{glsplural}\oarg{options}\marg{label}\oarg{insert}
-%\end{definition}
-%is similar to \ics{glstext} except that it always uses the value
-%of the \gloskey{plural} key. Again, \meta{insert} is always appended
-%to the end of the link text and does not mark the entry as having
-%been used.
-%
-%There are also analogous commands:
-%\begin{definition}[\DescribeMacro{\Glsplural}]
-%\cs{Glsplural}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\GLSplural}]
-%\cs{GLSplural}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%As before, these commands also have a starred version that disable
-%the hyperlink.
-%
-%The command:
-%\begin{definition}[\DescribeMacro{\glsfirstplural}]
-%\cs{glsfirstplural}\oarg{options}\marg{label}\oarg{insert}
-%\end{definition}
-%is similar to \ics{glstext} except that it always uses the value
-%of the \gloskey{firstplural} key. Again, \meta{insert} is always
-%appended to the end of the link text and does not mark the entry as
-%having been used.
-%
-%There are also analogous commands:
-%\begin{definition}[\DescribeMacro{\Glsfirstplural}]
-%\cs{Glsfirstplural}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\GLSfirstplural}]
-%\cs{GLSfirstplural}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%As before, these commands also have a starred version that disable
-%the hyperlink.
-%
-%The command:
-%\begin{definition}[\DescribeMacro{\glsname}]
-%\cs{glsname}\oarg{options}\marg{label}\oarg{insert}
-%\end{definition}
-%is similar to \ics{glstext} except that it always uses the value of
-%the \gloskey{name} key. Again, \meta{insert} is always appended to
-%the end of the link text and does not mark the entry as having been
-%used. Note: if you want to use this command and the \gloskey{name}
-%key contains commands, you will have to disable the
-%\hyperlink{sanitize}{sanitization} of the \gloskey{name} key and
-%protect fragile commands.
-%
-%There are also analogous commands:
-%\begin{definition}[\DescribeMacro{\Glsname}]
-%\cs{Glsname}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\GLSname}]
-%\cs{GLSname}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%As before, these commands also have a starred version that disable
-%the hyperlink.
-%
-%The command:
-%\begin{definition}[\DescribeMacro{\glssymbol}]
-%\cs{glssymbol}\oarg{options}\marg{label}\oarg{insert}
-%\end{definition}
-%is similar to \ics{glstext} except that it always uses the value of
-%the \gloskey{symbol} key. Again, \meta{insert} is always appended to
-%the end of the link text and does not mark the entry as having been
-%used. Note: if you want to use this command and the \gloskey{symbol}
-%key contains commands, you will have to disable the
-%\hyperlink{sanitize}{sanitization} of the \gloskey{symbol} key and
-%protect fragile commands.
-%
-%There are also analogous commands:
-%\begin{definition}[\DescribeMacro{\Glssymbol}]
-%\cs{Glssymbol}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\GLSsymbol}]
-%\cs{GLSsymbol}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%As before, these commands also have a starred version that disable
-%the hyperlink.
-%
-%The command:
-%\begin{definition}[\DescribeMacro{\glsdesc}]
-%\cs{glsdesc}\oarg{options}\marg{label}\oarg{insert}
-%\end{definition}
-%is similar to \ics{glstext} except that it always uses the value of
-%the \gloskey{description} key. Again, \meta{insert} is always
-%appended to the end of the link text and does not mark the entry as
-%having been used. Note: if you want to use this command and the
-%\gloskey{description} key contains commands, you will have to
-%disable the \hyperlink{sanitize}{sanitization} of the
-%\gloskey{description} key and protect fragile commands.
-%
-%There are also analogous commands:
-%\begin{definition}[\DescribeMacro{\Glsdesc}]
-%\cs{Glsdesc}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\GLSdesc}]
-%\cs{GLSdesc}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%As before, these commands also have a starred version that disable
-%the hyperlink.
-%
-%The command:
-%\begin{definition}[\DescribeMacro{\glsuseri}]
-%\cs{glsuseri}\oarg{options}\marg{label}\oarg{insert}
-%\end{definition}
-%is similar to \ics{glstext} except that it always uses the value
-%of the \gloskey{user1} key. Again, \meta{insert} is always
-%appended to the end of the link text and does not mark the entry as
-%having been used.
-%
-%There are also analogous commands:
-%\begin{definition}[\DescribeMacro{\Glsuseri}]
-%\cs{Glsuseri}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\GLSuseri}]
-%\cs{GLSuseri}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%As before, these commands also have a starred version that disable
-%the hyperlink. Similarly for the other user keys:
-%\begin{definition}[\DescribeMacro{\glsuserii}]
-%\cs{glsuserii}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\Glsuserii}]
-%\cs{Glsuserii}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\GLSuserii}]
-%\cs{GLSuserii}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\glsuseriii}]
-%\cs{glsuseriii}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\Glsuseriii}]
-%\cs{Glsuseriii}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\GLSuseriii}]
-%\cs{GLSuseriii}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\glsuseriv}]
-%\cs{glsuseriv}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\Glsuseriv}]
-%\cs{Glsuseriv}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\GLSuseriv}]
-%\cs{GLSuseriv}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\glsuserv}]
-%\cs{glsuserv}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\Glsuserv}]
-%\cs{Glsuserv}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\GLSuserv}]
-%\cs{GLSuserv}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\glsuservi}]
-%\cs{glsuservi}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\Glsuservi}]
-%\cs{Glsuservi}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\GLSuservi}]
-%\cs{GLSuservi}\oarg{options}\marg{text}\oarg{insert}
-%\end{definition}
-%
-%
-%
-%\subsubsection{Changing the format of the link text}
-%\label{sec:glsdisplay}
-%
-%The format of the \term{link text} for \ics{gls}, \ics{glspl}
-%and their uppercase variants is governed by two commands:
-%\begin{definition}[\DescribeMacro{\glsdisplayfirst}]
-%\cs{glsdisplayfirst}\marg{first/first plural}\marg{description}\marg{symbol}\marg{insert}
-%\end{definition}
-%which is used the
-%first time a glossary entry is used\ifirstuse\ in the text and
-%\begin{definition}[\DescribeMacro{\glsdisplay}]
-%\cs{glsdisplay}\marg{text/plural}\marg{description}\marg{symbol}\marg{insert}
-%\end{definition}
-%which is used subsequently.
-%Both commands take four arguments: the first is either the singular or
-%plural form given by the \gloskey{text}, \gloskey{plural},
-%\gloskey{first} or \gloskey{firstplural} keys (set when the term was
-%defined) depending on context; the second argument is the term's
-%description (as supplied by the \gloskey{description} or
-%\gloskey{descriptionplural} keys); the third
-%argument is the symbol associated with the term (as supplied by the
-%\gloskey{symbol} or \gloskey{symbolplural} keys) and the fourth argument is the additional text
-%supplied in the final optional argument to \cs{gls} or
-%\cs{glspl} (or their uppercase variants). The default definitions
-%of \cs{glsdisplay} and \cs{glsdisplayfirst} simply
-%print the first argument immediately followed by the fourth argument.
-%The remaining arguments are ignored.
-%
-%If required, you can access the label for the given entry via
-%\begin{definition}[\DescribeMacro{\glslabel}]
-%\cs{glslabel}
-%\end{definition}
-%so it is possible to use this label in the definition of
-%\cs{glsdisplay} or \cs{glsdisplayfirst} to supply additional
-%information using any of the commands described in
-%\sectionref{sec:glsnolink}, if required.
-%
-%Note that \cs{glsdisplay} and \cs{glsdisplayfirst} are not used
-%by \ics{glslink}. If you want to supply your own link text, you
-%need to use \ics{glsdisp} instead.
-%
-%For example, suppose you want a glossary of measurements and
-%units, you can use the \gloskey{symbol} key to store the unit:
-%\begin{verbatim}
-%\newglossaryentry{distance}{name=distance,
-%description={The length between two points},
-%symbol={km}}
-%\end{verbatim}
-%and now suppose you want \verb|\gls{distance}| to produce
-%\qt{distance (km)} on \firstuse, then you can redefine
-%\cs{glsdisplayfirst} as follows:
-%\begin{verbatim}
-%\renewcommand{\glsdisplayfirst}[4]{#1#4 (#3)}
-%\end{verbatim}
-%Note that the additional text is placed after \verb|#1|, so
-%\verb|\gls{distance}['s]| will produce \qt{distance's (km)}
-%rather than \qt{distance (km)'s} which looks a bit odd (even though
-%it may be in the context of \qt{the distance (km) is measured between
-%the two points} --- but in this instance it would be better not to
-%use a contraction).
-%
-%Note also that all of the \term{link text} will be formatted according
-%to \ics{glstextformat} (described earlier). So if you do, say:
-%\begin{verbatim}
-%\renewcommand{\glstextformat}[1]{\textbf{#1}}
-%\renewcommand{\glsdisplayfirst}[4]{#1#4 (#3)}
-%\end{verbatim}
-%then \verb|\gls{distance}| will produce \qt{\textbf{distance (km)}}.
-%
-%If you have multiple glossaries, changing \cs{glsdisplayfirst} and
-%\cs{glsdisplay} will change the way entries for all of the
-%glossaries appear when using the commands \ics{gls}, \ics{glspl}, their
-%uppercase variants and \ics{glsdisp}. If you only
-%want the change to affect entries for a given glossary, then you need
-%to use
-%\begin{definition}[\DescribeMacro{\defglsdisplay}]
-%\cs{defglsdisplay}\oarg{type}\marg{definition}
-%\end{definition}
-%and
-%\begin{definition}[\DescribeMacro{\defglsdisplayfirst}]
-%\cs{defglsdisplayfirst}\oarg{type}\marg{definition}
-%\end{definition}
-%instead of redefining \cs{glsdisplay} and \cs{glsdisplayfirst}.
-%
-%Both \cs{defglsdisplay} and \cs{defglsdisplayfirst} take two arguments:
-%the first (which is optional) is the glossary's label\footnote{\texttt{main} for the main
-%(default) glossary, \cs{acronymtype} for the list of acronyms, or the
-%name supplied in the first mandatory argument to \cs{newglossary} for
-%additional glossaries.} and the second is how the term should be
-%displayed when it is invoked using commands \cs{gls},
-%\cs{glspl}, their uppercase variants and \cs{glsdisp}. This is similar to the way \cs{glsdisplayfirst} was
-%redefined above.
-%
-%For example, suppose you have created a new glossary called
-%\texttt{notation} and you want to change the way the entry is
-%displayed on \firstuse\ so that it includes the symbol, you can do:
-%\begin{verbatim}
-%\defglsdisplayfirst[notation]{#1#4 (denoted #3)}
-%\end{verbatim}
-%Now suppose you have defined an entry as follows:
-%\begin{verbatim}
-%\newglossaryentry{set}{type=notation,
-% name=set,
-% description={A collection of objects},
-% symbol={$S$}
-%}
-%\end{verbatim}
-%The first time you reference this entry it will be displayed as:
-%\qt{set (denoted $S$)} (assuming \ics{gls} was used).
-%
-%Remember that if you use the \gloskey{symbol} key, you need to use a
-%glossary style that displays the symbol, as many of the styles
-%ignore it. In addition, if you want either the description or symbol
-%to appear in the \term{link text}, you will have to disable the
-%\hyperlink{sanitize}{sanitization} of these keys and protect fragile
-%commands.
-%
-%\subsubsection{Enabling and disabling hyperlinks to glossary entries}
-%
-%If you load the \sty{hyperref} or \sty{html} packages prior to
-%loading the \styfmt{glossaries} package, commands such as \ics{glslink}
-%and \ics{gls}, described above, will automatically have hyperlinks
-%to the relevant glossary entry, unless the \gloskey[glslink]{hyper}
-%option has been set to \texttt{false}. You can disable or enable links using:
-%\begin{definition}[\DescribeMacro{\glsdisablehyper}]
-%\cs{glsdisablehyper}
-%\end{definition}
-%and
-%\begin{definition}[\DescribeMacro{\glsenablehyper}]
-%\cs{glsenablehyper}
-%\end{definition}
-%respectively. The effect can be localised by placing the commands
-%within a group. Note that you should only use \cs{glsenablehyper}
-%if the commands \ics{hyperlink} and \ics{hypertarget} have been
-%defined (for example, by the \sty{hyperref} package).
-%
-%You can disable just the first use links using the package
-%option \pkgopt[false]{hyperfirst}. Note that this option only
-%affects commands that recognise the \firstuse\ flag, for example
-%\ics{gls}, \ics{glspl} and \ics{glsdisp} but not \ics{glslink}.
-%
-%
-%\subsection{Adding an Entry to the Glossary Without Generating Text}
-%\label{sec:glsadd}
-%
-%It is possible to add a line in the glossary file without
-%generating any text at that point in the document using:
-%\begin{definition}[\DescribeMacro{\glsadd}]
-%\cs{glsadd}\oarg{options}\marg{label}
-%\end{definition}
-%This is similar to \ics{glslink}, only it doesn't produce
-%any text (so therefore, there is no \gloskey[glslink]{hyper} key
-%available in \meta{options} but all the other options that can
-%be used with \cs{glslink} can be passed to \cs{glsadd}).
-%For example, to add a page range to the glossary number list for the
-%entry whose label is given by \texttt{set}:
-%\begin{verbatim}
-%\glsadd[format=(]{set}
-%Lots of text about sets spanning many pages.
-%\glsadd[format=)]{set}
-%\end{verbatim}
-%
-%To add all entries that have been defined, use:
-%\begin{definition}[\DescribeMacro{\glsaddall}]
-%\cs{glsaddall}\oarg{options}
-%\end{definition}
-%The optional argument is the same as for \cs{glsadd}, except
-%there is also a key \gloskey[glsaddall]{types} which can be
-%used to specify which glossaries to use. This should be a
-%comma separated list. For example, if you only want to add
-%all the entries belonging to the list of acronyms (specified by
-%the glossary type \cs{acronymtype}) and a list of
-%notation (specified by the glossary type \texttt{notation}) then you can
-%do:
-%\begin{verbatim}
-%\glsaddall[types={\acronymtype,notation}]
-%\end{verbatim}
-%
-%
-%\subsection{Cross-Referencing Entries}
-%\label{sec:crossref}
-%
-%There are several ways of cross-referencing entries in the
-%glossary:
-%
-%\begin{enumerate}
-%\item You can use commands such as \ics{gls} in the
-%entries description. For example:
-%\begin{verbatim}
-%\newglossaryentry{apple}{name=apple,
-%description={firm, round fruit. See also \gls{pear}}}
-%\end{verbatim}
-%Note that with this method, if you don't use the
-%cross-referenced term in the glossary, you will need two runs of
-%\app{makeglossaries}:
-%\begin{prompt}
-%latex filename
-%makeglossaries filename
-%latex filename
-%makeglossaries filename
-%latex filename
-%\end{prompt}
-%
-%\item As described in \sectionref{sec:newglosentry}, you can use the
-%\gloskey{see} key when you define the entry. For example:
-%\begin{verbatim}
-%\newglossaryentry{MaclaurinSeries}{name={Maclaurin series},
-%description={Series expansion}, see={TaylorsTheorem}}
-%\end{verbatim}
-%Note that in this case, the entry with the \gloskey{see} key will
-%automatically be added to the glossary, but the cross-referenced
-%entry won't. You therefore need to ensure that you use the
-%cross-referenced term with the commands described in
-%\sectionref{sec:glslink} or \sectionref{sec:glsadd}.
-%
-%You can optionally override the \qt{see} tag using square brackets
-%at the start of the \gloskey{see} value. For example:
-%\begin{verbatim}
-%\newglossaryentry{MaclaurinSeries}{name={Maclaurin series},
-%description={Series expansion},
-%see=[see also]{TaylorsTheorem}}
-%\end{verbatim}
-%
-%\item After you have defined the entry, use
-%\begin{definition}[\DescribeMacro{\glssee}]
-%\cs{glssee}\oarg{tag}\marg{label}\marg{xr label list}
-%\end{definition}
-%where \meta{xr label list} is a comma-separated list of entry
-%labels to be cross-referenced, \meta{label} is the label of the
-%entry doing the cross-referencing and \meta{tag} is the \qt{see} tag.
-%For example:
-%\begin{verbatim}
-%\glssee[see also]{series}{FourierSeries,TaylorsTheorem}
-%\end{verbatim}
-%Note that this automatically adds the entry given by \meta{label} to
-%the glossary but doesn't add the cross-referenced entries (specified
-%by \meta{xr label list}) to the glossary.
-%\end{enumerate}
-%
-%In both cases~2 and 3 above, the cross-referenced information appears
-%in the \term{number list}, whereas in case~1, the cross-referenced
-%information appears in the description. In cases~2 and~3, the
-%default text for the \qt{see} tag is given by \ics{seename}.
-%
-%
-%\subsection{Using Glossary Terms Without Links}
-%\label{sec:glsnolink}
-%
-%The commands described in this section display entry details without
-%adding any information to the glossary. They don't use
-%\cs{glstextformat}, they don't have any optional arguments, they
-%don't affect the \firstuseflag\ and, apart from \ics{glshyperlink},
-%they don't produce hyperlinks.
-%\begin{definition}[\DescribeMacro{\glsentryname}]
-%\cs{glsentryname}\marg{label}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\Glsentryname}]
-%\cs{Glsentryname}\marg{label}
-%\end{definition}
-%These commands display the name of the glossary entry given by
-%\meta{label}, as specified by the \gloskey{name} key.
-%\cs{Glsentryname} makes the first letter uppercase.
-%\begin{definition}[\DescribeMacro{\glsentrytext}]
-%\cs{glsentrytext}\marg{label}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\Glsentrytext}]
-%\cs{Glsentrytext}\marg{label}
-%\end{definition}
-%These commands display the subsequent use text for the glossary
-%entry given by \meta{label}, as specified by the \gloskey{text} key.
-%\cs{Glsentrytext} makes the first letter uppercase.
-%\begin{definition}[\DescribeMacro{\glsentryplural}]
-%\cs{glsentryplural}\marg{label}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\Glsentryplural}]
-%\cs{Glsentryplural}\marg{label}
-%\end{definition}
-%These commands display the subsequent use plural text for the
-%glossary entry given by \meta{label}, as specified by the
-%\gloskey{plural} key. \cs{Glsentryplural} makes the first letter
-%uppercase.
-%\begin{definition}[\DescribeMacro{\glsentryfirst}]
-%\cs{glsentryfirst}\marg{label}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\Glsentryfirst}]
-%\cs{Glsentryfirst}\marg{label}
-%\end{definition}
-%These commands display the \firstusetext\ for the glossary entry
-%given by \meta{label}, as specified by the \gloskey{first} key.
-%\cs{Glsentryfirst} makes the first letter uppercase.
-%\begin{definition}[\DescribeMacro{\glsentryfirstplural}]
-%\cs{glsentryfirstplural}\marg{label}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\Glsentryfirstplural}]
-%\cs{Glsentryfirstplural}\marg{label}
-%\end{definition}
-%These commands display the plural form of the \firstusetext\ for the
-%glossary entry given by \meta{label}, as specified by the
-%\gloskey{firstplural} key. \cs{Glsentryfirstplural} makes the first
-%letter uppercase.
-%\begin{definition}[\DescribeMacro{\glsentrydesc}]
-%\cs{glsentrydesc}\marg{label}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\Glsentrydesc}]
-%\cs{Glsentrydesc}\marg{label}
-%\end{definition}
-%These commands display the description for the glossary entry given
-%by \meta{label}. \cs{Glsentrydesc} makes the first letter uppercase.
-%\begin{definition}[\DescribeMacro{\glsentrydescplural}]
-%\cs{glsentrydescplural}\marg{label}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\Glsentrydescplural}]
-%\cs{Glsentrydescplural}\marg{label}
-%\end{definition}
-%These commands display the plural description for the glossary entry
-%given by \meta{label}. \cs{Glsentrydescplural} makes the first
-%letter uppercase.
-%\begin{definition}[\DescribeMacro{\glsentrysymbol}]
-%\cs{glsentrysymbol}\marg{label}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\Glsentrysymbol}]
-%\cs{Glsentrysymbol}\marg{label}
-%\end{definition}
-%These commands display the symbol for the glossary entry given by
-%\meta{label}. \cs{Glsentrysymbol} makes the first letter uppercase.
-%\begin{definition}[\DescribeMacro{\glsentrysymbolplural}]
-%\cs{glsentrysymbolplural}\marg{label}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\Glsentrysymbolplural}]
-%\cs{Glsentrysymbolplural}\marg{label}
-%\end{definition}
-%These commands display the plural symbol for the glossary entry
-%given by \meta{label}. \cs{Glsentrysymbolplural} makes the first
-%letter uppercase.
-%\begin{definition}[\DescribeMacro{\glsentryuseri}]
-%\cs{glsentryuseri}\marg{label}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\Glsentryuseri}]
-%\cs{Glsentryuseri}\marg{label}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\glsentryuserii}]
-%\cs{glsentryuserii}\marg{label}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\Glsentryuserii}]
-%\cs{Glsentryuserii}\marg{label}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\glsentryuseriii}]
-%\cs{glsentryuseriii}\marg{label}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\Glsentryuseriii}]
-%\cs{Glsentryuseriii}\marg{label}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\glsentryuseriv}]
-%\cs{glsentryuseriv}\marg{label}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\Glsentryuseriv}]
-%\cs{Glsentryuseriv}\marg{label}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\glsentryuserv}]
-%\cs{glsentryuserv}\marg{label}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\Glsentryuserv}]
-%\cs{Glsentryuserv}\marg{label}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\glsentryuservi}]
-%\cs{glsentryuservi}\marg{label}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\Glsentryuservi}]
-%\cs{Glsentryuservi}\marg{label}
-%\end{definition}
-%These commands display the value of the user keys for the glossary
-%entry given by \meta{label}.
-%\begin{definition}[\DescribeMacro{\glshyperlink}]
-%\cs{glshyperlink}\oarg{link text}\marg{label}
-%\end{definition}
-%This command provides a hyperlink to the glossary entry given by
-%\meta{label} \textbf{but does not add any information to the
-%glossary file}. The link text is given by
-%\ics{glsentryname}\marg{label} by default, but can be overridden
-%using the optional argument.
-%\begin{important}
-%If you use \cs{glshyperlink}, you need to ensure that the relevant
-%entry has been added to the glossary using any of the commands
-%described in \sectionref{sec:glslink} or \sectionref{sec:glsadd}
-%otherwise you will end up with a broken link.
-%\end{important}
-%
-%For further information see \ifpdf
-%\sectionref{sec:code:glsnolink}\else the section \qt{Displaying
-%entry details without adding information to the glossary} in the
-%document \url{glossaries.pdf}\fi.
-%
-%
-%\subsection{Displaying a glossary}
-%\label{sec:printglossary}
-%
-%The command
-%\begin{definition}[\DescribeMacro{\printglossaries}]
-%\cs{printglossaries}
-%\end{definition}
-%will display all the glossaries in the order in which they were
-%defined. Note that no glossaries will appear until you have either
-%used the Perl script \app{makeglossaries} or have directly used
-%\app{makeindex} or \app{xindy} (as described in
-%\sectionref{sec:makeglossaries}). If the glossary
-%still does not appear after you re-\LaTeX\ your document, check the
-%\app{makeindex}/\app{xindy} log files to see if there is a problem.
-%Remember that you also need to use the command \ics{makeglossaries}
-%in the preamble to enable the glossaries.
-%
-%An individual glossary can be displayed using:
-%\begin{definition}[\DescribeMacro{\printglossary}]
-%\cs{printglossary}\oarg{options}
-%\end{definition}
-%where \meta{options} is a \meta{key}=\meta{value} list of options.
-%The following keys are available:
-%\begin{description}
-%\item[{\gloskey[printglossary]{type}}] The value of this key
-%specifies which glossary to print. If omitted, the default
-%glossary is assumed. For example, to print the list of acronyms:
-%\begin{verbatim}
-%\printglossary[type=\acronymtype]
-%\end{verbatim}
-%
-%\item[{\gloskey[printglossary]{title}}] This is the glossary's
-%title (overriding the title specified when the glossary was
-%defined).
-%
-%\item[{\gloskey[printglossary]{toctitle}}] This is the title
-%to use for the table of contents (if the \pkgopt{toc} package
-%option has been used). It may also be used for the page header,
-%depending on the page style. If omitted, the glossary title is used.
-%
-%\item[{\gloskey[printglossary]{style}}] This specifies which
-%glossary style to use for this glossary, overriding the effect
-%of the \pkgopt{style} package option or \ics{glossarystyle}.
-%
-%\item[{\gloskey[printglossary]{numberedsection}}] This specifies
-%whether to use a numbered section for this glossary, overriding
-%the effect of the \pkgopt{numberedsection} package option. This
-%key has the same syntax as the \pkgopt{numberedsection} package
-%option, described in \sectionref{sec:pkgopts}.
-%
-%\item[{\gloskey[printglossary]{nonumberlist}}] Unlike the package option
-%of the same name, this key is a boolean key. If true (\verb|nonumberlist=true|) the numberlist
-%is suppressed for this glossary. If false (\verb|nonumberlist=false|) the numberlist is
-%displayed for this glossary. If no value is supplied, true is
-%assumed.
-%
-%\end{description}
-%
-%By default, the glossary is started either by \cs{chapter*} or by
-%\cs{section*}, depending on whether or not \cs{chapter} is defined.
-%This can be overridden by the \pkgopt{section} package option or the
-%\cs{setglossarysection} command. Numbered sectional units can be
-%obtained using the \pkgopt{numberedsection} package option. Each
-%glossary sets the page header via the command \ics{glossarymark}. If
-%this mechanism is unsuitable for your chosen class file or page
-%style package, you will need to redefine \ics{glossarymark}. Further
-%information about these options and commands is given in
-%\sectionref{sec:pkgopts}.
-%
-%Information can be added to the start of the glossary (after the
-%title and before the main body of the glossary) by redefining
-%\begin{definition}[\DescribeMacro{\glossarypreamble}]
-%\cs{glossarypreamble}
-%\end{definition}
-%For example:
-%\begin{verbatim}
-%\renewcommand{\glossarypreamble}{Numbers in italic indicate
-%primary definitions.}
-%\end{verbatim}
-%This needs to be done before the glossary is displayed using
-%\cs{printglossaries} or \cs{printglossary}. Note that if you
-%want a different preamble for each glossary, you will need to
-%use a separate \cs{printglossary} for each glossary and change
-%the definition of \cs{glossarypreamble} between each glossary.
-%For example:
-%\begin{verbatim}
-%\renewcommand{\glossarypreamble}{Numbers in italic indicate
-%primary definitions.}
-%\printglossary
-%\renewcommand{\glossarypreamble}{}
-%\printglossary[type=acronym]
-%\end{verbatim}
-%Alternatively, you can do something like:
-%\begin{verbatim}
-%\renewcommand{\glossarypreamble}{Numbers in italic indicate
-%primary definitions.\gdef\glossarypreamble{}}
-%\printglossaries
-%\end{verbatim}
-%which will print the preamble text for the first glossary and
-%change the preamble to do nothing for subsequent glossaries.
-%(Note that \cs{gdef} is required as the glossary is placed within
-%a group.)
-%
-%There is an analogous command called
-%\begin{definition}[\DescribeMacro{\glossarypostamble}]
-%\cs{glossarypostamble}
-%\end{definition}
-%which is placed at the end of each glossary.
-%
-%\subsubsection{Changing the way the entry name appears in the glossary}
-%\label{sec:glsnamefont}
-%
-%Within each glossary, each entry name is formatted according to
-%\begin{definition}[\DescribeMacro{\glsnamefont}]
-%\cs{glsnamefont}\marg{name}
-%\end{definition}
-%which takes one argument: the entry name. This command is always
-%used regardless of the glossary style. By default, \cs{glsnamefont}
-%simply displays its argument in whatever the surrounding font
-%happens to be. This means that in the list-like glossary styles
-%(defined in the \sty{glossary-list} style file) the name will appear
-%in bold, since the name is placed in the optional argument of
-%\cs{item}, whereas in the tabular styles (defined in the
-%\sty{glossary-long} and \sty{glossary-super} style files) the name
-%will appear in the normal font. The hierarchical glossary styles
-%(defined in the \sty{glossary-tree} style file) also set the name in
-%bold.
-%
-%For example, suppose you want all the entry names to appear in
-%medium weight small caps, then you can do:
-%\begin{verbatim}
-%\renewcommand{\glsnamefont}[1]{\textsc{\mdseries #1}}
-%\end{verbatim}
-%
-%
-%\subsubsection{Xindy}
-%\label{sec:xindy}
-%
-%If you want to use \app{xindy} to sort the glossary, you
-%must use the package option \pkgopt{xindy}:
-%\begin{verbatim}
-%\usepackage[xindy]{glossaries}
-%\end{verbatim}
-%This ensures that the glossary information is written in
-%\app{xindy} syntax.
-%
-%\sectionref{sec:makeglossaries} covers how to use the external
-%indexing application. This section covers the commands provided
-%by the \styfmt{glossaries} package that allow you to adjust the
-%\app{xindy} style file (\filetype{.xdy}) and parameters.
-%
-%To assist writing information to the \app{xindy} style
-%file, the \styfmt{glossaries} package provides the following
-%commands:
-%\begin{definition}[\DescribeMacro{\glsopenbrace}]
-%\cs{glsopenbrace}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\glsclosebrace}]
-%\cs{glsclosebrace}
-%\end{definition}
-%which produce an open and closing brace. (This is needed because
-%\verb|\{| and \verb|\}| don't expand to a simple brace character
-%when written to a file.)
-%
-%In addition, if you are using a package that makes the double
-%quote character active (e.g. \sty{ngerman}) you can use:
-%\begin{definition}[\DescribeMacro{\glsquote}]
-%\cs{glsquote}\marg{text}
-%\end{definition}
-%which will produce \verb|"|\meta{text}\verb|"|. Alternatively,
-%you can use \verb|\string"| to write the double-quote character.
-%This document assumes that the double quote character has not been
-%made active, so the examples just use \verb|"| for clarity.
-%
-%If you want greater control over the \app{xindy} style file than is
-%available through the \LaTeX\ commands provided by the
-%\styfmt{glossaries} package, you will need to edit the \app{xindy}
-%style file. In which case, you must use \ics{noist} to prevent the
-%style file from being overwritten by the \styfmt{glossaries}
-%package. For additional information about \app{xindy}, read the
-%\app{xindy} documentation.
-%
-%\paragraph{Language and Encodings}
-%When you use \app{xindy}, you need to specify the language
-%and encoding used (unless you have written your own custom
-%\app{xindy} style file that defines the relevant alphabet
-%and sort rules). If you use \app{makeglossaries},
-%this information is obtained from the document's auxiliary
-%(\filetype{.aux}) file. The \styfmt{glossaries} package attempts to
-%find the root language, but in the event that it gets it wrong or if
-%\app{xindy} doesn't support that language, then you can
-%specify the language using:
-%\begin{definition}[\DescribeMacro{\GlsSetXdyLanguage}]
-%\cs{GlsSetXdyLanguage}\oarg{glossary type}\marg{language}
-%\end{definition}
-%where \meta{language} is the name of the language. The
-%optional argument can be used if you have multiple glossaries
-%in different languages. If \meta{glossary type} is omitted, it
-%will be applied to all glossaries, otherwise the language
-%setting will only be applied to the glossary given by
-%\meta{glossary type}.
-%
-%If the \sty{inputenc} package is used, the encoding will be
-%obtained from the value of \ics{inputencodingname}.
-%Alternatively, you can specify the encoding using:
-%\begin{definition}[\DescribeMacro{\GlsSetXdyCodePage}]
-%\cs{GlsSetXdyCodePage}\marg{code}
-%\end{definition}
-%where \meta{code} is the name of the encoding. For example:
-%\begin{verbatim}
-%\GlsSetXdyCodePage{utf8}
-%\end{verbatim}
-%
-%Note that you can also specify the language and encoding using
-%the package option
-%\verb|xindy={language=|\meta{lang}\verb|,codepage=|\meta{code}\verb|}|.
-%For example:
-%\begin{verbatim}
-%\usepackage[xindy={language=english,codepage=utf8}]{glossaries}
-%\end{verbatim}
-%
-%If you write your own custom \app{xindy} style file that
-%includes the language settings, you need to set the language
-%to nothing:
-%\begin{verbatim}
-%\GlsSetXdyLanguage{}
-%\end{verbatim}
-%(and remember to use \ics{noist} to prevent the style file from
-%being overwritten).
-%
-%\begin{important}
-%The commands \cs{GlsSetXdyLanguage} and \cs{GlsSetXdyCodePage}
-%have no effect if you don't use \app{makeglossaries}. If
-%you call \app{xindy} without \app{makeglossaries} you
-%need to remember to set the language and encoding using the
-%\texttt{-L} and \texttt{-C} switches.
-%\end{important}
-%
-%
-%\paragraph{Locations and Number lists}
-%
-%The most likely attributes used in the \gloskey[glslink]{format}
-%key (\locfmt{textrm}, \locfmt{hyperrm} etc) are automatically added
-%to the \app{xindy} style file, but if you want to use another
-%attribute, you need to add it using:
-%\begin{definition}[\DescribeMacro{\GlsAddXdyAttribute}]
-%\cs{GlsAddXdyAttribute}\marg{name}
-%\end{definition}
-%where \meta{name} is the name of the attribute, as used in
-%the \gloskey[glslink]{format} key. For example, suppose I want a
-%bold, italic, hyperlinked location. I first need to define a
-%command that will do this:
-%\begin{verbatim}
-%\newcommand*{\hyperbfit}[1]{\textit{\hyperbf{#1}}}
-%\end{verbatim}
-%but with \app{xindy}, I also need to add this as an allowed
-%attribute:
-%\begin{verbatim}
-%\GlsAddXdyAttribute{hyperbfit}
-%\end{verbatim}
-%
-%\begin{important}
-%Note that \cs{GlsAddXdyAttribute} has no effect if \ics{noist} is
-%used or if \ics{makeglossaries} is omitted.
-%
-%\cs{GlsAddXdyAttribute} must be used before \ics{makeglossaries}.
-%\end{important}
-%
-%If the location numbers don't get expanded to a simple Arabic or
-%Roman number or a letter from a, \ldots, z or A, \ldots, Z, then
-%you need to add a location style in the appropriate format.
-%
-%For example, suppose you want the page numbers written as words
-%rather than digits and you use the \sty{fmtcount} package to
-%do this. You can redefine \ics{thepage} as follows:
-%\begin{verbatim}
-%\renewcommand*{\thepage}{\Numberstring{page}}
-%\end{verbatim}
-%This gets expanded to \verb|\protect \Numberstringnum |\marg{n}
-%where \meta{n} is the Arabic page number. This means that you need to
-%define a new location that has that form:
-%\begin{verbatim}
-%\GlsAddXdyLocation{Numberstring}{:sep "\string\protect\space
-% \string\Numberstringnum\space\glsopenbrace"
-% "arabic-numbers" :sep "\glsclosebrace"}
-%\end{verbatim}
-%Note that it's necessary to use \cs{space} to indicate that
-%spaces also appear in the format, since, unlike \TeX,
-%\app{xindy} doesn't ignore spaces after control sequences.
-%
-%\begin{important}
-%Note that \cs{GlsAddXdyLocation} has no effect if \ics{noist} is
-%used or if \ics{makeglossaries} is omitted.
-%
-%\cs{GlsAddXdyLocation} must be used before \ics{makeglossaries}.
-%\end{important}
-%
-%In the \term{number list}, the locations are sorted according to
-%type. The default ordering is: \texttt{roman-page-numbers} (e.g.\
-%i), \texttt{arabic-page-numbers} (e.g.\ 1),
-%\texttt{arabic-section-numbers} (e.g.\ 1.1 if the compositor is a
-%full stop or 1-1 if the compositor is a hyphen\footnote{see
-%\ics{setCompositor} described in \sectionref{sec:newglosentry}}),
-%\texttt{alpha-page-numbers} (e.g.\ a), \texttt{Roman-page-numbers}
-%(e.g.\ I), \texttt{Alpha-page-numbers} (e.g.\ A),
-%\texttt{Appendix-page-numbers} (e.g.\ A.1 if the Alpha compositor is
-%a full stop or A-1 if the Alpha compositor is a hyphen\footnote{see
-%\ics{setAlphaCompositor} described in
-%\sectionref{sec:newglosentry}}), user defined location names (as
-%specified by \ics{GlsAddXdyLocation} in the order in which they were
-%defined), \texttt{see} (cross-referenced entries). This ordering can
-%be changed using:
-%\begin{definition}[\DescribeMacro{\GlsSetXdyLocationClassOrder}]
-%\cs{GlsSetXdyLocationClassOrder}\marg{location names}
-%\end{definition}
-%where each location name is delimited by double quote marks and
-%separated by white space. For example:
-%\begin{verbatim}
-%\GlsSetXdyLocationClassOrder{
-% "arabic-page-numbers"
-% "arabic-section-numbers"
-% "roman-page-numbers"
-% "Roman-page-numbers"
-% "alpha-page-numbers"
-% "Alpha-page-numbers"
-% "Appendix-page-numbers"
-% "see"
-%}
-%\end{verbatim}
-%
-%\begin{important}
-%Note that \cs{GlsSetXdyLocationClassOrder} has no effect if
-%\ics{noist} is used or if \ics{makeglossaries} is omitted.
-%
-%\cs{GlsSetXdyLocationClassOrder} must be used before
-%\ics{makeglossaries}.
-%\end{important}
-%
-%If a \term{number list} consists of a sequence of consecutive
-%numbers, the range will be concatenated. The
-%number of consecutive locations that causes a range formation
-%defaults to 2, but can be changed using:
-%\begin{definition}[\DescribeMacro{\GlsSetXdyMinRangeLength}]
-%\cs{GlsSetXdyMinRangeLength}\marg{n}
-%\end{definition}
-%For example:
-%\begin{verbatim}
-%\GlsSetXdyMinRangeLength{3}
-%\end{verbatim}
-%The argument may also be the keyword \texttt{none}, to indicate that
-%there should be no range formations. See the \app{xindy}
-%manual for further details on range formations.
-%
-%\begin{important}
-%Note that \cs{GlsSetXdyMinRangeLength} has no effect if \ics{noist}
-%is used or if \ics{makeglossaries} is omitted.
-%
-%\cs{GlsSetXdyMinRangeLength} must be used before
-%\ics{makeglossaries}.
-%\end{important}
-%
-%See \sectionref{sec:numberlists} for further details.
-%
-%
-%\paragraph{Glossary Groups}
-%The glossary is divided into groups according to the first
-%letter of the sort key. The \styfmt{glossaries} package also adds
-%a number group by default, unless you suppress it in the
-%\pkgopt{xindy} package option. For example:
-%\begin{verbatim}
-%\usepackage[xindy={glsnumbers=false}]{glossaries}
-%\end{verbatim}
-%Any entry that doesn't go in one of the letter groups or the
-%number group is placed in the default group.
-%
-%If you have a number group, the default behaviour is to locate
-%it before the \qt{A} letter group. If you are not using a
-%Roman alphabet, you can change this using\\[10pt]
-%\cs{GlsSetXdyFirstLetterAfterDigits}\marg{letter}
-%
-%\begin{important}
-%Note that \cs{GlsSetXdyFirstLetterAfterDigits} has no effect if
-%\ics{noist} is used or if \ics{makeglossaries} is omitted.
-%
-%\cs{GlsSetXdyFirstLetterAfterDigits} must be used before
-%\ics{makeglossaries}.
-%\end{important}
-%
-%
-%\subsection{Defining New Glossaries}
-%\label{sec:newglossary}
-%
-%A new glossary can be defined using:
-%\begin{definition}[\DescribeMacro{\newglossary}]
-%\cs{newglossary}\oarg{log-ext}\marg{name}\marg{in-ext}\marg{out-ext}\marg{title}\oarg{counter}
-%\end{definition}
-%where \meta{name} is the label to assign to this glossary. The
-%arguments \meta{in-ext} and \meta{out-ext} specify the extensions to
-%give to the input and output files for that glossary, \meta{title}
-%is the default title for this new glossary and the final optional
-%argument \meta{counter} specifies which counter to use for the
-%associated number lists\iterm{number list} (see also
-%\sectionref{sec:numberlists}). The first optional argument specifies
-%the extension for the \app{makeindex} or \app{xindy} transcript file
-%(this information is only used by \app{makeglossaries} which picks
-%up the information from the auxiliary file).
-%
-%Note that the main (default) glossary is automatically created as:
-%\begin{verbatim}
-%\newglossary{main}{gls}{glo}{\glossaryname}
-%\end{verbatim}
-%so it can be identified by the label \texttt{main} (unless the
-%\pkgopt{nomain} package option is used). Using the
-%\pkgopt{acronym} package option is equivalent to:
-%\begin{verbatim}
-%\newglossary[alg]{acronym}{acr}{acn}{\acronymname}
-%\end{verbatim}
-%so it can be identified by the label \texttt{acronym}. If you are
-%not sure whether the \pkgopt{acronym} option has been used, you
-%can identify the list of acronyms by the command
-%\DescribeMacro{\acronymtype}\cs{acronymtype} which is set to
-%\texttt{acronym}, if the \pkgopt{acronym} option has been used,
-%otherwise it is set to \texttt{main}. Note that if you are using
-%the main glossary as your list of acronyms, you need to declare
-%it as a list of acronyms using the package option
-%\pkgopt{acronymlists}.
-%
-%\begin{important}
-%All glossaries must be defined before \ics{makeglossaries} to
-%ensure that the relevant output files are opened.
-%\end{important}
-%
-%
-%\subsection{Acronyms}
-%\label{sec:acronyms}
-%
-%You may have noticed in \sectionref{sec:newglosentry} that when you
-%specify a new entry, you can specify alternate text to use when the
-%term is first used\ifirstuse\ in the document. This provides a
-%useful means to define acronyms. For convenience, the
-%\styfmt{glossaries} package defines the command:
-%\begin{definition}[\DescribeMacro{\newacronym}]
-%\cs{newacronym}\oarg{key-val
-%list}\marg{label}\marg{abbrv}\marg{long}
-%\end{definition}
-%By default, this is equivalent to:
-%\begin{display}\ttfamily
-%\cs{newglossaryentry}\textrm{\marg{label}}\{type=\ics{acronymtype},
-%name=\textrm{\marg{abbrv}},
-%description=\textrm{\marg{long}},
-%text=\textrm{\marg{abbrv}},
-%first=\{\textrm{\meta{long}} (\textrm{\meta{abbrv}})\},
-%plural=\{\textrm{\meta{abbrv}}\cs{glspluralsuffix}\},
-%firstplural=\{\textrm{\meta{long}}\cs{glspluralsuffix}\cs{space} (\textrm{\meta{abbrv}}\cs{glspluralsuffix})\},
-%\textrm{\meta{key-val list}}\}
-%\end{display}
-%As mentioned in the previous section, the command
-%\ics{acronymtype} is the name of the glossary in which the acronyms
-%should appear. If the \pkgopt{acronym} package option has been used,
-%this will be \texttt{acronym}, otherwise it will be \texttt{main}.
-%The acronyms can then be used in exactly the same way as any other
-%glossary entry. If you want more than one list of acronyms, you must
-%identify the others using the package options \pkgopt{acronymlists}.
-%This ensures that options such as \pkgopt{footnote} and
-%\pkgopt{smallcaps} work for the additional lists of acronyms.
-%
-%\begin{important}%
-%\textbf{Note:} since \cs{newacronym} sets \verb|type=\acronymtype|,
-%if you want to load a file containing acronym definitions using
-%\cs{loadglsentries}\oarg{type}\marg{filename}, the optional argument
-%\meta{type} will not have an effect unless you explicitly set the
-%type as \verb|type=\glsdefaulttype| in the optional argument to
-%\ics{newacronym}. See \sectionref{sec:loadglsentries}.
-%\end{important}
-%
-%For example, the following defines the acronym IDN:
-%\begin{verbatim}
-%\newacronym{idn}{IDN}{identification number}
-%\end{verbatim}
-%This is equivalent to:
-%\begin{verbatim}
-%\newglossaryentry{idn}{type=\acronymtype,
-%name={IDN},
-%description={identification number},
-%text={IDN},
-%first={identification number (IDN)},
-%plural={IDNs},
-%firstplural={identification numbers (IDNs)}}
-%\end{verbatim}
-%so \verb|\gls{idn}| will produce \qt{identification number (IDN)} on
-%\firstuse\ and \qt{IDN} on subsequent uses.
-%
-%This section describes acronyms that have been defined using
-%\ics{newacronym}. If you prefer to define your acronyms using
-%\ics{newglossaryentry} explicitly, then you should skip this section
-%and ignore the package options: \pkgopt{smallcaps},
-%\pkgopt{smaller}, \pkgopt{description}, \pkgopt{dua} and
-%\pkgopt{footnote}, as these options change the definition of
-%\ics{newacronym} for common acronym formats as well as the way that
-%the link text is displayed (see \sectionref{sec:glsdisplay}).
-%Likewise you should ignore the package option \pkgopt{shortcuts} and
-%the new commands described in this section, such as \ics{acrshort},
-%as they vary according to the definition of \ics{newacronym}.
-%
-%If you want to define your own custom acronym style, see
-%\sectionref{sec:customacronym}.
-%
-%\begin{important}
-%If you try using \ics{newglossaryentry} for entries in a designated
-%list of acronyms in combination with any of the above named package
-%options you are likely to get unexpected results such as empty
-%brackets or empty footnotes.
-%\end{important}
-%
-%If you use any of the package options \pkgopt{smallcaps},
-%\pkgopt{smaller}, \pkgopt{description} or
-%\pkgopt{footnote}, the acronyms will be displayed in the document
-%using:
-%\begin{definition}[\DescribeMacro{\acronymfont}]
-%\cs{acronymfont}\marg{text}
-%\end{definition}
-%and
-%\begin{definition}[\DescribeMacro{\firstacronymfont}]
-%\cs{firstacronymfont}\marg{text}
-%\end{definition}
-%where \cs{firstacronymfont} is applied on \firstuse\ and
-%\cs{acronymfont} is applied on subsequent use. Note that if you
-%don't use any of the above package options, changing the definition
-%of \cs{acronymfont} or \cs{firstacronymfont} will have no effect. In
-%this case, the recommended route is to use either the
-%\pkgopt{smaller} or the \pkgopt{smallcaps} package option and
-%redefine \cs{acronymfont} and \cs{firstacronymfont} as required.
-%(The \pkgopt{smallcaps} option sets the default plural suffix in an
-%upright font to cancel the effect of \cs{textsc}, whereas
-%\pkgopt{smaller} sets the suffix in the surrounding font.)
-%For example, if you want acronyms in a normal font on first use and
-%emphasized on subsequent use, do:
-%\begin{verbatim}
-%\usepackage[smaller]{glossaries}
-%\renewcommand*{\firstacronymfont}[1]{#1}
-%\renewcommand*{\acronymfont}[1]{\emph{#1}}
-%\end{verbatim}
-%(Note that it is for this reason that the \sty{relsize} package
-%is not automatically loaded when selecting the
-%\pkgopt{smaller} package option.)
-%
-%\Tableref{tab:acronymsettings} lists the package options that govern
-%the acronym styles and how the \ics{newglossaryentry} keys are used
-%to store \meta{long} (the long form) and \meta{abbrv} (the short
-%form). Note that the \pkgopt{smallcaps} option redefines
-%\cs{acronymfont} so that it sets its argument using \cs{textsc} (so
-%you should use lower case characters in \meta{abbrv}) and the
-%\pkgopt{smaller} option redefines \cs{acronymfont} to use
-%\cs{textsmaller},\footnote{you will need to load a package, such as
-%\styfmt{relsize}, that defines \cs{textsmaller} if you use this
-%option.}\ otherwise \cs{acronymfont} simply displays its argument in
-%the surrounding font.
-%
-%\begin{table}[htbp]
-%\caption{Package options governing \cs{newacronym} and how the
-%information is stored in the keys for \cs{newglossaryentry}}
-%\label{tab:acronymsettings}
-%\begin{center}
-%\begin{tabular}{lllll}
-%\bfseries Package Option &
-%\gloskey{first} key &
-%\gloskey{text} key &
-%\gloskey{description} key &
-%\gloskey{symbol} key\\
-%\pkgopt{description},\pkgopt{footnote} &
-%\meta{abbrv} &
-%\meta{abbrv} &
-%user supplied &
-%\meta{long}\\
-%\pkgopt{description},\pkgopt{dua} &
-%\meta{long} &
-%\meta{long} &
-%user supplied &
-%\meta{abbrv}\\
-%\pkgopt{description} &
-%\meta{long} &
-%\meta{abbrv} &
-%user supplied &
-%\meta{abbrv}\\
-%\pkgopt{footnote} &
-%\meta{abbrv} &
-%\meta{abbrv} &
-%\meta{long} &
-% \\
-%\pkgopt{smallcaps} &
-%\meta{long} &
-%\meta{abbrv} &
-%\meta{long} &
-%\meta{abbrv}\\
-%\pkgopt{smaller} &
-%\meta{long} &
-%\meta{abbrv} &
-%\meta{long} &
-%\meta{abbrv}\\
-%\pkgopt{dua} &
-%\meta{long} &
-%\meta{long} &
-%\meta{long} &
-%\meta{abbrv}\\
-%None of the above&
-%\meta{long} (\meta{abbrv}) &
-%\meta{abbrv} &
-%\meta{long} &
-%\end{tabular}
-%\end{center}
-%\end{table}
-%
-%In case you can't remember which key stores the long or short forms
-%(or their plurals) the \styfmt{glossaries} package provides the
-%commands:
-%\begin{itemize}
-%\item\DescribeMacro{\glsshortkey}\cs{glsshortkey}
-%The key used to store the short form.
-%\item\DescribeMacro{\glsshortpluralkey}\cs{glsshortpluralkey}
-%The key used to store the plural version of the short form.
-%\item\DescribeMacro{\glslongkey}\cs{glslongkey}
-%The key used to store the long form.
-%\item\DescribeMacro{\glslongpluralkey}\cs{glslongpluralkey}
-%The key used to store the plural version of the long form.
-%\end{itemize}
-%These can be used in the optional argument of \cs{newacronym}
-%to override the defaults. For example:
-%\begin{verbatim}
-%\newacronym[\glslongpluralkey={diagonal matrices}]{dm}{DM}{diagonal
-%matrix}
-%\end{verbatim}
-%If the \firstuse\ uses the plural form, \verb|\glspl{dm}| will
-%display: diagonal matrices (DMs).
-%
-%Each of the package options \pkgopt{smallcaps}, \pkgopt{smaller},
-%\pkgopt{footnote}, \pkgopt{dua} and \pkgopt{description} use
-%\ics{defglsdisplay} and \ics{defglsdisplayfirst} (described in
-%\sectionref{sec:glsdisplay}) to change the way the link text is
-%displayed. This means that these package options only work for the
-%glossary type given by \cs{acronymtype}. If you have multiple lists
-%of acronyms, you will need to make the appropriate changes for each
-%additional glossary type.
-%
-%\begin{description}
-%\item[\pkgopt{description},\pkgopt{footnote}]\ifpdf\mbox{}\par\fi
-%When these two package options are used together, the \firstuse\ displays
-%the entry as:
-%\begin{display}
-%\cs{firstacronymfont}\marg{abbrv}\meta{insert}\cs{footnote}\marg{long}
-%\end{display}
-%while subsequent use displays the entry as:
-%\begin{display}
-%\cs{acronymfont}\marg{abbrv}\meta{insert}
-%\end{display}
-%where \meta{insert} indicates the text supplied in the final
-%optional argument to \cs{gls}, \cs{glspl} or their uppercase
-%variants.
-%
-%In this case, the long form is stored in the \gloskey{symbol} key.
-%This means that the long form will not be displayed in the list of
-%acronyms unless you use a glossary style that displays the entry's
-%symbol (for example, the \glostyle{index} style). Entries will
-%be sorted according to the short form.
-%
-%Note also that when these two package options are used (in the
-%given order), the \styfmt{glossaries} package additionally implements the
-%\pkgopt{sanitize} option using
-%\ipkgopt[description]{sanitize}\ipkgopt[symbol]{sanitize}\verb|sanitize={description=false,symbol=false}|, so
-%remember to protect fragile commands when defining acronyms.
-%
-%\item[\pkgopt{dua}]\ifpdf\mbox{}\par\fi
-%The \pkgopt{dua} package option always displays the expanded
-%form and so may not be used with \pkgopt{footnote}, \pkgopt{smaller} or
-%\pkgopt{smallcaps}. Both \firstuse\ and subsequent use displays the
-%entry in the form:
-%\begin{display}
-%\meta{long}\meta{insert}
-%\end{display}
-%
-%If the \pkgopt{description} package option is also used, the
-%\gloskey{name} key is set to the long form, otherwise the
-%\gloskey{name} key is set to the short form and the
-%\gloskey{description} key is set to the long form. In both
-%cases the \gloskey{symbol} is set to the short form. Therefore,
-%if you use the \pkgopt{description} package option and you want
-%the short form to appear in the list of acronyms, you will need
-%to use a glossary style that displays the entry's symbol (for
-%example, the \glostyle{index} style). Entries will be sorted
-%according to the long form if the \pkgopt{description} option
-%is used, otherwise they will be sorted according to the
-%short form (unless overridden by the \gloskey{sort} key in
-%the optional argument of \ics{newacronym}).
-%
-%\item[\pkgopt{description}]\ifpdf\mbox{}\par\fi
-%This package option displays the entry on \firstuse\ as:
-%\begin{display}
-%\meta{long}\meta{insert} (\cs{firstacronymfont}\marg{abbrv})
-%\end{display}
-%while subsequent use displays the entry as:
-%\begin{display}
-%\cs{acronymfont}\marg{abbrv}\meta{insert}
-%\end{display}
-%Note also that if this package option is used, the \styfmt{glossaries}
-%package additionally implements the option
-%\ipkgopt[symbol]{sanitize}\verb|sanitize={symbol=false}|, so
-%remember to protect fragile commands when defining acronyms.
-%
-%Note that with this option, you need to specify the description
-%using the \gloskey{description} key in the optional argument
-%of \ics{newacronym}. When this option is used without
-%the \pkgopt{footnote} or \pkgopt{dua} options, the name field
-%is specified as
-%\begin{definition}[\DescribeMacro{\acrnameformat}]
-%\cs{acrnameformat}\marg{short}\marg{long}
-%\end{definition}
-%This defaults to \ics{acronymfont}\marg{short}, which means that the
-%long form will not appear in the list of acronyms by default.
-%To change this, you need to redefine \ics{acrnameformat} as
-%appropriate. For example, to display the long form followed
-%by the short form in parentheses do:
-%\begin{verbatim}
-%\renewcommand*{\acrnameformat}[2]{#2 (\acronymfont{#1})}
-%\end{verbatim}
-%Note that even if you redefine \ics{acrnameformat}, the
-%entries will be sorted according to the short form, unless you
-%override this using the \gloskey{sort} key in the optional
-%argument to \ics{newacronym}.
-%
-%\item[\pkgopt{footnote}]\ifpdf\mbox{}\par\fi
-%This package option displays the entry on \firstuse\ as:
-%\begin{display}
-%\cs{firstacronymfont}\marg{abbrv}\meta{insert}\cs{footnote}\marg{long}
-%\end{display}
-%while subsequent use displays the entry as:
-%\begin{display}
-%\cs{acronymfont}\marg{abbrv}\meta{insert}
-%\end{display}
-%Acronyms will be sorted according to the short form.
-%
-%Note also that if this package option is used, the \styfmt{glossaries}
-%package additionally implements the option
-%\ipkgopt[description]{sanitize}\verb|sanitize={description=false}|, so
-%remember to protect fragile commands when defining acronyms.
-%
-%Note that on \firstuse, it is the long form in the footnote that
-%links to the relevant glossary entry (where hyperlinks are enabled),
-%whereas on subsequent use, the acronym links to the relevant
-%glossary entry. It is possible to change this to make the acronym on
-%\firstuse\ have the hyperlink instead of the footnote, but since the
-%footnote marker will also be a hyperlink, you will have two
-%hyperlinks in immediate succession. This can be ambiguous where the
-%hyperlinks are coloured rather than boxed. The code required to
-%change the \firstuse\ to make the acronym a hyperlink is as follows:
-%\begin{verbatim}
-% \defglsdisplayfirst[\acronymtype]{%
-% \noexpand\protect\noexpand
-% \glslink[\@gls@link@opts]{\@gls@link@label}{\firstacronymfont{#1}#4}%
-% \noexpand\protect\noexpand\footnote{#2}}%
-%\end{verbatim}
-%\textbf{Note} that this involves using internal commands (i.e.\
-%commands whose name contains an \verb|@| character), so if this code
-%is place in a \texttt{.tex} file it needs to be placed within a
-%\cs{makeatletter} \ldots\ \cs{makeatother} pair. (See
-%\urlref{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=atsigns}{\cs{@}
-%and \texttt{@} in macro names} for further details.)
-%
-%\item[\pkgopt{smallcaps}]\ifpdf\mbox{}\par\fi
-%If neither the \pkgopt{footnote} nor \pkgopt{description} options
-%have been set, this option displays the entry on \firstuse\ as:
-%\begin{display}
-%\meta{long}\meta{insert} (\cs{firstacronymfont}\marg{abbrv})
-%\end{display}
-%while subsequent use displays the entry as:
-%\begin{display}
-%\cs{acronymfont}\marg{abbrv}\meta{insert}
-%\end{display}
-%where \cs{acronymfont} is set to \verb|\textsc{#1}|.
-%
-%\begin{important}
-%Note that since the acronym is displayed using \ics{textsc},
-%the short form, \meta{abbrv}, should be specified in lower case.
-%\ifpdf(Recall that "\textsc{abc}" produces \textsc{abc} whereas
-%"\textsc{ABC}" produces \textsc{ABC}.)\fi
-%\end{important}
-%
-%Note also that if this package option is used, the \styfmt{glossaries}
-%package additionally implements the option
-%\ipkgopt[symbol]{sanitize}\verb|sanitize={symbol=false}|, so
-%remember to protect fragile commands when defining acronyms.
-%
-%\item[\pkgopt{smaller}]\ifpdf\mbox{}\par\fi
-%If neither the \pkgopt{footnote} nor \pkgopt{description} options
-%have been set, this option displays the entry on \firstuse\ as:
-%\begin{display}
-%\meta{long}\meta{insert} (\cs{firstacronymfont}\marg{abbrv})
-%\end{display}
-%while subsequent use displays the entry as:
-%\begin{display}
-%\cs{acronymfont}\marg{abbrv}\meta{insert}
-%\end{display}
-%where \cs{acronymfont} is set to
-%\verb|\textsmaller{#1}|.\footnote{not that this was change from
-%using \ics{smaller} to \ics{textsmaller} as declarations
-%cause a problem for \ics{makefirstuc}.}
-%The entries will be sorted according to the short form.
-%
-%\begin{important}
-%Remember to load a package that defines \ics{textsmaller} (such as
-%\sty{relsize}) if you want to use this option, unless you want
-%to redefine \ics{acronymfont} to use some other formatting command.
-%\end{important}
-%
-%Note also that if this package option is used, the \styfmt{glossaries}
-%package additionally implements the option
-%\ipkgopt[symbol]{sanitize}\verb|sanitize={symbol=false}|, so
-%remember to protect fragile commands when defining acronyms.
-%
-%\item[None of the above]\ifpdf \mbox{}\par\fi
-%If none of the package options \pkgopt{smallcaps}, \pkgopt{smaller},
-%\pkgopt{footnote}, \pkgopt{dua} or \pkgopt{description} are used,
-%then on \firstuse\ the entry is displayed as:
-%\begin{display}
-%\meta{long} (\meta{abbrv})\meta{insert}
-%\end{display}
-%while subsequent use displays the entry as:
-%\begin{display}
-%\meta{abbrv}\meta{insert}
-%\end{display}
-%Entries will be sorted according to the short form.
-%Note that if none of the acronym-related package options are used,
-%the \pkgopt{sanitize} option will not be affected.
-%\end{description}
-%
-%Recall from \sectionref{sec:glslink} that you can access the values
-%of individual keys using commands like \ics{glstext}, so it is
-%possible to use these commands to print just the long form or just
-%the abbreviation without affecting the flag that determines whether
-%the entry has been used. However the keys that store the long and
-%short form vary depending on the acronym style, so the
-%\styfmt{glossaries} package provides commands that are set according
-%to the package options. These are as follows:
-%\begin{definition}[\DescribeMacro{\acrshort}]
-%\cs{acrshort}\oarg{options}\marg{label}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\Acrshort}]
-%\cs{ACRshort}\oarg{options}\marg{label}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\ACRshort}]
-%\cs{ACRshort}\oarg{options}\marg{label}\oarg{insert}
-%\end{definition}
-%Print the abbreviated version with (if required) a hyperlink to the
-%relevant entry in the glossary. This is usually equivalent to
-%\ics{glstext} (or its uppercase variants) but may additionally put
-%the link text within the argument to \ics{acronymfont}.
-%\begin{definition}[\DescribeMacro{\acrlong}]
-%\cs{acrlong}\oarg{options}\marg{label}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\Acrlong}]
-%\cs{ACRlong}\oarg{options}\marg{label}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\ACRlong}]
-%\cs{ACRlong}\oarg{options}\marg{label}\oarg{insert}
-%\end{definition}
-%Print the long version with (if required) a hyperlink to the
-%relevant entry in the glossary. This is may be equivalent to
-%\ics{glsdesc}, \ics{glssymbol} or \ics{glsfirst} (or their uppercase
-%variants), depending on package options.
-%\begin{definition}[\DescribeMacro{\acrfull}]
-%\cs{acrfull}\oarg{options}\marg{label}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\Acrfull}]
-%\cs{ACRfull}\oarg{options}\marg{label}\oarg{insert}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\ACRfull}]
-%\cs{ACRfull}\oarg{options}\marg{label}\oarg{insert}
-%\end{definition}
-%Print the long version followed by the abbreviation in brackets with
-%(if required) a hyperlink to the relevant entry in the glossary.
-%
-%\begin{important}
-%Note that if any of the above commands produce unexpected output
-%and you haven't used any of the acronym-related package options,
-%you will need to switch off the sanitization\ipkgopt{sanitize}.
-%For example:
-%\begin{verbatim}
-%\usepackage[sanitize=none]{glossaries}
-%\end{verbatim}
-%However, if you do this, you must remember to protect fragile
-%commands when defining acronyms or glossary entries.
-%\end{important}
-%
-%Note that if you change the definition of \ics{newacronym}, you
-%may additionally need to change the above commands as well as
-%changing the way the text is displayed using \ics{defglsdisplay}
-%and \ics{defglsdisplayfirst}.
-%
-%The package option \pkgopt{shortcuts} provides the synonyms listed
-%in \tableref{tab:shortcuts}. If any of those commands generate
-%an \qt{undefined control sequence} error message, check that you
-%have enabled the shortcuts using the \pkgopt{shortcuts} package
-%option. Note that there are no shortcuts for the commands that
-%produce all upper case text.
-%
-%\begin{table}[htbp]
-%\caption[Synonyms provided by the package option shortcuts]{Synonyms provided by the package option \pkgopt{shortcuts}}
-%\label{tab:shortcuts}
-%\begin{center}
-%\begin{tabular}{ll}
-%\bfseries Shortcut Command & \bfseries Equivalent Command\\
-%\ics{acs} & \ics{acrshort}\\
-%\ics{Acs} & \ics{Acrshort}\\
-%\ics{acsp} & \ics{acrshortpl}\\
-%\ics{Acsp} & \ics{Acrshortpl}\\
-%\ics{acl} & \ics{acrlong}\\
-%\ics{Acl} & \ics{Acrlong}\\
-%\ics{aclp} & \ics{acrlongpl}\\
-%\ics{Aclp} & \ics{Acrlongpl}\\
-%\ics{acf} & \ics{acrfull}\\
-%\ics{Acf} & \ics{Acrfull}\\
-%\ics{acfp} & \ics{acrfullpl}\\
-%\ics{Acfp} & \ics{Acrfullpl}\\
-%\ics{ac} & \ics{gls}\\
-%\ics{Ac} & \ics{Gls}\\
-%\ics{acp} & \ics{glspl}\\
-%\ics{Acp} & \ics{Glspl}
-%\end{tabular}
-%\end{center}
-%\end{table}
-%
-%\subsubsection{Defining A Custom Acronym Style}
-%\label{sec:customacronym}
-%
-%You may find that the predefined acronyms styles that come with the
-%\styfmt{glossaries} package don't suit your requirements. In this
-%case you can define your own style. This is done by redefining the
-%following commands:
-%\begin{definition}[\DescribeMacro{\CustomAcronymFields}]
-%\cs{CustomAcronymFields}
-%\end{definition}
-%This command sets up the keys for \ics{newglossaryentry} when
-%you define an acronym using \ics{newacronym}. Within the definition
-%of \cs{CustomAcronymFields}, you may use \cs{the}\ics{glslongtok} to
-%access the long form, \cs{the}\ics{glsshorttok} to access the short
-%form and \cs{the}\ics{glslabeltok} to access the label. This command
-%is typically used to set the \gloskey{name}, \gloskey{first},
-%\gloskey{firstplural}, \gloskey{text} and \gloskey{plural} keys. It
-%may also be used to set the \gloskey{symbol} or
-%\gloskey{description} keys depending on your requirements.
-%
-%\begin{definition}[\DescribeMacro{\SetCustomDisplayStyle}]
-%\cs{SetCustomDisplayStyle}\marg{type}
-%\end{definition}
-%This is used to set up the display style for the glossary given by
-%\meta{type}. This should typically just use \ics{defglsdisplayfirst}
-%and \ics{defglsdisplay}.
-%
-%Once you have redefined \cs{CustomAcronymFields} and
-%\cs{SetCustomDisplayStyle}, you must then switch to this style using
-%\begin{definition}[\DescribeMacro{\SetCustomStyle}]
-%\cs{SetCustomStyle}
-%\end{definition}
-%Note that you may still use the \pkgopt{shortcuts} package option
-%with your custom style.
-%
-%\begin{important}
-%If you omit \cs{SetCustomStyle}, or use it before you redefine
-%\cs{CustomAcronymFields} and \cs{SetCustomDisplayStyle}, your new
-%style won't be correctly implemented. You must set up the custom style
-%before defining new acronyms. The acronyms must be defined using
-%\ics{newacronym} not \ics{newglossaryentry}.
-%\end{important}
-%
-%As an example, suppose I want my acronym on first use to have the
-%short form in the text and the long form with the description in a
-%footnote. Suppose also that I want the short form to be put in small
-%caps in the main body of the document, but I want it in normal
-%capitals in the list of acronyms. In my list of acronyms, I want the
-%long form as the name with the short form in brackets followed by
-%the description.
-%
-%First, I need to redefine \ics{CustomAcronymFields} so that
-%\ics{newacronym} will correctly set the \gloskey{name},
-%\gloskey{text} and \gloskey{plural} keys. I want the long form to be
-%stored in the \gloskey{name} and the short form to be stored in
-%\gloskey{text}. In addition, I'm going to set the \gloskey{symbol}
-%to the short form in upper case so that it will appear in the list
-%of acronyms.
-%
-%\begin{verbatim}
-%\renewcommand*{\CustomAcronymFields}{%
-% name={\the\glslongtok},%
-% symbol={\MakeUppercase{\the\glsshorttok}},%
-% text={\textsc{\the\glsshorttok}},%
-% plural={\textsc{\the\glsshorttok}s}%
-%}
-%\end{verbatim}
-%
-%Note that in this case I haven't bothered with \ics{acrpluralsuffix}
-%and have just inserted an \qt{s}.
-%
-%When I use the custom acronym style, the short form is stored in
-%\gloskey{user1}, the plural short form is stored in \gloskey{user2},
-%the long form is stored in \gloskey{user3} and the plural long form
-%is stored in \gloskey{user4}. So when I use \ics{defglsdisplayfirst}
-%and \ics{defglsdisplay}, I can use \ics{glsentryuseriii} to access
-%the long form. Recall from \sectionref{sec:glsdisplay}, that the
-%optional argument to \ics{defglsdisplayfirst} and \ics{defglsdisplay}
-%indicates the glossary type. This is passed to
-%\ics{SetCustomDisplayStyle}. The mandatory argument sets up the
-%definition of \ics{glsdisplayfirst} and \ics{glsdisplay} for the
-%given glossary, where the first argument corresponds to the
-%\gloskey{first}, \gloskey{firstplural}, \gloskey{text} or
-%\gloskey{plural}, as appropriate, the second argument corresponds to
-%the \gloskey{description}, the third corresponds to the
-%\gloskey{symbol} and the fourth argument is the inserted text.
-%
-%\begin{verbatim}
-%\renewcommand*{\SetCustomDisplayStyle}[1]{%
-% \defglsdisplayfirst[#1]{##1##4\protect\footnote{%
-% \glsentryuseriii{\glslabel}: ##2%
-% }}
-% \defglsdisplay[#1]{##1##4}%
-%}
-%\end{verbatim}
-%
-%Since we have a definition inside a definition, \verb|#1| refers to
-%the argument of \ics{SetCustomDisplayStyle}, and \verb|##1|, \ldots,
-%\verb|##4|, refer to the arguments of \ics{glsdisplayfirst} and
-%\ics{glsdisplay}.
-%
-%Now that I've redefined \ics{CustomAcronymFields} and
-%\ics{SetCustomDisplayStyle}, I can set this style using
-%\begin{verbatim}
-%\SetCustomStyle
-%\end{verbatim}
-%and now I can define my acronyms:
-%\begin{verbatim}
-%\newacronym[description={set of tags for use in developing hypertext
-%documents}]{html}{html}{Hyper Text Markup Language}
-%
-%\newacronym[description={language used to describe the layout of a
-%document written in a markup language}]{css}{css}{Cascading Style
-%Sheet}
-%\end{verbatim}
-%
-%Note that since I've used the description in the main body of the
-%text, I need to switch off the sanitization otherwise any commands
-%within the description won't get interpreted. Also I want to use the
-%\sty{hyperref} package, but this will cause a problem on first use
-%as I'll get nested hyperlinks, so I need to switch off the
-%hyperlinks on first use. In addition, I want to use a glossary style
-%that displays the symbol. Therefore, in my preamble I have:
-%
-%\begin{verbatim}
-%\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
-% ]{glossaries}
-%\end{verbatim}
-%
-%Note that I haven't used the \pkgopt{description} or
-%\pkgopt{footnote} package options.
-%
-%\subsubsection{Upgrading From the glossary Package}
-%\label{sec:oldacronym}
-%Users of the obsolete \sty{glossary} package may recall that
-%the syntax used to define new acronyms has changed with the
-%replacement \styfmt{glossaries} package. In addition, the old
-%\sty{glossary} package created the command
-%\cs{}\meta{acr-name} when defining the acronym \meta{acr-name}.
-%
-%In order to facilitate migrating from the old package to the new
-%one, the \styfmt{glossaries} package\footnote{as from version 1.18}
-%provides the command:
-%\begin{definition}[\DescribeMacro{\oldacronym}]
-%\cs{oldacronym}\oarg{label}\marg{abbrv}\marg{long}\marg{key-val list}
-%\end{definition}
-%This uses the same syntax as the \sty{glossary} package's
-%method of defining acronyms. It is equivalent to:\\[10pt]
-%\ics{newacronym}\oarg{key-val list}\marg{label}\marg{abbrv}\marg{long}\\[10pt]
-%In addition, \ics{oldacronym} also defines the commands
-%\cs{}\meta{label}, which is equivalent to \ics{gls}\marg{label},
-%and \cs{}\meta{label}\texttt{*}, which is equivalent to
-%\ics{Gls}\marg{label}. If \meta{label} is omitted, \meta{abbrv}
-%is used. Since commands names must consist only of alphabetical
-%characters, \meta{label} must also only consist of alphabetical
-%characters. Note that \cs{}\meta{label} doesn't allow you to use
-%the first optional argument of \ics{gls} or \ics{Gls} --- you will
-%need to explicitly use \ics{gls} or \ics{Gls} to change the
-%settings.
-%
-%\begin{important}
-%Recall that, in general, \LaTeX\ ignores spaces following command
-%names consisting of alphabetical characters. This is also true for
-%\cs{}\meta{label} unless you additionally load the
-%\sty{xspace} package.
-%\end{important}
-%
-%The \styfmt{glossaries} package doesn't load the \sty{xspace} package
-%since there are both advantages and disadvantages to using
-%\ics{xspace} in \cs{}\meta{label}. If you don't use the
-%\sty{xspace} package you need to explicitly force a space using
-%\verb*|\ | (backslash space) however you can follow \cs{}\meta{label}
-%with additional text in square brackets (the final optional
-%argument to \ics{gls}). If you use the \sty{xspace} package
-%you don't need to escape the spaces but you can't use
-%the optional argument to insert text (you will have to explicitly
-%use \ics{gls}).
-%
-%To illustrate this, suppose I define the acronym \qt{abc} as
-%follows:
-%\begin{verbatim}
-%\oldacronym{abc}{example acronym}{}
-%\end{verbatim}
-%This will create the command \cs{abc} and its starred version
-%\cs{abc*}. \Tableref{tab:xspace} illustrates the effect of
-%\cs{abc} (on subsequent use) according to whether or not the
-%\sty{xspace} package has been loaded. As can be seen from the
-%final row in the table, the \sty{xspace} package prevents the
-%optional argument from being recognised.
-%
-%\begin{table}[htbp]
-%\caption[The effect of using xspace]{The effect of using
-%\styfmt{xspace} with \cs{oldacronym}}
-%\label{tab:xspace}
-%\vskip\baselineskip
-%\centering
-%\begin{tabular}{lll}
-%\bfseries Code & \bfseries With \styfmt{xspace} &
-%\bfseries Without \styfmt{xspace}\\
-%\verb|\abc.| & abc. & abc.\\
-%\verb|\abc xyz| & abc xyz & abcxyz\\
-%\verb|\abc\ xyz| & abc xyz & abc xyz\\
-%\verb|\abc* xyz| & Abc xyz & Abc xyz\\
-%\verb|\abc['s] xyz| & abc ['s] xyz & abc's xyz
-%\end{tabular}
-%\par
-%\end{table}
-%
-%
-%
-%\subsection{Unsetting and Resetting Entry Flags}
-%\label{sec:glsunset}
-%
-%When using \ics{gls}, \ics{glspl} and their uppercase variants it is
-%possible that you may want to use the value given by the
-%\gloskey{first} key, even though you have already used the glossary
-%entry\ifirstuse. Conversely, you may want to use the value given by the
-%\gloskey{text} key, even though you haven't used the glossary entry.
-%The former can be achieved by one of the following commands:
-%\begin{definition}[\DescribeMacro{\glsreset}]
-%\cs{glsreset}\marg{label}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\glslocalreset}]
-%\cs{glslocalreset}\marg{label}
-%\end{definition}
-%while the latter can be achieved by one of the following commands:
-%\begin{definition}[\DescribeMacro{\glsunset}]
-%\cs{glsunset}\marg{label}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\glslocalunset}]
-%\cs{glslocalunset}\marg{label}
-%\end{definition}
-%You can also reset or unset all entries for a given glossary or list of
-%glossaries using:
-%\begin{definition}[\DescribeMacro{\glsresetall}]
-%\cs{glsresetall}\oarg{glossary list}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\glslocalresetall}]
-%\cs{glslocalresetall}\oarg{glossary list}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\glsunsetall}]
-%\cs{glsunsetall}\oarg{glossary list}
-%\end{definition}
-%\begin{definition}[\DescribeMacro{\glslocalunsetall}]
-%\cs{glslocalunsetall}\oarg{glossary list}
-%\end{definition}
-%where \meta{glossary list} is a comma-separated list of
-%glossary labels. If omitted, all defined glossaries are assumed.
-%For example, to reset all entries in the main glossary and the
-%list of acronyms:
-%\begin{verbatim}
-%\glsresetall[main,acronym]
-%\end{verbatim}
-%
-%You can determine whether an entry's first use flag is set using:
-%\begin{definition}[\DescribeMacro{\ifglsused}]
-%\cs{ifglsused}\marg{label}\marg{true part}\marg{false part}
-%\end{definition}
-%where \meta{label} is the label of the required entry. If the
-%entry has been used, \meta{true part} will be done, otherwise
-%\meta{false part} will be done.
-%
-%
-%\subsection{Glossary Styles}
-%\label{sec:styles}
-%The \styfmt{glossaries} package comes with some pre-defined
-%glossary styles. Note that the styles are suited to different
-%types of glossaries: some styles ignore the associated
-%symbol; some styles are not designed for hierarchical entries,
-%so they display sub-entries in the same way as they display top
-%level entries; some styles are designed for homographs, so they
-%ignore the name for sub-entries. You should therefore pick a style
-%that suits your type of glossary. See \tableref{tab:styles} for
-%a summary of the available styles.
-%
-%\begin{table}[htbp]
-%\caption[Glossary Styles]{Glossary Styles. An asterisk in the style
-%name indicates anything that matches that doesn't match any
-%previously listed style (e.g.\ \texttt{long3col*}
-%matches \glostyle{long3col}, \glostyle{long3colheader},
-%\glostyle{long3colborder} and \glostyle{long3colheaderborder}).
-%A maximum level of 0 indicates a flat glossary (sub-entries
-%are displayed in the same way as main entries). Where the maximum
-%level is given as --- there is no limit, but note that
-%\app{makeindex} imposes a limit of 2 sub-levels. If the
-%homograph column is checked, then the name is not displayed for
-%sub-entries. If the symbol column is checked, then the symbol will
-%be displayed if it has been defined.}
-%\label{tab:styles}
-%\vskip\baselineskip
-%\centering
-%\begin{tabular}{lccc}
-%\bfseries Style & \bfseries Maximum Level &
-%\bfseries Homograph & \bfseries Symbol\\
-%\ttfamily listdotted & 0 & & \\
-%\ttfamily sublistdotted & 1 & & \\
-%\ttfamily list* & 1 & \tick & \\
-%\ttfamily altlist* & 1 & \tick & \\
-%\ttfamily long*3col* & 1 & \tick & \\
-%\ttfamily long4col* & 1 & \tick & \tick \\
-%\ttfamily altlong*4col* & 1 & \tick & \tick \\
-%\ttfamily long* & 1 & \tick & \\
-%\ttfamily super*3col* & 1 & \tick & \\
-%\ttfamily super4col* & 1 & \tick & \tick \\
-%\ttfamily altsuper*4col* & 1 & \tick & \tick \\
-%\ttfamily super* & 1 & \tick & \\
-%\ttfamily index* & 2 & & \tick\\
-%\ttfamily treenoname* & --- & \tick & \tick\\
-%\ttfamily tree* & --- & & \tick\\
-%\ttfamily alttree* & --- & & \tick
-%\end{tabular}
-%\par
-%\end{table}
-%
-%The glossary style can be set using the \gloskey[printglossary]{style} key in the optional
-%argument to \ics{printglossary} or using the command:
-%\begin{definition}[\DescribeMacro{\glossarystyle}]
-%\cs{glossarystyle}\marg{style-name}
-%\end{definition}
-%Some of the glossary styles may also be set using the \pkgopt{style}
-%package option, it depends if the package in which they are defined
-%is automatically loaded by the \styfmt{glossaries} package.
-%
-%The tabular-like styles that allow multi-line descriptions and page
-%lists use the length \DescribeMacro{\glsdescwidth}\cs{glsdescwidth}
-%to set the width of the description column and the length
-%\DescribeMacro{\glspagelistwidth}\cs{glspagelistwidth} to set the
-%width of the page list column.\footnote{these lengths will not be
-%available if you use both the \pkgopt{nolong} and \pkgopt{nosuper}
-%package options or if you use the \pkgopt{nostyles} package option
-%unless you explicitly load the relevant package.}
-%These will need to be changed using \cs{setlength} if the glossary
-%is too wide. Note that the \glostyle{long4col} and
-%\glostyle{super4col} styles (and their header and border variations)
-%don't use these lengths as they are designed for single line
-%entries. Instead you should use the analogous \glostyle{altlong4col}
-%and \glostyle{altsuper4col} styles. If you want to
-%explicitly create a line-break within a multi-line description in
-%a tabular-like style you should use \ics{newline} instead of
-%\verb|\\|.
-%
-%Note that if you use the \gloskey[printglossary]{style} key in the
-%optional argument to \ics{printglossary}, it will override any
-%previous style settings for the given glossary, so if, for example,
-%you do
-%\begin{verbatim}
-%\renewcommand*{\glsgroupskip}{}
-%\printglossary[style=long]
-%\end{verbatim}
-%then the new definition of \ics{glsgroupskip} will not have an affect
-%for this glossary, as \cs{glsgroupskip} is redefined by
-%\verb|style=long|. Likewise, \ics{glossarystyle} will also
-%override any previous style definitions, so, again
-%\begin{verbatim}
-%\renewcommand*{\glsgroupskip}{}
-%\glossarystyle{long}
-%\end{verbatim}
-%will reset \cs{glsgroupskip} back to its default definition for the
-%named glossary style (\glostyle{long} in this case). If you want to
-%modify the styles, either use \ics{newglossarystyle} (described
-%in the next section) or make the modifications after
-%\ics{glossarystyle}, e.g.:
-%\begin{verbatim}
-%\glossarystyle{long}
-%\renewcommand*{\glsgroupskip}{}
-%\end{verbatim}
-%
-% \changes{1.03}{2007 July 4}{'glspostdescription added}
-%All the styles except for the three- and four-column styles and the
-%\glostyle{listdotted} style use the command
-%\begin{definition}[\DescribeMacro{\glspostdescription}]
-%\cs{glspostdescription}
-%\end{definition}
-%after the description. This simply displays a full stop by default.
-%To eliminate this full stop (or replace it with something else, say,
-%a comma) you will need to redefine \cs{glspostdescription} before
-%the glossary is displayed. Alternatively, you can suppress it for a
-%given entry by placing \ics{nopostdesc} in the entry's description.
-%
-%\subsubsection{List Styles}
-%\label{sec:liststyles}
-%
-%The styles described in this section are all defined in the package
-%\sty{glossary-list}. Since they all use the \env{description}
-%environment, they are governed by the same parameters as that
-%environment. These styles all ignore the entry's symbol. Note that
-%these styles will automatically be available unless you use the
-%\pkgopt{nolist} or \pkgopt{nostyles} package options.
-%
-%\begin{description}
-%\item[list] The \glostyle{list} style uses the \env{description}
-%environment. The entry name is placed in the optional argument of
-%the \cs{item} command (so it will appear in bold by default). The
-%description follows, and then the associated \term{number list} for
-%that entry. The symbol is ignored. If the entry has child entries,
-%the description and number list follows (but not the name) for each
-%child entry. Groups are separated using \cs{indexspace}.
-%
-%\item[listgroup] The \glostyle{listgroup} style is like
-%\glostyle{list} but the glossary groups have headings.
-%
-%\item[listhypergroup] The \glostyle{listhypergroup} style is like
-%\glostyle{listgroup} but has a navigation line at the start of the
-%glossary with links to each group that is present in the glossary.
-%This requires an additional run through \LaTeX\ to ensure the group
-%information is up to date. In the navigation line, each group is
-%separated by
-%\begin{definition}[\DescribeMacro{\glshypernavsep}]
-%\cs{glshypernavsep}
-%\end{definition}
-%which defaults to a vertical bar with a space on either side. For
-%example, to simply have a space separating each group, do:
-%\begin{verbatim}
-%\renewcommand*{\glshypernavsep}{\space}
-%\end{verbatim}
-%
-%Note that the hyper-navigation line is now (as from version 1.14)
-%set inside the optional argument to \cs{item} instead of after it
-%to prevent a spurious space at the start. This can be changed
-%by redefining \ics{glossaryheader}, but note that this needs to
-%be done \emph{after} the glossary style has been set.
-%
-%\item[altlist] The \glostyle{altlist} style is like \glostyle{list}
-%but the description starts on the line following the name. (As
-%with the \glostyle{list} style, the symbol is ignored.) Each child
-%entry starts a new line, but as with the \glostyle{list} style,
-%the name associated with each child entry is ignored.
-%
-%\item[altlistgroup] The \glostyle{altlistgroup} style is like
-%\glostyle{altlist} but the glossary groups have headings.
-%
-%\item[altlisthypergroup] The \glostyle{altlisthypergroup} style is like
-%\glostyle{altlistgroup} but has a set of links to the glossary
-%groups. The navigation line is the same as that for
-%\glostyle{listhypergroup}, described above.
-%
-%\item[listdotted] This style uses the \env{description}
-%environment.\footnote{This style was supplied by Axel~Menzel.} Each
-%entry starts with \verb|\item[]|, followed by the name followed by a
-%dotted line, followed by the description. Note that this style
-%ignores both the \term{number list} and the symbol. The length
-%\begin{definition}[\DescribeMacro{\glslistdottedwidth}]
-%\cs{glslistdottedwidth}
-%\end{definition}
-%governs where the description should start. This is a flat style, so
-%child entries are formatted in the same way as the parent entries.
-%
-%\item[sublistdotted] This is a variation on the \glostyle{listdotted}
-%style designed for hierarchical glossaries. The main entries
-%have just the name displayed. The sub entries are displayed in
-%the same manner as \glostyle{listdotted}.
-%\end{description}
-%
-%
-%\subsubsection{Longtable Styles}
-%\label{sec:longstyles}
-%
-%The styles described in this section are all defined in the package
-%\sty{glossary-long}. Since they all use the \env{longtable}
-%environment, they are governed by the same parameters as that
-%environment. Note that these styles will automatically be available
-%unless you use the \pkgopt{nolong} or \pkgopt{nostyles} package
-%options. These styles fully justify the description and page list
-%columns. If you want ragged right formatting instead, use the
-%analogous styles described in \sectionref{sec:longraggedstyles}.
-%
-%
-%\begin{description}
-%\item[long] The \glostyle{long} style uses the \env{longtable}
-%environment (defined by the \sty{longtable} package). It has two
-%columns: the first column contains the entry's name and the second
-%column contains the description followed by the \term{number list}.
-%The entry's symbol is ignored.
-%Sub groups are separated with a blank row. The width of the
-%first column is governed by the widest entry in that column. The
-%width of the second column is governed by the length
-%\ics{glsdescwidth}. Child entries have a similar format to the
-%parent entries except that their name is suppressed.
-%
-%\item[longborder] The \glostyle{longborder} style is like
-%\glostyle{long} but has horizontal and vertical lines around it.
-%
-%\item[longheader] The \glostyle{longheader} style is like
-%\glostyle{long} but has a header row.
-%
-%\item[longheaderborder] The \glostyle{longheaderborder} style is
-%like \glostyle{longheader} but has horizontal and vertical lines
-%around it.
-%
-%\item[long3col] The \glostyle{long3col} style is like
-%\glostyle{long} but has three columns. The first column contains
-%the entry's name, the second column contains the description
-%and the third column contains the \term{number list}.
-%The entry's symbol is ignored. The width of the
-%first column is governed by the widest entry in that column, the
-%width of the second column is governed by the length
-%\ics{glsdescwidth}, and the width of the third column is governed by the
-%length \ics{glspagelistwidth}.
-%
-%\item[long3colborder] The \glostyle{long3colborder} style is like
-%the \glostyle{long3col} style but has horizontal and vertical
-%lines around it.
-%
-%\item[long3colheader] The \glostyle{long3colheader} style is like
-%\glostyle{long3col} but has a header row.
-%
-%\item[long3colheaderborder] The \glostyle{long3colheaderborder} style is
-%like \glostyle{long3colheader} but has horizontal and vertical lines
-%around it.
-%
-%\item[long4col] The \glostyle{long4col} style is like
-%\glostyle{long3col} but has an additional column in which the
-%entry's associated symbol appears. This style is used for brief
-%single line descriptions. The column widths are governed by the
-%widest entry in the given column. Use \glostyle{altlong4col} for
-%multi-line descriptions.
-%
-%\item[long4colborder] The \glostyle{long4colborder} style is like
-%the \glostyle{long4col} style but has horizontal and vertical
-%lines around it.
-%
-%\item[long4colheader] The \glostyle{long4colheader} style is like
-%\glostyle{long4col} but has a header row.
-%
-%\item[long4colheaderborder] The \glostyle{long4colheaderborder} style is
-%like \glostyle{long4colheader} but has horizontal and vertical lines
-%around it.
-%
-%\item[altlong4col] The \glostyle{altlong4col} style is like
-%\glostyle{long4col} but allows multi-line descriptions and page
-%lists. The width of the description column is governed by the
-%length \ics{glsdescwidth} and the width of the page list column is
-%governed by the length \ics{glspagelistwidth}. The widths of the
-%name and symbol columns are governed by the widest entry in the
-%given column.
-%
-%\item[altlong4colborder] The \glostyle{altlong4colborder} style is like
-%the \glostyle{long4colborder} but allows multi-line descriptions and
-%page lists.
-%
-%\item[altlong4colheader] The \glostyle{altlong4colheader} style is like
-%\glostyle{long4colheader} but allows multi-line descriptions and
-%page lists.
-%
-%\item[altlong4colheaderborder] The \glostyle{altlong4colheaderborder}
-%style is like \glostyle{long4colheaderborder} but allows multi-line
-%descriptions and page lists.
-%\end{description}
-%
-%
-%\subsubsection{Longtable Styles (Ragged Right)}
-%\label{sec:longraggedstyles}
-%
-%The styles described in this section are all defined in the package
-%\sty{glossary-longragged}. These styles are analogous to those
-%defined in \sty{glossary-long} but the multiline columns are left
-%justified instead of fully justified. Since these styles all use the
-%\env{longtable} environment, they are governed by the same
-%parameters as that environment. The \sty{glossary-longragged}
-%package additionally requires the \sty{array} package. Note that
-%these styles will only be available if you explicitly load
-%\sty{glossary-longragged}:
-%\begin{verbatim}
-%\usepackage{glossaries}
-%\usepackage{glossary-longragged}
-%\end{verbatim}
-%Note that you can't set these styles using the \pkgopt{style}
-%package option since the styles aren't defined until after
-%the \styfmt{glossaries} package has been loaded.
-%
-%\begin{description}
-%\item[longragged] The \glostyle{longragged} style has two
-%columns: the first column contains the entry's name and the second
-%column contains the (left-justified) description followed by the
-%\term{number list}. The entry's symbol is ignored.
-%Sub groups are separated with a blank row. The width of the
-%first column is governed by the widest entry in that column. The
-%width of the second column is governed by the length
-%\ics{glsdescwidth}. Child entries have a similar format to the
-%parent entries except that their name is suppressed.
-%
-%\item[longraggedborder] The \glostyle{longraggedborder} style is like
-%\glostyle{longragged} but has horizontal and vertical lines around it.
-%
-%\item[longraggedheader] The \glostyle{longraggedheader} style is like
-%\glostyle{longragged} but has a header row.
-%
-%\item[longraggedheaderborder] The \glostyle{longraggedheaderborder}
-%style is like \glostyle{longraggedheader} but has horizontal and
-%vertical lines around it.
-%
-%\item[longragged3col] The \glostyle{longragged3col} style is like
-%\glostyle{longragged} but has three columns. The first column
-%contains the entry's name, the second column contains the (left
-%justified) description and the third column contains the (left
-%justified) \term{number list}. The entry's symbol is ignored. The
-%width of the first column is governed by the widest entry in that
-%column, the width of the second column is governed by the length
-%\ics{glsdescwidth}, and the width of the third column is governed by
-%the length \ics{glspagelistwidth}.
-%
-%\item[longragged3colborder] The \glostyle{longragged3colborder}
-%style is like the \glostyle{longragged3col} style but has horizontal
-%and vertical lines around it.
-%
-%\item[longragged3colheader] The \glostyle{longragged3colheader} style is like
-%\glostyle{longragged3col} but has a header row.
-%
-%\item[longragged3colheaderborder] The \glostyle{longragged3colheaderborder} style is
-%like \glostyle{longragged3colheader} but has horizontal and vertical lines
-%around it.
-%
-%\item[altlongragged4col] The \glostyle{altlongragged4col} style is
-%like \glostyle{longragged3col} but has an additional column in which
-%the entry's associated symbol appears. The width of the description
-%column is governed by the length \ics{glsdescwidth} and the width of
-%the page list column is governed by the length
-%\ics{glspagelistwidth}. The widths of the name and symbol columns
-%are governed by the widest entry in the given column.
-%
-%\item[altlongragged4colborder] The
-%\glostyle{altlongragged4colborder} style is like the
-%\glostyle{altlongragged4col} but has horizontal and vertical lines
-%around it.
-%
-%\item[altlongragged4colheader] The
-%\glostyle{altlongragged4colheader} style is like
-%\glostyle{altlongragged4col} but has a header row.
-%
-%\item[altlongragged4colheaderborder] The
-%\glostyle{altlongragged4colheaderborder} style is like
-%\glostyle{altlongragged4colheader} but has horizontal and vertical
-%lines around it.
-%
-%\end{description}
-%
-%
-%\subsubsection{Supertabular Styles}
-%\label{sec:superstyles}
-%
-%The styles described in this section are all defined in the package
-%\sty{glossary-super}. Since they all use the \env{supertabular}
-%environment, they are governed by the same parameters as that
-%environment. Note that these styles will automatically be available
-%unless you use the \pkgopt{nosuper} or \pkgopt{nostyles} package
-%options. In general, the \env{longtable} environment is better,
-%but there are some circumstances where it is better to use
-%\env{supertabular}.\footnote{e.g.\ with the \sty{flowfram}
-%package.} These styles fully justify the description and page list
-%columns. If you want ragged right formatting instead, use the
-%analogous styles described in \sectionref{sec:superraggedstyles}.
-%
-%\begin{description}
-%\item[super] The \glostyle{super} style uses the \env{supertabular}
-%environment (defined by the \sty{supertabular} package). It has two
-%columns: the first column contains the entry's name and the second
-%column contains the description followed by the \term{number list}.
-%The entry's symbol is ignored.
-%Sub groups are separated with a blank row. The width of the
-%first column is governed by the widest entry in that column. The
-%width of the second column is governed by the length
-%\ics{glsdescwidth}. Child entries have a similar format to the
-%parent entries except that their name is suppressed.
-%
-%\item[superborder] The \glostyle{superborder} style is like
-%\glostyle{super} but has horizontal and vertical lines around it.
-%
-%\item[superheader] The \glostyle{superheader} style is like
-%\glostyle{super} but has a header row.
-%
-%\item[superheaderborder] The \glostyle{superheaderborder} style is
-%like \glostyle{superheader} but has horizontal and vertical lines
-%around it.
-%
-%\item[super3col] The \glostyle{super3col} style is like
-%\glostyle{super} but has three columns. The first column contains
-%the entry's name, the second column contains the description
-%and the third column contains the \term{number list}. The
-%entry's symbol is ignored. The width of the
-%first column is governed by the widest entry in that column. The
-%width of the second column is governed by the length
-%\ics{glsdescwidth}. The width of the third column is governed by the
-%length \ics{glspagelistwidth}.
-%
-%\item[super3colborder] The \glostyle{super3colborder} style is like
-%the \glostyle{super3col} style but has horizontal and vertical
-%lines around it.
-%
-%\item[super3colheader] The \glostyle{super3colheader} style is like
-%\glostyle{super3col} but has a header row.
-%
-%\item[super3colheaderborder] The \glostyle{super3colheaderborder} style
-%is like \glostyle{super3colheader} but has horizontal and vertical
-%lines around it.
-%
-%\item[super4col] The \glostyle{super4col} style is like
-%\glostyle{super3col} but has an additional column in which the
-%entry's associated symbol appears. This style is designed for
-%entries with brief single line descriptions. The column widths are governed by the
-%widest entry in the given column. Use \glostyle{altsuper4col}
-%for multi-line descriptions.
-%
-%\item[super4colborder] The \glostyle{super4colborder} style is like
-%the \glostyle{super4col} style but has horizontal and vertical
-%lines around it.
-%
-%\item[super4colheader] The \glostyle{super4colheader} style is like
-%\glostyle{super4col} but has a header row.
-%
-%\item[super4colheaderborder] The \glostyle{super4colheaderborder} style
-%is like \glostyle{super4colheader} but has horizontal and vertical
-%lines around it.
-%
-%\item[altsuper4col] The \glostyle{altsuper4col} style is like
-%\glostyle{super4col} but allows multi-line descriptions and page
-%lists.
-%The width of the description column is governed by the length
-%\ics{glsdescwidth} and the width of the page list column is
-%governed by the length \ics{glspagelistwidth}. The width of the name
-%and symbol columns is governed by the widest entry in the
-%given column.
-%
-%\item[altsuper4colborder] The \glostyle{altsuper4colborder} style is like
-%the \glostyle{super4colborder} style but allows multi-line descriptions
-%and page lists.
-%
-%\item[altsuper4colheader] The \glostyle{altsuper4colheader} style is like
-%\glostyle{super4colheader} but allows multi-line descriptions and
-%page lists.
-%
-%\item[altsuper4colheaderborder] The \glostyle{altsuper4colheaderborder}
-%style is like \glostyle{super4colheaderborder} but allows multi-line
-%descriptions and page lists.
-%\end{description}
-%
-%
-%\subsubsection{Supertabular Styles (Ragged Right)}
-%\label{sec:superraggedstyles}
-%
-%The styles described in this section are all defined in the package
-%\sty{glossary-superragged}. These styles are analogous to those
-%defined in \sty{glossary-super} but the multiline columns are left
-%justified instead of fully justified. Since these styles all use the
-%\env{supertabular} environment, they are governed by the same
-%parameters as that environment. The \sty{glossary-superragged}
-%package additionally requires the \sty{array} package. Note that
-%these styles will only be available if you explicitly load
-%\sty{glossary-superragged}:
-%\begin{verbatim}
-%\usepackage{glossaries}
-%\usepackage{glossary-superragged}
-%\end{verbatim}
-%Note that you can't set these styles using the \pkgopt{style}
-%package option since the styles aren't defined until after
-%the \styfmt{glossaries} package has been loaded.
-%
-%\begin{description}
-%\item[superragged] The \glostyle{superragged} style uses the
-%\env{supertabular} environment (defined by the
-%\sty{supertabular} package). It has two columns: the first column
-%contains the entry's name and the second column contains the (left
-%justified) description followed by the \term{number list}. The
-%entry's symbol is ignored. Sub groups are separated with a blank
-%row. The width of the first column is governed by the widest entry
-%in that column. The width of the second column is governed by the
-%length \ics{glsdescwidth}. Child entries have a similar format to
-%the parent entries except that their name is suppressed.
-%
-%\item[superraggedborder] The \glostyle{superraggedborder} style is
-%like \glostyle{superragged} but has horizontal and vertical lines
-%around it.
-%
-%\item[superraggedheader] The \glostyle{superraggedheader} style is
-%like \glostyle{superragged} but has a header row.
-%
-%\item[superraggedheaderborder] The
-%\glostyle{superraggedheaderborder} style is like
-%\glostyle{superraggedheader} but has horizontal and vertical lines
-%around it.
-%
-%\item[superragged3col] The \glostyle{superragged3col} style is like
-%\glostyle{superragged} but has three columns. The first column
-%contains the entry's name, the second column contains the (left
-%justified) description and the third column contains the (left
-%justified) \term{number list}. The entry's symbol is ignored. The
-%width of the first column is governed by the widest entry in that
-%column. The width of the second column is governed by the length
-%\ics{glsdescwidth}. The width of the third column is governed by the
-%length \ics{glspagelistwidth}.
-%
-%\item[superragged3colborder] The \glostyle{superragged3colborder}
-%style is like the \glostyle{superragged3col} style but has
-%horizontal and vertical lines around it.
-%
-%\item[superragged3colheader] The \glostyle{superragged3colheader}
-%style is like \glostyle{superragged3col} but has a header row.
-%
-%\item[superragged3colheaderborder] The
-%\glostyle{superragged3colheaderborder} style is like
-%\glostyle{superragged3colheader} but has horizontal and vertical
-%lines around it.
-%
-%\item[altsuperragged4col] The \glostyle{altsuperragged4col} style is
-%like \glostyle{superragged3col} but has an additional column in
-%which the entry's associated symbol appears. The column widths for
-%the name and symbol column are governed by the widest entry in the
-%given column.
-%
-%\item[altsuperragged4colborder] The
-%\glostyle{altsuperragged4colborder} style is like the
-%\glostyle{altsuperragged4col} style but has horizontal and vertical
-%lines around it.
-%
-%\item[altsuperragged4colheader] The
-%\glostyle{altsuperragged4colheader} style is like
-%\glostyle{altsuperragged4col} but has a header row.
-%
-%\item[altsuperragged4colheaderborder] The
-%\glostyle{altsuperragged4colheaderborder} style is like
-%\glostyle{altsuperragged4colheader} but has horizontal and vertical
-%lines around it.
-%
-%\end{description}
-%
-%
-%\subsubsection{Tree-Like Styles}
-%\label{sec:treestyles}
-%
-%The styles described in this section are all defined in the package
-%\sty{glossary-tree}. These styles are designed for hierarchical
-%glossaries but can also be used with glossaries that don't have
-%sub-entries. These styles will display the entry's symbol if it
-%exists. Note that these styles will automatically be available
-%unless you use the \pkgopt{notree} or \pkgopt{nostyles} package
-%options.
-%
-%\begin{description}
-%\item[index] The \glostyle{index} style is similar to the way
-%indices are usually formatted in that it has a hierarchical
-%structure up to three levels (the main level plus two sub-levels).
-%The name is typeset in bold, and if the symbol is present it is set
-%in parentheses after the name and before the description.
-%Sub-entries are indented and also include the name, the symbol
-%in brackets (if present) and the description. Groups are separated
-%using \ics{indexspace}.
-%
-%\item[indexgroup] The \glostyle{indexgroup} style is similar to
-%the \glostyle{index} style except that each group has a heading.
-%
-%\item[indexhypergroup] The \glostyle{indexhypergroup} style is like
-%\glostyle{indexgroup} but has a set of links to the glossary
-%groups. The navigation line is the same as that for
-%\glostyle{listhypergroup}, described above.
-%
-%\item[tree] The \glostyle{tree} style is similar to the
-%\glostyle{index} style except that it can have arbitrary levels.
-%(Note that \app{makeindex} is limited to three levels, so
-%you will need to use \app{xindy} if you want more than
-%three levels.) Each sub-level is indented by
-%\DescribeMacro{\glstreeindent}\cs{glstreeindent}. Note that the
-%name, symbol (if present) and description are placed in the
-%same paragraph block. If you want the name to be apart from the
-%description, use the \glostyle{alttree} style instead. (See below.)
-%
-%\item[treegroup] The \glostyle{treegroup} style is similar to
-%the \glostyle{tree} style except that each group has a heading.
-%
-%\item[treehypergroup] The \glostyle{treehypergroup} style is like
-%\glostyle{treegroup} but has a set of links to the glossary
-%groups. The navigation line is the same as that for
-%\glostyle{listhypergroup}, described above.
-%
-%\item[treenoname] The \glostyle{treenoname} style is like
-%the \glostyle{tree} style except that the name for each sub-entry
-%is ignored.
-%
-%\item[treenonamegroup] The \glostyle{treenonamegroup} style is
-%similar to the \glostyle{treenoname} style except that each group
-%has a heading.
-%
-%\item[treenonamehypergroup] The \glostyle{treenonamehypergroup}
-%style is like \glostyle{treenonamegroup} but has a set of links to
-%the glossary groups. The navigation line is the same as that for
-%\glostyle{listhypergroup}, described above.
-%
-%\item[alttree] The \glostyle{alttree} style is similar to the
-%\glostyle{tree} style except that the indentation for each level
-%is determined by the width of the text specified by
-%\begin{definition}[\DescribeMacro{\glssetwidest}]
-%\cs{glssetwidest}\oarg{level}\marg{text}
-%\end{definition}
-%The optional argument \meta{level} indicates the level, where
-%0 indicates the top-most level, 1 indicates the first level
-%sub-entries, etc. If \cs{glssetwidest} hasn't been used for a
-%given sub-level, the level~0 widest text is used instead. If
-%\meta{level} is omitted, 0 is assumed.
-%
-%For each level, the name is placed to the left of the paragraph
-%block containing the symbol (optional) and the description. If the
-%symbol is present, it is placed in parentheses before the
-%description.
-%
-%\item[alttreegroup] The \glostyle{alttreegroup} is like the
-%\glostyle{alttree} style except that each group has a heading.
-%
-%\item[alttreehypergroup] The \glostyle{alttreehypergroup} style is
-%like \glostyle{alttreegroup} but has a set of links to the glossary
-%groups. The navigation line is the same as that for
-%\glostyle{listhypergroup}, described above.
-%
-%\end{description}
-%
-%
-%
-%\subsection{Defining your own glossary style}
-%\label{sec:newglossarystyle}
-%
-%If the predefined styles don't fit your requirements, you can
-%define your own style using:
-%\begin{definition}[\DescribeMacro{\newglossarystyle}]
-%\cs{newglossarystyle}\marg{name}\marg{definitions}
-%\end{definition}
-%where \meta{name} is the name of the new glossary style (to be
-%used in \cs{glossarystyle}). The second argument \meta{definitions}
-%needs to redefine all of the following:
-%
-%\begin{definition}[\DescribeEnv{theglossary}]
-%\env{theglossary}
-%\end{definition}
-%This environment defines how the main body of the glossary should
-%be typeset. Note that this does not include the section heading,
-%the glossary preamble (defined by \cs{glossarypreamble}) or the
-%glossary postamble (defined by \cs{glossarypostamble}). For example,
-%the \glostyle{list} style uses the \env{description} environment,
-%so the \env{theglossary} environment is simply redefined to begin
-%and end the \env{description} environment.
-%
-%\begin{definition}[\DescribeMacro{\glossaryheader}]
-%\cs{glossaryheader}
-%\end{definition}
-%This macro indicates what to do at the start of the main body
-%of the glossary. Note that this is not the same as
-%\cs{glossarypreamble}, which should not be affected by changes in
-%the glossary style. The \glostyle{list} glossary style redefines
-%\cs{glossaryheader} to do nothing, whereas the \glostyle{longheader}
-%glossary style redefines \cs{glossaryheader} to do a header row.
-%
-%\begin{definition}[\DescribeMacro{\glsgroupheading}]
-%\cs{glsgroupheading}\marg{label}
-%\end{definition}
-%This macro indicates
-%what to do at the start of each logical block within the main body
-%of the glossary. If you use \app{makeindex} the glossary is
-%sub-divided into a maximum of twenty-eight logical blocks that are
-%determined by the first character of the \gloskey{sort} key (or
-%\gloskey{name} key if the \gloskey{sort} key is omitted). The
-%sub-divisions are in the following order: symbols, numbers, A,
-%\ldots, Z\@. If you use \app{xindy}, the sub-divisions depend on
-%the language settings.
-%
-%Note that the argument to \cs{glsgroupheading}
-%is a label \emph{not} the group title. The group title can be obtained
-%via
-%\begin{definition}[\DescribeMacro{\glsgetgrouptitle}]
-%\cs{glsgetgrouptitle}\marg{label}
-%\end{definition}
-%This obtains the title as follows: if
-%\cs{}\meta{label}\texttt{groupname} exists, this is taken to be the
-%title, otherwise the title is just \meta{label}.
-%
-%A navigation hypertarget can be created using
-%\begin{definition}[\DescribeMacro{\glsnavhypertarget}]
-%\cs{glsnavhypertarget}\marg{label}\marg{text}
-%\end{definition}
-%For further details about \cs{glsnavhypertarget}, see
-%\ifpdf\sectionref{sec:code:hypernav}\else the documented code of
-%\sty{glossary-hypernav} in \texttt{glossaries.pdf}\fi.
-%
-%
-%Most of the predefined glossary styles redefine \cs{glsgroupheading}
-%to simply ignore its argument. The \glostyle{listhypergroup} style
-%redefines \cs{glsgroupheading} as follows:
-%\begin{verbatim}
-%\renewcommand*{\glsgroupheading}[1]{%
-%\item[\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}]}
-%\end{verbatim}
-%See also \cs{glsgroupskip} below. (Note that command definitions within
-%\cs{newglossarystyle} must use \verb|##1| instead of \verb|#1| etc.)
-%
-%\begin{definition}[\DescribeMacro{\glsgroupskip}]
-%\cs{glsgroupskip}
-%\end{definition}
-%This macro determines what to do after one logical group but before
-%the header for the next logical group. The \glostyle{list} glossary
-%style simply redefines \cs{glsgroupskip} to be \cs{indexspace},
-%whereas the tabular-like styles redefine \cs{glsgroupskip} to
-%produce a blank row.
-%
-%\begin{definition}[\DescribeMacro{\glossaryentryfield}]
-%\cs{glossaryentryfield}\marg{label}\marg{formatted
-%name}\marg{description}\marg{symbol}
-%\marg{number list}
-%\end{definition}
-%This macro indicates what to do for a given glossary entry.
-%Note that \meta{formatted name} will always be in the form
-%\cs{glsnamefont}\marg{name}. This allows the user to set a given
-%font for the entry name, regardless of the glossary style used.
-%Note that \meta{label} is the label used when the glossary entry
-%was defined via either \cs{newglossaryentry} or \cs{newacronym}.
-%
-%Each time you use a glossary entry it creates a hyperlink (if
-%hyperlinks are enabled) to the relevant line in the glossary.
-%Your new glossary style must therefore redefine
-%\cs{glossaryentryfield} to set the appropriate target. This
-%is done using
-%\begin{definition}[\DescribeMacro{\glstarget}]
-%\cs{glstarget}\marg{label}\marg{text}
-%\end{definition}
-%where \meta{label} is the entry's label. Note that you
-%don't need to worry about whether the \sty{hyperref} package has
-%been loaded, as \cs{glstarget} won't create a target if
-%\cs{hypertarget} hasn't been defined.
-%
-%For example, the
-%\glostyle{list} style defines \cs{glossaryentryfield} as follows:
-%\begin{verbatim}
-%\renewcommand*{\glossaryentryfield}[5]{%
-%\item[\glstarget{##1}{##2}] ##3\glspostdescription\space ##5}
-%\end{verbatim}
-%
-%Note also that \meta{number list} will always be of the form\\[10pt]
-%\cs{glossaryentrynumbers}\{\cs{relax}\\
-%\cs{setentrycounter}\marg{counter name}\cs{glsnumberformat}\marg{number(s)}\}\\[10pt]
-%where \meta{number(s)}
-%may contain \cs{delimN} (to delimit individual numbers) and/or
-%\cs{delimR} (to indicate a range of numbers). There may be
-%multiple occurrences of
-%\cs{setentrycounter}\marg{counter name}\cs{glsnumberformat}\marg{number(s)}, but note
-%that the entire number list is enclosed within the argument
-%to \ics{glossaryentrynumbers}. The user can redefine this to change
-%the way the entire number list is formatted, regardless of
-%the glossary style. However the most common use of
-%\cs{glossaryentrynumbers} is to provide a means of suppressing the
-%number list altogether. (In fact, the \pkgopt{nonumberlist} option
-%redefines \cs{glossaryentrynumbers} to ignore its argument.)
-%Therefore, when you define a new glossary style, you don't need
-%to worry about whether the user has specified the
-%\pkgopt{nonumberlist} package option.
-%
-%\begin{definition}[\DescribeMacro{\glossarysubentryfield}]
-%\cs{glossarysubentryfield}\marg{level}\marg{label}\marg{formatted
-%name}\marg{description}\marg{symbol}
-%\marg{number list}
-%\end{definition}
-%This is new to version 1.17, and is used to display sub-entries.
-%The first argument, \meta{level}, indicates the sub-entry level.
-%This must be an integer from 1 (first sub-level) onwards. The
-%remaining arguments are analogous to those for
-%\ics{glossaryentryfield} described above.
-%
-%For further details of these commands, see
-%\ifpdf\sectionref{sec:code:printglos}\else the documented code in
-%\texttt{glossaries.pdf}\fi.
-%
-%\subsubsection{Example: creating a completely new style}
-%
-%If you want a completely new style, you will need to redefine all
-%of the commands and the environment listed above.
-%
-%For example, suppose you want each entry to start with a bullet point.
-%This means that the glossary should be placed in the \env{itemize}
-%environment, so \env{theglossary} should start and end that
-%environment. Let's also suppose that you don't want anything between
-%the glossary groups (so \ics{glsgroupheading} and \ics{glsgroupskip}
-%should do nothing) and suppose you don't want anything to appear
-%immediately after \verb|\begin{theglossary}| (so \ics{glossaryheader}
-%should do nothing). In addition, let's suppose the symbol should
-%appear in brackets after the name, followed by the description and
-%last of all the \term{number list} should appear within square brackets
-%at the end. Then you can create this new glossary style, called, say,
-%\texttt{mylist}, as follows:
-%\begin{verbatim}
-% \newglossarystyle{mylist}{%
-% % put the glossary in the itemize environment:
-% \renewenvironment{theglossary}{\begin{itemize}}{\end{itemize}}%
-% % have nothing after \begin{theglossary}:
-% \renewcommand*{\glossaryheader}{}%
-% % have nothing between glossary groups:
-% \renewcommand*{\glsgroupheading}[1]{}%
-% \renewcommand*{\glsgroupskip}{}%
-% % set how each entry should appear:
-% \renewcommand*{\glossaryentryfield}[5]{%
-% \item % bullet point
-% \glstarget{##1}{##2}% the entry name
-% \space (##4)% the symbol in brackets
-% \space ##3% the description
-% \space [##5]% the number list in square brackets
-% }%
-% % set how sub-entries appear:
-% \renewcommand*{\glossarysubentryfield}[6]{%
-% \glossaryentryfield{##2}{##3}{##4}{##5}{##6}}%
-% }
-%\end{verbatim}
-%Note that this style creates a flat glossary, where sub-entries
-%are displayed in exactly the same way as the top level entries.
-%
-%
-%\subsubsection{Example: creating a new glossary style based on an
-%existing style}
-%
-%\changes{1.11}{2008 March 1}{Fixed error in manual (glossary style
-%is set using \cs{glossarystyle} not \cs{setglossarystyle})}%
-%If you want to define a new style that is a slightly modified
-%version of an existing style, you can use \cs{glossarystyle}
-%within the second argument of \cs{newglossarystyle} followed by
-%whatever alterations you require. For example, suppose you want
-%a style like the \glostyle{list} style but you don't want the extra
-%vertical space created by \cs{indexspace} between groups, then you
-%can create a new glossary style called, say, \texttt{mylist} as
-%follows:
-%\begin{verbatim}
-%\newglossarystyle{mylist}{%
-%\glossarystyle{list}% base this style on the list style
-%\renewcommand{\glsgroupskip}{}% make nothing happen between groups
-%}
-%\end{verbatim}
-%
-%
-%\subsubsection{Example: creating a glossary style that uses the
-%\gloskey{user1}, \ldots, \gloskey{user6} keys}
-%
-%Since \ics{glossaryentryfield} and \ics{glossarysubentryfield}
-%provide the label for the entry, it's also possible to access
-%the values of the generic user keys, such as \gloskey{user1}. For
-%example, suppose each entry not only has an associated symbol,
-%but also units (stored in \gloskey{user1}) and dimension
-%(stored in \gloskey{user2}). Then you can define a glossary style
-%that displays each entry in a \env{longtable} as follows:
-%\begin{verbatim}
-%\newglossarystyle{long6col}{%
-% % put the glossary in a longtable environment:
-% \renewenvironment{theglossary}%
-% {\begin{longtable}{lp{\glsdescwidth}cccp{\glspagelistwidth}}}%
-% {\end{longtable}}%
-% % Set the table's header:
-% \renewcommand*{\glossaryheader}{%
-% \bfseries Term & \bfseries Description & \bfseries Symbol &
-% \bfseries Units & \bfseries Dimensions & \bfseries Page List
-% \\\endhead}%
-% % No heading between groups:
-% \renewcommand*{\glsgroupheading}[1]{}%
-% % Main (level 0) entries displayed in a row:
-% \renewcommand*{\glossaryentryfield}[5]{%
-% \glstarget{##1}{##2}% Name
-% & ##3% Description
-% & ##4% Symbol
-% & \glsentryuseri{##1}% Units
-% & \glsentryuserii{##1}% Dimensions
-% & ##5% Page list
-% \\% end of row
-% }%
-% % Sub entries treated the same as level 0 entries:
-% \renewcommand*{\glossarysubentryfield}[6]{%
-% \glossaryentryfield{##2}{##3}{##4}{##5}{##6}}%
-% % Nothing between groups:
-% \renewcommand*{\glsgroupskip}{}%
-%}
-%\end{verbatim}
-%
-%
-%\subsection{Accessibility Support}\label{sec:accsupp}
-%Limited accessibility support is provided by the accompanying
-%\sty{glossaries-accsupp} package, but note that this package is
-%experimental and it requires the \sty{accsupp} package
-%which is also listed as experimental. This package defines
-%additional keys that may be used when defining glossary entries.
-%The keys are as follows:
-%\begin{description}
-%\item[{\gloskey{access}}] The replacement text corresponding to
-%the \gloskey{name} key.
-%
-%\item[{\gloskey{textaccess}}] The replacement text corresponding
-%to the \gloskey{text} key.
-%
-%\item[{\gloskey{firstaccess}}] The replacement text corresponding
-%to the \gloskey{first} key.
-%
-%\item[{\gloskey{pluralaccess}}] The replacement text corresponding
-%to the \gloskey{plural} key.
-%
-%\item[{\gloskey{firstpluralaccess}}] The replacement text corresponding
-%to the \gloskey{firstplural} key.
-%
-%\item[{\gloskey{symbolaccess}}] The replacement text corresponding
-%to the \gloskey{symbol} key.
-%
-%\item[{\gloskey{symbolpluralaccess}}] The replacement text corresponding
-%to the \gloskey{symbolplural} key.
-%
-%\item[{\gloskey{descriptionaccess}}] The replacement text corresponding
-%to the \gloskey{description} key.
-%
-%\item[{\gloskey{descriptionpluralaccess}}] The replacement text corresponding
-%to the \gloskey{descriptionplural} key.
-%
-%\end{description}
-%
-%For example:
-%\begin{verbatim}
-%\newglossaryentry{tex}{name={\TeX},description={Document preparation
-%language},access={TeX}}
-%\end{verbatim}
-%Now \verb|\gls{tex}| will be equivalent to
-%\begin{verbatim}
-%\BeginAccSupp{ActualText=TeX}\TeX\EndAccSupp{}
-%\end{verbatim}
-%See \ifpdf \sectionref{sec:code:accsupp} \else the section
-%\qt{glossaries-accsupp code} in the document \texttt{glossaries.pdf}
-%\fi for further details. It is recommended that you also read the
-%\sty{accsupp} documentation.
-%
-%\section{Mfirstuc Package}
-%\label{sec:mfirstuc}
-%
-%The \styfmt{glossaries} bundle is supplied with the package
-%\sty{mfirstuc} which provides the command:
-%\begin{definition}[\DescribeMacro{\makefirstuc}]
-%\cs{makefirstuc}\marg{stuff}
-%\end{definition}
-%which makes the first object of
-%\meta{stuff} uppercase unless \meta{stuff} starts with a control
-%sequence followed by a non-empty group, in which case the first
-%object in the group is converted to uppercase. Examples:
-%\begin{itemize}
-%\item \verb|\makefirstuc{abc}| produces Abc
-%
-%\item \verb|\makefirstuc{\emph{abc}}| produces \emph{Abc}
-%(\ics{MakeUppercase} has been applied to the letter \qt{a} rather
-%than \cs{emph}.) Note however that
-%\verb|\makefirstuc{{\em abc}}| produces \emph{ABC} and
-%\verb|{\makefirstuc{\em abc}}| produces abc.
-%
-%\item \verb|\makefirstuc{{\'a}bc}| produces \MakeUppercase{\'a}bc
-%
-%\item \verb|\makefirstuc{\ae bc}| produces \MakeUppercase{\ae}bc
-%
-%\item \verb|\makefirstuc{{\ae}bc}| produces \MakeUppercase{\ae}bc
-%
-%\item \verb|\makefirstuc{{ä}bc}| produces \MakeUppercase{ä}bc
-%
-%\end{itemize}
-%Note that non-Latin or accented characters appearing at the
-%start of the text must be placed in a group (even if you are
-%using the \sty{inputenc} package) due to expansion issues.
-%
-%\begin{important}
-%In version 1.02 of \styfmt{mfirstuc}, a bug fix resulted in a change
-%in output if the first object is a control sequence followed by
-%an empty group. Prior to version 1.02, \verb|\makefirstuc{\ae{}bc}|
-%produced \ae Bc. However as from version 1.02, it now produces
-%\AE bc.
-%\end{important}
-%
-%Note also that
-%\begin{verbatim}
-%\newcommand{\abc}{abc}
-%\makefirstuc{\abc}
-%\end{verbatim}
-%produces: ABC. This is because the first object in the argument of
-%\cs{makefirstuc} is \cs{abc}, so it does \verb|\MakeUppercase\abc|.
-%Whereas:
-%\begin{verbatim}
-%\newcommand{\abc}{abc}
-%\expandafter\makefirstuc\expandafter{\abc}
-%\end{verbatim}
-%produces: Abc. There is a short cut command which will do this:\\[10pt]
-%\begin{definition}[\DescribeMacro{\xmakefirstuc}]
-%\cs{xmakefirstuc}\marg{stuff}
-%\end{definition}
-%This is equivalent to \cs{expandafter}\cs{makefirstuc}\cs{expandafter}\marg{stuff}. So
-%\begin{verbatim}
-%\newcommand{\abc}{abc}
-%\xmakefirstuc{\abc}
-%\end{verbatim}
-%produces: Abc.
-%
-%If you want to use an alternative command to convert to uppercase,
-%for example \cs{MakeTextUppercase},\footnote{defined in the
-%\styfmt{textcase} package} you can redefine the internal
-%command \cs{@gls@makefirstuc}. For example:
-%\begin{verbatim}
-%\renewcommand{\@gls@makefirstuc}[1]{\MakeTextUppercase #1}
-%\end{verbatim}
-%(Remember that command names that contain the @ character must
-%either be placed in packages or be placed between \cs{makeatletter}
-%and \cs{makeatother}.)
-%
-%
+%\clearpage
+%\tableofcontents
%
%\StopEventually{%
% \clearpage\phantomsection
@@ -5134,7 +161,7 @@
%
%
%
-%\section{Glossaries Documented Code}
+%\section{Main Package Code}
%\iffalse
% \begin{macrocode}
%<*glossaries.sty>
@@ -5145,7 +172,7 @@
% This package requires \LaTeXe.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossaries}[2010/07/10 v2.07 (NLCT)]
+\ProvidesPackage{glossaries}[2011/04/02 v3.0 (NLCT)]
% \end{macrocode}
% Required packages:
% \begin{macrocode}
@@ -5163,6 +190,11 @@
% \begin{macrocode}
\RequirePackage{amsgen}
% \end{macrocode}
+%\changes{3.0}{2011/04/02}{etoolbox now loaded}
+% As from v3.0, now loading \sty{etoolbox}:
+% \begin{macrocode}
+\RequirePackage{etoolbox}
+% \end{macrocode}
%
% \subsection{Package Options}\label{sec:pkgopt}
%\begin{option}{toc}
@@ -5183,14 +215,17 @@
% \end{macrocode}
%\end{option}
%
+%\begin{macro}{\@@glossarysec}
% The sectional unit used to start the glossary is stored in
% \cs{@@glossarysec}. If chapters are defined, this
% is initialised to \texttt{chapter}, otherwise it is
% initialised to \texttt{section}.
-%\begin{macro}{\@@glossarysec}
+%\changes{3.0}{2011/04/02}{replaced \cs{@ifundefined} with
+%\cs{ifcsundef}}
% \begin{macrocode}
-\@ifundefined{chapter}{\newcommand*{\@@glossarysec}{section}}{%
- \newcommand*{\@@glossarysec}{chapter}}
+\ifcsundef{chapter}%
+ {\newcommand*{\@@glossarysec}{section}}%
+ {\newcommand*{\@@glossarysec}{chapter}}
% \end{macrocode}
%\end{macro}
%
@@ -5294,6 +329,24 @@ false,nolabel,autolabel}[nolabel]{%
% \end{macrocode}
%\end{option}
%
+%\begin{macro}{\@glo@seeautonumberlist}
+% \begin{macrocode}
+\newcommand*\@glo@seeautonumberlist{}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{option}{seeautonumberlist}
+% Automatically activates number list for entries containing the
+% \gloskey{see} key.
+%\changes{3.0}{2011/04/02}{new}
+% \begin{macrocode}
+\DeclareOptionX{seeautonumberlist}{%
+ \renewcommand*{\@glo@seeautonumberlist}{%
+ \def\@glo@prefix{\glsnextpages}%
+ }%
+}
+% \end{macrocode}
+%\end{option}
%\begin{macro}{\@gls@loadlong}
%\changes{1.18}{2009 January 14}{new}
% \begin{macrocode}
@@ -5384,6 +437,202 @@ false,nolabel,autolabel}[nolabel]{%
% \end{macrocode}
%\end{option}
%
+%\begin{option}{entrycounter}
+% Defines a counter that can be used in the standard glossary styles
+% to number each (main) entry. If true, this will define a counter called
+% \ctr{glossaryentry}.
+%\changes{3.0}{2011/04/02}{new}
+% \begin{macrocode}
+\define@boolkey{glossaries.sty}[gls]{entrycounter}[true]{}
+\glsentrycounterfalse
+% \end{macrocode}
+%\end{option}
+%
+%\begin{option}{entrycounterwithin}
+% This option can be used to set a parent counter for
+% \ctr{glossaryentry}. This option automatically sets
+% \pkgopt[true]{entrycounter}.
+%\changes{3.0}{2011/04/02}{new}
+% \begin{macrocode}
+\define@key{glossaries.sty}{counterwithin}{%
+ \renewcommand*{\@gls@counterwithin}{#1}%
+ \glsentrycountertrue
+}
+% \end{macrocode}
+%\end{option}
+%\begin{macro}{\@gls@counterwithin}
+%\changes{3.0}{2011/04/02}{new}
+% The default value is no parent counter:
+% \begin{macrocode}
+\newcommand*{\@gls@counterwithin}{}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{option}{subentrycounter}
+% Define a counter that can be used in the standard glossary styles
+% to number each level~1 entry. If true, this will define a counter called
+% \ctr{glossarysubentry}.
+%\changes{3.0}{2011/04/02}{new}
+% \begin{macrocode}
+\define@boolkey{glossaries.sty}[gls]{subentrycounter}[true]{}
+\glssubentrycounterfalse
+% \end{macrocode}
+%\end{option}
+%
+%\begin{option}{sort}
+%\changes{3.0}{2011/04/02}{new}
+% Define the sort method: \pkgopt[standard]{sort} (default),
+% \pkgopt[def]{sort} (order of definition) or
+% \pkgopt[use]{sort} (order of use).
+% \begin{macrocode}
+\define@choicekey{glossaries.sty}{sort}{standard,def,use}{%
+ \csname @gls@setupsort@#1\endcsname
+}
+% \end{macrocode}
+%\end{option}
+%\begin{macro}{\@gls@setupsort@standard}
+%\changes{3.0}{2011/04/02}{new}
+% Set up the macros for default sorting.
+% \begin{macrocode}
+\newcommand*{\@gls@setupsort@standard}{%
+% \end{macrocode}
+% Store entry information when it's defined.
+% \begin{macrocode}
+ \def\do@glo@storeentry{\@glo@storeentry}%
+% \end{macrocode}
+% No count register required for standard sort.
+% \begin{macrocode}
+ \def\@gls@defsortcount##1{}%
+% \end{macrocode}
+% Sort according to sort key (\cs{@glo@sort}) if provided otherwise
+% sort according to the entry's name (\cs{@glo@name}).
+% \begin{macrocode}
+ \def\@gls@defsort##1##2{%
+ \ifx\@glo@sort\@glsdefaultsort
+ \let\@glo@sort\@glo@name
+ \fi
+ \@onelevel@sanitize\@glo@sort
+ \expandafter\protected@xdef\csname glo@##2@sort\endcsname{\@glo@sort}%
+ }%
+% \end{macrocode}
+% Don't need to do anything when the entry is used.
+% \begin{macrocode}
+ \def\@gls@setsort##1{}%
+}
+% \end{macrocode}
+% Set standard sort as the default:
+% \begin{macrocode}
+\@gls@setupsort@standard
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\glssortnumberfmt}
+%\changes{3.0}{2011/04/02}{new}
+% Format the number used as the sort key by \pkgopt[def]{sort} and
+% \pkgopt[use]{sort}. Defaults to six digit numbering.
+% \begin{macrocode}
+\newcommand*\glssortnumberfmt[1]{%
+ \ifnum#1<100000 0\fi
+ \ifnum#1<10000 0\fi
+ \ifnum#1<1000 0\fi
+ \ifnum#1<100 0\fi
+ \ifnum#1<10 0\fi
+ \number#1%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\@gls@setupsort@def}
+%\changes{3.0}{2011/04/02}{new}
+% Set up the macros for order of definition sorting.
+% \begin{macrocode}
+\newcommand*{\@gls@setupsort@def}{%
+% \end{macrocode}
+% Store entry information when it's defined.
+% \begin{macrocode}
+ \def\do@glo@storeentry{\@glo@storeentry}%
+% \end{macrocode}
+% Defined count register associated with the glossary.
+% \begin{macrocode}
+ \def\@gls@defsortcount##1{%
+ \expandafter\global
+ \expandafter\newcount\csname glossary@##1@sortcount\endcsname
+ }%
+% \end{macrocode}
+% Increment count register associated with the glossary and use as
+% the sort key.
+% \begin{macrocode}
+ \def\@gls@defsort##1##2{%
+ \expandafter\global\expandafter
+ \advance\csname glossary@##1@sortcount\endcsname by 1\relax
+ \expandafter\protected@xdef\csname glo@##2@sort\endcsname{%
+ \expandafter\glssortnumberfmt
+ {\csname glossary@##1@sortcount\endcsname}}%
+ }%
+% \end{macrocode}
+% Don't need to do anything when the entry is used.
+% \begin{macrocode}
+ \def\@gls@setsort##1{}%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\@gls@setupsort@use}
+%\changes{3.0}{2011/04/02}{new}
+% Set up the macros for order of use sorting.
+% \begin{macrocode}
+\newcommand*{\@gls@setupsort@use}{%
+% \end{macrocode}
+% Don't store entry information when it's defined.
+% \begin{macrocode}
+ \let\do@glo@storeentry\@gobble
+% \end{macrocode}
+% Defined count register associated with the glossary.
+% \begin{macrocode}
+ \def\@gls@defsortcount##1{%
+ \expandafter\global
+ \expandafter\newcount\csname glossary@##1@sortcount\endcsname
+ }%
+% \end{macrocode}
+% Initialise the sort key to empty.
+% \begin{macrocode}
+ \def\@gls@defsort##1##2{%
+ \expandafter\gdef\csname glo@##2@sort\endcsname{}%
+ }%
+% \end{macrocode}
+% If the sort key hasn't been set, increment the counter associated
+% with the glossary and set the sort key.
+% \begin{macrocode}
+ \def\@gls@setsort##1{%
+% \end{macrocode}
+% Get the parent, if one exists
+% \begin{macrocode}
+ \edef\@glo@parent{\csname glo@##1@parent\endcsname}%
+% \end{macrocode}
+% Set the information for the parent entry if not already done.
+% \begin{macrocode}
+ \ifx\@glo@parent\@empty
+ \else
+ \expandafter\@gls@setsort\expandafter{\@glo@parent}%
+ \fi
+% \end{macrocode}
+% Set index information for this entry
+% \begin{macrocode}
+ \edef\@glo@type{\csname glo@##1@type\endcsname}%
+ \edef\@gls@tmp{\csname glo@##1@sort\endcsname}%
+ \ifx\@gls@tmp\@empty
+ \expandafter\global\expandafter
+ \advance\csname glossary@\@glo@type @sortcount\endcsname by 1\relax
+ \expandafter\protected@xdef\csname glo@##1@sort\endcsname{%
+ \expandafter\glssortnumberfmt
+ {\csname glossary@\@glo@type @sortcount\endcsname}}%
+ \@glo@storeentry{##1}%
+ \fi
+ }%
+}
+% \end{macrocode}
+%\end{macro}
+%
%\begin{macro}{\glsdefmain}
%\changes{2.01}{2009 May 30}{new}
% Define the main glossary. This will be the first glossary to
@@ -5807,8 +1056,10 @@ name=true]{%
%\begin{macro}{\gls@codepage}
% Define the code page. If \ics{inputencodingname} is defined
% use that, otherwise have initialise with no codepage.
+%\changes{3.0}{2011/04/02}{replaced \cs{@ifundefined} with
+%\cs{ifcsundef}}
% \begin{macrocode}
-\@ifundefined{inputencodingname}{%
+\ifcsundef{inputencodingname}{%
\def\gls@codepage{}}{%
\def\gls@codepage{\inputencodingname}
}
@@ -5828,6 +1079,19 @@ name=true]{%
}
% \end{macrocode}
%
+%\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]{}
+% \end{macrocode}
+%\end{option}
+% Set default:
+% \begin{macrocode}
+\glssavewritesfalse
+% \end{macrocode}
+%
%\begin{macro}{\GlossariesWarning}
% Prints a warning message.
% \begin{macrocode}
@@ -5851,6 +1115,14 @@ name=true]{%
\renewcommand*{\GlossariesWarningNoLine}[1]{}%
}
% \end{macrocode}
+%\begin{option}{compatible-2.07}
+%\changes{3.0}{2011/04/02}{compatible-2.07 option added}
+% \begin{macrocode}
+\define@boolkey{glossaries.sty}[gls]{compatible-2.07}[true]{}
+\csname glscompatible-2.07false\endcsname
+% \end{macrocode}
+%\end{option}
+%
%
% Process package options:
% \begin{macrocode}
@@ -5881,12 +1153,19 @@ name=true]{%
% will have to specify a different counter for the entries
% that give rise to a \texttt{name}"{"\meta{section-level}"."\meta{n}".0}"
% non-existent warning (e.g. "\gls[counter=chapter]{label}").
+%\changes{3.0}{2011/04/02}{replaced \cs{@ifundefined} with
+%\cs{ifcsundef}}
% \begin{macrocode}
-\ifthenelse{\equal{\glscounter}{section}}{%
-\@ifundefined{chapter}{}{%
-\let\@gls@old@chapter\@chapter
-\def\@chapter[#1]#2{\@gls@old@chapter[{#1}]{#2}%
-\@ifundefined{hyperdef}{}{\hyperdef{section}{\thesection}{}}}}}{}
+\ifthenelse{\equal{\glscounter}{section}}%
+{%
+ \ifcsundef{chapter}{}%
+ {%
+ \let\@gls@old@chapter\@chapter
+ \def\@chapter[#1]#2{\@gls@old@chapter[{#1}]{#2}%
+ \ifcsundef{hyperdef}{}{\hyperdef{section}{\thesection}{}}}%
+ }%
+}%
+{}
% \end{macrocode}
%
%\begin{macro}{\@gls@onlypremakeg}
@@ -6020,9 +1299,12 @@ name=true]{%
% redefine \cs{glossaryname} whenever the language is set, so
% override it. (Don't use \ics{addto} as \isty{polyglossia} doesn't
% define it.)
+%\changes{3.0}{2011/04/02}{replaced \cs{@ifundefined} with
+%\cs{ifcsundef}}
% \begin{macrocode}
\newcommand*{\addglossarytocaptions}[1]{%
- \@ifundefined{captions#1}{}{%
+ \ifcsundef{captions#1}{}%
+ {%
\expandafter\let\expandafter\@gls@tmp\csname captions#1\endcsname
\expandafter\toks@\expandafter{\@gls@tmp
\renewcommand*{\glossaryname}{\translate{Glossary}}%
@@ -6275,10 +1557,12 @@ name=true]{%
% Sets the suffix to use for a three page list.
% \begin{macrocode}
\newcommand*{\glsSetSuffixFF}[1]{%
- \renewcommand*{\gls@suffixFF}{#1}}
+ \renewcommand*{\gls@suffixFF}{#1}%
+}
% \end{macrocode}
%\end{macro}
%
+%\begin{macro}{\glsnumberformat}
% The command \cs{glsnumberformat} indicates the default
% format for the page numbers in the glossary. (Note that this
% is not the same as \ics{glossaryentrynumbers}, but applies
@@ -6286,11 +1570,16 @@ name=true]{%
% associated number list.) If hyperlinks are defined, it will use
% \ics{glshypernumber}, otherwise it will simply display its
% argument ``as is''.
-%\begin{macro}{\glsnumberformat}
+%\changes{3.0}{2011/04/02}{replaced \cs{@ifundefined} with
+%\cs{ifcsundef}}
% \begin{macrocode}
-\@ifundefined{hyperlink}{%
-\newcommand*{\glsnumberformat}[1]{#1}}{%
-\newcommand*{\glsnumberformat}[1]{\glshypernumber{#1}}}
+\ifcsdef{hyperlink}%
+{%
+ \newcommand*{\glsnumberformat}[1]{#1}%
+}%
+{%
+ \newcommand*{\glsnumberformat}[1]{\glshypernumber{#1}}%
+}
% \end{macrocode}
%\end{macro}
%
@@ -6350,6 +1639,7 @@ name=true]{%
% \end{macrocode}
%\end{macro}
%
+%\begin{macro}{\glossarysection}
% The sectioning command that starts a glossary is given by
% \cs{glossarysection}. (This does not form part of the
% glossary style, and so should not be changed by a glossary
@@ -6358,12 +1648,18 @@ name=true]{%
% uses \cs{@glossarysection}.
%\changes{1.05}{2007 Aug 10}{added '@mkboth to 'glossarysection}
%\changes{2.02}{2009 July 13}{changed '@mkboth to 'glossarymark}
-%\begin{macro}{\glossarysection}
+%\changes{3.0}{2011/04/02}{replaced \cs{@ifundefined} with
+%\cs{ifcsundef}}
% \begin{macrocode}
\newcommand*{\glossarysection}[2][\@gls@title]{%
\def\@gls@title{#2}%
- \@ifundefined{phantomsection}{%
- \@glossarysection{#1}{#2}}{\@p@glossarysection{#1}{#2}}%
+ \ifcsundef{phantomsection}%
+ {%
+ \@glossarysection{#1}{#2}%
+ }%
+ {%
+ \@p@glossarysection{#1}{#2}%
+ }%
\glossarymark{\glossarytoctitle}%
}
% \end{macrocode}
@@ -6374,10 +1670,14 @@ name=true]{%
%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}}
% \begin{macrocode}
-\@ifundefined{glossarymark}{%
+\ifcsundef{glossarymark}%
+{%
\newcommand{\glossarymark}[1]{\@mkboth{#1}{#1}}
-}{%
+}%
+{%
\GlossariesWarning{overriding \string\glossarymark}%
\@ifclassloaded{memoir}%
{
@@ -6443,15 +1743,20 @@ name=true]{%
% \end{macrocode}
%\end{macro}
%
+%\begin{macro}{\gls@doclearpage}
%The \cs{gls@doclearpage} command is used to issue a
% \cs{clearpage} (or \cs{cleardoublepage}) depending
% on whether the glossary sectional unit is a chapter. If the
% sectional unit is something else, do nothing.
-%\begin{macro}{\gls@doclearpage}
+%\changes{3.0}{2011/04/02}{replaced \cs{@ifundefined} with
+%\cs{ifcsundef}}
% \begin{macrocode}
\newcommand*{\gls@doclearpage}{%
-\ifthenelse{\equal{\@@glossarysec}{chapter}}{%
-\@ifundefined{cleardoublepage}{\clearpage}{\cleardoublepage}}{}%
+ \ifthenelse{\equal{\@@glossarysec}{chapter}}%
+ {%
+ \ifcsundef{cleardoublepage}{\clearpage}{\cleardoublepage}%
+ }%
+ {}%
}
% \end{macrocode}
%\end{macro}
@@ -6506,6 +1811,15 @@ name=true]{%
\fi
% \end{macrocode}
%\end{macro}
+%\begin{macro}{\@xdyattributelist}
+% Comma-separated list of attributes.
+%\changes{3.0}{2011/04/02}{new}
+% \begin{macrocode}
+\ifglsxindy
+ \edef\@xdyattributelist{}%
+\fi
+% \end{macrocode}
+%\end{macro}
%\begin{macro}{\@xdylocref}
% Define list of markup location references.
% \begin{macrocode}
@@ -6515,21 +1829,130 @@ name=true]{%
% \end{macrocode}
%\end{macro}
%
+%\begin{macro}{\@gls@ifinlist}
+%\changes{3.0}{2011/04/02}{new}
+% \begin{macrocode}
+\newcommand*{\@gls@ifinlist}[4]{%
+ \def\@do@ifinlist##1,#1,##2\end@doifinlist{%
+ \def\@gls@listsuffix{##2}%
+ \ifx\@gls@listsuffix\@empty
+ #4%
+ \else
+ #3%
+ \fi
+ }%
+ \@do@ifinlist,#2,#1,\end@doifinlist
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\GlsAddXdyCounters}
+%\changes{3.0}{2011/04/02}{new}
+% Need to know all the counters that will be used in location
+% numbers for Xindy. Argument may be a single counter name or a
+% comma-separated list of counter names.
+% \begin{macrocode}
+\ifglsxindy
+ \newcommand*{\@xdycounters}{\glscounter}
+ \newcommand*\GlsAddXdyCounters[1]{%
+ \@for\@gls@ctr:=#1\do{%
+% \end{macrocode}
+% Check if already in list before adding.
+% \begin{macrocode}
+ \edef\@do@addcounter{%
+ \noexpand\@gls@ifinlist{\@gls@ctr}{\@xdycounters}{}%
+ {%
+ \noexpand\edef\noexpand\@xdycounters{\@xdycounters,%
+ \noexpand\@gls@ctr}%
+ }%
+ }%
+ \@do@addcounter
+ }
+ }
+% \end{macrocode}
+% Only has an effect before \ics{writeist}:
+% \begin{macrocode}
+ \@onlypremakeg\GlsAddXdyCounters
+\else
+ \newcommand*\GlsAddXdyCounters[1]{%
+ \glsnoxindywarning\GlsAddXdyAttribute
+ }
+\fi
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@disabled@glsaddxdycounters}
+% Counters must all be identified before adding attributes.
+% \begin{macrocode}
+\newcommand*\@disabled@glsaddxdycounters{%
+ \PackageError{glossaries}{\string\GlsAddXdyCounters\space
+ can't be used after \string\GlsAddXdyAttribute}{Move all
+ occurrences of \string\GlsAddXdyCounters\space before the first
+ instance of \string\GlsAddXdyAttribute}%
+}
+% \end{macrocode}
+%\end{macro}
+%
%\begin{macro}{\GlsAddXdyAttribute}
% Adds an attribute.
% \begin{macrocode}
\ifglsxindy
+% \end{macrocode}
+% First define internal command that adds an attribute for a given
+% counter (2nd argument is the counter):
+% \begin{macrocode}
+ \newcommand*\@glsaddxdyattribute[2]{%
+% \end{macrocode}
+% Add to xindy attribute list
+% \begin{macrocode}
+ \edef\@xdyattributes{\@xdyattributes ^^J \string"#1\string" ^^J
+ \string"#2#1\string"}%
+% \end{macrocode}
+% Add to xindy markup location.
+% \begin{macrocode}
+ \expandafter\toks@\expandafter{\@xdylocref}%
+ \edef\@xdylocref{\the\toks@ ^^J%
+ (markup-locref
+ :open \string"\string~n%
+ \expandafter\string\csname glsX#2X#1\endcsname
+ \string" ^^J
+ :close \string"\string" ^^J
+ :attr \string"#2#1\string")}%
+% \end{macrocode}
+% Define associated attribute command
+% \cs{glsX}\meta{counter}"X"\meta{attribute}\marg{Hprefix}\marg{n}
+% \begin{macrocode}
+ \expandafter\gdef\csname glsX#2X#1\endcsname##1##2{%
+ \setentrycounter[##1]{#2}\csname #1\endcsname{##2}%
+ }%
+ }
+% \end{macrocode}
+% High-level command:
+% \begin{macrocode}
\newcommand*\GlsAddXdyAttribute[1]{%
- \edef\@xdyattributes{\@xdyattributes ^^J \string"#1\string"}%
- \expandafter\toks@\expandafter{\@xdylocref}%
- \edef\@xdylocref{\the\toks@ ^^J%
- (markup-locref
- :open \string"\string~n\string\setentrycounter
- {\noexpand\glscounter}%
- \expandafter\string\csname#1\endcsname
- \expandafter\@gobble\string\{\string" ^^J
- :close \string"\expandafter\@gobble\string\}\string" ^^J
- :attr \string"#1\string")}}
+% \end{macrocode}
+% Add to comma-separated attribute list
+% \begin{macrocode}
+ \ifx\@xdyattributelist\@empty
+ \edef\@xdyattributelist{#1}%
+ \else
+ \edef\@xdyattributelist{\@xdyattributelist,#1}%
+ \fi
+% \end{macrocode}
+% Iterate through all specified counters and add counter-dependent
+% attributes:
+% \begin{macrocode}
+ \@for\@this@counter:=\@xdycounters\do{%
+ \protected@edef\gls@do@addxdyattribute{%
+ \noexpand\@glsaddxdyattribute{#1}{\@this@counter}%
+ }
+ \gls@do@addxdyattribute
+ }%
+% \end{macrocode}
+% All occurrences of \cs{GlsAddXdyCounters} must be used before this
+% command
+% \begin{macrocode}
+ \let\GlsAddXdyCounters\@disabled@glsaddxdycounters
+ }
% \end{macrocode}
% Only has an effect before \ics{writeist}:
% \begin{macrocode}
@@ -6540,9 +1963,12 @@ name=true]{%
\fi
% \end{macrocode}
%\end{macro}
-% Add known attributes:
+%
+%\begin{macro}{\@gls@addpredefinedattributes}
+% Add known attributes for all defined counters
% \begin{macrocode}
\ifglsxindy
+\newcommand*{\@gls@addpredefinedattributes}{%
\GlsAddXdyAttribute{glsnumberformat}
\GlsAddXdyAttribute{textrm}
\GlsAddXdyAttribute{textsf}
@@ -6565,8 +1991,12 @@ name=true]{%
\GlsAddXdyAttribute{hypersl}
\GlsAddXdyAttribute{hypersc}
\GlsAddXdyAttribute{hyperemph}
+}
+\else
+ \let\@gls@addpredefinedattributes\relax
\fi
% \end{macrocode}
+%\end{macro}
%
%\begin{macro}{\@xdyuseralphabets}
% List of additional alphabets
@@ -6591,34 +2021,162 @@ name=true]{%
% \end{macrocode}
%\end{macro}
%
+% This code is only required for xindy:
+% \begin{macrocode}
+\ifglsxindy
+% \end{macrocode}
+%
+%\begin{macro}{\@gls@xdy@locationlist}
+%\changes{3.0}{2011/04/02}{new}
+% List of predefined location names.
+% \begin{macrocode}
+ \newcommand*{\@gls@xdy@locationlist}{%
+ roman-page-numbers,%
+ Roman-page-numbers,%
+ arabic-page-numbers,%
+ alpha-page-numbers,%
+ Alpha-page-numbers,%
+ Appendix-page-numbers,%
+ arabic-section-numbers%
+ }
+% \end{macrocode}
+%\end{macro}
+% Each location class \meta{name} has the format stored in
+% \cs{@gls@xdy@Lclass@}\meta{name}. Set up predefined
+% formats.
+%
+%\begin{macro}{\@gls@xdy@Lclass@roman-page-numbers}
+% Lower case Roman numerals (i, ii, \ldots). In the event that
+% \ics{roman} has been redefined to produce a fancy form of
+% roman numerals, attempt to work out how it will be written
+% to the output file.
+% \begin{macrocode}
+ \protected@edef\@gls@roman{\@roman{0\string"
+ \string"roman-numbers-lowercase\string" :sep \string"}}%
+ \@onelevel@sanitize\@gls@roman
+ \edef\@tmp{\string" \string"roman-numbers-lowercase\string"
+ :sep \string"}%
+ \@onelevel@sanitize\@tmp
+ \ifx\@tmp\@gls@roman
+ \expandafter
+ \edef\csname @gls@xdy@Lclass@roman-page-numbers\endcsname{%
+ \string"roman-numbers-lowercase\string"%
+ }%
+ \else
+ \expandafter
+ \edef\csname @gls@xdy@Lclass@roman-page-numbers\endcsname{
+ :sep \string"\@gls@roman\string"%
+ }%
+ \fi
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\@gls@xdy@Lclass@Roman-page-numbers}
+% Upper case Roman numerals (I, II, \ldots).
+% \begin{macrocode}
+ \expandafter\def\csname @gls@xdy@Lclass@Roman-page-numbers\endcsname{%
+ \string"roman-numbers-uppercase\string"%
+ }%
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\@gls@xdy@Lclass@arabic-page-numbers}
+% Arabic numbers (1, 2, \ldots).
+% \begin{macrocode}
+ \expandafter\def\csname @gls@xdy@Lclass@arabic-page-numbers\endcsname{%
+ \string"arabic-numbers\string"%
+ }%
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\@gls@xdy@Lclass@alpha-page-numbers}
+% Lower case alphabetical (a, b, \ldots).
+% \begin{macrocode}
+ \expandafter\def\csname @gls@xdy@Lclass@alpha-page-numbers\endcsname{%
+ \string"alpha\string"%
+ }%
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\@gls@xdy@Lclass@Alpha-page-numbers}
+% Upper case alphabetical (A, B, \ldots).
+% \begin{macrocode}
+ \expandafter\def\csname @gls@xdy@Lclass@Alpha-page-numbers\endcsname{%
+ \string"ALPHA\string"%
+ }%
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\@gls@xdy@Lclass@Appendix-page-numbers}
+% Appendix style locations (e.g.\ A-1, A-2, \ldots, B-1, B-2,
+% \ldots). The separator is given by \ics{@glsAlphacompositor}.
+% \begin{macrocode}
+ \expandafter\def\csname @gls@xdy@Lclass@Appendix-page-numbers\endcsname{%
+ \string"ALPHA\string"
+ :sep \string"\@glsAlphacompositor\string"
+ \string"arabic-numbers\string"%
+ }
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\@gls@xdy@Lclass@arabic-section-numbers}
+% Section number style locations (e.g.\ 1.1, 1.2, \ldots). The
+% compositor is given by \ics{glscompositor}.
+% \begin{macrocode}
+ \expandafter\def\csname @gls@xdy@Lclass@arabic-section-numbers\endcsname{%
+ \string"arabic-numbers\string"
+ :sep \string"\glscompositor\string"
+ \string"arabic-numbers\string"%
+ }%
+% \end{macrocode}
+%\end{macro}
+%
%\begin{macro}{\@xdyuserlocationdefs}
% List of additional location definitions
% (separated by "^^J")
% \begin{macrocode}
-\def\@xdyuserlocationdefs{}
+ \def\@xdyuserlocationdefs{}
% \end{macrocode}
%\end{macro}
%\begin{macro}{\@xdyuserlocationnames}
% List of additional user location names
% \begin{macrocode}
-\def\@xdyuserlocationnames{}
+ \def\@xdyuserlocationnames{}
% \end{macrocode}
%\end{macro}
%
+% End of xindy-only block:
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+%
%\begin{macro}{\GlsAddXdyLocation}
-% \cs{GlsAddXdyLocation}\marg{name}\marg{definition}
+% \cs{GlsAddXdyLocation}\oarg{prefix-loc}\marg{name}\marg{definition}
% Define a new location called \meta{name}. The definition
% must use \app{xindy} syntax. (Note that this doesn't
% check to see if the location is already defined. That is left
% to \app{xindy} to complain about.)
% \begin{macrocode}
\ifglsxindy
- \newcommand*{\GlsAddXdyLocation}[2]{%
- \edef\@xdyuserlocationdefs{%
- \@xdyuserlocationdefs ^^J%
- (define-location-class \string"#1\string"^^J\space\space
- \space(#2))
- }%
+ \newcommand*{\GlsAddXdyLocation}[3][]{%
+ \def\@gls@tmp{#1}%
+ \ifx\@gls@tmp\@empty
+ \edef\@xdyuserlocationdefs{%
+ \@xdyuserlocationdefs ^^J%
+ (define-location-class \string"#2\string"^^J\space\space
+ \space(:sep \string"{}\glsopenbrace\string" #3
+ :sep \string"\glsclosebrace\string"))
+ }%
+ \else
+ \edef\@xdyuserlocationdefs{%
+ \@xdyuserlocationdefs ^^J%
+ (define-location-class \string"#2\string"^^J\space\space
+ \space(:sep "\glsopenbrace"
+ #1
+ :sep "\glsclosebrace\glsopenbrace" #3
+ :sep "\glsclosebrace"))
+ }%
+ \fi
\edef\@xdyuserlocationnames{%
\@xdyuserlocationnames^^J\space\space\space
\string"#1\string"}%
@@ -6880,7 +2438,7 @@ name=true]{%
\def\@xdylettergroups{}
\fi
\fi
-% \end{macrocode}
+% \end{macrocode}
%\end{macro}
%
%\begin{macro}{\GlsAddLetterGroup}
@@ -6944,9 +2502,11 @@ name=true]{%
% To check to see if a glossary exists use:\\[10pt]
%\cs{ifglossaryexists}\marg{type}\marg{true-text}\marg{false-text}\\[10pt]
%where \meta{type} is the glossary's label.
+%\changes{3.0}{2011/04/02}{replaced \cs{@ifundefined} with
+%\cs{ifcsundef}}
% \begin{macrocode}
\newcommand{\ifglossaryexists}[3]{%
- \@ifundefined{@glotype@#1@out}{#3}{#2}%
+ \ifcsundef{@glotype@#1@out}{#3}{#2}%
}
% \end{macrocode}
%\end{macro}
@@ -6955,9 +2515,12 @@ name=true]{%
% To check to see if a glossary entry has been defined use:\\[10pt]
% \cs{ifglsentryexists}\marg{label}\marg{true text}\marg{false text}\\[10pt]
%where \meta{label} is the entry's label.
+%\changes{3.0}{2011/04/02}{replaced \cs{@ifundefined} with
+%\cs{ifcsundef}}
% \begin{macrocode}
\newcommand{\ifglsentryexists}[3]{%
-\@ifundefined{glo@#1@name}{#3}{#2}}
+ \ifcsundef{glo@#1@name}{#3}{#2}%
+}
% \end{macrocode}
%\end{macro}
%
@@ -7072,20 +2635,34 @@ name=true]{%
%\changes{2.04}{2009 November 10}{added check to determine if
% \cs{gls@\meta{type}@display} and \cs{gls@\meta{type}@displayfirst}
% have been defined.}
+%\changes{3.0}{2011/04/02}{replaced \cs{@ifundefined} with
+%\cs{ifcsundef}}
+% \begin{macrocode}
+ \ifcsundef{gls@#2@display}%
+ {%
+ \expandafter\gdef\csname gls@#2@display\endcsname{\glsdisplay}%
+ }%
+ {}%
+ \ifcsundef{gls@#2@displayfirst}%
+ {%
+ \expandafter\gdef\csname gls@#2@displayfirst\endcsname{%
+ \glsdisplayfirst
+ }%
+ }%
+ {}%
+% \end{macrocode}
+% Define sort counter if required:
+%\changes{3.0}{2011/04/02}{added \cs{@gls@defsortcount}}
% \begin{macrocode}
- \@ifundefined{gls@#2@display}{%
- \expandafter\gdef\csname gls@#2@display\endcsname{%
- \glsdisplay}}{}%
- \@ifundefined{gls@#2@displayfirst}{%
- \expandafter\gdef\csname gls@#2@displayfirst\endcsname{%
- \glsdisplayfirst}}{}%
+ \@gls@defsortcount{#2}%
% \end{macrocode}
% Find out if the final optional argument has been specified, and
% use it to set the counter associated with this glossary. (Uses
% \ics{glscounter} if no optional argument is present.)
% \begin{macrocode}
\@ifnextchar[{\@gls@setcounter{#2}}%
- {\@gls@setcounter{#2}[\glscounter]}}}
+ {\@gls@setcounter{#2}[\glscounter]}}%
+}
% \end{macrocode}
%\end{macro}
%\begin{macro}{\altnewglossary}
@@ -7120,7 +2697,13 @@ name=true]{%
%\begin{macro}{\@gls@setcounter}
% \begin{macrocode}
\def\@gls@setcounter#1[#2]{%
-\expandafter\def\csname @glotype@#1@counter\endcsname{#2}%
+ \expandafter\def\csname @glotype@#1@counter\endcsname{#2}%
+% \end{macrocode}
+% Add counter to xindy list, if not already added:
+% \begin{macrocode}
+ \ifglsxindy
+ \GlsAddXdyCounters{#2}%
+ \fi
}
% \end{macrocode}
%\end{macro}
@@ -7293,21 +2876,35 @@ name=true]{%
%\begin{key}{counter}
% The \gloskey{counter} key specifies the name of the counter
% associated with this glossary entry:
+%\changes{3.0}{2011/04/02}{replaced \cs{@ifundefined} with
+%\cs{ifcsundef}}
% \begin{macrocode}
\define@key{glossentry}{counter}{%
-\@ifundefined{c@#1}{\PackageError{glossaries}{There is no counter
-called `#1'}{The counter key should have the name of a valid
-counter as its value}}{%
-\def\@glo@counter{#1}}}
+ \ifcsundef{c@#1}%
+ {%
+ \PackageError{glossaries}%
+ {There is no counter called `#1'}%
+ {%
+ The counter key should have the name of a valid counter
+ as its value%
+ }%
+ }%
+ {%
+ \def\@glo@counter{#1}%
+ }%
+}
% \end{macrocode}
%\end{key}
%
%\begin{key}{see}
% 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}}
% \begin{macrocode}
\define@key{glossentry}{see}{%
-\def\@glo@see{#1}}
+ \def\@glo@see{#1}%
+ \@glo@seeautonumberlist
+}
% \end{macrocode}
%\end{key}
%
@@ -7322,12 +2919,18 @@ counter as its value}}{%
%\end{key}
%
%\begin{key}{nonumberlist}
-% The \gloskey{nonumberlist} key suppresses the number list
+% The \gloskey{nonumberlist} key suppresses or activates the number list
% for the given entry.
% \changes{1.17}{2008 December 26}{new}
+%\changes{3.0}{2011/04/02}{now boolean}
% \begin{macrocode}
-\define@key{glossentry}{nonumberlist}[none]{%
-\def\@glo@prefix{\glsnonextpages}}
+\define@choicekey{glossentry}{nonumberlist}[\val\nr]{true,false}[true]{%
+ \ifcase\nr\relax
+ \def\@glo@prefix{\glsnonextpages}%
+ \else
+ \def\@glo@prefix{\glsnextpages}%
+ \fi
+}
% \end{macrocode}
%\end{key}
%
@@ -7380,6 +2983,48 @@ counter as its value}}{%
% \end{macrocode}
%\end{key}
%
+%\begin{key}{short}
+%\changes{3.0}{2011/04/02}{new}
+% This key is provided for use by \ics{newacronym}. It's not
+% designed for general purpose use, so isn't described in the user
+% manual.
+% \begin{macrocode}
+\define@key{glossentry}{short}{%
+ \def\@glo@short{#1}%
+}
+% \end{macrocode}
+%\end{key}
+%
+%\begin{key}{shortplural}
+%\changes{3.0}{2011/04/02}{new}
+% This key is provided for use by \ics{newacronym}.
+% \begin{macrocode}
+\define@key{glossentry}{shortplural}{%
+ \def\@glo@shortpl{#1}%
+}
+% \end{macrocode}
+%\end{key}
+%
+%\begin{key}{long}
+%\changes{3.0}{2011/04/02}{new}
+% This key is provided for use by \ics{newacronym}.
+% \begin{macrocode}
+\define@key{glossentry}{long}{%
+ \def\@glo@long{#1}%
+}
+% \end{macrocode}
+%\end{key}
+%
+%\begin{key}{longplural}
+%\changes{3.0}{2011/04/02}{new}
+% This key is provided for use by \ics{newacronym}.
+% \begin{macrocode}
+\define@key{glossentry}{longplural}{%
+ \def\@glo@longpl{#1}%
+}
+% \end{macrocode}
+%\end{key}
+%
%\begin{macro}{\@glsnoname}
% \changes{1.17}{2008 December 26}{new}
% Define command to generate error if \gloskey{name} key is missing.
@@ -7419,8 +3064,10 @@ counter as its value}}{%
% There are two required fields in \meta{key-val list}:
% \gloskey{name} (or \gloskey{parent}) and
% \gloskey{description}. (See above.)
+%\changes{3.0}{2011/04/02}{replaced \cs{DeclareRobustCommand} with
+%\cs{newrobustcmd}}
% \begin{macrocode}
-\DeclareRobustCommand{\newglossaryentry}[2]{%
+\newrobustcmd{\newglossaryentry}[2]{%
% \end{macrocode}
% Check to see if this glossary entry has already been defined:
% \begin{macrocode}
@@ -7506,6 +3153,13 @@ counter as its value}}{%
\def\@glo@userv{}%
\def\@glo@uservi{}%
% \end{macrocode}
+%\changes{3.0}{2011/04/02}{added short and long keys}
+% \begin{macrocode}
+\def\@glo@short{}%
+\def\@glo@shortpl{}%
+\def\@glo@long{}%
+\def\@glo@longpl{}%
+% \end{macrocode}
% Add start hook in case another package wants to add extra keys.
% \begin{macrocode}
\@newglossaryentryprehook
@@ -7516,13 +3170,19 @@ counter as its value}}{%
% \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
+%\cs{ifcsundef}}
% \begin{macrocode}
-\@ifundefined{glolist@\@glo@type}{\PackageError{glossaries}{%
-Glossary type '\@glo@type' has not been defined}{%
-You need to define a new glossary type, before making entries
-in it}}{%
-\protected@edef\@glolist@{\csname glolist@\@glo@type\endcsname}%
-\expandafter\xdef\csname glolist@\@glo@type\endcsname{\@glolist@{#1},}%
+\ifcsundef{glolist@\@glo@type}%
+{%
+ \PackageError{glossaries}%
+ {Glossary type '\@glo@type' has not been defined}%
+ {You need to define a new glossary type, before making entries
+ in it}%
+}%
+{%
+ \protected@edef\@glolist@{\csname glolist@\@glo@type\endcsname}%
+ \expandafter\xdef\csname glolist@\@glo@type\endcsname{\@glolist@{#1},}%
}%
% \end{macrocode}
% Initialise level to 0.
@@ -7639,6 +3299,14 @@ in it}}{%
\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}%
% \end{macrocode}
@@ -7655,18 +3323,12 @@ in it}}{%
\expandafter\protected@xdef\csname glo@#1@desc\endcsname{\@glo@desc}%
\expandafter\protected@xdef\csname glo@#1@descplural\endcsname{\@glo@descplural}%
% \end{macrocode}
-% Sanitize sort value:
%\changes{1.18}{2009 January 14}{moved sort sanitization to
% 'newglossaryentry}
-% \begin{macrocode}
-\ifx\@glo@sort\@glsdefaultsort
- \let\@glo@sort\@glo@name
-\fi
-\@onelevel@sanitize\@glo@sort
-% \end{macrocode}
+%\changes{3.0}{2011/04/02}{added \cs{@gls@defsort}}
% Set the sort key for this entry:
% \begin{macrocode}
-\expandafter\protected@xdef\csname glo@#1@sort\endcsname{\@glo@sort}%
+\@gls@defsort{\@glo@type}{#1}%
% \end{macrocode}
%\changes{1.15}{2008 August 15}{check for '@glo@text in symbol}%
% \begin{macrocode}
@@ -7706,7 +3368,7 @@ in it}}{%
% format when entry
% is defined}%
% \begin{macrocode}
- \@glo@storeentry{#1}%
+ \do@glo@storeentry{#1}%
% \end{macrocode}
% Add end hook in case another package wants to add extra keys.
% \begin{macrocode}
@@ -8081,12 +3743,23 @@ in it}}{%
% The following keys can be used in the first optional
% argument. The \gloskey[glslink]{counter} key checks that the
% value is the name of a valid counter.
+%\changes{3.0}{2011/04/02}{replaced \cs{@ifundefined} with
+%\cs{ifcsundef}}
% \begin{macrocode}
\define@key{glslink}{counter}{%
-\@ifundefined{c@#1}{\PackageError{glossaries}{There is no counter
-called `#1'}{The counter key should have the name of a valid
-counter as its value}}{%
-\def\@gls@counter{#1}}}
+ \ifcsundef{c@#1}%
+ {%
+ \PackageError{glossaries}%
+ {There is no counter called `#1'}%
+ {%
+ The counter key should have the name of a valid counter
+ as its value%
+ }%
+ }%
+ {%
+ \def\@gls@counter{#1}%
+ }%
+}
% \end{macrocode}
% The value of the \gloskey[glslink]{format} key should be the name of a
% command (without the initial backslash) that has a single mandatory
@@ -8162,7 +3835,7 @@ counter as its value}}{%
% \begin{macrocode}
\def\@gls@link[#1]#2#3{%
% \end{macrocode}
-%\changes{2.03}{2009 Sep 23}{Moved entry existance check to
+%\changes{2.03}{2009 Sep 23}{Moved entry existence check to
% avoid }
%\changes{2.03}{2009 Sep 23}{added \cs{leavevmode}}
% Inserting \cs{leavevmode} suggested by Donald~Arseneau (avoids
@@ -8174,8 +3847,16 @@ counter as its value}}{%
\edef\@gls@counter{\csname glo@#2@counter\endcsname}%
\KV@glslink@hypertrue
\setkeys{glslink}{#1}%
- \edef\theglsentrycounter{\expandafter\noexpand
- \csname the\@gls@counter\endcsname}%
+% \end{macrocode}
+% Store the entry's counter in \cs{theglsentrycounter}
+%\changes{3.0}{2011/04/02}{added \cs{@gls@saveentrycounter}}
+% \begin{macrocode}
+ \@gls@saveentrycounter
+% \end{macrocode}
+%\changes{3.0}{2011/04/02}{added \cs{@gls@setsort}}
+% Define sort key if necessary:
+% \begin{macrocode}
+ \@gls@setsort{#2}%
% \end{macrocode}
%\changes{2.01}{2009 May 30}{moved \cs{@do@wrglossary} before term is displayed
% to prevent unwanted whatsit}
@@ -8189,19 +3870,94 @@ counter as its value}}{%
}
% \end{macrocode}
%\end{macro}
+%
+%\begin{macro}{\@gls@saveentrycounter}
+%\changes{3.0}{2011/04/02}{new}
+% Need to check if using \ctr{equation} counter in \env{align}
+% environment:
+% \begin{macrocode}
+\newcommand*{\@gls@saveentrycounter}{%
+ \def\@gls@Hcounter{}%
+% \end{macrocode}
+% Are we using \ctr{equation} counter?
+% \begin{macrocode}
+ \ifthenelse{\equal{\@gls@counter}{equation}}%
+ {
+% \end{macrocode}
+% If we in \env{align} environment, \cs{xatlevel@} will be defined.
+% (Can't test for \cs{@currenvir} as may be inside an inner
+% environment.)
+% \begin{macrocode}
+ \ifcsundef{xatlevel@}%
+ {%
+ \edef\theglsentrycounter{\expandafter\noexpand
+ \csname the\@gls@counter\endcsname}%
+ }%
+ {%
+ \ifx\xatlevel@\@empty
+ \edef\theglsentrycounter{\expandafter\noexpand
+ \csname the\@gls@counter\endcsname}%
+ \else
+ \savecounters@
+ \advance\c@equation by 1\relax
+ \edef\theglsentrycounter{\csname the\@gls@counter\endcsname}%
+% \end{macrocode}
+% Check if hyperref version of this counter
+% \begin{macrocode}
+ \ifcsundef{theH\@gls@counter}%
+ {%
+ \def\@gls@Hcounter{\theglsentrycounter}%
+ }%
+ {%
+ \def\@gls@Hcounter{\csname theH\@gls@counter\endcsname}%
+ }%
+ \protected@edef\theHglsentrycounter{\@gls@Hcounter}%
+ \restorecounters@
+ \fi
+ }%
+ }%
+ {%
+% \end{macrocode}
+% Not using \ctr{equation} counter so no special measures:
+% \begin{macrocode}
+ \edef\theglsentrycounter{\expandafter\noexpand
+ \csname the\@gls@counter\endcsname}%
+ }%
+% \end{macrocode}
+% Check if hyperref version of this counter
+% \begin{macrocode}
+ \ifx\@gls@Hcounter\@empty
+ \ifcsundef{theH\@gls@counter}%
+ {%
+ \def\theHglsentrycounter{\theglsentrycounter}%
+ }%
+ {%
+ \protected@edef\theHglsentrycounter{\expandafter\noexpand
+ \csname theH\@gls@counter\endcsname}%
+ }%
+ \fi
+}
+% \end{macrocode}
+%\end{macro}
+%
%\changes{1.01}{2007 May 17}{Added range facility in format key}%
+%\begin{macro}{\@set@glo@numformat}
% Set the formatting information in the format required by
% \app{makeindex}. The first argument is the format specified
% by the user (via the format key), the second argument is the
-% name of the counter used to indicate the location and the third
-% argument is a control sequence which stores the required format.
-%\begin{macro}{\@set@glo@numformat}
-% \begin{macrocode}
-\def\@set@glo@numformat#1#2#3{%
-\expandafter\@glo@check@mkidxrangechar#3\@nil
-\protected@edef#1{\@glo@prefix setentrycounter{#2}%
-\expandafter\string\csname\@glo@suffix\endcsname}%
-\@gls@checkmkidxchars#1}
+% name of the counter used to indicate the location, the third
+% argument is a control sequence which stores the required format
+% and the fourth argument (new to v3.0) is the hyper-prefix.
+%\changes{3.0}{2010/03/31}{added 4th argument}
+% \begin{macrocode}
+\def\@set@glo@numformat#1#2#3#4{%
+ \expandafter\@glo@check@mkidxrangechar#3\@nil
+ \protected@edef#1{%
+ \@glo@prefix setentrycounter[#4]{#2}%
+ \expandafter\string\csname\@glo@suffix\endcsname
+ }%
+ \@gls@checkmkidxchars#1%
+}
% \end{macrocode}
%\end{macro}
% Check to see if the given string starts with a ( or ). If it
@@ -8601,10 +4357,14 @@ counter as its value}}{%
% If \ics{hyperlink} is not defined \cs{@glslink}
% ignores its first argument and just does the second argument,
% otherwise it is equivalent to \ics{hyperlink}.
+%\changes{3.0}{2011/04/02}{replaced \cs{@ifundefined} with
+%\cs{ifcsundef}}
% \begin{macrocode}
-\@ifundefined{hyperlink}{%
+\ifcsundef{hyperlink}%
+{%
\gdef\@glslink#1#2{#2}%
-}{%
+}%
+{%
\gdef\@glslink#1#2{\hyperlink{#1}{#2}}%
}
% \end{macrocode}
@@ -8619,12 +4379,15 @@ counter as its value}}{%
% scroll off the top of the page}
% \begin{macrocode}
\newlength\gls@tmplen
-\@ifundefined{hypertarget}{%
+\ifcsundef{hypertarget}%
+{%
\gdef\@glstarget#1#2{#2}%
-}{%
- \gdef\@glstarget#1#2{%
+}%
+{%
+ \gdef\@glstarget#1#2{%
\settoheight{\gls@tmplen}{#2}%
- \raisebox{\gls@tmplen}{\hypertarget{#1}{}}#2}%
+ \raisebox{\gls@tmplen}{\hypertarget{#1}{}}#2%
+ }%
}
% \end{macrocode}
%\end{macro}
@@ -10843,6 +6606,477 @@ counter as its value}}{%
}
% \end{macrocode}
%
+% Now deal with acronym related keys. First the short form:
+%\begin{macro}{\acrshort}
+% \begin{macrocode}
+\newcommand*{\acrshort}{\@ifstar\s@acrshort\ns@acrshort}
+% \end{macrocode}
+%\end{macro}
+% Define the starred form:
+% \begin{macrocode}
+\newcommand*{\s@acrshort}[2][]{%
+ \new@ifnextchar[{\@acrshort{hyper=false,#1}{#2}}%
+ {\@acrshort{hyper=false,#1}{#2}[]}%
+}
+% \end{macrocode}
+% Defined the un-starred form. Need to determine if there is
+% a final optional argument
+% \begin{macrocode}
+\newcommand*{\ns@acrshort}[2][]{%
+ \new@ifnextchar[{\@acrshort{#1}{#2}}{\@acrshort{#1}{#2}[]}%
+}
+% \end{macrocode}
+% Read in the final optional argument:
+% \begin{macrocode}
+\def\@acrshort#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{\glsentryshort{#2}}%
+% \end{macrocode}
+% Call \cs{@gls@link}
+% \begin{macrocode}
+ \@gls@link[#1]{#2}{\acronymfont{\@glo@text}#3}%
+ }%
+}
+% \end{macrocode}
+%
+%\begin{macro}{\Acrshort}
+% \begin{macrocode}
+\newcommand*{\Acrshort}{\@ifstar\s@Acrshort\ns@Acrshort}
+% \end{macrocode}
+%\end{macro}
+% Define the starred form:
+% \begin{macrocode}
+\newcommand*{\s@Acrshort}[2][]{%
+ \new@ifnextchar[{\@Acrshort{hyper=false,#1}{#2}}%
+ {\@Acrshort{hyper=false,#1}{#2}[]}%
+}
+% \end{macrocode}
+% Defined the un-starred form. Need to determine if there is
+% a final optional argument
+% \begin{macrocode}
+\newcommand*{\ns@Acrshort}[2][]{%
+ \new@ifnextchar[{\@Acrshort{#1}{#2}}{\@Acrshort{#1}{#2}[]}%
+}
+% \end{macrocode}
+% Read in the final optional argument:
+% \begin{macrocode}
+\def\@Acrshort#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{\glsentryshort{#2}}%
+% \end{macrocode}
+% Call \cs{@gls@link}
+% \begin{macrocode}
+ \@gls@link[#1]{#2}%
+ {%
+ \acronymfont{\expandafter\makefirstuc\expandafter{\@glo@text}}#3%
+ }%
+ }%
+}
+% \end{macrocode}
+%
+%\begin{macro}{\ACRshort}
+% \begin{macrocode}
+\newcommand*{\ACRshort}{\@ifstar\s@ACRshort\ns@ACRshort}
+% \end{macrocode}
+%\end{macro}
+% Define the starred form:
+% \begin{macrocode}
+\newcommand*{\s@ACRshort}[2][]{%
+ \new@ifnextchar[{\@ACRshort{hyper=false,#1}{#2}}%
+ {\@ACRshort{hyper=false,#1}{#2}[]}%
+}
+% \end{macrocode}
+% Defined the un-starred form. Need to determine if there is
+% a final optional argument
+% \begin{macrocode}
+\newcommand*{\ns@ACRshort}[2][]{%
+ \new@ifnextchar[{\@ACRshort{#1}{#2}}{\@ACRshort{#1}{#2}[]}%
+}
+% \end{macrocode}
+% Read in the final optional argument:
+% \begin{macrocode}
+\def\@ACRshort#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{\glsentryshort{#2}}%
+% \end{macrocode}
+% Call \cs{@gls@link}
+% \begin{macrocode}
+ \@gls@link[#1]{#2}{\acronymfont{\MakeUppercase{\@glo@text#3}}}%
+ }%
+}
+% \end{macrocode}
+%
+% Short plural:
+%\begin{macro}{\acrshortpl}
+% \begin{macrocode}
+\newcommand*{\acrshortpl}{\@ifstar\s@acrshortpl\ns@acrshortpl}
+% \end{macrocode}
+%\end{macro}
+% Define the starred form:
+% \begin{macrocode}
+\newcommand*{\s@acrshortpl}[2][]{%
+ \new@ifnextchar[{\@acrshortpl{hyper=false,#1}{#2}}%
+ {\@acrshortpl{hyper=false,#1}{#2}[]}%
+}
+% \end{macrocode}
+% Defined the un-starred form. Need to determine if there is
+% a final optional argument
+% \begin{macrocode}
+\newcommand*{\ns@acrshortpl}[2][]{%
+ \new@ifnextchar[{\@acrshortpl{#1}{#2}}{\@acrshortpl{#1}{#2}[]}%
+}
+% \end{macrocode}
+% Read in the final optional argument:
+% \begin{macrocode}
+\def\@acrshortpl#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{\glsentryshortpl{#2}}%
+% \end{macrocode}
+% Call \cs{@gls@link}
+% \begin{macrocode}
+ \@gls@link[#1]{#2}{\acronymfont{\@glo@text}#3}%
+ }%
+}
+% \end{macrocode}
+%
+%\begin{macro}{\Acrshortpl}
+% \begin{macrocode}
+\newcommand*{\Acrshortpl}{\@ifstar\s@Acrshortpl\ns@Acrshortpl}
+% \end{macrocode}
+%\end{macro}
+% Define the starred form:
+% \begin{macrocode}
+\newcommand*{\s@Acrshortpl}[2][]{%
+ \new@ifnextchar[{\@Acrshortpl{hyper=false,#1}{#2}}%
+ {\@Acrshortpl{hyper=false,#1}{#2}[]}%
+}
+% \end{macrocode}
+% Defined the un-starred form. Need to determine if there is
+% a final optional argument
+% \begin{macrocode}
+\newcommand*{\ns@Acrshortpl}[2][]{%
+ \new@ifnextchar[{\@Acrshortpl{#1}{#2}}{\@Acrshortpl{#1}{#2}[]}%
+}
+% \end{macrocode}
+% Read in the final optional argument:
+% \begin{macrocode}
+\def\@Acrshortpl#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{\glsentryshortpl{#2}}%
+% \end{macrocode}
+% Call \cs{@gls@link}
+% \begin{macrocode}
+ \@gls@link[#1]{#2}%
+ {%
+ \acronymfont{\expandafter\makefirstuc\expandafter{\@glo@text}}#3%
+ }%
+ }%
+}
+% \end{macrocode}
+%
+%\begin{macro}{\ACRshortpl}
+% \begin{macrocode}
+\newcommand*{\ACRshortpl}{\@ifstar\s@ACRshortpl\ns@ACRshortpl}
+% \end{macrocode}
+%\end{macro}
+% Define the starred form:
+% \begin{macrocode}
+\newcommand*{\s@ACRshortpl}[2][]{%
+ \new@ifnextchar[{\@ACRshortpl{hyper=false,#1}{#2}}%
+ {\@ACRshortpl{hyper=false,#1}{#2}[]}%
+}
+% \end{macrocode}
+% Defined the un-starred form. Need to determine if there is
+% a final optional argument
+% \begin{macrocode}
+\newcommand*{\ns@ACRshortpl}[2][]{%
+ \new@ifnextchar[{\@ACRshortpl{#1}{#2}}{\@ACRshortpl{#1}{#2}[]}%
+}
+% \end{macrocode}
+% Read in the final optional argument:
+% \begin{macrocode}
+\def\@ACRshortpl#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{\glsentryshortpl{#2}}%
+% \end{macrocode}
+% Call \cs{@gls@link}
+% \begin{macrocode}
+ \@gls@link[#1]{#2}{\acronymfont{\MakeUppercase{\@glo@text#3}}}%
+ }%
+}
+% \end{macrocode}
+%
+%\begin{macro}{\acrlong}
+% \begin{macrocode}
+\newcommand*{\acrlong}{\@ifstar\s@acrlong\ns@acrlong}
+% \end{macrocode}
+%\end{macro}
+% Define the starred form:
+% \begin{macrocode}
+\newcommand*{\s@acrlong}[2][]{%
+ \new@ifnextchar[{\@acrlong{hyper=false,#1}{#2}}%
+ {\@acrlong{hyper=false,#1}{#2}[]}%
+}
+% \end{macrocode}
+% Defined the un-starred form. Need to determine if there is
+% a final optional argument
+% \begin{macrocode}
+\newcommand*{\ns@acrlong}[2][]{%
+ \new@ifnextchar[{\@acrlong{#1}{#2}}{\@acrlong{#1}{#2}[]}%
+}
+% \end{macrocode}
+% Read in the final optional argument:
+% \begin{macrocode}
+\def\@acrlong#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{\glsentrylong{#2}}%
+% \end{macrocode}
+% Call \cs{@gls@link}
+% \begin{macrocode}
+ \@gls@link[#1]{#2}{\@glo@text#3}%
+ }%
+}
+% \end{macrocode}
+%
+%\begin{macro}{\Acrlong}
+% \begin{macrocode}
+\newcommand*{\Acrlong}{\@ifstar\s@Acrlong\ns@Acrlong}
+% \end{macrocode}
+%\end{macro}
+% Define the starred form:
+% \begin{macrocode}
+\newcommand*{\s@Acrlong}[2][]{%
+ \new@ifnextchar[{\@Acrlong{hyper=false,#1}{#2}}%
+ {\@Acrlong{hyper=false,#1}{#2}[]}%
+}
+% \end{macrocode}
+% Defined the un-starred form. Need to determine if there is
+% a final optional argument
+% \begin{macrocode}
+\newcommand*{\ns@Acrlong}[2][]{%
+ \new@ifnextchar[{\@Acrlong{#1}{#2}}{\@Acrlong{#1}{#2}[]}%
+}
+% \end{macrocode}
+% Read in the final optional argument:
+% \begin{macrocode}
+\def\@Acrlong#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{\glsentrylong{#2}}%
+% \end{macrocode}
+% Call \cs{@gls@link}
+% \begin{macrocode}
+ \@gls@link[#1]{#2}%
+ {%
+ \expandafter\makefirstuc\expandafter{\@glo@text}#3%
+ }%
+ }%
+}
+% \end{macrocode}
+%
+%\begin{macro}{\ACRlong}
+% \begin{macrocode}
+\newcommand*{\ACRlong}{\@ifstar\s@ACRlong\ns@ACRlong}
+% \end{macrocode}
+%\end{macro}
+% Define the starred form:
+% \begin{macrocode}
+\newcommand*{\s@ACRlong}[2][]{%
+ \new@ifnextchar[{\@ACRlong{hyper=false,#1}{#2}}%
+ {\@ACRlong{hyper=false,#1}{#2}[]}%
+}
+% \end{macrocode}
+% Defined the un-starred form. Need to determine if there is
+% a final optional argument
+% \begin{macrocode}
+\newcommand*{\ns@ACRlong}[2][]{%
+ \new@ifnextchar[{\@ACRlong{#1}{#2}}{\@ACRlong{#1}{#2}[]}%
+}
+% \end{macrocode}
+% Read in the final optional argument:
+% \begin{macrocode}
+\def\@ACRlong#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{\glsentrylong{#2}}%
+% \end{macrocode}
+% Call \cs{@gls@link}
+% \begin{macrocode}
+ \@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}%
+ }%
+}
+% \end{macrocode}
+%
+% Short plural:
+%\begin{macro}{\acrlongpl}
+% \begin{macrocode}
+\newcommand*{\acrlongpl}{\@ifstar\s@acrlongpl\ns@acrlongpl}
+% \end{macrocode}
+%\end{macro}
+% Define the starred form:
+% \begin{macrocode}
+\newcommand*{\s@acrlongpl}[2][]{%
+ \new@ifnextchar[{\@acrlongpl{hyper=false,#1}{#2}}%
+ {\@acrlongpl{hyper=false,#1}{#2}[]}%
+}
+% \end{macrocode}
+% Defined the un-starred form. Need to determine if there is
+% a final optional argument
+% \begin{macrocode}
+\newcommand*{\ns@acrlongpl}[2][]{%
+ \new@ifnextchar[{\@acrlongpl{#1}{#2}}{\@acrlongpl{#1}{#2}[]}%
+}
+% \end{macrocode}
+% Read in the final optional argument:
+% \begin{macrocode}
+\def\@acrlongpl#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{\glsentrylongpl{#2}}%
+% \end{macrocode}
+% Call \cs{@gls@link}
+% \begin{macrocode}
+ \@gls@link[#1]{#2}{\@glo@text#3}%
+ }%
+}
+% \end{macrocode}
+%
+%\begin{macro}{\Acrlongpl}
+% \begin{macrocode}
+\newcommand*{\Acrlongpl}{\@ifstar\s@Acrlongpl\ns@Acrlongpl}
+% \end{macrocode}
+%\end{macro}
+% Define the starred form:
+% \begin{macrocode}
+\newcommand*{\s@Acrlongpl}[2][]{%
+ \new@ifnextchar[{\@Acrlongpl{hyper=false#1}{#2}}%
+ {\@Acrlongpl{hyper=false,#1}{#2}[]}%
+}
+% \end{macrocode}
+% Defined the un-starred form. Need to determine if there is
+% a final optional argument
+% \begin{macrocode}
+\newcommand*{\ns@Acrlongpl}[2][]{%
+ \new@ifnextchar[{\@Acrlongpl{#1}{#2}}{\@Acrlongpl{#1}{#2}[]}%
+}
+% \end{macrocode}
+% Read in the final optional argument:
+% \begin{macrocode}
+\def\@Acrlongpl#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{\glsentrylongpl{#2}}%
+% \end{macrocode}
+% Call \cs{@gls@link}
+% \begin{macrocode}
+ \@gls@link[#1]{#2}%
+ {%
+ \expandafter\makefirstuc\expandafter{\@glo@text}#3%
+ }%
+ }%
+}
+% \end{macrocode}
+%
+%\begin{macro}{\ACRlongpl}
+% \begin{macrocode}
+\newcommand*{\ACRlongpl}{\@ifstar\s@ACRlongpl\ns@ACRlongpl}
+% \end{macrocode}
+%\end{macro}
+% Define the starred form:
+% \begin{macrocode}
+\newcommand*{\s@ACRlongpl}[2][]{%
+ \new@ifnextchar[{\@ACRlongpl{hyper=false,#1}{#2}}%
+ {\@ACRlongpl{hyper=false,#1}{#2}[]}%
+}
+% \end{macrocode}
+% Defined the un-starred form. Need to determine if there is
+% a final optional argument
+% \begin{macrocode}
+\newcommand*{\ns@ACRlongpl}[2][]{%
+ \new@ifnextchar[{\@ACRlongpl{#1}{#2}}{\@ACRlongpl{#1}{#2}[]}%
+}
+% \end{macrocode}
+% Read in the final optional argument:
+% \begin{macrocode}
+\def\@ACRlongpl#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{\glsentrylongpl{#2}}%
+% \end{macrocode}
+% Call \cs{@gls@link}
+% \begin{macrocode}
+ \@gls@link[#1]{#2}{\MakeUppercase{\@glo@text#3}}%
+ }%
+}
+% \end{macrocode}
+%
% \subsubsection{Displaying entry details without adding
% information to the glossary}
%\label{sec:code:glsnolink}
@@ -11126,6 +7360,108 @@ counter as its value}}{%
% \end{macrocode}
%\end{macro}
%
+%\begin{macro}{\glsentryshort}
+% Get the short key (as specified by the
+% \gloskey{short} the entry was defined). The argument
+% is the label associated with the entry.
+%\changes{3.0}{2011/04/02}{new}
+% \begin{macrocode}
+\newcommand*{\glsentryshort}[1]{\csname glo@#1@short\endcsname}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\Glsentryshort}
+%\changes{3.0}{2011/04/02}{new}
+% \begin{macrocode}
+\newcommand*{\Glsentryshort}[1]{%
+\protected@edef\@glo@text{\csname glo@#1@short\endcsname}%
+\expandafter\makefirstuc\expandafter{\@glo@text}}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\glsentryshortpl}
+% Get the short plural key (as specified by the
+% \gloskey{shortplural} the entry was defined). The argument
+% is the label associated with the entry.
+%\changes{3.0}{2011/04/02}{new}
+% \begin{macrocode}
+\newcommand*{\glsentryshortpl}[1]{\csname glo@#1@shortpl\endcsname}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\Glsentryshortpl}
+%\changes{3.0}{2011/04/02}{new}
+% \begin{macrocode}
+\newcommand*{\Glsentryshortpl}[1]{%
+\protected@edef\@glo@text{\csname glo@#1@shortpl\endcsname}%
+\expandafter\makefirstuc\expandafter{\@glo@text}}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\glsentrylong}
+% Get the long key (as specified by the
+% \gloskey{long} the entry was defined). The argument
+% is the label associated with the entry.
+%\changes{3.0}{2011/04/02}{new}
+% \begin{macrocode}
+\newcommand*{\glsentrylong}[1]{\csname glo@#1@long\endcsname}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\Glsentrylong}
+%\changes{3.0}{2011/04/02}{new}
+% \begin{macrocode}
+\newcommand*{\Glsentrylong}[1]{%
+\protected@edef\@glo@text{\csname glo@#1@long\endcsname}%
+\expandafter\makefirstuc\expandafter{\@glo@text}}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\glsentrylongpl}
+% Get the long plural key (as specified by the
+% \gloskey{longplural} the entry was defined). The argument
+% is the label associated with the entry.
+%\changes{3.0}{2011/04/02}{new}
+% \begin{macrocode}
+\newcommand*{\glsentrylongpl}[1]{\csname glo@#1@longpl\endcsname}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\Glsentrylongpl}
+%\changes{3.0}{2011/04/02}{new}
+% \begin{macrocode}
+\newcommand*{\Glsentrylongpl}[1]{%
+\protected@edef\@glo@text{\csname glo@#1@longpl\endcsname}%
+\expandafter\makefirstuc\expandafter{\@glo@text}}
+% \end{macrocode}
+%\end{macro}
+%
+% Short cut macros to access full form:
+%\begin{macro}{\glsentryfull}
+% \begin{macrocode}
+\newcommand*{\glsentryfull}[1]{%
+ \glsentrylong{#1}\space(\glsentryshort{#1})%
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\Glsentryfull}
+% \begin{macrocode}
+\newcommand*{\Glsentryfull}[1]{%
+ \Glsentrylong{#1}\space(\glsentryshort{#1})%
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\glsentryfullpl}
+% \begin{macrocode}
+\newcommand*{\glsentryfullpl}[1]{%
+ \glsentrylongpl{#1}\space(\glsentryshort{#1})%
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\Glsentryfullpl}
+% \begin{macrocode}
+\newcommand*{\Glsentryfullpl}[1]{%
+ \Glsentrylongpl{#1}\space(\glsentryshort{#1})%
+}
+% \end{macrocode}
+%\end{macro}
+%
%\begin{macro}{\glshyperlink}
% Provide a hyperlink to a glossary entry without adding information
% to the glossary file. The entry needs to be added using a
@@ -11134,8 +7470,10 @@ counter as its value}}{%
% the link text. The entry name is used by default. The second
% argument is the entry label.
%\changes{1.17}{2008 December 26}{new}
+%\changes{3.0}{2011/04/02}{changed default from \cs{glsentryname}
+%to \cs{glsentrytext}}
% \begin{macrocode}
-\newcommand*{\glshyperlink}[2][\glsentryname{\@glo@label}]{%
+\newcommand*{\glshyperlink}[2][\glsentrytext{\@glo@label}]{%
\def\@glo@label{#2}%
\@glslink{glo:#2}{#1}}
% \end{macrocode}
@@ -11169,14 +7507,19 @@ counter as its value}}{%
%\changes{2.04}{2009 November 10}{fixed bug that ignored counter}
% \begin{macrocode}
\newcommand*{\glsadd}[2][]{%
-\glsdoifexists{#2}{%
-\def\@glsnumberformat{glsnumberformat}%
-\edef\@gls@counter{\csname glo@#2@counter\endcsname}%
-\setkeys{glossadd}{#1}%
-\edef\theglsentrycounter{\expandafter\noexpand
- \csname the\@gls@counter\endcsname}%
-\@do@wrglossary{#2}%
-}}
+ \glsdoifexists{#2}%
+ {%
+ \def\@glsnumberformat{glsnumberformat}%
+ \edef\@gls@counter{\csname glo@#2@counter\endcsname}%
+ \setkeys{glossadd}{#1}%
+% \end{macrocode}
+% Store the entry's counter in \cs{theglsentrycounter}
+%\changes{3.0}{2011/04/02}{added \cs{@gls@saveentrycounter}}
+% \begin{macrocode}
+ \@gls@saveentrycounter
+ \@do@wrglossary{#2}%
+ }%
+}
% \end{macrocode}
%\end{macro}
%\vskip5pt
@@ -11288,140 +7631,115 @@ counter as its value}}{%
\fi
% \end{macrocode}
%\end{macro}
-%
+
%\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{3.0}{2011/04/02}{modified to support new format}
% \begin{macrocode}
-\newwrite\istfile
\ifglsxindy
% \end{macrocode}
% Code to use if \app{xindy} is required.
% \begin{macrocode}
\def\writeist{%
% \end{macrocode}
-% Open the style file
+% Update attributes list
% \begin{macrocode}
- \openout\istfile=\istfilename
+ \@gls@addpredefinedattributes
+% \end{macrocode}
+% Open the file.
+% \begin{macrocode}
+ \openout\glswrite=\istfilename
% \end{macrocode}
% Write header comment at the start of the file
% \begin{macrocode}
- \write\istfile{;; xindy style file created by the glossaries
- package}%
- \write\istfile{;; for document '\jobname' on
- \the\year-\the\month-\the\day}%
+ \write\glswrite{;; xindy style file created by the glossaries
+ package}%
+ \write\glswrite{;; for document '\jobname' on
+ \the\year-\the\month-\the\day}%
% \end{macrocode}
% Specify the required styles
% \begin{macrocode}
- \write\istfile{^^J; required styles^^J}
+ \write\glswrite{^^J; required styles^^J}
\@for\@xdystyle:=\@xdyrequiredstyles\do{%
- \ifx\@xdystyle\@empty
- \else
- \protected@write\istfile{}{(require
- \string"\@xdystyle.xdy\string")}%
- \fi
+ \ifx\@xdystyle\@empty
+ \else
+ \protected@write\glswrite{}{(require
+ \string"\@xdystyle.xdy\string")}%
+ \fi
}%
% \end{macrocode}
% List the allowed attributes (possible values used by the
% \gloskey{format} key)
% \begin{macrocode}
- \write\istfile{^^J%
+ \write\glswrite{^^J%
; list of allowed attributes (number formats)^^J}%
- \write\istfile{(define-attributes ((\@xdyattributes)))}%
+ \write\glswrite{(define-attributes ((\@xdyattributes)))}%
% \end{macrocode}
% Define any additional alphabets
% \begin{macrocode}
- \write\istfile{^^J; user defined alphabets^^J}%
- \write\istfile{\@xdyuseralphabets}%
+ \write\glswrite{^^J; user defined alphabets^^J}%
+ \write\glswrite{\@xdyuseralphabets}%
% \end{macrocode}
% Define location classes.
% \begin{macrocode}
- \write\istfile{^^J; location class definitions^^J}%
-% \end{macrocode}
-% Lower case Roman numerals (i, ii, \ldots). In the event that
-% \ics{roman} has been redefined to produce a fancy form of
-% roman numerals, attempt to work out how it will be written
-% to the output file.
-% \begin{macrocode}
- \protected@edef\@gls@roman{\@roman{0\string"
- \string"roman-numbers-lowercase\string" :sep \string"}}%
- \@onelevel@sanitize\@gls@roman
- \edef\@tmp{\string" \string"roman-numbers-lowercase\string"
- :sep \string"}%
- \@onelevel@sanitize\@tmp
- \ifx\@tmp\@gls@roman
- \write\istfile{(define-location-class
- \string"roman-page-numbers\string"^^J\space\space\space
- (\string"roman-numbers-lowercase\string")
- :min-range-length \@glsminrange)}%
- \else
- \write\istfile{(define-location-class
- \string"roman-page-numbers\string"^^J\space\space\space
- (:sep "\@gls@roman")
- :min-range-length \@glsminrange)}%
- \fi
-% \end{macrocode}
-% Upper case Roman numerals (I, II, \ldots)
-% \begin{macrocode}
- \write\istfile{(define-location-class
- \string"Roman-page-numbers\string"^^J\space\space\space
- (\string"roman-numbers-uppercase\string")
- :min-range-length \@glsminrange)}%
-% \end{macrocode}
-% Arabic numbers (1, 2, \ldots)
-% \begin{macrocode}
- \write\istfile{(define-location-class
- \string"arabic-page-numbers\string"^^J\space\space\space
- (\string"arabic-numbers\string")
- :min-range-length \@glsminrange)}%
-% \end{macrocode}
-% Lower case alphabetical locations (a, b, \ldots)
-% \begin{macrocode}
- \write\istfile{(define-location-class
- \string"alpha-page-numbers\string"^^J\space\space\space
- (\string"alpha\string")
- :min-range-length \@glsminrange)}%
+ \write\glswrite{^^J; location class definitions^^J}%
% \end{macrocode}
-% Upper case alphabetical locations (A, B, \ldots)
+% As from version 3.0, locations are now specified as
+% \marg{Hprefix}\marg{number}, so need to add all possible
+% combinations of location types.
% \begin{macrocode}
- \write\istfile{(define-location-class
- \string"Alpha-page-numbers\string"^^J\space\space\space
- (\string"ALPHA\string")
- :min-range-length \@glsminrange)}%
+ \@for\@gls@classI:=\@gls@xdy@locationlist\do{%
% \end{macrocode}
-% Appendix style locations (e.g.\ A-1, A-2, \ldots, B-1, B-2,
-% \ldots). The separator is given by \ics{@glsAlphacompositor}.
+% Case were \meta{Hprefix} is empty:
% \begin{macrocode}
- \write\istfile{(define-location-class
- \string"Appendix-page-numbers\string"^^J\space\space\space
- (\string"ALPHA\string"
- :sep \string"\@glsAlphacompositor\string"
- \string"arabic-numbers\string")
- :min-range-length \@glsminrange)}%
+ \protected@write\glswrite{}{(define-location-class
+ \string"\@gls@classI\string"^^J\space\space\space
+ (
+ :sep "{}{"
+ \csname @gls@xdy@Lclass@\@gls@classI\endcsname\space
+ :sep "}"
+ )
+ ^^J\space\space\space
+ :min-range-length \@glsminrange^^J%
+ )
+ }%
% \end{macrocode}
-% Section number style locations (e.g.\ 1.1, 1.2, \ldots). The
-% compositor is given by \ics{glscompositor}.
+% Nested iteration over all classes:
% \begin{macrocode}
- \write\istfile{(define-location-class
- \string"arabic-section-numbers\string"^^J\space\space\space
- (\string"arabic-numbers\string"
- :sep \string"\glscompositor\string"
- \string"arabic-numbers\string")
- :min-range-length \@glsminrange)}%
+ {%
+ \@for\@gls@classII:=\@gls@xdy@locationlist\do{%
+ \protected@write\glswrite{}{(define-location-class
+ \string"\@gls@classII-\@gls@classI\string"
+ ^^J\space\space\space
+ (
+ :sep "{"
+ \csname @gls@xdy@Lclass@\@gls@classII\endcsname\space
+ :sep "}{"
+ \csname @gls@xdy@Lclass@\@gls@classI\endcsname\space
+ :sep "}"
+ )
+ ^^J\space\space\space
+ :min-range-length \@glsminrange^^J%
+ )
+ }%
+ }%
+ }%
+ }%
% \end{macrocode}
-% User defined location classes.
+% User defined location classes (needs checking for new location format).
% \begin{macrocode}
- \write\istfile{^^J; user defined location classes}%
- \write\istfile{\@xdyuserlocationdefs}%
+ \write\glswrite{^^J; user defined location classes}%
+ \write\glswrite{\@xdyuserlocationdefs}%
% \end{macrocode}
% Cross-reference class. (The unverified option is used as the
% cross-references are supplied using the list of labels along with
% the optional argument for \ics{glsseeformat} which
% \app{xindy} won't recognise.)
% \begin{macrocode}
- \write\istfile{^^J; define cross-reference class^^J}%
- \write\istfile{(define-crossref-class \string"see\string"
- :unverified )}%
+ \write\glswrite{^^J; define cross-reference class^^J}%
+ \write\glswrite{(define-crossref-class \string"see\string"
+ :unverified )}%
% \end{macrocode}
% Define how cross-references should be displayed. This adds an
% empty set of braces after the cross-referencing information
@@ -11429,59 +7747,91 @@ counter as its value}}{%
% gets ignored. (When using \app{makeindex} this final argument
% contains the location information which is not required.)
% \begin{macrocode}
- \write\istfile{(markup-crossref-list
- :class \string"see\string"^^J\space\space\space
- :open \string"\string\glsseeformat\string"
- :close \string"{}\string")}%
+ \write\glswrite{(markup-crossref-list
+ :class \string"see\string"^^J\space\space\space
+ :open \string"\string\glsseeformat\string"
+ :close \string"{}\string")}%
% \end{macrocode}
% List the order to sort the classes.
% \begin{macrocode}
- \write\istfile{^^J; define the order of the location classes}%
- \write\istfile{(define-location-class-order
- (\@xdylocationclassorder))}%
+ \write\glswrite{^^J; define the order of the location classes}%
+ \write\glswrite{(define-location-class-order
+ (\@xdylocationclassorder))}%
% \end{macrocode}
% Specify what to write to the start and end of the glossary file.
% \begin{macrocode}
- \write\istfile{^^J; define the glossary markup^^J}%
- \write\istfile{(markup-index^^J\space\space\space
- :open \string"\string
- \glossarysection[\string\glossarytoctitle]{\string
- \glossarytitle}\string\glossarypreamble\string~n\string\begin
- {theglossary}\string\glossaryheader\string~n\string" ^^J\space
- \space\space:close \string"\expandafter\@gobble
- \string\%\string~n\string
- \end{theglossary}\string\glossarypostamble
- \string~n\string" ^^J\space\space\space
- :tree)}%
+ \write\glswrite{^^J; define the glossary markup^^J}%
+% \end{macrocode}
+%\changes{3.0}{2011/04/02}{added xindy-only macro definitions to
+%glossary open tag}
+% \begin{macrocode}
+ \write\glswrite{(markup-index^^J\space\space\space
+ :open \string"\string
+ \glossarysection[\string\glossarytoctitle]{\string
+ \glossarytitle}\string\glossarypreamble}%
+% \end{macrocode}
+% Add all the xindy-only macro definitions (needed to prevent errors
+% in the event that the user changes from \pkgopt{xindy} to
+% \pkgopt{makeindex})
+% \begin{macrocode}
+ \@for\@this@ctr:=\@xdycounters\do{%
+ {%
+ \@for\@this@attr:=\@xdyattributelist\do{%
+ \protected@write\glswrite{}{\string\providecommand*%
+ \expandafter\string
+ \csname glsX\@this@ctr X\@this@attr\endcsname[2]%
+ {%
+ \string\setentrycounter
+ [\expandafter\@gobble\string\#1]{\@this@ctr}%
+ \expandafter\string
+ \csname\@this@attr\endcsname
+ {\expandafter\@gobble\string\#2}%
+ }%
+ }%
+ }%
+ }%
+ }%
+% \end{macrocode}
+% Add the end part of the open tag and the rest of the markup-index
+% information:
+% \begin{macrocode}
+ \write\glswrite{%
+ \string\begin
+ {theglossary}\string\glossaryheader\string~n\string" ^^J\space
+ \space\space:close \string"\expandafter\@gobble
+ \string\%\string~n\string
+ \end{theglossary}\string\glossarypostamble
+ \string~n\string" ^^J\space\space\space
+ :tree)}%
% \end{macrocode}
% Specify what to put between letter groups
% \begin{macrocode}
- \write\istfile{(markup-letter-group-list
- :sep \string"\string\glsgroupskip\string~n\string")}%
+ \write\glswrite{(markup-letter-group-list
+ :sep \string"\string\glsgroupskip\string~n\string")}%
% \end{macrocode}
% Specify what to put between entries
% \begin{macrocode}
- \write\istfile{(markup-indexentry
- :open \string"\string\relax \string\glsresetentrylist
- \string~n\string")}%
+ \write\glswrite{(markup-indexentry
+ :open \string"\string\relax \string\glsresetentrylist
+ \string~n\string")}%
% \end{macrocode}
% Specify how to format entries
% \begin{macrocode}
- \write\istfile{(markup-locclass-list :open
- \string"\glsopenbrace\string\glossaryentrynumbers
- \glsopenbrace\string\relax\space \string"^^J\space\space\space
- :sep \string", \string"
- :close \string"\glsclosebrace\glsclosebrace\string")}%
+ \write\glswrite{(markup-locclass-list :open
+ \string"\glsopenbrace\string\glossaryentrynumbers
+ \glsopenbrace\string\relax\space \string"^^J\space\space\space
+ :sep \string", \string"
+ :close \string"\glsclosebrace\glsclosebrace\string")}%
% \end{macrocode}
% Specify how to separate location numbers
% \begin{macrocode}
- \write\istfile{(markup-locref-list
- :sep \string"\string\delimN\space\string")}%
+ \write\glswrite{(markup-locref-list
+ :sep \string"\string\delimN\space\string")}%
% \end{macrocode}
% Specify how to indicate location ranges
% \begin{macrocode}
- \write\istfile{(markup-range
- :sep \string"\string\delimR\space\string")}%
+ \write\glswrite{(markup-range
+ :sep \string"\string\delimR\space\string")}%
% \end{macrocode}
% Specify 2-page and 3-page suffixes, if defined.
% First, the values must be sanitized to write them explicity.
@@ -11492,44 +7842,52 @@ counter as its value}}{%
% \begin{macrocode}
\ifx\gls@suffixF\@empty
\else
- \write\istfile{(markup-range
- :close "\gls@suffixF" :length 1 :ignore-end)}%
+ \write\glswrite{(markup-range
+ :close "\gls@suffixF" :length 1 :ignore-end)}%
\fi
\ifx\gls@suffixFF\@empty
\else
- \write\istfile{(markup-range
- :close "\gls@suffixFF" :length 2 :ignore-end)}%
+ \write\glswrite{(markup-range
+ :close "\gls@suffixFF" :length 2 :ignore-end)}%
\fi
% \end{macrocode}
% Specify how to format locations.
% \begin{macrocode}
- \write\istfile{^^J; define format to use for locations^^J}%
- \write\istfile{\@xdylocref}%
+ \write\glswrite{^^J; define format to use for locations^^J}%
+ \write\glswrite{\@xdylocref}%
% \end{macrocode}
% Specify how to separate letter groups.
% \begin{macrocode}
- \write\istfile{^^J; define letter group list format^^J}%
- \write\istfile{(markup-letter-group-list
- :sep \string"\string\glsgroupskip\string~n\string")}%
+ \write\glswrite{^^J; define letter group list format^^J}%
+ \write\glswrite{(markup-letter-group-list
+ :sep \string"\string\glsgroupskip\string~n\string")}%
% \end{macrocode}
% Define letter group headings.
% \begin{macrocode}
- \write\istfile{^^J; letter group headings^^J}%
- \write\istfile{(markup-letter-group
- :open-head \string"\string\glsgroupheading
- \glsopenbrace\string"^^J\space\space\space
- :close-head \string"\glsclosebrace\string")}%
+ \write\glswrite{^^J; letter group headings^^J}%
+ \write\glswrite{(markup-letter-group
+ :open-head \string"\string\glsgroupheading
+ \glsopenbrace\string"^^J\space\space\space
+ :close-head \string"\glsclosebrace\string")}%
% \end{macrocode}
% Define additional letter groups.
% \begin{macrocode}
- \write\istfile{^^J; additional letter groups^^J}%
- \write\istfile{\@xdylettergroups}%
+ \write\glswrite{^^J; additional letter groups^^J}%
+ \write\glswrite{\@xdylettergroups}%
% \end{macrocode}
% Define additional sort rules
% \begin{macrocode}
- \write\istfile{^^J; additional sort rules^^J}
- \write\istfile{\@xdysortrules}%
- \noist}
+ \write\glswrite{^^J; additional sort rules^^J}
+ \write\glswrite{\@xdysortrules}%
+% \end{macrocode}
+% Close the style file
+% \begin{macrocode}
+ \closeout\glswrite
+% \end{macrocode}
+% Suppress any further calls.
+% \begin{macrocode}
+ \let\writeist\relax
+ }
\else
% \end{macrocode}
% Code to use if \app{makeindex} is required.
@@ -11540,83 +7898,87 @@ counter as its value}}{%
\edef\@gls@levelchar{\string!}
\edef\@gls@quotechar{\string"}
\def\writeist{\relax
- \openout\istfile=\istfilename
- \write\istfile{\expandafter\@gobble\string\% makeindex style file
+ \openout\glswrite=\istfilename
+ \write\glswrite{\expandafter\@gobble\string\% makeindex style file
created by the glossaries package}
- \write\istfile{\expandafter\@gobble\string\% for document
+ \write\glswrite{\expandafter\@gobble\string\% for document
'\jobname' on \the\year-\the\month-\the\day}
- \write\istfile{actual '\@gls@actualchar'}
- \write\istfile{encap '\@gls@encapchar'}
- \write\istfile{level '\@gls@levelchar'}
- \write\istfile{quote '\@gls@quotechar'}
- \write\istfile{keyword \string"\string\\glossaryentry\string"}
- \write\istfile{preamble \string"\string\\glossarysection[\string
+ \write\glswrite{actual '\@gls@actualchar'}
+ \write\glswrite{encap '\@gls@encapchar'}
+ \write\glswrite{level '\@gls@levelchar'}
+ \write\glswrite{quote '\@gls@quotechar'}
+ \write\glswrite{keyword \string"\string\\glossaryentry\string"}
+ \write\glswrite{preamble \string"\string\\glossarysection[\string
\\glossarytoctitle]{\string\\glossarytitle}\string
\\glossarypreamble\string\n\string\\begin{theglossary}\string
\\glossaryheader\string\n\string"}
- \write\istfile{postamble \string"\string\%\string\n\string
+ \write\glswrite{postamble \string"\string\%\string\n\string
\\end{theglossary}\string\\glossarypostamble\string\n
\string"}
- \write\istfile{group_skip \string"\string\\glsgroupskip\string\n
+ \write\glswrite{group_skip \string"\string\\glsgroupskip\string\n
\string"}
- \write\istfile{item_0 \string"\string\%\string\n\string"}
- \write\istfile{item_1 \string"\string\%\string\n\string"}
- \write\istfile{item_2 \string"\string\%\string\n\string"}
- \write\istfile{item_01 \string"\string\%\string\n\string"}
- \write\istfile{item_x1
+ \write\glswrite{item_0 \string"\string\%\string\n\string"}
+ \write\glswrite{item_1 \string"\string\%\string\n\string"}
+ \write\glswrite{item_2 \string"\string\%\string\n\string"}
+ \write\glswrite{item_01 \string"\string\%\string\n\string"}
+ \write\glswrite{item_x1
\string"\string\\relax \string\\glsresetentrylist\string\n
\string"}
- \write\istfile{item_12 \string"\string\%\string\n\string"}
- \write\istfile{item_x2
+ \write\glswrite{item_12 \string"\string\%\string\n\string"}
+ \write\glswrite{item_x2
\string"\string\\relax \string\\glsresetentrylist\string\n
\string"}
% \end{macrocode}
%\changes{2.05}{2010 Feb 6}{Added \cs{string} before opening
% and closing braces. Patch provided by Segiu Dotenco}
% \begin{macrocode}
- \write\istfile{delim_0 \string"\string\{\string
+ \write\glswrite{delim_0 \string"\string\{\string
\\glossaryentrynumbers\string\{\string\\relax \string"}
- \write\istfile{delim_1 \string"\string\{\string
+ \write\glswrite{delim_1 \string"\string\{\string
\\glossaryentrynumbers\string\{\string\\relax \string"}
- \write\istfile{delim_2 \string"\string\{\string
+ \write\glswrite{delim_2 \string"\string\{\string
\\glossaryentrynumbers\string\{\string\\relax \string"}
- \write\istfile{delim_t \string"\string\}\string\}\string"}
- \write\istfile{delim_n \string"\string\\delimN \string"}
- \write\istfile{delim_r \string"\string\\delimR \string"}
- \write\istfile{headings_flag 1}
- \write\istfile{heading_prefix
+ \write\glswrite{delim_t \string"\string\}\string\}\string"}
+ \write\glswrite{delim_n \string"\string\\delimN \string"}
+ \write\glswrite{delim_r \string"\string\\delimR \string"}
+ \write\glswrite{headings_flag 1}
+ \write\glswrite{heading_prefix
\string"\string\\glsgroupheading\string\{\string"}
- \write\istfile{heading_suffix
+ \write\glswrite{heading_suffix
\string"\string\}\string\\relax
\string\\glsresetentrylist \string"}
- \write\istfile{symhead_positive \string"glssymbols\string"}
- \write\istfile{numhead_positive \string"glsnumbers\string"}
- \write\istfile{page_compositor \string"\glscompositor\string"}
+ \write\glswrite{symhead_positive \string"glssymbols\string"}
+ \write\glswrite{numhead_positive \string"glsnumbers\string"}
+ \write\glswrite{page_compositor \string"\glscompositor\string"}
\@gls@escbsdq\gls@suffixF
\@gls@escbsdq\gls@suffixFF
\ifx\gls@suffixF\@empty
\else
- \write\istfile{suffix_2p \string"\gls@suffixF\string"}
+ \write\glswrite{suffix_2p \string"\gls@suffixF\string"}
\fi
\ifx\gls@suffixFF\@empty
\else
- \write\istfile{suffix_3p \string"\gls@suffixFF\string"}
+ \write\glswrite{suffix_3p \string"\gls@suffixFF\string"}
\fi
- \noist
+ \closeout\glswrite
+ \let\writeist\relax
}
\fi
% \end{macrocode}
%\end{macro}
%
%The command \cs{noist} will suppress the creation of
-% the \filetype{.ist} file (it simply redefines
-% \cs{writeist} to do nothing). Obviously you need to use this
-% command before \cs{writeist} to have any effect. Since
-% the \filetype{.ist} file should only be created once, \cs{noist}
-% is called at the end of \cs{writeist}.
+% the \filetype{.ist} file. Obviously you need to use this
+% command before \cs{writeist} to have any effect.
%\begin{macro}{\noist}
% \begin{macrocode}
-\newcommand{\noist}{\let\writeist\relax}
+\newcommand{\noist}{%
+% \end{macrocode}
+% Update attributes list
+% \begin{macrocode}
+ \@gls@addpredefinedattributes
+ \let\writeist\relax
+}
% \end{macrocode}
%\end{macro}
%
@@ -11638,17 +8000,39 @@ counter as its value}}{%
%\begin{macro}{\@makeglossary}
% \begin{macrocode}
\newcommand*{\@makeglossary}[1]{%
-\ifglossaryexists{#1}{%
-\edef\glo@out{\csname @glotype@#1@out\endcsname}%
-\expandafter\newwrite\csname glo@#1@file\endcsname
-\edef\@glo@file{\csname glo@#1@file\endcsname}%
-\immediate\openout\@glo@file=\jobname.\glo@out
-\@gls@renewglossary
-\PackageInfo{glossaries}{Writing glossary file \jobname.\glo@out}
-\writeist
-}{\PackageError{glossaries}{%
-Glossary type `#1' not defined}{New glossaries must be defined before
-using \string\makeglossary}}}
+ \ifglossaryexists{#1}%
+ {%
+% \end{macrocode}
+% Only create a new write if \pkgopt[false]{savewrites} otherwise
+% create a token to collect the information.
+%\changes{3.0}{2010 Jul 12}{Added check for \pkgopt{savewrites}}
+% \begin{macrocode}
+ \ifglssavewrites
+ \expandafter\newtoks\csname glo@#1@filetok\endcsname
+ \else
+ \expandafter\newwrite\csname glo@#1@file\endcsname
+ \expandafter\@glsopenfile\csname glo@#1@file\endcsname{#1}%
+ \fi
+ \@gls@renewglossary
+ \writeist
+ }%
+ {%
+ \PackageError{glossaries}%
+ {Glossary type `#1' not defined}%
+ {New glossaries must be defined before using \string\makeglossary}%
+ }%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\@glsopenfile}
+% Open write file associated with the given glossary.
+% \begin{macrocode}
+\newcommand*{\@glsopenfile}[2]{%
+ \immediate\openout#1=\jobname.\csname @glotype@#2@out\endcsname
+ \PackageInfo{glossaries}{Writing glossary file
+ \jobname.\csname @glotype@#2@out\endcsname}%
+}
% \end{macrocode}
%\end{macro}
%
@@ -11670,6 +8054,7 @@ using \string\makeglossary}}}
%\begin{macro}{\makeglossaries}
% \begin{macrocode}
\newcommand*{\makeglossaries}{%
+% \end{macrocode}
% Write the name of the style file to the aux file
% (needed by \app{makeglossaries})
% \begin{macrocode}
@@ -11731,6 +8116,51 @@ using \string\makeglossary}}}
% \end{macrocode}
%
%\subsection{Writing information to associated files}
+%
+%
+%\begin{macro}{\glswrite}
+% The write used for style file also used for all other output files
+% if \pkgopt[true]{savewrites}.
+% \begin{macrocode}
+\newwrite\glswrite
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\istfile}
+%\changes{3.0}{2011/04/02}{deprecated}
+% Deprecated.
+% \begin{macrocode}
+\def\istfile{\glswrite}
+% \end{macrocode}
+%\end{macro}
+%
+% At the end of the document, the files should be created if
+% \pkgopt[true]{savewrites}.
+% \begin{macrocode}
+\AtEndDocument{%
+ \glswritefiles
+}
+% \end{macrocode}
+%\begin{macro}{\glswritefiles}
+% Only write the files if \pkgopt[true]{savewrites}
+% \begin{macrocode}
+\ifglssavewrites
+ \newcommand*{\glswritefiles}{%
+% \end{macrocode}
+% Iterate through all the glossaries
+% \begin{macrocode}
+ \forallglossaries{\@glo@type}{%
+ \@glsopenfile{\glswrite}{\@glo@type}%
+ \immediate\write\glswrite{%
+ \expandafter\the\csname glo@\@glo@type @filetok\endcsname}%
+ \immediate\closeout\glswrite
+ }%
+ }
+\else
+ \let\glswritefiles\relax
+\fi
+% \end{macrocode}
+%\end{macro}
+%
% The \cs{glossary} command is redefined so that it takes an
% optional argument \meta{type} to specify the glossary type (use
% \cs{glsdefaulttype} glossary by default).
@@ -11762,8 +8192,8 @@ using \string\makeglossary}}}
%\begin{macro}{\@gls@renewglossary}
% \begin{macrocode}
\newcommand{\@gls@renewglossary}{%
-\gdef\@glossary[##1]{\@bsphack\begingroup\@wrglossary{##1}}%
-\let\@gls@renewglossary\@empty
+ \gdef\@glossary[##1]{\@bsphack\begingroup\@wrglossary{##1}}%
+ \let\@gls@renewglossary\@empty
}
% \end{macrocode}
%\end{macro}
@@ -11773,9 +8203,17 @@ using \string\makeglossary}}}
% (the format of which is set in \cs{glslink}).
%\begin{macro}{\@wrglossary}
%\changes{1.17}{2008 December 26}{modified to allow for xindy support}
+%\changes{3.0}{2010 Jul 12}{modified to take into account
+%\pkgopt{savewrites}}
% \begin{macrocode}
\renewcommand*{\@wrglossary}[2]{%
- \expandafter\protected@write\csname glo@#1@file\endcsname{}{#2}%
+ \ifglssavewrites
+ \protected@edef\@gls@tmp{\the\csname glo@#1@filetok\endcsname#2}%
+ \expandafter\global\expandafter\csname glo@#1@filetok\endcsname
+ \expandafter{\@gls@tmp^^J}%
+ \else
+ \expandafter\protected@write\csname glo@#1@file\endcsname{}{#2}%
+ \fi
\endgroup\@esphack
}
% \end{macrocode}
@@ -11784,11 +8222,32 @@ using \string\makeglossary}}}
%\begin{macro}{\@do@wrglossary}
%\changes{1.17}{2008 December 26}{new}
% Write the glossary entry in the appropriate format.
-% (Need to set \@glsnumberformat and \@gls@counter prior to use.)
+% (Need to set \cs{@glsnumberformat} and \cs{@gls@counter} prior to use.)
% The argument is the entry's label.
+%\changes{3.0}{2011/04/02}{modified to use new format}
% \begin{macrocode}
\newcommand{\@do@wrglossary}[1]{%
% \end{macrocode}
+% Get the location and escape any special characters
+% \begin{macrocode}
+ \protected@edef\@glslocref{\theglsentrycounter}%
+ \@gls@checkmkidxchars\@glslocref
+% \end{macrocode}
+% Check if the hyper-location is the same as the location and set
+% the hyper prefix.
+%\changes{3.0}{2011/04/02}{added check for hyper location prefix}
+% \begin{macrocode}
+ \expandafter\ifx\theHglsentrycounter\theglsentrycounter
+ \def\@glo@counterprefix{}%
+ \else
+ \protected@edef\@glsHlocref{\theHglsentrycounter}%
+ \@gls@checkmkidxchars\@glsHlocref
+ \edef\@do@gls@getcounterprefix{\noexpand\@gls@getcounterprefix
+ {\@glslocref}{\@glsHlocref}%
+ }%
+ \@do@gls@getcounterprefix
+ \fi
+% \end{macrocode}
% Determine whether to use \app{xindy} or \app{makeindex}
% syntax
% \begin{macrocode}
@@ -11807,17 +8266,13 @@ using \string\makeglossary}}}
\fi
\fi
% \end{macrocode}
-% Get the location and escape any special characters
-% \begin{macrocode}
-\protected@edef\@glslocref{\theglsentrycounter}%
-\@gls@checkmkidxchars\@glslocref
-% \end{macrocode}
% Write to the glossary file using \app{xindy} syntax.
% \begin{macrocode}
\glossary[\csname glo@#1@type\endcsname]{%
(indexentry :tkey (\csname glo@#1@index\endcsname)
- :locref \string"\@glslocref\string" %
- :attr \string"\@glo@suffix\string" \@glo@range
+ :locref \string"{\@glo@counterprefix}{\@glslocref}\string" %
+ :attr \string"\@gls@counter\@glo@suffix\string"
+ \@glo@range
)
}%
\else
@@ -11825,7 +8280,8 @@ using \string\makeglossary}}}
% Convert the format information into the format required for
% \app{makeindex}
% \begin{macrocode}
- \@set@glo@numformat\@glo@numfmt\@gls@counter\@glsnumberformat
+ \@set@glo@numformat{\@glo@numfmt}{\@gls@counter}{\@glsnumberformat}%
+ {\@glo@counterprefix}%
% \end{macrocode}
% Write to the glossary file using \app{makeindex} syntax.
% \begin{macrocode}
@@ -11837,6 +8293,34 @@ using \string\makeglossary}}}
% \end{macrocode}
%\end{macro}
%
+%\begin{macro}{\@gls@getcounterprefix}
+% Get the prefix that needs to be prepended to counter in order to
+% get the hyper counter. (For example, with the standard
+% \cls{article} class and \sty{hyperref}, \ics{theequation} needs to
+% be prefixed with \meta{section num}|.| to get the equivalent
+% \ics{theHequation}.) NB this assumes that the prefix ends with a
+% dot, which is the standard. (Otherwise it makes the xindy location
+% classes more complicated.)
+% \begin{macrocode}
+\newcommand*\@gls@getcounterprefix[2]{%
+ \edef\@gls@thisloc{#1}\edef\@gls@thisHloc{#2}%
+ \ifx\@gls@thisloc\@gls@thisHloc
+ \def\@glo@counterprefix{}%
+ \else
+ \def\@gls@get@counterprefix##1.#1##2\end@getprefix{%
+ \def\@glo@tmp{##2}%
+ \ifx\@glo@tmp\@empty
+ \def\@glo@counterprefix{}%
+ \else
+ \def\@glo@counterprefix{##1}%
+ \fi
+ }%
+ \@gls@get@counterprefix#2.#1\end@getprefix
+ \fi
+}
+% \end{macrocode}
+%\end{macro}
+%
%\subsection{Glossary Entry Cross-References}
%\begin{macro}{\@do@seeglossary}
%\changes{1.17}{2008 December 26}{new}
@@ -11844,20 +8328,25 @@ using \string\makeglossary}}}
% The first argument is the entry's label, the second must be in
% the form \oarg{tag}\marg{list}, where \meta{tag} is a tag
% such as ``see'' and \meta{list} is a list of labels.
+%\changes{3.0}{2011/04/02}{Sanitize and escape cross-referencing
+%information}
% \begin{macrocode}
\newcommand{\@do@seeglossary}[2]{%
+\def\@gls@xref{#2}%
+\@onelevel@sanitize\@gls@xref
+\@gls@checkmkidxchars\@gls@xref
\ifglsxindy
\glossary[\csname glo@#1@type\endcsname]{%
(indexentry
:tkey (\csname glo@#1@index\endcsname)
- :xref (\string"#2\string")
+ :xref (\string"\@gls@xref\string")
:attr \string"see\string"
)
}%
\else
\glossary[\csname glo@#1@type\endcsname]{%
\string\glossaryentry{\csname glo@#1@index\endcsname
- \@gls@encapchar glsseeformat#2}{Z}}%
+ \@gls@encapchar glsseeformat\@gls@xref}{Z}}%
\fi
}
% \end{macrocode}
@@ -11879,12 +8368,12 @@ using \string\makeglossary}}}
%\begin{macro}{\glssee}
%\cs{glssee}\marg{label}\marg{cross-ref list}
%\changes{1.17}{2008 December 26}{new}
-% \begin{macrocode}
+% \begin{macrocode}
\newcommand*{\glssee}[3][\seename]{%
\@do@seeglossary{#2}{[#1]{#3}}}
\newcommand*{\@glssee}[3][\seename]{%
\glssee[#1]{#3}{#2}}
-% \end{macrocode}
+% \end{macrocode}
%\end{macro}
%
%\begin{macro}{\glsseeformat}
@@ -11951,8 +8440,19 @@ using \string\makeglossary}}}
%\begin{macro}{\glsseeitem}
%\cs{glsseeitem}\marg{label} formats individual entry in a
% cross-referencing list.
+%\changes{3.0}{2011/04/02}{hyperlink uses \cs{glsseeitemformat} instead
+%of \cs{glsentryname}}
+% \begin{macrocode}
+\newcommand*{\glsseeitem}[1]{\glshyperlink[\glsseeitemformat{#1}]{#1}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\glsseeitemformat}
+%\changes{3.0}{2011/04/02}{new}
+% As from v3.0, default is to use \ics{glsentrytext} instead of
+% \ics{glsentryname}. (To avoid problems with the \gloskey{name} key being
+% sanitized.)
% \begin{macrocode}
-\newcommand*{\glsseeitem}[1]{\glshyperlink{#1}}
+\newcommand*{\glsseeitemformat}[1]{\glsentrytext{#1}}
% \end{macrocode}
%\end{macro}
%
@@ -11985,14 +8485,17 @@ using \string\makeglossary}}}
% The TOC title needs to be processed in a different manner
% to the main title in case the \sty{translator} and \sty{hyperref} packages
% are both being used.
+%\changes{3.0}{2011/04/02}{replaced \cs{@ifundefined} with
+%\cs{ifcsundef}}
% \begin{macrocode}
-\@ifundefined{printglossary}{}{%
+\ifcsundef{printglossary}{}%
+{%
% \end{macrocode}
% If \cs{printglossary} is already defined, issue a warning
% and undefine it.
% \begin{macrocode}
\GlossariesWarning{Overriding \string\printglossary}%
- \let\printglossary\undefined
+ \undef\printglossary
}
% \end{macrocode}
% \cs{printglossary} has an optional argument. The default
@@ -12009,6 +8512,7 @@ using \string\makeglossary}}}
% \begin{macrocode}
\def\@glo@type{\glsdefaulttype}%
\def\glossarytitle{\csname @glotype@\@glo@type @title\endcsname}%
+ \let\org@glossarytitle\glossarytitle
\def\@glossarystyle{}%
\def\gls@dotoctitle{\glssettoctitle{\@glo@type}}%
% \end{macrocode}
@@ -12025,11 +8529,32 @@ using \string\makeglossary}}}
% \begin{macrocode}
\setkeys{printgloss}{#1}%
% \end{macrocode}
+% If title has been set, but toctitle hasn't, make toctitle the same
+% as given title (rather than the title used when the glossary was
+% defined)
+%\changes{3.0}{2011/04/02}{make toctitle default to title}
+% \begin{macrocode}
+ \ifx\glossarytitle\org@glossarytitle
+ \else
+ \expandafter\let\csname @glotype@\@glo@type @title\endcsname
+ \glossarytitle
+ \fi
+% \end{macrocode}
+% Allow a high-level user command to indicate the current glossary
+%\changes{3.0}{2011/04/02}{added \cs{currentglossary}}
+% \begin{macrocode}
+ \let\currentglossary\@glo@type
+% \end{macrocode}
%Enable individual number lists to be suppressed.
% \begin{macrocode}
\let\org@glossaryentrynumbers\glossaryentrynumbers
\let\glsnonextpages\@glsnonextpages
% \end{macrocode}
+% Enable individual number list to be activated:
+%\changes{3.0}{2011/04/02}{added \cs{glsnextpages}}
+% \begin{macrocode}
+ \let\glsnextpages\@glsnextpages
+% \end{macrocode}
% Enable suppression of description terminators.
% \begin{macrocode}
\let\nopostdesc\@nopostdesc
@@ -12062,12 +8587,16 @@ using \string\makeglossary}}}
% If \app{xindy} is being used, need to write the language
% dependent information to the \filetype{.aux} file for
% \app{makeglossaries}.
+%\changes{3.0}{2011/04/02}{replaced \cs{@ifundefined} with
+%\cs{ifcsundef}}
% \begin{macrocode}
\ifglsxindy
- \@ifundefined{@xdy@\@glo@type @language}{%
+ \ifcsundef{@xdy@\@glo@type @language}%
+ {%
\protected@write\@auxout{}{%
\string\@xdylanguage{\@glo@type}{\@xdy@main@language}}%
- }{%
+ }%
+ {%
\protected@write\@auxout{}{%
\string\@xdylanguage{\@glo@type}{\csname @xdy@\@glo@type
@language\endcsname}}%
@@ -12126,11 +8655,19 @@ using \string\makeglossary}}}
% \end{macrocode}
% The \gloskey[printglossary]{style} key sets the glossary style (but only for
% the given glossary).
+%\changes{3.0}{2011/04/02}{replaced \cs{@ifundefined} with
+%\cs{ifcsundef}}
% \begin{macrocode}
\define@key{printgloss}{style}{%
-\@ifundefined{@glsstyle@#1}{\PackageError{glossaries}{Glossary
-style `#1' undefined}{}}{%
-\def\@glossarystyle{\csname @glsstyle@#1\endcsname}}}
+ \ifcsundef{@glsstyle@#1}%
+ {%
+ \PackageError{glossaries}%
+ {Glossary style `#1' undefined}{}%
+ }%
+ {%
+ \def\@glossarystyle{\csname @glsstyle@#1\endcsname}%
+ }%
+}
% \end{macrocode}
% \changes{1.14}{2008 June 17}{added numberedsection key to 'printglossary}
% The \gloskey[printglossary]{numberedsection} key determines if this
@@ -12176,6 +8713,21 @@ false,nolabel,autolabel}[nolabel]{%
\glsresetentrylist}}
% \end{macrocode}
%\end{macro}
+%\begin{macro}{\@glsnextpages}
+%\changes{3.0}{2011/04/02}{new}%
+% Activate the next number list only. Global assignments required
+% as it may not occur in the same level of grouping as the
+% next numberlist. (For example, if \cs{glsnextpages} is place
+% in the entry's description and 3 column tabular style glossary
+% is used.) \cs{org@glossaryentrynumbers} needs to be set at
+% the start of each glossary, in the event that
+% \ics{glossaryentrynumber} is redefined.
+% \begin{macrocode}
+\newcommand*{\@glsnextpages}{%
+ \gdef\glossaryentrynumbers##1{%
+ ##1\glsresetentrylist}}
+% \end{macrocode}
+%\end{macro}
%\begin{macro}{\glsresetentrylist}
% Resets \cs{glossaryentrynumbers}
% \begin{macrocode}
@@ -12192,18 +8744,178 @@ false,nolabel,autolabel}[nolabel]{%
% \end{macrocode}
%\end{macro}
%
-%\DescribeEnv{theglossary}
+%\begin{macro}{\glsnextpages}
+% Outside of \cs{printglossary} this does nothing.
+% \begin{macrocode}
+\newcommand*{\glsnextpages}{}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{counter}{glossaryentry}
+%\changes{3.0}{2011/04/02}{new}
+% If the \pkgopt{entrycounter} package option has been used, define
+% a counter to number each level~0 entry.
+% \begin{macrocode}
+\ifglsentrycounter
+ \ifx\@gls@counterwithin\@empty
+ \newcounter{glossaryentry}
+ \else
+ \newcounter{glossaryentry}[\@gls@counterwithin]
+ \fi
+ \def\theHglossaryentry{\currentglossary.\theglossaryentry}
+\fi
+% \end{macrocode}
+%\end{counter}
+%
+%\begin{counter}{glossarysubentry}
+%\changes{3.0}{2011/04/02}{new}
+% If the \pkgopt{subentrycounter} package option has been used, define
+% a counter to number each level~1 entry.
+% \begin{macrocode}
+\ifglssubentrycounter
+ \ifglsentrycounter
+ \newcounter{glossarysubentry}[glossaryentry]
+ \else
+ \newcounter{glossarysubentry}
+ \fi
+ \def\theHglossarysubentry{\currentglssubentry.\theglossarysubentry}
+\fi
+% \end{macrocode}
+%\end{counter}
+%
+%\begin{macro}{\glsresetsubentrycounter}
+%\changes{3.0}{2011/04/02}{new}
+% Resets the \ctr{glossarysubentry} counter.
+% \begin{macrocode}
+\ifglssubentrycounter
+ \newcommand*{\glsresetsubentrycounter}{%
+ \setcounter{glossarysubentry}{0}%
+ }
+\else
+ \newcommand*{\glsresetsubentrycounter}{}
+\fi
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\glsstepentry}
+%\changes{3.0}{2011/04/02}{new}
+% Advance the \ctr{glossaryentry} counter if in use. The argument is
+% the label associated with the entry.
+% \begin{macrocode}
+\ifglsentrycounter
+ \newcommand*{\glsstepentry}[1]{%
+ \refstepcounter{glossaryentry}%
+ \label{glsentry-#1}%
+ }
+\else
+ \newcommand*{\glsstepentry}[1]{}
+\fi
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\glsstepsubentry}
+%\changes{3.0}{2011/04/02}{new}
+% Advance the \ctr{glossarysubentry} counter if in use. The argument is
+% the label associated with the subentry.
+% \begin{macrocode}
+\ifglssubentrycounter
+ \newcommand*{\glsstepsubentry}[1]{%
+ \def\currentglssubentry{#1}%
+ \refstepcounter{glossarysubentry}%
+ \label{glsentry-#1}%
+ }
+\else
+ \newcommand*{\glsstepsubentry}[1]{}
+\fi
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\glsrefentry}
+%\changes{3.0}{2011/04/02}{new}
+% Reference the entry or sub-entry counter if in use, otherwise just do
+% \ics{gls}.
+% \begin{macrocode}
+\ifglsentrycounter
+ \newcommand*{\glsrefentry}[1]{\ref{glsentry-#1}}
+\else
+ \ifglssubentrycounter
+ \newcommand*{\glsrefentry}[1]{\ref{glsentry-#1}}
+ \else
+ \newcommand*{\glsrefentry}[1]{\gls{#1}}
+ \fi
+\fi
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\glsentrycounterlabel}
+%\changes{3.0}{2011/04/02}{new}
+% Defines how to display the \ctr{glossaryentry} counter.
+% \begin{macrocode}
+\ifglsentrycounter
+ \newcommand*{\glsentrycounterlabel}{\theglossaryentry.\space}
+\else
+ \newcommand*{\glsentrycounterlabel}{}
+\fi
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\glssubentrycounterlabel}
+%\changes{3.0}{2011/04/02}{new}
+% Defines how to display the \ctr{glossarysubentry} counter.
+% \begin{macrocode}
+\ifglssubentrycounter
+ \newcommand*{\glssubentrycounterlabel}{\theglossarysubentry)\space}
+\else
+ \newcommand*{\glssubentrycounterlabel}{}
+\fi
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\glsentryitem}
+% Step and display \ctr{glossaryentry} counter, if appropriate.
+%\changes{3.0}{2011/04/02}{new}
+% \begin{macrocode}
+\ifglsentrycounter
+ \newcommand*{\glsentryitem}[1]{%
+ \glsstepentry{#1}\glsentrycounterlabel
+ }
+\else
+ \newcommand*{\glsentryitem}[1]{\glsresetsubentrycounter}
+\fi
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\glssubentryitem}
+% Step and display \ctr{glossarysubentry} counter, if appropriate.
+%\changes{3.0}{2011/04/02}{new}
+% \begin{macrocode}
+\ifglssubentrycounter
+ \newcommand*{\glssubentryitem}[1]{%
+ \glsstepsubentry{#1}\glssubentrycounterlabel
+ }
+\else
+ \newcommand*{\glssubentryitem}[1]{}
+\fi
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{environment}{theglossary}
% If the \env{theglossary} environment has
% already been defined, a warning will be issued.
% This environment should be redefined by glossary styles.
+%\changes{3.0}{2011/04/02}{replaced \cs{@ifundefined} with
+%\cs{ifcsundef}}
% \begin{macrocode}
-\@ifundefined{theglossary}{%
+\ifcsundef{theglossary}%
+{%
\newenvironment{theglossary}{}{}%
-}{%
+}%
+{%
\GlossariesWarning{overriding `theglossary' environment}%
\renewenvironment{theglossary}{}{}%
}
% \end{macrocode}
+%\end{environment}
%
% The glossary header is given by \cs{glossaryheader}.
% This forms part of the glossary style, and
@@ -12306,9 +9018,12 @@ false,nolabel,autolabel}[nolabel]{%
% \texttt{A}, \ldots, \texttt{Z}\@. If you want to redefine
% the group titles, you will need to redefine this command.
%\begin{macro}{\glsgetgrouptitle}
+%\changes{3.0}{2011/04/02}{replaced \cs{@ifundefined} with
+%\cs{ifcsundef}}
% \begin{macrocode}
\newcommand*{\glsgetgrouptitle}[1]{%
-\@ifundefined{#1groupname}{#1}{\csname #1groupname\endcsname}}
+ \ifcsundef{#1groupname}{#1}{\csname #1groupname\endcsname}%
+}
% \end{macrocode}
%\end{macro}
%\vskip5pt
@@ -12332,19 +9047,35 @@ false,nolabel,autolabel}[nolabel]{%
% \ics{glossary} argument so that the relevant counter is
% set prior to the formatting command.
%\begin{macro}{\setentrycounter}
+%\changes{3.0}{2011/04/02}{added optional argument}
% \begin{macrocode}
-\newcommand*{\setentrycounter}[1]{\def\glsentrycounter{#1}}
+\newcommand*{\setentrycounter}[2][]{%
+ \def\@glo@counterprefix{#1}%
+ \ifx\@glo@counterprefix\@empty
+ \def\@glo@counterprefix{.}%
+ \else
+ \def\@glo@counterprefix{.#1.}%
+ \fi
+ \def\glsentrycounter{#2}%
+}
% \end{macrocode}
%\end{macro}
%
% The current glossary style can be set using
% \cs{glossarystyle}\marg{style}.
%\begin{macro}{\glossarystyle}
+%\changes{3.0}{2011/04/02}{replaced \cs{@ifundefined} with
+%\cs{ifcsundef}}
% \begin{macrocode}
\newcommand*{\glossarystyle}[1]{%
-\@ifundefined{@glsstyle@#1}{\PackageError{glossaries}{Glossary
-style `#1' undefined}{}}{%
-\csname @glsstyle@#1\endcsname}}
+ \ifcsundef{@glsstyle@#1}%
+ {%
+ \PackageError{glossaries}{Glossary style `#1' undefined}{}%
+ }%
+ {%
+ \csname @glsstyle@#1\endcsname
+ }%
+}
% \end{macrocode}
%\end{macro}
%
@@ -12361,11 +9092,18 @@ style `#1' undefined}{}}{%
% 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{3.0}{2011/04/02}{replaced \cs{@ifundefined} with
+%\cs{ifcsundef}}
% \begin{macrocode}
\newcommand{\newglossarystyle}[2]{%
-\@ifundefined{@glsstyle@#1}{%
-\expandafter\def\csname @glsstyle@#1\endcsname{#2}}{%
-\PackageError{glossaries}{Glossary style `#1' is already defined}{}}}
+ \ifcsundef{@glsstyle@#1}%
+ {%
+ \expandafter\def\csname @glsstyle@#1\endcsname{#2}%
+ }%
+ {%
+ \PackageError{glossaries}{Glossary style `#1' is already defined}{}%
+ }%
+}
% \end{macrocode}
%\end{macro}
%
@@ -12405,11 +9143,16 @@ style `#1' undefined}{}}{%
%\begin{macro}{\glshypernumber}
%\changes{1.17}{2008 December 26}{modified to allow material
% to be attached to location}
+%\changes{3.0}{2011/04/02}{replaced \cs{@ifundefined} with
+%\cs{ifcsundef}}
% \begin{macrocode}
-\@ifundefined{hyperlink}{%
-\def\glshypernumber#1{#1}}{%
-\def\glshypernumber#1{%
- \@glshypernumber#1\nohyperpage{}\@nil}}
+\ifcsundef{hyperlink}%
+{%
+ \def\glshypernumber#1{#1}%
+}%
+{%
+ \def\glshypernumber#1{\@glshypernumber#1\nohyperpage{}\@nil}
+}
% \end{macrocode}
%\end{macro}
%
@@ -12480,7 +9223,11 @@ style `#1' undefined}{}}{%
\edef\x{\the\toks@}%
\ifx\x\empty
\else
- \hyperlink{\glsentrycounter.\the\toks@}{\the\toks@}%
+% \end{macrocode}
+%\changes{3.0}{2011/04/02}{added prefix to hyperlink}
+% \begin{macrocode}
+ \hyperlink{\glsentrycounter\@glo@counterprefix\the\toks@}%
+ {\the\toks@}%
\fi
\else
\@gls@ReturnAfterFi{%
@@ -12583,17 +9330,23 @@ style `#1' undefined}{}}{%
% \cs{gls} explicitly, e.g.\ "\gls{svm}['s]". Note that it is
% up to the user to load \isty{xspace} if desired.
%\changes{1.18}{2009 January 14}{new}
+%\changes{3.0}{2011/04/02}{replaced \cs{@ifundefined} with
+%\cs{ifcsundef}}
% \begin{macrocode}
\newcommand{\oldacronym}[4][\gls@label]{%
\def\gls@label{#2}%
\newacronym[#4]{#1}{#2}{#3}%
- \@ifundefined{xspace}{%
+ \ifcsundef{xspace}%
+ {%
\expandafter\edef\csname#1\endcsname{%
- \noexpand\@ifstar{\noexpand\Gls{#1}}{\noexpand\gls{#1}}}%
- }{%
+ \noexpand\@ifstar{\noexpand\Gls{#1}}{\noexpand\gls{#1}}%
+ }%
+ }%
+ {%
\expandafter\edef\csname#1\endcsname{%
\noexpand\@ifstar{\noexpand\Gls{#1}\noexpand\xspace}{%
- \noexpand\gls{#1}\noexpand\xspace}}%
+ \noexpand\gls{#1}\noexpand\xspace}%
+ }%
}%
}
% \end{macrocode}
@@ -12641,160 +9394,201 @@ style `#1' undefined}{}}{%
% \end{macrocode}
%\end{macro}
%
-% Make a note of the keys that are used to store the long and
-% short forms:
+% The following are defined for compatibility with version 2.07 and
+% earlier.
%\begin{macro}{\glsshortkey}
% \begin{macrocode}
-\newcommand*{\glsshortkey}{text}
+\newcommand*{\glsshortkey}{short}
% \end{macrocode}
%\end{macro}
%\begin{macro}{\glsshortpluralkey}
% \begin{macrocode}
-\newcommand*{\glsshortpluralkey}{plural}
+\newcommand*{\glsshortpluralkey}{shortplural}
% \end{macrocode}
%\end{macro}
%\begin{macro}{\glslongkey}
% \begin{macrocode}
-\newcommand*{\glslongkey}{description}
+\newcommand*{\glslongkey}{long}
% \end{macrocode}
%\end{macro}
%\begin{macro}{\glslongpluralkey}
% \begin{macrocode}
-\newcommand*{\glslongpluralkey}{descriptionplural}
+\newcommand*{\glslongpluralkey}{longplural}
% \end{macrocode}
%\end{macro}
%
-% Using the default definitions, \ics{acrshort} is the same as
-% \ics{glstext}, which means that it will print the abbreviation.
-%\begin{macro}{\acrshort}
+%\begin{macro}{\acrfull}
+% Full form of the acronym.
% \begin{macrocode}
-\newcommand*{\acrshort}[2][]{%
- \new@ifnextchar[{\@acrshort{#1}{#2}}{\@acrshort{#1}{#2}[]}}
+\newcommand*{\acrfull}{%
+ \@ifstar\s@acrfull\ns@acrfull
+}
% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\Acrshort}
-%\changes{1.13}{2008 May 10}{fixed bug that used all lower case version}
+%\changes{3.0}{2011/04/02}{added starred version}
% \begin{macrocode}
-\newcommand*{\Acrshort}[2][]{%
- \new@ifnextchar[{\@Acrshort{#1}{#2}}{\@Acrshort{#1}{#2}[]}}
+\newcommand*\s@acrfull[2][]{%
+ \new@ifnextchar[{\@acrfull{hyper=false,#1}{#2}}%
+ {\@acrfull{hyper=false,#1}{#2}[]}%
+}
+\newcommand*\ns@acrfull[2][]{%
+ \new@ifnextchar[{\@acrfull{#1}{#2}}%
+ {\@acrfull{#1}{#2}[]}%
+}
% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\ACRshort}
-%\changes{1.13}{2008 May 10}{fixed bug that used all lower case version}
+% Low-level macro:
% \begin{macrocode}
-\newcommand*{\ACRshort}[2][]{%
- \new@ifnextchar[{\@ACRshort{#1}{#2}}{\@ACRshort{#1}{#2}[]}}
+\def\@acrfull#1#2[#3]{%
+ \acrlinkfullformat{\@acrlong}{\@acrshort}{#1}{#2}{#3}%
+}
% \end{macrocode}
%\end{macro}
-% Plural:
-%\begin{macro}{\acrshortpl}
-%\changes{1.13}{2008 May 10}{new}
+%
+%\begin{macro}{\acrlinkfullformat}
+% Format for full links like \ics{acrfull}. Syntax:
+% \cs{acrlinkfullformat}\marg{long cs}\marg{short
+% cs}\marg{options}\marg{label}\marg{insert}
% \begin{macrocode}
-\newcommand*{\acrshortpl}[2][]{%
- \new@ifnextchar[{\@acrshortpl{#1}{#2}}{\@acrshortpl{#1}{#2}[]}}
+\newcommand{\acrlinkfullformat}[5]{%
+ \acrfullformat{#1{#3}{#4}[#5]}{#2{#3}{#4}[]}%
+}
% \end{macrocode}
%\end{macro}
-%\begin{macro}{\Acrshortpl}
-%\changes{1.13}{2008 May 10}{new}
+%
+%\begin{macro}{\acrfullformat}
+% Default full form is \meta{long}
+% (\cs{acronymfont}"{"\meta{short}"}").
% \begin{macrocode}
-\newcommand*{\Acrshortpl}[2][]{%
- \new@ifnextchar[{\@Acrshortpl{#1}{#2}}{\@Acrshortpl{#1}{#2}[]}}
+\newcommand{\acrfullformat}[2]{#1\space(\acronymfont{#2})}
% \end{macrocode}
%\end{macro}
-%\begin{macro}{\ACRshortpl}
-%\changes{1.13}{2008 May 10}{new}
+%
+% Default format for full acronym
+%\begin{macro}{\Acrfull}
% \begin{macrocode}
-\newcommand*{\ACRshortpl}[2][]{%
- \new@ifnextchar[{\@ACRshortpl{#1}{#2}}{\@ACRshortpl{#1}{#2}[]}}
+\newcommand*{\Acrfull}{%
+ \@ifstar\s@Acrfull\ns@Acrfull
+}
+% \end{macrocode}
+%\changes{3.0}{2011/04/02}{added starred version}
+% \begin{macrocode}
+\newcommand*\s@Acrfull[2][]{%
+ \new@ifnextchar[{\@Acrfull{hyper=false,#1}{#2}}%
+ {\@Acrfull{hyper=false,#1}{#2}[]}%
+}
+\newcommand*\ns@Acrfull[2][]{%
+ \new@ifnextchar[{\@Acrfull{#1}{#2}}%
+ {\@Acrfull{#1}{#2}[]}%
+}
+% \end{macrocode}
+% Low-level macro:
+% \begin{macrocode}
+\def\@Acrfull#1#2[#3]{%
+ \acrlinkfullformat{\@Acrlong}{\@acrshort}{#1}{#2}{#3}%
+}
% \end{macrocode}
%\end{macro}
%
-% \ics{acrlong} is set to \ics{glsdesc}, so it will print the long
-% form, unless the description key has been set to something else.
-%\begin{macro}{\acrlong}
+%\begin{macro}{\ACRfull}
% \begin{macrocode}
-\newcommand*{\acrlong}[2][]{%
- \new@ifnextchar[{\@acrlong{#1}{#2}}{\@acrlong{#1}{#2}[]}}
+\newcommand*{\ACRfull}{%
+ \@ifstar\s@ACRfull\ns@ACRfull
+}
% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\Acrlong}
-%\changes{1.13}{2008 May 10}{fixed bug that used all lower case version}
+%\changes{3.0}{2011/04/02}{added starred version}
% \begin{macrocode}
-\newcommand*{\Acrlong}[2][]{%
- \new@ifnextchar[{\@Acrlong{#1}{#2}}{\@Acrlong{#1}{#2}[]}}
+\newcommand*\s@ACRfull[2][]{%
+ \new@ifnextchar[{\@ACRfull{hyper=false,#1}{#2}}%
+ {\@ACRfull{hyper=false,#1}{#2}[]}%
+}
+\newcommand*\ns@ACRfull[2][]{%
+ \new@ifnextchar[{\@ACRfull{#1}{#2}}%
+ {\@ACRfull{#1}{#2}[]}%
+}
% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\ACRlong}
-%\changes{1.13}{2008 May 10}{fixed bug that used all lower case version}
+% Low-level macro:
% \begin{macrocode}
-\newcommand*{\ACRlong}[2][]{%
- \new@ifnextchar[{\@ACRlong{#1}{#2}}{\@ACRlong{#1}{#2}[]}}
+\def\@ACRfull#1#2[#3]{%
+ \acrlinkfullformat{\@ACRlong}{\@ACRshort}{#1}{#2}{#3}%
+}
% \end{macrocode}
%\end{macro}
+%
% Plural:
-%\begin{macro}{\acrlongpl}
+%\begin{macro}{\acrfullpl}
%\changes{1.13}{2008 May 10}{new}
% \begin{macrocode}
-\newcommand*{\acrlongpl}[2][]{%
- \new@ifnextchar[{\@acrlongpl{#1}{#2}}{\@acrlongpl{#1}{#2}[]}}
+\newcommand*{\acrfullpl}{%
+ \@ifstar\s@acrfullpl\ns@acrfullpl
+}
% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\Acrlongpl}
-%\changes{1.13}{2008 May 10}{new}
+%\changes{3.0}{2011/04/02}{added starred version}
% \begin{macrocode}
-\newcommand*{\Acrlongpl}[2][]{%
- \new@ifnextchar[{\@Acrlongpl{#1}{#2}}{\@Acrlongpl{#1}{#2}[]}}
+\newcommand*\s@acrfullpl[2][]{%
+ \new@ifnextchar[{\@acrfullpl{hyper=false,#1}{#2}}%
+ {\@acrfullpl{hyper=false,#1}{#2}[]}%
+}
+\newcommand*\ns@acrfullpl[2][]{%
+ \new@ifnextchar[{\@acrfullpl{#1}{#2}}%
+ {\@acrfullpl{#1}{#2}[]}%
+}
% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\ACRlongpl}
-%\changes{1.13}{2008 May 10}{new}
+% Low-level macro:
% \begin{macrocode}
-\newcommand*{\ACRlongpl}[2][]{%
- \new@ifnextchar[{\@ACRlongpl{#1}{#2}}{\@ACRlongpl{#1}{#2}[]}}
+\def\@acrfullpl#1#2[#3]{%
+ \acrlinkfullformat{\@acrlongpl}{\@acrshortpl}{#1}{#2}{#3}%
+}
% \end{macrocode}
%\end{macro}
%
-%
-% \ics{acrfull} is set to \ics{glsfirst}, so it should display the
-% full form.
-%\begin{macro}{\acrfull}
+%\begin{macro}{\Acrfullpl}
+%\changes{1.13}{2008 May 10}{new}
% \begin{macrocode}
-\newcommand*{\acrfull}[2][]{%
- \new@ifnextchar[{\@acrfull{#1}{#2}}{\@acrfull{#1}{#2}[]}}
+\newcommand*{\Acrfullpl}{%
+ \@ifstar\s@Acrfullpl\ns@Acrfullpl
+}
% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\Acrfull}
+%\changes{3.0}{2011/04/02}{added starred version}
% \begin{macrocode}
-\newcommand*{\Acrfull}[2][]{%
- \new@ifnextchar[{\@Acrfull{#1}{#2}}{\@Acrfull{#1}{#2}[]}}
+\newcommand*\s@Acrfullpl[2][]{%
+ \new@ifnextchar[{\@Acrfullpl{hyper=false,#1}{#2}}%
+ {\@Acrfullpl{hyper=false,#1}{#2}[]}%
+}
+\newcommand*\ns@Acrfullpl[2][]{%
+ \new@ifnextchar[{\@Acrfullpl{#1}{#2}}%
+ {\@Acrfullpl{#1}{#2}[]}%
+}
% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\ACRfull}
+% Low-level macro:
% \begin{macrocode}
-\newcommand*{\ACRfull}[2][]{%
- \new@ifnextchar[{\@ACRfull{#1}{#2}}{\@ACRfull{#1}{#2}[]}}
+\def\@Acrfullpl#1#2[#3]{%
+ \acrlinkfullformat{\@Acrlong}{\@acrshort}{#1}{#2}{#3}%
+}
% \end{macrocode}
%\end{macro}
-% Plural:
-%\begin{macro}{\acrfullpl}
+%
+%\begin{macro}{\ACRfullpl}
%\changes{1.13}{2008 May 10}{new}
% \begin{macrocode}
-\newcommand*{\acrfullpl}[2][]{%
- \new@ifnextchar[{\@acrfullpl{#1}{#2}}{\@acrfullpl{#1}{#2}[]}}
+\newcommand*{\ACRfullpl}{%
+ \@ifstar\s@ACRfullpl\ns@ACRfullpl
+}
% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\Acrfullpl}
-%\changes{1.13}{2008 May 10}{new}
+%\changes{3.0}{2011/04/02}{added starred version}
% \begin{macrocode}
-\newcommand*{\Acrfullpl}[2][]{%
- \new@ifnextchar[{\@Acrfullpl{#1}{#2}}{\@Acrfullpl{#1}{#2}[]}}
+\newcommand*\s@ACRfullpl[2][]{%
+ \new@ifnextchar[{\@ACRfullpl{hyper=false,#1}{#2}}%
+ {\@ACRfullpl{hyper=false,#1}{#2}[]}%
+}
+\newcommand*\ns@ACRfullpl[2][]{%
+ \new@ifnextchar[{\@ACRfullpl{#1}{#2}}%
+ {\@ACRfullpl{#1}{#2}[]}%
+}
% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\ACRfullpl}
-%\changes{1.13}{2008 May 10}{new}
+% Low-level macro:
% \begin{macrocode}
-\newcommand*{\ACRfullpl}[2][]{%
- \new@ifnextchar[{\@ACRfullpl{#1}{#2}}{\@ACRfullpl{#1}{#2}[]}}
+\def\@ACRfullpl#1#2[#3]{%
+ \acrlinkfullformat{\@ACRlongpl}{\@ACRshortpl}{#1}{#2}{#3}%
+}
% \end{macrocode}
%\end{macro}
%
@@ -12869,14 +9663,21 @@ style `#1' undefined}{}}{%
{%
type=\acronymtype,%
name={\the\glsshorttok},%
- description={\the\glslongtok},%
- text={\the\glsshorttok},%
sort={\the\glsshorttok},%
- descriptionplural={\the\glslongtok\noexpand\acrpluralsuffix},%
- first={\the\glslongtok\space(\the\glsshorttok)},%
+ text={\the\glsshorttok},%
+ first={\acrfullformat{\the\glslongtok}{\the\glsshorttok}},%
plural={\the\glsshorttok\noexpand\acrpluralsuffix},%
- firstplural={\noexpand\@glo@descplural\space
- (\noexpand\@glo@plural)},%
+ firstplural={\acrfullformat{\noexpand\@glo@longpl}%
+ {\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},%
+% \end{macrocode}
+% Remaining options specified by the user:
+% \begin{macrocode}
\the\glskeylisttok
}%
}%
@@ -12917,32 +9718,31 @@ style `#1' undefined}{}}{%
\newacronymhook
\DefaultNewAcronymDef
}%
+ \renewcommand*{\acrpluralsuffix}{\glspluralsuffix}%
+}
% \end{macrocode}
-% Define short cuts.
+%\end{macro}
+%
+%\begin{macro}{\acrfootnote}
+%\changes{3.0}{2011/04/02}{new}
+% Used by the footnote acronym styles.
% \begin{macrocode}
- \renewcommand*{\acrpluralsuffix}{\glspluralsuffix}%
- \renewcommand*{\glsshortkey}{text}%
- \renewcommand*{\glsshortpluralkey}{plural}%
- \renewcommand*{\glslongkey}{description}%
- \renewcommand*{\glslongpluralkey}{descriptionplural}%
- \def\@acrshort##1##2[##3]{\@glstext@{##1}{##2}[##3]}%
- \def\@Acrshort##1##2[##3]{\@Glstext@{##1}{##2}[##3]}%
- \def\@ACRshort##1##2[##3]{\@GLStext@{##1}{##2}[##3]}%
- \def\@acrshortpl##1##2[##3]{\@glsplural@{##1}{##2}[##3]}%
- \def\@Acrshortpl##1##2[##3]{\@Glsplural@{##1}{##2}[##3]}%
- \def\@ACRshortpl##1##2[##3]{\@GLSplural@{##1}{##2}[##3]}%
- \def\@acrlong##1##2[##3]{\@glsdesc@{##1}{##2}[##3]}%
- \def\@Acrlong##1##2[##3]{\@Glsdesc@{##1}{##2}[##3]}%
- \def\@ACRlong##1##2[##3]{\@GLSdesc@{##1}{##2}[##3]}%
- \def\@acrlongpl##1##2[##3]{\@glsdescplural@{##1}{##2}[##3]}%
- \def\@Acrlongpl##1##2[##3]{\@Glsdescplural@{##1}{##2}[##3]}%
- \def\@ACRlongpl##1##2[##3]{\@GLSdescplural@{##1}{##2}[##3]}%
- \def\@acrfull##1##2[##3]{\@glsfirst@{##1}{##2}[##3]}%
- \def\@Acrfull##1##2[##3]{\@Glsfirst@{##1}{##2}[##3]}%
- \def\@ACRfull##1##2[##3]{\@GLSfirst@{##1}{##2}[##3]}%
- \def\@acrfullpl##1##2[##3]{\@glsfirstplural@{##1}{##2}[##3]}%
- \def\@Acrfullpl##1##2[##3]{\@Glsfirstplural@{##1}{##2}[##3]}%
- \def\@ACRfullpl##1##2[##3]{\@GLSfirstplural@{##1}{##2}[##3]}%
+\newcommand*{\acrfootnote}[3]{\acrlinkfootnote{#1}{#2}{#3}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\acrlinkfootnote}
+%\changes{3.0}{2011/04/02}{new}
+% \begin{macrocode}
+\newcommand*{\acrlinkfootnote}[3]{%
+ \footnote{\glslink[#1]{#2}{#3}}%
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\acrnolinkfootnote}
+%\changes{3.0}{2011/04/02}{new}
+% \begin{macrocode}
+\newcommand*{\acrnolinkfootnote}[3]{%
+ \footnote{#3}%
}
% \end{macrocode}
%\end{macro}
@@ -12951,12 +9751,14 @@ style `#1' undefined}{}}{%
% Sets the acronym display style for given glossary for the
% description and footnote combination.
%\changes{2.04}{2009 November 10}{new}
+%\changes{3.0}{2011/04/02}{expanded options link options}
% \begin{macrocode}
\newcommand*{\SetDescriptionFootnoteAcronymDisplayStyle}[1]{%
\defglsdisplayfirst[#1]{%
\firstacronymfont{##1}##4%
- \protect\footnote{%
- \glslink[\@gls@link@opts]{\@gls@link@label}{##3}}}%
+ \expandafter\protect\expandafter\acrfootnote\expandafter
+ {\@gls@link@opts}{\@gls@link@label}{##3}
+ }%
\defglsdisplay[#1]{\acronymfont{##1}##4}%
}
% \end{macrocode}
@@ -12972,6 +9774,10 @@ style `#1' undefined}{}}{%
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
@@ -13004,62 +9810,6 @@ style `#1' undefined}{}}{%
\DescriptionFootnoteNewAcronymDef
}%
% \end{macrocode}
-% Set up the commands to make a note of the keys to store the long
-% and short forms:
-% \begin{macrocode}
- \def\glsshortkey{text}%
- \def\glsshortpluralkey{plural}%
- \def\glslongkey{symbol}%
- \def\glslongpluralkey{symbolplural}%
-% \end{macrocode}
-% Set up short cuts. Short form:
-% \begin{macrocode}
- \def\@acrshort##1##2[##3]{%
- \acronymfont{\@glstext@{##1}{##2}[##3]}}%
- \def\@Acrshort##1##2[##3]{%
- \acronymfont{\@Glstext@{##1}{##2}[##3]}}%
- \def\@ACRshort##1##2[##3]{%
- \acronymfont{\@GLStext@{##1}{##2}[##3]}}%
-% \end{macrocode}
-% Plural form:
-% \begin{macrocode}
- \def\@acrshortpl##1##2[##3]{%
- \acronymfont{\@glsplural@{##1}{##2}[##3]}}%
- \def\@Acrshortpl##1##2[##3]{%
- \acronymfont{\@Glsplural@{##1}{##2}[##3]}}%
- \def\@ACRshortpl##1##2[##3]{%
- \acronymfont{\@GLSplural@{##1}{##2}[##3]}}%
-% \end{macrocode}
-% Long form:
-% \begin{macrocode}
- \def\@acrlong##1##2[##3]{\@glssymbol@{##1}{##2}[##3]}%
- \def\@Acrlong##1##2[##3]{\@Glssymbol@{##1}{##2}[##3]}%
- \def\@ACRlong##1##2[##3]{\@GLSsymbol@{##1}{##2}[##3]}%
-% \end{macrocode}
-% Plural long form:
-% \begin{macrocode}
- \def\@acrlongpl##1##2[##3]{\@glssymbolplural@{##1}{##2}[##3]}%
- \def\@Acrlongpl##1##2[##3]{\@Glssymbolplural@{##1}{##2}[##3]}%
- \def\@ACRlongpl##1##2[##3]{\@GLSsymbolplural@{##1}{##2}[##3]}%
-% \end{macrocode}
-% Full form:
-% \begin{macrocode}
- \def\@acrfull##1##2[##3]{\@glssymbol@{##1}{##2}[##3]
- (\acronymfont{\@glstext@{##1}{##2}[##3]})}%
- \def\@Acrfull##1##2[##3]{\@Glssymbol@{##1}{##2}[##3]
- (\acronymfont{\@glstext@{##1}{##2}[##3]})}%
- \def\@ACRfull##1##2[##3]{\@GLSsymbol@{##1}{##2}[##3]
- (\acronymfont{\@GLStext@{##1}{##2}[##3]})}%
-% \end{macrocode}
-% Plural full form:
-% \begin{macrocode}
- \def\@acrfullpl##1##2[##3]{\@glssymbolplural@{##1}{##2}[##3]
- (\acronymfont{\@glsplural@{##1}{##2}[##3]})}%
- \def\@Acrfullpl##1##2[##3]{\@Glssymbolplural@{##1}{##2}[##3]
- (\acronymfont{\@glsplural@{##1}{##2}[##3]})}%
- \def\@ACRfullpl##1##2[##3]{\@GLSsymbolplural@{##1}{##2}[##3]
- (\acronymfont{\@GLSplural@{##1}{##2}[##3]})}%
-% \end{macrocode}
%
% If \pkgopt{footnote} package option is specified, set the first
% use to append the long form (stored in \gloskey{symbol}) as a
@@ -13119,6 +9869,10 @@ style `#1' undefined}{}}{%
sort={\the\glslongtok},
text={\the\glslongtok},%
plural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ short={\the\glsshorttok},%
+ shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ long={\the\glslongtok},%
+ longplural={\the\glslongtok\noexpand\acrpluralsuffix},%
symbol={\the\glsshorttok},%
symbolplural={\the\glsshorttok\noexpand\acrpluralsuffix},%
\the\glskeylisttok
@@ -13159,62 +9913,6 @@ style `#1' undefined}{}}{%
\DescriptionDUANewAcronymDef
}%
% \end{macrocode}
-% Set up the commands to make a note of the keys to store the long
-% and short forms:
-% \begin{macrocode}
- \def\glsshortkey{symbol}%
- \def\glsshortpluralkey{symbolplural}%
- \def\glslongkey{first}%
- \def\glslongpluralkey{plural}%
-% \end{macrocode}
-% Set up short cuts. Short form:
-% \begin{macrocode}
- \def\@acrshort##1##2[##3]{%
- \acronymfont{\@glssymbol@{##1}{##2}[##3]}}%
- \def\@Acrshort##1##2[##3]{%
- \acronymfont{\@Glssymbol@{##1}{##2}[##3]}}%
- \def\@ACRshort##1##2[##3]{%
- \acronymfont{\@GLSsymbol@{##1}{##2}[##3]}}%
-% \end{macrocode}
-% Plural short form:
-% \begin{macrocode}
- \def\@acrshortpl##1##2[##3]{%
- \acronymfont{\@glssymbolplural@{##1}{##2}[##3]}}%
- \def\@Acrshortpl##1##2[##3]{%
- \acronymfont{\@Glssymbolplural@{##1}{##2}[##3]}}%
- \def\@ACRshortpl##1##2[##3]{%
- \acronymfont{\@GLSsymbolplural@{##1}{##2}[##3]}}%
-% \end{macrocode}
-% Long form:
-% \begin{macrocode}
- \def\@acrlong##1##2[##3]{\@glsfirst@{##1}{##2}[##3]}%
- \def\@Acrlong##1##2[##3]{\@Glsfirst@{##1}{##2}[##3]}%
- \def\@ACRlong##1##2[##3]{\@GLSfirst@{##1}{##2}[##3]}%
-% \end{macrocode}
-% Plural long form:
-% \begin{macrocode}
- \def\@acrlongpl##1##2[##3]{\@glsfirstplural@{##1}{##2}[##3]}%
- \def\@Acrlongpl##1##2[##3]{\@Glsfirstplural@{##1}{##2}[##3]}%
- \def\@ACRlongpl##1##2[##3]{\@GLSfirstplural@{##1}{##2}[##3]}%
-% \end{macrocode}
-% Full form:
-% \begin{macrocode}
- \def\@acrfull##1##2[##3]{\@glsfirst@{##1}{##2}[##3]
- (\acronymfont{\@glssymbol@{##1}{##2}[##3]})}%
- \def\@Acrfull##1##2[##3]{\@Glsfirst@{##1}{##2}[##3]
- (\acronymfont{\@glssymbol@{##1}{##2}[##3]})}%
- \def\@ACRfull##1##2[##3]{\@GLSfirst@{##1}{##2}[##3]
- (\acronymfont{\@GLSsymbol@{##1}{##2}[##3]})}%
-% \end{macrocode}
-% Plural full form:
-% \begin{macrocode}
- \def\@acrfullpl##1##2[##3]{\@glsfirstplural@{##1}{##2}[##3]
- (\acronymfont{\@glssymbolplural@{##1}{##2}[##3]})}%
- \def\@Acrfullpl##1##2[##3]{\@Glsfirstplural@{##1}{##2}[##3]
- (\acronymfont{\@glssymbolplural@{##1}{##2}[##3]})}%
- \def\@ACRfullpl##1##2[##3]{\@GLSfirstplural@{##1}{##2}[##3]
- (\acronymfont{\@GLSsymbolplural@{##1}{##2}[##3]})}%
-% \end{macrocode}
% Set display.
% \begin{macrocode}
\@for\@gls@type:=\@glsacronymlists\do{%
@@ -13226,7 +9924,7 @@ style `#1' undefined}{}}{%
%
%\begin{macro}{\SetDescriptionAcronymDisplayStyle}
% Sets the acronym display style for given glossary using
-% the description setting (but not footnote or dua).
+% the description setting (but not \pkgopt{footnote} or \pkgopt{dua}).
%\changes{2.04}{2009 November 10}{new}
% \begin{macrocode}
\newcommand*{\SetDescriptionAcronymDisplayStyle}[1]{%
@@ -13250,6 +9948,10 @@ style `#1' undefined}{}}{%
firstplural={\the\glslongtok\noexpand\acrpluralsuffix},%
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={\noexpand\@glo@text},%
symbolplural={\noexpand\@glo@plural},%
\the\glskeylisttok}%
@@ -13283,62 +9985,6 @@ style `#1' undefined}{}}{%
\DescriptionNewAcronymDef
}%
% \end{macrocode}
-% Set up the commands to make a note of the keys to store the long
-% and short forms:
-% \begin{macrocode}
- \def\glsshortkey{text}%
- \def\glsshortpluralkey{plural}%
- \def\glslongkey{first}%
- \def\glslongpluralkey{firstplural}%
-% \end{macrocode}
-% Set up short cuts. Short form:
-% \begin{macrocode}
- \def\@acrshort##1##2[##3]{%
- \acronymfont{\@glstext@{##1}{##2}[##3]}}%
- \def\@Acrshort##1##2[##3]{%
- \acronymfont{\@Glstext@{##1}{##2}[##3]}}%
- \def\@ACRshort##1##2[##3]{%
- \acronymfont{\@GLStext@{##1}{##2}[##3]}}%
-% \end{macrocode}
-% Plural short form:
-% \begin{macrocode}
- \def\@acrshortpl##1##2[##3]{%
- \acronymfont{\@glsplural@{##1}{##2}[##3]}}%
- \def\@Acrshortpl##1##2[##3]{%
- \acronymfont{\@Glsplural@{##1}{##2}[##3]}}%
- \def\@ACRshortpl##1##2[##3]{%
- \acronymfont{\@GLSplural@{##1}{##2}[##3]}}%
-% \end{macrocode}
-% Long form:
-% \begin{macrocode}
- \def\@acrlong##1##2[##3]{\@glsfirst@{##1}{##2}[##3]}%
- \def\@Acrlong##1##2[##3]{\@Glsfirst@{##1}{##2}[##3]}%
- \def\@ACRlong##1##2[##3]{\@GLSfirst@{##1}{##2}[##3]}%
-% \end{macrocode}
-% Plural long form:
-% \begin{macrocode}
- \def\@acrlongpl##1##2[##3]{\@glsfirstplural@{##1}{##2}[##3]}%
- \def\@Acrlongpl##1##2[##3]{\@Glsfirstplural@{##1}{##2}[##3]}%
- \def\@ACRlongpl##1##2[##3]{\@GLSfirstplural@{##1}{##2}[##3]}%
-% \end{macrocode}
-% Full form:
-% \begin{macrocode}
- \def\@acrfull##1##2[##3]{\@glsfirst@{##1}{##2}[##3]
- (\acronymfont{\@glssymbol@{##1}{##2}[##3]})}%
- \def\@Acrfull##1##2[##3]{\@Glsfirst@{##1}{##2}[##3]
- (\acronymfont{\@glssymbol@{##1}{##2}[##3]})}%
- \def\@ACRfull##1##2[##3]{\@GLSfirst@{##1}{##2}[##3]
- (\acronymfont{\@GLSsymbol@{##1}{##2}[##3]})}%
-% \end{macrocode}
-% Plural full form:
-% \begin{macrocode}
- \def\@acrfullpl##1##2[##3]{\@glsfirstplural@{##1}{##2}[##3]
- (\acronymfont{\@glssymbolplural@{##1}{##2}[##3]})}%
- \def\@Acrfullpl##1##2[##3]{\@Glsfirstplural@{##1}{##2}[##3]
- (\acronymfont{\@glssymbolplural@{##1}{##2}[##3]})}%
- \def\@ACRfullpl##1##2[##3]{\@GLSfirstplural@{##1}{##2}[##3]
- (\acronymfont{\@GLSsymbolplural@{##1}{##2}[##3]})}%
-% \end{macrocode}
% Set display.
% \begin{macrocode}
\@for\@gls@type:=\@glsacronymlists\do{%
@@ -13366,14 +10012,15 @@ style `#1' undefined}{}}{%
%
%\begin{macro}{\SetFootnoteAcronymDisplayStyle}
% Sets the acronym display style for given glossary with
-% footnote setting (but not description or dua).
+% footnote setting (but not \pkgopt{description} or \pkgopt{dua}).
%\changes{2.04}{2009 November 10}{new}
% \begin{macrocode}
\newcommand*{\SetFootnoteAcronymDisplayStyle}[1]{%
\defglsdisplayfirst[#1]{%
- \firstacronymfont{##1}##4\protect\footnote{%
- \protect\glslink
- [\@gls@link@opts]{\@gls@link@label}{##2}}}%
+ \firstacronymfont{##1}##4%
+ \expandafter\protect\expandafter\acrfootnote\expandafter
+ {\@gls@link@opts}{\@gls@link@label}{##2}%
+ }%
\defglsdisplay[#1]{\acronymfont{##1}##4}%
}
% \end{macrocode}
@@ -13389,6 +10036,10 @@ style `#1' undefined}{}}{%
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},%
description={\the\glslongtok},%
descriptionplural={\the\glslongtok\noexpand\acrpluralsuffix},%
\the\glskeylisttok
@@ -13420,14 +10071,6 @@ style `#1' undefined}{}}{%
\FootnoteNewAcronymDef
}%
% \end{macrocode}
-% Set up the commands to make a note of the keys to store the long
-% and short forms:
-% \begin{macrocode}
- \def\glsshortkey{text}%
- \def\glsshortpluralkey{plural}%
- \def\glslongkey{description}%
- \def\glslongpluralkey{descriptionplural}%
-% \end{macrocode}
% Set display
%\changes{1.12}{2008 Mar 8}{Added 'protect before 'footnote and
% 'glslink}
@@ -13436,51 +10079,6 @@ style `#1' undefined}{}}{%
\SetFootnoteAcronymDisplayStyle{\@gls@type}%
}%
% \end{macrocode}
-% Set up short cuts. Short form:
-% \begin{macrocode}
- \def\@acrshort##1##2[##3]{\acronymfont{\@glstext@{##1}{##2}[##3]}}%
- \def\@Acrshort##1##2[##3]{\acronymfont{\@Glstext@{##1}{##2}[##3]}}%
- \def\@ACRshort##1##2[##3]{\acronymfont{\@GLStext@{##1}{##2}[##3]}}%
-% \end{macrocode}
-% Plural short form:
-% \begin{macrocode}
- \def\@acrshortpl##1##2[##3]{%
- \acronymfont{\@glsplural@{##1}{##2}[##3]}}%
- \def\@Acrshortpl##1##2[##3]{%
- \acronymfont{\@Glsplural@{##1}{##2}[##3]}}%
- \def\@ACRshortpl##1##2[##3]{%
- \acronymfont{\@GLSplural@{##1}{##2}[##3]}}%
-% \end{macrocode}
-% Long form:
-% \begin{macrocode}
- \def\@acrlong##1##2[##3]{\@glsdesc@{##1}{##2}[##3]}%
- \def\@Acrlong##1##2[##3]{\@Glsdesc@{##1}{##2}[##3]}%
- \def\@ACRlong##1##2[##3]{\@GLSdesc@{##1}{##2}[##3]}%
-% \end{macrocode}
-% Plural long form:
-% \begin{macrocode}
- \def\@acrlongpl##1##2[##3]{\@glsdescplural@{##1}{##2}[##3]}%
- \def\@Acrlongpl##1##2[##3]{\@Glsdescplural@{##1}{##2}[##3]}%
- \def\@ACRlongpl##1##2[##3]{\@GLSdescplural@{##1}{##2}[##3]}%
-% \end{macrocode}
-% Full form:
-% \begin{macrocode}
- \def\@acrfull##1##2[##3]{\@glsdesc@{##1}{##2}[##3]
- (\@glstext@{##1}{##2}[##3])}%
- \def\@Acrfull##1##2[##3]{\@Glsdesc@{##1}{##2}[##3]
- (\@glstext@{##1}{##2}[##3])}%
- \def\@ACRfull##1##2[##3]{\@GLSdesc@{##1}{##2}[##3]
- (\@GLStext@{##1}{##2}[##3])}%
-% \end{macrocode}
-% Plural full form:
-% \begin{macrocode}
- \def\@acrfullpl##1##2[##3]{\@glsdescplural@{##1}{##2}[##3]
- (\@glsplural@{##1}{##2}[##3])}%
- \def\@Acrfullpl##1##2[##3]{\@Glsdesctext@{##1}{##2}[##3]
- (\@glsplural@{##1}{##2}[##3])}%
- \def\@ACRfullpl##1##2[##3]{\@GLSdesctext@{##1}{##2}[##3]
- (\@GLSplural@{##1}{##2}[##3])}%
-% \end{macrocode}
% 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.
@@ -13532,6 +10130,10 @@ style `#1' undefined}{}}{%
plural={\noexpand\@glo@symbolplural},%
first={\the\glslongtok},%
firstplural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ short={\the\glsshorttok},%
+ shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ long={\the\glslongtok},%
+ longplural={\the\glslongtok\noexpand\acrpluralsuffix},%
description={\noexpand\@glo@first},%
descriptionplural={\noexpand\@glo@firstplural},%
symbol={\the\glsshorttok},%
@@ -13565,14 +10167,6 @@ style `#1' undefined}{}}{%
\SmallNewAcronymDef
}%
% \end{macrocode}
-% Set up the commands to make a note of the keys to store the long
-% and short forms:
-% \begin{macrocode}
- \def\glsshortkey{symbol}%
- \def\glsshortpluralkey{symbolplural}%
- \def\glslongkey{first}%
- \def\glslongpluralkey{firstplural}%
-% \end{macrocode}
% Change the display since \gloskey{first} only contains long form.
% \begin{macrocode}
\@for\@gls@type:=\@glsacronymlists\do{%
@@ -13593,54 +10187,6 @@ style `#1' undefined}{}}{%
\renewcommand*{\acronymfont}[1]{\textsmaller{##1}}
\fi
% \end{macrocode}
-% Set up short cuts. Short form:
-% \begin{macrocode}
- \def\@acrshort##1##2[##3]{%
- \acronymfont{\@glstext@{##1}{##2}[##3]}}%
- \def\@Acrshort##1##2[##3]{%
- \acronymfont{\@Glstext@{##1}{##2}[##3]}}%
- \def\@ACRshort##1##2[##3]{%
- \acronymfont{\@GLStext@{##1}{##2}[##3]}}%
-% \end{macrocode}
-% Plural short form:
-% \begin{macrocode}
- \def\@acrshortpl##1##2[##3]{%
- \acronymfont{\@glsplural@{##1}{##2}[##3]}}%
- \def\@Acrshortpl##1##2[##3]{%
- \acronymfont{\@Glsplural@{##1}{##2}[##3]}}%
- \def\@ACRshortpl##1##2[##3]{%
- \acronymfont{\@GLSplural@{##1}{##2}[##3]}}%
-% \end{macrocode}
-% Long form:
-% \begin{macrocode}
- \def\@acrlong##1##2[##3]{\@glsfirst@{##1}{##2}[##3]}%
- \def\@Acrlong##1##2[##3]{\@Glsfirst@{##1}{##2}[##3]}%
- \def\@ACRlong##1##2[##3]{\@GLSfirst@{##1}{##2}[##3]}%
-% \end{macrocode}
-% Plural long form:
-% \begin{macrocode}
- \def\@acrlongpl##1##2[##3]{\@glsfirstplural@{##1}{##2}[##3]}%
- \def\@Acrlongpl##1##2[##3]{\@Glsfirstplural@{##1}{##2}[##3]}%
- \def\@ACRlongpl##1##2[##3]{\@GLSfirstplural@{##1}{##2}[##3]}%
-% \end{macrocode}
-% Full form:
-% \begin{macrocode}
- \def\@acrfull##1##2[##3]{\@glsfirst@{##1}{##2}[##3]
- (\acronymfont{\@glstext@{##1}{##2}[##3]})}%
- \def\@Acrfull##1##2[##3]{\@Glsfirst@{##1}{##2}[##3]
- (\acronymfont{\@glstext@{##1}{##2}[##3]})}%
- \def\@ACRfull##1##2[##3]{\@GLSfirst@{##1}{##2}[##3]
- (\acronymfont{\@GLStext@{##1}{##2}[##3]})}%
-% \end{macrocode}
-% Plural full form:
-% \begin{macrocode}
- \def\@acrfullpl##1##2[##3]{\@glsfirstplural@{##1}{##2}[##3]
- (\acronymfont{\@glsplural@{##1}{##2}[##3]})}
- \def\@Acrfullpl##1##2[##3]{\@Glsfirstplural@{##1}{##2}[##3]
- (\acronymfont{\@glsplural@{##1}{##2}[##3]})}
- \def\@ACRfullpl##1##2[##3]{\@GLSfirstplural@{##1}{##2}[##3]
- (\acronymfont{\@GLSplural@{##1}{##2}[##3]})}
-% \end{macrocode}
% check for option clash
% \begin{macrocode}
\ifglsacrdua
@@ -13677,6 +10223,10 @@ style `#1' undefined}{}}{%
name={\the\glsshorttok},%
text={\the\glslongtok},%
plural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ short={\the\glsshorttok},%
+ shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ long={\the\glslongtok},%
+ longplural={\the\glslongtok\noexpand\acrpluralsuffix},%
description={\the\glslongtok},%
symbol={\the\glsshorttok},%
symbolplural={\the\glsshorttok\noexpand\acrpluralsuffix},%
@@ -13706,62 +10256,12 @@ style `#1' undefined}{}}{%
\DUANewAcronymDef
}%
% \end{macrocode}
-% Set up the commands to make a note of the keys to store the long
-% and short forms:
-% \begin{macrocode}
- \def\glsshortkey{symbol}%
- \def\glsshortpluralkey{symbolplural}%
- \def\glslongkey{text}%
- \def\glslongpluralkey{plural}%
-% \end{macrocode}
% Set the display
% \begin{macrocode}
\@for\@gls@type:=\@glsacronymlists\do{%
\SetDUADisplayStyle{\@gls@type}%
}%
-% \end{macrocode}
-% Set up short cuts. Short form:
-% \begin{macrocode}
- \def\@acrshort##1##2[##3]{\@glssymbol@{##1}{##2}[##3]}%
- \def\@Acrshort##1##2[##3]{\@Glssymbol@{##1}{##2}[##3]}%
- \def\@ACRshort##1##2[##3]{\@GLSsymbol@{##1}{##2}[##3]}%
-% \end{macrocode}
-% Plural short form:
-% \begin{macrocode}
- \def\@acrshortpl##1##2[##3]{\@glssymbolplural@{##1}{##2}[##3]}%
- \def\@Acrshortpl##1##2[##3]{\@Glssymbolplural@{##1}{##2}[##3]}%
- \def\@ACRshortpl##1##2[##3]{\@GLSsymbolplural@{##1}{##2}[##3]}%
-% \end{macrocode}
-% Long form:
-% \begin{macrocode}
- \def\@acrlong##1##2[##3]{\@glstext@{##1}{##2}[##3]}%
- \def\@Acrlong##1##2[##3]{\@Glstext@{##1}{##2}[##3]}%
- \def\@ACRlong##1##2[##3]{\@GLStext@{##1}{##2}[##3]}%
-% \end{macrocode}
-% Plural long form:
-% \begin{macrocode}
- \def\@acrlongpl##1##2[##3]{\@glsplural@{##1}{##2}[##3]}%
- \def\@Acrlongpl##1##2[##3]{\@Glsplural@{##1}{##2}[##3]}%
- \def\@ACRlongpl##1##2[##3]{\@GLSplural@{##1}{##2}[##3]}%
-% \end{macrocode}
-% Full form:
-% \begin{macrocode}
- \def\@acrfull##1##2[##3]{\@glstext@{##1}{##2}[##3]
- (\acronymfont{\@glssymbol@{##1}{##2}[##3]})}%
- \def\@Acrfull##1##2[##3]{\@Glstext@{##1}{##2}[##3]
- (\acronymfont{\@glssymbol@{##1}{##2}[##3]})}%
- \def\@ACRfull##1##2[##3]{\@GLStext@{##1}{##2}[##3]
- (\acronymfont{\@GLSsymbol@{##1}{##2}[##3]})}%
-% \end{macrocode}
-% Plural full form:
-% \begin{macrocode}
- \def\@acrfullpl##1##2[##3]{\@glsplural@{##1}{##2}[##3]
- (\acronymfont{\@glssymbolplural@{##1}{##2}[##3]})}%
- \def\@Acrfullpl##1##2[##3]{\@Glsplural@{##1}{##2}[##3]
- (\acronymfont{\@glssymbolplural@{##1}{##2}[##3]})}%
- \def\@ACRfullpl##1##2[##3]{\@GLSplural@{##1}{##2}[##3]
- (\acronymfont{\@GLSsymbolplural@{##1}{##2}[##3]})}%
-}%
+}
% \end{macrocode}
%\end{macro}
%
@@ -13803,10 +10303,11 @@ style `#1' undefined}{}}{%
% \end{macrocode}
%\end{macro}
%
-% Allow user to define their own custom acronyms. The short form is
+% Allow user to define their own custom acronyms.
+% (For compatibility with versions before v3.0, the short form is
% stored in the user1 key, the plural short form is stored in the
% user2 key, the long form is stored in the user3 key and the
-% plural long form is stored in the user4 key. Defaults to
+% plural long form is stored in the user4 key.) Defaults to
% displaying only the acronym with the long form as the description.
%\begin{macro}{\SetCustomDisplayStyle}
% Sets the acronym display style.
@@ -13824,9 +10325,9 @@ style `#1' undefined}{}}{%
\newcommand*{\CustomAcronymFields}{%
name={\the\glsshorttok},%
description={\the\glslongtok},%
- first={\the\glslongtok\space(\the\glsshorttok)},%
- firstplural={\the\glslongtok\noexpand\acrpluralsuffix\space
- (\the\glsshorttok)}%
+ first={\noexpand\acrfullformat{\the\glslongtok}{\the\glsshorttok}},%
+ firstplural={\noexpand\acrfullformat
+ {\the\glslongtok\noexpand\acrpluralsuffix}{\the\glsshorttok}}%
text={\the\glsshorttok},%
plural={\the\glsshorttok\noexpand\acrpluralsuffix}%
}
@@ -13840,6 +10341,10 @@ style `#1' undefined}{}}{%
\noexpand\newglossaryentry{\the\glslabeltok}%
{%
type=\acronymtype,%
+ short={\the\glsshorttok},%
+ shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ long={\the\glslongtok},%
+ longplural={\the\glslongtok\noexpand\acrpluralsuffix},%
user1={\the\glsshorttok},%
user2={\the\glsshorttok\noexpand\acrpluralsuffix},%
user3={\the\glslongtok},%
@@ -13871,62 +10376,12 @@ style `#1' undefined}{}}{%
\CustomNewAcronymDef
}%
% \end{macrocode}
-% Set up the commands to make a note of the keys to store the long
-% and short forms:
-% \begin{macrocode}
- \def\glsshortkey{user1}%
- \def\glsshortpluralkey{user2}%
- \def\glslongkey{user3}%
- \def\glslongpluralkey{user4}%
-% \end{macrocode}
% Set the display
% \begin{macrocode}
\@for\@gls@type:=\@glsacronymlists\do{%
\SetCustomDisplayStyle{\@gls@type}%
}%
-% \end{macrocode}
-% Set up short cuts. Short form:
-% \begin{macrocode}
- \def\@acrshort##1##2[##3]{\@glsuseri@{##1}{##2}[##3]}%
- \def\@Acrshort##1##2[##3]{\@Glsuseri@{##1}{##2}[##3]}%
- \def\@ACRshort##1##2[##3]{\@GLSuseri@{##1}{##2}[##3]}%
-% \end{macrocode}
-% Plural short form:
-% \begin{macrocode}
- \def\@acrshortpl##1##2[##3]{\@glsuserii@{##1}{##2}[##3]}%
- \def\@Acrshortpl##1##2[##3]{\@Glsuserii@{##1}{##2}[##3]}%
- \def\@ACRshortpl##1##2[##3]{\@GLSuserii@{##1}{##2}[##3]}%
-% \end{macrocode}
-% Long form:
-% \begin{macrocode}
- \def\@acrlong##1##2[##3]{\@glsuseriii@{##1}{##2}[##3]}%
- \def\@Acrlong##1##2[##3]{\@Glsuseriii@{##1}{##2}[##3]}%
- \def\@ACRlong##1##2[##3]{\@GLSuseriii@{##1}{##2}[##3]}%
-% \end{macrocode}
-% Plural long form:
-% \begin{macrocode}
- \def\@acrlongpl##1##2[##3]{\@glsuseriv@{##1}{##2}[##3]}%
- \def\@Acrlongpl##1##2[##3]{\@Glsuseriv@{##1}{##2}[##3]}%
- \def\@ACRlongpl##1##2[##3]{\@GLSuseriv@{##1}{##2}[##3]}%
-% \end{macrocode}
-% Full form:
-% \begin{macrocode}
- \def\@acrfull##1##2[##3]{\@glsuseriii@{##1}{##2}[##3]
- (\acronymfont{\@glsuseri@{##1}{##2}[##3]})}%
- \def\@Acrfull##1##2[##3]{\@Glsuseriii@{##1}{##2}[##3]
- (\acronymfont{\@glsuseri@{##1}{##2}[##3]})}%
- \def\@ACRfull##1##2[##3]{\@GLSuseriii@{##1}{##2}[##3]
- (\acronymfont{\@GLSuseri@{##1}{##2}[##3]})}%
-% \end{macrocode}
-% Plural full form:
-% \begin{macrocode}
- \def\@acrfullpl##1##2[##3]{\@glsuseriv@{##1}{##2}[##3]
- (\acronymfont{\@glsuserii@{##1}{##2}[##3]})}%
- \def\@Acrfullpl##1##2[##3]{\@Glsuseriv@{##1}{##2}[##3]
- (\acronymfont{\@glsuserii@{##1}{##2}[##3]})}%
- \def\@ACRfullpl##1##2[##3]{\@GLSuseriv@{##1}{##2}[##3]
- (\acronymfont{\@GLSuserii@{##1}{##2}[##3]})}%
-}%
+}
% \end{macrocode}
%\end{macro}
%
@@ -14082,6 +10537,387 @@ style `#1' undefined}{}}{%
\glossarystyle{\@glossary@default@style}
\fi
% \end{macrocode}
+%
+%\subsection{Debugging Commands}
+%
+%\begin{macro}{\showgloparent}
+%\changes{3.0}{2011/04/02}{new}
+%\begin{definition}
+%\cs{showgloparent}\marg{label}
+%\end{definition}
+% \begin{macrocode}
+\newcommand*{\showgloparent}[1]{%
+ \expandafter\show\csname glo@#1@parent\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\showglolevel}
+%\changes{3.0}{2011/04/02}{new}
+%\begin{definition}
+%\cs{showglolevel}\marg{label}
+%\end{definition}
+% \begin{macrocode}
+\newcommand*{\showglolevel}[1]{%
+ \expandafter\show\csname glo@#1@level\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\showglotext}
+%\changes{3.0}{2011/04/02}{new}
+%\begin{definition}
+%\cs{showglotext}\marg{label}
+%\end{definition}
+% \begin{macrocode}
+\newcommand*{\showglotext}[1]{%
+ \expandafter\show\csname glo@#1@text\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\showgloplural}
+%\changes{3.0}{2011/04/02}{new}
+%\begin{definition}
+%\cs{showgloplural}\marg{label}
+%\end{definition}
+% \begin{macrocode}
+\newcommand*{\showgloplural}[1]{%
+ \expandafter\show\csname glo@#1@plural\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\showglofirst}
+%\changes{3.0}{2011/04/02}{new}
+%\begin{definition}
+%\cs{showglofirst}\marg{label}
+%\end{definition}
+% \begin{macrocode}
+\newcommand*{\showglofirst}[1]{%
+ \expandafter\show\csname glo@#1@first\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\showglofirstpl}
+%\changes{3.0}{2011/04/02}{new}
+%\begin{definition}
+%\cs{showglofirstpl}\marg{label}
+%\end{definition}
+% \begin{macrocode}
+\newcommand*{\showglofirstpl}[1]{%
+ \expandafter\show\csname glo@#1@firstpl\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\showglotype}
+%\changes{3.0}{2011/04/02}{new}
+%\begin{definition}
+%\cs{showglotype}\marg{label}
+%\end{definition}
+% \begin{macrocode}
+\newcommand*{\showglotype}[1]{%
+ \expandafter\show\csname glo@#1@type\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\showglocounter}
+%\changes{3.0}{2011/04/02}{new}
+%\begin{definition}
+%\cs{showglocounter}\marg{label}
+%\end{definition}
+% \begin{macrocode}
+\newcommand*{\showglocounter}[1]{%
+ \expandafter\show\csname glo@#1@counter\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\showglouseri}
+%\changes{3.0}{2011/04/02}{new}
+%\begin{definition}
+%\cs{showglouseri}\marg{label}
+%\end{definition}
+% \begin{macrocode}
+\newcommand*{\showglouseri}[1]{%
+ \expandafter\show\csname glo@#1@useri\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\showglouserii}
+%\changes{3.0}{2011/04/02}{new}
+%\begin{definition}
+%\cs{showglouserii}\marg{label}
+%\end{definition}
+% \begin{macrocode}
+\newcommand*{\showglouserii}[1]{%
+ \expandafter\show\csname glo@#1@userii\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\showglouseriii}
+%\changes{3.0}{2011/04/02}{new}
+%\begin{definition}
+%\cs{showglouseriii}\marg{label}
+%\end{definition}
+% \begin{macrocode}
+\newcommand*{\showglouseriii}[1]{%
+ \expandafter\show\csname glo@#1@useriii\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\showglouseriv}
+%\changes{3.0}{2011/04/02}{new}
+%\begin{definition}
+%\cs{showglouseriv}\marg{label}
+%\end{definition}
+% \begin{macrocode}
+\newcommand*{\showglouseriv}[1]{%
+ \expandafter\show\csname glo@#1@useriv\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\showglouserv}
+%\changes{3.0}{2011/04/02}{new}
+%\begin{definition}
+%\cs{showglouserv}\marg{label}
+%\end{definition}
+% \begin{macrocode}
+\newcommand*{\showglouserv}[1]{%
+ \expandafter\show\csname glo@#1@userv\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\showglouservi}
+%\changes{3.0}{2011/04/02}{new}
+%\begin{definition}
+%\cs{showglouservi}\marg{label}
+%\end{definition}
+% \begin{macrocode}
+\newcommand*{\showglouservi}[1]{%
+ \expandafter\show\csname glo@#1@uservi\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\showgloname}
+%\changes{3.0}{2011/04/02}{new}
+%\begin{definition}
+%\cs{showgloname}\marg{label}
+%\end{definition}
+% \begin{macrocode}
+\newcommand*{\showgloname}[1]{%
+ \expandafter\show\csname glo@#1@name\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\showglodesc}
+%\changes{3.0}{2011/04/02}{new}
+%\begin{definition}
+%\cs{showglodesc}\marg{label}
+%\end{definition}
+% \begin{macrocode}
+\newcommand*{\showglodesc}[1]{%
+ \expandafter\show\csname glo@#1@desc\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\showglodescplural}
+%\changes{3.0}{2011/04/02}{new}
+%\begin{definition}
+%\cs{showglodescplural}\marg{label}
+%\end{definition}
+% \begin{macrocode}
+\newcommand*{\showglodescplural}[1]{%
+ \expandafter\show\csname glo@#1@descplural\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\showglosort}
+%\changes{3.0}{2011/04/02}{new}
+%\begin{definition}
+%\cs{showglosort}\marg{label}
+%\end{definition}
+% \begin{macrocode}
+\newcommand*{\showglosort}[1]{%
+ \expandafter\show\csname glo@#1@sort\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\showglosymbol}
+%\changes{3.0}{2011/04/02}{new}
+%\begin{definition}
+%\cs{showglosymbol}\marg{label}
+%\end{definition}
+% \begin{macrocode}
+\newcommand*{\showglosymbol}[1]{%
+ \expandafter\show\csname glo@#1@symbol\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\showglosymbolplural}
+%\changes{3.0}{2011/04/02}{new}
+%\begin{definition}
+%\cs{showglosymbolplural}\marg{label}
+%\end{definition}
+% \begin{macrocode}
+\newcommand*{\showglosymbolplural}[1]{%
+ \expandafter\show\csname glo@#1@symbolplural\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\showgloindex}
+%\changes{3.0}{2011/04/02}{new}
+%\begin{definition}
+%\cs{showgloindex}\marg{label}
+%\end{definition}
+% \begin{macrocode}
+\newcommand*{\showgloindex}[1]{%
+ \expandafter\show\csname glo@#1@index\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\showgloflag}
+%\changes{3.0}{2011/04/02}{new}
+%\begin{definition}
+%\cs{showgloflag}\marg{label}
+%\end{definition}
+% \begin{macrocode}
+\newcommand*{\showgloflag}[1]{%
+ \expandafter\show\csname ifglo@#1@flag\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\showacronymlists}
+%\changes{3.0}{2011/04/02}{new}
+%\begin{definition}
+%\cs{showacronymlists}
+%\end{definition}
+% Show list of glossaries that have been flagged as a list of
+% acronyms.
+% \begin{macrocode}
+\newcommand*{\showacronymlists}{%
+ \show\@glsacronymlists
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\showglossaries}
+%\changes{3.0}{2011/04/02}{new}
+%\begin{definition}
+%\cs{showglossaries}
+%\end{definition}
+% Show list of defined glossaries.
+% \begin{macrocode}
+\newcommand*{\showglossaries}{%
+ \show\@glo@types
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\showglossaryin}
+%\changes{3.0}{2011/04/02}{new}
+%\begin{definition}
+%\cs{showglossaryin}\marg{glossary-label}
+%\end{definition}
+% Show the `in' extension for the given glossary.
+% \begin{macrocode}
+\newcommand*{\showglossaryin}[1]{%
+ \expandafter\show\csname @glotype@#1@in\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\showglossaryout}
+%\changes{3.0}{2011/04/02}{new}
+%\begin{definition}
+%\cs{showglossaryout}\marg{glossary-label}
+%\end{definition}
+% Show the `out' extension for the given glossary.
+% \begin{macrocode}
+\newcommand*{\showglossaryout}[1]{%
+ \expandafter\show\csname @glotype@#1@out\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\showglossarytitle}
+%\changes{3.0}{2011/04/02}{new}
+%\begin{definition}
+%\cs{showglossarytitle}\marg{glossary-label}
+%\end{definition}
+% Show the title for the given glossary.
+% \begin{macrocode}
+\newcommand*{\showglossarytitle}[1]{%
+ \expandafter\show\csname @glotype@#1@title\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\showglossarycounter}
+%\changes{3.0}{2011/04/02}{new}
+%\begin{definition}
+%\cs{showglossarycounter}\marg{glossary-label}
+%\end{definition}
+% Show the counter for the given glossary.
+% \begin{macrocode}
+\newcommand*{\showglossarycounter}[1]{%
+ \expandafter\show\csname @glotype@#1@counter\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\showglossaryentries}
+%\changes{3.0}{2011/04/02}{new}
+%\begin{definition}
+%\cs{showglossaryentries}\marg{glossary-label}
+%\end{definition}
+% Show the list of entry labels for the given glossary.
+% \begin{macrocode}
+\newcommand*{\showglossaryentries}[1]{%
+ \expandafter\show\csname @glolist@#1\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\subsection{Compatibility with version 2.07 and below}
+%
+% In order to fix some bugs in v3.0, it was necessary to change the
+% way information is written to the \filetype{glo} file, which also meant
+% a change in the format of the Xindy style file. The compatibility
+% option is meant for documents that use a customised Xindy style
+% file with \ics{noist}. With the compatibility option, hopefully
+% \app{xindy} will still be able to process the old document, but
+% the bugs will remain. The issues in versions 2.07 and below:
+%\begin{itemize}
+% \item With \pkgopt{xindy}, the counter used by the entry was
+% hard-coded into the Xindy style file. This meant that you couldn't
+% use the \gloskey[glslink]{counter} to swap counters.
+% \item With both \pkgopt{xindy} and \pkgopt{makeindex}, if used
+% with \sty{hyperref} and \cs{theH}\meta{counter} was different to
+% \cs{thecounter}, the link in the location number would be
+% undefined.
+%\end{itemize}
+% \begin{macrocode}
+\csname ifglscompatible-2.07\endcsname
+ \RequirePackage{glossaries-compatible-207}
+\fi
+% \end{macrocode}
%\iffalse
% \begin{macrocode}
%</glossaries.sty>
@@ -14096,7 +10932,7 @@ style `#1' undefined}{}}{%
%\label{sec:code:mfirstuc}
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{mfirstuc}[2009/11/03 v1.04 (NLCT)]
+\ProvidesPackage{mfirstuc}[2011/04/02 v1.05 (NLCT)]
% \end{macrocode}
%\begin{macro}{\makefirstuc}
% Syntax:\\
@@ -14129,22 +10965,22 @@ style `#1' undefined}{}}{%
\if@glscs
\@gls@getbody #1{}\@nil
\ifx\@gls@rest\@empty
- \@gls@makefirstuc{#1}%
+ \glsmakefirstuc{#1}%
\else
\expandafter\@gls@split\@gls@rest\@nil
\ifx\@gls@first\@empty
- \@gls@makefirstuc{#1}%
+ \glsmakefirstuc{#1}%
\else
\expandafter\@glsmfirst\expandafter{\@gls@first}%
\expandafter\@glsmrest\expandafter{\@gls@rest}%
\edef\@gls@domfirstuc{\noexpand\@gls@body
- {\noexpand\@gls@makefirstuc\the\@glsmfirst}%
+ {\noexpand\glsmakefirstuc\the\@glsmfirst}%
\the\@glsmrest}%
\@gls@domfirstuc
\fi
\fi
\else
- \@gls@makefirstuc{#1}%
+ \glsmakefirstuc{#1}%
\fi
\fi
}
@@ -14171,6 +11007,13 @@ style `#1' undefined}{}}{%
% \begin{macrocode}
\def\@gls@makefirstuc#1{\MakeUppercase #1}
% \end{macrocode}
+%\begin{macro}{\glsmakefirstuc}
+%\changes{1.05}{2011/04/02}{new}
+% Provide a user command to make it easier to customise.
+% \begin{macrocode}
+\newcommand*{\glsmakefirstuc}[1]{\@gls@makefirstuc{#1}}
+% \end{macrocode}
+%\end{macro}
%
% Get the first grouped argument and stores in \cs{@gls@body}.
% \begin{macrocode}
@@ -14370,7 +11213,7 @@ style `#1' undefined}{}}{%
% \ics{item} command, it will appear in a bold font by
% default.
% \begin{macrocode}
-\ProvidesPackage{glossary-list}[2009/05/30 v2.01 (NLCT)]
+\ProvidesPackage{glossary-list}[2011/03/28 v3.0 (NLCT)]
% \end{macrocode}
%\begin{style}{list}
% The \glostyle{list} glossary style
@@ -14400,11 +11243,13 @@ style `#1' undefined}{}}{%
% Main (level 0) entries start a new item in the list:
% \begin{macrocode}
\renewcommand*{\glossaryentryfield}[5]{%
- \item[\glstarget{##1}{##2}] ##3\glspostdescription\space ##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}
% Add vertical space between groups:
@@ -14470,13 +11315,15 @@ style `#1' undefined}{}}{%
% line break after the entry name:
% \begin{macrocode}
\renewcommand*{\glossaryentryfield}[5]{%
- \item[\glstarget{##1}{##2}]\mbox{}\newline
+ \item[\glsentryitem{##1}\glstarget{##1}{##2}]\mbox{}\newline
##3\glspostdescription\space ##5}%
% \end{macrocode}
% Sub-entries start a new paragraph:
% \begin{macrocode}
\renewcommand{\glossarysubentryfield}[6]{%
- \par\glstarget{##2}{\strut}##4\glspostdescription\space ##6}%
+ \par
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}##4\glspostdescription\space ##6}%
}
% \end{macrocode}
%\end{style}
@@ -14538,13 +11385,16 @@ style `#1' undefined}{}}{%
% Each main (level 0) entry starts a new item:
% \begin{macrocode}
\renewcommand*{\glossaryentryfield}[5]{%
- \item[]\makebox[\glslistdottedwidth][l]{\glstarget{##1}{##2}%
- \unskip\leaders\hbox to 2.9mm{\hss.}\hfill\strut}##3}%
+ \item[]\makebox[\glslistdottedwidth][l]{%
+ \glsentryitem{##1}\glstarget{##1}{##2}%
+ \unskip\leaders\hbox to 2.9mm{\hss.}\hfill\strut}##3}%
% \end{macrocode}
% Sub entries have the same format as main entries:
% \begin{macrocode}
\renewcommand*{\glossarysubentryfield}[6]{%
- \item[]\makebox[\glslistdottedwidth][l]{\glstarget{##2}{##3}%
+ \item[]\makebox[\glslistdottedwidth][l]{%
+ \glssubentryitem{##2}%
+ \glstarget{##2}{##3}%
\unskip\leaders\hbox to 2.9mm{\hss.}\hfill\strut}##4}%
}
% \end{macrocode}
@@ -14570,7 +11420,7 @@ style `#1' undefined}{}}{%
% Main (level 0) entries just display the name:
% \begin{macrocode}
\renewcommand*{\glossaryentryfield}[5]{%
- \item[\glstarget{##1}{##2}]}%
+ \item[\glsentryitem{##1}\glstarget{##1}{##2}]}%
}
% \end{macrocode}
%\end{style}
@@ -14589,7 +11439,7 @@ style `#1' undefined}{}}{%
% The glossary styles defined in the \isty{glossary-long} package
% used the \env{longtable} environment in the glossary.
% \begin{macrocode}
-\ProvidesPackage{glossary-long}[2009/05/30 v2.01 (NLCT)]
+\ProvidesPackage{glossary-long}[2011/03/28 v3.0 (NLCT)]
% \end{macrocode}
% Requires the \isty{longtable} package:
% \begin{macrocode}
@@ -14644,12 +11494,14 @@ style `#1' undefined}{}}{%
% Main (level 0) entries displayed in a row:
% \begin{macrocode}
\renewcommand*{\glossaryentryfield}[5]{%
- \glstarget{##1}{##2} & ##3\glspostdescription\space ##5\\}%
+ \glsentryitem{##1}\glstarget{##1}{##2} & ##3\glspostdescription\space ##5\\}%
% \end{macrocode}
% Sub entries displayed on the following row without the name:
% \begin{macrocode}
\renewcommand*{\glossarysubentryfield}[6]{%
- & \glstarget{##2}{\strut}##4\glspostdescription\space ##6\\}%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}##4\glspostdescription\space ##6\\}%
% \end{macrocode}
% Blank row between groups:
% \begin{macrocode}
@@ -14742,13 +11594,15 @@ style `#1' undefined}{}}{%
% description in second column, page list in last column):
% \begin{macrocode}
\renewcommand*{\glossaryentryfield}[5]{%
- \glstarget{##1}{##2} & ##3 & ##5\\}%
+ \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##5\\}%
% \end{macrocode}
% Sub-entries on a separate row (no name, description in
% second column, page list in third column):
% \begin{macrocode}
\renewcommand*{\glossarysubentryfield}[6]{%
- & \glstarget{##2}{\strut}##4 & ##6\\}%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}##4 & ##6\\}%
% \end{macrocode}
% Blank row between groups:
% \begin{macrocode}
@@ -14844,13 +11698,15 @@ style `#1' undefined}{}}{%
% in last column):
% \begin{macrocode}
\renewcommand*{\glossaryentryfield}[5]{%
- \glstarget{##1}{##2} & ##3 & ##4 & ##5\\}%
+ \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##4 & ##5\\}%
% \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]{%
- & \glstarget{##2}{\strut}##4 & ##5 & ##6\\}%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}##4 & ##5 & ##6\\}%
% \end{macrocode}
% Blank row between groups:
% \begin{macrocode}
@@ -15025,7 +11881,7 @@ style `#1' undefined}{}}{%
% used the \env{longtable} environment in the glossary and use
% ragged right formatting for the multiline columns.
% \begin{macrocode}
-\ProvidesPackage{glossary-longragged}[2009/05/30 v2.01 (NLCT)]
+\ProvidesPackage{glossary-longragged}[2011/03/28 v3.0 (NLCT)]
% \end{macrocode}
% Requires the \isty{array} package:
% \begin{macrocode}
@@ -15081,13 +11937,15 @@ style `#1' undefined}{}}{%
% Main (level 0) entries displayed in a row:
% \begin{macrocode}
\renewcommand*{\glossaryentryfield}[5]{%
- \glstarget{##1}{##2} & ##3\glspostdescription\space ##5%
+ \glsentryitem{##1}\glstarget{##1}{##2} & ##3\glspostdescription\space ##5%
\tabularnewline}%
% \end{macrocode}
% Sub entries displayed on the following row without the name:
% \begin{macrocode}
\renewcommand*{\glossarysubentryfield}[6]{%
- & \glstarget{##2}{\strut}##4\glspostdescription\space ##6%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}##4\glspostdescription\space ##6%
\tabularnewline}%
% \end{macrocode}
% Blank row between groups:
@@ -15185,13 +12043,15 @@ style `#1' undefined}{}}{%
% description in second column, page list in last column):
% \begin{macrocode}
\renewcommand*{\glossaryentryfield}[5]{%
- \glstarget{##1}{##2} & ##3 & ##5\tabularnewline}%
+ \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##5\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]{%
- & \glstarget{##2}{\strut}##4 & ##6\tabularnewline}%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}##4 & ##6\tabularnewline}%
% \end{macrocode}
% Blank row between groups:
% \begin{macrocode}
@@ -15292,13 +12152,15 @@ style `#1' undefined}{}}{%
% in last column):
% \begin{macrocode}
\renewcommand*{\glossaryentryfield}[5]{%
- \glstarget{##1}{##2} & ##3 & ##4 & ##5\tabularnewline}%
+ \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##4 & ##5\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]{%
- & \glstarget{##2}{\strut}##4 & ##5 & ##6\tabularnewline}%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}##4 & ##5 & ##6\tabularnewline}%
% \end{macrocode}
% Blank row between groups:
% \begin{macrocode}
@@ -15402,7 +12264,7 @@ style `#1' undefined}{}}{%
% The glossary styles defined in the \isty{glossary-super} package
% use the \env{supertabular} environment.
% \begin{macrocode}
-\ProvidesPackage{glossary-super}[2009/05/30 v2.01 (NLCT)]
+\ProvidesPackage{glossary-super}[2011/03/28 v3.0 (NLCT)]
% \end{macrocode}
% Requires the \isty{supertabular} package:
% \begin{macrocode}
@@ -15461,13 +12323,15 @@ style `#1' undefined}{}}{%
% description and page list in second column):
% \begin{macrocode}
\renewcommand*{\glossaryentryfield}[5]{%
- \glstarget{##1}{##2} & ##3\glspostdescription\space ##5\\}%
+ \glsentryitem{##1}\glstarget{##1}{##2} & ##3\glspostdescription\space ##5\\}%
% \end{macrocode}
% Sub entries put in a row (no name, description and page list
% in second column):
% \begin{macrocode}
\renewcommand*{\glossarysubentryfield}[6]{%
- & \glstarget{##2}{\strut}##4\glspostdescription\space ##6\\}%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}##4\glspostdescription\space ##6\\}%
% \end{macrocode}
% Blank row between groups:
% \begin{macrocode}
@@ -15569,13 +12433,15 @@ style `#1' undefined}{}}{%
% description in second column, page list in last column):
% \begin{macrocode}
\renewcommand*{\glossaryentryfield}[5]{%
- \glstarget{##1}{##2} & ##3 & ##5\\}%
+ \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##5\\}%
% \end{macrocode}
% Sub entries on a row (no name, description in second column,
% page list in last column):
% \begin{macrocode}
\renewcommand*{\glossarysubentryfield}[6]{%
- & \glstarget{##2}{\strut}##4 & ##6\\}%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}##4 & ##6\\}%
% \end{macrocode}
% Blank row between groups:
% \begin{macrocode}
@@ -15681,13 +12547,15 @@ style `#1' undefined}{}}{%
% and page list in last column:
% \begin{macrocode}
\renewcommand*{\glossaryentryfield}[5]{%
- \glstarget{##1}{##2} & ##3 & ##4 & ##5\\}%
+ \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##4 & ##5\\}%
% \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]{%
- & \glstarget{##2}{\strut}##4 & ##5 & ##6\\}%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}##4 & ##5 & ##6\\}%
% \end{macrocode}
% Blank row between groups:
% \begin{macrocode}
@@ -15874,7 +12742,7 @@ style `#1' undefined}{}}{%
% are like those provided by the \isty{glossary-super} package,
% except that the multiline columns have ragged right justification.
% \begin{macrocode}
-\ProvidesPackage{glossary-superragged}[2009/05/30 v2.01 (NLCT)]
+\ProvidesPackage{glossary-superragged}[2011/03/28 v3.0 (NLCT)]
% \end{macrocode}
% Requires the \isty{array} package:
% \begin{macrocode}
@@ -15932,14 +12800,16 @@ style `#1' undefined}{}}{%
% description and page list in second column):
% \begin{macrocode}
\renewcommand*{\glossaryentryfield}[5]{%
- \glstarget{##1}{##2} & ##3\glspostdescription\space ##5%
+ \glsentryitem{##1}\glstarget{##1}{##2} & ##3\glspostdescription\space ##5%
\tabularnewline}%
% \end{macrocode}
% Sub entries put in a row (no name, description and page list
% in second column):
% \begin{macrocode}
\renewcommand*{\glossarysubentryfield}[6]{%
- & \glstarget{##2}{\strut}##4\glspostdescription\space ##6%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}##4\glspostdescription\space ##6%
\tabularnewline}%
% \end{macrocode}
% Blank row between groups:
@@ -16044,13 +12914,15 @@ style `#1' undefined}{}}{%
% description in second column, page list in last column):
% \begin{macrocode}
\renewcommand*{\glossaryentryfield}[5]{%
- \glstarget{##1}{##2} & ##3 & ##5\tabularnewline}%
+ \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##5\tabularnewline}%
% \end{macrocode}
% Sub entries on a row (no name, description in second column,
% page list in last column):
% \begin{macrocode}
\renewcommand*{\glossarysubentryfield}[6]{%
- & \glstarget{##2}{\strut}##4 & ##6\tabularnewline}%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}##4 & ##6\tabularnewline}%
% \end{macrocode}
% Blank row between groups:
% \begin{macrocode}
@@ -16160,12 +13032,14 @@ style `#1' undefined}{}}{%
% and page list in last column:
% \begin{macrocode}
\renewcommand*{\glossaryentryfield}[5]{%
- \glstarget{##1}{##2} & ##3 & ##4 & ##5\tabularnewline}%
+ \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##4 & ##5\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]{%
- & \glstarget{##2}{\strut}##4 & ##5 & ##6\tabularnewline}%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}##4 & ##5 & ##6\tabularnewline}%
% \end{macrocode}
% Blank row between groups:
% \begin{macrocode}
@@ -16264,7 +13138,7 @@ style `#1' undefined}{}}{%
% that have a tree-like structure. These are designed for
% hierarchical glossaries.
% \begin{macrocode}
-\ProvidesPackage{glossary-tree}[2009/01/14 v1.01 (NLCT)]
+\ProvidesPackage{glossary-tree}[2011/03/28 v3.0 (NLCT)]
% \end{macrocode}
%
%\begin{style}{index}
@@ -16301,7 +13175,7 @@ style `#1' undefined}{}}{%
% and the page list.
% \begin{macrocode}
\renewcommand*{\glossaryentryfield}[5]{%
-\item\textbf{\glstarget{##1}{##2}}%
+\item\glsentryitem{##1}\textbf{\glstarget{##1}{##2}}%
\ifx\relax##4\relax
\else
\space(##4)%
@@ -16322,6 +13196,7 @@ style `#1' undefined}{}}{%
\or
% level 1
\subitem
+ \glssubentryitem{##2}%
\else
% all other levels
\subsubitem
@@ -16411,7 +13286,7 @@ style `#1' undefined}{}}{%
\renewcommand{\glossaryentryfield}[5]{%
\hangindent0pt\relax
\parindent0pt\relax
- \textbf{\glstarget{##1}{##2}}%
+ \glsentryitem{##1}\textbf{\glstarget{##1}{##2}}%
\ifx\relax##4\relax
\else
\space(##4)%
@@ -16426,6 +13301,9 @@ style `#1' undefined}{}}{%
\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
@@ -16524,7 +13402,7 @@ style `#1' undefined}{}}{%
\renewcommand{\glossaryentryfield}[5]{%
\hangindent0pt\relax
\parindent0pt\relax
- \textbf{\glstarget{##1}{##2}}%
+ \glsentryitem{##1}\textbf{\glstarget{##1}{##2}}%
\ifx\relax##4\relax
\else
\space(##4)%
@@ -16538,6 +13416,9 @@ style `#1' undefined}{}}{%
\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}
@@ -16657,7 +13538,7 @@ style `#1' undefined}{}}{%
% Put the name to the left of the paragraph block.
% \begin{macrocode}
\makebox[0pt][r]{\makebox[\glstreeindent][l]{%
- \textbf{\glstarget{##1}{##2}}}}%
+ \glsentryitem{##1}\textbf{\glstarget{##1}{##2}}}}%
% \end{macrocode}
% If the symbol is missing, ignore it, otherwise put it in
% brackets.
@@ -16681,6 +13562,13 @@ style `#1' undefined}{}}{%
% \begin{macrocode}
\renewcommand{\glossarysubentryfield}[6]{%
% \end{macrocode}
+% Increment and display the sub-entry counter if this is a level~1
+% entry and the sub-entry counter is in use.
+% \begin{macrocode}
+ \ifnum##1=1\relax
+ \glssubentryitem{##2}%
+ \fi
+% \end{macrocode}
% If the level hasn't changed, keep the same settings, otherwise
% adjust \cs{glstreeindent} accordingly.
% \begin{macrocode}
@@ -16821,10 +13709,375 @@ style `#1' undefined}{}}{%
%\fi
%\iffalse
% \begin{macrocode}
+%<*glossaries-compatible-207.sty>
+% \end{macrocode}
+%\fi
+%\section{glossaries-compatible-207}
+% Provides compatibility with version 2.07 and below. This uses
+% original \sty{glossaries} xindy and makeindex formatting, so can
+% be used with old documents that had customized style files, but
+% hyperlinks may not work properly.
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{glossaries-compatible-207}[2011/04/02 v1.0 (NLCT)]
+% \end{macrocode}
+%\begin{macro}{\GlsAddXdyAttribute}
+% Adds an attribute in old format.
+% \begin{macrocode}
+\ifglsxindy
+ \renewcommand*\GlsAddXdyAttribute[1]{%
+ \edef\@xdyattributes{\@xdyattributes ^^J \string"#1\string"}%
+ \expandafter\toks@\expandafter{\@xdylocref}%
+ \edef\@xdylocref{\the\toks@ ^^J%
+ (markup-locref
+ :open \string"\string~n\string\setentrycounter
+ {\noexpand\glscounter}%
+ \expandafter\string\csname#1\endcsname
+ \expandafter\@gobble\string\{\string" ^^J
+ :close \string"\expandafter\@gobble\string\}\string" ^^J
+ :attr \string"#1\string")}}
+% \end{macrocode}
+% Only has an effect before \ics{writeist}:
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\GlsAddXdyCounters}
+% \begin{macrocode}
+\renewcommand*\GlsAddXdyCounters[1]{%
+ \GlossariesWarning{\string\GlsAddXdyCounters\space not available
+ in compatibility mode.}%
+}
+% \end{macrocode}
+%\end{macro}
+% Add predefined attributes
+% \begin{macrocode}
+ \GlsAddXdyAttribute{glsnumberformat}
+ \GlsAddXdyAttribute{textrm}
+ \GlsAddXdyAttribute{textsf}
+ \GlsAddXdyAttribute{texttt}
+ \GlsAddXdyAttribute{textbf}
+ \GlsAddXdyAttribute{textmd}
+ \GlsAddXdyAttribute{textit}
+ \GlsAddXdyAttribute{textup}
+ \GlsAddXdyAttribute{textsl}
+ \GlsAddXdyAttribute{textsc}
+ \GlsAddXdyAttribute{emph}
+ \GlsAddXdyAttribute{glshypernumber}
+ \GlsAddXdyAttribute{hyperrm}
+ \GlsAddXdyAttribute{hypersf}
+ \GlsAddXdyAttribute{hypertt}
+ \GlsAddXdyAttribute{hyperbf}
+ \GlsAddXdyAttribute{hypermd}
+ \GlsAddXdyAttribute{hyperit}
+ \GlsAddXdyAttribute{hyperup}
+ \GlsAddXdyAttribute{hypersl}
+ \GlsAddXdyAttribute{hypersc}
+ \GlsAddXdyAttribute{hyperemph}
+% \end{macrocode}
+%
+%\begin{macro}{\GlsAddXdyLocation}
+% Restore v2.07 definition:
+% \begin{macrocode}
+\ifglsxindy
+ \renewcommand*{\GlsAddXdyLocation}[2]{%
+ \edef\@xdyuserlocationdefs{%
+ \@xdyuserlocationdefs ^^J%
+ (define-location-class \string"#1\string"^^J\space\space
+ \space(#2))
+ }%
+ \edef\@xdyuserlocationnames{%
+ \@xdyuserlocationnames^^J\space\space\space
+ \string"#1\string"}%
+ }
+\fi
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\@do@wrglossary}
+% \begin{macrocode}
+\renewcommand{\@do@wrglossary}[1]{%
+% \end{macrocode}
+% Determine whether to use \app{xindy} or \app{makeindex}
+% syntax
+% \begin{macrocode}
+\ifglsxindy
+% \end{macrocode}
+% Need to determine if the formatting information starts with
+% a ( or ) indicating a range.
+% \begin{macrocode}
+ \expandafter\@glo@check@mkidxrangechar\@glsnumberformat\@nil
+ \def\@glo@range{}%
+ \expandafter\if\@glo@prefix(\relax
+ \def\@glo@range{:open-range}%
+ \else
+ \expandafter\if\@glo@prefix)\relax
+ \def\@glo@range{:close-range}%
+ \fi
+ \fi
+% \end{macrocode}
+% Get the location and escape any special characters
+% \begin{macrocode}
+ \protected@edef\@glslocref{\theglsentrycounter}%
+ \@gls@checkmkidxchars\@glslocref
+% \end{macrocode}
+% Write to the glossary file using \app{xindy} syntax.
+% \begin{macrocode}
+ \glossary[\csname glo@#1@type\endcsname]{%
+ (indexentry :tkey (\csname glo@#1@index\endcsname)
+ :locref \string"\@glslocref\string" %
+ :attr \string"\@glo@suffix\string" \@glo@range
+ )
+ }%
+\else
+% \end{macrocode}
+% Convert the format information into the format required for
+% \app{makeindex}
+% \begin{macrocode}
+ \@set@glo@numformat\@glo@numfmt\@gls@counter\@glsnumberformat
+% \end{macrocode}
+% Write to the glossary file using \app{makeindex} syntax.
+% \begin{macrocode}
+ \glossary[\csname glo@#1@type\endcsname]{%
+ \string\glossaryentry{\csname glo@#1@index\endcsname
+ \@gls@encapchar\@glo@numfmt}{\theglsentrycounter}}%
+\fi
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@set@glo@numformat}
+% Only had 3 arguments in v2.07
+% \begin{macrocode}
+\def\@set@glo@numformat#1#2#3{%
+ \expandafter\@glo@check@mkidxrangechar#3\@nil
+ \protected@edef#1{%
+ \@glo@prefix setentrycounter[]{#2}%
+ \expandafter\string\csname\@glo@suffix\endcsname
+ }%
+ \@gls@checkmkidxchars#1%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\writeist}
+% Redefine \cs{writeist} back to the way it was in v2.07, but change
+% \cs{istfile} to \cs{glswrite}.
+% \begin{macrocode}
+\ifglsxindy
+ \def\writeist{%
+ \openout\glswrite=\istfilename
+ \write\glswrite{;; xindy style file created by the glossaries
+ package in compatible-2.07 mode}%
+ \write\glswrite{;; for document '\jobname' on
+ \the\year-\the\month-\the\day}%
+ \write\glswrite{^^J; required styles^^J}
+ \@for\@xdystyle:=\@xdyrequiredstyles\do{%
+ \ifx\@xdystyle\@empty
+ \else
+ \protected@write\glswrite{}{(require
+ \string"\@xdystyle.xdy\string")}%
+ \fi
+ }%
+ \write\glswrite{^^J%
+ ; list of allowed attributes (number formats)^^J}%
+ \write\glswrite{(define-attributes ((\@xdyattributes)))}%
+ \write\glswrite{^^J; user defined alphabets^^J}%
+ \write\glswrite{\@xdyuseralphabets}%
+ \write\glswrite{^^J; location class definitions^^J}%
+ \protected@edef\@gls@roman{\@roman{0\string"
+ \string"roman-numbers-lowercase\string" :sep \string"}}%
+ \@onelevel@sanitize\@gls@roman
+ \edef\@tmp{\string" \string"roman-numbers-lowercase\string"
+ :sep \string"}%
+ \@onelevel@sanitize\@tmp
+ \ifx\@tmp\@gls@roman
+ \write\glswrite{(define-location-class
+ \string"roman-page-numbers\string"^^J\space\space\space
+ (\string"roman-numbers-lowercase\string")
+ :min-range-length \@glsminrange)}%
+ \else
+ \write\glswrite{(define-location-class
+ \string"roman-page-numbers\string"^^J\space\space\space
+ (:sep "\@gls@roman")
+ :min-range-length \@glsminrange)}%
+ \fi
+ \write\glswrite{(define-location-class
+ \string"Roman-page-numbers\string"^^J\space\space\space
+ (\string"roman-numbers-uppercase\string")
+ :min-range-length \@glsminrange)}%
+ \write\glswrite{(define-location-class
+ \string"arabic-page-numbers\string"^^J\space\space\space
+ (\string"arabic-numbers\string")
+ :min-range-length \@glsminrange)}%
+ \write\glswrite{(define-location-class
+ \string"alpha-page-numbers\string"^^J\space\space\space
+ (\string"alpha\string")
+ :min-range-length \@glsminrange)}%
+ \write\glswrite{(define-location-class
+ \string"Alpha-page-numbers\string"^^J\space\space\space
+ (\string"ALPHA\string")
+ :min-range-length \@glsminrange)}%
+ \write\glswrite{(define-location-class
+ \string"Appendix-page-numbers\string"^^J\space\space\space
+ (\string"ALPHA\string"
+ :sep \string"\@glsAlphacompositor\string"
+ \string"arabic-numbers\string")
+ :min-range-length \@glsminrange)}%
+ \write\glswrite{(define-location-class
+ \string"arabic-section-numbers\string"^^J\space\space\space
+ (\string"arabic-numbers\string"
+ :sep \string"\glscompositor\string"
+ \string"arabic-numbers\string")
+ :min-range-length \@glsminrange)}%
+ \write\glswrite{^^J; user defined location classes}%
+ \write\glswrite{\@xdyuserlocationdefs}%
+ \write\glswrite{^^J; define cross-reference class^^J}%
+ \write\glswrite{(define-crossref-class \string"see\string"
+ :unverified )}%
+ \write\glswrite{(markup-crossref-list
+ :class \string"see\string"^^J\space\space\space
+ :open \string"\string\glsseeformat\string"
+ :close \string"{}\string")}%
+ \write\glswrite{^^J; define the order of the location classes}%
+ \write\glswrite{(define-location-class-order
+ (\@xdylocationclassorder))}%
+ \write\glswrite{^^J; define the glossary markup^^J}%
+ \write\glswrite{(markup-index^^J\space\space\space
+ :open \string"\string
+ \glossarysection[\string\glossarytoctitle]{\string
+ \glossarytitle}\string\glossarypreamble\string~n\string\begin
+ {theglossary}\string\glossaryheader\string~n\string" ^^J\space
+ \space\space:close \string"\expandafter\@gobble
+ \string\%\string~n\string
+ \end{theglossary}\string\glossarypostamble
+ \string~n\string" ^^J\space\space\space
+ :tree)}%
+ \write\glswrite{(markup-letter-group-list
+ :sep \string"\string\glsgroupskip\string~n\string")}%
+ \write\glswrite{(markup-indexentry
+ :open \string"\string\relax \string\glsresetentrylist
+ \string~n\string")}%
+ \write\glswrite{(markup-locclass-list :open
+ \string"\glsopenbrace\string\glossaryentrynumbers
+ \glsopenbrace\string\relax\space \string"^^J\space\space\space
+ :sep \string", \string"
+ :close \string"\glsclosebrace\glsclosebrace\string")}%
+ \write\glswrite{(markup-locref-list
+ :sep \string"\string\delimN\space\string")}%
+ \write\glswrite{(markup-range
+ :sep \string"\string\delimR\space\string")}%
+ \@onelevel@sanitize\gls@suffixF
+ \@onelevel@sanitize\gls@suffixFF
+ \ifx\gls@suffixF\@empty
+ \else
+ \write\glswrite{(markup-range
+ :close "\gls@suffixF" :length 1 :ignore-end)}%
+ \fi
+ \ifx\gls@suffixFF\@empty
+ \else
+ \write\glswrite{(markup-range
+ :close "\gls@suffixFF" :length 2 :ignore-end)}%
+ \fi
+ \write\glswrite{^^J; define format to use for locations^^J}%
+ \write\glswrite{\@xdylocref}%
+ \write\glswrite{^^J; define letter group list format^^J}%
+ \write\glswrite{(markup-letter-group-list
+ :sep \string"\string\glsgroupskip\string~n\string")}%
+ \write\glswrite{^^J; letter group headings^^J}%
+ \write\glswrite{(markup-letter-group
+ :open-head \string"\string\glsgroupheading
+ \glsopenbrace\string"^^J\space\space\space
+ :close-head \string"\glsclosebrace\string")}%
+ \write\glswrite{^^J; additional letter groups^^J}%
+ \write\glswrite{\@xdylettergroups}%
+ \write\glswrite{^^J; additional sort rules^^J}
+ \write\glswrite{\@xdysortrules}%
+ \noist}
+\else
+ \edef\@gls@actualchar{\string?}
+ \edef\@gls@encapchar{\string|}
+ \edef\@gls@levelchar{\string!}
+ \edef\@gls@quotechar{\string"}
+ \def\writeist{\relax
+ \openout\glswrite=\istfilename
+ \write\glswrite{\expandafter\@gobble\string\% makeindex style file
+ created by the glossaries package}
+ \write\glswrite{\expandafter\@gobble\string\% for document
+ '\jobname' on \the\year-\the\month-\the\day}
+ \write\glswrite{actual '\@gls@actualchar'}
+ \write\glswrite{encap '\@gls@encapchar'}
+ \write\glswrite{level '\@gls@levelchar'}
+ \write\glswrite{quote '\@gls@quotechar'}
+ \write\glswrite{keyword \string"\string\\glossaryentry\string"}
+ \write\glswrite{preamble \string"\string\\glossarysection[\string
+ \\glossarytoctitle]{\string\\glossarytitle}\string
+ \\glossarypreamble\string\n\string\\begin{theglossary}\string
+ \\glossaryheader\string\n\string"}
+ \write\glswrite{postamble \string"\string\%\string\n\string
+ \\end{theglossary}\string\\glossarypostamble\string\n
+ \string"}
+ \write\glswrite{group_skip \string"\string\\glsgroupskip\string\n
+ \string"}
+ \write\glswrite{item_0 \string"\string\%\string\n\string"}
+ \write\glswrite{item_1 \string"\string\%\string\n\string"}
+ \write\glswrite{item_2 \string"\string\%\string\n\string"}
+ \write\glswrite{item_01 \string"\string\%\string\n\string"}
+ \write\glswrite{item_x1
+ \string"\string\\relax \string\\glsresetentrylist\string\n
+ \string"}
+ \write\glswrite{item_12 \string"\string\%\string\n\string"}
+ \write\glswrite{item_x2
+ \string"\string\\relax \string\\glsresetentrylist\string\n
+ \string"}
+ \write\glswrite{delim_0 \string"\string\{\string
+ \\glossaryentrynumbers\string\{\string\\relax \string"}
+ \write\glswrite{delim_1 \string"\string\{\string
+ \\glossaryentrynumbers\string\{\string\\relax \string"}
+ \write\glswrite{delim_2 \string"\string\{\string
+ \\glossaryentrynumbers\string\{\string\\relax \string"}
+ \write\glswrite{delim_t \string"\string\}\string\}\string"}
+ \write\glswrite{delim_n \string"\string\\delimN \string"}
+ \write\glswrite{delim_r \string"\string\\delimR \string"}
+ \write\glswrite{headings_flag 1}
+ \write\glswrite{heading_prefix
+ \string"\string\\glsgroupheading\string\{\string"}
+ \write\glswrite{heading_suffix
+ \string"\string\}\string\\relax
+ \string\\glsresetentrylist \string"}
+ \write\glswrite{symhead_positive \string"glssymbols\string"}
+ \write\glswrite{numhead_positive \string"glsnumbers\string"}
+ \write\glswrite{page_compositor \string"\glscompositor\string"}
+ \@gls@escbsdq\gls@suffixF
+ \@gls@escbsdq\gls@suffixFF
+ \ifx\gls@suffixF\@empty
+ \else
+ \write\glswrite{suffix_2p \string"\gls@suffixF\string"}
+ \fi
+ \ifx\gls@suffixFF\@empty
+ \else
+ \write\glswrite{suffix_3p \string"\gls@suffixFF\string"}
+ \fi
+ \noist
+ }
+\fi
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\noist}
+% \begin{macrocode}
+\renewcommand*{\noist}{\let\writeist\relax}
+% \end{macrocode}
+%\end{macro}
+%\iffalse
+% \begin{macrocode}
+%</glossaries-compatible-207.sty>
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
%<*glossaries-accsupp.sty>
% \end{macrocode}
%\fi
-%\section{Accessibilty Support (glossaries-accsupp Code)}
+%\section{Accessibility Support (glossaries-accsupp Code)}
%\label{sec:code:accsupp}
% The \isty{glossaries-accsupp} package is experimental. It is
% intended to provide a means of using the PDF accessibilty support
@@ -16832,7 +14085,13 @@ style `#1' undefined}{}}{%
% further details about accessibility support.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossaries-accsupp}[2009/11/02 v0.2 (NLCT)]
+% \end{macrocode}
+% Package version number now in line with main glossaries package number
+% but will only be updated when \texttt{glossaries-accsupp.sty} is
+% modified.
+% \begin{macrocode}
+\ProvidesPackage{glossaries-accsupp}[2011/04/02 v3.0 (NLCT)
+ Experimental glossaries accessibility]
% \end{macrocode}
% Pass all options to \sty{glossaries}:
% \begin{macrocode}
@@ -16927,6 +14186,38 @@ style `#1' undefined}{}}{%
}
% \end{macrocode}
%\end{key}
+%\begin{key}{shortaccess}
+% The replacement text corresponding to the \gloskey{short} key:
+% \begin{macrocode}
+\define@key{glossentry}{shortaccess}{%
+ \def\@glo@shortaccess{#1}%
+}
+% \end{macrocode}
+%\end{key}
+%\begin{key}{shortpluralaccess}
+% The replacement text corresponding to the \gloskey{shortplural} key:
+% \begin{macrocode}
+\define@key{glossentry}{shortpluralaccess}{%
+ \def\@glo@shortpluralaccess{#1}%
+}
+% \end{macrocode}
+%\end{key}
+%\begin{key}{longaccess}
+% The replacement text corresponding to the \gloskey{long} key:
+% \begin{macrocode}
+\define@key{glossentry}{longaccess}{%
+ \def\@glo@longaccess{#1}%
+}
+% \end{macrocode}
+%\end{key}
+%\begin{key}{longpluralaccess}
+% The replacement text corresponding to the \gloskey{longplural} key:
+% \begin{macrocode}
+\define@key{glossentry}{longpluralaccess}{%
+ \def\@glo@longpluralaccess{#1}%
+}
+% \end{macrocode}
+%\end{key}
% There are no equivalent keys for the \gloskey{user1}\ldots
%\gloskey{user6} keys. The replacement text would have to be
% explicitly put in the value, e.g.,
@@ -16958,6 +14249,10 @@ style `#1' undefined}{}}{%
\def\@glo@symbolpluralaccess{\@glo@symbolaccess}%
\def\@glo@descaccess{\relax}%
\def\@glo@descpluralaccess{\@glo@descaccess}%
+ \def\@glo@shortaccess{\relax}%
+ \def\@glo@shortpluralaccess{\@glo@shortaccess}%
+ \def\@glo@longaccess{\relax}%
+ \def\@glo@longpluralaccess{\@glo@longaccess}%
}
% \end{macrocode}
% Add to the end hook:
@@ -16995,6 +14290,18 @@ style `#1' undefined}{}}{%
\expandafter
\protected@xdef\csname glo@\@glo@label @descpluralaccess\endcsname{%
\@glo@descpluralaccess}%
+ \expandafter
+ \protected@xdef\csname glo@\@glo@label @shortaccess\endcsname{%
+ \@glo@shortaccess}%
+ \expandafter
+ \protected@xdef\csname glo@\@glo@label @shortpluralaccess\endcsname{%
+ \@glo@shortpluralaccess}%
+ \expandafter
+ \protected@xdef\csname glo@\@glo@label @longaccess\endcsname{%
+ \@glo@longaccess}%
+ \expandafter
+ \protected@xdef\csname glo@\@glo@label @longpluralaccess\endcsname{%
+ \@glo@longpluralaccess}%
}
% \end{macrocode}
%
@@ -17081,6 +14388,43 @@ style `#1' undefined}{}}{%
% \end{macrocode}
%\end{macro}
%
+%\begin{macro}{\glsentryshortaccess}
+% Get the value of the \gloskey{shortaccess} key for the entry with
+% the given label:
+% \begin{macrocode}
+\newcommand*{\glsentryshortaccess}[1]{%
+ \csname glo@#1@shortaccess\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\glsentryshortpluralaccess}
+% Get the value of the \gloskey{shortpluralaccess} key for the entry with
+% the given label:
+% \begin{macrocode}
+\newcommand*{\glsentryshortpluralaccess}[1]{%
+ \csname glo@#1@shortpluralaccess\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\glsentrylongaccess}
+% Get the value of the \gloskey{longaccess} key for the entry with
+% the given label:
+% \begin{macrocode}
+\newcommand*{\glsentrylongaccess}[1]{%
+ \csname glo@#1@longaccess\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\glsentrylongpluralaccess}
+% Get the value of the \gloskey{longpluralaccess} key for the entry with
+% the given label:
+% \begin{macrocode}
+\newcommand*{\glsentrylongpluralaccess}[1]{%
+ \csname glo@#1@longpluralaccess\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%
%\begin{macro}{\glsaccsupp}
%\cs{glsaccsupp}\marg{replacement text}\marg{text}\\[10pt]
% This can be redefined to use "E" or "Alt" instead of
@@ -17220,6 +14564,61 @@ style `#1' undefined}{}}{%
}
% \end{macrocode}
%\end{macro}
+%\begin{macro}{\glsshortaccessdisplay}
+% As above but for the \gloskey{shortaccess} replacement text.
+% \begin{macrocode}
+\DeclareRobustCommand*{\glsshortaccessdisplay}[2]{%
+ \protected@edef\@glo@access{\glsentryshortaccess{#2}}%
+ \ifx\@glo@access\@gls@noaccess
+ #1%
+ \else
+ \xglsaccsupp{\@glo@access}{#1}%
+ \fi
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\glsshortpluralaccessdisplay}
+% As above but for the \gloskey{shortpluralaccess} replacement text.
+% \begin{macrocode}
+\DeclareRobustCommand*{\glsshortpluralaccessdisplay}[2]{%
+ \protected@edef\@glo@access{\glsentryshortpluralaccess{#2}}%
+ \ifx\@glo@access\@gls@noaccess
+ #1%
+ \else
+ \xglsaccsupp{\@glo@access}{#1}%
+ \fi
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\glslongaccessdisplay}
+% As above but for the \gloskey{longaccess} replacement text.
+% \begin{macrocode}
+\DeclareRobustCommand*{\glslongaccessdisplay}[2]{%
+ \protected@edef\@glo@access{\glsentrylongaccess{#2}}%
+ \ifx\@glo@access\@gls@noaccess
+ #1%
+ \else
+ \xglsaccsupp{\@glo@access}{#1}%
+ \fi
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\glslongpluralaccessdisplay}
+% As above but for the \gloskey{longpluralaccess} replacement text.
+% \begin{macrocode}
+\DeclareRobustCommand*{\glslongpluralaccessdisplay}[2]{%
+ \protected@edef\@glo@access{\glsentrylongpluralaccess{#2}}%
+ \ifx\@glo@access\@gls@noaccess
+ #1%
+ \else
+ \xglsaccsupp{\@glo@access}{#1}%
+ \fi
+}
+% \end{macrocode}
+%\end{macro}
+%
%\begin{macro}{\glsaccessdisplay}
% Gets the replacement text corresponding to the named key given
% by the first argument and calls the appropriate command
@@ -17597,6 +14996,138 @@ style `#1' undefined}{}}{%
% \end{macrocode}
%\end{macro}
%
+%\begin{macro}{\@acrshort}
+% \begin{macrocode}
+\def\@acrshort#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}
+ \def\@glo@text{%
+ \glsshortaccessdisplay{\glsentryshort{#2}}{#2}%
+ }%
+% \end{macrocode}
+% Call \cs{@gls@link}
+% \begin{macrocode}
+ \@gls@link[#1]{#2}{\acronymfont{\@glo@text}#3}%
+ }%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\@Acrshort}
+% \begin{macrocode}
+\def\@Acrshort#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}
+ \def\@glo@text{%
+ \glsshortaccessdisplay{\Glsentryshort{#2}}{#2}%
+ }%
+% \end{macrocode}
+% Call \cs{@gls@link}
+% \begin{macrocode}
+ \@gls@link[#1]{#2}{\acronymfont{\@glo@text}#3}%
+ }%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\@ACRshort}
+% \begin{macrocode}
+\def\@ACRshort#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}
+ \def\@glo@text{%
+ \glsshortaccessdisplay{\MakeUppercase{\glsentryshort{#2}}}{#2}%
+ }%
+% \end{macrocode}
+% Call \cs{@gls@link}
+% \begin{macrocode}
+ \@gls@link[#1]{#2}{\acronymfont{\@glo@text#3}}%
+ }%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\@acrlong}
+% \begin{macrocode}
+\def\@acrlong#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}
+ \def\@glo@text{%
+ \glslongaccessdisplay{\glsentrylong{#2}}{#2}%
+ }%
+% \end{macrocode}
+% Call \cs{@gls@link}
+% \begin{macrocode}
+ \@gls@link[#1]{#2}{\@glo@text#3}%
+ }%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\@Acrlong}
+% \begin{macrocode}
+\def\@Acrlong#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}
+ \def\@glo@text{%
+ \glslongaccessdisplay{\Glsentrylong{#2}}{#2}%
+ }%
+% \end{macrocode}
+% Call \cs{@gls@link}
+% \begin{macrocode}
+ \@gls@link[#1]{#2}{\@glo@text#3}%
+ }%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\@ACRlong}
+% \begin{macrocode}
+\def\@ACRlong#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}
+ \def\@glo@text{%
+ \glslongaccessdisplay{\MakeUppercase{\glsentrylong{#2}}}{#2}%
+ }%
+% \end{macrocode}
+% Call \cs{@gls@link}
+% \begin{macrocode}
+ \@gls@link[#1]{#2}{\@glo@text#3}%
+ }%
+}
+% \end{macrocode}
+%\end{macro}
+%
%\subsection{Displaying the Glossary}
% Entries within the glossary or list of acronyms are now formatted
% via \cs{accsuppglossaryentryfield} and
@@ -17649,7 +15180,7 @@ style `#1' undefined}{}}{%
% the access text to the long version by default.
% \begin{macrocode}
\renewcommand*{\newacronymhook}{%
- \edef\@gls@keylist{\glsshortkey access=\the\glslongtok,%
+ \edef\@gls@keylist{shortaccess=\the\glslongtok,%
\the\glskeylisttok}%
\expandafter\glskeylisttok\expandafter{\@gls@keylist}%
}
@@ -17666,21 +15197,26 @@ style `#1' undefined}{}}{%
description={\the\glslongtok},%
descriptionaccess=\relax,
text={\the\glsshorttok},%
- textaccess={\the\glslongtok},%
access={\noexpand\@glo@textaccess},%
sort={\the\glsshorttok},%
+ short={\the\glsshorttok},%
+ shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ shortaccess={\the\glslongtok},%
+ long={\the\glslongtok},%
+ longplural={\the\glslongtok\noexpand\acrpluralsuffix},%
descriptionplural={\the\glslongtok\noexpand\acrpluralsuffix},%
- firstaccess=\relax,
- first={\noexpand\glsdescriptionaccessdisplay
+ first={\noexpand\glslongaccessdisplay
{\the\glslongtok}{\the\glslabeltok}\space
- (\noexpand\glstextaccessdisplay
+ (\noexpand\glsshortaccessdisplay
{\the\glsshorttok}{\the\glslabeltok})},%
plural={\the\glsshorttok\acrpluralsuffix},%
- firstplural={\noexpand\glsdescriptionpluralaccessdisplay
- {\noexpand\@glo@descplural}{\the\glslabeltok}\space
- (\noexpand\glspluralaccessdisplay
- {\noexpand\@glo@plural}{\the\glslabeltok})},%
+ firstplural={\noexpand\glslongpluralaccessdisplay
+ {\noexpand\@glo@longpl}{\the\glslabeltok}\space
+ (\noexpand\glsshortpluralaccessdisplay
+ {\noexpand\@glo@shortpl}{\the\glslabeltok})},%
+ firstaccess=\relax,
firstpluralaccess=\relax,
+ textaccess={\noexpand\@glo@shortaccess},%
\the\glskeylisttok
}%
}%
@@ -17698,11 +15234,17 @@ style `#1' undefined}{}}{%
name={\noexpand\acronymfont{\the\glsshorttok}},%
sort={\the\glsshorttok},%
text={\the\glsshorttok},%
- textaccess={\the\glslongtok},%
+ short={\the\glsshorttok},%
+ shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ shortaccess={\the\glslongtok},%
+ long={\the\glslongtok},%
+ longplural={\the\glslongtok\noexpand\acrpluralsuffix},%
access={\noexpand\@glo@textaccess},%
plural={\the\glsshorttok\noexpand\acrpluralsuffix},%
symbol={\the\glslongtok},%
symbolplural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ firstpluralaccess=\relax,
+ textaccess={\noexpand\@glo@shortaccess},%
\the\glskeylisttok
}%
}%
@@ -17721,6 +15263,11 @@ style `#1' undefined}{}}{%
\acrnameformat{\the\glsshorttok}{\the\glslongtok}},%
access={\noexpand\@glo@textaccess},%
sort={\the\glsshorttok},%
+ short={\the\glsshorttok},%
+ shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ shortaccess={\the\glslongtok},%
+ long={\the\glslongtok},%
+ longplural={\the\glslongtok\noexpand\acrpluralsuffix},%
first={\the\glslongtok},%
firstaccess=\relax,
firstplural={\the\glslongtok\noexpand\acrpluralsuffix},%
@@ -17730,6 +15277,8 @@ style `#1' undefined}{}}{%
symbol={\noexpand\@glo@text},%
symbolaccess={\noexpand\@glo@textaccess},%
symbolplural={\noexpand\@glo@plural},%
+ firstpluralaccess=\relax,
+ textaccess={\noexpand\@glo@shortaccess},%
\the\glskeylisttok}%
}%
\@do@newglossaryentry
@@ -17744,11 +15293,15 @@ style `#1' undefined}{}}{%
{%
type=\acronymtype,%
name={\noexpand\acronymfont{\the\glsshorttok}},%
- access={\noexpand\@glo@textaccess},%
sort={\the\glsshorttok},%
text={\the\glsshorttok},%
textaccess={\the\glslongtok},%
+ access={\noexpand\@glo@textaccess},%
plural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ short={\the\glsshorttok},%
+ shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ long={\the\glslongtok},%
+ longplural={\the\glslongtok\noexpand\acrpluralsuffix},%
description={\the\glslongtok},%
descriptionplural={\the\glslongtok\noexpand\acrpluralsuffix},%
\the\glskeylisttok
@@ -17768,9 +15321,14 @@ style `#1' undefined}{}}{%
name={\noexpand\acronymfont{\the\glsshorttok}},%
access={\noexpand\@glo@symbolaccess},%
sort={\the\glsshorttok},%
- text={\noexpand\@glo@symbol},%
- textaccess={\noexpand\@glo@symbolaccess},%
- plural={\noexpand\@glo@symbolplural},%
+ short={\the\glsshorttok},%
+ shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ shortaccess={\the\glslongtok},%
+ long={\the\glslongtok},%
+ longplural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ text={\noexpand\@glo@short},%
+ textaccess={\noexpand\@glo@shortaccess},%
+ plural={\noexpand\@glo@shortpl},%
first={\the\glslongtok},%
firstaccess=\relax,
firstplural={\the\glslongtok\noexpand\acrpluralsuffix},%
@@ -17786,7 +15344,9 @@ style `#1' undefined}{}}{%
}
% \end{macrocode}
%\end{macro}
-% Add means of referencing accessibility support for acronyms:
+%
+% The following are kept for compatibility with versions before
+% 3.0:
%\begin{macro}{\glsshortaccesskey}
% \begin{macrocode}
\newcommand*{\glsshortaccesskey}{\glsshortkey access}%
@@ -17807,6 +15367,99 @@ style `#1' undefined}{}}{%
\newcommand*{\glslongpluralaccesskey}{\glslongpluralkey access}%
% \end{macrocode}
%\end{macro}
+%\subsection{Debugging Commands}
+%
+%\begin{macro}{\showglonameaccess}
+% \begin{macrocode}
+\newcommand*{\showglonameaccess}[1]{%
+ \expandafter\show\csname glo@#1@textaccess\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\showglotextaccess}
+% \begin{macrocode}
+\newcommand*{\showglotextaccess}[1]{%
+ \expandafter\show\csname glo@#1@textaccess\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\showglopluralaccess}
+% \begin{macrocode}
+\newcommand*{\showglopluralaccess}[1]{%
+ \expandafter\show\csname glo@#1@pluralaccess\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\showglofirstaccess}
+% \begin{macrocode}
+\newcommand*{\showglofirstaccess}[1]{%
+ \expandafter\show\csname glo@#1@firstaccess\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\showglofirstpluralaccess}
+% \begin{macrocode}
+\newcommand*{\showglofirstpluralaccess}[1]{%
+ \expandafter\show\csname glo@#1@firstpluralaccess\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\showglosymbolaccess}
+% \begin{macrocode}
+\newcommand*{\showglosymbolaccess}[1]{%
+ \expandafter\show\csname glo@#1@symbolaccess\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\showglosymbolpluralaccess}
+% \begin{macrocode}
+\newcommand*{\showglosymbolpluralaccess}[1]{%
+ \expandafter\show\csname glo@#1@symbolpluralaccess\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\showglodescaccess}
+% \begin{macrocode}
+\newcommand*{\showglodescaccess}[1]{%
+ \expandafter\show\csname glo@#1@descaccess\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\showglodescpluralaccess}
+% \begin{macrocode}
+\newcommand*{\showglodescpluralaccess}[1]{%
+ \expandafter\show\csname glo@#1@descpluralaccess\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\showgloshortaccess}
+% \begin{macrocode}
+\newcommand*{\showgloshortaccess}[1]{%
+ \expandafter\show\csname glo@#1@shortaccess\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\showgloshortpluralaccess}
+% \begin{macrocode}
+\newcommand*{\showgloshortpluralaccess}[1]{%
+ \expandafter\show\csname glo@#1@shortpluralaccess\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\showglolongaccess}
+% \begin{macrocode}
+\newcommand*{\showglolongaccess}[1]{%
+ \expandafter\show\csname glo@#1@longaccess\endcsname
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\showglolongpluralaccess}
+% \begin{macrocode}
+\newcommand*{\showglolongpluralaccess}[1]{%
+ \expandafter\show\csname glo@#1@longpluralaccess\endcsname
+}
+% \end{macrocode}
+%\end{macro}
%\iffalse
% \begin{macrocode}
%</glossaries-accsupp.sty>
@@ -18654,6 +16307,8 @@ style `#1' undefined}{}}{%
%\fi
%\iffalse
% \begin{macrocode}
+ % This file is public domain.
+ %
% This is a minimal file for testing and debugging
% the glossaries package. Change the class file as
% desired, and add the relevant package options to
@@ -18710,11 +16365,57 @@ First use: \glspl{aca}. Second use: \glspl{aca}.
%\fi
%\iffalse
% \begin{macrocode}
+%<*sample-crossref.tex>
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
+\documentclass{article}
+
+\usepackage[colorlinks]{hyperref}
+\usepackage[sanitize={description=false}]{glossaries}
+
+\makeglossaries
+
+\renewcommand{\glsseeitemformat}[1]{\textsc{\glsentryname{#1}}}
+
+\newglossaryentry{pear}{name=pear,
+description={an oddly shaped fruit}}
+
+\newglossaryentry{apple}{name=apple,
+description={firm, round fruit},
+see=[see also]{pear}}
+
+\newglossaryentry{banana}{name=banana,
+description={a yellow fruit with an even odder shape than
+a \protect\gls{pear}}}
+
+\newglossaryentry{fruit}{name=fruit,
+description={sweet, fleshy product of plant containing seed}}
+
+\glssee{fruit}{pear,apple,banana}
+
+\begin{document}
+\gls{pear}, \gls{apple} and \gls{banana}.
+
+\printglossaries
+
+\end{document}
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
+%</sample-crossref.tex>
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
%<*sample-custom-acronym.tex>
% \end{macrocode}
%\fi
%\iffalse
% \begin{macrocode}
+ % This file is public domain
\documentclass{report}
\usepackage[colorlinks]{hyperref}
@@ -18755,14 +16456,14 @@ First use: \glspl{aca}. Second use: \glspl{aca}.
% ##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 \glsentryuseri{\glslabel}
+ % The short form can be obtained via \glsentryshort{\glslabel}
% The plural short form can be obtained via
- % \glsentryuserii{\glslabel}
- % The long form can be obtained via \glsentryuseriii{\glslabel}
+ % \glsentryshortplural{\glslabel}
+ % The long form can be obtained via \glsentrylong{\glslabel}
% The plural long form can be obtained via
- % \glsentryuseriv{\glslabel}
+ % \glsentrylongplural{\glslabel}
\defglsdisplayfirst[#1]{##1##4\protect\footnote{%
- \glsentryuseriii{\glslabel}: ##2}}%
+ \glsentrylong{\glslabel}: ##2}}%
% ##1 corresponds to the 'text' key
% the rest as above
\defglsdisplay[#1]{##1##4}%
@@ -18798,35 +16499,79 @@ Sheet}
%\fi
%\iffalse
% \begin{macrocode}
+%<*sample-dual.tex>
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
+ % This file is public domain
+\documentclass{article}
+
+\usepackage[acronym]{glossaries}
+
+ % \newdualentry[main options]{label}{short}{long}{description}
+
+\newcommand*{\newdualentry}[5][]{%
+ \newglossaryentry{main-#2}{name={#4},%
+ text={#3\protect\glsadd{#2}},%
+ description={#5},%
+ #1
+ }%
+ \newacronym{#2}{#3\protect\glsadd{main-#2}}{#4}
+}
+
+\newdualentry{svm}% label
+ {SVM}% abbreviation
+ {support vector machine}% long form
+ {Statistical pattern recognition technique}% description
+
+\makeglossaries
+
+\begin{document}
+
+\gls{svm}.
+
+\printglossaries
+\end{document}
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
+%</sample-dual.tex>
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
%<*sample.tex>
% \end{macrocode}
%\fi
%\iffalse
% \begin{macrocode}
+ % This file is public domain
\documentclass[a4paper]{report}
\usepackage[plainpages=false,colorlinks]{hyperref}
-\usepackage[toc,style=treenoname,order=word,acronym]{glossaries}
+\usepackage[toc,style=treenoname,order=word,subentrycounter]{glossaries}
\makeglossaries
+\newglossaryentry{Perl}{name=\texttt{Perl},
+sort=Perl, % need a sort key because name contains a command
+description=A scripting language}
+
\newglossaryentry{glossary}{name=glossary,
description={\nopostdesc},
plural={glossaries}}
-\newglossaryentry{glossarylist}{
-description={1) list of technical words},
-sort={1},
-parent={glossary}}
-
\newglossaryentry{glossarycol}{
-description={2) collection of glosses},
+description={collection of glosses},
sort={2},
parent={glossary}}
-\newglossaryentry{Perl}{name=\texttt{Perl},
-sort=Perl, % need a sort key because name contains a command
-description=A scripting language}
+\newglossaryentry{glossarylist}{
+description={list of technical words},
+sort={1},
+parent={glossary}}
\newglossaryentry{pagelist}{name=page list,
% description value has to be enclosed in braces
@@ -18859,12 +16604,12 @@ female of any bovine animal}}
\newglossaryentry{bravo}{name={bravo},
description={\nopostdesc}}
-\newglossaryentry{bravo1}{description={1) cry of approval (pl.\ bravos)},
+\newglossaryentry{bravo1}{description={cry of approval (pl.\ bravos)},
sort={1},
plural={bravos},
parent=bravo}
-\newglossaryentry{bravo2}{description={2) hired ruffian or killer (pl.\ bravoes)},
+\newglossaryentry{bravo2}{description={hired ruffian or killer (pl.\ bravoes)},
sort={2},
plural={bravoes},
parent=bravo}
@@ -18888,11 +16633,11 @@ description={large seal}}
\chapter{Introduction}
\pagenumbering{arabic}
-A \gls{glossarylist} is a very useful addition to any
-technical document, although a \gls{glossarycol} can
-also simply be a collection of glosses, which is
-another thing entirely. Some documents have
-multiple \glspl{glossarylist}.
+A \gls{glossarylist} (definition~\glsrefentry{glossarylist}) is a
+very useful addition to any technical document, although a
+\gls{glossarycol} (definition~\glsrefentry{glossarycol}) can also
+simply be a collection of glosses, which is another thing entirely.
+Some documents have multiple \glspl{glossarylist}.
Once you have run your document through \LaTeX, you
will then need to run the \texttt{.glo} file through
@@ -18920,9 +16665,10 @@ explicitly specify the alternative form using \verb|\glslink|.
\Glspl{seal} and \glspl{sealion} have regular plural forms.
\Gls{bravo} is a homograph, but the plural forms are spelt
-differently. The plural of \gls{bravo1}, a cry of approval,
-is \glspl{bravo1}, whereas the plural of \gls{bravo2}, a hired
-ruffian or killer, is \glspl{bravo2}.
+differently. The plural of \gls{bravo1}, a cry of approval
+(definition~\glsrefentry{bravo1}), is \glspl{bravo1}, whereas the
+plural of \gls{bravo2}, a hired ruffian or killer
+(definition~\glsrefentry{bravo2}), is \glspl{bravo2}.
\Glspl{par} can cause a problem in commands, so care is needed
when having a paragraph break in a \gls{glossarylist} entry.
@@ -18950,6 +16696,7 @@ There are two types of ordering: word ordering (which places
%\fi
%\iffalse
% \begin{macrocode}
+ % This file is public domain
\documentclass[a4paper]{article}
\usepackage[style=long4colheaderborder]{glossaries}
@@ -18988,6 +16735,7 @@ measured in kilograms.
%\fi
%\iffalse
% \begin{macrocode}
+ % This file is public domain
\documentclass{article}
\usepackage[acronym,smallcaps]{glossaries-accsupp}
@@ -18996,7 +16744,7 @@ measured in kilograms.
\newglossaryentry{dr}{name=Dr,description={Doctor},access={Doctor}}
-\newacronym[\glsshortaccesskey=S V M]{svm}{svm}{support vector machine}
+\newacronym[shortaccess=S V M]{svm}{svm}{support vector machine}
\newacronym{eg}{e.g.}{for example}
@@ -19004,9 +16752,12 @@ measured in kilograms.
\gls{dr}~Jones.
\gls{dr}~Jones.
-\Gls{eg}, \gls{eg}
+\Gls{eg}, \gls{eg}, \acrshort{eg}, \acrlong{eg}, \acrfull{eg}.
-\gls{svm}. \gls{svm}.
+\Acrshort{eg}, \ACRshort{eg}. \Acrlong{eg}, \ACRlong{eg}.
+\Acrfull{eg}, \ACRfull{eg}.
+
+\gls{svm}. \gls{svm}, \acrshort{svm}, \acrlong{svm}, \acrfull{svm}.
\printglossaries
\end{document}
@@ -19024,10 +16775,14 @@ measured in kilograms.
%\fi
%\iffalse
% \begin{macrocode}
+ % This file is public domain
\documentclass[a4paper]{report}
\usepackage[colorlinks,plainpages=false]{hyperref}
-\usepackage[style=long,toc]{glossaries}
+\usepackage[style=long,% use 'long' style for the glossary
+ toc,% add glossary to table of contents
+ smallcaps% Use small caps for acronyms
+ ]{glossaries}
\makeglossaries
@@ -19045,30 +16800,60 @@ measured in kilograms.
\chapter{Support Vector Machines}
\Glspl{svm} are used widely in the area of pattern recognition.
+Subsequent use: \gls{svm}.
-This is the text produced without a link: \glsentrytext{svm}.
-This is the text produced on first use without a link:
-\glsentryfirst{svm}. This is the entry's description without
-a link: \glsentrydesc{svm}.
+Short version: \acrshort{svm}. Long version: \acrlong{svm}. Full
+version: \acrfull{svm}. Description: \glsentrydesc{svm}.
This is the entry in uppercase: \GLS{svm}.
\chapter{Kernel Support Vector Machines}
The \gls{ksvm} is \ifglsused{svm}{an}{a} \gls{svm} that uses
-the so called ``kernel trick''. Plural: \glspl{ksvm}.
+the so called ``kernel trick''. Plural: \glspl{ksvm}. Resetting
+acronyms.
\glsresetall
Possessive: \gls{ksvm}['s].
Make the glossary entry number bold for this
-one \gls[format=hyperbf]{svm}.
+one \gls[format=hyperbf]{ksvm}.
+
+\chapter{Short, Long and Full Forms}
+
+These commands don't affect the first use flag:
+
+\begin{center}
+\begin{tabular}{lll}
+ & Unstarred & Starred\\
+acrshort & \acrshort{svm} & \acrshort*{svm}\\
+Acrshort & \Acrshort{svm} & \Acrshort*{svm}\\
+ACRshort & \ACRshort{svm} & \ACRshort*{svm}\\
+acrlong & \acrlong{svm} & \acrlong*{svm}\\
+Acrlong & \Acrlong{svm} & \Acrlong*{svm}\\
+ACRlong & \ACRlong{svm} & \ACRlong*{svm}\\
+acrfull & \acrfull{svm} & \acrfull*{svm}\\
+Acrfull & \Acrfull{svm} & \Acrfull*{svm}\\
+ACRfull & \ACRfull{svm} & \ACRfull*{svm}\\
+\\
+& Insert Unstarred & Insert Starred\\
+acrshort & \acrshort{svm}['s] & \acrshort*{svm}['s]\\
+Acrshort & \Acrshort{svm}['s] & \Acrshort*{svm}['s]\\
+ACRshort & \ACRshort{svm}['s] & \ACRshort*{svm}['s]\\
+acrlong & \acrlong{svm}['s] & \acrlong*{svm}['s]\\
+Acrlong & \Acrlong{svm}['s] & \Acrlong*{svm}['s]\\
+ACRlong & \ACRlong{svm}['s] & \ACRlong*{svm}['s]\\
+acrfull & \acrfull{svm}['s] & \acrfull*{svm}['s]\\
+Acrfull & \Acrfull{svm}['s] & \Acrfull*{svm}['s]\\
+ACRfull & \ACRfull{svm}['s] & \ACRfull*{svm}['s]
+\end{tabular}
+\end{center}
\chapter{Another chapter}
You don't need to worry about makeindex's special characters:
\gls{rna}.
-\printglossary[title={Acronyms}]
+\printglossary[title={List of Acronyms}]
\end{document}
% \end{macrocode}
@@ -19085,26 +16870,40 @@ You don't need to worry about makeindex's special characters:
%\fi
%\iffalse
% \begin{macrocode}
+ % This file is public domain
\documentclass[a4paper]{report}
\usepackage[colorlinks,plainpages=false]{hyperref}
-\usepackage[style=altlist, % use altlist style
+\usepackage[acronym,% create 'acronym' glossary type
+ nomain,% 'main' glossary not needed as using 'acronym'
+ style=altlist, % use altlist style
toc, % add the glossary to the table of contents
sanitize={description=false},% want to use description in main document
+ smallcaps,%
description% acronyms have a user-supplied description
]{glossaries}
\makeglossaries
+% Change the "see" items so that they use \acronymfont:
+\renewcommand*{\glsseeitemformat}[1]{\acronymfont{\glsentrytext{#1}}}
+
+% Change the default style for the "name" key:
+\renewcommand*{\acrnameformat}[2]{\acronymfont{#1} (#2)}
+
+% Not using a font that supports bold smallcaps so change the way
+% the name is formatted in the glossary:
+
+\renewcommand*{\glsnamefont}[1]{\textmd{#1}}
+
\newacronym[description={Statistical pattern recognition
technique~\protect\cite{svm}}, % acronym's description
-name={Support vector machine (svm)}% change the default way of displaying the entry name in the list of acronyms
]{svm}{svm}{support vector machine}
\newacronym[description={Statistical pattern recognition technique
-using the ``kernel trick'' (see also \glshyperlink[SVM]{svm})},% acronym's description
-name={Kernel support vector machine (ksvm)}% change the default way of displaying the entry name in the list of acronyms
+using the ``kernel trick''},% acronym's description
+see={[see also]{svm}},
]{ksvm}{ksvm}{kernel
support vector machine}
@@ -19117,10 +16916,8 @@ The \gls{svm} is used widely in the area of pattern recognition.
% plural form with initial letter in uppercase:
\Glspl{svm} are \ldots
-This is the text produced without a link: \glsentrytext{svm}.
-This is the text produced on first use without a link:
-\glsentryfirst{svm}. This is the entry's description without
-a link: \glsentrydesc{svm}.
+Short version: \acrshort{svm}. Long version: \acrlong{svm}. Full
+version: \acrfull{svm}. Description: \glsentrydesc{svm}.
This is the entry in uppercase: \GLS{svm}.
@@ -19156,6 +16953,7 @@ one \gls[format=hyperbf]{svm}.
%\fi
%\iffalse
% \begin{macrocode}
+ % This file is public domain
\documentclass{article}
\usepackage[acronym,footnote,acronymlists={main,acronym2}]{glossaries}
@@ -19204,6 +17002,7 @@ one \gls[format=hyperbf]{svm}.
%\fi
%\iffalse
% \begin{macrocode}
+ % This file is public domain
\documentclass{article}
\usepackage[colorlinks,plainpages=false]{hyperref}
@@ -19237,7 +17036,9 @@ one \gls[format=hyperbf]{svm}.
%\fi
%\iffalse
% \begin{macrocode}
-% See also sampleAcrDesc.tex
+ % This file is public domain
+ %
+ % See also sampleAcrDesc.tex
\documentclass[a4paper]{report}
\usepackage[colorlinks,plainpages=false]{hyperref}
@@ -19317,6 +17118,7 @@ one \gls[format=hyperbf]{svm}.
%\fi
%\iffalse
% \begin{macrocode}
+ % This file is public domain
\documentclass[a4paper,12pt]{report}
\usepackage{amsmath}
@@ -19331,7 +17133,7 @@ one \gls[format=hyperbf]{svm}.
% redefine the way hyperref creates the target for equations
% so that the glossary links to equation numbers work
-\renewcommand*\theHequation{\thechapter.\arabic{equation}}
+ \renewcommand*\theHequation{\theHchapter.\arabic{equation}}
% Change the glossary headings
@@ -19567,6 +17369,8 @@ Bessel functions $Z_\nu$ are solutions of
%\fi
%\iffalse
% \begin{macrocode}
+ % This file is public domain
+ %
% To ensure that the page numbers are up-to-date:
%
% latex sampleEqPg
@@ -19867,11 +17671,12 @@ Bessel functions $Z_\nu(z)$ are solutions of
%\fi
%\iffalse
% \begin{macrocode}
+ % This file is public domain
\documentclass{report}
\usepackage[plainpages=false,colorlinks]{hyperref}
\usepackage{html}
-\usepackage[toc]{glossaries}
+\usepackage[toc,savewrites,xindy]{glossaries}
% Define a new glossary type called notation
\newglossary[nlg]{notation}{not}{ntn}{Notation}
@@ -19963,6 +17768,7 @@ The factorial symbol: \gls{not:fact}.
%\fi
%\iffalse
% \begin{macrocode}
+ % This file is public domain
\documentclass{report}
\usepackage[plainpages=false,colorlinks]{hyperref}
@@ -20035,6 +17841,7 @@ Another \gls{ident} entry.
%\fi
%\iffalse
% \begin{macrocode}
+ % This file is public domain
\documentclass{report}
\usepackage[colorlinks]{hyperref}
@@ -20113,6 +17920,7 @@ The letter \gls{C} represents Euler's constant.
%\fi
%\iffalse
% \begin{macrocode}
+ % This file is public domain
\documentclass{article}
\usepackage[utf8]{inputenc}
@@ -20170,28 +17978,31 @@ description=man-eating giant}
%\fi
%\iffalse
% \begin{macrocode}
-%<*samplexdy.tex>
+%<*samplexdy-compatible207.tex>
% \end{macrocode}
%\fi
%\iffalse
% \begin{macrocode}
+ % This file is public domain.
+ %
% This is a sample document illustrating how to use the
- % glossaries package with xindy. To create the document:
+ % glossaries package with xindy using the compatibility option.
+ % To create the document:
%
- % latex samplexdy
- % makeglossaries samplexdy
- % latex samplexdy
+ % latex samplexdy-compatible207
+ % makeglossaries samplexdy-compatible207
+ % latex samplexdy-compatible207
%
% If you don't have Perl installed, then use one of the
% following instead of makeglossaries:
%
% If you want to have a separate "Mc" letter group do:
%
- % xindy -I xindy -M samplexdy-mc -t samplexdy.glg -o samplexdy.gls samplexdy.glo
+ % xindy -I xindy -M samplexdy-mc207 -t samplexdy-compatible207.glg -o samplexdy-compatible207.gls samplexdy-compatible207.glo
%
% Otherwise do:
%
- % xindy -L english -C utf8 -I xindy -M samplexdy -t samplexdy.glg -o samplexdy.gls samplexdy.glo
+ % xindy -L english -C utf8 -I xindy -M samplexdy-compatible207 -t samplexdy-compatible207.glg -o samplexdy-compatible207.gls samplexdy-compatible207.glo
%
\documentclass{article}
@@ -20203,7 +18014,7 @@ description=man-eating giant}
% the following line:
% \usepackage[colorlinks]{hyperref}
-\usepackage[xindy,style=altlistgroup]{glossaries}
+\usepackage[xindy,compatible-2.07,style=altlistgroup]{glossaries}
% Define a new command to do bold italic (it uses \hyperbf
% rather than \textbf in case I later introduce hyperlinks
@@ -20235,6 +18046,249 @@ description=man-eating giant}
% To have Mc as a separate group uncomment the following three
% lines:
+ \setStyleFile{samplexdy-mc207} % note no extension
+ \noist
+ \GlsSetXdyLanguage{}
+
+ % The above three lines specify to use samplexdy-mc.xdy (supplied
+ % with this file) and don't overwrite it. The language is
+ % unset using \GlsSetXdyLanguage{} as all the language
+ % dependent information is contained in samplexdy-mc.xdy
+ % Note that using \noist means that commands like
+ % \GlsAddXdyAttribute and \GlsAddXdyLocation will no longer have
+ % an effect.
+
+ % Write the style file (if \noist isn't used)
+ % and activate glossary entries
+
+\makeglossaries
+
+ % Define glossary entries
+ % \glshyperlink is used instead of \gls to prevent the glossary
+ % page numbers also appear in the locations, however I need
+ % to ensure that the referenced entries are added to the
+ % glossary via commands that use \glslink, \glsadd or \glssee
+
+\newglossaryentry{mcadam}{name={McAdam, John Loudon},
+first={John Loudon McAdam},text={McAdam},
+description={Scottish engineer}}
+
+\newglossaryentry{maclaurin}{name={Maclaurin, Colin},
+first={Colin Maclaurin},text={Maclaurin},
+description={Scottish mathematician best known for the
+\gls{maclaurinseries}}}
+
+\newglossaryentry{maclaurinseries}{name={Maclaurin series},
+description={Series expansion},see={taylorstheorem}}
+
+\newglossaryentry{taylorstheorem}{name={Taylor's theorem},
+description={Theorem expressing a function $f(x)$ as the sum of
+a polynomial and a remainder:
+\[f(x) = f(a)+f'(a)(x-a)+f''(a)(x-a^2)/2!+\cdots+R_n\]
+If $n\to\infty$ the expansion is a \glshyperlink{taylorseries}
+and if $a=0$, the series is called a
+\gls{maclaurinseries}}}
+
+\newglossaryentry{taylorseries}{name={Taylor series},
+description={Series expansion},see={taylorstheorem}}
+
+\newglossaryentry{taylor}{name={Taylor, Brook},
+first={Brook Taylor},text={Taylor},
+description={English mathematician}}
+
+\newglossaryentry{mcnemar}{name={McNemar, Quinn},
+first={Quinn McNemar},text={McNemar},
+description={Mathematician who introduced
+\gls{mcnemarstest}. This entry has the number list
+suppressed},nonumberlist}
+
+\newglossaryentry{mcnemarstest}{name={McNemar's test},
+description={A nonparametric test introduced by
+\gls{mcnemar} in 1947}}
+
+\newglossaryentry{mach}{name={Mach, Ernst},
+first={Ernst Mach},text={Mach},
+ % if using samplexdy-mc.xdy, the following line is needed
+ % to prevent this entry being put in the "Mc" group
+sort={mach, Ernst},
+description={Czech/Austrian physicist and philosopher}}
+
+\newglossaryentry{machnumber}{name={Mach number},
+ % if using samplexdy-mc.xdy, the following line is needed
+ % to prevent this entry being put in the "Mc" group
+sort={mach number},
+description={Ratio of the speed of a body in a fluid to the
+speed of sound in that fluid named after \gls{mach}}}
+
+\newglossaryentry{malthus}{name={Malthus, Thomas Robert},
+first={Thomas Robert Malthus},text={Malthus},
+description={English mathematician, sociologist and classicist}}
+
+\newglossaryentry{ampereandre}{name={Ampère, André-Marie},
+first={André-Marie Ampère},text={Ampère},
+description={French mathematician and physicist}}
+
+\newglossaryentry{ampere}{name={ampere},
+description={SI unit of electric current named after
+\gls{ampereandre}}}
+
+\newglossaryentry{archimedes}{name={Archimedes of Syracuse},
+first={Archimedes of Syracuse},text={Archimedes},
+description={Greek mathematician}}
+
+\newglossaryentry{archimedesprinciple}{name={Archemedes' principle},
+description={Principle that if a body is submerged in a fluid
+it experiences upthrust equal to the weight of the displaced
+fluid. Named after \gls{archimedes}}}
+
+\newglossaryentry{galton}{name={Galton, Sir Francis},
+first={Sir Francis Galton},text={Galton},
+description={English anthropologist}}
+
+\newglossaryentry{gauss}{name={Gauss, Karl Friedrich},
+first={Karl Friedrich Gauss},text={Gauss},
+description={German mathematician}}
+
+\newglossaryentry{gaussianint}{name={Gaussian integer},
+description={Complex number where both real and imaginary
+parts are integers}}
+
+\newglossaryentry{peano}{name={Peano, Giuseppe},
+first={Giuseppe Peano},text={Peano},
+description={Italian mathematician}}
+
+\newglossaryentry{peanoscurve}{name={Peano's curve},
+description={A space-filling curve discovered by
+\gls{peano}}}
+
+\newglossaryentry{pearson}{name={Pearson, Karl},
+first={Karl Pearson},text={Pearson},
+description={English mathematician}}
+
+\newglossaryentry{pearspmcc}{name={Pearson's product moment
+correlation coefficient},description={Product moment correlation
+coefficient named after \gls{pearson}}}
+
+\begin{document}
+\title{Sample Document Using the Glossaries Package With Xindy}
+\author{Nicola Talbot}
+\maketitle
+
+\section{\glsentryfirst{gauss}}
+
+This is a section on \gls[format=(]{gauss}. This section spans
+several pages.
+
+\newpage
+
+This page talks about \glspl[format=hyperbfit]{gaussianint}. Since
+it's the principle definition, the user-defined hyperbfit format is
+used.
+
+\newpage
+
+The section on \gls[format=)]{gauss} ends here.
+
+\section{Series Expansions}
+
+This section is about series expansions. It mentions
+\gls{maclaurin} and \gls{taylor}. It also discusses
+\gls{taylorstheorem} which is related to the \gls{taylorseries}.
+The \gls{maclaurinseries} is a special case of the
+\gls{taylorseries}.
+
+\section{\glsentryname{archimedesprinciple}}
+
+This section discusses \gls{archimedesprinciple} which was
+introduced by \gls{archimedes}.
+
+\section{Another section}
+
+This section covers \gls{mach} who introduced the \gls{machnumber}.
+It also mentions \gls{ampereandre} after whom the
+SI unit \gls{ampere} is named. It then discusses \gls{galton}
+and \gls{malthus}. Finally it mentions \gls{mcadam}.
+
+\newpage
+This page discusses \gls{mcnemar} who introduced
+\gls{mcnemarstest} and \gls{peano} who discovered \gls{peanoscurve}.
+
+\printglossaries
+\end{document}
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
+%</samplexdy-compatible207.tex>
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
+%<*samplexdy.tex>
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
+ % This file is public domain.
+ %
+ % This is a sample document illustrating how to use the
+ % glossaries package with xindy. To create the document:
+ %
+ % latex samplexdy
+ % makeglossaries samplexdy
+ % latex samplexdy
+ %
+ % If you don't have Perl installed, then use one of the
+ % following instead of makeglossaries:
+ %
+ % If you want to have a separate "Mc" letter group do:
+ %
+ % xindy -I xindy -M samplexdy-mc -t samplexdy.glg -o samplexdy.gls samplexdy.glo
+ %
+ % Otherwise do:
+ %
+ % xindy -L english -C utf8 -I xindy -M samplexdy -t samplexdy.glg -o samplexdy.gls samplexdy.glo
+ %
+\documentclass{article}
+
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{fmtcount}
+
+\usepackage[colorlinks,plainpages]{hyperref}
+\usepackage[xindy,style=altlistgroup]{glossaries}
+
+ % Define a new command to do bold italic:
+
+\newcommand*{\hyperbfit}[1]{\textit{\hyperbf{#1}}}
+
+ % Need to add this to the list of attributes in order
+ % to use it with xindy:
+ % (This command will have no effect if \noist is used)
+
+\GlsAddXdyAttribute{hyperbfit}
+
+ % Redefine the page numbers so that they appear as a word:
+
+ \renewcommand*{\thepage}{\Numberstring{page}}
+
+ % Need to add this to the list of location styles.
+ % \Numberstring{page} gets expanded to
+ % \protect \Numberstringnum {<n>} (where <n> is the page number)
+ % so need to define the location in that format:
+ % (This command will have no effect if \noist is used)
+
+\GlsAddXdyLocation{Numberstring}{:sep "\string\protect\space
+ \string\Numberstringnum\space\glsopenbrace"
+ "arabic-numbers" :sep "\glsclosebrace"}
+
+ % (Need to redefine \glsXpageXhyperbfit and
+ % \glsXpageXglsnumberformat after \makeglossaries to get the
+ % hyperlinks working correctly.)
+
+ % To have Mc as a separate group uncomment the following three
+ % lines:
+
%\setStyleFile{samplexdy-mc} % note no extension
%\noist
%\GlsSetXdyLanguage{}
@@ -20252,6 +18306,24 @@ description=man-eating giant}
\makeglossaries
+ % Each page location will be specified in the form:
+ %
+ % "\glsXpageXglsnumberformat{}{\protect \Numberstringnum "\marg{n}"}"
+ % or
+ % "\glsXpageXhyperbfit{}{\protect \Numberstringnum "\marg{n}"}"
+ %
+ % Redefine to allow hyperlinks:
+
+\renewcommand{\glsXpageXglsnumberformat}[2]{%
+ \linkpagenumber#2%
+}
+
+\renewcommand{\glsXpageXhyperbfit}[2]{%
+ \textbf{\em\linkpagenumber#2}%
+}
+
+\newcommand{\linkpagenumber}[3]{\hyperlink{page.#3}{#1#2{#3}}}
+
% Define glossary entries
% \glshyperlink is used instead of \gls to prevent the glossary
% page numbers also appear in the locations, however I need
@@ -20413,6 +18485,86 @@ This page discusses \gls{mcnemar} who introduced
%\fi
%\iffalse
% \begin{macrocode}
+%<*samplexdy2.tex>
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
+ % This file is public domain
+ %
+ % This is a sample document illustrating how to use the
+ % glossaries package with xindy. To create the document:
+ %
+ % pdflatex samplexdy2
+ % makeglossaries samplexdy2
+ % pdflatex samplexdy2
+ %
+ % This sample file won't work with makeindex
+ %
+\documentclass{report}
+
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[colorlinks]{hyperref}
+\usepackage[xindy,counter=section]{glossaries}
+
+ % Set up somewhat eccentric section numbering system:
+
+\renewcommand*{\thesection}{[\thechapter]\arabic{section}}
+
+\renewcommand*{\theHsection}{\thepart.\thesection}
+\renewcommand*{\thepart}{\Roman{part}}
+
+\GlsAddXdyLocation["roman-numbers-uppercase"]{section}{:sep "["
+ "arabic-numbers" :sep "]" "arabic-numbers"
+}
+
+ % If part is 0, then \thepart will be empty, so add an extra
+ % case to catch this:
+
+\GlsAddXdyLocation{zero.section}{:sep "["
+ "arabic-numbers" :sep "]" "arabic-numbers"
+}
+
+ % (Note that the above will stop xindy giving a warning, but the
+ % location hyper links will be invalid if no \part is used.)
+
+\makeglossaries
+
+\newglossaryentry{sample}{name=sample,description={an example}}
+\newglossaryentry{sample2}{name=sample2,description={another example}}
+
+\begin{document}
+This is a sample document illustrating Xindy specific commands in
+the glossaries package.
+
+\part{First Part}
+
+\chapter{Sample Chapter}
+
+\section{First Section}
+
+\gls{sample}. \gls{sample2}.
+
+\section{Second Section}
+
+\gls{sample2}.
+
+\section{Third Section}
+
+\gls{sample}. \gls{sample2}.
+
+\printglossaries
+\end{document}
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
+%</samplexdy2.tex>
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
%<*samplexdy-mc.xdy>
% \end{macrocode}
%\fi
@@ -20834,6 +18986,876 @@ This page discusses \gls{mcnemar} who introduced
; list of allowed attributes (number formats)
(define-attributes (("default"
+ "hyperbfit"
+ "pagehyperbfit"
+ "glsnumberformat"
+ "pageglsnumberformat"
+ "textrm"
+ "pagetextrm"
+ "textsf"
+ "pagetextsf"
+ "texttt"
+ "pagetexttt"
+ "textbf"
+ "pagetextbf"
+ "textmd"
+ "pagetextmd"
+ "textit"
+ "pagetextit"
+ "textup"
+ "pagetextup"
+ "textsl"
+ "pagetextsl"
+ "textsc"
+ "pagetextsc"
+ "emph"
+ "pageemph"
+ "glshypernumber"
+ "pageglshypernumber"
+ "hyperrm"
+ "pagehyperrm"
+ "hypersf"
+ "pagehypersf"
+ "hypertt"
+ "pagehypertt"
+ "hyperbf"
+ "pagehyperbf"
+ "hypermd"
+ "pagehypermd"
+ "hyperit"
+ "pagehyperit"
+ "hyperup"
+ "pagehyperup"
+ "hypersl"
+ "pagehypersl"
+ "hypersc"
+ "pagehypersc"
+ "hyperemph"
+ "pagehyperemph")))
+
+; user defined alphabets
+
+
+
+; location class definitions
+
+(define-location-class "roman-page-numbers"
+ ( :sep "{}{" "roman-numbers-lowercase" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "roman-page-numbers-roman-page-numbers"
+ ( :sep "{" "roman-numbers-lowercase" :sep "}{" "roman-numbers-lowercase" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "Roman-page-numbers-roman-page-numbers"
+ ( :sep "{" "roman-numbers-uppercase" :sep "}{" "roman-numbers-lowercase" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "arabic-page-numbers-roman-page-numbers"
+ ( :sep "{" "arabic-numbers" :sep "}{" "roman-numbers-lowercase" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "alpha-page-numbers-roman-page-numbers"
+ ( :sep "{" "alpha" :sep "}{" "roman-numbers-lowercase" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "Alpha-page-numbers-roman-page-numbers"
+ ( :sep "{" "ALPHA" :sep "}{" "roman-numbers-lowercase" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "Appendix-page-numbers-roman-page-numbers"
+ ( :sep "{" "ALPHA" :sep "." "arabic-numbers" :sep "}{" "roman-numbers-lowercase" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "arabic-section-numbers-roman-page-numbers"
+ ( :sep "{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}{" "roman-numbers-lowercase" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "Roman-page-numbers"
+ ( :sep "{}{" "roman-numbers-uppercase" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "roman-page-numbers-Roman-page-numbers"
+ ( :sep "{" "roman-numbers-lowercase" :sep "}{" "roman-numbers-uppercase" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "Roman-page-numbers-Roman-page-numbers"
+ ( :sep "{" "roman-numbers-uppercase" :sep "}{" "roman-numbers-uppercase" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "arabic-page-numbers-Roman-page-numbers"
+ ( :sep "{" "arabic-numbers" :sep "}{" "roman-numbers-uppercase" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "alpha-page-numbers-Roman-page-numbers"
+ ( :sep "{" "alpha" :sep "}{" "roman-numbers-uppercase" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "Alpha-page-numbers-Roman-page-numbers"
+ ( :sep "{" "ALPHA" :sep "}{" "roman-numbers-uppercase" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "Appendix-page-numbers-Roman-page-numbers"
+ ( :sep "{" "ALPHA" :sep "." "arabic-numbers" :sep "}{" "roman-numbers-uppercase" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "arabic-section-numbers-Roman-page-numbers"
+ ( :sep "{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}{" "roman-numbers-uppercase" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "arabic-page-numbers"
+ ( :sep "{}{" "arabic-numbers" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "roman-page-numbers-arabic-page-numbers"
+ ( :sep "{" "roman-numbers-lowercase" :sep "}{" "arabic-numbers" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "Roman-page-numbers-arabic-page-numbers"
+ ( :sep "{" "roman-numbers-uppercase" :sep "}{" "arabic-numbers" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "arabic-page-numbers-arabic-page-numbers"
+ ( :sep "{" "arabic-numbers" :sep "}{" "arabic-numbers" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "alpha-page-numbers-arabic-page-numbers"
+ ( :sep "{" "alpha" :sep "}{" "arabic-numbers" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "Alpha-page-numbers-arabic-page-numbers"
+ ( :sep "{" "ALPHA" :sep "}{" "arabic-numbers" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "Appendix-page-numbers-arabic-page-numbers"
+ ( :sep "{" "ALPHA" :sep "." "arabic-numbers" :sep "}{" "arabic-numbers" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "arabic-section-numbers-arabic-page-numbers"
+ ( :sep "{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}{" "arabic-numbers" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "alpha-page-numbers"
+ ( :sep "{}{" "alpha" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "roman-page-numbers-alpha-page-numbers"
+ ( :sep "{" "roman-numbers-lowercase" :sep "}{" "alpha" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "Roman-page-numbers-alpha-page-numbers"
+ ( :sep "{" "roman-numbers-uppercase" :sep "}{" "alpha" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "arabic-page-numbers-alpha-page-numbers"
+ ( :sep "{" "arabic-numbers" :sep "}{" "alpha" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "alpha-page-numbers-alpha-page-numbers"
+ ( :sep "{" "alpha" :sep "}{" "alpha" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "Alpha-page-numbers-alpha-page-numbers"
+ ( :sep "{" "ALPHA" :sep "}{" "alpha" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "Appendix-page-numbers-alpha-page-numbers"
+ ( :sep "{" "ALPHA" :sep "." "arabic-numbers" :sep "}{" "alpha" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "arabic-section-numbers-alpha-page-numbers"
+ ( :sep "{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}{" "alpha" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "Alpha-page-numbers"
+ ( :sep "{}{" "ALPHA" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "roman-page-numbers-Alpha-page-numbers"
+ ( :sep "{" "roman-numbers-lowercase" :sep "}{" "ALPHA" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "Roman-page-numbers-Alpha-page-numbers"
+ ( :sep "{" "roman-numbers-uppercase" :sep "}{" "ALPHA" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "arabic-page-numbers-Alpha-page-numbers"
+ ( :sep "{" "arabic-numbers" :sep "}{" "ALPHA" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "alpha-page-numbers-Alpha-page-numbers"
+ ( :sep "{" "alpha" :sep "}{" "ALPHA" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "Alpha-page-numbers-Alpha-page-numbers"
+ ( :sep "{" "ALPHA" :sep "}{" "ALPHA" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "Appendix-page-numbers-Alpha-page-numbers"
+ ( :sep "{" "ALPHA" :sep "." "arabic-numbers" :sep "}{" "ALPHA" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "arabic-section-numbers-Alpha-page-numbers"
+ ( :sep "{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}{" "ALPHA" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "Appendix-page-numbers"
+ ( :sep "{}{" "ALPHA" :sep "." "arabic-numbers" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "roman-page-numbers-Appendix-page-numbers"
+ ( :sep "{" "roman-numbers-lowercase" :sep "}{" "ALPHA" :sep "." "arabic-numbers" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "Roman-page-numbers-Appendix-page-numbers"
+ ( :sep "{" "roman-numbers-uppercase" :sep "}{" "ALPHA" :sep "." "arabic-numbers" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "arabic-page-numbers-Appendix-page-numbers"
+ ( :sep "{" "arabic-numbers" :sep "}{" "ALPHA" :sep "." "arabic-numbers" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "alpha-page-numbers-Appendix-page-numbers"
+ ( :sep "{" "alpha" :sep "}{" "ALPHA" :sep "." "arabic-numbers" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "Alpha-page-numbers-Appendix-page-numbers"
+ ( :sep "{" "ALPHA" :sep "}{" "ALPHA" :sep "." "arabic-numbers" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "Appendix-page-numbers-Appendix-page-numbers"
+ ( :sep "{" "ALPHA" :sep "." "arabic-numbers" :sep "}{" "ALPHA" :sep "." "arabic-numbers" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "arabic-section-numbers-Appendix-page-numbers"
+ ( :sep "{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}{" "ALPHA" :sep "." "arabic-numbers" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "arabic-section-numbers"
+ ( :sep "{}{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "roman-page-numbers-arabic-section-numbers"
+ ( :sep "{" "roman-numbers-lowercase" :sep "}{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "Roman-page-numbers-arabic-section-numbers"
+ ( :sep "{" "roman-numbers-uppercase" :sep "}{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "arabic-page-numbers-arabic-section-numbers"
+ ( :sep "{" "arabic-numbers" :sep "}{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "alpha-page-numbers-arabic-section-numbers"
+ ( :sep "{" "alpha" :sep "}{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "Alpha-page-numbers-arabic-section-numbers"
+ ( :sep "{" "ALPHA" :sep "}{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "Appendix-page-numbers-arabic-section-numbers"
+ ( :sep "{" "ALPHA" :sep "." "arabic-numbers" :sep "}{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}" )
+ :min-range-length 2
+)
+(define-location-class "arabic-section-numbers-arabic-section-numbers"
+ ( :sep "{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}" )
+ :min-range-length 2
+)
+
+; user defined location classes
+
+(define-location-class "Numberstring"
+ (:sep "{}{" :sep "\protect \Numberstringnum {" "arabic-numbers" :sep "}" :sep "}"))
+
+; define cross-reference class
+
+(define-crossref-class "see" :unverified )
+(markup-crossref-list :class "see"
+ :open "\glsseeformat" :close "{}")
+
+; define the order of the location classes
+(define-location-class-order (
+ "roman-page-numbers"
+ "arabic-page-numbers"
+ "arabic-section-numbers"
+ "alpha-page-numbers"
+ "Roman-page-numbers"
+ "Alpha-page-numbers"
+ "Appendix-page-numbers"
+ "see" ))
+
+; define the glossary markup
+
+(markup-index
+ :open "\glossarysection[\glossarytoctitle]{\glossarytitle}\glossarypreamble
+\providecommand*\glsXpageXhyperbfit[2]{\setentrycounter[#1]{page}\hyperbfit{#2}}
+\providecommand*\glsXpageXglsnumberformat[2]{\setentrycounter[#1]{page}\glsnumberformat{#2}}
+\providecommand*\glsXpageXtextrm[2]{\setentrycounter[#1]{page}\textrm{#2}}
+\providecommand*\glsXpageXtextsf[2]{\setentrycounter[#1]{page}\textsf{#2}}
+\providecommand*\glsXpageXtexttt[2]{\setentrycounter[#1]{page}\texttt{#2}}
+\providecommand*\glsXpageXtextbf[2]{\setentrycounter[#1]{page}\textbf{#2}}
+\providecommand*\glsXpageXtextmd[2]{\setentrycounter[#1]{page}\textmd{#2}}
+\providecommand*\glsXpageXtextit[2]{\setentrycounter[#1]{page}\textit{#2}}
+\providecommand*\glsXpageXtextup[2]{\setentrycounter[#1]{page}\textup{#2}}
+\providecommand*\glsXpageXtextsl[2]{\setentrycounter[#1]{page}\textsl{#2}}
+\providecommand*\glsXpageXtextsc[2]{\setentrycounter[#1]{page}\textsc{#2}}
+\providecommand*\glsXpageXemph[2]{\setentrycounter[#1]{page}\emph{#2}}
+\providecommand*\glsXpageXglshypernumber[2]{\setentrycounter[#1]{page}\glshypernumber{#2}}
+\providecommand*\glsXpageXhyperrm[2]{\setentrycounter[#1]{page}\hyperrm{#2}}
+\providecommand*\glsXpageXhypersf[2]{\setentrycounter[#1]{page}\hypersf{#2}}
+\providecommand*\glsXpageXhypertt[2]{\setentrycounter[#1]{page}\hypertt{#2}}
+\providecommand*\glsXpageXhyperbf[2]{\setentrycounter[#1]{page}\hyperbf{#2}}
+\providecommand*\glsXpageXhypermd[2]{\setentrycounter[#1]{page}\hypermd{#2}}
+\providecommand*\glsXpageXhyperit[2]{\setentrycounter[#1]{page}\hyperit{#2}}
+\providecommand*\glsXpageXhyperup[2]{\setentrycounter[#1]{page}\hyperup{#2}}
+\providecommand*\glsXpageXhypersl[2]{\setentrycounter[#1]{page}\hypersl{#2}}
+\providecommand*\glsXpageXhypersc[2]{\setentrycounter[#1]{page}\hypersc{#2}}
+\providecommand*\glsXpageXhyperemph[2]{\setentrycounter[#1]{page}\hyperemph{#2}}
+\begin{theglossary}\glossaryheader~n"
+ :close "%~n\end{theglossary}\glossarypostamble~n"
+ :tree)
+(markup-letter-group-list :sep "\glsgroupskip~n")
+(markup-indexentry :open "\relax\glsresetentrylist~n")
+(markup-locclass-list :open "{\glossaryentrynumbers{\relax "
+ :sep ", " :close "}}")
+(markup-locref-list :sep "\delimN ")
+(markup-range :sep "\delimR ")
+
+; define format to use for locations
+
+
+(markup-locref :open "~n\glsXpageXhyperbfit"
+ :close ""
+ :attr "pagehyperbfit")
+(markup-locref :open "~n\glsXpageXglsnumberformat"
+ :close ""
+ :attr "pageglsnumberformat")
+(markup-locref :open "~n\glsXpageXtextrm"
+ :close ""
+ :attr "pagetextrm")
+(markup-locref :open "~n\glsXpageXtextsf"
+ :close ""
+ :attr "pagetextsf")
+(markup-locref :open "~n\glsXpageXtexttt"
+ :close ""
+ :attr "pagetexttt")
+(markup-locref :open "~n\glsXpageXtextbf"
+ :close ""
+ :attr "pagetextbf")
+(markup-locref :open "~n\glsXpageXtextmd"
+ :close ""
+ :attr "pagetextmd")
+(markup-locref :open "~n\glsXpageXtextit"
+ :close ""
+ :attr "pagetextit")
+(markup-locref :open "~n\glsXpageXtextup"
+ :close ""
+ :attr "pagetextup")
+(markup-locref :open "~n\glsXpageXtextsl"
+ :close ""
+ :attr "pagetextsl")
+(markup-locref :open "~n\glsXpageXtextsc"
+ :close ""
+ :attr "pagetextsc")
+(markup-locref :open "~n\glsXpageXemph"
+ :close ""
+ :attr "pageemph")
+(markup-locref :open "~n\glsXpageXglshypernumber"
+ :close ""
+ :attr "pageglshypernumber")
+(markup-locref :open "~n\glsXpageXhyperrm"
+ :close ""
+ :attr "pagehyperrm")
+(markup-locref :open "~n\glsXpageXhypersf"
+ :close ""
+ :attr "pagehypersf")
+(markup-locref :open "~n\glsXpageXhypertt"
+ :close ""
+ :attr "pagehypertt")
+(markup-locref :open "~n\glsXpageXhyperbf"
+ :close ""
+ :attr "pagehyperbf")
+(markup-locref :open "~n\glsXpageXhypermd"
+ :close ""
+ :attr "pagehypermd")
+(markup-locref :open "~n\glsXpageXhyperit"
+ :close ""
+ :attr "pagehyperit")
+(markup-locref :open "~n\glsXpageXhyperup"
+ :close ""
+ :attr "pagehyperup")
+(markup-locref :open "~n\glsXpageXhypersl"
+ :close ""
+ :attr "pagehypersl")
+(markup-locref :open "~n\glsXpageXhypersc"
+ :close ""
+ :attr "pagehypersc")
+(markup-locref :open "~n\glsXpageXhyperemph"
+ :close ""
+ :attr "pagehyperemph")
+
+; define letter group list format
+
+(markup-letter-group-list :sep "\glsgroupskip~n")
+
+; letter group headings
+
+(markup-letter-group :open-head "\glsgroupheading{"
+ :close-head "}")
+
+; additional letter groups
+
+(define-letter-group "glsnumbers"
+ :prefixes ("0" "1" "2" "3" "4" "5" "6" "7" "8" "9")
+ :before "A")
+
+; additional sort rules
+
+
+; The following is copied from xindy/lang/english/utf8-lang.xdy
+
+(define-sort-rule-orientations (forward backward forward forward))
+(use-rule-set :run 0
+ :rule-set ("en-alphabetize" "en-ignore-special"))
+(use-rule-set :run 1
+ :rule-set ("en-resolve-diacritics" "en-ignore-special"))
+(use-rule-set :run 2
+ :rule-set ("en-resolve-case" "en-ignore-special"))
+(use-rule-set :run 3
+ :rule-set ("en-resolve-special"))
+
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
+%</samplexdy-mc.xdy>
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
+%<*samplexdy-mc207.xdy>
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
+;; xindy style file for samplexdy.tex that has Mc letter group
+
+(define-letter-group "A" :prefixes ("€"))
+(define-letter-group "B" :after "A" :prefixes ("„"))
+(define-letter-group "C" :after "B" :prefixes ("†"))
+(define-letter-group "D" :after "C" :prefixes (""))
+(define-letter-group "E" :after "D" :prefixes ("—"))
+(define-letter-group "F" :after "E" :prefixes ("œ"))
+(define-letter-group "G" :after "F" :prefixes (""))
+(define-letter-group "H" :after "G" :prefixes ("¤"))
+(define-letter-group "I" :after "H" :prefixes ("¨"))
+(define-letter-group "J" :after "I" :prefixes ("¬"))
+(define-letter-group "K" :after "J" :prefixes ("®"))
+(define-letter-group "L" :after "K" :prefixes ("´"))
+(define-letter-group "Mc" :after "L" :prefixes ("Ƞ"))
+(define-letter-group "M" :after "Mc" :prefixes ("»"))
+(define-letter-group "N" :after "M" :prefixes ("¼"))
+(define-letter-group "O" :after "N" :prefixes ("Ã"))
+(define-letter-group "P" :after "O" :prefixes ("È"))
+(define-letter-group "Q" :after "P" :prefixes ("Ê"))
+(define-letter-group "R" :after "Q" :prefixes ("Ë"))
+(define-letter-group "S" :after "R" :prefixes ("Ð"))
+(define-letter-group "T" :after "S" :prefixes ("Ú"))
+(define-letter-group "U" :after "T" :prefixes ("à"))
+(define-letter-group "V" :after "U" :prefixes ("å"))
+(define-letter-group "W" :after "V" :prefixes ("æ"))
+(define-letter-group "X" :after "W" :prefixes ("ë"))
+(define-letter-group "Y" :after "X" :prefixes ("í"))
+(define-letter-group "Ȝ" :after "Y" :prefixes ("ï"))
+(define-letter-group "Z" :after "Ȝ" :prefixes ("ð"))
+(define-letter-group "Þ" :after "Z" :prefixes ("ö"))
+(define-letter-group "Æ¿" :after "Þ" :prefixes ("÷"))
+
+(define-rule-set "en-alphabetize"
+
+ :rules (("à" "€" :string)
+ ("À" "€" :string)
+ ("Æ" "€—" :string)
+ ("æ" "€—" :string)
+ ("Ç" "†" :string)
+ ("ç" "†" :string)
+ ("ð" "" :string)
+ ("Ð" "" :string)
+ ("É" "—" :string)
+ ("Ê" "—" :string)
+ ("È" "—" :string)
+ ("Ë" "—" :string)
+ ("è" "—" :string)
+ ("ë" "—" :string)
+ ("ê" "—" :string)
+ ("é" "—" :string)
+ ("Ï" "¨" :string)
+ ("ï" "¨" :string)
+ ("Ñ" "¼" :string)
+ ("ñ" "¼" :string)
+ ("Ö" "Ã" :string)
+ ("Ô" "Ã" :string)
+ ("ô" "Ã" :string)
+ ("ö" "Ã" :string)
+ ("œ" "×" :string)
+ ("Œ" "×" :string)
+ ("ȝ" "ï" :string)
+ ("Ȝ" "ï" :string)
+ ("þ" "ö" :string)
+ ("Þ" "ö" :string)
+ ("Ç·" "÷" :string)
+ ("Æ¿" "÷" :string)
+ ("a" "€" :string)
+ ("A" "€" :string)
+ ("b" "„" :string)
+ ("B" "„" :string)
+ ("C" "†" :string)
+ ("c" "†" :string)
+ ("d" "" :string)
+ ("D" "" :string)
+ ("E" "—" :string)
+ ("e" "—" :string)
+ ("F" "œ" :string)
+ ("f" "œ" :string)
+ ("g" "" :string)
+ ("G" "" :string)
+ ("H" "¤" :string)
+ ("h" "¤" :string)
+ ("I" "¨" :string)
+ ("i" "¨" :string)
+ ("J" "¬" :string)
+ ("j" "¬" :string)
+ ("K" "®" :string)
+ ("k" "®" :string)
+ ("L" "´" :string)
+ ("l" "´" :string)
+ ("Mc" "Ƞ" :string)
+ ("Mac" "Ƞ" :string)
+ ("M" "»" :string)
+ ("m" "»" :string)
+ ("N" "¼" :string)
+ ("n" "¼" :string)
+ ("O" "Ã" :string)
+ ("o" "Ã" :string)
+ ("P" "È" :string)
+ ("p" "È" :string)
+ ("q" "Ê" :string)
+ ("Q" "Ê" :string)
+ ("r" "Ë" :string)
+ ("R" "Ë" :string)
+ ("S" "Ð" :string)
+ ("s" "Ð" :string)
+ ("T" "Ú" :string)
+ ("t" "Ú" :string)
+ ("u" "à" :string)
+ ("U" "à" :string)
+ ("v" "å" :string)
+ ("V" "å" :string)
+ ("w" "æ" :string)
+ ("W" "æ" :string)
+ ("X" "ë" :string)
+ ("x" "ë" :string)
+ ("Y" "í" :string)
+ ("y" "í" :string)
+ ("z" "ð" :string)
+ ("Z" "ð" :string)
+ ))
+
+(define-rule-set "en-resolve-diacritics"
+
+ :rules (("ȝ" "¢" :string)
+ ("þ" "¢" :string)
+ ("Ç·" "¢" :string)
+ ("Þ" "¢" :string)
+ ("Ȝ" "¢" :string)
+ ("Æ¿" "¢" :string)
+ ("Ö" "£" :string)
+ ("Ñ" "£" :string)
+ ("ð" "£" :string)
+ ("Ç" "£" :string)
+ ("É" "£" :string)
+ ("Ï" "£" :string)
+ ("ï" "£" :string)
+ ("ö" "£" :string)
+ ("ñ" "£" :string)
+ ("ç" "£" :string)
+ ("à" "£" :string)
+ ("À" "£" :string)
+ ("é" "£" :string)
+ ("Ð" "£" :string)
+ ("Ô" "¤" :string)
+ ("ô" "¤" :string)
+ ("È" "¤" :string)
+ ("è" "¤" :string)
+ ("Ë" "¥" :string)
+ ("ë" "¥" :string)
+ ("Ê" "¦" :string)
+ ("ê" "¦" :string)
+ ("œ" "ÿ" :string)
+ ("Æ" "ÿ" :string)
+ ("Œ" "ÿ" :string)
+ ("æ" "ÿ" :string)
+ ("S" "¢" :string)
+ ("K" "¢" :string)
+ ("d" "¢" :string)
+ ("Y" "¢" :string)
+ ("E" "¢" :string)
+ ("y" "¢" :string)
+ ("g" "¢" :string)
+ ("e" "¢" :string)
+ ("J" "¢" :string)
+ ("q" "¢" :string)
+ ("D" "¢" :string)
+ ("b" "¢" :string)
+ ("z" "¢" :string)
+ ("w" "¢" :string)
+ ("Q" "¢" :string)
+ ("M" "¢" :string)
+ ("C" "¢" :string)
+ ("L" "¢" :string)
+ ("X" "¢" :string)
+ ("P" "¢" :string)
+ ("T" "¢" :string)
+ ("a" "¢" :string)
+ ("N" "¢" :string)
+ ("j" "¢" :string)
+ ("Z" "¢" :string)
+ ("u" "¢" :string)
+ ("k" "¢" :string)
+ ("t" "¢" :string)
+ ("W" "¢" :string)
+ ("v" "¢" :string)
+ ("s" "¢" :string)
+ ("B" "¢" :string)
+ ("H" "¢" :string)
+ ("c" "¢" :string)
+ ("I" "¢" :string)
+ ("G" "¢" :string)
+ ("U" "¢" :string)
+ ("F" "¢" :string)
+ ("r" "¢" :string)
+ ("x" "¢" :string)
+ ("V" "¢" :string)
+ ("h" "¢" :string)
+ ("f" "¢" :string)
+ ("i" "¢" :string)
+ ("A" "¢" :string)
+ ("O" "¢" :string)
+ ("n" "¢" :string)
+ ("m" "¢" :string)
+ ("l" "¢" :string)
+ ("p" "¢" :string)
+ ("R" "¢" :string)
+ ("o" "¢" :string)
+ ))
+
+(define-rule-set "en-resolve-case"
+
+ :rules (("Ö" "8" :string)
+ ("Ñ" "8" :string)
+ ("Ô" "8" :string)
+ ("Ç" "8" :string)
+ ("É" "8" :string)
+ ("Ï" "8" :string)
+ ("Ê" "8" :string)
+ ("È" "8" :string)
+ ("Ë" "8" :string)
+ ("Ç·" "8" :string)
+ ("À" "8" :string)
+ ("Þ" "8" :string)
+ ("Ȝ" "8" :string)
+ ("Ð" "8" :string)
+ ("Æ" "89" :string)
+ ("Œ" "89" :string)
+ ("ð" "9" :string)
+ ("ô" "9" :string)
+ ("ȝ" "9" :string)
+ ("ï" "9" :string)
+ ("ö" "9" :string)
+ ("ñ" "9" :string)
+ ("ç" "9" :string)
+ ("à" "9" :string)
+ ("þ" "9" :string)
+ ("è" "9" :string)
+ ("ë" "9" :string)
+ ("ê" "9" :string)
+ ("é" "9" :string)
+ ("Æ¿" "9" :string)
+ ("œ" "99" :string)
+ ("æ" "99" :string)
+ ("S" "8" :string)
+ ("K" "8" :string)
+ ("Y" "8" :string)
+ ("E" "8" :string)
+ ("J" "8" :string)
+ ("D" "8" :string)
+ ("Q" "8" :string)
+ ("M" "8" :string)
+ ("C" "8" :string)
+ ("L" "8" :string)
+ ("X" "8" :string)
+ ("P" "8" :string)
+ ("T" "8" :string)
+ ("N" "8" :string)
+ ("Z" "8" :string)
+ ("W" "8" :string)
+ ("B" "8" :string)
+ ("H" "8" :string)
+ ("I" "8" :string)
+ ("G" "8" :string)
+ ("U" "8" :string)
+ ("F" "8" :string)
+ ("V" "8" :string)
+ ("A" "8" :string)
+ ("O" "8" :string)
+ ("R" "8" :string)
+ ("d" "9" :string)
+ ("y" "9" :string)
+ ("g" "9" :string)
+ ("e" "9" :string)
+ ("q" "9" :string)
+ ("b" "9" :string)
+ ("z" "9" :string)
+ ("w" "9" :string)
+ ("a" "9" :string)
+ ("j" "9" :string)
+ ("u" "9" :string)
+ ("k" "9" :string)
+ ("t" "9" :string)
+ ("v" "9" :string)
+ ("s" "9" :string)
+ ("c" "9" :string)
+ ("r" "9" :string)
+ ("x" "9" :string)
+ ("h" "9" :string)
+ ("f" "9" :string)
+ ("i" "9" :string)
+ ("n" "9" :string)
+ ("m" "9" :string)
+ ("l" "9" :string)
+ ("p" "9" :string)
+ ("o" "9" :string)
+ ))
+
+(define-rule-set "en-ignore-special"
+
+ :rules (("-" "" :string)
+ ("!" "" :string)
+ ("{" "" :string)
+ ("'" "" :string)
+ ("}" "" :string)
+ ("?" "" :string)
+ ("." "" :string)
+ ))
+
+(define-rule-set "en-resolve-special"
+
+ :rules (("Ö" "¤" :string)
+ ("Ñ" "¤" :string)
+ ("ð" "¤" :string)
+ ("Ô" "¤" :string)
+ ("Ç" "¤" :string)
+ ("É" "¤" :string)
+ ("ô" "¤" :string)
+ ("Ï" "¤" :string)
+ ("ȝ" "¤" :string)
+ ("ï" "¤" :string)
+ ("Ê" "¤" :string)
+ ("ö" "¤" :string)
+ ("ñ" "¤" :string)
+ ("È" "¤" :string)
+ ("ç" "¤" :string)
+ ("Ë" "¤" :string)
+ ("à" "¤" :string)
+ ("þ" "¤" :string)
+ ("Ç·" "¤" :string)
+ ("è" "¤" :string)
+ ("À" "¤" :string)
+ ("ë" "¤" :string)
+ ("Þ" "¤" :string)
+ ("ê" "¤" :string)
+ ("é" "¤" :string)
+ ("Ȝ" "¤" :string)
+ ("Æ¿" "¤" :string)
+ ("Ð" "¤" :string)
+ ("œ" "¤¤" :string)
+ ("Æ" "¤¤" :string)
+ ("Œ" "¤¤" :string)
+ ("æ" "¤¤" :string)
+ ("?" "¡" :string)
+ ("!" "¢" :string)
+ ("." "£" :string)
+ ("S" "¤" :string)
+ ("K" "¤" :string)
+ ("d" "¤" :string)
+ ("Y" "¤" :string)
+ ("E" "¤" :string)
+ ("y" "¤" :string)
+ ("g" "¤" :string)
+ ("e" "¤" :string)
+ ("J" "¤" :string)
+ ("q" "¤" :string)
+ ("D" "¤" :string)
+ ("b" "¤" :string)
+ ("z" "¤" :string)
+ ("w" "¤" :string)
+ ("Q" "¤" :string)
+ ("M" "¤" :string)
+ ("C" "¤" :string)
+ ("L" "¤" :string)
+ ("X" "¤" :string)
+ ("P" "¤" :string)
+ ("T" "¤" :string)
+ ("a" "¤" :string)
+ ("N" "¤" :string)
+ ("j" "¤" :string)
+ ("Z" "¤" :string)
+ ("u" "¤" :string)
+ ("k" "¤" :string)
+ ("t" "¤" :string)
+ ("W" "¤" :string)
+ ("v" "¤" :string)
+ ("s" "¤" :string)
+ ("B" "¤" :string)
+ ("H" "¤" :string)
+ ("c" "¤" :string)
+ ("I" "¤" :string)
+ ("G" "¤" :string)
+ ("U" "¤" :string)
+ ("F" "¤" :string)
+ ("r" "¤" :string)
+ ("x" "¤" :string)
+ ("V" "¤" :string)
+ ("h" "¤" :string)
+ ("f" "¤" :string)
+ ("i" "¤" :string)
+ ("A" "¤" :string)
+ ("O" "¤" :string)
+ ("n" "¤" :string)
+ ("m" "¤" :string)
+ ("l" "¤" :string)
+ ("p" "¤" :string)
+ ("R" "¤" :string)
+ ("o" "¤" :string)
+ ("-" "¥" :string)
+ ("'" "¦" :string)
+ ("{" "§" :string)
+ ("}" "¨" :string)
+ ))
+
+; The following section is customised for samplexdy.tex
+; (copied from samplexdy.xdy automatically generated by
+; samplexdy.tex)
+
+; required styles
+
+(require "tex.xdy")
+
+; list of allowed attributes (number formats)
+
+(define-attributes (("default"
"glsnumberformat"
"textrm"
"textsf"
@@ -21016,7 +20038,7 @@ This page discusses \gls{mcnemar} who introduced
%\fi
%\iffalse
% \begin{macrocode}
-%</samplexdy-mc.xdy>
+%</samplexdy-mc207.xdy>
% \end{macrocode}
%\fi
%\iffalse
@@ -21080,7 +20102,7 @@ description={the ``at'' symbol}}
\newglossaryentry{excl}{name={!},
description={the exclamation mark symbol}}
-\newglossaryentry{bar}{name={$|$},
+\newglossaryentry{bar}{name={\ensuremath{|}},
description={the vertical bar symbol}}
\newglossaryentry{hash}{name={\#},
diff --git a/Master/texmf-dist/source/latex/glossaries/glossaries.ins b/Master/texmf-dist/source/latex/glossaries/glossaries.ins
index 86a04b70a07..13f67b0f5c4 100644
--- a/Master/texmf-dist/source/latex/glossaries/glossaries.ins
+++ b/Master/texmf-dist/source/latex/glossaries/glossaries.ins
@@ -1,10 +1,10 @@
-% glossaries.ins generated using makedtx version 0.94b 2010/7/10 12:21
+% glossaries.ins generated using makedtx version 0.94b 2011/4/3 22:26
\input docstrip
\preamble
glossaries.dtx
- Copyright 2010 Nicola Talbot
+ Copyright 2011 Nicola Talbot
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
@@ -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-list.sty, glossary-long.sty, glossary-longragged.sty, glossary-super.sty, glossary-superragged.sty, glossary-tree.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-custom-acronym.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.tex, samplexdy-mc.xdy, database1.tex, database2.tex, glossaries.perl.
+ This work consists of the files glossaries.dtx and glossaries.ins and the derived files glossaries.sty, mfirstuc.sty, glossary-hypernav.sty, glossary-list.sty, glossary-long.sty, glossary-longragged.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.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.
\endpreamble
@@ -42,6 +42,8 @@
\usepostamble\defaultpostamble\from{glossaries.dtx}{glossary-superragged.sty,package}}
\file{glossary-tree.sty}{\usepreamble\defaultpreamble
\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-accsupp.sty}{\usepreamble\defaultpreamble
\usepostamble\defaultpostamble\from{glossaries.dtx}{glossaries-accsupp.sty,package}}
\file{glossaries-babel.sty}{\usepreamble\defaultpreamble
@@ -73,7 +75,9 @@
\file{glossaries-dictionary-Spanish.dict}{\usepreamble\defaultpreamble
\usepostamble\defaultpostamble\from{glossaries.dtx}{glossaries-dictionary-Spanish.dict,package}}
\file{minimalgls.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{minimalgls.tex}}
+\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.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}}
@@ -88,8 +92,11 @@
\file{sampleSec.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{sampleSec.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}}
\file{samplexdy.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{samplexdy.tex}}
+\file{samplexdy2.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{samplexdy2.tex}}
\file{samplexdy-mc.xdy}{\nopreamble\nopostamble\from{glossaries.dtx}{samplexdy-mc.xdy}}
+\file{samplexdy-mc207.xdy}{\nopreamble\nopostamble\from{glossaries.dtx}{samplexdy-mc207.xdy}}
\file{database1.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{database1.tex}}
\file{database2.tex}{\nopreamble\nopostamble\from{glossaries.dtx}{database2.tex}}
\file{glossaries.perl}{\nopreamble\nopostamble\from{glossaries.dtx}{glossaries.perl}}