diff options
author | Karl Berry <karl@freefriends.org> | 2007-05-18 16:16:38 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2007-05-18 16:16:38 +0000 |
commit | 746c3964c5c60a06f25b93438ad3271ff2113458 (patch) | |
tree | 841b253699e5d16e72028b12f7ef1d61b402cfc5 /Master/texmf-dist/source | |
parent | 20a9ebe1f7a852ec5c82045ece1e87bc3540ba2c (diff) |
glossary replaced by glossaries
git-svn-id: svn://tug.org/texlive/trunk@4306 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r-- | Master/texmf-dist/source/latex/glossary/glossary.dtx | 5915 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/glossary/glossary.ins | 38 |
2 files changed, 0 insertions, 5953 deletions
diff --git a/Master/texmf-dist/source/latex/glossary/glossary.dtx b/Master/texmf-dist/source/latex/glossary/glossary.dtx deleted file mode 100644 index 6d31a8d363b..00000000000 --- a/Master/texmf-dist/source/latex/glossary/glossary.dtx +++ /dev/null @@ -1,5915 +0,0 @@ -%\iffalse -% glossary.dtx generated using makedtx version 0.91b (c) Nicola Talbot -% Command line args: -% -macrocode ".*\.p.*l" -% -macrocode ".*\.bat" -% -macrocode ".*\.tex" -% -setambles ".*\.p.*l=>\nopreamble\nopostamble" -% -setambles ".*\.bat=>\nopreamble\nopostamble" -% -src "(.+)\.(sty)\Z=>\1.\2" -% -src "(.+)\.(pl)\Z=>\1.\2" -% -src "(.+)\.(bat)\Z=>\1.\2" -% -src "(.+)\.(perl)\Z=>\1.\2" -% -src "(.+)\.(tex)\Z=>\1.\2" -% -doc "manual.tex" -% -author "Nicola Talbot" -% -prefinale "\\fi" -% -dir "source" -% glossary -% Created on 2006/7/25 18:13 -%\fi -%\iffalse -%<*package> -%% \CharacterTable -%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -%% Digits \0\1\2\3\4\5\6\7\8\9 -%% Exclamation \! Double quote \" Hash (number) \# -%% Dollar \$ Percent \% Ampersand \& -%% Acute accent \' Left paren \( Right paren \) -%% Asterisk \* Plus \+ Comma \, -%% Minus \- Point \. Solidus \/ -%% Colon \: Semicolon \; Less than \< -%% Equals \= Greater than \> Question mark \? -%% Commercial at \@ Left bracket \[ Backslash \\ -%% Right bracket \] Circumflex \^ Underscore \_ -%% Grave accent \` Left brace \{ Vertical bar \| -%% Right brace \} Tilde \~} -%</package> -%\fi -% \iffalse -% Doc-Source file to use with LaTeX2e -% Copyright (C) 2006 Nicola Talbot, all rights reserved. -% \fi -% \iffalse -%<*driver> -\documentclass[a4paper]{ltxdoc} -\usepackage{ifthen} -\usepackage[colorlinks, - bookmarks, - hyperindex=false, - pdfauthor={N.L.C. Talbot}, - pdftitle={glossary.sty: LaTeX2e Package to Assist Generating Glossaries}, - pdfkeywords={LaTeX,package,glossary,acronym}]{hyperref} - - %hyperindex conflicts with doc - %(end up with |usage|hyperpage in indexentry) - %This unfortunately means that the changes section doesn't - %have active links, but at least it will keep makeindex happy. - - -\renewcommand{\usage}[1]{\textit{\hyperpage{#1}}} -\renewcommand{\main}[1]{\hyperpage{#1}} -\newcommand{\see}[2]{\emph{see} #1} -\makeatletter -\def\index@prologue{\section*{Index}} -\makeatother -\RecordChanges -\PageIndex - %\OnlyDescription - - -\newcommand{\cmdname}[1]{\texttt{\symbol{92}#1}} -\newcommand{\istkey}[1]{\texttt{#1}\index{makeindex key>#1|hyperpage}} -\newcommand{\icmdname}[1]{\texttt{\symbol{92}#1}\SpecialMainIndex{#1}} -\newcommand{\appname}[1]{\texttt{#1}\index{#1=\texttt{#1}|hyperpage}} -\newcommand{\gloskey}[1]{\texttt{#1}\index{glossary keys=\cmdname{glossary} keys>#1|hyperpage}} -\newcommand{\setglos}[1]{\texttt{#1}\index{setglossary keys=\cmdname{setglossary} keys>#1|hyperpage}} -\newcommand{\glsnumfmt}[1]{\texttt{#1}% -\index{page number formats>#1|hyperpage}% -\index{glossary keys=\cmdname{glossary} keys>format>#1|hyperpage}} -\newcommand{\pkgopt}[2][]{% -\ifthenelse{\equal{#1}{}}{% -\texttt{#2}\index{package options>#2|hyperpage}}{% -\texttt{#2=#1}\index{package options>#2>#1|hyperpage}}} -\newcommand{\pkgoptval}[2]{\texttt{#1}\index{package options>#2>#1|hyperpage}} -\newcommand{\filetype}[1]{\texttt{#1}\index{file types>#1|hyperpage}} -\newcommand{\styname}[1]{\textsf{#1}\index{#1=\textsf{#1}|hyperpage}} -\newcommand{\envname}[1]{\textsf{#1}} - - -\begin{document} -\DocInput{glossary.dtx} -\end{document} -%</driver> -%\fi -%\MakeShortVerb{"} -%\DeleteShortVerb{\|} -% -% \title{glossary.sty v 2.4: \LaTeXe\ Package to Assist Generating Glossaries} -% \author{Nicola L.C. Talbot} -% \date{20th July 2006} -% \maketitle -%\tableofcontents -% -% \section{Introduction} -% \changes{1.0}{2004 July 29}{Initial version} -% The \styname{glossary} package is provided to assist -%generating a glossary. It has a certain amount of flexibility, -%allowing the user to customize the format of the glossary, and -%define new glossary-style objects. -% -%\section{Installation} -% -%You need to make sure you have downloaded the following three -%files: -%\begin{verbatim} -%glossary.ins -%glossary.dtx -%README -%\end{verbatim} -%To extract the code from the \texttt{glossary.dtx} file, you -%will need to run the installation file through LaTeX: -%\begin{verbatim} -%latex glossary.ins -%\end{verbatim} -%This will create the following files: -%\begin{verbatim} -%glossary.sty -%glossary.perl -%makeglos.pl -%makeglos.bat -%\end{verbatim} -%along with several sample files. The file \texttt{glossary.sty} -%should be placed somewhere in the \LaTeX\ path, e.g.\ -%\texttt{texmf/tex/latex/glossary/} or -%\texttt{localtexmf/tex/latex/glossary/}. Remember to update the -%\TeX\ database if you are installing this package for the first time. -%The file \texttt{glossary.perl} is a \LaTeX2HTML\ style file, and -%should be placed in the \LaTeX2HTML\ style file directory (usually -%\texttt{latex2html/styles/}). The file \texttt{makeglos.pl} -%is a Perl script which calls \appname{makeindex}. If you are -%using UNIX or Linux, you will need to set the permissions so -%that you can execute the file: -%\begin{verbatim} -%chmod a+x makeglos.pl -%\end{verbatim} -%You should then place this file somewhere on your path. -%(You may also need to edit the first line of -%this file, if \appname{perl} is located in a directory other than \verb"/usr/bin/"\footnote{and you can also remove the \texttt{.pl} -%extension which isn't to everyone's liking.}.) -% -%If you are not using UNIX or Linux etc, you may have to explicitly -%load the file into Perl, so you would need to do -%\texttt{perl makeglos.pl} instead of just \texttt{makeglos.pl}. -%If you are using Windows, a batch file, \texttt{makeglos.bat} -%is provided which will run Perl on \texttt{makeglos.pl}. -%Both \texttt{makeglos.pl} and \texttt{makeglos.bat} should -%be placed somewhere specified by the PATH environment -%variable. (For example, put them both in the same -%directory as \appname{makeindex}, which will probably -%be in \verb+\texmf\miktex\bin\+). -%\changes{2.22}{2005 Sept 12}{added makeglos.bat file} -% -%If you don't have Perl installed on your system, you can just use -%\appname{makeindex}, only you will have to remember all the -%command line switches, and you won't be able to merge entries -%that have the same name, but different descriptions. -% -%Note that if you are updating the glossary package, it is -%a good idea to update \texttt{makeglos.pl} as it may also -%have been modified. -% -% \section{Generating Glossary Information} -% -% The standard \LaTeX\ command \cmdname{makeglossary}\DescribeMacro{\makeglossary}{} (analogous to \cmdname{makeindex}) -% should be placed in the document preamble. If this command -%is omitted, glossary information will be ignored. Glossary -%entries are generated using the command -%\cmdname{glossary}\verb"{"\meta{key-val list}\verb'}'\DescribeMacro{\glossary}. -% This command is a slightly modified version of the standard -%\cmdname{glossary} command, in order to separate out the -%information into \meta{entry-name} and \meta{entry-description}. -%The argument to \cmdname{glossary} must be a comma-separated -%list of \meta{key}=\meta{value} pairs. The following keys are -%available: -%\begin{center} -%\begin{tabular}{lp{0.8\linewidth}} -%\bfseries Key & \bfseries Value\\ -%\ttfamily \gloskey{name} & The entry name\\ -%\ttfamily \gloskey{description} & A description about the entry\\ -%\ttfamily \gloskey{sort} & How to sort the entry. (Entry name used if sort omitted)\\ -%\ttfamily \gloskey{format} & How to format the page number\\ -%\ttfamily \gloskey{number} & Override the page number with a different -%counter. The value should be the name of a counter (e.g.\ -%\texttt{number=section}). -%\end{tabular} -%\end{center} -% For example: -%\begin{verbatim} -%\glossary{name={singular matrix}, -% description={A matrix with zero determinant}} -%\end{verbatim} -% The following example sorts on the text \texttt{U} instead of -%\verb"$\mathcal{U}$": -%\begin{verbatim} -%\glossary{name={$\mathcal{U}$}, -% description={The universal set}, -% sort=U} -%\end{verbatim} -%Note that you should always use the \gloskey{sort} -%key if the \gloskey{name} key contains commands, this is particularly -%important if you are using hyperlinks, as the target is constructed -%from the \gloskey{name} key if the \gloskey{sort} key is omitted. -% -%In the glossary, each entry is followed by a list of page numbers -%that correspond to the pages where the relevant \cmdname{glossary} -%command is placed. By default the numbers are formatted in the -%current font, but the page number format for individual entries can be -%changed using the \gloskey{format} key. This should be the name of a -%\LaTeX\ formatting command without the preceding \verb'\' (as with the -%\verb'|' operator in \cmdname{index}.) For example: -%\begin{verbatim} -%\glossary{name={$\mathbb{R}$}, -% description={The set of real numbers}, -% sort=R, -% format=textbf} -%\end{verbatim} -%In addition, the following formats are also available: -%\changes{2.0}{2004 September 21}{Hyper page formats: -%\texttt{'hypersf}, \texttt{'hypertt}, \texttt{'hyperbf} and -%\texttt{'hyperbf}} -%\changes{2.12}{2004 November 1}{Hyper page format: -%\texttt{'hyperrm}} -%\changes{2.4}{2006 July 20}{Hyper page formats updated to take two -%arguments. Additional formats also provided} -%\begin{center} -%\begin{tabular}{ll} -%\glsnumfmt{hyperrm} & The number is a hyper link in roman \\ -%\glsnumfmt{hypersf} & The number is a hyper link in sans-serif \\ -%\glsnumfmt{hypertt} & The number is a hyper link in typewriter font \\ -%\glsnumfmt{hyperbf} & The number is a hyper link in bold \\ -%\glsnumfmt{hypermd} & The number is a hyper link in medium weight \\ -%\glsnumfmt{hyperit} & The number is a hyper link in italic\\ -%\glsnumfmt{hypersl} & The number is a hyper link in slanted font\\ -%\glsnumfmt{hyperup} & The number is a hyper link in upright font\\ -%\glsnumfmt{hypersc} & The number is a hyper link in small caps\\ -%\glsnumfmt{hyperem} & The number is a hyper link using \cmdname{emph} -%\end{tabular} -%\end{center} -%If the \pkgopt{hyper} option has not been set, -%\glsnumfmt{hyperem} is equivalent to \texttt{emph}, and the remaining -%\glsnumfmt{hyperrm} etc are equivalent to \texttt{textrm} etc. -%Note that it is important the you use \texttt{hyperrm} instead of -%\texttt{hyperpage}, as the \cmdname{hyperpage} command won't -%work on a list or range of numbers in the glossary% -%\footnote{This is because the list and number ranges are -%delimited using \cmdname{delimR} and \cmdname{delimN} instead of -%explicitly using a comma or en-dash.}. If you want to define your -%own command that uses hyper links, it must be defined in an -%analogous manner to \icmdname{hyperrm}. For example, if you want -%to display a page number in a bold italic format, that contains a -%hyperlink to the appropriate page, you would need to define it as -%follows: -%\begin{verbatim} -%\newcommand{\hyperbfit}[2][\gls@number]{% -%\textbf{\itshape\glshyper{#1}{#2}}} -%\end{verbatim} -%As can be seen from the definition, all the \cmdname{hyper}\meta{xx} -%commands have an optional argument. This argument is the name of the -%counter being used. You do not need to worry about this argument if -%you only use these commands within the \icmdname{glossary} command. -%So the previous example can simply be rewritten as: -%\begin{verbatim} -%\glossary{name={$\mathbb{R}$}, -% description={The set of real numbers}, -% sort=R, -% format=hyperbf} -%\end{verbatim} -% -%\textbf{Note:} although the numbers in the glossary are referred to -%as ``page'' numbers in this manual, they may in fact refer to some -%other counter, such as the \texttt{section} counter, depending on -%whether the \gloskey{number} key has been used. -% -%As with the \cmdname{index} command, care must be taken if you -%want to use the special characters: \verb'@' \verb/|/ \verb+"+ and -%\verb'!'. These characters should be preceded by the double quote -%character. For example: -%\begin{verbatim} -%\glossary{name={$"|\mathcal{S}"|$, -%description=The cardinality of the set \mathcal{S}}} -%\end{verbatim} -%There is no provision for sub-entries, as these are -%generally only applicable in an index, and not in a glossary. -% -%\changes{2.14}{2005 May 28}{'xglossary added}% -%As from version 2.14, there is an additional command available: -%\DescribeMacro{\xglossary} -%\par\vspace{10pt}\noindent\cmdname{xglossary}\verb'{'\meta{gls-entry}% -%\verb'}{'\meta{text}\verb"}" -%\par\vspace{10pt}\noindent This is equivalent to\meta{text}\icmdname{glossary}\verb'{'\meta{gls-entry}\verb"}", -%where \meta{text} will be made a hyper link to the -%relevant entry in the glossary, if hyper -%links are supported. -% -%\subsection{Storing Glossary Information} -% -%It is very cumbersome having to use the \icmdname{glossary} command -%throughout your document, every time you use a term that you want in -%your glossary. This is particularly true for terms with a long -%description. The \styname{glossary} package provides a means -%of storing the glossary information at the beginning of the document, -%and then using it whenever required. It is strongly recommended -%that you use this approach, rather than explicity using the -%\icmdname{glossary} command. -% -%\changes{2.17}{2005 June 28}{'storeglosentry added} -%\DescribeMacro{\storeglosentry} -%The following command:\\[10pt] -%\begin{ttfamily} -%\cmdname{storeglosentry}[\textrm{\meta{gls-type}}]\{\textrm{\meta{label}}\}\{\textrm{\meta{gls-entry}}\} -%\end{ttfamily}\\[10pt] -%can be used to store glossary information, where \meta{label} is -%a unique label assigned to this entry. The information -%can then be used later with any of the following commands:\\[10pt] -%\changes{2.14}{2005 May 28}{'useglosentry added} -%\changes{2.14}{2005 May 28}{'useGlosentry added} -%\changes{2.18}{2005 July 5}{'gls added} -%\begin{ttfamily} -%\cmdname{useglosentry}[\textrm{\meta{opt}}]\{\textrm{\meta{label}}\}\DescribeMacro{\useglosentry}\\ -%\cmdname{useGlosentry}[\textrm{\meta{opt}}]\{\textrm{\meta{label}}\}\{\textrm{\meta{text}}\}\DescribeMacro{\useGlosentry}\\ -%\cmdname{gls}[\textrm{\meta{opt}}]\{\textrm{\meta{label}}\}\DescribeMacro{\gls} -%\end{ttfamily}\\[10pt] -%\cmdname{useglosentry} adds the glossary entry whose label is given by -%\meta{label} to the appropriate glossary, -%\cmdname{useGlosentry} adds the glossary entry, and -%makes \meta{text} a hyperlink to that entry (if hyperlinks are -%supported). The third command, \cmdname{gls}, is like -%\cmdname{useGlosentry}, but forms \meta{text} from the name -%given in the glossary entry. -% -%Returning to an earlier example, instead of typing: -%\begin{verbatim} -%\glossary{name={$\mathcal{U}$}, -% description={The universal set}, -% sort=U} -%\end{verbatim} -%every time you want to add this entry to the glossary, you -%can instead store the information: -%\changes{2.19}{2005 July 8}{fixed bug in 'storeglosentry} -%\begin{verbatim} -%\storeglosentry{glos:U}{name={$\mathcal{U}$}, -% description={The universal set}, -% sort=U} -%\end{verbatim} -%Now, instead of continually copying and pasting the glossary command -%for this entry (which can have quite a large \gloskey{description} -%field), you can use either: -%\begin{verbatim} -%\useglosentry{glos:U} -%\end{verbatim} -%which is equivalent to: -%\begin{verbatim} -%\glossary{name={$\mathcal{U}$}, -% description={The universal set}, -% sort=U} -%\end{verbatim} -%or you can use: -%\begin{verbatim} -%\useGlosentry{glos:U}{text} -%\end{verbatim} -%which is equivalent to: -%\begin{verbatim} -%\xglossary{name={$\mathcal{U}$}, -% description={The universal set}, -% sort=U}{text} -%\end{verbatim} -%or you can use: -%\begin{verbatim} -%\gls{glos:U} -%\end{verbatim} -%which is equivalent to: -%\begin{verbatim} -%\xglossary{name={$\mathcal{U}$}, -% description={The universal set}, -% sort=U}{$\mathcal{U}$} -%\end{verbatim} -%If you want to use glossary entries in an equation, it is better -%to use \cmdname{ensuremath} instead of \verb|$|\ldots\verb'$'. -%For example: -%\begin{verbatim} -%\storeglosentry{Gamma}{name=\ensuremath{\Gamma(z)}, -%description=Gamma function, -%sort=Gamma} -%\end{verbatim} -%You can then use this entry in either text or math mode: -%\begin{verbatim} -%The \useGlosentry{Gamma}{Gamma function} is defined as -%\begin{equation} -%\gls{Gamma} = \int_{0}^{\infty}e^{-t}t^{z-1}\,dt -%\end{equation} -%\end{verbatim} -%If you are using hyper links, and you want to use -%\cmdname{useGlosentry} within math mode, you must use -%\cmdname{ensuremath}: -%\begin{verbatim} -%\begin{equation} -%\useGlosentry{Gamma}{\ensuremath{\Gamma(x+1)}} = x\Gamma(x) -%\end{equation} -%\end{verbatim} -% -%The optional argument to \icmdname{storeglosentry} (\meta{gls-type}) -%indicates the glossary type (see -%\autoref{sec:newglostype} to find out how to define new -%glossary types). If omitted, the standard glossary is used. -% -%The optional argument to \icmdname{useglosentry}, -%\icmdname{useGlosentry} and \icmdname{gls} (\meta{opt}) allows you to -%add additional information to the glossary entry, for example: -%\begin{verbatim} -%\useglosentry[format=textbf]{glos:U} -%\end{verbatim} -%is equivalent to: -%\begin{verbatim} -%\glossary{name={$\mathcal{U}$}, -% description={The universal set}, -% sort=U, -% format=textbf} -%\end{verbatim} -%Since version 2.4, \icmdname{storeglosentry} is robust, and -%\cmdname{protect} should no longer be needed, however -%the identifying label, \meta{label}, should not -%contain any special characters. -% -%As from version 2.36, if you want to use all glossary entries -%which have been defined using \cmdname{storeglosentry}, do: -%\verb|\useglosentry{*}|. (Note that this option is not -%available for \cmdname{useGlosentry} and \cmdname{gls}.) -% -%\section{makeglos.pl} -% -%Whenever a glossary entry is used, either explicity using -%\cmdname{glossary} or \cmdname{xglossary} or implicitly using -%\cmdname{useglosentry}, \cmdname{useGlosentry} and \cmdname{gls}, -%the information is saved in a file with the extension \filetype{glo} -%(unless the \icmdname{makeglossary} command is omitted, in which case -%the glossary information is simply ignored.) A \appname{makeindex} -%style file\index{makeindex style file (.ist)|see{file types, ist}} -%(\filetype{ist}) is also created, which is customized for the -%document, and can be passed to \appname{makeindex}. -% -%For example, suppose your document is called \texttt{mydoc.tex}, -%the glossary will be saved in the file -%\texttt{mydoc.}\filetype{glo}, and the \appname{makeindex} style -%file \texttt{mydoc.}\filetype{ist} will be created. -% These files can then be passed to \appname{makeindex} as follows: -%\begin{verbatim} -%makeindex -s mydoc.ist -t mydoc.glg -o mydoc.gls mydoc.glo -%\end{verbatim} -%which generates the output file \texttt{mydoc.}\filetype{gls}, -%with transcript written to -%\texttt{mydoc.}\filetype{glg}. -% -%The Perl script \appname{makeglos.pl} provided with this package -%allows you to use \appname{makeindex} without having to remember -%all the command line options. The command -%\begin{verbatim} -%makeglos.pl mydoc -%\end{verbatim} -%will perform the command: -%\begin{verbatim} -%makeindex -s mydoc.ist -t mydoc.glg -o mydoc.gls mydoc.glo -%\end{verbatim} -%In addition, \appname{makeglos.pl} also takes the option -%\texttt{-m} which can be used to collate entries where the -%same name has multiple descriptions. -%\changes{2.14}{2005 May 28}{makeglos -m switch added} -% -%\appname{makeglos.pl} has the following syntax: -%\begin{verbatim} -%makeglos.pl [-ilqrgm] [-s sty] [-o gls] [-t log] [-p num] <filename> -%\end{verbatim} -%where all switches, apart from \texttt{-m} are the same as -%those for \appname{makeindex}. If there are multiple glossary types -%(see -%\autoref{sec:newglostype}) and the file extension is omitted, \appname{makeglos.pl} will -%iterate through each glossary type (it will pick up the relevant -%information from the auxiliary file). -% -%The name of the \filetype{ist} file can be changed by redefining -%the command \cmdname{istfilename}\DescribeMacro{\istfilename} -%\emph{before} \cmdname{makeglossary}. -%For example: -%\begin{verbatim} -%\renewcommand{\istfilename}{foo.ist} -%\makeglossary -%\end{verbatim} -%Only one \filetype{ist} file will be created per document, even if -%you have multiple glossaries with different styles. The only -%circumstance where you will need multiple \filetype{ist} files for -%a single document is when you have multiple glossaries that use -%different counters with different compositors, but this is rarely -%likely to occur. -% -%Creation of the \filetype{ist} file can be suppressed by issuing -%the command \cmdname{noist}\DescribeMacro{\noist}\ before -%\icmdname{makeglossary}. It will also be suppressed when the -%command \icmdname{nofiles} is used, or if the command -%\icmdname{makeglossary} is omitted. -% -%It should be noted that there are a few packages that can -%cause problems with the creation of the \filetype{ist} file, -%for example \styname{ngerman}. If you encounter problems -%when \LaTeX\ is processing the \icmdname{makeglossary} command, -%or if you get errors from \appname{makeindex} complaining about -%the style file, this is the most probable cause. -%See \autoref{sec:trouble}, item~\ref{itm:ngerman} for -%information on how to fix this. -% -%\section{Displaying the Glossary} -% -% Once the \filetype{gls} file has been created by -%\appname{makeindex} (as described in the previous -% section) the glossary can then be included in the document with -%the command \cmdname{printglossary}\DescribeMacro{\printglossary}. -% If chapters are defined, the glossary will start -%with\SpecialMainIndex{glossaryname} -%\begin{verbatim} -%\chapter*{\glossaryname} -%\end{verbatim} -%If not, it will start with -%\begin{verbatim} -%\section*{\glossaryname} -%\end{verbatim} -%The format of the main body of the glossary depends on the -%options passed to the package. -% -%\section{Package Options} -%\label{sec:options} -% -%The package options must be specified as a comma-separated list -%of \meta{key}=\meta{value} pairs. Available options are: -%\begin{description} -%\item[\pkgopt{style}] The glossary style. Values: -%\index{glossary style|see{package options, style}} -%\begin{description} -%\item[\pkgoptval{list}{style}] use -%\envname{description} environment in the glossary -%\item[\pkgoptval{altlist}{style}] modified -%version of \pkgopt[list]{style}. The description starts on the -%line following the name of the term being defined. -%\changes{2.0}{2004 September 21}{Package option \texttt{altlist} -%style} -%\item[\pkgoptval{super}{style}] use -%\envname{supertabular} environment in the glossary -%\item[\pkgoptval{long}{style}] use -%\envname{longtable} environment in the glossary (Default) -%\end{description} -% -%\item[\pkgopt{header}]\index{glossary header|see{package options, header}} Glossary -%header. Values: -%\begin{description} -%\item[\pkgoptval{none}{header}] The glossary -%doesn't have a heading (Default) -%\item[\pkgoptval{plain}{header}] The glossary -%has a heading -%\end{description} -% -%\item[\pkgopt{border}]\index{glossary border|see{package options, border}} Glossary -%border. Values: -%\begin{description} -%\item[\pkgoptval{none}{border}] The glossary -%doesn't have a border (Default) -%\item[\pkgoptval{plain}{border}] Border -%around the main body of the glossary -%\end{description} -% -%\item[\pkgopt{cols}]\index{glossary columns|see{package options, cols}} Number of -%columns. Values: -%\begin{description} -%\item[\pkgoptval{2}{cols}] The entry name and description are in two separate -%columns with the associated page numbers in the same column as -%the description. (Default) -%\item[\pkgoptval{3}{cols}] The entry name, description and associated page numbers -%are in three separate columns. -%\end{description} -% -% \changes{1.1}{2004 August 14}{Package option \texttt{number}} -% \changes{2.4}{2006 July 20}{Package option \texttt{number} modified -%so that any counter can be used} -%\item[\pkgopt{number}] -% Associated number corresponding to each entry. -%This may either be the keyword \pkgoptval{none}, indicating that -%the corresponding numbers should be suppressed, or it can be the -%name of a \LaTeX\ counter. The default is \pkgopt[page]{number}. -% -%\item[\pkgopt{toc}]\index{table of contents, adding to|see{package options, toc}} -%Boolean variable: -%\changes{2.0}{2004 September 21}{Package option \texttt{toc}} -%\begin{description} -%\item[\pkgoptval{true}{toc}] Add glossary to table of contents -%\item[\pkgoptval{false}{toc}] Omit glossary from table of contents (Default) -%\end{description} -%Note that if you specify this option, you will need to run -%\LaTeX\ twice after generating the glossary. -% -%\item[\pkgopt{hypertoc}] -%Boolean variable. This is similar to the package option -%\pkgopt{toc}, but if you are using the \styname{hyperref} -%package, \pkgopt{hypertoc} will generate a link to the -%point immediately before the glossary title, whereas \pkgopt{toc} will -%have a hyperlink to just after the glossary title. Note -%that you can not use both \pkgopt[true]{toc} and -%\pkgopt[true]{hypertoc}. Default value: -%\pkgopt[false]{hypertoc}. -%\changes{2.24}{2005 September 27}{Package option \texttt{hypertoc}} -% -%\item[\pkgopt{hyper}] Boolean -%variable: -%\changes{2.0}{2004 September 21}{Package option \texttt{hyper}} -%\begin{description} -%\item[\pkgoptval{true}{hyper}] Make associated numbers in the -%glossary a hypertext link, and also make acronyms, and the text -%given by \icmdname{xglossary} have a hyperlink to their -%corresponding entries in the glossary. -%\item[\pkgoptval{false}{hyper}] Don't make associated numbers a hypertext link -%\end{description} -%If the \styname{hyperref} or \styname{html} package has -%been loaded prior to loading \texttt{glossary.sty}, -%\pkgopt[true]{hyper} is set, otherwise -%the default is \pkgopt[false]{hyper}. Note that this package -%option now encompasses the old \pkgopt{hyperacronym} option. -% -%\item[\pkgopt{section}] Boolean variable: -%\changes{2.12}{2004 November 1}{Package option \texttt{section}} -%\begin{description} -%\item[\pkgoptval{true}{section}] Make the glossary an unnumbered -%section, even if chapters are defined% -% -%\item[\pkgoptval{false}{section}] Only make glossary an -%unnumbered section if chapters are not defined (default). -%\end{description} -% -%\item[\pkgopt{acronym}] Boolean variable: -%\changes{2.17}{2005 June 28}{Package option \texttt{acronym}} -%\begin{description} -%\item[\pkgoptval{true}{acronym}] Make the list of acronyms -%separate from the main glossary. -% -%\item[\pkgoptval{false}{acronym}] The acronyms will all -%be placed in the main glossary. (Default) -%\end{description} -% -%\item[\pkgopt{global}] Boolean variable: -%\changes{2.31}{2005 December 5}{Package option \texttt{global}} -%\begin{description} -%\item[\pkgoptval{false}{global}] Acronym commands only have -%a local effect. (Default) -%\item[\pkgoptval{true}{global}] Acronym commands have a global -%effect. -%\end{description} -%\end{description} -% The \pkgopt{border}, \pkgopt{header} and \pkgopt{cols} options -%should not be used in conjunction with \pkgopt[list]{style} -%or \pkgopt[altlist]{style}, as they only make sense with one of -%the tabular-style options. -%The value for the boolean variables can be omitted if they are -%to be set. For example -% \pkgopt{toc} is equivalent to \pkgopt[true]{toc}. Note that the -%\pkgoptval{altlist}{style} style is better suited to -%glossaries with long entry names. -% -%You can set up your own preferred defaults in a configuration -%file% -%\index{glossary.cfg|see{file type, cfg}}. -%The file must be called \texttt{glossary.}\filetype{cfg} and -%should be placed somewhere on the \TeX\ path. In this file you -%can use the command \DescribeMacro{\glossarypackageoptions}% -%\noindent -%\cmdname{glossarypackageoptions}\verb'{'\meta{option-list}\verb/}/ -%\noindent -%where \meta{option-list} is a comma-separated list of -%\meta{key}=\meta{value} pairs, as passed to the -%\styname{glossary} -%package. Note that this command may only be used in the -%configuration file. -% -%\subsection{Examples} -% Suppose the document has the following \icmdname{glossary} -%commands: -%\begin{center}\ttfamily -%\begin{tabular}{@{\rmfamily}ll@{}l} -%\bfseries Page & \multicolumn{2}{c}{\bfseries\rmfamily Command}\\ -%1 & \cmdname{glossary}\{&name=diagonal matrix,\\ -% & &description=Matrix whose only non-zero\\ -% & &entries are along the leading diagonal\}\\ -%2 & \cmdname{glossary}\{&name=identity matrix,\\ -% & &description=Diagonal matrix with 1s along the \\ -% & &leading diagonal\}\\ -%4 & \cmdname{glossary}\{&name=singular matrix,\\ -% & &description=Matrix with zero determinant\} -%\end{tabular} -%\end{center} -% -%\noindent Variations: -%\begin{enumerate} -%\item If \pkgopt[list]{style} is chosen, the glossary will look like: -%\begin{description} -%\item[diagonal matrix] Matrix whose only non-zero entries are along the leading -% diagonal, 1 -%\item[identity matrix] Diagonal matrix with 1s along the leading diagonal, 2 -%\item[singular matrix] Matrix with zero determinant, 4 -%\end{description} -% -%\item If \pkgopt[altlist]{style} is chosen, the glossary will look like: -%\begin{description} -%\item[diagonal matrix]\mbox{}\par Matrix whose only non-zero entries are along the leading -% diagonal, 1 -%\item[identity matrix]\mbox{}\par Diagonal matrix with 1s along the leading diagonal, 2 -%\item[singular matrix]\mbox{}\par Matrix with zero determinant, 4 -%\end{description} -% -%\item If \pkgopt[list]{style},\pkgopt[none]{number}% -% is chosen, the glossary will look like: -%\begin{description} -%\item[diagonal matrix] Matrix whose only non-zero entries are along the leading -% diagonal -%\item[identity matrix] Diagonal matrix with 1s along the leading diagonal -%\item[singular matrix] Matrix with zero determinant -%\end{description} -% -%\item If \pkgopt[long]{style},\pkgopt[none]{border},% -%\pkgopt[none]{header},\pkgopt[page]{number} -%is chosen (default), the glossary will look like:\\[10pt] -%\newlength{\descriptionwidth}\setlength{\descriptionwidth}{0.6\textwidth} -%\begin{tabular}{@{\hspace{\tabcolsep}\bfseries}lp{\descriptionwidth}} & -%\\ diagonal matrix & Matrix whose only non-zero entries are along the leading -% diagonal, 1 -%\\ & -%\\identity matrix & Diagonal matrix with 1s along the leading diagonal, 2 -%\\ & -%\\ singular matrix & Matrix with zero determinant, 4 -%\end{tabular} -% -%\item If \pkgopt[long]{style},\pkgopt[plain]{border},% -%\pkgopt[none]{header} is chosen, -%the glossary will look like: -%\\[10pt] -%\begin{tabular}{|@{\hspace{\tabcolsep}\bfseries}lp{\descriptionwidth}|}\hline & -%\\ diagonal matrix & Matrix whose only non-zero entries are along the leading -% diagonal, 1 -%\\ & -%\\identity matrix & Diagonal matrix with 1s along the leading diagonal, 2 -%\\ & -%\\ singular matrix & Matrix with zero determinant, 4 -%\\ & \\\hline -%\end{tabular} -% -%\item If \pkgopt[long]{style},\pkgopt[plain]{border},% -%\pkgopt[plain]{header} is -%chosen, the glossary will look like: -%\\[10pt] -%\begin{tabular}{|@{\hspace{\tabcolsep}\bfseries}lp{\descriptionwidth}|}\hline -%\bfseries Notation & \bfseries Description\\\hline\hline & -%\\ diagonal matrix & Matrix whose only non-zero entries are along the leading -% diagonal, 1 -%\\ & -%\\identity matrix & Diagonal matrix with 1s along the leading diagonal, 2 -%\\ & -%\\ singular matrix & Matrix with zero determinant, 4 -%\\ & \\\hline -%\end{tabular} -% -%\item If \pkgopt[long]{style},\pkgopt[none]{border},% -%\pkgopt[plain]{header},\pkgopt[3]{cols} is chosen, the -%glossary will look like: -%\\[10pt] -%\begin{tabular}{@{\hspace{\tabcolsep}\bfseries}lp{\descriptionwidth}l} -%\bfseries Notation & \bfseries Description & \\ & -%\\ diagonal matrix & Matrix whose only non-zero entries are along the leading -% diagonal & 1 -%\\ & -%\\identity matrix & Diagonal matrix with 1s along the leading diagonal & 2 -%\\ & -%\\ singular matrix & Matrix with zero determinant & 4 -%\\ & \\ -%\end{tabular} -%\end{enumerate} -% -% -%\section{Defining New Glossary Types} -%\label{sec:newglostype} -% -%A new type of glossary can be defined using the command:\DescribeMacro{\newglossarytype}\\[5pt] -%\cmdname{newglossarytype}\verb/[/\meta{log-ext}\verb"]{"\meta{name}\verb'}{'\meta{out-ext}\verb+}{+\meta{in-ext}\verb!}[!\meta{style list}\verb-]-\\[5pt] -%For example, suppose you want your document to have a separate -%index of terms and index of notation, -%you could use \icmdname{makeglossary}, \icmdname{glossary}, -%\icmdname{xglossary} and \icmdname{printglossary} for the first -%glossary, and define a new type of glossary called say, -%\texttt{notation}, using -%\begin{verbatim} -%\newglossarytype[nlg]{notation}{not}{ntn} -%\end{verbatim} -%which will create the analogous commands: -%\cmdname{makenotation}, \cmdname{notation}, \cmdname{xnotation} -%and \cmdname{printnotation} which can be used for the second -%glossary. -% -%\changes{2.3}{2005 Nov 18}{Added extra optional argument to 'newglosarytype} -%As from version 2.3, \cmdname{newglossarytype} now has an -%additional optional argument \meta{style list}. This should -%be a comma separated list of \meta{key}=\meta{value} pairs -%that can be used to specify the style of the new glossary. -%If omitted, the new glossary will have the same format -%as the main glossary. The following options are available: -%\texttt{number}, \texttt{style}, \texttt{header}, \texttt{border} and -%\texttt{cols}. These can take the same values as those -%given in the package options (described in section~\ref{sec:options}). -% -%The command \cmdname{newglossarytype} should only occur in the -%preamble. The new commands -% \cmdname{make}\meta{name}, \verb'\'\meta{name}, -%\verb'\x'\meta{name} and \cmdname{print}\meta{name} all have the -%same format as their ``glossary'' counter-parts. -% -%The glossary information will be saved to a file -%with the extension given by \meta{out-ext} (analogous to -%\filetype{glo}), which can then be passed to \appname{makeindex} -%either directly or via \appname{makeglos.pl}, -%and the file to be read in (i.e.\ the file created by -%\appname{makeindex}) will have the extension \meta{in-ext} -%(analogous to \filetype{gls}). -% -%The optional argument \meta{log-ext} indicates -%the extension for the \appname{makeindex} log file, if omitted the -%extension \filetype{glg} is used. This is not used by \LaTeX, -%however \appname{makeglos.pl} reads in this information from -%the \LaTeX\ auxiliary file and passes it to \appname{makeindex}.\changes{2.22}{2005 Sept 12}{changed makeglos to read information in from .aux instead of .log file} -% -%For the above \texttt{notation} -%example, if your document is called, say, \texttt{mydoc.tex}, -% you will need to do the following: -%\begin{verbatim} -%latex mydoc -%makeglos.pl mydoc -%latex mydoc -%\end{verbatim} -%(You may need to do an extra \verb"latex mydoc" to get -%cross-references up-to-date.) Note that if you don't specify the -%file extension when using \appname{makeglos.pl}, it will -%check the transcript file from the \LaTeX\ run to determine -%all the glossary types, so, for this example, -%\begin{verbatim} -%makeglos.pl mydoc -%\end{verbatim} -%is equivalent to: -%\begin{verbatim} -%makeglos.pl mydoc.glo -%makeglos.pl mydoc.not -%\end{verbatim} -%since \appname{makeglos.pl} has read in the information -%for the \texttt{notation} glossary type from the file -%\texttt{mydoc.log}. -% -%If you don't have Perl installed -%on your system, or for any other reason are unable to use -%\appname{makeglos.pl}, you can call \appname{makeindex} -%explicitly: -%\begin{verbatim} -%latex mydoc -%makeindex -s mydoc.ist -t mydoc.glg -o mydoc.gls mydoc.glo -%makeindex -s mydoc.ist -t mydoc.nlg -o mydoc.ntn mydoc.not -%latex mydoc -%\end{verbatim} -% -%Note that you can use the command -%\icmdname{printglossary}\texttt[\meta{name}\texttt] -%instead of \verb'\print'\meta{name}. -%These two commands have the same effect when using \LaTeX, -%however, they have a slightly different effect when -%using \LaTeX2HTML (see \autoref{sec:l2h}). -% -%If the command \verb'\'\meta{glossary-type}\verb"name" -%is defined, (e.g.\ \verb'\notationname' in the above example) -%this will be used as the title for the specified -%glossary. If this command is not defined, \icmdname{glossaryname} -%will be used instead. -%If the command \verb'\short'\meta{glossary-type}\verb"name" -%is defined, (e.g.\ \cmdname{shortnotationname} in the above -%example) this will be used for the table of contents -%entry, otherwise \verb'\'\meta{glossary-type}\verb"name" will -%be used instead. -%For example: -%\begin{verbatim} -%\newglossarytype[nlg]{notation}{not}{ntn} -%\newcommand{\notationname}{Index of Notation} -%\newcommand{\shortnotationname}{Notation} -%\end{verbatim} -% -%\section{Acronyms} -% -%\changes{2.0}{2004 September 21}{Acronyms} -%The \styname{glossary} package provides the command\DescribeMacro{\newacronym}:\\[5pt] -%\begin{ttfamily} -%\cmdname{newacronym}[\textrm{\meta{cmd-name}}]\{\textrm{\meta{acronym}}\}\{\textrm{\meta{long}}\}\{\textrm{\meta{glossary entry}}\} -%\end{ttfamily}\\[5pt] -%which can be used to define acronyms. The argument \meta{long} -%is the full name, the argument \meta{acronym} is the acronym for -%\meta{long} and \meta{glossary entry} is the glossary information -%in the form used by the \icmdname{glossary} command. If the -%optional argument \meta{cmd-name} is missing, -%\cmdname{newacronym} will create a command called -%\verb!\!\meta{acronym}, otherwise it will create a command -%called \verb'\'\meta{cmd-name} (henceforth denoted \cmdname{}\meta{acr-name}). -%This command can then be used throughout the text. The first -%instance of this command is equivalent to:\\[10pt] -%\meta{long} \texttt(\icmdname{xacronym}\verb"{"\gloskey{name}\texttt{=}\meta{long} \texttt(\meta{acronym}\texttt{),}\meta{glossary entry}\verb'}{'\meta{acronym}\verb/}/\texttt)\\[10pt] -%subsequent instances will be equivalent to:\\[10pt] -%\icmdname{xacronym}\verb"{"\gloskey{name}\texttt{=}\meta{long} \texttt(\meta{acronym}\texttt{),}\meta{glossary entry}\verb'}{'\meta{acronym}\verb/}/\\[10pt] -%The command \cmdname{}\meta{acr-name} also has a starred -%version, which will make the first letter of \meta{long} -%uppercase (for use at the start of a sentence). -% -%Note that if you want to change the format of the acronym, -%for example, if you want the acronym to appear in small caps, -%you will need to not only use the optional argument, but you -%will also need to use the \gloskey{sort} key, otherwise you -%will get an error. For example: -%\begin{verbatim} -%\newacronym[SVM]{\textsc{svm}}{Support Vector Machine}% -%{description=Statistical pattern recognition -%technique,sort=svm} -%\end{verbatim} -% -%If the package option \pkgopt{acronym} is not set (default) -%\icmdname{xacronym}, is a synonym for \icmdname{xglossary}, and -%the acronyms will appear in the main glossary (remember to -%specify \cmdname{makeglossary} and \cmdname{printglossary}). -%If the package option \pkgopt[true]{acronym} is specified, a -%new glossary type called \texttt{acronym} will be defined as: -%\begin{verbatim} -%\newglossarytype[alg]{acronym}{acr}{acn} -%\providecommand{\acronymname}{List of Acronyms} -%\end{verbatim} -%You will then need to use the commands \icmdname{makeacronym} -%and \icmdname{printacronym} to make the list of acronyms appear. -%You will also need to run the \filetype{acr} file through -%\appname{makeindex} (or \appname{makeglos.pl}). For example: -%\begin{verbatim} -%makeindex -s mydoc.ist -t mydoc.alg -o mydoc.acn mydoc.acr -%\end{verbatim} -%alternatively: -%\begin{verbatim} -%makeglos.pl mydoc -%\end{verbatim} -%Note that the package option \pkgopt[true]{acronym} is only -%appropriate if you want both a glossary and a separate list of -%acronyms. If you do not write in English, you can set up your -%own language definition -%for \cmdname{acronymname} in the configuration file -%\texttt{glossary}\filetype{cfg}. For example: -%\begin{verbatim} -%\newcommand{\acronymname}{Akronyme} -%\end{verbatim} -%(If \texttt{glossary.cfg} does not exist, create a new file, add the -%appropriate definition of \cmdname{acronymname}, and save it to the -%same directory as \texttt{glossary.sty}.) -% -%\changes{2.1}{2004 October 25}{name field can be omitted in -%\texttt{'newacronym}} -%The \gloskey{name} key does not need to appear in \meta{glossary -%entry}, as it is constructed from \meta{long} and -%\meta{acronym}. By default this will be in the form: -%\meta{long} (\meta{acronym}), however the format can be -%overridden using the -%command:\DescribeMacro{\setacronymnamefmt}\\[10pt] -%\cmdname{setacronymnamefmt}\{\meta{format}\}\\[10pt] -%Within \meta{format} the following commands may -%be used to represent \meta{long} and \meta{acronym}: -%\DescribeMacro{\glolong}\icmdname{glolong} and -%\DescribeMacro{\gloshort}\icmdname{gloshort}. For example, -%suppose you just want the acronym to appear in the glossary entry, -%and not its full length name, then you would need to do: -%\begin{verbatim} -%\setacronymnamefmt{\gloshort} -%\end{verbatim} -% -%\changes{2.32}{2006 January 5}{added \texttt{'setacronymdescfmt}} -%As from version 2.32, you can also modify the way the description -%key is formatted for acronyms using\DescribeMacro{\setacronymdescfmt}:\\[10pt] -%\cmdname{setacronymdescfmt}\{\meta{format}\}\\[10pt] -%Within \meta{format} you may use the commands \icmdname{glolong} -%and \icmdname{gloshort} (as above), and you can also use -%the command \icmdname{glodesc} which is the description as -%specified by the \gloskey{description} key in -%\icmdname{newacronym}. This means that if you are using -%a tabular style glossary, you can have the abbreviated -%form in one column and the long form in the second column -%with the description. For example, the following: -%\begin{verbatim} -%\setacronymnamefmt{\gloshort} -%\setacronymdescfmt{\glolong: \glodesc} -%\newacronym{svm}{support vector machine}{description=Statistical -%pattern recognition technique} -%\end{verbatim} -%will generate a glossary entry of the form: -%\begin{verbatim} -%\glossary{name=svm,description=support vector machine: Statistical -%pattern recognition technique} -%\end{verbatim} -%Note that if you omit \icmdname{glodesc} from -%\cmdname{setacronymdescfmt} the description specified -%in \cmdname{newacronym} will be ignored. So -%\begin{verbatim} -%\setacronymnamefmt{\gloshort} -%\setacronymdescfmt{\glolong} -%\newacronym{svm}{support vector machine}{description=Statistical -%pattern recognition technique} -%\end{verbatim} -%will generate a glossary entry of the form: -%\begin{verbatim} -%\glossary{name=svm,description=support vector machine} -%\end{verbatim} -% -%You will need to specify the \gloskey{name} key explicitly if -%the name contains a \appname{makeindex} special character. -%For example: -%\begin{verbatim} -%\newacronym{RNA}{Ribonukleins\"aure}{name={Ribonukleins\""aure (RNA)}} -%\end{verbatim} -%Note that this will override any formatting specified by -%\icmdname{setacronymnamefmt}. -% -%Given an acronym named \meta{acr-name} (the command name -%associated with the acronym as defined in -%\cmdname{newacronym} without the preceding backslash), -%the following commands are also available: -% -%\vspace{10pt} -%\changes{2.11}{2004 October 25}{\texttt{'useacronym}} -%\changes{2.18}{2005 July 5}{Fixed bug in 'useacronym} -%\changes{2.26}{2005 November 17}{Fixed bug in 'useacronym} -%\noindent -%\cmdname{useacronym}\verb"["\meta{insert}\verb']{'\meta{acr-name}\verb!}!\DescribeMacro{\useacronym}\\[5pt] -%This command can be used instead of \cmdname{}\meta{acr-name}. -%\cmdname{useacronym} also has a starred version equivalent to -%\cmdname{}\meta{acr-name}\texttt{*}. -%The optional argument \meta{insert} allows you to insert text -%after \meta{long}, if this is the first occurrence of the -%acronym, or after the acronym on subsequent occurrences. -% -%\vspace{10pt} -%\changes{2.14}{2005 May 28}{'resetacronym added}\noindent -%\cmdname{resetacronym}\verb'{'\meta{acr-name}\verb"}" -%\DescribeMacro{\resetacronym}\\[10pt] -%This command will cause the next use of \cmdname{}\meta{acr-name} -%to produce the long version. To reset all acronyms -%do \cmdname{resetallacronyms}.\DescribeMacro{\resetallacronyms} -%\changes{2.21}{2005 July 27}{'resetallacronyms added} -% -%\vspace{10pt} -%\changes{2.31}{2005 December 5}{'unsetacronym added}\noindent -%\cmdname{unsetacronym}\verb'{'\meta{acr-name}\verb"}" -%\DescribeMacro{\unsetacronym}\\[10pt] -%This command will cause all subsequent uses of -%\cmdname{}\meta{acr-name} to produce the short version. -%To unset all acronyms -%do \cmdname{unsetallacronyms}.\DescribeMacro{\unsetallacronyms} -%\changes{2.31}{2005 December 5}{'unsetallacronyms added} -% -%\vspace{10pt} -%\changes{2.14}{2005 May 28}{'ifacronymfirstuse added}\noindent -%\cmdname{ifacronymfirstuse}% -%\verb'{'\meta{acr-name}% -%\verb'}{'\meta{true text}\verb"}{"\meta{false text}\verb!}! -%\DescribeMacro{\ifacronymfirstuse}\\[10pt] -%This will test if the acronym has been used yet. If it has been -%used, \meta{true text} will be implemented, otherwise -%\meta{false text} will be implemented. -% -%The long and short forms of an acronym can be produced explicitly -%without a corresponding glossary entry, using the commands:\\[10pt] -%\changes{2.19}{2005 July 8}{'acrln added}% -%\cmdname{acrln}\verb'{'\meta{acr-name}\verb/}/\DescribeMacro{\acrln}\\ -%\cmdname{acrsh}\verb'{'\meta{acr-name}\verb/}/\DescribeMacro{\acrsh} -%\changes{2.19}{2005 July 8}{'acrsh added}\\[10pt] -%Or, alternatively:\\[10pt] -%\cmdname{}\meta{acr-name}\texttt{long}\\ -%\cmdname{}\meta{acr-name}\texttt{short}\\[10pt] -%The first two commands (\cmdname{acrln} and \cmdname{acrsh}) -%have a starred form that makes the first letter uppercase. -%The other two commands, simply contain \meta{long} and -%\meta{acronym}. -% -%Note that since these four commands do not generate glossary -%entries they will therefore not contain any hyperlinks, even if -%you have specified the \pkgopt{hyper} package option. They are -%provided for use in situations where the associated glossary -%command may cause problems (e.g.\ in a sectioning command.) -% -%Note that, as with all \LaTeX\ commands, spaces following -%command names are ignored so if, for example, you defined -%a new acronym called, say, SVM, then the command \verb/\SVM/ will -%ignore any spaces following it. To force a space, you -%can either place an empty set of braces after the command -%name (e.g.\ \verb/\SVM{}/) or use -%\cmdname{\textvisiblespace} i.e.\ a backslash followed by -%a space (e.g.\ \verb/\SVM\ /). Alternatively, as from -%version 2.22, if you load the \styname{xspace} package -%before loading the \styname{glossary} package, spaces will -%be put in automatically using \icmdname{xspace}. -%\changes{2.22}{2005 Sept 16}{Added provision for 'xspace} -%\changes{2.23}{2005 Sept 17}{Fixed minor bug with hyperlinks and 'glsxspace} -%\changes{2.28}{2005 July 9}{Fixed erroneous spaces occuring while -%using xspace} -% -%\DescribeMacro{\acronymfont} -%\changes{2.22}{2005 Sept 12}{Added 'acronymfont}% -%If you want the acronym to appear in a particular font, -%for example, small caps, you can redefine the command -%\cmdname{acronymfont}. For example: -%\begin{verbatim} -%\renewcommand{\acronymfont}[1]{\textsc{#1}} -%\end{verbatim} -%The default definition of \cmdname{acronymfont} is: -%\begin{verbatim} -%\newcommand{\acronymfont}[1]{#1} -%\end{verbatim} -% -%\subsection{Examples} -% -%\begin{verbatim} -%\newacronym{SVM}{Support Vector Machine}{description=Statistical -%pattern recognition technique} -%\end{verbatim} -%This will define the command \cmdname{SVM}. The first time this -%command is used will display the text: Support Vector Machine -%(SVM). Subsequent use will simply display: SVM. The next -%example uses the optional argument \meta{cmd-name} since the -%acronym contains a non-alphabetical character: -%\begin{verbatim} -%\newacronym[KSVM]{K-SVM}{Kernel Support Vector -%Machine}{description=Statistical pattern recognition -%technique using the ``kernel trick''} -%\end{verbatim} -%This will define the command \cmdname{KSVM}. The first time -%this command is used will display the text: Kernel Support Vector -%Machine (K-SVM). Subsequent use will simply display: K-SVM. -% -%To test whether or not an acronym has been used: -%\begin{verbatim} -%\ifacronymfirstuse{SVM}{a}{an} \SVM\ is \ldots -%\end{verbatim} -%If the acronym has not been used, the following text will -%be produced:\\[10pt] -%a Support Vector Machine is \ldots\\[10pt] -%otherwise it will produce:\\[10pt] -%an SVM is \ldots\\[10pt] -%To expand the acronym a second time: -%\begin{verbatim} -%\chapter{An overview of the \protect\SVM} -%\resetacronym{SVM} -%The \SVM\ \ldots -%\end{verbatim} -%Note the use of \cmdname{protect} (see -%note~\ref{itm:fragile} on page~\pageref{itm:fragile}.) In fact, in this situation -%it would be better to do: -%\begin{verbatim} -%\chapter[An overview of the \SVMlong]{An overview of the \protect\SVM} -%\resetacronym{SVM} -%The \SVM\ \ldots -%\end{verbatim} -% -%Now suppose you want the text: support vector machine, -%instead of Support Vector Machine (i.e.\ you don't like the -%uppercase letters). You can define the acronym as follows: -%\begin{verbatim} -%\newacronym{SVM}{support vector machine}{description=Statistical -%pattern recognition technique} -%\end{verbatim} -%however, if the command \cmdname{SVM} occurs at the start of the -%sentence, you would clearly want the first letter as an -%uppercase letter. This can be done using \cmdname{SVM*} instead -%of \cmdname{SVM}. For example: -%\begin{verbatim} -%\SVM*\ techniques are widely used \ldots -%\end{verbatim} -%This will then come out as: Support vector machine (SVM) -%techniques are widely used \ldots (Assuming this is the first -%use of either \cmdname{SVM} or \cmdname{SVM*}.) -% -%Alternatively, \icmdname{useacronym}\verb'{SVM}' can be used instead of -%\cmdname{SVM}. For example: -%\begin{verbatim} -%\useacronym*[s]{SVM} are widely used in the area of pattern -%recognition. -%\end{verbatim} -%If this is the first use of the acronym SVM, it will produce the -%following text:\\[10pt] -%Support vector machines (SVM) are widely used in the area of -%pattern recognition.\\[10pt] -%If this is not the first use of this acronym, it will produce the -%following text:\\[10pt] -%SVMs are widely used in the area of pattern recognition. -% -%\section{Customizing the Glossary} -%The \styname{glossary} package provides commands which can be redefined to customize the -%glossary. The following name commands are defined by this package: -%\begin{center}\DescribeMacro{\glossaryname}\DescribeMacro{\entryname}\DescribeMacro{\descriptionname}\relax -%\begin{tabular}{ll} -%\bfseries Command & \bfseries Default Value\\ -%\cmdname{glossaryname} & Glossary\\ -%\cmdname{shortglossaryname} & \cmdname{glossaryname}\\ -%\cmdname{entryname} & Notation\\ -%\cmdname{descriptionname} & Description -%\end{tabular} -%\end{center} -%The commands \cmdname{entryname} and \cmdname{descriptionname} -%are put in the first two columns of the header row if you -%are using one of the tabular glossary styles together with a -%header row (as specified by the \pkgopt[true]{header} package option). -%If you are using \pkgopt[3]{cols}, the command -%\cmdname{glspageheader}\DescribeMacro{\glspageheader}\ will be -%put in the third column of the header row. By default, this command -%does nothing.\changes{2.4}{2006 July 20}{'glspageheader added} -% -%\changes{2.2}{2005 July 15}{'glossaryname now defined using 'providecommand instead of 'newcommand} -% \changes{2.15}{2005 June 5}{'shortglossaryname} -%\changes{2.16}{2005 June 8}{fixed bug preventing changes -%to 'glossaryname and 'shortglossaryname} -%\DescribeMacro{\shortglossaryname} -%The command \cmdname{shortglossaryname} is used for the -%page headers and table of contents entry. -% \changes{1.1}{2004 August 14}{'glossarypreamble}% -% \changes{1.1}{2004 August 14}{'glossarypostamble}% -%Any text required before or after the glossary can be added -%by redefining the commands \DescribeMacro{\glossarypreamble}\cmdname{glossarypreamble} -%and \DescribeMacro{\glossarypostamble}\cmdname{glossarypostamble}. -%For example. -%\begin{verbatim} -%\renewcommand{\glossarypreamble}{Page numbers in -%italic indicate the main definition\par} -%\end{verbatim} -%By default, \cmdname{glossarypreamble} and \cmdname{glossarypostamble} do nothing. -% -%\changes{2.3}{2005 Nov 18}{'glsbeforenum}% -%\changes{2.3}{2005 Nov 18}{'glsafternum}% -%Any text required before or after the list of page numbers -%are specified by the commands \cmdname{glsbeforenum} -%\DescribeMacro{\glsbeforenum} -%and \cmdname{glsafternum}\DescribeMacro{\glsafternum}. -%By default, these commands do nothing, any redefinition -%of these commands should come somewhere before the -%relevant \cmdname{printglossary} command. For example: -%\begin{verbatim} -%\printglossary -%\renewcommand{\glsbeforenum}{(} -%\renewcommand{\glsafternum}{)} -%\printnotation -%\end{verbatim} -%This will put the page number list in brackets for the -%second glossary, but not the first. -% -%Individual glossaries can have their styles changed either -%by setting the style in the final optional argument -%to \icmdname{newglossarystyle} (see -%\autoref{sec:newglostype}) or using the command\DescribeMacro{setglossarystyle}:\\[10pt] -%\cmdname{setglossarystyle}[\meta{type}]\{\meta{style list}\}\\[10pt] -%For example: -%\begin{verbatim} -%\setglossarystyle[acronym]{style=long,border=true,cols=2} -%\end{verbatim} -%If \meta{type} is omitted, the change is applied to the main -%glossary. -% -%\changes{1.1}{2004 August 14}{\relax Increased User Flexibility}% -%\changes{2.14}{2005 May 29}{'setglossary added} -%\DescribeMacro{\setglossary} -%The command \cmdname{setglossary}\verb'{'\meta{key-val list}\verb"}" -%can be used to modify some of the glossary settings. The argument -%\meta{key-val list} is a comma-separated list of -%\meta{key}=\meta{value} pairs. Available keys are: -%\begin{description} -%\item[\setglos{type}] This is the glossary type. -%If it is omitted, the standard glossary is assumed. -% -%\item[\setglos{glsnumformat}] -%\changes{1.1}{2004 August 14}{\texttt{'glsnumformat}}% -%This is the name of the command, -%\emph{without} the preceding backslash\footnote{Note, you should -%no longer try redefining the command \cmdname{glsnumformat}, as -%this now takes an optional argument, allowing for different -%glossary types}, to format the -%entry numbers. For example, to make all the entry numbers italic, -%do: -%\begin{verbatim} -%\setglossary{glsnumformat=textit} -%\end{verbatim} -%To suppress numbering altogether, you can do: -%\begin{verbatim} -%\setglossary{glsnumformat=ignore} -%\end{verbatim} -% -%\item[\setglos{glodelim}] This -%specifies what to do after the entry description and -%before the page numbers. The default value is a comma, unless the \pkgopt[3]{cols} option is specified, -%in which case it has the value \verb"&", or if -%\pkgopt[altlist]{style}, -%in which case it is simply a space\footnote{This -%is because the \texttt{altlist} style is intended for use with long descriptions that will look better ending with a -% full stop which the user can add if desired.}. If the package option \pkgopt[none]{number} is -%specified, \setglos{glodelim} will have an empty value (unless -%\pkgopt[3]{cols} is specified, -%where, again, it will have the value \verb"&".) -%This setting corresponds to the \istkey{delim\_0} key in the -%\appname{makeindex} style file. -% -%Note that if you want a new line between the description -%and the list of page numbers you will need to use -%\cmdname{noexpand}. For example: -%\begin{verbatim} -%\setglossary{glodelim={\noexpand\newline}} -%\end{verbatim} -% -%\item[\setglos{delimN}] -%\changes{1.1}{2004 August 14}{\texttt{'delimN}} -%The delimiter to be inserted between two -%page numbers for the same entry. (This corresponds to the -%\istkey{delim\_n} key in the \appname{makeindex} style file.) -%By default, this has the value -%\texttt{,\textvisiblespace} (comma followed by a space). If the -%package option \pkgopt[none]{number} is chosen, the value is set -%to empty. -% -%\item[\setglos{delimR}] -%\changes{1.1}{2004 August 14}{'delimR} -%The delimiter to be inserted between the starting and ending page -%number range for the same entry. (This corresponds to the -%\istkey{delim\_r} key in the \appname{makeindex} style file.) -%By default, this has the value \verb"--". If the -%package option \pkgopt[none]{number} is chosen, the value is set -%to empty. -% -%\item[\setglos{gloskip}] -%\changes{2.3}{2005 Nov 18}{'gloskip} -%This specifies what to do between groups. -%If \pkgopt[list]{style} or \pkgopt[altlist]{style} this has the -%value \cmdname{indexspace}, otherwise it creates a blank row -% in the \envname{longtable} or \envname{supertabular} environment. -%This command corresponds to the \istkey{group\_skip} key in -%the \appname{makeindex} style file. -%Note that as from version 2.3, you should no longer redefine -%the command \cmdname{gloskip}. -% -%\item[\setglos{delimT}] -%\changes{2.3}{2005 Nov 18}{'delimT} -%The text to be inserted after the list of -%page numbers for an entry. (This corresponds to the -%\istkey{delim\_t} key in the \appname{makeindex} style file.) -%The default value depends on the glossary style. It does -%nothing for the list-type styles, and has the value -%\verb/\\/ for the tabular-type styles. Note that -%\setglos{delimT} is separate from \cmdname{glsafternum}. -% -%For example, if you are using a 2 column tabular style, -%and you want a blank line after every entry (not just -%after every group) you can do the following: -%\begin{verbatim} -%\setglossary{delimT={\cr & \cr},gloskip={}} -%\end{verbatim} -%Note the use of \cmdname{cr} instead of \verb/\\/ and -%\setglos{gloskip} is set to nothing otherwise there would be -%a double space between groups. -%\end{description} -%Note that: -%\begin{verbatim} -%\setglossary{glsnumformat=ignore} -%\end{verbatim} -%is equivalent to -%\begin{verbatim} -%\setglossary{glsnumformat=ignore,delimN={},delimR={}} -%\end{verbatim} -% -%As from version 2.4\changes{2.4}{2006 July 20}{Added facility to insert text between groups}, -%you can insert text between groups by redefining the -%commands \cmdname{glogroupSymbols}, -%\cmdname{glogroupNumbers}, \cmdname{glogroupA} \ldots\ -%\cmdname{glogroupZ}. For example, if you are using one -%of the list styles, the following will print the appropriate -%heading in bold, followed by a gap: -%\begin{verbatim} -%\renewcommand{\glogroupSymbols}{\textbf{Symbols}\indexspace} -%\renewcommand{\glogroupNumbers}{\textbf{Numbers}\indexspace} -%\renewcommand{\glogroupA}{\textbf{A}\indexspace} -%....% similar lines omitted -%\renewcommand{\glosgroupZ}{\textbf{Z}\indexspace} -%\end{verbatim} -% -%The start and end of the main body of the glossary is given by the commands: -%\cmdname{beforeglossary}\DescribeMacro{\beforeglossary}{} and -%\cmdname{afterglossary}\DescribeMacro{\afterglossary}. -%If the \pkgopt[list]{style} -%or \pkgopt[altlist]{style} -%package options are chosen these commands simply begin and end -%the \envname{description} -%environment, otherwise these commands begin and end the -%\envname{longtable} or -%\envname{supertabular} -%environment with argument specified by -%\cmdname{glossaryalignment}\footnote{This isn't quite true -%anymore, see the documented code for clarification}.\DescribeMacro{\glossaryalignment} -% -%\changes{2.1}{2004 October 25}{made glossary compatible with array package} -%\changes{2.3}{2005 Nov 18}{made glossary compatible with array package} -%The glossary package no longer conflicts with the \styname{array} -%package. Changes can now be made to \cmdname{glossaryalignment} -%regardless of whether or not the \styname{array} -%package has been used. -% -%The command \cmdname{gloitem}\DescribeMacro{\gloitem}\ indicates -%what to do at the start of each glossary entry. -%This command takes one argument, which will be the text specified by the \gloskey{name} key -%in the \icmdname{glossary} command. In the case of the -%\pkgopt[list]{style} option, -%\cmdname{gloitem}\verb"{"\meta{text}\verb'}' -%will do\\[5pt] -%\verb"\item["\meta{text}\verb']'\\[5pt] -%or if \pkgopt[altlist]{style}:\\[5pt] -%\verb"\item["\meta{text}\verb']\mbox{}\par'\\[5pt] -%otherwise it will do\\[5pt] -%\meta{text}\verb" &"\\[5pt] -%This command corresponds to the \istkey{item\_0} key in the -%\appname{makeindex} style file. -% -%If the glossary has a tabular style with a header row -%(\pkgopt[true]{header} and either \pkgopt[long]{style} or -%\pkgopt[super]{style}), then the header row for \pkgopt[2]{cols} -%will be given by: -%\begin{verbatim} -%\bfseries\entryname & \bfseries \descriptionname\\ -%\end{verbatim} -%and the header row for \pkgopt[3]{cols} will be given by: -%\begin{verbatim} -%\bfseries\entryname & \bfseries\descriptionname & -%\bfseries\glspageheader\\ -%\end{verbatim} -%(It may also contain \cmdname{hline}\cmdname{hline} if the -%\pkgopt{border} key is set.) -% -%If you want to override this, you need to define the command -%\cmdname{glossaryheader}\footnote{Note that as from version~2.4, -%you must use \cmdname{newcommand} \emph{not} \cmdname{renewcommand}}% -%\DescribeMacro{\glossaryheader}. -% -%For example, if you are using a tabular style with \pkgopt[2]{cols}, -%and you want the \icmdname{descriptionname} to be centred, you could -%do: -%\begin{verbatim} -%\newcommand{\glossaryheader}{\bfseries\entryname & -% \hfil\bfseries\descriptionname\\} -%\end{verbatim} -% -%If you want an extra row below the header row, you can define -%the command\cmdname{glossarysubheader}\DescribeMacro{\glossarysubheader} -%\changes{2.4}{2006 July 20}{provision for 'glossarysubheader added} -%For example, if you are using \pkgopt[3]{cols}, and you want an -%extra row after the header row, you can do: -%\begin{verbatim} -%\newcommand{\glossarysubheader}{ & & \\} -%\end{verbatim} -% -%The command \cmdname{glosstail}\DescribeMacro{\glosstail}\ indicates what to do at the end of -%the \envname{longtable} or \envname{supertabular} environment. -% -%The width of the second column for the tabular-type styles is given by the length -%\cmdname{descriptionwidth}\DescribeMacro{\descriptionwidth}. This value can be changed using -%the \cmdname{setlength} command (the default value is \verb"0.6\linewidth"). -% -%\section{Sample Documents} -%This package comes with the following sample documents: -%\begin{itemize} -%\item \texttt{sampleSec.tex} --- This document uses the options: -%\pkgopt[altlist]{style}, \pkgopt{toc} and -%\pkgopt[section]{number}. It also loads the -%\styname{hyperref} package before loading the -%\styname{glossary} package, so the glossary has hyperlinks -%to the section numbers. Experimenting with different package -%options, will illustrate the different glossary styles. -%You will need to do: -%\begin{verbatim} -%pdflatex sampleSec -%makeglos.pl sampleSec -%pdflatex sampleSec -%pdflatex sampleSec -%\end{verbatim} -%If you don't want to use \appname{makeglos.pl}, you will need -%to do -%\begin{verbatim} -%makeindex -s sampleSec.ist -t sampleSec.glg -o sampleSec.gls sampleSec.glo -%\end{verbatim} -% -%\item \texttt{sampleNtn.tex} --- This has a glossary and defines -%a new glossary type called \texttt{notation}. The glossary has -%associated page numbers, but the new glossary type doesn't. -%The two glossaries have different styles. -%You will need to do: -%\begin{verbatim} -%latex sampleNtn -%makeglos.pl sampleNtn -%latex sampleNtn -%latex sampleNtn -%\end{verbatim} -%If you don't want to use \appname{makeglos.pl}, you will need -%to do -%\begin{verbatim} -%makeindex -s sampleNtn.ist -t sampleNtn.glg -o sampleNtn.gls sampleNtn.glo -%makeindex -s sampleNtn.ist -t sampleNtn.nlg -o sampleNtn.ntn sampleNtn.not -%\end{verbatim} -% -%\item \texttt{sampleNtn2.tex} ---This is similar to -%\texttt{sampleNtn.tex}, but uses \icmdname{storeglosentry}. -% -%\item \texttt{sampleEq.tex} --- This has a glossary where the -%numbers in the glossary refer to the equation number rather than -%the page number (achieved with the package option -%\pkgopt[equation]{number}). The \icmdname{entryname}, -%\icmdname{descriptionname}, \icmdname{glossaryname} and -%\icmdname{glspageheader} are all redefined to customize the -%glossary. You will need to do: -%\begin{verbatim} -%latex sampleEq -%makeglos.pl sampleEq -%latex sampleEq -%\end{verbatim} -%If you don't want to use \appname{makeglos.pl}, you will need -%to do -%\begin{verbatim} -%makeindex -s sampleEq.ist -t sampleEq.glg -o sampleEq.gls sampleEq.glo -%\end{verbatim} -% -%\item \texttt{sampleEqPg.tex} --- This is a modified version of -%\texttt{sampleEq.tex}. This example has one glossary, where some -%of the entry numbers refer to the corresponding page number, and -%some of the entry numbers refer to the corresponding equation -%number. You will need to do: -%\begin{verbatim} -%latex sampleEqPg -%makeglos.pl sampleEqPg -%latex sampleEqPg -%\end{verbatim} -%If you don't want to use \appname{makeglos.pl}, you will need -%to do -%\begin{verbatim} -%makeindex -s sampleEqPg.ist -t sampleEqPg.glg -o sampleEqPg.gls sampleEqPg.glo -%\end{verbatim} -% -%\item \texttt{sampleAcr.tex} --- This has a glossary containing -%acronyms. It uses the style \pkgoptval{altlist}{style} as this is better -%suited to glossaries with long names. It also uses the -%\styname{hyperref} package, so the page numbers in the -%glossary will automatically be hyperlinks, and the acronyms -%within the text will have hyperlinks to their corresponding entry -%in the glossary. You will need to do: -%\begin{verbatim} -%pdflatex sampleAcr -%makeglos.pl sampleAcr -%pdflatex sampleAcr -%pdflatex sampleAcr -%\end{verbatim} -%If you don't want to use \appname{makeglos.pl}, you will need -%to do -%\begin{verbatim} -%makeindex -s sampleAcr.ist -t sampleAcr.glg -o sampleAcr.gls sampleAcr.glo -%\end{verbatim} -% -% -%\item \texttt{sample.tex} --- This has a glossary entry -%with two different definitions of the same name. -%If you just use \appname{makeindex}, the two entries -%will be treated separately, however, if you want them -%concatenated, you can use \appname{makeglos.pl} with -%the \texttt{-m} switch. You will need to do: -%\begin{verbatim} -%pdflatex sample -%makeglos.pl -m sample -%pdflatex sample -%pdflatex sample -%\end{verbatim} -%(Depending on the configuration of your system, you -%may have to do \texttt{perl makeglos.pl} instead of -%just \appname{makeglos.pl}) -% -%If you don't want to use \appname{makeglos.pl}, you will need -%to do -%\begin{verbatim} -%makeindex -s sample.ist -t sample.glg -o sample.gls sample.glo -%\end{verbatim} -%however, the entries with the same name but multiple descriptions -%will not be merged. You will also have to given them different sort -%keys otherwise you will get duplicate hyper targets. -% -%\item \texttt{sample4col.tex}---This illustrates how to -%modify the glossary style so that it has 4 columns. You -%will need to do: -%\begin{verbatim} -%latex sample4col -%makeglos.pl sample4col -%latex sample4col -%\end{verbatim} -% -%\end{itemize} -% -%\section{LaTeX2HTML Style File} -%\label{sec:l2h} -% -%A \LaTeX2HTML\ Perl script, \texttt{glossary.}\filetype{perl}, is -%provided with this package for those wishing to use the -%glossary package with the \LaTeX2HTML translator. -%The file \texttt{glossary.}\filetype{perl} should be extracted -%along with \texttt{glossary.sty} when you run the -%installation script (\texttt{glossary.ins}) through \LaTeX. -% -%\subsection{Limitations} -% -%\begin{itemize} -%\item The only package options supported are: -%\pkgopt[altlist]{style}, \pkgopt[true]{hyper}, \pkgopt[true]{toc}, -%\pkgopt[true]{acronym} and \pkgopt[false]{acronym}. -% -%\item If you have more than one glossary type, the -%secondary glossaries will occur in the same segment -%as the primary glossary if you use the command -%\verb'\print'\meta{name} instead of -%\verb'\printglossary['\meta{name}\verb"]", where -%\meta{name} is the name of the glossary type. -% -%\item The command \icmdname{setglossary} must be -%placed in the preamble to have an effect. -% -%\item The \icmdname{storeglosentry} commands must be in -%the document environment to have an effect. (They don't -%seem to work in the preamble, I don't know why.) -% -%\item If you place a \icmdname{glossary} command -%inside an environment not translated by \LaTeX2HTML -%(for example, inside a mathematics environment), -%it will not be entered into the glossary. -% -%\item The combinations \verb'""', \verb!"|!, \verb+"!+ -%and \verb'"@' will be correctly translated, unless they -%occur within a maths environment. This is because -%the maths environment is translated before being -%passed to \icmdname{glossary}. You can overcome this -%by doing, e.g.:\\ -%\cmdname{begin}\verb'{latexonly}'\\ -%\verb'\glossary{name=$"|\mathcal{S}"|$,description=cardinality of set'\\ -%\verb'$\mathcal{S}$,sort=cardinality}'\\ -%\cmdname{end}\verb'{latexonly}'\\ -%\cmdname{begin}\verb'{htmlonly}'\\ -%\verb'\glossary{name=$|\mathcal{S}|$,description=cardinality of set'\\ -%\verb'$\mathcal{S}$,sort=cardinality}'\\ -%\cmdname{end}\verb'{htmlonly}' -% -%Alternative, you can use \cmdname{mid} instead: -%\begin{verbatim} -%\glossary{name=$\mid\mathcal{S}\mid$,description=cardinality of -%set $\mathcal{S}$,sort=cardinality} -%\end{verbatim} -% -%\item Glossary items with the same names but different -%definitions will not be merged. -% -%\item The configuration file \texttt{glossary.cfg} is ignored. -% -%\end{itemize} -% -% -%\section{Troubleshooting} -%\label{sec:trouble} -% -%This is a list of common problems, for a more up-to-date FAQ, see -%\url{http://theoval.cmp.uea.ac.uk/~nlct/packages/faq/}. -% -%\begin{enumerate} -%\item My glossary hasn't appeared. -% -%Check the following: -%\begin{itemize} -%\item Have you included the command \icmdname{makeglossary} -%in the preamble? -% -%\item Have you put the command \icmdname{printglossary} where -%you want the glossary to appear? -% -%\item Have you used \appname{makeglos.pl} or \appname{makeindex}, -%and if you did, did it successfully create the \filetype{gls} -%file? (Check the transcript \filetype{glg} file.) -% -%\begin{itemize} -%\item If you used \appname{makeindex} directly, did you specify -%the \filetype{ist} file created by \icmdname{makeglossary}, -%and did you remember to specify the output file with the extension -%\filetype{gls}? -% -%\item When \appname{makeindex} scans the \filetype{ist} file, -%it should generate the message: -%\begin{verbatim} -%9 attributes redefined, 0 ignored -%\end{verbatim} -%If you have a number other than 0 ignored, then there is something -%wrong with the \filetype{ist} file. Some packages can cause -%problems with the creation of this file, see -%item~\ref{itm:ngerman} below. -%\end{itemize} -% -%\item Have you remembered to \LaTeX\ your document again -%after using \appname{makeglos.pl} or \appname{makeindex}? -% -%\item Have you used \icmdname{glossary} or \icmdname{xglossary}? -% -%\item If you have used \icmdname{storeglosentry}, have you also -%used \icmdname{useglosentry}, \icmdname{useGlosentry} or -%\icmdname{gls}? -%\end{itemize} -% -%If you have defined a new glossary type, have you checked -%all the analogous commands to the above? -% -%\item My list of acronyms hasn't appeared. -% -%Have you used the \pkgopt[true]{acronym} package option? If no, -%check the answers to the previous item, if yes, make sure -%you have used \icmdname{makeacronym} and \icmdname{printacronym}. -%Have you used any of the acronyms you have defined? Remember -%that \cmdname{acrsh}, \cmdname{acrln}, -%\cmdname{}\meta{acr-name}\texttt{short} and -%\cmdname{}\meta{acr-name}\texttt{long} don't generate entries -%in the list of acronyms, where \cmdname{}\meta{acr-name} is the -%name of an acronym command. -% -%\item My acronym has been expanded twice. -% -%By default, if any of your acronym commands occur within a -%group (this includes environments which form implicit grouping) -%the effect will be local to that group. You can either unset -%the acronym outside the group, or use the \pkgopt{global} -%package option. -% -%\item I get an error when using the command -%\icmdname{saveglosentry}. -% -%Don't use this command it's obsolete, use -%\icmdname{storeglosentry} instead. -% -%\item One of more of my glossary entries hasn't appeared. -% -%Check the following -%\begin{itemize} -%\item If you defined the entry using \icmdname{storeglosentry} -%have you used either \icmdname{useglosentry}, -%\icmdname{useGlosentry} or \icmdname{gls}? -% -%\item Have you remembered to \icmdname{protect} commands -%such as \cmdname{mathcal} within \icmdname{storeglosentry}? -% -%\item Have you used the characters \texttt{@} \texttt{!} -%\texttt{\textbar} \verb'"'? If so, have you preceded them -%with a double quote character? -%\end{itemize} -% -%Check the \appname{makeindex} log file to see if there are -%any error messages. -% -%\item My glossary has duplicate entries on separate lines. -% -%\LaTeX\ treats multiple spaces equivalent to a single space, but \appname{makeindex} -%takes spaces into account when determining whether two entries are identical. -%For example: -%\begin{verbatim*} -%\glossary{name=Identity matrix, -%description=diagonal matrix with 1's along the diagonal} -%\end{verbatim*} -%and -%\begin{verbatim*} -%\glossary{name=Identity matrix, -%description=diagonal matrix with 1's along the diagonal} -%\end{verbatim*} -%will be treated as different entries by \appname{makeindex}, -%because the first has only one space -%between `Identity' and `matrix' and the second has two. -%The easiest way to ensure consistency is to use -%\icmdname{storeglosentry} together with \icmdname{useglosentry}, -%\icmdname{useGlosentry} or \icmdname{gls}. -% -%\item I had an error, fixed it, but I keep getting the same error message. -% -%Suppose you've made an error in the \icmdname{glossary} command. For example: -%\begin{verbatim} -%\glossary{name=Java,description=A programming language,format=texbf} -%\end{verbatim} -%In this case \texttt{textbf} has been mis-spelt. This error will be copied to the \filetype{glo} file, -%which in turn will be copied to the \filetype{gls} file by -%\appname{makeindex}. A subsequent run of \LaTeX\ will -%read this error in. If you fix the error in your main document, the error will still be read in from -%the \filetype{gls} file. The best thing to do is to delete the -%\filetype{gls} file, and try again. -% -%\item My glossary has ended up wider than my page. -% -%This may occur if you have long entry names, and you are using -%either the \pkgopt[long]{style} or \pkgopt[super]{style} -%options. The width of the description column is proportional to -%the line width (in fact, it's \verb"0.6\linewidth") -%but the first column is as wide as the widest entry name. You -%can either redefine \icmdname{glossaryalignment} to change the -%column specifications, or use one of the list-type styles. -% -%\item The page numbers in my glossary don't match up with the actual page numbers where the entry -%was defined. -% -%You may need to \LaTeX\ your document again (just as you have to do -%with \cmdname{tableofcontents}, \cmdname{listoffigures} etc). -% -%\item I'm getting a \appname{keyval} error. -% -%The \styname{glossary} package uses the \styname{keyval} -%package to extract the information from \meta{key}=\meta{value} -%comma separated lists. You need to make sure the syntax is correct. -%If your \meta{value} contains a -%comma, you will need to enclose \meta{value} in curly braces. See the \styname{keyval} documentation for -%further information\footnote{This should be in the directory -%\texttt{texmf/doc/latex/graphics/}}. -% -%\item I've used the \pkgopt{hyper} option, but nothing happens -%when I click on the numbers in the glossary. -% -%Check the following: -%\begin{enumerate} -%\item Have you remembered to use PDF\LaTeX\ instead of \LaTeX, -%or used a driver that understands hyperlinks? -%\item Have you remembered to use the \styname{hyperref} or -%\styname{html} package? -%\item Have you remembered to use a formatting command which uses \cmdname{hyperlink}? (E.g.\ using \glsnumfmt{hyperbf} instead -%of \texttt{textbf})? Remember to check the \gloskey{format} key -%in your \icmdname{glossary} commands, and the -%\setglos{glsnumformat} key in the \icmdname{setglossary} -%command. -%\item What application are you using to view the PDF file? -%Ghostview can display a PDF file, but ignores the links. If you are using Windows, try -%using Adobe's Acrobat Reader, or if you are using UNIX or Linux, try using \appname{xpdf} or \appname{acroread}. -%\end{enumerate} -% -%\item The \styname{glossary} package conflicts with the -%\styname{datetime} package. -%\changes{2.01}{21 Oct 2004}{Fixed conflict with datetime package} -% -%This has been fixed in version 2.01. -% -%\item I get an error when using certain commands, such as \cmdname{cite} or \verb"~" in \icmdname{newacronym}. -% -%This has been fixed in version 2.1. -% -%\item I get the following error: -%\begin{verbatim} -%! Package array Error: Illegal pream-token (\glossaryalignment): `c' used. -%\end{verbatim} -% -%The \styname{glossary} package used to conflict with the -%\styname{array} package. This was fixed in version 2.1. -%As from version 2.3, it doesn't matter whether you load -%the \styname{glossary} package before or after the -%\styname{array} package. -% -%\item\label{itm:fragile} I get the following error: -%\begin{verbatim} -%Use of \@chapter doesn't match its definition -%\end{verbatim} -%or -%\begin{verbatim} -%! Argument of \@sect has an extra } -%\end{verbatim} -% -%If you want to use an acronym command in a moving argument (such as a chapter heading) -%you need to \cmdname{protect} it first. Note that if you do put an acronym in a chapter etc -%heading, it will be expanded for the first time in the table of contents, not -%in the chapter heading. The best way to get around this is to use the -%optional argument, e.g. -%\begin{verbatim} -%\chapter[Introduction to Kernel Support Vector Machines]{Introduction -%to \protect\KSVM} -%\end{verbatim} -%You will also need to do this if you are using bookmarks in a PDF document. -% -%Alternatively, you can do: -%\begin{verbatim} -%\resetacronym{KSVM} -%\chapter{Introduction to \protect\KSVM} -%\end{verbatim} -%or if you are using PDFLaTeX: -%\begin{verbatim} -%\resetacronym{KSVM} -%\chapter{Introduction to \texorpdfstring{\protect\KSVM}{KSVM}} -%\end{verbatim} -% -%\item\label{itm:ngerman} The \styname{glossary} package conflicts with -%\styname{ngerman}. -% -%This problem is caused by the fact that \styname{ngerman} -%redefines the effect of the double quote -%character, but this character is used in the creation of the -%\filetype{ist} \appname{makeindex} style file. -%Try one of the following methods: -%\begin{enumerate} -%\item Include the \styname{ngerman} package after the -%\icmdname{makeglossary} command: -%\begin{verbatim} -%\usepackage{glossary} -%\makeglossary -%\usepackage{ngerman} -%\end{verbatim} -% -%\item First omit the \styname{ngerman} package and include -%\icmdname{makeglossary} then \LaTeX\ your document. -%This will create the \filetype{ist} file. Then include the -%\styname{ngerman} package, and insert \icmdname{noist} before -%the \icmdname{makeglossary} command, this will prevent further attempts to generate the \filetype{ist} file. -%\begin{verbatim} -%\usepackage{ngerman} -%\usepackage{glossary} -%\noist\makeglossary -%\end{verbatim} -% -%\item Use \icmdname{noist}, as above, and create the -%\filetype{ist} file -%in an ordinary text editor. The file should contain the -%following lines: -%\begin{verbatim} -%keyword "\\glossaryentry" -%preamble "\\begin{theglossary}" -%postamble "\n\\end{theglossary}\n" -%group_skip "\\gloskip " -%item_0 "\n\\gloitem " -%delim_0 "\n\\glodelim " -%page_compositor "-" -%delim_n "\\delimN " -%delim_r "\\delimR " -%\end{verbatim} -%\end{enumerate} -%It is possible that there may be other packages which will -%also cause a problem, if so, try any of the above. -% -%\item \appname{makeglos.pl} gives the following error message: -%\begin{verbatim} -%unable to extract name from glossary item: -%\end{verbatim} -% -%You are using an old version of \appname{makeglos.pl} with a -%new version of the \styname{glossary} package. You will need -%to update your version \appname{makeglos.pl}. -%\end{enumerate} -%Let me know if you encounter any other problems or if you have any comments regarding this package. -% -%\section{Obsolete Commands} -% -%The commands described in this section are now obsolete, but -%are currently still provided for backwards compatibility. Their -%use is deprecated. -% -%\changes{2.14}{2005 May 28}{'saveglosentry added} -%\DescribeMacro{\saveglosentry} -%\icmdname{saveglosentry}\{\textrm{\meta{name}}\}\{\meta{description}\}\\ -%This command has now been replaced by \cmdname{storeglosentry}. -% -%\changes{2.0}{2004 November 1}{primary acronym number format -%\texttt{'glsprimaryfmt}} -%\changes{2.12}{2004 November 1}{primary acronym number format -%\texttt{'glsprimaryfmt} no longer used} -%\changes{2.4}{2006 July 20}{primary acronym number format -%\texttt{'glsprimaryfmt} has been removed} -%\DescribeMacro{\glsprimaryfmt}% -%The command \cmdname{glsprimaryfmt} has now been removed. -% -%The package option \pkgopt{hyperacronym} is now superseded by the package option -%\pkgopt{hyper}. This option was implemented prior to the -%introduction of the command \icmdname{xglossary}. Since the -%acronyms now use \icmdname{xglossary}, there is no difference -%between the \pkgopt{hyperacronym} and \pkgopt{hyper} options. -%This option has a boolean value: -%\changes{2.13}{2004 December 1}{Package option \texttt{hyperacronym}} -%\begin{description} -%\item[\pkgoptval{true}{hyperacronym}] Make acronyms link to their corresponding entry in the glossary -%\item[\pkgoptval{false}{hyperacronym}] Acronyms don't have a hyperlink. -%\end{description} -%If the \styname{hyperref} package has been loaded prior to -%loading \texttt{glossary.sty} or if \pkgopt[true]{hyper} is set, -%\pkgopt[true]{hyperacronym} otherwise -%\pkgopt[false]{hyperacronym}.% -% -%\section{Contact Details} -%\noindent -%Dr Nicola Talbot\\ -%School of Computing Sciences\\ -%University of East Anglia\\ -%Norwich. Norfolk\\ -%NR4 7TJ. United Kingdom.\\ -%\url{http://theoval.cmp.uea.ac.uk/~nlct/} -% -%\section{Acknowledgements} -% -%I would like to thank all the many people who have made suggestions -%and pointed out bugs. -% -% \StopEventually{\PrintChanges\addcontentsline{toc}{section}{Change History}\PrintIndex\addcontentsline{toc}{section}{Index}} -% -% -% -% -%\section{The Code} -% \begin{macrocode} -%<*glossary.sty> -% \end{macrocode} -% \subsection{Package Definition} -% \begin{macrocode} -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossary}[2006/07/20 2.4 (NLCT)] -% \end{macrocode} -% Load packages needed by glossary.sty: -% \begin{macrocode} -\RequirePackage{ifthen} -\RequirePackage{keyval} -% \end{macrocode} -% The package options are in the form of a comma-separated list of -% \meta{key}=\meta{value} pairs. First need to set up the keys. -% -% The \pkgopt{style} key. This may be one of \pkgoptval{list}{style}, -% \pkgoptval{altlist}{style} (use \envname{description} environment), -% \pkgoptval{super}{style} (use \envname{supertabular} environment) or -% \pkgoptval{long}{style} (use \envname{longtable} environment). -% \begin{macrocode} -\define@key{gloss} -{style} -{\ifthenelse{\equal{#1}{list} \or \equal{#1}{altlist} -\or \equal{#1}{super} \or \equal{#1}{long}} -{\def\gls@style{#1}} -{\PackageError{glossary} -{Unknown glossary style '#1'} -{Available styles are: list, altlist, super and long}}} -% \end{macrocode} -% The \pkgopt{header} key. This can either be \pkgoptval{none}{header} -% or \pkgoptval{plain}{header}. Should only be used in conjunction -% with \pkgopt[style]{super} or \pkgopt[long]{style}. -% \begin{macrocode} -\define@key{gloss} -{header}[plain]{\ifthenelse{\equal{#1}{none} \or \equal{#1}{plain}} -{\def\gls@header{#1}} -{\PackageError{glossary} -{Unknown glossary style '#1'} -{Available styles are: none and plain}}} -% \end{macrocode} -% The \pkgopt{border} key. This can either be \pkgoptval{none}{border} -% or \pkgoptval{plain}{border}. Should only be used in conjunction -% with \pkgopt[super]{style} or \pkgopt[long]{style}. -% \begin{macrocode} -\define@key{gloss} -{border}[plain]{\ifthenelse{\equal{#1}{none} \or \equal{#1}{plain}} -{\def\gls@border{#1}} -{\PackageError{glossary} -{Unknown glossary border '#1'} -{Available styles are: none and plain}}} -% \end{macrocode} -% Number of columns (either \pkgoptval{2}{cols} or -% \pkgoptval{3}{cols}). Should only be used in conjunction with -% \pkgopt[super]{style} or \pkgopt[long]{style}. -% \begin{macrocode} -\newcount\gls@cols -\define@key{gloss}{cols}{\gls@cols=#1\relax -\ifthenelse{\gls@cols<2 \or \gls@cols>3} -{\PackageError{glossary} -{invalid number of columns} -{The cols option can only be 2 or 3}} -{}} -% \end{macrocode} -% The number key may either be \pkgoptval{none}{number} or the name of -% a counter. -% \begin{macrocode} -\define@key{gloss} -{number} -{\ifthenelse{\equal{#1}{none}} -{\def\gls@glossary@number{#1}} -{\@ifundefined{c@#1}{ -\PackageError{glossary} -{Unknown glossary number style '#1'} -{You may either specify "none" or the name of a counter, -e.g. "section"}\def\gls@glossary@number{page}}{\def\gls@glossary@number{#1}}}} -% \end{macrocode} -% The \pkgopt{toc} key. If set, adds the glossary to the table of -% contents -% \begin{macrocode} -\newif\ifgls@toc -\define@key{gloss}{toc}[true]{\ifthenelse{\equal{#1}{true} -\or \equal{#1}{false}} -{\csname gls@toc#1\endcsname} -{\PackageError{glossary}{Glossary option 'toc' is boolean} -{The value of 'toc' can only be set to 'true' or 'false'}}} -% \end{macrocode} -% The \pkgopt{hypertoc} key. Like \pkgopt{toc}, but puts the anchor -% before the section heading. Should only be used if the -% \styname{hyperref} package is used (because it uses -% \icmdname{phantomsection}). -% \begin{macrocode} -\newif\ifgls@hypertoc -\define@key{gloss}{hypertoc}[true]{% -\ifthenelse{\equal{#1}{true} \or \equal{#1}{false}} -{\csname gls@hypertoc#1\endcsname} -{\PackageError{glossary}{Glossary option 'hypertoc' is boolean} -{The value of 'hypertoc' can only be set to 'true' or 'false'}}} -% \end{macrocode} -% The \pkgopt{section} key. This will put the glossary in an unnumbered -% section, even if chapters are defined. -% \begin{macrocode} -\newif\ifgls@section -\define@key{gloss}{section}[true]{% -\ifthenelse{\equal{#1}{true} \or \equal{#1}{false}} -{\csname gls@section#1\endcsname} -{\PackageError{glossary}{Glossary option 'section' is boolean} -{The value of 'section' can only be set to 'true' or 'false'}}} -\gls@sectionfalse -% \end{macrocode} -% Enable hyperlinks. If \styname{hyperref} or \styname{html} -% packages loaded, \pkgopt[true]{hyper} is the default. -% \begin{macrocode} -\newif\ifglshyper -\newif\ifglshyperacronym -\define@key{gloss}{hyper}[true]{% -\ifthenelse{\equal{#1}{true} \or \equal{#1}{false}} -{\csname glshyper#1\endcsname\glshyperacronymtrue} -{\PackageError{glossary}{Glossary option 'hyper' is boolean} -{The value of 'hyper' can only be set to 'true' or 'false'}}} -% \end{macrocode} -% Enable hyperlinks for acronyms. Deprecated: use \pkgopt{hyper} -% instead. -% \begin{macrocode} -\define@key{gloss}{hyperacronym}[true]{% -\ifthenelse{\equal{#1}{true} \or \equal{#1}{false}} -{\csname glshyperacronym#1\endcsname} -{\PackageError{glossary}{Glossary option 'hyperacronym' is boolean} -{The value of 'hyperacronym' can only be set to 'true' or 'false'}}} -% \end{macrocode} -% The \pkgopt{acronym} key. If set, the acronyms will be separate from -% main glossary entries. Remember to use \icmdname{makeacronym} -% and \icmdname{printacronym} if \pkgoptval{true}{acronym}. -% \begin{macrocode} -\newif\ifglsacronym -\define@key{gloss}{acronym}[true]{% -\ifthenelse{\equal{#1}{true} \or \equal{#1}{false}} -{\setboolean{glsacronym}{#1}}{% -\PackageError{glossary}{Glossary option 'acronym' is boolean}{The -value of 'acronym' can only be set to 'true' or 'false'}}} -% \end{macrocode} -% The \pkgopt{global} key. If not set, any acronyms expanded in a -% group will be treated as unused once outside of the group. -% Set \pkgopt[true]{global} to prevent this. -% \begin{macrocode} -\newif\ifglsglobal -\define@key{gloss}{global}[true]{\ifthenelse{\equal{#1}{true}\or -\equal{#1}{false}}{\setboolean{glsglobal}{#1}}{% -\PackageError{glossary}{Glossary option 'global' is boolean}{The -value of 'global' can only be set to 'true' or 'false'}}} -% \end{macrocode} -% Set up defaults -% \begin{macrocode} -\def\gls@style{long} -\def\gls@header{none} -\def\gls@border{none} -\def\gls@glossary@number{page} -\gls@cols=2\relax -\gls@tocfalse -% \end{macrocode} -% If \icmdname{hyperpage} is defined, then assume hyperlinks required -% \begin{macrocode} -\@ifundefined{hyperpage}{\glshyperfalse\glshyperacronymfalse}{% -\glshypertrue\glshyperacronymtrue} -% \end{macrocode} -% If \icmdname{hypertarget} defined, then \icmdname{glosslabel} will make a -% target ("#1") and \icmdname{glossref} will make a hyperlink (to "#1"). -% Otherwise will simply print the second argument. -% \begin{macrocode} -\@ifundefined{hypertarget}{ -% no hyperlinks -\newcommand{\glosslabel}[2]{#2}% -\newcommand{\glossref}[2]{#2}% -}{% -\newcommand{\glosslabel}[2]{\hypertarget{#1}{#2}}% -\newcommand{\glossref}[2]{\hyperlink{#1}{#2}} -} -% \end{macrocode} -% If the \styname{xspace} package has been loaded, use \icmdname{xspace} -% in acronyms. -% \begin{macrocode} -\@ifundefined{xspace}{% -\let\glsxspace\relax}{% -\let\glsxspace\xspace} -% \end{macrocode} -% Set \icmdname{glossaryalignment} to "\relax" before loading -% configuration file. -% \begin{macrocode} -\let\glossaryalignment\relax -% \end{macrocode} -% Load configuation file if it exists -% \begin{macrocode} -\newcommand{\glossarypackageoptions}[1]{\setkeys{gloss}{#1}} -\InputIfFileExists{glossary.cfg}{% -\typeout{Glossary configuration file loaded}}{% -\typeout{No configuration file glossary.cfg found}} -\renewcommand{\glossarypackageoptions}[1]{% -\PackageError{glossary}{Command \string\glossarypackageoptions -^^Jcan only be used in configuration file}{}} -% \end{macrocode} -% Set up the options so that they are treated as a -% \meta{key}=\meta{value} list. -% \begin{macrocode} -\DeclareOption*{\edef\@pkg@ptions{\noexpand -\setkeys{gloss}{\CurrentOption}} -\ifthenelse{\equal{\CurrentOption}{}}{}{\@pkg@ptions}} -% \end{macrocode} -% Process options -% \begin{macrocode} -\ProcessOptions -% \end{macrocode} -%Check to make sure that the options don't conflict. -% \begin{macrocode} -\ifthenelse{\(\equal{\gls@style}{list} \or -\equal{\gls@style}{altlist}\) \and -\(\not\equal{\gls@header}{none} \or \not\equal{\gls@border}{none} -\or \gls@cols=3\)} -{\PackageError{glossary}{You can't have option 'style=list' or -'style=altlist' in combination with any of the other style -options}{The 'list' and 'altlist' options don't have a header, -border or number of columns option.}} -{} -% \end{macrocode} -% Can't have both toc and hypertoc. Make it a warning rather -% than an error. -% \begin{macrocode} -\ifthenelse{\boolean{gls@hypertoc} \and \boolean{gls@toc}}{% -\PackageWarning{glossary}{Can't have both 'toc' and -'hypertoc', ignoring 'toc' option} -\ifgls@hypertoc\gls@tocfalse\fi}{} -% \end{macrocode} -%\subsection{Redefining \texorpdfstring{\texttt{\symbol{92}glossary}}{\textbackslash glossary} format} -% The glossary is going to be redefined so that it accepts -% \meta{key}=\meta{value} information, so need to define the keys (see -% keyval documentation for further details -% on how to do this.) Added "\@onelevel@sanitize" at the recommendation -% of Dan~Luecking and Ulrich~Diez. -% \begin{macrocode} -\define@key{wrgloss}{name}{% -\def\@glo@n@me{#1}% -\@onelevel@sanitize\@glo@n@me% -\global\let\@glo@n@me\@glo@n@me} -\define@key{wrgloss}{description}{% -\def\@descr{#1}% -\@onelevel@sanitize\@descr} -\define@key{wrgloss}{sort}{% -\def\@s@rt{#1}% -\@onelevel@sanitize\@s@rt -\global\let\@s@rt\@s@rt} -\define@key{wrgloss}{format}{\def\@f@rm@t{#1}} -\define@key{wrgloss}{number}{\def\@glo@num{#1}} -% \end{macrocode} -% Redefine "\@wrglossary" so that it separates out the entry name and -% entry description. This was rewritten in version 2.4. It is now -% used for both the main glossary, and user-defined glossaries. -% The command "\@@wrglossary" is called at the end of "\@wrglossary", -% by default this does nothing, but some commands temporarily -% redefine it. -% \begin{macrocode} -\newcommand{\@@wrglossary}{} -% \end{macrocode} -% The label for each entry is usually made up of the glossary prefix -% followed by the sort value, this can be over-ridden by redefining -% \cmdname{@glo@l@bel}. (This is done if the optional argument to -% \icmdname{glossary} is used.) By default this does nothing. -% \begin{macrocode} -\newcommand{\@glo@l@bel}{} -% \end{macrocode} -% Define the prefix for the principle glossary. (Added to version -% 2.4.) -% \begin{macrocode} -\newcommand{\@gls@glossary@type}{glo} -% \end{macrocode} -% The optional first argument was added in version 2.4. This -% is the name of the glossary type. -% \begin{macrocode} -\renewcommand{\@wrglossary}[2][glossary]{\relax -\gdef\@glo@n@me{}\def\@descr{}\def\@s@rt{}\def\@f@rm@t{}% -\edef\@glo@num{\csname gls@#1@number\endcsname}\relax -\xdef\@pr@fix{\csname @gls@#1@type\endcsname}% - \setkeys{wrgloss}{#2}\relax -\ifthenelse{\equal{\@glo@num}{none}}{\def\@@glo@num{\thepage}}{% -\@ifundefined{c@\@glo@num}{\PackageError{glossary}{% -Not such counter '\@glo@num'}{The value of the 'number' key -must be the name of a counter or the word "none"}% -\def\@@glo@num{\thepage}}{% -\edef\@@glo@num{\csname the\@glo@num\endcsname}}}% -\ifthenelse{\equal{\@s@rt}{}}{\gdef\@s@rt{\@glo@n@me}}{}% -\ifthenelse{\equal{\@glo@l@bel}{}}{% -\gdef\@glo@l@bel{\@pr@fix:\@s@rt}}{}% -% \end{macrocode} -% User has not specified a format, so use default -% \begin{macrocode} -\ifthenelse{\equal{\@f@rm@t}{}} -{\expandafter\protected@write\csname @#1file\endcsname{}% -{\string\glossaryentry{\@s@rt @{% -\string\glosslabel{\@glo@l@bel}{\@glo@n@me}}\@descr -\string\relax|glsnumformat}{\@@glo@num}}} -% \end{macrocode} -% User has specified a format. If it is one of the -% "\hyper"\meta{xx} types, append the required counter. -% This is needed if the glossary contains a mixture of -% counters used (as in "sampleEqPg.tex"). -% \begin{macrocode} -{\ifthenelse{\equal{\@f@rm@t}{hyperrm} \or -\equal{\@f@rm@t}{hypersf} \or \equal{\@f@rm@t}{hypertt} -\or \equal{\@f@rm@t}{hypermd} \or \equal{\@f@rm@t}{hyperbf} -\or \equal{\@f@rm@t}{hyperit} \or \equal{\@f@rm@t}{hyperem} -\or \equal{\@f@rm@t}{hypersl} \or \equal{\@f@rm@t}{hyperup} -\or \equal{\@f@rm@t}{hypersc}} -{\expandafter\protected@write\csname @#1file\endcsname{}% - {\string\glossaryentry{\@s@rt @{% - \string\glosslabel{\@glo@l@bel}{\@glo@n@me}}\@descr - \string\relax|\@f@rm@t[\@glo@num]}{\@@glo@num}}} -{\expandafter\protected@write\csname @#1file\endcsname{}% - {\string\glossaryentry{\@s@rt @{% - \string\glosslabel{\@glo@l@bel}{\@glo@n@me}}\@descr - \string\relax|\@f@rm@t}{\@@glo@num}}}}\relax - \endgroup\@esphack -\@@wrglossary -} -% \end{macrocode} -% Command to extract name key from glossary entry. This shouldn't -% be sanitized, so define a new key for this -% \begin{macrocode} -\define@key{wrnsgloss}{name}{\def\@glo@n@me{#1}} -\define@key{wrnsgloss}{description}{\def\@descr{#1}} -\define@key{wrnsgloss}{sort}{\def\@s@rt{#1}} -\define@key{wrnsgloss}{format}{\def\@f@rm@t{#1}} -\define@key{wrnsgloss}{number}{\def\@glo@num{#1}} -% \end{macrocode} -% Extract name from key-value list. Name stored in "\@glo@n@me". -% \begin{macrocode} -\newcommand{\@gls@getn@me}[1]{% -\def\@glo@n@me{}\setkeys{wrnsgloss}{#1}% -} -% \end{macrocode} -% Command to extract description key from glossary entry. -% \begin{macrocode} -\newcommand{\@gls@getdescr}[1]{% -\@bsphack\begingroup -\def\@descr{}% -\setkeys{wrgloss}{#1}% -\global\let\@glo@desc\@descr -\endgroup\@esphack -} -% \end{macrocode} -% Now define \icmdname{xglossary} so you can have a hyperlink that takes -% you to the entry in the glossary -% \begin{macrocode} -\newcommand{\xglossary}{\renewcommand{\@@wrglossary}[1]{% -\glossref{\@glo@l@bel}{##1}\renewcommand{\@@wrglossary}{}}% -\glossary} -% \end{macrocode} -%\subsection{Storing Glossary Entries} -% Provide a means to store glossary information to save typing -% and ensure consistency (new to v2.17). -% -% Store label in list (new to version 2.36) so that all -% entries can be added to the glossary with a single command. -% \begin{macrocode} -\newcommand*{\@glo@label@list}{} -\toksdef\gls@ta=0 \toksdef\gls@tb=2 -\newcommand{\@glo@label@addtolist}[1]{% -\gls@ta={{#1}}\gls@tb=\expandafter{\@glo@label@list}% -\xdef\@glo@label@list{\the\gls@ta,\the\gls@tb}} -% \end{macrocode} -% First define command to store details (don't allow a label -% consisting solely of a "*" as this represents all entries -% when passed to \icmdname{useglosentry}.) -% \begin{macrocode} -\newcommand*{\storeglosentry}[3][glossary]{% -\ifthenelse{\equal{#2}{*}}{% -\PackageError{glossary}{Glossary label '*' invalid}{You can't have -a glossary entry with a * as the label}}{% -\@ifundefined{glo@#2@entry}{% -\@glo@label@addtolist{#2}% -\expandafter\def\csname glo@#2@type\endcsname{#1}% -\expandafter\def\csname glo@#2@entry\endcsname{#3}% -\@gls@getn@me{#3}% -\expandafter\protected@edef\csname glo@#2@name\endcsname{\@glo@n@me}% -}{% -\PackageError{glossary}{Glossary entry '#2' already -defined}{There already exists a glossary entry with the label '#2'}}}% -} -% \end{macrocode} -% This command will not produce text in the document, but will -% produce the relevant glossary entry. -% \begin{macrocode} -\providecommand{\useglosentry}[2][\relax]{% -\ifthenelse{\equal{#2}{*}}{\@for\@glolab:=\@glo@label@list\do{% -\ifthenelse{\equal{\@glolab}{}}{}{\useglosentry[#1]{\@glolab}}}}{% -\@ifundefined{glo@#2@type}{% -\PackageError{glossary}{Glossary entry '#2' undefined}{You need -to define the entry using \string\storeglosentry\space before -using it.}}{{% -\edef\@glostype{\csname glo@#2@type\endcsname}% -\@glo@tb=\expandafter\expandafter\expandafter -{\csname glo@#2@entry\endcsname}% -\ifx#1\relax -\edef\@glo@cmd{\expandafter\noexpand -\csname\@glostype\endcsname{\the\@glo@tb}}% -\else -\edef\@glo@cmd{\expandafter\noexpand -\csname\@glostype\endcsname{\the\@glo@tb,#1}}% -\fi -\@glo@cmd -}}}} -% \end{macrocode} -% This command will produce the specified text in the document -% (with a hyperlink if enabled), and will produce the relevant -% glossary entry. -% \begin{macrocode} -\providecommand{\useGlosentry}[3][\relax]{% -\@ifundefined{glo@#2@type}{% -\PackageError{glossary}{Glossary entry '#2' undefined}{You need -to define the entry using \string\storeglosentry\space before -using it.}}{{% -\edef\@glostype{x\csname glo@#2@type\endcsname}% -\@glo@tb=\expandafter\expandafter\expandafter -{\csname glo@#2@entry\endcsname}% -\ifx#1\relax -\edef\@glo@cmd{\expandafter\noexpand -\csname\@glostype\endcsname{\the\@glo@tb}}% -\else -\edef\@glo@cmd{\expandafter\noexpand -\csname\@glostype\endcsname{\the\@glo@tb,#1}}% -\fi -\@glo@cmd{#3}% -}}} -% \end{macrocode} -% As above, but the text displayed in the document is constructed from -% the \gloskey{name} key. -% \begin{macrocode} -\newcommand{\gls}[2][\relax]{% -\useGlosentry[#1]{#2}{% -\csname glo@#2@name\endcsname}} -% \end{macrocode} -% This command was defined in earlier verions, but doesn't -% work very well, currently retained for backwards compatibility, -% but may well be removed at a later date. -% \begin{macrocode} -\providecommand{\saveglosentry}[3][glossary]{% -\PackageWarning{glossary}{\string\saveglosentry\space is obsolete, -please use \string\storeglosentry\space instead}% -\expandafter\def\csname glo@#2@type\endcsname{#1}% -\expandafter\def\csname glo@#2@entry\endcsname{% -name={#2},description={#3}}} -% \end{macrocode} -%Set up default number formats, dependent on the package \pkgopt{number} -% option. Define default page compositor. Any redefinition of the -% page compositor will need to come before the ".ist" file is -% written. The other commands can be redefined at any point before -% \icmdname{printglossary}. -% -% Define a command to set up the glossary counter. -% The optional argument specifies the glossary type -% (defaults to the main glossary). The mandatory -% command is the name of the counter, or "none". -% \begin{macrocode} -\newcommand*{\@gls@setnumbering}[2][glossary]{% -% \end{macrocode} -% If no numbering (\pkgopt[none]{number}): -% \begin{macrocode} -\ifthenelse{\equal{#2}{none}}{% -\def\pagecompositor{-} -\expandafter\def\csname @#1@delimN\endcsname{} -\expandafter\def\csname @#1@delimR\endcsname{} -\expandafter\def\csname glsX#1Xnumformat\endcsname##1{}}{% -% \end{macrocode} -% If "number=page", set the page compositor to -% "-" (dash) otherwise set it to "." (dot). -% \begin{macrocode} -\ifthenelse{\equal{#2}{page}}{% -\def\pagecompositor{-}}{% -\def\pagecompositor{.}} -% \end{macrocode} -% Set up delimiters and formats -% \begin{macrocode} -\expandafter\def\csname @#1@delimN\endcsname{, } -\expandafter\def\csname @#1@delimR\endcsname{--} -\ifglshyper -\expandafter\def\csname glsX#1Xnumformat\endcsname##1{% -\hyperrm[#2]{##1}}% -\else -\expandafter\def\csname glsX#1Xnumformat\endcsname##1{##1}\fi -} -% \end{macrocode} -% End of "\@gls@setnumbering" definition: -% \begin{macrocode} -} -% \end{macrocode} -% Now call it to set up current numbering: -% \begin{macrocode} -\@gls@setnumbering{\gls@glossary@number} -% \end{macrocode} -% Provide a means of changing the page number format for a -% given glossary type. -% \begin{macrocode} -\newcommand{\glsnumformat}[1]{% -\@ifundefined{\@glostype}{\def\@glostype{glossary}}{}% -\@ifundefined{glsX\@glostype Xnumformat}{% -\PackageError{glossary}{Glossary type '\@glostype' undefined}{}}{% -\csname glsX\@glostype Xnumformat\endcsname{#1}}} -% \end{macrocode} -% Set the default glossary type -% \begin{macrocode} -\def\@glostype{glossary} -% \end{macrocode} -% Make the delimiters etc depend on the glossary type. -% "\@glostype" should be set to the appropriate glossary type -% before using any of these commands. -% \begin{macrocode} -\newcommand{\delimN}{\csname @\@glostype @delimN\endcsname} -\newcommand{\delimR}{\csname @\@glostype @delimR\endcsname} -\newcommand{\gloitem}{\csname @\@glostype @gloitem\endcsname} -\newcommand{\gloskip}{\csname @\@glostype @gloskip\endcsname} -\newcommand{\delimT}{\glsafternum -\csname @\@glostype @delimT\endcsname} -\newcommand{\glodelim}{\csname @\@glostype @glodelim\endcsname -\glsbeforenum} -% \end{macrocode} -% Add facility to insert text between groups. By default these do -% nothing. -% \begin{macrocode} -\newcommand{\glogroupSymbols}{} -\newcommand{\glogroupNumbers}{} -\newcommand{\glogroupA}{} -\newcommand{\glogroupB}{} -\newcommand{\glogroupC}{} -\newcommand{\glogroupD}{} -\newcommand{\glogroupE}{} -\newcommand{\glogroupF}{} -\newcommand{\glogroupG}{} -\newcommand{\glogroupH}{} -\newcommand{\glogroupI}{} -\newcommand{\glogroupJ}{} -\newcommand{\glogroupK}{} -\newcommand{\glogroupL}{} -\newcommand{\glogroupM}{} -\newcommand{\glogroupN}{} -\newcommand{\glogroupO}{} -\newcommand{\glogroupP}{} -\newcommand{\glogroupQ}{} -\newcommand{\glogroupR}{} -\newcommand{\glogroupS}{} -\newcommand{\glogroupT}{} -\newcommand{\glogroupU}{} -\newcommand{\glogroupV}{} -\newcommand{\glogroupW}{} -\newcommand{\glogroupX}{} -\newcommand{\glogroupY}{} -\newcommand{\glogroupZ}{} -% \end{macrocode} -% Allow user to change number format for different -% glossary types. -% \begin{macrocode} -\define@key{glossnum}{glsnumformat}{\def\@glsnumformat{#1}} -\define@key{glossnum}{type}{\def\@glsnumtype{#1}} -\define@key{glossnum}{delimN}{\def\@delimN{#1}} -\define@key{glossnum}{delimR}{\def\@delimR{#1}} -\define@key{glossnum}{delimT}{\def\@delimT{#1}} -\define@key{glossnum}{gloskip}{\def\@gloskip{#1}} -\define@key{glossnum}{glodelim}{\def\@glodelim{#1}} -% \end{macrocode} -% Define a command that will ignore its argument. This is used -% when suppressing the page numbers. -% \begin{macrocode} -\providecommand{\ignore}[1]{} -% \end{macrocode} -% Define command that allows the user to modify the style for a -% given glossary type. -% \begin{macrocode} -\newcommand{\setglossary}[1]{% -\def\@glsnumformat{}% -\def\@glsnumtype{glossary}% -\def\@delimN{@dontchange@}% -\def\@delimR{@dontchange@}% -\def\@delimT{@dontchange@}% -\def\@gloskip{@dontchange@}% -\def\@glodelim{@dontchange@}% -\setkeys{glossnum}{#1}\relax -\@ifundefined{print\@glsnumtype}{% -\PackageError{glossary}{Invalid glossary type '\@glsnumtype'}{% -Glossary type '\@glsnumtype' has not been defined} -}{% -\ifthenelse{\equal{\@glsnumformat}{}}{}{% -\expandafter\xdef\csname glsX\@glsnumtype Xnumformat\endcsname{% -\noexpand\csname\@glsnumformat\noexpand\endcsname}% -\ifthenelse{\equal{\@glsnumformat}{ignore}}{% -\expandafter\xdef\csname @\@glsnumtype @delimN\endcsname{}% -\expandafter\xdef\csname @\@glsnumtype @delimR\endcsname{}% -}{}% -}% -% -\ifthenelse{\equal{\@delimN}{@dontchange@}}{}{% -\expandafter\xdef\csname @\@glsnumtype @delimN\endcsname{% -\@delimN}}% -% -\ifthenelse{\equal{\@delimR}{@dontchange@}}{}{% -\expandafter\xdef\csname @\@glsnumtype @delimR\endcsname{% -\@delimR}}% -% -\ifthenelse{\equal{\@delimT}{@dontchange@}}{}{% -\expandafter\xdef\csname @\@glsnumtype @delimT\endcsname{% -\@delimT}}% -% -\ifthenelse{\equal{\@gloskip}{@dontchange@}}{}{% -\expandafter\xdef\csname @\@glsnumtype @gloskip\endcsname{% -\@gloskip}}% -% -\ifthenelse{\equal{\@glodelim}{@dontchange@}}{}{% -\expandafter\xdef\csname @\@glsnumtype @glodelim\endcsname{% -\@glodelim}% -}% -}} -% \end{macrocode} -% Now define the command \icmdname{printglossary} which will print the -% contents of the glossary file. Define the file extension for the main -% glossary: -% \begin{macrocode} -\newcommand{\@gls@glossary@inext}{gls} -% \end{macrocode} -% The optional argument is the glossary type, the default is the -% main glossary. This sets "\gls@number" to "\gls@#1@number" -% before reading in the file. This ensures that \icmdname{hyperrm} etc -% use the correct counter in the target name. -% \begin{macrocode} -\newcommand\printglossary[1][glossary]{% -\def\@glostype{#1}% -\@ifundefined{#1name}{% -\renewcommand{\@glossaryname}{\glossaryname}}{% -\renewcommand{\@glossaryname}{\csname #1name\endcsname}}% -\@ifundefined{short#1name}{% -\renewcommand{\@shortglossaryname}{\@glossaryname}}{% -\renewcommand{\@shortglossaryname}{\csname short#1name\endcsname}}% -\expandafter\let\expandafter\gls@number\csname gls@#1@number\endcsname -\@input@{\jobname.\csname @gls@#1@inext\endcsname}} -% \end{macrocode} -% Define contextual names. Changed \verb/\newcommand/ -% to \verb/\providecommand/ in version 2.2. -% \begin{macrocode} -\providecommand{\glossaryname}{Glossary} -\newcommand{\shortglossaryname}{\glossaryname} -\newcommand{\entryname}{Notation} -\newcommand{\descriptionname}{Description} -\newcommand{\istfilename}{\jobname.ist} -\def\@glossaryname{\glossaryname} -\def\@shortglossaryname{\shortglossaryname} -% \end{macrocode} -% Version 2.4 also writes ist filename to aux file. This -% is only used by makeglos.pl, so ignore. -% \begin{macrocode} -\newcommand{\@istfilename}[1]{} -% \end{macrocode} -% Define command to generate glossary title (new to -% version 2.24) -% \begin{macrocode} -\providecommand{\glossarytitle}{% -\@ifundefined{chapter}% -% \end{macrocode} -% "\chapter" not defined, use "\section*" -% \begin{macrocode} -{% -\ifgls@hypertoc -% \end{macrocode} -% \pkgopt{hypertoc} option used, so use "\phantomsection" to add -% anchor \emph{before} "\section*" -% \begin{macrocode} -\phantomsection -\@glosaddtoc{section}% -\section*{\@glossaryname}\relax -\else -% \end{macrocode} -% \pkgopt[false]{hypertoc}: add to toc after "\section*" -% \begin{macrocode} -\section*{\@glossaryname}\relax -% \end{macrocode} -% only add contentsline if toc=true -% \begin{macrocode} -\ifgls@toc\@glosaddtoc{section}\fi -\fi}% -% \end{macrocode} -% "\chapter" defined, but has user requested "\section" instead? -% \begin{macrocode} -{% -\ifthenelse{\boolean{gls@section}}% -{% -% \end{macrocode} -% user requested "\section" -% \begin{macrocode} -\ifgls@hypertoc -% \end{macrocode} -% User request \pkgopt[true]{hypertoc}, so add anchor \emph{before} -% "\section": -% \begin{macrocode} -\phantomsection -\@glosaddtoc{section}% -\section*{\@glossaryname}\relax -\else -% \end{macrocode} -% \pkgopt[false]{hypertoc} so add contentsline (if applicable) after -% "\section" -% \begin{macrocode} -\section*{\@glossaryname}\relax -\ifgls@toc\@glosaddtoc{section}\fi -\fi}% -{% -% \end{macrocode} -% User has not requested "\section", so use "\chapter" -% \begin{macrocode} -\ifgls@hypertoc -% \end{macrocode} -% User has requested \pkgopt[true]{hypertoc}. -% Chapters usually start a new page, so to ensure -% anchor is at the top of the correct page, issue -% a "\clearpage" (or "\cleardoublepage") to place the -% anchor at the correct place. -% \begin{macrocode} -\@ifundefined{if@twoside}{% -% \end{macrocode} -% Document class doesn't support twosided documents so -% just do "\clearpage" -% \begin{macrocode} -\clearpage}{% -\if@twoside -% \end{macrocode} -% Document is two-sided -% If "\cleardoublepage" is defined, use that -% otherwise just do "\clearpage" -% \begin{macrocode} -\@ifundefined{cleardoublepage}{\clearpage}{\cleardoublepage}% -\else -% \end{macrocode} -% One-sided document, just do "\clearpage" -% \begin{macrocode} -\clearpage -\fi}% -% \end{macrocode} -% add anchor before "\chapter" -% \begin{macrocode} -\phantomsection -\@glosaddtoc{chapter}% -\fi -\chapter*{\@glossaryname}\relax -% \end{macrocode} -% both \pkgopt[true]{hypertoc} and \pkgopt[true]{toc}, so won't get -% toc entry twice.) -% \begin{macrocode} -\ifgls@toc\@glosaddtoc{chapter}\fi}} -\markboth{\@shortglossaryname}{\@shortglossaryname}% -} -% \end{macrocode} -% Now define theglossary environment. Version 2.2: -% check to see if defined already -% \begin{macrocode} -\@ifundefined{theglossary}{% -\newenvironment{theglossary}{}{}}{% -\PackageWarning{glossary}{Redefining 'theglossary' environment}} -\renewenvironment{theglossary}{% -\glossarytitle -\glossarypreamble\@bef@reglos}{\@ftergl@s\glossarypostamble} -% \end{macrocode} -% Provide a means to add text to the beginning or end -% of the glossary. -% \begin{macrocode} -\newcommand{\glossarypreamble}{} -\newcommand{\glossarypostamble}{} -% \end{macrocode} -% By default, add the short title to the table of contents. -% \begin{macrocode} -\newcommand{\@glosaddtoc}[1]{% -\addcontentsline{toc}{#1}{\@shortglossaryname} -} -% \end{macrocode} -% Set up switch to determine whether the item is the first item in -% the glossary (in the event that a special case is needed for the -% first item) -% \begin{macrocode} -\newif\ifgloitemfirst -\newcommand{\@bef@reglos}{\global\gloitemfirsttrue\beforeglossary} -\newcommand{\@ftergl@s}{\afterglossary\global\gloitemfirstfalse} -% \end{macrocode} -% Set up defaults. -% \begin{macrocode} -\newcommand{\glossaryalignment}{\relax} -\newcommand{\@gls@align@glossary}{} -\newcommand{\glosstail}{% -\@ifundefined{@gls@tail@\@glostype}{% -\PackageError{glossary}{No glossary tail defined for glossary -type '\@glostype'}{}}{% -\csname @gls@tail@\@glostype\endcsname}} -\newcommand{\@gls@tail@glossary}{} -\newcommand{\afterglossary}{% -\@ifundefined{@gls@afterglos@\@glostype}{% -\PackageError{glossary}{No after glossary defined for glossary -type '\@glostype'}{}}{% -\csname @gls@afterglos@\@glostype\endcsname}} -\newcommand{\beforeglossary}{% -\@ifundefined{@gls@beforeglos@\@glostype}{% -\PackageError{glossary}{No before glossary defined for glossary -type '\@glostype'}{}}{% -\csname @gls@beforeglos@\@glostype\endcsname}} -\newcommand{\@gls@beforeglos@glossary}{} -\newcommand{\@gls@afterglos@glossary}{} -\newcommand{\@glossary@glodelim}{} -\newcommand{\@glossary@delimT}{} -\newcommand{\glsafternum}{} -\newcommand{\glsbeforenum}{} -\newcommand{\@glossary@gloskip}{} -\newcommand{\@glossary@gloitem}[1]{#1} -% \end{macrocode} -% Now define what to do depending on which style has been selected. -% First define command to switch to \pkgopt{list} style: -% \begin{macrocode} -\newcommand{\gls@setlist}[1][glossary]{% -\expandafter\def\csname @gls@beforeglos@#1\endcsname{% -\begin{description}}% -\expandafter\def\csname @gls@afterglos@#1\endcsname{% -\end{description}}% -\expandafter\def\csname @#1@gloskip\endcsname{\indexspace}% -\ifthenelse{\equal{\csname gls@#1@number\endcsname}{none}}{% -\expandafter\def\csname @#1@glodelim\endcsname{}}{% -\expandafter\def\csname @#1@glodelim\endcsname{, }}% -\expandafter\def\csname @#1@gloitem\endcsname##1{\item[##1]}% -\expandafter\def\csname @#1@delimT\endcsname{} -} -% \end{macrocode} -% Next define command to switch to \pkgopt{altlist} style: -% \begin{macrocode} -\newcommand{\gls@setaltlist}[1][glossary]{% -\expandafter\def\csname @gls@beforeglos@#1\endcsname{% -\begin{description}}% -\expandafter\def\csname @gls@afterglos@#1\endcsname{% -\end{description}}% -\expandafter\def\csname @#1@gloskip\endcsname{\indexspace}% -\expandafter\def\csname @#1@gloitem\endcsname##1{% -\item[##1]\mbox{}\nopagebreak\par\nopagebreak}% -\expandafter\def\csname @#1@glodelim\endcsname{ }% -\expandafter\def\csname @#1@delimT\endcsname{} -} -% \end{macrocode} -%Now deal with the other styles. I orginally used a \envname{tabular} -% environment, but obviously this doesn't work for a glossary longer -% than one page (this package started out as a simple example -% accompanying one of my tutorials). Nick van Foreest recommended -% the \envname{supertabular} environment. The \envname{longtable} environment also -% works, so have both options, and leave it to -% the user. -% \begin{macrocode} -\ifthenelse{\equal{\gls@style}{super}}{ -\IfFileExists{supertab.sty}{\RequirePackage{supertab}} -{\IfFileExists{supertabular.sty}{\RequirePackage{supertabular}} -{\PackageError{glossary}{Option "super" chosen, but can't find -"supertab" package}{If you want the "super" option, you have to have -the "supertab" package installed.}}}} -{\RequirePackage{longtable}} -% \end{macrocode} -% Define new length specifying the width of the description field. -% \begin{macrocode} -\newlength{\descriptionwidth} -\setlength{\descriptionwidth}{0.6\linewidth} -% \end{macrocode} -% If user has defined the command \icmdname{glossaryheader}, use it -% otherwise use header as specified by glossary style. -% Added \icmdname{glossarysubheader} in version 2.4. This is provided -% to add a sub heading, or to add a bit of space between -% the header row and the table. -% \begin{macrocode} -\newcommand{\@glossaryheader}{% -\@ifundefined{glossaryheader}{\csname @\@glostype @header\endcsname} -{\glossaryheader}% -\@ifundefined{glossarysubheader}{}{\glossarysubheader}% -} -% \end{macrocode} -% Define command to set header style. Added \icmdname{glspageheader} in -% version 2.4. (Third column header) -% \begin{macrocode} -\newcommand{\gls@setheader}[1][glossary]{% -\ifthenelse{\equal{\gls@header}{none}}% -{% -\ifthenelse{\equal{\gls@border}{none}} -{\expandafter\def\csname @#1@header\endcsname{}% -}{\expandafter\def\csname @#1@header\endcsname{\hline}}% -}{% -\ifnum\gls@cols=2\relax -\ifthenelse{\equal{\gls@border}{none}} -{% -\expandafter\def\csname @#1@header\endcsname{% -\bfseries\entryname & \bfseries \descriptionname\\}}% -{% -\expandafter\def\csname @#1@header\endcsname{% -\hline\bfseries\entryname & \bfseries\descriptionname -\\\hline\hline}}% -\else -\ifthenelse{\equal{\gls@border}{none}} -{% -\expandafter\def\csname @#1@header\endcsname{% -\bfseries\entryname & \bfseries \descriptionname & -\bfseries \glspageheader \\}}% -{% -\expandafter\def\csname @#1@header\endcsname{% -\hline\bfseries\entryname &\bfseries\descriptionname & -\bfseries \glspageheader \\\hline\hline}}% -\fi -}} -% \end{macrocode} -% Define \icmdname{glspageheader} to do nothing, to keep it compatible -% with earlier versions: -% \begin{macrocode} -\newcommand*{\glspageheader}{} -% \end{macrocode} -% Define command to set glossary alignment and borders -% \begin{macrocode} -\newcommand{\gls@setalignment}[1][glossary]{% -\ifthenelse{\equal{\gls@border}{none}} -{ -\ifnum\gls@cols=2\relax -\expandafter\def\csname @gls@align@#1\endcsname{% -@{\hspace{\tabcolsep}\bfseries}lp{\descriptionwidth}} -\else -\expandafter\def\csname @gls@align@#1\endcsname{% -@{\hspace{\tabcolsep}\bfseries}lp{\descriptionwidth}l} -\fi -% -\expandafter\def\csname @gls@tail@#1\endcsname{}% -}{% -\ifnum\gls@cols=2\relax -\expandafter\def\csname @gls@align@#1\endcsname{% -|@{\hspace{\tabcolsep}\bfseries -}lp{\descriptionwidth}|} -\else -\expandafter\def\csname @gls@align@#1\endcsname{% -|@{\hspace{\tabcolsep}\bfseries -}lp{\descriptionwidth}l|} -\fi -% -\expandafter\def\csname @gls@tail@#1\endcsname{\hline}% -}% -% -\expandafter\def\csname @#1@delimT\endcsname{\\} -% -\ifnum\gls@cols=2\relax -\expandafter\def\csname @#1@gloskip\endcsname{& \\}% -\ifthenelse{\equal{\csname gls@#1@number\endcsname}{none}}{% -\expandafter\def\csname @#1@glodelim\endcsname{}}{% -\expandafter\def\csname @#1@glodelim\endcsname{, }}% -\else -\expandafter\def\csname @#1@gloskip\endcsname{& & \\}% -\expandafter\def\csname @#1@glodelim\endcsname{& }% -\fi -\expandafter\def\csname @#1@gloitem\endcsname##1{##1 &}% -} -% \end{macrocode} -% Need a way to avoid conflict with the \styname{array} package. In an -% earlier version I defined a new column type if the \styname{array} -% package was being used, however this restricts the ability -% to have multiple glossaries with different column alignments. -% \begin{macrocode} -\newcommand{\@st@rtglostable}[2]{% -\gls@ta={\begin{#1}}\gls@tb=\expandafter{#2}% -\edef\@st@rtglost@ble{\the\gls@ta{\the\gls@tb}} -\@st@rtglost@ble} -% \end{macrocode} -% Define command to switch to \pkgopt{super} style: -% \begin{macrocode} -\newcommand{\gls@setsuper}[1][glossary]{% -\gls@setalignment[#1]% -\gls@setheader[#1]% -% -\expandafter\def\csname @gls@beforeglos@#1\endcsname{% -\tablehead{\@glossaryheader}\tabletail{\glosstail}% -\if\glossaryalignment\relax -\expandafter\let\expandafter\@glossaryalignment -\csname @gls@align@#1\endcsname -\else -\let\@glossaryalignment\glossaryalignment -\fi -\@st@rtglostable{supertabular}\@glossaryalignment} -% -\expandafter\def\csname @gls@afterglos@#1\endcsname{% -\end{supertabular}}% -} -% \end{macrocode} -% Define command to switch to \pkgopt{long} style: -% \begin{macrocode} -\newcommand{\gls@setlong}[1][glossary]{% -\gls@setalignment[#1]% -\gls@setheader[#1]% -% -\expandafter\def\csname @gls@beforeglos@#1\endcsname{% -\if\relax\glossaryalignment -\expandafter\let\expandafter\@glossaryalignment -\csname @gls@align@#1\endcsname -\else -\let\@glossaryalignment\glossaryalignment -\fi -\@st@rtglostable{longtable}{\@glossaryalignment} -\@glossaryheader\endhead\glosstail\endfoot} -% -\expandafter\def\csname @gls@afterglos@#1\endcsname{% -\end{longtable}}% -} -% \end{macrocode} -% Define command to set the glossary style. -% \begin{macrocode} -\newcommand{\@setglossarystyle}[1][glossary]{% -\@ifundefined{gls@set\gls@style}{% -\PackageError{glossary}{Glossary style '\gls@style' undefined}{}}{% -\ifthenelse{\equal{\gls@number}{}}{}{% -\expandafter\edef\csname gls@#1@number\endcsname{\gls@number}% -\@gls@setnumbering[#1]{\gls@number}% -}% -\csname gls@set\gls@style\endcsname[#1]}} -% \end{macrocode} -% Set main glossary style as per package options -% \begin{macrocode} -\let\gls@number\gls@glossary@number -\@setglossarystyle -% \end{macrocode} -% Define keys to change glossary style. The \pkgopt{style} key sets -% the basic style. -% \begin{macrocode} -\define@key{glosstyle} -{style} -{\ifthenelse{\equal{#1}{list} \or \equal{#1}{altlist} -\or \equal{#1}{super} \or \equal{#1}{long}} -{\def\gls@style{#1}} -{\PackageError{glossary} -{Unknown glossary style '#1'} -{Available styles are: list, altlist, super and long}}} -% \end{macrocode} -% The \pkgopt{header} key should only be used in conjunction with -% one of the tabular-type styles. If set to \pkgoptval{plain}{header}, a -% header row will be used. -% \begin{macrocode} -\define@key{glosstyle} -{header}[plain]{\ifthenelse{\equal{#1}{none} \or \equal{#1}{plain}} -{\def\gls@header{#1}} -{\PackageError{glossary} -{Unknown glossary style '#1'} -{Available styles are: none and plain}}} -% \end{macrocode} -% The \pkgopt{border} key should only be used in conjunction with one -% of the tabular-type styles. If set to \pkgoptval{plain}{border}, a border will -% be placed around the glossary. -% \begin{macrocode} -\define@key{glosstyle} -{border}[plain]{\ifthenelse{\equal{#1}{none} \or \equal{#1}{plain}} -{\def\gls@border{#1}} -{\PackageError{glossary} -{Unknown glossary border '#1'} -{Available styles are: none and plain}}} -% \end{macrocode} -% The \pkgopt{cols} key should only be used in conjunction with one of -% the tabular-type styles. If set to \pkgoptval{2}{cols}, the description and page -% list will both be placed in the second column, if set to \pkgoptval{3}{cols}, -% the description will go in the second column, and the page list -% will go in the third column. -% \begin{macrocode} -\define@key{glosstyle}{cols}{\gls@cols=#1\relax -\ifthenelse{\gls@cols<2 \or \gls@cols>3} -{\PackageError{glossary} -{invalid number of columns} -{The cols option can only be 2 or 3}} -{}} -% \end{macrocode} -% The \pkgopt{number} key may either be \pkgoptval{none}{number} or the name of a counter. -% \begin{macrocode} -\define@key{glosstyle} -{number} -{\ifthenelse{\equal{#1}{none}} -{\def\gls@number{#1}} -{\@ifundefined{c@#1}{ -\PackageError{glossary} -{Unknown glossary number style '#1'} -{You may either specify "none" or the name of a counter, -e.g. "section"}\def\gls@number{page}}{\def\gls@number{#1}}}} -% \end{macrocode} -% Provide a means of setting the style for a given glossary type. -% \begin{macrocode} -\newcommand{\setglossarystyle}[2][glossary]{% -\def\gls@number{}% -\setkeys{glosstyle}{#2}% -\@setglossarystyle[#1]% -} -% \end{macrocode} -% Set the delimiter for the case where there is no numbering -% and there aren't 3 columns. -% \begin{macrocode} -\ifthenelse{\equal{\gls@glossary@number}{none} \and \gls@cols<3}{% -\renewcommand{\@glossary@glodelim}{}}{} -% \end{macrocode} -% \subsection{Makeindex style file} -%This is the code to generate the ".ist" file. -% First define a switch that governs whether or not to write the -% ist file. -% \begin{macrocode} -\newif\ifist -\let\noist=\istfalse -\if@filesw\isttrue\else\istfalse\fi -% \end{macrocode} -% Provide a command to write the ist file. This will cause -% a problem with \styname{ngerman} because the behaviour -% of the double quote character changes. Any packages that modify -% this character should be loaded after the ".ist" file is written. -% \begin{macrocode} -\newwrite\istfile -\catcode`\%11\relax -\newcommand{\writeist}{ -\protected@write\@auxout{}{\protect\@istfilename{\istfilename}} -\openout\istfile=\istfilename -\write\istfile{% makeindex style file created by LaTeX for document "\jobname" on \the\year-\the\month-\the\day} -\write\istfile{keyword "\string\\glossaryentry"} -\write\istfile{preamble "\string\\begin{theglossary}"} -\write\istfile{postamble "\string\n\string\\end{theglossary}\string\n"} -\write\istfile{group_skip "\string\\gloskip "} -\write\istfile{item_0 "\string\n\string\n\string\\gloitem "} -\write\istfile{delim_0 "\string\n\string\\glodelim "} -\write\istfile{page_compositor "\pagecompositor"} -\write\istfile{delim_n "\string\\delimN "} -\write\istfile{delim_r "\string\\delimR "} -\write\istfile{delim_t "\string\\delimT "} -\write\istfile{headings_flag 1} -\write\istfile{heading_prefix "\string\\glogroup"} -\write\istfile{symhead_positive "Symbols"} -\write\istfile{numhead_positive "Numbers"} -\closeout\istfile -} -\catcode`\%14\relax -% \end{macrocode} -%Redefine \icmdname{makeglossary} so that it creates the ".ist" file. -% Once it is created, the \icmdname{ifist} flag is set to false to prevent -% repeated creation of the file in the event that another -% glossary-style type is created. If a different ".ist" file is -% desired for each glossary type, you will need to precede each -% "\make"\meta{type} with \icmdname{isttrue} and changed the definition -% of \icmdname{istfilename}. (This is unlikely to occur unless more than -% one type of page compositor is required.) If you do this, remember -% to pass the correct ist file to makeindex. I have removed -% "\@sanitize" at the -% recommendation of Ulrich~Diez. -% \begin{macrocode} -\renewcommand{\makeglossary}{ -\newwrite\@glossaryfile -\immediate\openout\@glossaryfile=\jobname.glo -\renewcommand{\glossary}[1][]{\gdef\@glo@l@bel{##1}% -\@bsphack \begingroup \@wrglossary } -\typeout {Writing glossary file \jobname .glo } -\let \makeglossary \@empty -\ifist\writeist\fi -\noist} -% \end{macrocode} -% The \icmdname{glossary} command has been modified to allow for an optional -% argument to modify the label. This is the default definition of -% \icmdname{glossary}, it doesn't write anything to the ".glo" file. -% It doesn't use "\setkeys", so "\@sanitize" is used here. -% Use \icmdname{makeglossary} to redefine it so that entries are written -% to the ".glo" file. -% \begin{macrocode} -\renewcommand{\glossary}[1][]{% -\@bsphack\begingroup\@sanitize\@index} -% \end{macrocode} -%\subsection{Defining a new glossary type} -% First parameter (optional) is the extension of the log file -% (information used by "makeglos.pl" but not \LaTeX). -% Second parameter is the name of new glossary type -% e.g.\ "notation". Third parameter is the extension of output -% file (equivalent to "ind" or "glo". Fourth parameter -% is the extension of input file (equivalent to "idx" or "gls"). -% The fifth parameter (optional) is the format. -% \begin{macrocode} -\newcommand{\newglossarytype}[4][glg]{ -\@ifundefined{#2}{% -\protected@write\@auxout{}{\@newglossarytype[#1]{#2}{#3}{#4}}% -\def\@glstype{#2}\def\@glsout{#3}\def\@glsin{#4}% -\expandafter\edef\csname gls@\@glstype @number\endcsname{% -\gls@glossary@number}% -\expandafter\gdef\csname glsX\@glstype Xnumformat\endcsname{% -\glsXglossaryXnumformat}% -\expandafter\gdef\csname @\@glstype @delimN\endcsname{% -\@glossary@delimN}% -\expandafter\gdef\csname @\@glstype @delimR\endcsname{% -\@glossary@delimR}% -\expandafter\gdef\csname @gls@\@glstype @inext\endcsname{#4}% -\expandafter\def\csname @gls@#2@type\endcsname{#4}% -\expandafter\edef\csname make\@glstype\endcsname{% -\noexpand\@m@kegl@ss{\@glstype}{\@glsout}} -\expandafter\edef\csname \@glstype\endcsname{% -\noexpand\@gl@ss@ary{\@glstype}} -\expandafter\edef\csname x\@glstype\endcsname{% -\noexpand\@Gl@ss@ary{\@glstype}} -\@namedef{print\@glstype}{% -\printglossary[#2]}% -}{\PackageError{glossary}{Command -\expandafter\string\csname #2\endcsname \space already defined}{% -You can't call your new glossary type '#2' because there already -exists a command with this name}}% -\@@n@wglostype} -\newcommand{\@@n@wglostype}[1][]{% -\setglossarystyle[\@glstype]{#1}} -% \end{macrocode} -% The command "\@newglossarytype" is written to the auxiliary file -% and is only used by makeglos.pl. \LaTeX\ should ignore it. -% \begin{macrocode} -\newcommand{\@newglossarytype}[4][glg]{} -% \end{macrocode} -% Define equivalent of \icmdname{makeglossary}: -% \begin{macrocode} -\newcommand\@m@kegl@ss[2]{% -\expandafter\newwrite\csname @#1file\endcsname -\expandafter\immediate\expandafter -\openout\csname @#1file\endcsname=\jobname.#2 -\typeout {Writing #1 file \jobname .#2 } -\expandafter\let \csname make#1\endcsname \@empty -\ifist\writeist\fi -\expandafter\def\csname the#1num\endcsname{\thepage} -\noist -} -% \end{macrocode} -% Define the equivalent of \icmdname{glossary}. -% \begin{macrocode} -\newcommand\@gl@ss@ary[2][]{\@ifundefined{@#2file}{% -\@bsphack\begingroup\@sanitize \@index}{% -\gdef\@glo@l@bel{#1}% -\@bsphack \begingroup \@wrglossary[#2]}} -% \end{macrocode} -% Define the equivalent of \icmdname{xglossary}. -% \begin{macrocode} -\newcommand{\@Gl@ss@ary}{% -\renewcommand{\@@wrglossary}[1]{% -\glossref{\@glo@l@bel}{##1}\renewcommand{\@@wrglossary}{}}% -\@gl@ss@ary} -% \end{macrocode} -% The command \icmdname{newglossarytype} should only be used in the preamble. -% \begin{macrocode} -\@onlypreamble{\newglossarytype} -% \end{macrocode} -%\subsection{Acronyms} -% Define \icmdname{newacronym}[\meta{cmd-name}]\{\meta{abbrv}\}\{\meta{long name}\}\{\meta{glos entry}\} -% \begin{macrocode} -\newcommand\@acrnmsh{} -\newcommand\@sacrnmsh{} -\newcommand\@acrnmln{} -\newcommand\@acrnmcmd{} -\newcommand\@acrnmgls{} -\newcommand\@acrnmins{} -% \end{macrocode} -% List of all defined acronyms. -% \begin{macrocode} -\toksdef\@glo@tb=2 -\newcommand{\@acr@list}{} -% \end{macrocode} -% append acronym to list -% \begin{macrocode} -\newcommand{\@acr@addtolist}[1]{\edef\@glo@ta{#1}% -\ifthenelse{\equal{\@acr@list}{}}{% -\edef\@acr@list{\@glo@ta}}{% -\@glo@tb=\expandafter{\@acr@list}% -\edef\@acr@list{\the\@glo@tb,\@glo@ta}}} -% \end{macrocode} -% Specify how to control the way the name key is -% set for acronyms. -% \begin{macrocode} -\newcommand{\@acronymnamefmt}{\glolong\ (\gloshort)} -\newcommand{\setacronymnamefmt}[1]{\def\@acronymnamefmt{#1}} -% \end{macrocode} -% Specify how to control the way the description key is -% set for acronyms. -% \begin{macrocode} -\newcommand{\@acronymdescfmt}{\glodesc} -\newcommand{\setacronymdescfmt}[1]{\def\@acronymdescfmt{#1}} -% \end{macrocode} -% Format the acronym abbreviation in the format specified -% by \verb'\acronymfont'. This simply prints its -% argument by default. -% \begin{macrocode} -\newcommand{\acronymfont}[1]{#1} -% \end{macrocode} -% This command has been restructured as from v2.17 -% \begin{macrocode} -\newcommand{\newacronym}[4][]{% -\ifthenelse{\equal{#1}{}}{\renewcommand\@acrnmcmd{#2}}{% -\renewcommand\@acrnmcmd{#1}} -\@ifundefined{\@acrnmcmd}{% -\expandafter\newcommand\csname\@acrnmcmd short\endcsname{% -#2\protect\glsxspace} -\expandafter\newcommand\csname\@acrnmcmd @nx@short\endcsname{#2} -\expandafter\newcommand\csname\@acrnmcmd long\endcsname{% -#3\protect\glsxspace} -\expandafter\newcommand\csname\@acrnmcmd @nx@long\endcsname{#3} -\def\@acrn@entry{#4}% -{% -% extract description -\expandafter\@gls@getdescr\expandafter{\@acrn@entry}% -\let\glodesc\@glo@desc% -\def\glolong{#3}% -\@onelevel@sanitize\glolong -\def\gloshort{\noexpand\acronymfont{#2}}% -\@onelevel@sanitize\gloshort -\expandafter\protected@xdef\expandafter\@acrnamefmt{\@acronymnamefmt} -\expandafter\protected@xdef\expandafter\@acrdesc{\@acronymdescfmt} -}% -\@acr@addtolist{\@acrnmcmd} -\@glo@tb=\expandafter{\@acrn@entry}% -\protected@edef\@acr@glsentry{name={\@acrnamefmt},% -format=glsnumformat,sort={\@acrnmcmd},\the\@glo@tb,% -description={\@acrdesc}}% -\@glo@tb=\expandafter{\@acr@glsentry}% -\newboolean{\@acrnmcmd first}\setboolean{\@acrnmcmd first}{true} -\expandafter\protected@edef\csname \@acrnmcmd\endcsname{% -\noexpand\@ifstar{\csname @s@\@acrnmcmd\endcsname}{% -\csname @\@acrnmcmd\endcsname}} -\ifglshyperacronym % hyperlinks -% unstarred version -\expandafter\protected@edef\csname @\@acrnmcmd\endcsname{% -\noexpand\ifthenelse{\noexpand\boolean{\@acrnmcmd first}}{% -\csname\@acrnmcmd @nx@long\endcsname\noexpand\@acrnmins\ -(\noexpand\xacronym{\the\@glo@tb}{% -\noexpand\acronymfont{\csname\@acrnmcmd @nx@short\endcsname}% -})\noexpand\unsetacronym{\@acrnmcmd}% -}{\noexpand\xacronym{\the\@glo@tb}{% -\noexpand\acronymfont{\csname\@acrnmcmd @nx@short\endcsname}% -\noexpand\@acrnmins}}\noexpand\glsxspace} -% starred version -\expandafter\protected@edef\csname @s@\@acrnmcmd\endcsname{% -\noexpand\ifthenelse{\noexpand\boolean{\@acrnmcmd first}}{% -\noexpand\expandafter\noexpand\MakeUppercase -\csname\@acrnmcmd @nx@long\endcsname\noexpand\@acrnmins\ -(\noexpand\xacronym{\the\@glo@tb}{% -\noexpand\acronymfont{\csname\@acrnmcmd @nx@short\endcsname}% -})% -\noexpand\unsetacronym{\@acrnmcmd}}{% -\noexpand\xacronym{\the\@glo@tb}{% -\noexpand\acronymfont{\noexpand\expandafter\noexpand\MakeUppercase -\csname\@acrnmcmd @nx@short\endcsname}% -\noexpand\@acrnmins}}\noexpand\glsxspace} -\else % no hyperlinks -% unstarred version -\expandafter\protected@edef\csname @\@acrnmcmd\endcsname{% -\noexpand\ifthenelse{\noexpand\boolean{\@acrnmcmd first}}{% -\csname\@acrnmcmd @nx@long\endcsname\noexpand\@acrnmins\ -(\noexpand\acronym{\the\@glo@tb}{% -\noexpand\acronymfont{\csname\@acrnmcmd @nx@short\endcsname}% -})\noexpand\unsetacronym{\@acrnmcmd}% -}{\noexpand\acronym{\the\@glo@tb}{% -\noexpand\acronymfont{\csname\@acrnmcmd @nx@short\endcsname}% -\noexpand\@acrnmins}}% -\noexpand\glsxspace} -% starred version -\expandafter\protected@edef\csname @s@\@acrnmcmd\endcsname{% -\noexpand\ifthenelse{\noexpand\boolean{\@acrnmcmd first}}{% -\noexpand\expandafter -\noexpand\MakeUppercase -\csname\@acrnmcmd @nx@long\endcsname\noexpand\@acrnmins\ -(\noexpand\acronym{\the\@glo@tb}{% -\noexpand\acronymfont{\csname\@acrnmcmd @nx@short\endcsname}% -})% -\noexpand\unsetacronym{\@acrnmcmd}}{% -\noexpand\acronym{\the\@glo@tb}{% -\noexpand\acronymfont{\noexpand\expandafter\noexpand\MakeUppercase -\csname\@acrnmcmd @nx@short\endcsname}% -\noexpand\@acrnmins}}\noexpand\glsxspace} -\fi -}{% -\PackageError{glossary}{Command '\expandafter\string -\csname\@acrnmcmd\endcsname' already defined}{% -The command name specified by \string\newacronym already exists.}}} -% \end{macrocode} -% Define a command to use a given acronym. -% \begin{macrocode} -\newcommand{\useacronym}{\@ifstar\@suseacronym\@useacronym} -\newcommand{\@suseacronym}[2][]{{\let\glsxspace\relax -\def\@acrnmins{#1}\csname @s@#2\endcsname}% -\setboolean{#2first}{false}} -\newcommand{\@useacronym}[2][]{{\let\glsxspace\relax -\def\@acrnmins{#1}\csname @#2\endcsname}% -\setboolean{#2first}{false}} -% \end{macrocode} -% Define a command to use the long form of an acronym without -% generating a glossary entry. The starred form makes the first -% character uppercase. -% \begin{macrocode} -\newcommand{\acrln}{\@ifstar\@sacrln\@acrln} -% \end{macrocode} -% Unstarred form: -% \begin{macrocode} -\newcommand{\@acrln}[1]{\@ifundefined{#1long}{% -\PackageError{glossary}{Acronym '#1' has not been defined}{}}{% -\csname#1@nx@long\endcsname}} -% \end{macrocode} -% Starred form: -% \begin{macrocode} -\newcommand{\@sacrln}[1]{\@ifundefined{#1long}{% -\PackageError{glossary}{Acronym '#1' has not been defined}{}}{% -\expandafter\expandafter\expandafter -\MakeUppercase\csname#1@nx@long\endcsname}} -% \end{macrocode} -% As above, but for the short form. -% \begin{macrocode} -\newcommand{\acrsh}{\@ifstar\@sacrsh\@acrsh} -% \end{macrocode} -% Unstarred form: -% \begin{macrocode} -\newcommand{\@acrsh}[1]{\@ifundefined{#1short}{% -\PackageError{glossary}{Acronym '#1' has not been defined}{}}{% -\acronymfont{\csname#1@nx@short\endcsname}}} -% \end{macrocode} -% Starred form: -% \begin{macrocode} -\newcommand{\@sacrsh}[1]{\@ifundefined{#1short}{% -\PackageError{glossary}{Acronym '#1' has not been defined}{}}{% -\acronymfont{\expandafter\expandafter\expandafter -\MakeUppercase\csname#1@nx@short\endcsname}}} -% \end{macrocode} -% Define a means of determining whether an acronym has been -% used or not. This was mainly included for use with LaTeX2HTML -% which currently has no \styname{ifthen} style. -% \begin{macrocode} -\newcommand{\ifacronymfirstuse}[3]{% -\@ifundefined{if#1first}{% -\PackageError{glossary}{Acronym '#1' not defined}{}}{% -\ifthenelse{\boolean{#1first}}{#2}{#3}}} -% \end{macrocode} -% Provide a means of resetting an acronym so that it is expanded -% next time it is used. -% \begin{macrocode} -\newcommand{\resetacronym}[1]{% -\@ifundefined{if#1first}{% -\PackageError{glossary}{Acronym '#1' not defined}{}}{% -\ifglsglobal -\expandafter\global\csname #1firsttrue\endcsname -\else -\setboolean{#1first}{true}% -\fi}} -% \end{macrocode} -% Reverse of the above. -% \begin{macrocode} -\newcommand{\unsetacronym}[1]{% -\@ifundefined{if#1first}{% -\PackageError{glossary}{Acronym '#1' not defined}{}}{% -\ifglsglobal -\expandafter\global\csname #1firstfalse\endcsname -\else -\setboolean{#1first}{false}% -\fi}} -% \end{macrocode} -% Reset all acronyms so that they will all be expanded when next -% used. -% \begin{macrocode} -\newcommand{\resetallacronyms}{% -\@for\@acr:=\@acr@list\do{\resetacronym{\@acr}}} -% \end{macrocode} -% Ensure that all acronyms are not expanded, even if they haven't -% yet been used. -% \begin{macrocode} -\newcommand{\unsetallacronyms}{% -\@for\@acr:=\@acr@list\do{\unsetacronym{\@acr}}} -% \end{macrocode} -% Check to see if acronyms should be separate from glossary -% \begin{macrocode} -\ifglsacronym -\newglossarytype[alg]{acronym}{acr}{acn} -\providecommand{\acronymname}{List of Acronyms} -\else -\let\acronym=\glossary -\let\xacronym=\xglossary -\fi -% \end{macrocode} -%\subsection{Glossary Hyperlinks} -% This section deals with commands that are used to make the -% numbers in the glossary have hyperlinks, if hyperlinks are -% supported. -% -% The command \icmdname{glshyper} is a modification of \styname{hyperref}'s -% \icmdname{hyperpage} command, but it uses \icmdname{delimR} instead of a dash, and -% \icmdname{delimN} instead of a comma. The command was originally called -% \icmdname{glshyperpage} but was modified in version 2.4 to -% enable "page" to be substituted with some arbitrary counter -% (which should be specified as the first argument). -% \begin{macrocode} -\ifglshyper -\def\glshyper#1#2{\@glshyper{#1}#2\delimR \delimR \\} -\def\@glshyper#1#2\delimR #3\delimR #4\\{% -\ifx\\#3\\% -\@delimNhyper{#1}{#2}% -\else -\@ifundefined{hyperlink}{#2\delimR #3}{% -\hyperlink{#1.#2}{#2}\delimR \hyperlink{#1.#3}{#3}}% -\fi -} -% \end{macrocode} -% For a list of individual pages instead of a range: -% \begin{macrocode} -\def\@delimNhyper#1#2{\@@delimNhyper{#1}#2\delimN \delimN\\} -\def\@@delimNhyper#1#2\delimN #3\delimN #4\\{% - \ifx\\#3\\% - \@ifundefined{hyperlink}{#2}{\hyperlink{#1.#2}{#2}}% - \else - \@ifundefined{hyperlink}{#2\delimN #3}{% -\hyperlink{#1.#2}{#2}\delimN \hyperlink{#1.#3}{#3}}% - \fi -} -% \end{macrocode} -% To maintain backwards compatibility, define \icmdname{glshyperpage} -% and \icmdname{glshypersection}. These commands may be removed at a -% later date, so don't use them. -% \begin{macrocode} -\newcommand\glshyperpage[1]{\glshyper{page}{#1}} -\newcommand\glshypersection[1]{\glshyper{section}{#1}} -% \end{macrocode} -% If chapters are defined, modify "\@chapter" so that is adds -% a "section."\meta{n}".0" target (otherwise it gets too complicated -% if you have to work out whether to use the chapter or section -% counter---there's more than enough conditional code in this -% package already!) -% \begin{macrocode} -\@ifundefined{chapter} -{} -{\let\@gls@old@chapter\@chapter -\def\@chapter[#1]#2{\@gls@old@chapter[{#1}]{#2}% -\@ifundefined{hyperdef}{}{\hyperdef{section}{\thesection}{}}}} -% \end{macrocode} -% Provide "\hyper"\meta{xx} to make it easier to change the page -% number format to "bf", "sf", "tt" and "it" if you are using -% hyperlinks. -% The optional first argument (new to version 2.4) specifies -% the counter being used. -% \begin{macrocode} -\providecommand\hyperrm[2][\gls@number]{% -\textrm{\glshyper{#1}{#2}}} -\providecommand\hypersf[2][\gls@number]{% -\textsf{\glshyper{#1}{#2}}} -\providecommand\hypertt[2][\gls@number]{% -\texttt{\glshyper{#1}{#2}}} -\providecommand\hyperbf[2][\gls@number]{% -\textbf{\glshyper{#1}{#2}}} -\providecommand\hyperit[2][\gls@number]{% -\textit{\glshyper{#1}{#2}}} -% \end{macrocode} -% The following were added in version 2.4: -% \begin{macrocode} -\providecommand\hyperem[2][\gls@number]{% -\emph{\glshyper{#1}{#2}}} -\providecommand\hyperup[2][\gls@number]{% -\textup{\glshyper{#1}{#2}}} -\providecommand\hypersl[2][\gls@number]{% -\textsl{\glshyper{#1}{#2}}} -\providecommand\hypersc[2][\gls@number]{% -\textsc{\glshyper{#1}{#2}}} -\providecommand\hypermd[2][\gls@number]{% -\textmd{\glshyper{#1}{#2}}} -% \end{macrocode} -% Hyperlinks not enabled. -% \begin{macrocode} -\else -\providecommand\hyperrm[2][]{\textrm{#2}} -\providecommand\hypersf[2][]{\textsf{#2}} -\providecommand\hypertt[2][]{\texttt{#2}} -\providecommand\hypermd[2][]{\textmd{#2}} -\providecommand\hyperbf[2][]{\textbf{#2}} -\providecommand\hyperit[2][]{\textit{#2}} -\providecommand\hypersl[2][]{\textsl{#2}} -\providecommand\hyperup[2][]{\textup{#2}} -\providecommand\hypersc[2][]{\textsc{#2}} -\providecommand\hyperem[2][]{\emph{#2}} -\fi -% \end{macrocode} -%\iffalse -%\subsection{Additional Files} -% The remainder of this document simply lists the contents -% of all the additional files that accompany the \styname{glossary} -% package. There is no further documentation. Some lines may not -% fit on the page. If you like, you can comment out this section -% using "\iffalse" and "\fi". -% \begin{macrocode} -%</glossary.sty> -% \end{macrocode} -% \begin{macrocode} -%<*makeglos.pl> -% \end{macrocode} -% \begin{macrocode} -#!/usr/bin/perl - -# File : makeglos -# Author : Nicola Talbot -# Version : 1.5 (2006/07/20) -# Description: simple Perl script that calls makeindex. -# Intended for use with "glossary.sty" (saves having to remember -# all the various switches) - -use Getopt::Std; - -if ($#ARGV < 0) -{ - die "Syntax : $0 [-ilqrcgm] [-s sty] [-o gls] [-t log] [-p num] <filename>\n"; -} - -getopt('sotp'); -getopts('ilqrcgm'); - -# define known extensions - - %exttype = ( - glossary => {in=>'glo', out=>'gls', 'log'=>'glg'}, - ); - -$ext = ''; - -if (length(@ARGV[0]) < 4) -{ - $name = @ARGV[0]; -} -elsif (substr(@ARGV[0],-4,1) eq ".") -{ - $name = substr(@ARGV[0],0,length(@ARGV[0])-4); - - $ext = substr(@ARGV[0],-3,3); -} -else -{ - $name = @ARGV[0]; -} - -$istfile = "$name.ist"; - -# check log file for other glossary types -# and for ist file name - -if (open AUXFILE, "$name.aux") -{ - while (<AUXFILE>) - { - if (m/\\\@newglossarytype\s*\[(.*)\]{(.*)}{(.*)}{(.*)}/) - { - $exttype{$2}{'in'} = $3; - $exttype{$2}{'out'} = $4; - $exttype{$2}{'log'} = $1; - - if (!$opt_q) - { - print "added glossary type '$2' ($3,$4,$1)\n"; - } - } - - if (m/\\\@istfilename\s*{([^}]*)}/) - { - $istfile = $1; - } - } - - close AUXFILE; -} -else -{ - print "unable to open $name.aux\n"; -} - -# save all the general makeindex switches - -$mkidxopts = ''; - -if ($opt_i) -{ - $mkidxopts .= " -i"; -} - -if ($opt_l) -{ - $mkidxopts .= " -l"; -} - -if ($opt_q) -{ - $mkidxopts .= " -q"; -} - -if ($opt_r) -{ - $mkidxopts .= " -r"; -} - -if ($opt_c) -{ - $mkidxopts .= " -c"; -} - -if ($opt_g) -{ - $mkidxopts .= " -g"; -} - -unless ($opt_p eq "") -{ - $mkidxopts .= " -p $opt_p"; -} - -unless ($opt_s eq "") -{ - $istfile = $opt_s; -} - -if ($ext ne '') -{ - %thistype = %{$exttype{'glossary'}}; #default - - foreach $type (keys %exttype) - { - if ($exttype{$type}{'in'} eq $ext) - { - %thistype = %{$exttype{$type}}; - - last; - } - } - - if ($opt_o eq "") - { - $outfile = "$name.$thistype{out}"; - } - else - { - $outfile = $opt_o; - } - - if ($opt_t eq "") - { - $transcript = "$name.$thistype{'log'}"; - } - else - { - $transcript = $opt_t; - } - - &makeindex("$name.$ext",$outfile,$transcript,$istfile, - $mkidxopts,$opt_q,$opt_m); -} -else -{ - foreach $type (keys %exttype) - { - %thistype = %{$exttype{$type}}; - - $inputfile = "$name.$thistype{in}"; - - if (-r $inputfile) - { - if ($opt_o eq "") - { - $outfile = "$name.$thistype{out}"; - } - else - { - $outfile = $opt_o; - } - - if ($opt_t eq "") - { - $transcript = "$name.$thistype{'log'}"; - } - else - { - $transcript = $opt_t; - } - - &makeindex($inputfile,$outfile,$transcript, - $istfile,$mkidxopts,$opt_q,$opt_m); - } - elsif (!$opt_q) - { - print "no read access for '$inputfile'\n"; - } - } -} - -sub makeindex{ - local($in,$out,$trans,$ist,$rest,$quiet,$merge) = @_; - local($name,$cmdstr,$buffer,$n,$i,$j); - local(@stuff,@item); - - if ($merge) - { - $cmdstr = "$rest -s $ist -t $trans -o tmp_$out $in"; - } - else - { - $cmdstr = "$rest -s $ist -t $trans -o $out $in"; - } - - unless ($quiet) - { - print "makeindex $cmdstr\n"; - } - - `makeindex $cmdstr`; - - if ($merge) - { - print "Merging entries\n"; - - open INPUT, "<tmp_$out"; - - $buffer = ""; - - while (<INPUT>) - { - $buffer .= $_; - } - - close INPUT; - - open OUTPUT, ">$out"; - - @stuff = split /\\gloitem /, $buffer; - - $n = scalar(@stuff); - - if ($n < 2) - { - print OUTPUT $buffer; - } - else - { - print OUTPUT $stuff[0]; - - for ($i = 1, $j=-1; $i < $n; $i++) - { - if ($stuff[$i]=~s/{\\glosslabel{(.+)}{(.+)}}//) - { - $name = $&; - - if ($j==-1) - { - $j = 0; - $item[0]{'name'} = $name; - $item[0]{'desc'} = $stuff[$i]; - } - else - { - # makeindex has already sorted the entries - # alphabetically, so duplicate entries - # will be one after the other - - if ($item[$j]{'name'} eq $name) - { - $item[$j]{'desc'} .= $stuff[$i]; - - print "collating $name\n"; - } - else - { - $j++; - $item[$j]{'name'} = $name; - $item[$j]{'desc'} = $stuff[$i]; - } - } - } - else - { - print STDERR - "unable to extract name from glossary item:\n", - $stuff[$i]; - } - } - - for ($i=0; $i <= $j; $i++) - { - # remove all but the last \delimT - while ($item[$i]{'desc'}=~s/\\delimT/$&/sg > 1) - { - $item[$i]{'desc'}=~s/\\delimT//s; - } - print OUTPUT "\\gloitem ", $item[$i]{'name'}, - $item[$i]{'desc'}; - } - } - - close OUTPUT; - - print "Output written in $out\n"; - - unlink "tmp_$out" or print "Can't delete tmp_$out: $!\n"; - } -} - -1; -% \end{macrocode} -% \begin{macrocode} -%</makeglos.pl> -% \end{macrocode} -% \begin{macrocode} -%<*makeglos.bat> -% \end{macrocode} -% \begin{macrocode} -@rem = '-*- Perl -*-
-@echo off
-perl -S %~dp0makeglos.pl %*
-% \end{macrocode} -% \begin{macrocode} -%</makeglos.bat> -% \end{macrocode} -% \begin{macrocode} -%<*glossary.perl> -% \end{macrocode} -% \begin{macrocode} -# File : glossary.perl -# Author : Nicola Talbot -# Date : 5 December 2005 -# Version : 1.03 -# Description : LaTeX2HTML implementation of glossary package. - -package main; - -# These are the only package options implemented. - -sub do_glossary_style_altlist{ -} - -sub do_glossary_style_hyper{ -} - -sub do_glossary_style_hyper_true{ -} - -sub do_glossary_style_hyperacronym{ -} - -sub do_glossary_style_hyperacronym_true{ -} - -sub do_glossary_toc{ -} - -sub do_glossary_toc_true{ -} - -$acronymtype = 'glossary'; - -sub do_glossary_acronym{ - &do_glossary_acronym_true -} - -sub do_glossary_acronym_true{ - $gls_mark{'acronym'} = "<tex2html_acronym_mark>"; - $gls_file_mark{'acronym'} = "<tex2html_acronym_file_mark>"; - $gls_title{'acronym'} = "\\acronymname"; - $delimN{'acronym'} = ", "; - $glodelim{'acronym'} = " "; - $glsnumformat{'acronym'} = "textrm"; - $acronymtype = 'acronym'; -} - -sub do_glossary_acronym_false{ - $acronymtype = 'glossary'; -} - -sub do_cmd_acronymname{ - join('', 'List of Acronyms', $_[0]); -} - -# modify set_depth_levels so that glossary is added - -$gls_mark{'glossary'} = "<tex2html_gls_mark>"; -$gls_file_mark{'glossary'} = "<tex2html_gls_file_mark>"; -$gls_title{'glossary'} = "Glossary"; -$delimN{'glossary'} = ", "; -$glodelim{'glossary'} = " "; -$glsnumformat{'glossary'} = "textrm"; - -sub replace_glossary_markers{ - foreach $type (keys %gls_mark) - { - if (defined &add_gls_hook) - {&add_gls_hook if (/$gls_mark{$type}/);} - else - {&add_gls($type) if (/$gls_mark{$type}/);} - - s/$gls_file_mark{$type}/$glsfile{$type}/g; - } -} - -# there must be a better way of doing this -# other than copying the orginal code and adding to it. -sub replace_general_markers { - if (defined &replace_infopage_hook) {&replace_infopage_hook if (/$info_page_mark/);} - else { &replace_infopage if (/$info_page_mark/); } - if (defined &add_idx_hook) {&add_idx_hook if (/$idx_mark/);} - else {&add_idx if (/$idx_mark/);} - &replace_glossary_markers; - - if ($segment_figure_captions) { -s/$lof_mark/$segment_figure_captions/o - } else { s/$lof_mark/$figure_captions/o } - if ($segment_table_captions) { -s/$lot_mark/$segment_table_captions/o - } else { s/$lot_mark/$table_captions/o } - &replace_morelinks(); - if (defined &replace_citations_hook) {&replace_citations_hook if /$bbl_mark/;} - else {&replace_bbl_marks if /$bbl_mark/;} - if (defined &add_toc_hook) {&add_toc_hook if (/$toc_mark/);} - else {&add_toc if (/$toc_mark/);} - if (defined &add_childs_hook) {&add_childs_hook if (/$childlinks_on_mark/);} - else {&add_childlinks if (/$childlinks_on_mark/);} - &remove_child_marks; - - if (defined &replace_cross_references_hook) {&replace_cross_references_hook;} - else {&replace_cross_ref_marks if /$cross_ref_mark||$cross_ref_visible_mark/;} - if (defined &replace_external_references_hook) {&replace_external_references_hook;} - else {&replace_external_ref_marks if /$external_ref_mark/;} - if (defined &replace_cite_references_hook) {&replace_cite_references_hook;} - else { &replace_cite_marks if /$cite_mark/; } - if (defined &replace_user_references) { - &replace_user_references if /$user_ref_mark/; } - -} - -sub add_gls{ - local($sidx_style, $eidx_style) =('<STRONG>','</STRONG>'); - if ($INDEX_STYLES) { -if ($INDEX_STYLES =~/,/) { -local(@styles) = split(/\s*,\s*/,$INDEX_STYLES); - $sidx_style = join('','<', join('><',@styles) ,'>'); - $eidx_style = join('','</', join('></',reverse(@styles)) ,'>'); -} else { - $sidx_style = join('','<', $INDEX_STYLES,'>'); - $eidx_style = join('','</', $INDEX_STYLES,'>'); -} - } - &add_real_gls -} - -sub gloskeysort{ - local($x, $y) = ($a, $b); - $x=~s/^(.*)###(\d+)$/\l\1/; - local($x_id) = $2; - $y=~s/^(.*)###(\d+)$/\l\1/; - local($y_id) = $2; - - local($n) = ($x cmp $y); - - if ($n == 0) - { - $n = ($x_id <=> $y_id); - } - - $n; -} - -sub add_real_gls{ - local($type) = @_; - print "\nDoing the $type ..."; - local($key, $str, @keys, $glossary, $level, $count, - @previous, @current, $id, $linktext, $delimN); - - @keys = keys %{$glossary{$type}}; - - @keys = sort gloskeysort @keys; - - $level = 0; - - $delimN = $delimN{$type}; - - foreach $key (@keys) { - $current = $key; -$str = $current; -$str =~ s/\#\#\#\d+$//o; # Remove the unique id's - #$linktext = $cross_ref_visible_mark; - $id = ++$global{'max_id'}; - $linktext = "\\$glossary_format{$type}{$key}${OP}$id${CP}$glossary_linktext{$type}{$key}${OP}$id${CP}"; - $linktext = &translate_commands($linktext); -$glossary .= - # If it's the same string don't start a new line - (&index_key_eq($current, $previous) ? - $delimN - . $glossary{$type}{$key} - . $linktext - . "</A>\n" - : "<DT>" - . $glossary_name{$type}{$key} - . "<DD>". $glossary_desc{$type}{$key} - . $glodelim{$type} . $glossary{$type}{$key} - . $linktext. "</A>\n"); -$previous = $current; - } - $glossary = '<DD>'.$glossary unless ($glossary =~ /^\s*<D(T|D)>/); - - $glossary =~ s/(<A [^>]*>)(<D(T|D)>)/$2$1/g; - - $str = &translate_commands("\\glossarypostamble"); - s/$gls_mark{$type}/$preglossary\n<DL COMPACT>\n$glossary<\/DL>$str\n/s; -} - -sub set_depth_levels { - # Sets $outermost_level - local($level); - # scan the document body, not the preamble, for use of sectioning commands - my ($contents) = $_; - if ($contents =~ /\\begin\s*((?:$O|$OP)\d+(?:$C|$CP))document\1|\\startdocument/s) { -$contents = $'; - } - foreach $level ("part", "chapter", "section", "subsection", - "subsubsection", "paragraph") { -last if (($outermost_level) = $contents =~ /\\($level)$delimiter_rx/); -last if (($outermost_level) = $contents =~ /\\endsegment\s*\[\s*($level)\s*\]/s); -if ($contents =~ /\\segment\s*($O\d+$C)[^<]+\1\s*($O\d+$C)\s*($level)\s*\2/s) -{ $outermost_level = $3; last }; - } - $level = ($outermost_level ? $section_commands{$outermost_level} : - do {$outermost_level = 'section'; 3;}); - - if ($REL_DEPTH && $MAX_SPLIT_DEPTH) { -$MAX_SPLIT_DEPTH = $level + $MAX_SPLIT_DEPTH; - } elsif (!($MAX_SPLIT_DEPTH)) { $MAX_SPLIT_DEPTH = 1 }; - - %unnumbered_section_commands = ( - 'tableofcontents', $level -, 'listoffigures', $level -, 'listoftables', $level -, 'bibliography', $level -, 'textohtmlindex', $level -, 'textohtmlglossary', $level - , %unnumbered_section_commands - ); - - %section_commands = ( - %unnumbered_section_commands - , %section_commands - ); -} - -sub add_bbl_and_idx_dummy_commands { - local($id) = $global{'max_id'}; - - s/([\\]begin\s*$O\d+$C\s*thebibliography)/$bbl_cnt++; $1/eg; - ## if ($bbl_cnt == 1) { -s/([\\]begin\s*$O\d+$C\s*thebibliography)/$id++; "\\bibliography$O$id$C$O$id$C $1"/geo; - #} - $global{'max_id'} = $id; - s/([\\]begin\s*$O\d+$C\s*theindex)/\\textohtmlindex $1/o; - s/[\\]printindex/\\textohtmlindex /o; - &add_gls_dummy_commands; - &lib_add_bbl_and_idx_dummy_commands() if defined(&lib_add_bbl_and_idx_dummy_commands); -} - -# this gets called before do_cmd_newglossarytype -# so currently only substitutes \\printglossary and \\printacronym -sub add_gls_dummy_commands{ - #foreach $type (keys %gls_mark) - #{ - # #$id = ++$global{'max_id'}; - # s/[\\]print$type/\\textohtmlglossary[$type]/sg; - #} - - s/[\\]printglossary/\\textohtmlglossary/sg; - s/[\\]printacronym/\\textohtmlglossary[$acronymtype]/sg; -} - -# This is modified from do_cmd_textohtmlindex - -sub do_cmd_textohtmlglossary{ - local($_) = @_; - - local($type); - - $_[0]=~s/^\s*\[([^]]*)\]//; - $type = $1; - if ($type eq '') {$type = 'glossary';} - - unless (defined $gls_mark{$type}) - { - &write_warnings("glossary type '$type' not implemented"); - } - - if (eval "(defined \&do_cmd_${type}name) ||\$new_command{\"${type}name\"}") - { - local($br_id)=++$global{'max_id'}; - $TITLE = &translate_environments("$O$br_id$C\\${type}name$O$br_id$C"); - } - else - { $TITLE = $gls_title{$type} } - $toc_sec_title = $TITLE; - $glsfile{$type} = $CURRENT_FILE; - if (%glossary_labels) { &make_glossary_labels(); } - if (($SHORT_INDEX) && (%glossary_segment)) - { &make_preglossary(); } - else - { $preglossary = &translate_commands("\\glossarypreamble"); } - local $idx_head = $section_headings{'textohtmlindex'}; - local($heading) = join('' - , &make_section_heading($TITLE, $idx_head) - , $gls_mark{$type} ); - local($pre,$post) = &minimize_open_tags($heading); - join('',"<BR>\n" , $pre, $_[0]); -} - -sub make_glossary_labels { - local($key, @keys); - @keys = keys %glossary_labels; - foreach $key (@keys) { - if (($ref_files{$key}) && !($ref_files{$key} eq "$glsfile{'glossary'}")) { - local($tmp) = $ref_files{$key}; - &write_warnings("\nmultiple label $key , target in $glsfile{'glossary'} masks $tmp "); - } - $ref_files{$key} .= $glsfile{'glossary'}; - } -} - -sub make_preglossary{ &make_real_preglossary } -sub make_real_preglossary{ - local($key, @keys, $head, $body); - $head = "<HR>\n<H4>Legend:</H4>\n<DL COMPACT>"; - @keys = keys %glossary_segment; - foreach $key (@keys) { - local($tmp) = "segment$key"; - $tmp = $ref_files{$tmp}; - $body .= "\n<DT>$key<DD>".&make_named_href('',$tmp,$glossary_segment{$key}); - } - $preglossary = join('', $head, $body, "\n</DL>") if ($body); -} - -sub do_cmd_glossary { &do_real_glossary(@_) } -sub do_real_glossary { - local($_) = @_; - local($br_id, $str); - local($type) = "glossary"; - local($anchor); - - if (s/^\S*$OP(\d+)${CP}type=(.+)$OP\1$CP//) - { - $type = $2; - } - - local($idx_option,$pat) = &get_next_optional_argument; - - $str = &missing_braces unless ( -(s/$next_pair_pr_rx/($br_id, $str) = ($1, $2);''/eo) -||(s/$next_pair_rx/($br_id, $str) = ($1, $2);''/eo)); - - # the maths gets processed before being passed - # to do_cmd_glossary. How can I do this - # substitution before it gets converted to an image? - $str=~s/\"\"/\"/gs; - $str=~s/\"\|/\|/gs; - $str=~s/\"@/@/gs; - $str=~s/\"!/!/gs; - - $str=~s/;SPMquot;;SPMquot;/;SPMquot;/gs; - $str=~s/;SPMquot;\|/\|/gs; - $str=~s/;SPMquot;\@/\@/gs; - $str=~s/;SPMquot;!/!/gs; - - $anchor = &make_glossary_entry($br_id,$str,$anchor_invisible_mark,$type); - - join('', $anchor, $_); -} - -sub make_glossary_entry { &make_real_glossary_entry(@_) } -sub make_real_glossary_entry { - local($br_id,$str,$text,$type) = @_; - local($this_file) = $CURRENT_FILE; - $TITLE = $saved_title if (($saved_title)&&(!($TITLE)||($TITLE eq $default_title))); - #extract name, sort, description and format data from $str - local($name,$sort,$description,$format); - - unless (($str=~/name\s*=\s*${OP}(\d+)${CP}(.+)${OP}\1${CP}\s*,?/s && ($name=$2)) || - ($str=~/name\s*=\s*([^,]+)\s*,?/s && ($name=$1))) - { - &write_warnings("can't determine name key from $str"); - } - - unless (($str=~/sort\s*=\s*${OP}(\d+)${CP}(.+)${OP}\1${CP}\s*,?/s && ($sort=$2)) || - ($str=~/sort\s*=\s*([^,]+)\s*,?/s && ($sort=$1))) - { - $sort = $name; - } - - unless (($str=~/description\s*=\s*${OP}(\d+)${CP}(.+)${OP}\1${CP}\s*,?/s && ($description=$2)) || - ($str=~/description\s*=\s*([^,]+)\s*,?/s && ($description=$1))) - { - &write_warnings("can't determine description key from $str"); - } - - unless (($str=~/format\s*=\s*${OP}(\d+)${CP}(.+)${OP}\1${CP}\s*,?/s && ($format=$2)) || - ($str=~/format\s*=\s*([^,]+)\s*,?/s && ($format=$1))) - { - $format = "glsnumformat[$type]"; - } - - # Save the reference - $str = "$sort$description###" . ++$global{'max_id'}; # Make unique - # concatenate multiple spaces into a single space - # otherwise keys won't sort properly - $str=~s/\s+/ /gs; - $glossary{$type}{$str} .= &make_half_href($this_file."#$br_id"); - $glossary_name{$type}{$str} = $name; - $glossary_format{$type}{$str} = $format; - $glossary_desc{$type}{$str} = $description; - $glossary_linktext{$type}{$str} = $TITLE; - "<A HREF=$gls_file_mark{$type}#tex2html$href_name NAME=\"$br_id\">$text<\/A>"; -} - -sub do_cmd_xglossary{ - local($_) = @_; - local($entry,$text); - local($type) = "glossary"; - - if (s/^$OP(\d+)${CP}type=(.+)$OP\1$CP//) - { - $type = $2; - } - - $entry = &missing_braces unless - s/$next_pair_pr_rx/$entry=$2;''/eo; - - $text = &missing_braces unless - s/$next_pair_pr_rx/$text=$2;''/eo; - - $entry=~s/\"\"/\"/gs; - $entry=~s/\"\|/\|/gs; - $entry=~s/\"\@/\@/gs; - $entry=~s/\"!/!/gs; - - $entry=~s/;SPMquot;;SPMquot;/;SPMquot;/gs; - $entry=~s/;SPMquot;\|/\|/gs; - $entry=~s/;SPMquot;\@/\@/gs; - $entry=~s/;SPMquot;!/!/gs; - - $br_id = ++$global{'max_id'}; - join('', &make_glossary_entry($br_id,$entry,$text,$type), - $_); -} - -sub do_cmd_newglossarytype{ - local($type,$out,$in); - $type = &missing_braces unless - ($_[0]=~s/$next_pair_pr_rx//o&&($type=$2)); - $out = &missing_braces unless - ($_[0]=~s/$next_pair_pr_rx//o&&($out=$2)); - $in = &missing_braces unless - ($_[0]=~s/$next_pair_pr_rx//o&&($in=$2)); - - &make_newglossarytype($type); - - $_[0]; -} - -sub make_newglossarytype{ - local($type) = @_; - - eval ("sub do_cmd_make$type\{\}"); - - $gls_mark{$type} = "<tex2html_${type}_mark>"; - $gls_file_mark{$type} = "<tex2html_${type}_file_mark>"; - $gls_title{$type} = "\\glossaryname"; - - local($tmp) = 'sub do_cmd_' . $type. '{'; - $tmp .= 'local($id) = ++$global{\'max_id\'};'; - $tmp .= '"\\\\glossary$OP$id${CP}type=' . $type . '$OP$id$CP".$_[0];'; - $tmp .= '}'; - - eval($tmp); - - $tmp = 'sub do_cmd_x' . $type. '{'; - $tmp .= 'local($id) = ++$global{\'max_id\'};'; - $tmp .= '"\\\\xglossary$OP$id${CP}type=' . $type . '$OP$id$CP".$_[0];'; - $tmp .= '}'; - - eval($tmp); - - $tmp = 'sub do_cmd_print' . $type. '{'; - #$tmp .= 'local($id)=++$global{\'max_id\'};'; - $tmp .= '"\\\\textohtmlglossary[' . $type - . ']" . $_[0]'; - $tmp .= '}'; - - eval($tmp); - - $delimN{$type} = ", "; - $glodelim{$type} = ""; - $glsnumformat{$type} = ""; - -} - -sub do_cmd_gloshort{ - local($_) = @_; - join('', "<tex2html_GLOSHORT_mark>", $_); -} - -sub do_cmd_glolong{ - local($_) = @_; - join('', "<tex2html_GLOLONG_mark>", $_); -} - -$acronymnamefmt = "<tex2html_GLOLONG_mark> (<tex2html_GLOSHORT_mark>)"; - -sub do_cmd_setacronymnamefmt{ - local($_) = @_; - - $acronymnamefmt = &missing_braces unless - s/$next_pair_pr_rx/$acronymnamefmt=$2;''/eo; - - $_; -} - -sub do_cmd_acronymfont{ - local($_) = @_; - local($text) = &missing_braces unless - s/$next_pair_pr_rx/$text=$2;''/eo; - - $text . $_; -} - - %acronym = (); - -sub do_cmd_newacronym{ - local($_) = @_; - local($cmdname,$pat,$abbrv,$long,$glsentry,$name); - - ($cmdname,$pat) = &get_next_optional_argument; - - $abbrv = &missing_braces unless - (s/$next_pair_pr_rx/$abbrv=$2;''/eo); - $long = &missing_braces unless - (s/$next_pair_pr_rx/$long=$2;''/eo); - $glsentry = &missing_braces unless - (s/$next_pair_pr_rx/$glsentry=$2;''/eo); - - if ($cmdname eq '') - { - $cmdname = $abbrv; - } - - local($id); - $id = ++$global{'max_id'}; - local($fmtedabbrv) = &translate_commands("\\acronymfont$OP$id$CP$abbrv$OP$id$CP"); - - unless ($glsentry=~/name=/) - { - $name = $acronymnamefmt; - $name=~s/<tex2html_GLOSHORT_mark>/$fmtedabbrv/egs; - $name=~s/<tex2html_GLOLONG_mark>/$long/egs; - $id = ++$global{'max_id'}; - $glsentry .= ",name=$OP$id$CP$name$OP$id$CP"; - } - - $global{"${cmdname}first"} = 1; - $acronym{$cmdname}{'abbrv'} = $abbrv; - $acronym{$cmdname}{'long'} = $long; - $acronym{$cmdname}{'entry'} = $glsentry; - - local($tmp); - - unless ($cmdname=~/[^a-zA-Z]/) - { - $tmp = 'sub do_cmd_' . $cmdname . '{'; - $tmp .= 'local($_)=@_;'; - $tmp .= 'local($id)=++$global{\'max_id\'};'; - $tmp .= 'local($str);'; - $tmp .= '$str="${OP}$id${CP}' - . $cmdname - . '${OP}$id${CP}";'; - $tmp .= '&do_cmd_useacronym($str . $_[0])'; - $tmp .= '}'; - - eval($tmp); - - $tmp = 'sub do_cmd_' . $cmdname . 'star{'; - $tmp .= 'local($_)=@_;'; - $tmp .= 'local($id)=++$global{\'max_id\'};'; - $tmp .= 'local($str);'; - $tmp .= '$str="${OP}$id${CP}' - . $cmdname - . '${OP}$id${CP}";'; - $tmp .= '&do_cmd_useacronymstar($str . $_[0])'; - $tmp .= '}'; - - eval($tmp); - - $tmp = 'sub do_cmd_' . $cmdname . 'long{'; - $tmp .= 'local($_)=@_;'; - $tmp .= 'join("", \'' . $long . '\', $_[0])'; - $tmp .= '}'; - - eval($tmp); - - $tmp = 'sub do_cmd_' . $cmdname . 'short{'; - $tmp .= 'local($_)=@_;'; - $tmp .= 'join("", \'' . $fmtedabbrv . '\', $_[0])'; - $tmp .= '}'; - - eval($tmp); - } - - $_; -} - -sub do_cmd_acrsh{ - local($_) = @_; - local($cmdname,$text,$id); - - $cmdname = &missing_braces unless - (s/$next_pair_pr_rx/$id=$1;$cmdname=$2;''/eo); - - $text = &translate_commands("\\${cmdname}short"); - - $text . $_; -} - -sub do_cmd_acrshstar{ - local($_) = @_; - local($cmdname,$text,$id); - - $cmdname = &missing_braces unless - (s/$next_pair_pr_rx/$id=$1;$cmdname=$2;''/eo); - - $text = &translate_commands("\\${cmdname}short"); - - $text=~s/(<.*>)?(\w)/\1\u\2/; - - $text . $_; -} - -sub do_cmd_acrln{ - local($_) = @_; - local($cmdname,$text,$id); - - $cmdname = &missing_braces unless - (s/$next_pair_pr_rx/$id=$1;$cmdname=$2;''/eo); - - $text = &translate_commands("\\${cmdname}long"); - - $text . $_; -} - -sub do_cmd_acrlnstar{ - local($_) = @_; - local($cmdname,$text,$id); - - $cmdname = &missing_braces unless - (s/$next_pair_pr_rx/$id=$1;$cmdname=$2;''/eo); - - $text = &translate_commands("\\${cmdname}long"); - - $text=~s/(\w)/\u\1/; - - $text . $_; -} - -sub do_cmd_useacronym{ - local($_)=@_; - local($str,$abbrv,$long,$entry,$id); - - local($optarg,$pat)=&get_next_optional_argument; - - $cmdname = &missing_braces unless - (s/$next_pair_pr_rx/$cmdname=$2;''/eo); - - if (defined %{$acronym{$cmdname}}) - { - $abbrv = $acronym{$cmdname}{'abbrv'}; - $long = $acronym{$cmdname}{'long'}; - $entry = $acronym{$cmdname}{'entry'}; - $id = ++$global{'max_id'}; - $abbrv = "\\acronymfont$OP$id$CP$abbrv$OP$id$CP"; - - $id = ++$global{'max_id'}; - $str = "\\xglossary${OP}$id${CP}type=" - . $acronymtype. "${OP}$id${CP}"; - $id = ++$global{'max_id'}; - $str .= "${OP}$id${CP}" - . $entry . "${OP}$id${CP}"; - $id = ++$global{'max_id'}; - $str .= "${OP}$id${CP}"; - $str .= ($global{"${cmdname}first"} ? "$long$optarg ($abbrv)" : "$abbrv$optarg"); - $str .= "${OP}$id${CP}"; - - $global{"${cmdname}first"} = 0; - } - else - { - &write_warnings("acronym '$cmdname' not defined"); - } - - $str . $_ -} - -sub do_cmd_useacronymstar{ - local($_)=@_; - local($str,$abbrv,$long,$entry,$id); - local($optarg,$pat)=&get_next_optional_argument; - - $cmdname = &missing_braces unless - (s/$next_pair_pr_rx/$cmdname=$2;''/eo); - - if (defined %{$acronym{$cmdname}}) - { - $abbrv = $acronym{$cmdname}{'abbrv'}; - $long = $acronym{$cmdname}{'long'}; - $entry = $acronym{$cmdname}{'entry'}; - - if ($global{"${cmdname}first"}) - { - $long=~s/^([^a-zA-Z]*)([a-zA-Z])/\1\u\2/; - } - else - { - $abbrv=~s/^([^a-zA-Z]*)([a-zA-Z])/\1\u\2/; - } - - $id = ++$global{'max_id'}; - $abbrv = "\\acronymfont$OP$id$CP$abbrv$OP$id$CP"; - - $name = ($global{"${cmdname}first"} ? "$long$optarg ($abbrv)" : "$abbrv$optarg"); - - $id = ++$global{'max_id'}; - $str = "\\xglossary${OP}$id${CP}type=" - . $acronymtype . "${OP}$id${CP}"; - $id = ++$global{'max_id'}; - $str .= "${OP}$id${CP}" - . $entry . "${OP}$id${CP}"; - $id = ++$global{'max_id'}; - $str .= "${OP}$id${CP}"; - $str .= $name; - $str .= "${OP}$id${CP}"; - - $global{"${cmdname}first"} = 0; - } - else - { - &write_warnings("acronym '$cmdname' not defined"); - } - - $str . $_ -} - -sub do_cmd_ifacronymfirstuse{ - local($_) = @_; - local($acronym,$truebit,$falsebit,$str); - - $acronym = &missing_braces unless ($_[0]=~s/$next_pair_pr_rx//o&&($acronym=$2)); - $truebit = &missing_braces unless ($_[0]=~s/$next_pair_pr_rx//o&&($truebit=$2)); - $falsebit = &missing_braces unless ($_[0]=~s/$next_pair_pr_rx//o&&($falsebit=$2)); - - $str = ($global{"${acronym}true"} ? $truebit : $falsebit); - - $str . $_[0]; -} - -sub do_cmd_resetacronym{ - local($_) = @_; - local($cmdname); - - $cmdname = &missing_braces unless - (s/$next_pair_pr_rx/$cmdname=$2;''/eo); - - if (defined %{$acronym{$cmdname}}) - { - $global{"${cmdname}first"} = 1; - } - else - { - &write_warnings("acronym '$cmdname' not defined"); - } - - $_; -} - -sub do_cmd_resetallacronyms{ - local($_) = @_; - - foreach $key (keys %acronym) - { - $global{"${key}first"} = 1; - } - - $_; -} - -sub do_cmd_unsetacronym{ - local($_) = @_; - local($cmdname); - - $cmdname = &missing_braces unless - (s/$next_pair_pr_rx/$cmdname=$2;''/eo); - - if (defined %{$acronym{$cmdname}}) - { - $global{"${cmdname}first"} = 0; - } - else - { - &write_warnings("acronym '$cmdname' not defined"); - } - - $_; -} - -sub do_cmd_unsetallacronyms{ - local($_) = @_; - - foreach $key (keys %acronym) - { - $global{"${key}first"} = 0; - } - - $_; -} - - %savedglosentry = (); - -# This command is deprecated -sub do_cmd_saveglosentry{ - local($_) = @_; - local($name,$desc,$type,$pat); - - ($type,$pat) = &get_next_optional_argument; - - $name = &missing_braces unless - s/$next_pair_pr_rx/$name=$2;''/eo; - $desc = &missing_braces unless - s/$next_pair_pr_rx/$desc=$2;''/eo; - - $savedglosentry{$name}{'entry'} = "name=$name,description=$desc"; - $savedglosentry{$name}{'type'} = $type; - - $_; -} - -sub do_cmd_storeglosentry{ - local($_) = @_; - local($type,$pat,$entry,$label); - - ($type,$pat) = &get_next_optional_argument; - - if ($type eq '') - { - $type = 'glossary'; - } - - $label = &missing_braces unless - s/$next_pair_pr_rx/$label=$2;''/eo; - - $entry = &missing_braces unless - s/$next_pair_pr_rx/$entry=$2;''/eo; - - $savedglosentry{$label}{'entry'} = $entry; - $savedglosentry{$label}{'type'} = $type; - - $_; -} - -sub do_cmd_useglosentry{ - local($_) = @_; - local($optarg,$pat,$name,$str,$id); - ($optarg,$pat) = &get_next_optional_argument; - - $name = &missing_braces unless - (s/$next_pair_pr_rx/$name=$2;''/eo); - - if (defined $savedglosentry{$name}{type}) - { - $id = ++$global{'max_id'}; - $str = "\\$savedglosentry{$name}{type}${OP}$id${CP}$savedglosentry{$name}{entry}"; - - unless ($optarg eq "") - { - $str .= ",$optarg"; - } - - $str .= "${OP}$id${CP}"; - } - else - { - &write_warnings("glossary entry '$name' undefined"); - $str = ''; - } - - $str . $_; -} - -sub do_cmd_useGlosentry{ - local($_) = @_; - local($optarg,$pat,$name,$str,$id); - ($optarg,$pat) = &get_next_optional_argument; - - $name = &missing_braces unless - (s/$next_pair_pr_rx/$name=$2;''/eo); - - if (defined $savedglosentry{$name}{type}) - { - $id = ++$global{'max_id'}; - $str = "\\x$savedglosentry{$name}{type}${OP}$id${CP}$savedglosentry{$name}{entry}"; - - unless ($optarg eq "") - { - $str .= ",$optarg"; - } - - $str .= "${OP}$id${CP}"; - } - else - { - &write_warnings("glossary entry '$name' undefined"); - $str = ''; - } - - $str . $_; -} - -sub do_cmd_gls{ - local($_) = @_; - local($optarg,$pat,$label,$str,$id,$name); - ($optarg,$pat) = &get_next_optional_argument; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - if (defined $savedglosentry{$label}{type}) - { - $str = $savedglosentry{$label}{'entry'}; - - if ($str=~/name=[ ]*${OP}(\d+)${CP}(.*)${OP}\1${CP}/s) - { - $name = $2; - } - elsif (($str=~/name=[ ]*([^,]+),/m) - || ($str=~/name=[ ]*([^,]+)\Z(?!\n)/m)) - { - $name = $1; - } - - $id = ++$global{'max_id'}; - $str = "\\x$savedglosentry{$label}{type}${OP}$id${CP}$savedglosentry{$label}{entry}"; - - unless ($optarg eq "") - { - $str .= ",$optarg"; - } - - $str .= "${OP}$id${CP}"; - $id = ++$global{'max_id'}; - $str .= "${OP}$id${CP}$name${OP}$id${CP}"; - } - else - { - &write_warnings("glossary entry '$label' undefined"); - $str = ''; - } - - $str . $_; -} - -sub do_cmd_glossarypreamble{ - local($_) = @_; - $_[0]; -} - -sub do_cmd_glossarypostamble{ - local($_) = @_; - $_[0]; -} - -sub do_cmd_glsnumformat{ - local($_) = @_; - local($type,$pat) = &get_next_optional_argument; - - if ($type eq '') - { - $type = 'glossary'; - } - - local($cmd) = ''; - unless ($glsnumformat{$type} eq '') - { - $cmd = "\\$glsnumformat{$type}"; - } - - $cmd . $_; -} - -sub do_cmd_setglossary{ - local($_) = @_; - local($str,$type,$format,$delimN,$glodelim); - $str = &missing_braces unless ($_[0]=~s/$next_pair_pr_rx//o&&($str=$2)); - - unless (($str=~/type=([^,]+),|$/&&($type=$1)) || - ($str=~/type=${OP}(\d+)${CP}(.*)${OP}\1${CP}/&&($type=$2))) - { - $type = 'glossary'; - } - - if ($str=~/glsnumformat=[ ]*${OP}(\d+)${CP}(.*)${OP}\1${CP}/s) - { - $format = $2; - } - elsif (($str=~/glsnumformat=[ ]*([^,]+),/m) - || ($str=~/glsnumformat=[ ]*([^,]+)\Z(?!\n)/m)) - { - $format = $1; - } - - if ($format ne '') - { - $glsnumformat{$type} = $format; - - if ($format eq 'ignore') - { - $delimN{$type} = ''; - } - } - - if (($str=~/delimN=([^,]+),|$/&&($delimN=$1)) || - ($str=~/delimN=${OP}(\d+)${CP}(.*)${OP}\1${CP}/&&($delimN=$2))) - { - $delimN{$type} = $delimN; - } - - if (($str=~/glodelim=([^,]+),|$/&&($glodelim=$1)) || - ($str=~/glodelim=${OP}(\d+)${CP}(.*)${OP}\1${CP}/&&($glodelim=$2))) - { - $glodelim{$type} = $glodelim; - } - - $_[0]; -} - -sub do_cmd_ignore{ - local($_) = @_; - local($str); - $str = &missing_braces unless ($_[0]=~s/$next_pair_pr_rx//o&&($str=$2)); - - $_[0]; -} - -sub do_cmd_hyperit{ - join('', "\\textit ", $_[0]); -} - -sub do_cmd_hyperrm{ - join('', "\\textrm ", $_[0]); -} - -sub do_cmd_hypertt{ - join('', "\\texttt ", $_[0]); -} - -sub do_cmd_hypersf{ - join('', "\\textsf ", $_[0]); -} - -sub do_cmd_hyperbf{ - join('', "\\textbf ", $_[0]); -} - -&ignore_commands( <<_IGNORED_CMDS_ ); -makeglossary -makeacronym -_IGNORED_CMDS_ - -1; -% \end{macrocode} -% \begin{macrocode} -%</glossary.perl> -% \end{macrocode} -% \begin{macrocode} -%<*sample.tex> -% \end{macrocode} -% \begin{macrocode} -\documentclass[a4paper]{report} - -\usepackage[plainpages=false,colorlinks]{hyperref} -\usepackage{glossary} - -\makeglossary - -% You need to use the -m switch with makeglos.pl to concatenate -% entries with the same name but different descriptions -% If you don't, and you use PDFLaTeX you will get a warning -% about duplicate labels. To prevent this, set a different -% sort key for each entry, e.g. sort=glossary1 for the first -% entry and sort=glossary2 for the second entry - -\storeglosentry{glossary1}{name=glossary, -description=1) list of technical words} - -\storeglosentry{glossary2}{name=glossary, -description=2) collection of glosses} - -\storeglosentry{Perl}{name=\texttt{Perl}, -sort=Perl, % need a sort key because name contains a command -description=A scripting language} - -\storeglosentry{pagelist}{name=page list, -% description value has to be enclosed in braces -% because it contains commas -description={a list of individual pages or page ranges, -e.g.\ 1,2,4,7-9}} - -\begin{document} - -\title{Sample Document Using glossary Package} -\author{Nicola Talbot} -\pagenumbering{alph}% prevent duplicate page link names if using PDF -\maketitle - -\pagenumbering{roman} -\tableofcontents - -\chapter{Introduction} -\pagenumbering{arabic} - -A \gls{glossary1} is a very useful addition to any -technical document, although a \gls{glossary2} can -also simply be a collection of glosses, which is -another thing entirely. - -Once you have run your document through \LaTeX, you -will then need to run the \texttt{.glo} file through -\texttt{makeindex}. You will need to set the output -file so that it creates a \texttt{.gls} file instead -of an \texttt{.ind} file, and change the name of -the log file so that it doesn't overwrite the index -log file (if you have an index for your document). -Rather than having to remember all the command line -switches, you can call the \gls{Perl} script -\texttt{makeglos.pl} which provides a convenient -wrapper. - -If you have two terms with different meanings in your -\gls{glossary1}, \texttt{makeindex} will of course treat them as two -separate entries, however, some people prefer to -merge them. This can be done using \texttt{makeglos.pl}, and -passing the option \texttt{-m}. - -If a comma appears within the name or description, grouping -must be used: \gls{pagelist}. - -\printglossary - -\end{document} -% \end{macrocode} -% \begin{macrocode} -%</sample.tex> -% \end{macrocode} -% \begin{macrocode} -%<*sample4col.tex> -% \end{macrocode} -% \begin{macrocode} -\documentclass[a4paper]{article} - -% start out with 3 column format to make it easier to modify -\usepackage[style=long,cols=3]{glossary}[2006/07/20] - -% make glossary have 4 columns all left aligned -% (this assumes entries can fit onto a single line -% otherwise use p{} specifier instead of l) -\renewcommand{\glossaryalignment}{llll} - -% Define header row -\newcommand{\glossaryheader}{% -\bfseries Name & \bfseries Description & \bfseries Unit & -\bfseries Page} - -\makeglossary - -\storeglosentry{w}{name={$w$},sort=w,description={width&m}} -\storeglosentry{M}{name={$M$},sort=M,description={mass&kg}} - -\begin{document} - -\printglossary - -The width, \gls{w}, is measured in meters. The mass, \gls{M} is -measured in kilograms. - -\end{document} -% \end{macrocode} -% \begin{macrocode} -%</sample4col.tex> -% \end{macrocode} -% \begin{macrocode} -%<*sampleAcr.tex> -% \end{macrocode} -% \begin{macrocode} -\documentclass[a4paper]{report} - -\usepackage[colorlinks,plainpages=false]{hyperref} -\usepackage[style=altlist,hypertoc,acronym]{glossary} - -% use \makeglossary if using package option -% acronym=false -%\makeglossary -% use \makeacronym if using package option -% acronym=true -\makeacronym - -\newacronym{svm}{support vector machine}{% -description=Statistical pattern recognition -technique~\cite{svm}} - -\newacronym[ksvm]{k-svm}{kernel support vector machine}{% -description={Statistical pattern recognition technique -using the ``kernel trick'' (see also SVM)}} - -\begin{document} -\tableofcontents - -\chapter{Support Vector Machines} - -The \svm\ is used widely in the area of pattern recognition. -\useacronym*[s]{svm} are \ldots - -This is the long version: \svmlong\ or alternatively: -\acrln*{svm}. -Abbreviation: \svmshort\ or \acrsh*{svm}. - -\chapter{Kernel Support Vector Machines} - -The \ksvm\ is \ifacronymfirstuse{svm}{a}{an} \svm\ that uses -the so called ``kernel trick''. - -%\resetacronym{ksvm} -\resetallacronyms -\useacronym*[s]{ksvm} \ldots -\svm. - -\begin{thebibliography}{1} -\bibitem{svm} \ldots -\end{thebibliography} - -%\printglossary -\printacronym - -\end{document} -% \end{macrocode} -% \begin{macrocode} -%</sampleAcr.tex> -% \end{macrocode} -% \begin{macrocode} -%<*sampleEq.tex> -% \end{macrocode} -% \begin{macrocode} -\documentclass[a4paper,12pt]{report} - -\usepackage{amsmath} -\usepackage[colorlinks]{hyperref} -\usepackage[header,border=none,cols=3,number=equation]{glossary}[2006/07/20] - -\newcommand{\erf}{\operatorname{erf}} -\newcommand{\erfc}{\operatorname{erfc}} - -\makeglossary - -% Uncomment the following line to put a blank line between -% every entry: -%\setglossary{delimT={\cr & \cr},gloskip={}} - -% Change the glossary title: - -\renewcommand{\glossaryname}{Index of Special Functions -and Notations} - -% Change the glossary headings - -\renewcommand{\entryname}{Notation} - -\renewcommand{\descriptionname}{Function Name} - -\renewcommand{\glspageheader}{Number of Formula} - -% Add a blank row after the header row -\newcommand{\glossarysubheader}{ & & \\} - -% Store entries for later use - -\storeglosentry{Gamma}{name=\ensuremath{\Gamma(z)}, -description=Gamma function,sort=Gamma} - -\storeglosentry{gamma}{name={\ensuremath{\gamma(\alpha,x)}}, -description=Incomplete gamma function,sort=gamma} - -\storeglosentry{iGamma}{name={\ensuremath{\Gamma(\alpha,x)}}, -description=Incomplete gamma function,sort=Gamma} - -\storeglosentry{psi}{name=\ensuremath{\psi(x)}, -description=Psi function,sort=psi} - -\storeglosentry{erf}{name=\ensuremath{\erf(x)}, -description=Error function,sort=erf} - -\storeglosentry{erfc}{name=\ensuremath{\erfc}, -description=Complementary error function,sort=erfc} - -\storeglosentry{B}{name={\ensuremath{B(x,y)}}, -description=Beta function,sort=B} - -\storeglosentry{Bx}{name={\ensuremath{B_x(p,q)}}, -description=Incomplete beta function,sort=Bx} - -\storeglosentry{Tn}{name=\ensuremath{T_n(x)}, -description=Chebyshev's polynomials of the first kind,sort=Tn} - -\storeglosentry{Un}{name=\ensuremath{U_n(x)}, -description=Chebyshev's polynomials of the second kind,sort=Un} - -\storeglosentry{Hn}{name=\ensuremath{H_n(x)}, -description=Hermite polynomials,sort=Hn} - -\storeglosentry{Ln}{name=\ensuremath{L_n^\alpha(x)}, -description=Laguerre polynomials,sort=Lna} - -\storeglosentry{Znu}{name=\ensuremath{Z_\nu(z)}, -description=Bessel functions,sort=Z} - -\storeglosentry{Phi}{name={\ensuremath{\Phi(\alpha,\gamma;z)}}, -description=confluent hypergeometric function,sort=Pagz} - -\storeglosentry{knu}{name=\ensuremath{k_\nu(x)}, -description=Bateman's function,sort=kv} - -\storeglosentry{Dp}{name=\ensuremath{D_p(z)}, -description=Parabolic cylinder functions,sort=Dp} - -\storeglosentry{F}{name={\ensuremath{F(\phi,k)}}, -description=Elliptical integral of the first kind,sort=Fpk} - -\storeglosentry{C}{name=\ensuremath{C}, -description=Euler's constant,sort=C} - -\storeglosentry{G}{name=\ensuremath{G}, -description=Catalan's constant,sort=G} - -\begin{document} -\title{A Sample Document Using glossary.sty} -\author{Nicola Talbot} -\maketitle - -\begin{abstract} -This is a sample document illustrating the use of the \textsf{glossary} -package. The functions here have been taken from ``Tables of -Integrals, Series, and Products'' by I.S.~Gradshteyn and I.M~Ryzhik. -The glossary is a list of special functions, so -the equation number has been used rather than the page number. This -can be done using the \texttt{number=equation} package -option. -\end{abstract} - -\printglossary - -\chapter{Gamma Functions} - -\begin{equation} -\gls{Gamma} = \int_{0}^{\infty}e^{-t}t^{z-1}\,dt -\end{equation} - -\verb|\ensuremath| is only required here if using -hyperlinks. -\begin{equation} -\useGlosentry{Gamma}{\ensuremath{\Gamma(x+1)}} = x\Gamma(x) -%\useGlosentry{Gamma}{\Gamma(x+1)} = x\Gamma(x) -\end{equation} - -\begin{equation} -\gls{gamma} = \int_0^x e^{-t}t^{\alpha-1}\,dt -\end{equation} - -\begin{equation} -\gls{iGamma} = \int_x^\infty e^{-t}t^{\alpha-1}\,dt -\end{equation} - -\newpage - -\begin{equation} -\gls{Gamma} = \Gamma(\alpha, x) + \gamma(\alpha, x) -\end{equation} - -\begin{equation} -\gls{psi} = \frac{d}{dx}\ln\Gamma(x) -\end{equation} - -\chapter{Error Functions} - -\begin{equation} -\gls{erf} = \frac{2}{\surd\pi}\int_0^x e^{-t^2}\,dt -\end{equation} - -\begin{equation} -\gls{erfc} = 1 - \erf(x) -\end{equation} - -\chapter{Beta Function} - -\begin{equation} -\gls{B} = 2\int_0^1 t^{x-1}(1-t^2)^{y-1}\,dt -\end{equation} -Alternatively: -\begin{equation} -\gls{B} = 2\int_0^{\frac\pi2}\sin^{2x-1}\phi\cos^{2y-1}\phi\,d\phi -\end{equation} - -\begin{equation} -\gls{B} = \frac{\Gamma(x)\Gamma(y)}{\Gamma(x+y)} = B(y,x) -\end{equation} - -\begin{equation} -\gls{Bx} = \int_0^x t^{p-1}(1-t)^{q-1}\,dt -\end{equation} - -\chapter{Polynomials} - -\section{Chebyshev's polynomials} - -\begin{equation} -\gls{Tn} = \cos(n\arccos x) -\end{equation} - -\begin{equation} -\gls{Un} = \frac{\sin[(n+1)\arccos x]}{\sin[\arccos x]} -\end{equation} - -\section{Hermite polynomials} - -\begin{equation} -\gls{Hn} = (-1)^n e^{x^2} \frac{d^n}{dx^n}(e^{-x^2}) -\end{equation} - -\section{Laguerre polynomials} - -\begin{equation} -L_n^{\alpha} (x) = \frac{1}{n!}e^x x^{-\alpha} -\frac{d^n}{dx^n}(e^{-x}x^{n+\alpha}) -\end{equation} - -\chapter{Bessel Functions} - -Bessel functions $Z_\nu$ are solutions of -\begin{equation} -\useglosentry{Znu} -\frac{d^2Z_\nu}{dz^2} + \frac{1}{z}\,\frac{dZ_\nu}{dz} + -\left( 1-\frac{\nu^2}{z^2}Z_\nu = 0 \right) -\end{equation} - -\chapter{Confluent hypergeometric function} - -\begin{equation} -\gls{Phi} = 1 + \frac{\alpha}{\gamma}\,\frac{z}{1!} -+ \frac{\alpha(\alpha+1)}{\gamma(\gamma+1)}\,\frac{z^2}{2!} -+\frac{\alpha(\alpha+1)(\alpha+2)}{\gamma(\gamma+1)(\gamma+2)}\, -\frac{z^3}{3!} + \cdots -\end{equation} - -\begin{equation} -\gls{knu} = \frac{2}{\pi}\int_0^{\pi/2} -\cos(x \tan\theta - \nu\theta)\,d\theta -\end{equation} - -\chapter{Parabolic cylinder functions} - -\begin{equation} -\gls{Dp} = 2^{\frac{p}{2}}e^{-\frac{z^2}{4}} -\left\{ -\frac{\surd\pi}{\Gamma\left(\frac{1-p}{2}\right)} -\Phi\left(-\frac{p}{2},\frac{1}{2};\frac{z^2}{2}\right) --\frac{\sqrt{2\pi}z}{\Gamma\left(-\frac{p}{2}\right)} -\Phi\left(\frac{1-p}{2},\frac{3}{2};\frac{z^2}{2}\right) -\right\} -\end{equation} - -\chapter{Elliptical Integral of the First Kind} - -\begin{equation} -\gls{F} = \int_0^\phi \frac{d\alpha}{\sqrt{1-k^2\sin^2\alpha}} -\end{equation} - -\chapter{Constants} - -\begin{equation} -\gls{C} = 0.577\,215\,664\,901\ldots -\end{equation} - -\begin{equation} -\gls{G} = 0.915\,965\,594\ldots -\end{equation} - -\end{document} -% \end{macrocode} -% \begin{macrocode} -%</sampleEq.tex> -% \end{macrocode} -% \begin{macrocode} -%<*sampleEqPg.tex> -% \end{macrocode} -% \begin{macrocode} -\documentclass[a4paper,12pt]{report} - -\usepackage{amsmath} -\usepackage[colorlinks]{hyperref} -\usepackage[header,toc,border=none,cols=3, - number=equation]{glossary}[2006/07/20] - -\newcommand{\erf}{\operatorname{erf}} -\newcommand{\erfc}{\operatorname{erfc}} - -\renewcommand{\glossaryname}{Index of Special Functions and Notations} - -\renewcommand{\glossarypreamble}{Numbers in italic indicate the equation number, -numbers in bold indicate page numbers where the main definition occurs.\par} - -% set the default glossary numbers to italic -% hyperit is used instead of textit because -% the hyperref package is being used. -\setglossary{glsnumformat=hyperit} - -% 1st column heading -\renewcommand{\entryname}{Notation} - -% 2nd column heading -\renewcommand{\descriptionname}{Function Name} - -% Add a blank row after the header -\newcommand{\glossarysubheader}{ & & \\} - -% store glossary entries for later use - -\storeglosentry{Gamma}{name=\ensuremath{\Gamma(z)}, -description=Gamma function,sort=Gamma} - -\storeglosentry{gamma}{name=\ensuremath{\gamma(\alpha,x)}, -description=Incomplete gamma function,sort=gamma} - -\storeglosentry{iGamma}{name=\ensuremath{\Gamma(\alpha,x)}, -description=Incomplete gamma function,sort=Gamma} - -\storeglosentry{psi}{name=\ensuremath{\psi(x)}, -description=Psi function,sort=psi} - -\storeglosentry{erf}{name=\ensuremath{\erf(x)}, -description=Error function,sort=erf} - -\storeglosentry{erfc}{name=\ensuremath{\erfc(x)}, -description=Complementary error function,sort=erfc} - -\storeglosentry{beta}{name=\ensuremath{B(x,y)}, -description=Beta function,sort=B} - -\storeglosentry{Bx}{name=\ensuremath{B_x(p,q)}, -description=Incomplete beta function,sort=Bx} - -\storeglosentry{Tn}{name=\ensuremath{T_n(x)}, -description=Chebyshev's polynomials of the first kind, -sort=Tn} - -\storeglosentry{Un}{name=\ensuremath{U_n(x)}, -description=Chebyshev's polynomials of the second kind, -sort=Un} - -\storeglosentry{Hn}{name=\ensuremath{H_n(x)}, -description=Hermite polynomials,sort=Hn} - -\storeglosentry{Lna}{name=\ensuremath{L_n^\alpha(x)}, -description=Laguerre polynomials,sort=Lna} - -\storeglosentry{Znu}{name=\ensuremath{Z_\nu(z)}, -description=Bessel functions,sort=Z} - -\storeglosentry{Pagz}{name=\ensuremath{\Phi(\alpha,\gamma;z)}, -description=confluent hypergeometric function,sort=Pagz} - -\storeglosentry{kv}{name=\ensuremath{k_\nu(x)}, -description=Bateman's function,sort=kv} - -\storeglosentry{Dp}{name=\ensuremath{D_p(z)}, -description=Parabolic cylinder functions,sort=Dp} - -\storeglosentry{Fpk}{name=\ensuremath{F(\phi,k)}, -description=Elliptical integral of the first kind,sort=Fpk} - -\storeglosentry{C}{name=\ensuremath{C}, -description=Euler's constant,sort=C} - -\storeglosentry{G}{name=\ensuremath{G}, -description=Catalan's constant,sort=G} - -\renewcommand{\shortglossaryname}{Special Functions} - -\makeglossary - -\pagestyle{headings} - -\begin{document} - -\title{Sample Document Using Interchangable Numbering} -\author{Nicola Talbot} -\maketitle - -\begin{abstract} -This is a sample document illustrating the use of the \textsf{glossary} -package. The functions here have been taken from ``Tables of -Integrals, Series, and Products'' by I.S.~Gradshteyn and I.M~Ryzhik. - -The glossary lists both page numbers and equation numbers. -Since the majority of the entries use the equation number, -\texttt{number=equation} was used as a package option. -The entries that should refer to the page number instead -use the \texttt{number=equation} glossary key. -Note that this example will only work where the -page number and equation number compositor is the same. So -it won't work if, say, the page numbers are of the form -2-4 and the equation numbers are of the form 4.6. -As most of the glossary entries should have an italic -format, it is easiest to set the default format to -italic. - -\end{abstract} - -\tableofcontents - -\printglossary - -\chapter{Gamma Functions} - -The \useGlosentry[number=page,format=hyperbf]{Gamma}{gamma function} is -defined as -\begin{equation} -\gls{Gamma} = \int_{0}^{\infty}e^{-t}t^{z-1}\,dt -\end{equation} - -\begin{equation} -\useGlosentry{Gamma}{\ensuremath{\Gamma(x+1)}} = x\Gamma(x) -\end{equation} - -\begin{equation} -\gls{gamma} = \int_0^x e^{-t}t^{\alpha-1}\,dt -\end{equation} - -\begin{equation} -\gls{iGamma} = \int_x^\infty e^{-t}t^{\alpha-1}\,dt -\end{equation} - -\newpage - -\begin{equation} -\useGlosentry{Gamma}{\ensuremath{\Gamma(\alpha)}} = \Gamma(\alpha, x) + \gamma(\alpha, x) -\end{equation} - -\begin{equation} -\gls{psi} = \frac{d}{dx}\ln\Gamma(x) -\end{equation} - -\chapter{Error Functions} - -The \useGlosentry[number=page,format=hyperbf]{erf}{error -function} is defined as: -\begin{equation} -\gls{erf} = \frac{2}{\surd\pi}\int_0^x e^{-t^2}\,dt -\end{equation} - -\begin{equation} -\gls{erfc} = 1 - \erf(x) -\end{equation} - -\chapter{Beta Function} - -\begin{equation} -\gls{beta} = 2\int_0^1 t^{x-1}(1-t^2)^{y-1}\,dt -\end{equation} -Alternatively: -\begin{equation} -\gls{beta} = 2\int_0^{\frac\pi2}\sin^{2x-1}\phi\cos^{2y-1}\phi\,d\phi -\end{equation} - -\begin{equation} -\gls{beta} = \frac{\Gamma(x)\Gamma(y)}{\Gamma(x+y)} = B(y,x) -\end{equation} - -\begin{equation} -\gls{Bx} = \int_0^x t^{p-1}(1-t)^{q-1}\,dt -\end{equation} - -\chapter{Chebyshev's polynomials} - -\begin{equation} -\gls{Tn} = \cos(n\arccos x) -\end{equation} - -\begin{equation} -\gls{Un} = \frac{\sin[(n+1)\arccos x]}{\sin[\arccos x]} -\end{equation} - -\chapter{Hermite polynomials} - -\begin{equation} -\gls{Hn} = (-1)^n e^{x^2} \frac{d^n}{dx^n}(e^{-x^2}) -\end{equation} - -\chapter{Laguerre polynomials} - -\begin{equation} -\gls{Lna} = \frac{1}{n!}e^x x^{-\alpha} -\frac{d^n}{dx^n}(e^{-x}x^{n+\alpha}) -\end{equation} - -\chapter{Bessel Functions} - -Bessel functions $Z_\nu(z)$ are solutions of -\begin{equation} -\frac{d^2Z_\nu}{dz^2} + \frac{1}{z}\,\frac{dZ_\nu}{dz} + -\left( -1-\frac{\nu^2}{z^2}Z_\nu = 0 -\right) -\end{equation} -\useglosentry{Znu} - -\chapter{Confluent hypergeometric function} - -\begin{equation} -\gls{Pagz} = 1 + \frac{\alpha}{\gamma}\,\frac{z}{1!} -+ \frac{\alpha(\alpha+1)}{\gamma(\gamma+1)}\,\frac{z^2}{2!} -+\frac{\alpha(\alpha+1)(\alpha+2)} - {\gamma(\gamma+1)(\gamma+2)} -\,\frac{z^3}{3!} -+ \cdots -\end{equation} - -\begin{equation} -\gls{kv} = \frac{2}{\pi}\int_0^{\pi/2} -\cos(x \tan\theta - \nu\theta)\,d\theta -\end{equation} - -\chapter{Parabolic cylinder functions} - -\begin{equation} -\gls{Dp} = 2^{\frac{p}{2}}e^{-\frac{z^2}{4}} -\left\{ -\frac{\surd\pi}{\Gamma\left(\frac{1-p}{2}\right)} -\Phi\left(-\frac{p}{2},\frac{1}{2};\frac{z^2}{2}\right) --\frac{\sqrt{2\pi}z}{\Gamma\left(-\frac{p}{2}\right)} -\Phi\left(\frac{1-p}{2},\frac{3}{2};\frac{z^2}{2}\right) -\right\} -\end{equation} - -\chapter{Elliptical Integral of the First Kind} - -\begin{equation} -\gls{Fpk} = \int_0^\phi -\frac{d\alpha}{\sqrt{1-k^2\sin^2\alpha}} -\end{equation} - -\chapter{Constants} - -\begin{equation} -\gls{C} = 0.577\,215\,664\,901\ldots -\end{equation} - -\begin{equation} -\gls{G} = 0.915\,965\,594\ldots -\end{equation} - -\end{document} -% \end{macrocode} -% \begin{macrocode} -%</sampleEqPg.tex> -% \end{macrocode} -% \begin{macrocode} -%<*sampleNtn.tex> -% \end{macrocode} -% \begin{macrocode} -\documentclass{report} - -\usepackage[plainpages=false,colorlinks]{hyperref} -\usepackage{html} -%\usepackage{array} -\usepackage[toc,style=long,cols=3]{glossary} - -\makeglossary - -% Define a new glossary type called notation -\newglossarytype{notation}{not}{ntn}[style=long,cols=2,border,header] - -% Set up notation style -\newcommand{\notationname}{Notation} -% Don't display numbers, remove commas and number hyphens -% for notation entries, and put a full stop after the -% deescription: -\setglossary{type=notation,glsnumformat=ignore,glodelim={.}} - -\makenotation - -\begin{document} - -\title{Sample Document using glossary Package} -\author{Nicola Talbot} -\pagenumbering{alph} -\maketitle - -\begin{abstract} -%stop hyperref complaining about duplicate page identifiers -\pagenumbering{Alph} -This is a sample document illustrating the use of the -\textsf{glossary} package. In this example, a new glossary type -called \texttt{notation} is defined, so that the document can have a -separate glossary of terms and index of notation. The index of notation -doesn't have associated numbers. -\end{abstract} - - -\pagenumbering{roman} -\tableofcontents - -\printglossary - -% Either of the following 2 commands will have -% the same effect with LaTeX. Effect slightly -% different with LaTeX2HTML. - -%\printnotation -\printglossary[notation] - -\chapter{Introduction} -\pagenumbering{arabic} - -Sets\glossary{name=set,description=A collection of distinct objects} -are denoted by a caligraphic font -e.g.\ $\mathcal{S}$% -\notation{name=$\mathcal{S}$,description=A set,sort=S}. - -Let $\mathcal{U}$ denote the universal set\notation{ -name=$\mathcal{U}$,description={The universal set},sort=U}. - -The cardinality\glossary{name=cardinality, -description=The number of elements in the specified set} of -a set $\mathcal{S}$ is denoted $|\mathcal{S}|$% -\notation{name=$\mid\mathcal{S}\mid$, -description=cardinality of $\mathcal{S}$,sort=cardinality} - -\chapter{Next} - -Now for a hyperlink: -\xnotation{name=$\mathcal{U}$, description={The universal -set}, sort=U}{$\mathcal{U}$}. - -\end{document} -% \end{macrocode} -% \begin{macrocode} -%</sampleNtn.tex> -% \end{macrocode} -% \begin{macrocode} -%<*sampleNtn2.tex> -% \end{macrocode} -% \begin{macrocode} -\documentclass{report} - -\usepackage[plainpages=false,colorlinks]{hyperref} -\usepackage{html} -\usepackage[toc]{glossary}[2006/07/20] - -\makeglossary - -% Define a new glossary type called notation -% Suppress the page numbering in the list of notation -\newglossarytype[nlg]{notation}{not}{ntn}[number=none] - -% Set up notation style -\newcommand{\notationname}{Notation} - -\makenotation - -\begin{document} - -% Save details for later use (note the use of \protect): -\storeglosentry[notation]{not:set}{name={$\mathcal{S}$}, -description=A set,sort=S} - -\storeglosentry[notation]{not:U}{name=$\mathcal{U}$, -description={The universal set},sort=U} - -\storeglosentry[notation]{not:card}{name=$\mid\mathcal{S}\mid$, -description=cardinality of $\mathcal{S}$, -sort=cardinality} - -\storeglosentry{glos:set}{name=set,description=A collection of -distinct objects} - -\storeglosentry{glos:card}{name=cardinality,description=The number of -elements in the specified set} - -\title{Sample Document using glossary Package} -\author{Nicola Talbot} -\pagenumbering{alph} -\maketitle - -\begin{abstract} -%stop hyperref complaining about duplicate page identifiers: -\pagenumbering{Alph} -This is a sample document illustrating the use of the -\textsf{glossary} package. In this example, a new glossary type -called \texttt{notation} is defined, so that the document can have a -separate glossary of terms and index of notation. The index of notation -doesn't have associated numbers. -\end{abstract} - - -\pagenumbering{roman} -\tableofcontents - -\printglossary - -% Either of the following 2 commands will have -% the same effect with LaTeX. Effect slightly -% different with LaTeX2HTML. - -\printnotation -%\printglossary[notation] - -\chapter{Introduction} -\pagenumbering{arabic} - -Sets\useglosentry{glos:set} -are denoted by a caligraphic font -e.g.\ $\mathcal{S}$\useglosentry{not:set}. - -Let \gls{not:U} denote the universal set. - -The \gls{glos:card} of a set $\mathcal{S}$ is denoted -\gls{not:card}. - -\chapter{Another Chapter} - -Another mention of the universal set \gls{not:U}. - -\end{document} -% \end{macrocode} -% \begin{macrocode} -%</sampleNtn2.tex> -% \end{macrocode} -% \begin{macrocode} -%<*sampleSec.tex> -% \end{macrocode} -% \begin{macrocode} -\documentclass{report} - -\usepackage[plainpages=false,colorlinks]{hyperref} -\usepackage[style=altlist,toc,number=section]{glossary} - -\makeglossary - -\storeglosentry{ident}{name=identity matrix,description=diagonal -matrix with 1s along the leading diagonal} - -\storeglosentry{diag}{name=diagonal matrix, -description=matrix whose only non-zero entries are along -the leading diagonal} - -\storeglosentry{sing}{name=singular matrix, -description=matrix with zero determinant} - -\begin{document} - -\pagenumbering{roman} -\tableofcontents - -\printglossary - -\chapter{Introduction} -\pagenumbering{arabic} -This is a sample document illustrating the use of the -\textsf{glossary} package. - -\chapter{Diagonal matrices} - -A \gls[format=hyperit]{diag} is a matrix where all elements not on the -leading diagonal are zero. This is the -primary definition, so an italic font is used for the page number. - -\newpage -\section{Identity matrix} -The \gls[format=hyperit]{ident} is a \gls{diag} whose leading -diagonal elements are all equal to 1. - -Here is another entry for a \gls{diag}. - -\chapter{Singular Matrices} - -A \gls{sing} is a matrix with zero determinant. -\useGlosentry{sing}{Singular matrices} are non-invertible. - -Another \gls{ident} entry. - -\end{document} -% \end{macrocode} -% \begin{macrocode} -%</sampleSec.tex> -% \end{macrocode} -%\fi -%\Finale -\endinput diff --git a/Master/texmf-dist/source/latex/glossary/glossary.ins b/Master/texmf-dist/source/latex/glossary/glossary.ins deleted file mode 100644 index 6359e0d0d00..00000000000 --- a/Master/texmf-dist/source/latex/glossary/glossary.ins +++ /dev/null @@ -1,38 +0,0 @@ -% glossary.ins generated using makedtx version 0.91b 2006/7/25 18:13 -\input docstrip - -\preamble -Copyright (C) 2006 Nicola Talbot, all rights reserved. -If you modify this file, you must change its name first. -You are NOT ALLOWED to distribute this file alone. You are NOT -ALLOWED to take money for the distribution or use of either this -file or a changed version, except for a nominal charge for copying -etc. -\endpreamble - -\askforoverwritefalse - -\generate{\file{makeglos.pl}{\nopreamble\nopostamble\from{glossary.dtx}{makeglos.pl}} -\file{sampleSec.tex}{\usepreamble\defaultpreamble -\usepostamble\defaultpostamble\from{glossary.dtx}{sampleSec.tex,package}} -\file{sampleNtn.tex}{\usepreamble\defaultpreamble -\usepostamble\defaultpostamble\from{glossary.dtx}{sampleNtn.tex,package}} -\file{sampleEqPg.tex}{\usepreamble\defaultpreamble -\usepostamble\defaultpostamble\from{glossary.dtx}{sampleEqPg.tex,package}} -\file{makeglos.bat}{\nopreamble\nopostamble\from{glossary.dtx}{makeglos.bat}} -\file{sample.tex}{\usepreamble\defaultpreamble -\usepostamble\defaultpostamble\from{glossary.dtx}{sample.tex,package}} -\file{sampleNtn2.tex}{\usepreamble\defaultpreamble -\usepostamble\defaultpostamble\from{glossary.dtx}{sampleNtn2.tex,package}} -\file{glossary.perl}{\nopreamble\nopostamble\from{glossary.dtx}{glossary.perl}} -\file{glossary.sty}{\usepreamble\defaultpreamble -\usepostamble\defaultpostamble\from{glossary.dtx}{glossary.sty,package}} -\file{sample4col.tex}{\usepreamble\defaultpreamble -\usepostamble\defaultpostamble\from{glossary.dtx}{sample4col.tex,package}} -\file{sampleAcr.tex}{\usepreamble\defaultpreamble -\usepostamble\defaultpostamble\from{glossary.dtx}{sampleAcr.tex,package}} -\file{sampleEq.tex}{\usepreamble\defaultpreamble -\usepostamble\defaultpostamble\from{glossary.dtx}{sampleEq.tex,package}} -} - -\endbatchfile |