diff options
author | Karl Berry <karl@freefriends.org> | 2008-03-07 19:18:57 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2008-03-07 19:18:57 +0000 |
commit | 65df837d29600b7980f1e49aa2bcee6da454bae0 (patch) | |
tree | dbd621ac42ed498c32fc49fb0bbe77753f1c32c1 /Master/texmf-dist/doc/latex/glossaries | |
parent | b253317283f1d4cbf2a8c292bf3814b714e43ab3 (diff) |
glossaries update, including makeglossaries.bat in bin/win32 (4mar08)
git-svn-id: svn://tug.org/texlive/trunk@6879 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/glossaries')
28 files changed, 6119 insertions, 3812 deletions
diff --git a/Master/texmf-dist/doc/latex/glossaries/CHANGES b/Master/texmf-dist/doc/latex/glossaries/CHANGES new file mode 100644 index 00000000000..c54ec6c055a --- /dev/null +++ b/Master/texmf-dist/doc/latex/glossaries/CHANGES @@ -0,0 +1,89 @@ +glossaries change log: + +v1.11 (2 March 2008): + * Fixed error in manual (glossary style is set using \glossarystyle + not \setglossarystyle). + + * Changed the way the package is archived to make it compatible + with TeX Live. + + * Improved error handling of makeglossaries and added --version + and --help options. + +v1.1 (22 Feb 2008): + + * New package options: + + - numberline: + inserts \numberline{} in \addcontentsline when used with + the toc option. + + - numberedsection: + puts glossaries in numbered chapters/sections + + - translate: + translate=false option prevents glossaries package from + using pre-supplied translations. + + - description: + changes definition of \newacronym to allow a description + + - footnote: + changes definition of \newacronym to use a footnote on + first use + + - smallcaps: + changes definition of \newacronym to set acronyms in + small capitals + + - dua: + changes definition of \newacronym to always expand + acronyms + + * Added \setglossarysection + - changes the section type used by the glossaries + + * Added listdotted glossary style. + + * No longer uses xspace package; uses amsgen instead. + + * Added \glsname, \glsdesc, \glssymbol, \glsfirst, \glstext, + \glsplural and \glsfirstplural. + + * Added support for translator package. + +v1.08 (13 Oct 2007): + * Added multilingual support + * Fixed bug in listgroup and altlistgroup styles so that + \glsgroupheading uses \glsgetgrouptitle to get the group title + instead of displaying the label + * Fixed typo in error message text when the description key + is missing to \newglossaryentry. + +v1.07 (13 Sep 2007): + * Fixed bug causing incorrect page number for entries in the + first paragraph of a page. + +v1.06 (21 Aug 2007): + * Changed the license text + +v1.05 (10 Aug 2007): + * Changed the default value of the sort key to just use the + name key + * Added \@mkboth to \glossarysection + +v1.04 (3 Aug 2007): + * Added \glstextformat + +v1.03 (4 July 2007): + * Added \glspostdescription + +v1.02 (25 May 2007): + * Added overview section in the documentation + +v1.01 (17 May 2007): + * Added number range facility (equivalent to makeindex's |( and |) + formatting commands.) + * Added a space after \delimN and \delimR in the ist file. + +v1.0 (16 May 2007): Initial release diff --git a/Master/texmf-dist/doc/latex/glossaries/INSTALL b/Master/texmf-dist/doc/latex/glossaries/INSTALL new file mode 100644 index 00000000000..054c8ab7a25 --- /dev/null +++ b/Master/texmf-dist/doc/latex/glossaries/INSTALL @@ -0,0 +1,107 @@ +INSTALLATION
+
+If you have downloaded the glossaries package using the TeX Directory
+Structure (TDS), that is you have downloaded an archive containing
+doc, tex, scripts and source directories, you need to follow the
+"Installing from TDS" instructions below.
+
+If you have downloaded the following files:
+
+glossaries.dtx
+glossaries.ins
+makeglossaries
+makeglossaries.bat
+
+You need to follow the "Installing from DTX and INS" instructions
+below.
+
+For further information on installing LaTeX packages see:
+
+http://www.tex.ac.uk/cgi-bin/texfaq2html?label=installthings
+
+INSTALLING FROM TDS
+===================
+
+Files in tex and doc directories should go in the
+corresponding TEXMF directories (for example, /usr/share/texmf-local/
+or C:\localtexmf\). The scripts/glossaries/ directory
+contains the Perl script makeglossaries and the batch file
+makeglossaries.bat which should go somewhere on your operating system's
+PATH. (Both files are required for Windows, but only the Perl script is
+required for other operating systems.)
+
+*Remember to refresh TeX's database*
+
+A minimal example file called minimalgls.tex is provided for testing
+and debugging purposes and can be found in the package documentation
+samples directory (doc/latex/glossaries/samples/). To test your
+installation do:
+
+latex minimalgls
+makeglossaries minimalgls
+latex minimalgls
+
+The LaTeX2HTML style file, glossaries.perl, is located in
+source/latex/glossaries and should go in the LaTeX2HTML styles
+directory.
+
+INSTALLING FROM DTX AND INS
+===========================
+
+Run LaTeX on glossaries.ins to generate the package style files,
+sample files and LaTeX2HTML style file:
+
+latex glossaries.ins
+
+To create the package documentation (glossaries.pdf):
+
+pdflatex glossaries.dtx
+makeindex -s gind.ist glossaries
+makeindex -s gglo.ist -o glossaries.gls glossaries.glo
+pdflatex glossaries.dtx
+pdflatex glossaries.dtx
+
+If TEXMF denotes the base directory of your local TeX installation (e.g.
+/usr/share/texmf-local/ or C:\localtexmf\) then create the following
+directories (if they don't already exist):
+
+TEXMF/doc/latex/glossaries
+TEXMF/doc/latex/glossaries/samples
+TEXMF/tex/latex/glossaries
+TEXMF/tex/latex/glossaries/base
+TEXMF/tex/latex/glossaries/styles
+TEXMF/tex/latex/glossaries/dict
+
+Move the sample files (*.tex) to TEXMF/doc/latex/glossaries/sample/
+
+Move the documentation (*.pdf) to TEXMF/doc/latex/glossaries/
+
+Move glossaries.sty to TEXMF/tex/latex/glossaries/base/
+
+Move the other style files (*.sty) to TEXMF/tex/latex/glossaries/styles/
+
+Move the dictionary files (*.dic) to TEXMF/tex/latex/glossaries/dict/
+
+Move makeglossaries to somewhere on your path, e.g. /usr/bin/. You
+may need to edit the first line of makeglossaries if perl is
+located somewhere other than /usr/bin/.
+
+If you are a Windows user, you will also need to move makeglossaries.bat
+to the same location as makeglossaries, but you will need to have
+Perl installed to be able to use makeglossaries. (It is possible
+to use makeindex directly if you don't have Perl installed. See
+the manual, glossaries.pdf, for details.)
+
+*Remember to refresh TeX's database*
+
+A minimal example file called minimalgls.tex is provided for testing
+and debugging purposes. This file is created along with all the other
+sample files when you run glossaries.ins through LaTeX. To test your
+installation do:
+
+latex minimalgls
+makeglossaries minimalgls
+latex minimalgls
+
+If you want to use the glossaries package with LaTeX2HTML:
+move glossaries.perl to the LaTeX2HTML styles directory.
diff --git a/Master/texmf-dist/doc/latex/glossaries/README b/Master/texmf-dist/doc/latex/glossaries/README index 4e57293dab8..a03181fb5f6 100644 --- a/Master/texmf-dist/doc/latex/glossaries/README +++ b/Master/texmf-dist/doc/latex/glossaries/README @@ -1,42 +1,42 @@ -LaTeX Package : glossaries v 1.08 - -Last Modified : 13 October 2007 - -Author : Nicola Talbot - -This package is provided to assist generating glossaries. -The package supports acronyms and multiple glossaries. -New entries are defined to have a name and description (and -optionally an associated symbol.) Plural forms can also be -specified. New glossary styles can be defined, and preambles -and postambles can be specified. There is provision for loading -a database of terms, only terms used in the text will be added -to the relevant glossary. - -*This package replaces the glossary package which is now obsolete.* - -The package is supplied using the TeX Directory Structure (TDS). -Files in texmf directory should go in the corresponding -$LOCALTEXMF directories. The scripts directory contains the Perl -script makeglossaries and the batch file makeglossaries.bat -which should go somewhere on your operating system's PATH. (Both -files are required for Windows, only the Perl script is -required for other operating systems.) - -*Remember to refresh TeX's database* - -This package comes with a LaTeX2HTML style file glossaries.perl. -This is located in latex2html/styles and should be placed in -the relevant LaTeX2HTML styles directory, but note that -glossaries.perl only supplies a sub-set of the commands provided -by glossary.sty, so some commands may not be implemented, or -may be implemented in a different way. - -The package and documentation source code is also supplied as a -dtx and ins file located in texmf/source. - -This material is subject to the LaTeX Project Public License. -See http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html for the details of that license. - -http://theoval.cmp.uea.ac.uk/~nlct/ - +LaTeX Package : glossaries v 1.11
+
+Last Modified : 2 March 2008
+
+Author : Nicola Talbot
+
+This package is provided to assist generating glossaries.
+The package supports acronyms and multiple glossaries.
+New entries are defined to have a name and description (and
+optionally an associated symbol.) Plural forms can also be
+specified. New glossary styles can be defined, and preambles
+and postambles can be specified. There is provision for loading
+a database of terms, only terms used in the text will be added
+to the relevant glossary.
+
+*This package replaces the glossary package which is now obsolete.*
+
+INSTALLATION
+
+See INSTALL file for installation instructions.
+
+REQUIREMENTS
+
+The glossaries package requires at least version 2.5f (2006/11/18) of
+the xkeyval package.
+
+LaTeX2HTML
+
+This package comes with a LaTeX2HTML style file glossaries.perl
+which should be placed in the relevant LaTeX2HTML styles directory, but
+note that glossaries.perl only supplies a sub-set of the commands
+provided by glossaries.sty, so some commands may not be implemented or
+may be implemented in a different way.
+
+LICENCE
+
+This material is subject to the LaTeX Project Public License.
+See http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html
+for the details of that license.
+
+Author's home page: http://theoval.cmp.uea.ac.uk/~nlct/
+
diff --git a/Master/texmf-dist/doc/latex/glossaries/doc/CHANGES b/Master/texmf-dist/doc/latex/glossaries/doc/CHANGES deleted file mode 100644 index 4f3111053bc..00000000000 --- a/Master/texmf-dist/doc/latex/glossaries/doc/CHANGES +++ /dev/null @@ -1,37 +0,0 @@ -glossaries change log: - -v1.08 (13 Oct 2007): - * Added multilingual support - * Fixed bug in listgroup and altlistgroup styles so that - \glsgroupheading uses \glsgetgrouptitle to get the group title - instead of displaying the label - * Fixed typo in error message text when the description key - is missing to \newglossaryentry. - -v1.07 (13 Sep 2007): - * Fixed bug causing incorrect page number for entries in the - first paragraph of a page. - -v1.06 (21 Aug 2007): - * Changed the license text - -v1.05 (10 Aug 2007): - * Changed the default value of the sort key to just use the - name key - * Added \@mkboth to \glossarysection - -v1.04 (3 Aug 2007): - * Added \glstextformat - -v1.03 (4 July 2007): - * Added \glspostdescription - -v1.02 (25 May 2007): - * Added overview section in the documentation - -v1.01 (17 May 2007): - * Added number range facility (equivalent to makeindex's |( and |) - formatting commands.) - * Added a space after \delimN and \delimR in the ist file. - -v1.0 (16 May 2007): Initial release diff --git a/Master/texmf-dist/doc/latex/glossaries/doc/glossaries.pdf b/Master/texmf-dist/doc/latex/glossaries/doc/glossaries.pdf Binary files differdeleted file mode 100644 index f43e59e629d..00000000000 --- a/Master/texmf-dist/doc/latex/glossaries/doc/glossaries.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/glossaries/doc/glossary2glossaries.pdf b/Master/texmf-dist/doc/latex/glossaries/doc/glossary2glossaries.pdf Binary files differdeleted file mode 100644 index fd9d18c7c63..00000000000 --- a/Master/texmf-dist/doc/latex/glossaries/doc/glossary2glossaries.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/glossaries/glossaries-manual.html b/Master/texmf-dist/doc/latex/glossaries/glossaries-manual.html new file mode 100644 index 00000000000..d442c01dab1 --- /dev/null +++ b/Master/texmf-dist/doc/latex/glossaries/glossaries-manual.html @@ -0,0 +1,3270 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> + +<!--Converted with LaTeX2HTML 2002 (1.67) +original version by: Nikos Drakos, CBLU, University of Leeds +* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan +* with significant contributions from: + Jens Lippmann, Marek Rouchal, Martin Wilck and others --> +<HTML> +<HEAD> +<TITLE>glossaries.sty v 1.11: LaTeX2e Package to Assist Generating Glossaries</TITLE> +<META NAME="description" CONTENT="glossaries.sty v 1.11: LaTeX2e Package to Assist Generating Glossaries"> +<META NAME="keywords" CONTENT="glossaries-manual"> +<META NAME="resource-type" CONTENT="document"> +<META NAME="distribution" CONTENT="global"> + +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> +<META NAME="Generator" CONTENT="LaTeX2HTML v2002"> +<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css"> + + +</HEAD> + +<BODY > +<A NAME="top"></A> + +<P> + +<P> + + <H1 ALIGN="CENTER">glossaries.sty v 1.11: LaTeX2e Package to Assist Generating Glossaries</H1> +<P ALIGN="CENTER"><STRONG>Nicola L.C. Talbot +<BR> +<BR> +School of Computing Sciences +<BR> +University of East Anglia +<BR> +Norwich. Norfolk +<BR> +NR4 7TJ. United Kingdom. +<BR><TT><A NAME="tex2html1" +HREF="http://theoval.cmp.uea.ac.uk/~nlct/">http://theoval.cmp.uea.ac.uk/~nlct/</A></TT></STRONG></P> +<P ALIGN="CENTER"><STRONG>2nd March 2008</STRONG></P> +<BR> + +<H2><A NAME="SECTION00010000000000000000"> +Contents</A> +</H2> +<!--Table of Contents--> + +<UL> +<LI><A NAME="tex2html34" + HREF="glossaries-manual.html#SECTION00020000000000000000">Introduction</A> +<UL> +<LI><A NAME="tex2html35" + HREF="glossaries-manual.html#SECTION00021000000000000000">Generating the associated glossary files</A> +<LI><A NAME="tex2html36" + HREF="glossaries-manual.html#SECTION00022000000000000000">Troubleshooting</A> +</UL> +<BR> +<LI><A NAME="tex2html37" + HREF="glossaries-manual.html#SECTION00030000000000000000">A Quick Guide For The Impatient</A> +<LI><A NAME="tex2html38" + HREF="glossaries-manual.html#SECTION00040000000000000000">Overview</A> +<UL> +<LI><A NAME="tex2html39" + HREF="glossaries-manual.html#SECTION00041000000000000000">Package Options</A> +<LI><A NAME="tex2html40" + HREF="glossaries-manual.html#SECTION00042000000000000000">Defining Glossary Entries</A> +<LI><A NAME="tex2html41" + HREF="glossaries-manual.html#SECTION00043000000000000000">Number lists</A> +<LI><A NAME="tex2html42" + HREF="glossaries-manual.html#SECTION00044000000000000000">Links to Glossary Entries</A> +<LI><A NAME="tex2html43" + HREF="glossaries-manual.html#SECTION00045000000000000000">Adding an entry to the glossary without generating text</A> +<LI><A NAME="tex2html44" + HREF="glossaries-manual.html#SECTION00046000000000000000">Displaying a glossary</A> +<LI><A NAME="tex2html45" + HREF="glossaries-manual.html#SECTION00047000000000000000">Defining New Glossaries</A> +<LI><A NAME="tex2html46" + HREF="glossaries-manual.html#SECTION00048000000000000000">Acronyms</A> +<LI><A NAME="tex2html47" + HREF="glossaries-manual.html#SECTION00049000000000000000">Unsetting and resetting entry flags</A> +<LI><A NAME="tex2html48" + HREF="glossaries-manual.html#SECTION000410000000000000000">Glossary Styles</A> +<LI><A NAME="tex2html49" + HREF="glossaries-manual.html#SECTION000411000000000000000">Defining your own glossary style</A> +</UL> +<BR> +<LI><A NAME="tex2html50" + HREF="glossaries-manual.html#SECTION00050000000000000000">Index</A> +</UL> +<!--End of Table of Contents--> +<P> + +<H1><A NAME="SECTION00020000000000000000"> +Introduction</A> +</H1> + +<P> +The <TT>glossaries</TT> package is provided to assist generating +glossaries. It has a certain amount of flexibility, allowing the user +to customize the format of the glossary and define multiple glossaries. +It also supports acronyms and glossary styles that include +symbols (in addition to a name and description) for glossary +entries. There is provision for loading a database of glossary terms +where only those terms used in the text are added to the glossary. +This package replaces the <TT>glossary</TT><A NAME="1800"></A> package which is now +obsolete. + +<P> +As from version 1.08, the <TT>glossaries</TT> package now has +limited multi-lingual support, thanks to all the people who have sent +me the relevant translations either via email or via comp.text.tex. +However you must load <TT>babel</TT><A NAME="1804"></A> <I>before</I> +<TT>glossaries</TT> to enable this. +As from version 1.1, the <TT>glossaries</TT> package also supports +Till Tantau's <TT>translator</TT><A NAME="1810"></A> package provided it is loaded +before the <TT>glossaries</TT> package. This makes it easier to change +the default translations or add new dictionaries. +If you don't want to use the predefined translations, you can use the +package option <TT>translate=false</TT><A NAME="1821"></A> and supply your own translations. + +<P> +This documentation is structured as follows: <A HREF="glossaries-manual.html#sec:quick">A Quick Guide For The Impatient</A> is for +people who want a few quick pointers of how to get started, +without having to read through lengthy descriptions, +and <A HREF="glossaries-manual.html#sec:overview">Overview</A> gives an overview of available commands +and their syntax. +<P> +<A HREF="glossaries-manual.html#top">Top</A> + +<P> + +<H2><A NAME="SECTION00021000000000000000"></A> +<A NAME="sec:makeglossaries"></A> +<BR> +Generating the associated glossary files +</H2> + +<P> +The <TT>glossaries</TT> package comes with the Perl script +<TT>makeglossaries</TT><A NAME="1827"></A> which will run <TT>makeindex</TT><A NAME="1830"></A> on +all the glossary files using a customized <TT>makeindex</TT><A NAME="1833"></A> +<TT>.ist</TT><A NAME="1836"></A> style file (which is created by <TT>\makeglossaries</TT><A NAME="1838"></A>). +The relevant extensions are obtained from the +auxiliary file, so you should only pass the basename as the +argument. For example, if your document is called +<TT>myfile.tex</TT>, do: +<PRE> +latex myfile +makeglossaries myfile +latex myfile +</PRE> +You may need to explicitly load <TT>makeglossaries</TT><A NAME="1841"></A> into +Perl: +<PRE> +perl makeglossaries myfile +</PRE> +There is a batch file called <TT>makeglossaries.bat</TT> which +does this for Windows users. + +<P> +If you don't have Perl installed, you will have to run +<TT>makeindex</TT><A NAME="1844"></A> for each glossary type you have defined. +For example, if you have used the <TT>acronym</TT><A NAME="1852"></A> package option +then you will have both a main glossary as well as a list of acronyms, so you +will need to do (assuming your document is called <TT>myfile.tex</TT>): +<PRE> +makeindex -s myfile.ist -t myfile.glg -o myfile.gls myfile.glo +makeindex -s myfile.ist -t myfile.alg -o myfile.acr myfile.acn +</PRE> +This requires remembering all extensions for each of the glossaries +defined in your document, so where possible you should use +<TT>makeglossaries</TT><A NAME="1856"></A> instead to reduce the possibility of error. +Don't pass all the glossary files in a single call to +<TT>makeindex</TT><A NAME="1859"></A> or it will merge all your glossaries into a +single glossary. + +<P> +If any problems occur, remember to check the transcript files +(e.g. <TT>.glg</TT><A NAME="1862"></A> or <TT>.alg</TT><A NAME="1864"></A>) for messages. +<P> +<A HREF="glossaries-manual.html#top">Top</A> + +<P> + +<H2><A NAME="SECTION00022000000000000000"> +Troubleshooting</A> +</H2> + +<P> +The glossaries package comes with a minimal file called +<TT>minimalgls.tex</TT> which can be used for testing. This +should be located in <TT>texmf/doc/latex/glossaries/samples/</TT>. Further +information on debugging LaTeX code is available at +<TT><A NAME="tex2html2" + HREF="http://theoval.cmp.uea.ac.uk/~nlct/latex/minexample/">http://theoval.cmp.uea.ac.uk/~nlct/latex/minexample/</A></TT>. + +<P> +There is a list of frequently asked questions for the +<TT>glossaries</TT> package available at +<TT><A NAME="tex2html3" + HREF="http://theoval.cmp.uea.ac.uk/~nlct/latex/packages/faq/glossariesfaq.html">http://theoval.cmp.uea.ac.uk/~nlct/latex/packages/faq/glossariesfaq.html</A></TT>. +<P> +<A HREF="glossaries-manual.html#top">Top</A> + +<P> + +<H1><A NAME="SECTION00030000000000000000"></A> +<A NAME="sec:quick"></A> +<BR> +A Quick Guide For The Impatient +</H1> + +<P> +This section is for people who want a few quick pointers +of how to get started, without having to read through +lengthy descriptions. + +<P> + +<OL> +<LI>Load <TT>glossaries</TT> <I>after</I> <TT>hyperref</TT><A NAME="1874"></A>: +<PRE> +\usepackage{hyperref} +\usepackage{glossaries} +</PRE> +Similarly for the <TT>html</TT><A NAME="1877"></A> package: +<PRE> +\usepackage{html} +\usepackage{glossaries} +</PRE> + +<P> +</LI> +<LI>Always use <TT>\makeglossaries</TT><A NAME="1880"></A> if you want the glossary +entries to be written to the glossary file: +<PRE> +\documentclass{article} +\usepackage{glossaries} +\makeglossaries +</PRE> +If you don't use <TT>\makeglossaries</TT><A NAME="1883"></A>, your glossaries will +not appear in the document! + +<P> +</LI> +<LI>Use <TT>\printglossaries</TT><A NAME="1886"></A> to make your glossaries appear +in the document at that point. For example: +<PRE> +\maketitle +\printglossaries +\section{Introduction} +</PRE> +Note that only the glossary entries that have been used in the +document text will appear in the glossary. + +<P> +</LI> +<LI>When you have created your document, run LaTeX on it, +then the Perl script <TT>makeglossaries</TT><A NAME="1889"></A>, then run LaTeX on it again: +<PRE> +latex myfile +makeglossaries myfile +latex myfile +</PRE> +(You may need to run LaTeX again if you have used the <TT>toc</TT><A NAME="1897"></A> +package option.) +If you use Windows, there is a batch file called +<TT>makeglossaries.bat</TT> which you can use, but you will +still need Perl installed. + +<P> +</LI> +<LI>New glossaries can be defined using: +<P> +<TT>\newglossary</TT><A NAME="1901"></A><TT>[</TT><EM>log-ext</EM><TT>]{</TT><EM>label</EM><TT>}{</TT><EM>in-ext</EM><TT>}{</TT><EM>out-ext</EM><TT>}{</TT><EM>title</EM><TT>}</TT> +<P> +where <I>label</I> is an identifying label, +<I>in-ext</I> is the extension of the file to be created +by <TT>makeindex</TT><A NAME="1904"></A> (called by <TT>makeglossaries</TT><A NAME="1907"></A>), +<I>out-ext</I> is the extension of the file to be read by +<TT>makeindex</TT><A NAME="1910"></A> and <I>title</I> is the title for this +new glossary. The first optional argument <I>log-ext</I> specifies +the extension of the <TT>makeindex</TT><A NAME="1913"></A> transcript file. Example: +<PRE> +\newglossary[nlg]{notation}{not}{ntn}{Notation} +</PRE> +This glossary's label is <TT>notation</TT> and its title +will be Notation. If you use <TT>makeglossaries</TT><A NAME="1916"></A>, the +<TT>makeindex</TT><A NAME="1919"></A> transcript will be written to a file with the +extension <TT>.nlg</TT><A NAME="1922"></A>. If <I>log-ext</I> is omitted, the extension +<TT>.glg</TT><A NAME="1924"></A> will be used. + +<P> +</LI> +<LI>Any new glossaries must be defined before +<TT>\makeglossaries</TT> +<PRE> +\documentclass{article} +\usepackage{glossaries} +\newglossary{notation}{not}{ntn}{Notation} +\makeglossaries +</PRE> + +<P> +</LI> +<LI>If you use the <TT>acronym</TT><A NAME="1931"></A> package option, the +<TT>glossaries</TT> package +will automatically create a new glossary type labelled +<TT>acronym</TT>: +<PRE> +\usepackage[acronym]{glossaries} +</PRE> + +<P> +</LI> +<LI>If your pages have a hyphen compositor (i.e. your page +numbers appear in the form 2-1), redefine <TT>\glscompositor</TT><A NAME="1936"></A> +<I>before</I> <TT>\makeglossaries</TT><A NAME="1939"></A>: +<PRE> +\documentclass{article} +\usepackage{glossaries} +\renewcommand{\glscompositor}{-} +\makeglossaries +</PRE> + +<P> +</LI> +<LI>To add the glossaries to the table of contents use the +<TT>toc</TT><A NAME="1947"></A> package option: +<PRE> +\usepackage[toc]{glossaries} +</PRE> + +<P> +</LI> +<LI>Define a new entry with: +<P> +<TT>\newglossaryentry</TT><A NAME="1951"></A><TT>{</TT><EM>label</EM><TT>}{</TT><EM>key-val list</EM><TT>}</TT> +<P> +The <I>key-val list</I> must at least contain a <TT>name</TT><A NAME="1954"></A> +key and a <TT>description</TT><A NAME="1957"></A> key. +For example: +<PRE> +\newglossaryentry{perl}{name=Perl, +description=A scripting language} +</PRE> +In this example, I have given the entry the label <TT>perl</TT>. +Whenever I want to use this entry, that is the label I need +to use to identify it. + +<P> +</LI> +<LI>If the entry name starts with an accented letter, you will +need to group the first letter (otherwise it will cause a +problem for <TT>\Gls</TT><A NAME="1960"></A> and <TT>\Glspl</TT><A NAME="1963"></A>): +<PRE> +\newglossaryentry{elite}{name={{\'e}lite}, +description={select group or class}} +</PRE> + +<P> +</LI> +<LI>If you have multiple glossaries, use the <TT>type</TT><A NAME="1966"></A> +key to specify in which glossary the entry belongs. For example: +<PRE> +\newglossary{languages}{lan}{lng}{Index of Languages} + +\makeglossaries + +\newglossaryentry{perl}{name=Perl, +description=A scripting language, +type=languages} +</PRE> +If <TT>type</TT><A NAME="1969"></A> is omitted, the default glossary is used. + +<P> +</LI> +<LI>Remember to group values that have a comma or equal sign. +For example: +<PRE> +\newglossaryentry{pagelist}{name=page list, +description={A list of individual pages or page ranges +(e.g.\ 1,2,4,7--9)}} +</PRE> + +<P> +</LI> +<LI>Plural forms are assumed to be the singular form with an +"s" appended, unless otherwise specified. To specify an +irregular plural, use the <TT>plural</TT><A NAME="1972"></A> key. For example: +<PRE> +\newglossaryentry{matrix}{name=matrix, +description=rectangular array of quantities, +plural=matrices} +</PRE> + +<P> +</LI> +<LI>The way the term appears in the main text can be different +from the way the term appears in the glossary: +<PRE> +\newglossaryentry{matrix}{name=Matrix, +description=rectangular array of quantities, +text=matrix, +plural=matrices} +</PRE> +In this example, the entry name appears as "Matrix" in the +glossary, and either "matrix" or "matrices" in the text. + +<P> +</LI> +<LI>The way the term appears on first use can be different +to the way it appears subsequently: +<PRE> +\newglossaryentry{singmtx}{name=Singular Matrix, +description=A matrix with a zero determinant, +first=singular matrix (SM), +text=SM, +firstplural=singular matrices (SMs)} +</PRE> +In this example, the entry name appears as "Singular Matrix" in +the glossary, and in the text it appears as "singular matrix (SM)" +or "singular matrices (SMs)" the first time the entry is used, +and subsequently appears as "SM" or "SMs". + +<P> +</LI> +<LI>The quick and easy way to define an acronym is to use: +<P> +<TT>\newacronym</TT><A NAME="1975"></A><TT>[</TT><EM>key-val list</EM><TT>]{</TT><EM>label</EM><TT>}{</TT><EM>abbrev</EM><TT>}{</TT><EM>long</EM><TT>}</TT> +<P> +For example: +<PRE> +\newacronym{svm}{SVM}{support vector machine} +</PRE> +This is equivalent to: +<PRE> +\newglossaryentry{svm}{type=\acronymtype, +name={SVM}, +description={support vector machine}, +text={SVM}, +first={support vector machine (SVM)}, +plural={SVMs}, +firstplural={support vector machines (SVMs)}} +</PRE> +(The value of <TT>\acronymtype</TT><A NAME="1978"></A> varies depending on whether +the <TT>acronym</TT><A NAME="1986"></A> package option is used or not. +The optional argument <I>key-val list</I> can be used to +override any of the <TT>\newglossaryentry</TT><A NAME="1990"></A> keys; for +example, if the acronym has an irregular plural.) + +<P> +</LI> +<LI>The font used to display the entry name in the glossary +is governed by <TT>\glsnamefont</TT><A NAME="1993"></A>. This can be redefined +as required. For example, to make the entry names appear +in a medium sans-serif font do: +<PRE> +\renewcommand{\glsnamefont}[1]{\textsf{\mdseries #1}} +</PRE> +Note that the list-like glossary styles defined in the +<TT>glossary-list</TT><A NAME="1996"></A> package place the entry name in +the optional argument to <TT>\item</TT><A NAME="1999"></A>, so they will +appear in bold, unless you redefine <TT>\glsnamefont</TT><A NAME="2002"></A> to counteract the +bold font. + +<P> +</LI> +<LI>In the document use <TT>\gls</TT><A NAME="2005"></A><TT>{</TT><EM>label</EM><TT>}</TT> +to use a predefined term (this will also enter the term into +the associated glossary output file). For example: +<PRE> +A \gls{singmtx} is a matrix with a zero determinant. +</PRE> + +<P> +</LI> +<LI>Other variations: + +<UL> +<LI><TT>\Gls</TT><A NAME="2008"></A><TT>{</TT><EM>label</EM><TT>}</TT> : like <TT>\gls</TT>, +but with first letter in upper case +</LI> +<LI><TT>\GLS</TT><A NAME="2011"></A><TT>{</TT><EM>label</EM><TT>}</TT> : like <TT>\gls</TT>, +but all upper case. +</LI> +<LI><TT>\glspl</TT><A NAME="2014"></A><TT>{</TT><EM>label</EM><TT>}</TT> : use plural +</LI> +<LI><TT>\Glspl</TT><A NAME="2017"></A><TT>{</TT><EM>label</EM><TT>}</TT> : use plural with +first letter in upper case +</LI> +<LI><TT>\GLSpl</TT><A NAME="2020"></A><TT>{</TT><EM>label</EM><TT>}</TT> : use plural but +all upper case +</LI> +<LI><TT>\glslink</TT><A NAME="2023"></A><TT>{</TT><EM>label</EM><TT>}{</TT><EM>link text</EM><TT>}</TT> : +use <I>link text</I> to link to the given entry in the glossary. +</LI> +</UL> +For example, the following will produce the plural form with +the first letter in uppercase: +<PRE> +\Glspl{singmtx} are matrices with a zero determinant. +</PRE> + +<P> +</LI> +<LI>Additional text can be appended to the link using the +end optional argument. For example, to form the possessive: +<PRE> +The \gls{singmtx}['s] dimensions \ldots +</PRE> + +<P> +</LI> +<LI>The format of the associated entry number can be +changed using the <TT>format</TT><A NAME="2026"></A> key in the optional argument. +Note that the value of the <TT>format</TT><A NAME="2029"></A> key should be the +name of a command <I>without</I> the initial backslash. For +example: +<PRE> +The primary definition of \glspl[format=textbf]{singmtx}. +</PRE> +In this example the relevant glossary entry will have the +page number in bold (since it uses <TT>\textbf</TT>) but +it will no longer have a hyperlink (if hyperlinks are enabled.) + +<P> +</LI> +<LI>The <TT>glossaries</TT> package provides commands to +change the font whilst ensuring that the number remains a +hyperlink. These are of the form <TT>\hyper</TT><I>xx</I> and +are equivalent to the standard font changing commands of the +form <TT>\text</TT><I>xx</I>, as well as <TT>\hyperemph</TT><A NAME="2033"></A> +(which uses <TT>\emph</TT><A NAME="2036"></A>.) For example: +<PRE> +The primary definition of \glspl[format=hyperbf]{singmtx}. +</PRE> + +<P> +</LI> +<LI>Don't use declarations in <TT>format</TT><A NAME="2039"></A> as this can +cause unpredictable results, as there is no guarantee that the effect +will be localised to the required text. + +<P> +</LI> +<LI>Entries can be added to the glossary without producing +any text using <TT>\glsadd</TT><A NAME="2042"></A><TT>{</TT><EM>label</EM><TT>}</TT> or +<TT>\glsaddall</TT><A NAME="2045"></A>. These commands also taken an optional +argument where you can specify the format. For example +<PRE> +\glsadd[format=hyperbf]{singmtx} +</PRE> +will add a line to the +glossary file for the specified term, but will not produce +any text where the command occurs. + +<P> +</LI> +<LI>A number range can be entered using <code>format=(</code> and +<code>format=)</code> to mark the beginning and ending of the +range<A NAME="tex2html4" + HREF="#foot370"><SUP>1</SUP></A>. For example: +<PRE> + \glsadd[format=(]{singmtx} + This is a very long section all about \glspl{singmtx}. + + % lots of text omitted + + \glsadd[format=)]{singmtx} +</PRE> +This is equivalent to <TT>makeindex</TT><A NAME="2048"></A>'s <code>|(</code> and <code>|)</code> +formats. + +<P> +</LI> +<LI>You can combine the range markers with a formatting command +(again without the preceding backslash). For example: +<PRE> + This is the start of a very long section all + about \glspl[format=(hyperbf]{singmtx}. + + % lots of text omitted + + This is the end a very long section all about + \glspl[format=)hyperbf]{singmtx}. +</PRE> + +<P> +</LI> +<LI>Only those terms that have actually been used in the +document will be placed in the glossary. If you have defined +a term that doesn't appear in the document, then it means +you haven't used it in the text (either via <TT>\glslink</TT><A NAME="2051"></A> +or <TT>\gls</TT><A NAME="2054"></A> and related commands, or via <TT>\glsadd</TT><A NAME="2057"></A> +or <TT>\glsaddall</TT><A NAME="2060"></A>.) + +<P> +</LI> +<LI>To change the sorting order, use the <TT>sort</TT><A NAME="2063"></A> key. +For example: +<PRE> +\newglossaryentry{universal}{name={\ensuremath{\mathcal{U}}}, +description=The universal set, +sort=U} +</PRE> + +<P> +</LI> +<LI>You don't need to escape <TT>makeindex</TT><A NAME="2066"></A>'s special characters: +<PRE> +\newglossaryentry{quote}{name={"}, +description={Double quote character}} + +\newglossaryentry{exclam}{name={!}, +description={Exclamation mark}} + +\newacronym{rna}{RNA}{ribonukleins\"aure} +</PRE> + +<P> +</LI> +<LI>Associated symbols can also be specified, but whether the +symbol appears in the glossary depends on the glossary style. +For example: +<PRE> +\newglossaryentry{metre}{name={metre}, +description={A metric measurement of length}, +symbol={m}} +</PRE> +The predefined glossary styles that display the entry symbol +are: <TT>long4col</TT><A NAME="2069"></A>, <TT>long4colheader</TT><A NAME="2071"></A>, +<TT>long4colborder</TT><A NAME="2073"></A>, <TT>long4colheaderborder</TT><A NAME="2075"></A>, +<TT>super4col</TT><A NAME="2077"></A>, <TT>super4colheader</TT><A NAME="2079"></A>, +<TT>super4colborder</TT><A NAME="2081"></A> and <TT>super4colheaderborder</TT><A NAME="2083"></A>. +All the other styles supplied by this package ignore the associated +symbol. + +<P> +</LI> +<LI>Glossary styles can be set using the <TT>style</TT><A NAME="2090"></A> +package option. For example: +<PRE> +\usepackage[style=long3col]{glossaries} +</PRE> +or using <TT>\glossarystyle</TT><A NAME="2094"></A><TT>{</TT><EM>style</EM><TT>}</TT>. For example: +<PRE> +\glossarystyle{altlist} +</PRE> +The predefined glossary styles provided by the <TT>glossaries</TT> +bundle are listed in <A HREF="glossaries-manual.html#sec:styles">Glossary Styles</A>. + +<P> +</LI> +<LI>The list of numbers associated with each glossary entry +can be suppressed using the package option <TT>nonumberlist</TT><A NAME="2103"></A>: +<PRE> +\usepackage[nonumberlist]{glossaries} +</PRE> + +<P> +</LI> +<LI>By default, the glossaries will appear in an unnumbered +chapter if chapters are defined, otherwise in an unnumbered +section. This can be changed using the <TT>section</TT><A NAME="2112"></A> package +option. For example, to make the glossaries appear in an unnumbered +section, even if chapters are defined, do: +<PRE> +\usepackage[section]{glossaries} +</PRE> +Other sectional units can also be specified as +<TT>section</TT><A NAME="2121"></A>=<I>value</I>. For example, to make the glossaries +appear in unnumbered subsections: +<PRE> +\usepackage[section=subsection]{glossaries} +</PRE> + +<P> +</LI> +</OL> +<P> +<A HREF="glossaries-manual.html#top">Top</A> + +<P> + +<H1><A NAME="SECTION00040000000000000000"></A><A NAME="sec:overview"></A> +<BR> +Overview +</H1> + +<P> + +<H2><A NAME="SECTION00041000000000000000"> +Package Options</A> +</H2> + +<P> +The <TT>glossaries</TT> package options are as follows: +<DL> +<DT><STRONG><TT>toc</TT><A NAME="2134"></A></STRONG></DT> +<DD>Add the glossaries to the table of contents. + +<P> +</DD> +<DT><STRONG><TT>numberline</TT><A NAME="2143"></A></STRONG></DT> +<DD>When used with <TT>toc</TT><A NAME="2152"></A>, this will +add <TT>\numberline</TT><code>{}</code> in the final argument of +<TT>\addcontentsline</TT>. This will align the table of contents entry +with the numbered section titles. Note that this option has no +effect if the <TT>toc</TT><A NAME="2161"></A> option is omitted. If <TT>toc</TT><A NAME="2170"></A> is +used without <TT>numberline</TT><A NAME="2179"></A>, the title will be aligned with +the section numbers rather than the section titles. + +<P> +</DD> +<DT><STRONG><TT>acronym</TT><A NAME="2188"></A></STRONG></DT> +<DD>Make a separate glossary for acronyms. + +<P> +</DD> +<DT><STRONG><TT>section</TT><A NAME="2197"></A></STRONG></DT> +<DD>This is a <I>key</I>=<I>value</I> option. Its +value should be the name of a sectional unit (e.g. chapter). +This will make the glossaries appear in the named sectional unit, +otherwise each glossary will appear in a chapter, if chapters +exists, otherwise in a section. Unnumbered sectional units will be used +by default. Example: +<PRE> +\usepackage[section=subsection]{glossaries} +</PRE> +You can omit the value if you want to use sections, i.e. <PRE> +\usepackage[section]{glossaries} +</PRE> +is equivalent to +<PRE> +\usepackage[section=section]{glossaries} +</PRE> +You can change this value later in the document using +<TT>\setglossarysection</TT><A NAME="2201"></A><TT>{</TT><EM>type</EM><TT>}</TT>. + +<P> +</DD> +<DT><STRONG><TT>numberedsection</TT><A NAME="2209"></A></STRONG></DT> +<DD>The glossaries are placed in unnumbered sectional units by default, +but this can be changed using <TT>numberedsection</TT><A NAME="2218"></A>. This option can take +three possible values: <TT>false</TT><A NAME="2222"></A> (no +number, i.e. use starred form), <TT>nolabel</TT><A NAME="2224"></A> +(numbered, i.e. unstarred form, but not labelled) and +<TT>autolabel</TT><A NAME="2226"></A> (numbered with automatic +labelling). If <TT>numberedsection=autolabel</TT><A NAME="2235"></A> is used, each +glossary is given a label that matches the glossary type, so the +main (default) glossary is labelled <TT>main</TT>, the list of +acronyms is labelled <TT>acronym</TT><A NAME="tex2html5" + HREF="#foot1670"><SUP>2</SUP></A> and additional glossaries are labelled +using the value specified in the first mandatory argument to +<TT>\newglossary</TT>. For example, if you load <TT>glossaries</TT> +using: +<PRE> +\usepackage[section,numberedsection=autolabel]{glossaries} +</PRE> +then each glossary will appear in a numbered section, and can +be referenced using something like: +<PRE> +The main glossary is in section~\ref{main} and the list of +acronyms is in section~\ref{acronym}. +</PRE> +If you can't decide whether to have the acronyms in the main +glossary or a separate list of acronyms, you can use +<TT>\acronymtype</TT><A NAME="2247"></A> which is set to <TT>main</TT> if the +<TT>acronym</TT><A NAME="2255"></A> option is not used and is set to <TT>acronym</TT> +if the <TT>acronym</TT><A NAME="2264"></A> option is used. For example: +<PRE> +The list of acronyms is in section~\ref{\acronymtype}. +</PRE> + +<P> +</DD> +<DT><STRONG><TT>style</TT><A NAME="2273"></A></STRONG></DT> +<DD>This is a <I>key</I>=<I>value</I> option. Its +value should be the name of the glossary style to use. Predefined +glossary styles are listed <A HREF="glossaries-manual.html#sec:styles">later</A>. + +<P> +</DD> +<DT><STRONG><TT>nonumberlist</TT><A NAME="2282"></A></STRONG></DT> +<DD>This option will suppress the +associated number lists<A NAME="2285"></A> in the glossaries (see also +<A HREF="glossaries-manual.html#sec:numberlists">Number Lists</A>.) + +<P> +</DD> +<DT><STRONG><TT>counter</TT><A NAME="2292"></A></STRONG></DT> +<DD>This is a <I>key</I>=<I>value</I> option. The +value should be the name of the default counter to use in the number +lists<A NAME="2295"></A>. + +<P> +<A NAME="sanitize"></A> +</DD> +<DT><STRONG><TT>sanitize</TT><A NAME="2302"></A></STRONG></DT> +<DD>This is a <I>key</I>=<I>value</I> option whose +value is also a <I>key</I>=<I>value</I> list. By default, the +<TT>glossaries</TT> package sanitizes the values of the +<TT>name</TT><A NAME="2307"></A>, <TT>description</TT><A NAME="2310"></A> and <TT>symbol</TT><A NAME="2313"></A> keys used +when defining a new glossary entry. This may lead to unexpected results +if you try to display these values within the document text. This +sanitization can be switched off using the <TT>sanitize</TT><A NAME="2321"></A> package +option. For example, to switch off the sanitization for the +<TT>description</TT><A NAME="2325"></A> and <TT>name</TT><A NAME="2328"></A> keys, but not for the +<TT>symbol</TT><A NAME="2331"></A> key, do: +<PRE> +\usepackage[sanitize={name=false,description=false,% +symbol=true}]{glossaries} +</PRE> + +<P> +<B>Note</B>: this sanitization only applies to the <TT>name</TT><A NAME="2334"></A>, +<TT>description</TT><A NAME="2337"></A> and <TT>symbol</TT><A NAME="2340"></A> keys. It doesn't apply +to any of the other keys (except the <TT>sort</TT><A NAME="2343"></A> key which is +always sanitized) so fragile commands contained in the value of +the other keys must always be protected using <TT>\protect</TT>. +Since the value of the <TT>text</TT><A NAME="2346"></A> key is obtained from the +<TT>name</TT><A NAME="2349"></A> key, you will still need to protect fragile commands +in the <TT>name</TT><A NAME="2352"></A> key if you don't use the <TT>text</TT><A NAME="2355"></A> key. + +<P> +</DD> +<DT><STRONG><TT>babel</TT><A NAME="2363"></A></STRONG></DT> +<DD>This is a boolean key and is for use when +the <TT>glossaries</TT> package is used in conjunction with the +<TT>babel</TT><A NAME="2368"></A> package. The default is <TT>babel=true</TT><A NAME="2378"></A>, which +adds the glossary translations to <TT>babel</TT><A NAME="2380"></A>'s captions. If +you don't like the translations provided by the <TT>glossaries</TT> +package, you can set <TT>babel=false</TT><A NAME="2391"></A> and provide your own +translations. + +<P> +</DD> +<DT><STRONG><TT>description</TT><A NAME="2398"></A></STRONG></DT> +<DD>This option changes the definition of +<TT>\newacronym</TT><A NAME="2402"></A> to allow a description. See <A HREF="glossaries-manual.html#sec:acronyms">later</A> +for further details. + +<P> +</DD> +<DT><STRONG><TT>footnote</TT><A NAME="2410"></A></STRONG></DT> +<DD>This option changes the definition of +<TT>\newacronym</TT><A NAME="2414"></A> and the way that acronyms are displayed. See <A HREF="glossaries-manual.html#sec:acronyms">later</A> +for further details. + +<P> +</DD> +<DT><STRONG><TT>smallcaps</TT><A NAME="2422"></A></STRONG></DT> +<DD>This option changes the definition of +<TT>\newacronym</TT><A NAME="2426"></A> and the way that acronyms are displayed. See <A HREF="glossaries-manual.html#sec:acronyms">later</A> +for further details. + +<P> +</DD> +<DT><STRONG><TT>dua</TT><A NAME="2434"></A></STRONG></DT> +<DD>This option changes the definition of +<TT>\newacronym</TT><A NAME="2438"></A> so that acronyms are always expanded. +See <A HREF="glossaries-manual.html#sec:acronyms">later</A> +for further details. + +<P> +</DD> +</DL> +<P> +<A HREF="glossaries-manual.html#top">Top</A> + +<P> + +<H2><A NAME="SECTION00042000000000000000"></A> +<A NAME="sec:newglosentry"></A> +<BR> +Defining Glossary Entries +</H2> + +<P> +All glossary entries that are used in a document must be defined in +the preamble. Only those entries that occur in the document +(using any of the commands described in <A HREF="glossaries-manual.html#sec:glslink">Links to Glossary Entries</A> and +<A HREF="glossaries-manual.html#sec:glsadd">Adding an entry to the glossary without generating text</A>) will appear in the glossary. Each time an entry +is used in this way, a line is added to an associated glossary +(<TT>.glo</TT><A NAME="2444"></A>) file, which then needs to be converted into a +corresponding <TT>.gls</TT><A NAME="2446"></A> file which contains the typeset glossary +which is input by <TT>\printglossary</TT><A NAME="2448"></A> or +<TT>\printglossaries</TT><A NAME="2451"></A>. The Perl script <TT>makeglossaries</TT><A NAME="2454"></A> +can be used to call <TT>makeindex</TT><A NAME="2457"></A>, using a customised +<TT>.ist</TT><A NAME="2460"></A> style file, for each of the glossaries that are defined +in the document. Note that there should be no need for you to +explicitly edit or input any of these external files. + +<P> +The command <TT>\makeglossaries</TT> must be placed in the preamble in +order to create the customised <TT>makeindex</TT><A NAME="2462"></A> <TT>.ist</TT><A NAME="2465"></A> +style file and to ensure that glossary entries are written to the +appropriate output file. If you omit <TT>\makeglossaries</TT> none of the +glossaries will be created. Note that if your page numbers use a +hyphen compositor, you must set this by redefining +<TT>\glscompositor</TT> <I>before</I> +using <TT>\makeglossaries</TT>: +<PRE> +\renewcommand*{\glscompositor}{-} +</PRE> +(The default value of <TT>\glscompositor</TT> is a full stop.) + +<P> +New glossary entries are defined using the command: +<BR> +<BR><TT>\newglossaryentry{</TT><EM>label</EM><TT>}{</TT><EM>key-val list</EM><TT>}</TT> +<BR> +<BR> +The first +argument, <I>label</I>, must be a unique label with which to identify +this entry. The second argument, <I>key-val list</I>, is a +<I>key</I>=<I>value</I> list that supplies the relevant information +about this entry. There are two required fields: <TT>name</TT><A NAME="2467"></A> and +<TT>description</TT><A NAME="2470"></A>. Available fields are listed below: + +<P> +<DL> +<DT><STRONG><TT>name</TT><A NAME="2473"></A></STRONG></DT> +<DD>The name of the entry (as it will appear in the +glossary). + +<P> +</DD> +<DT><STRONG><TT>description</TT><A NAME="2476"></A></STRONG></DT> +<DD>A brief description of this term (to +appear in the glossary). + +<P> +</DD> +<DT><STRONG><TT>text</TT><A NAME="2479"></A></STRONG></DT> +<DD>How this entry will appear in the document text +when using <TT>\gls</TT><A NAME="2482"></A> (or one of its uppercase variants). If this +field is omitted, the value of the <TT>name</TT><A NAME="2485"></A> key is used. + +<P> +</DD> +<DT><STRONG><TT>first</TT><A NAME="2488"></A></STRONG></DT> +<DD>How the entry will appear in the document text +the first time it is used with <TT>\gls</TT><A NAME="2491"></A> (or one of its uppercase +variants). If this field is omitted, the value of the <TT>text</TT><A NAME="2494"></A> +key is used. + +<P> +</DD> +<DT><STRONG><TT>plural</TT><A NAME="2497"></A></STRONG></DT> +<DD>How the entry will appear in the document text +when using <TT>\glspl</TT><A NAME="2500"></A> (or one of its uppercase variants). +If this field is omitted, the value is obtained by appending an +"s" to the value of the <TT>text</TT><A NAME="2503"></A> field. + +<P> +</DD> +<DT><STRONG><TT>firstplural</TT><A NAME="2506"></A></STRONG></DT> +<DD>How the entry will appear in the document +text the first time it is used with <TT>\glspl</TT><A NAME="2509"></A> (or one of +its uppercase variants). If this field is omitted, the value is +obtained by appending an "s" to the value of the <TT>first</TT><A NAME="2512"></A> +field. + +<P> +</DD> +<DT><STRONG><TT>symbol</TT><A NAME="2515"></A></STRONG></DT> +<DD>This field is provided to allow the user to +specify an associated symbol, but most glossary styles ignore +this value. If omitted, the value is set to <TT>\relax</TT>. + +<P> +</DD> +<DT><STRONG><TT>sort</TT><A NAME="2518"></A></STRONG></DT> +<DD>This value indicates how <TT>makeindex</TT><A NAME="2521"></A> +should sort this entry. If omitted, the value is given by the +<TT>name</TT><A NAME="2524"></A> field. This value is equivalent to +<TT>makeindex</TT><A NAME="2527"></A>'s "actual" character (which is usually the +at-sign @ although the <TT>glossaries</TT> package uses a different +symbol). + +<P> +</DD> +<DT><STRONG><TT>type</TT><A NAME="2531"></A></STRONG></DT> +<DD>This is the glossary type to which this entry +belongs. If omitted, the default glossary is assumed +(<TT>type=main</TT>). The list of acronyms type is given by +<TT>\acronymtype</TT><A NAME="2534"></A> which will either be <TT>main</TT> or +<TT>acronym</TT>, depending on whether the <TT>acronym</TT><A NAME="2542"></A> package +option was used. +</DD> +</DL> +Note that if the <TT>text</TT><A NAME="2546"></A> key (or the <TT>name</TT><A NAME="2549"></A> key, if the +<TT>text</TT><A NAME="2552"></A> key is omitted) starts with an accented letter, +you must group the accented letter, otherwise it will cause a +problem for <TT>\Gls</TT> and <TT>\Glspl</TT>. For example: +<PRE> +\newglossaryentry{elite}{name={{\'e}lite}, +description={select group or class}} +</PRE> +(Likewise for the <TT>plural</TT><A NAME="2555"></A>, <TT>first</TT><A NAME="2558"></A> and +<TT>firstplural</TT><A NAME="2561"></A> keys.) + +<P> +You can store all your glossary entry definitions in another +file, and use: +<BR> +<BR><TT>\loadglsentries[</TT><EM>type</EM><TT>]{</TT><EM>filename</EM><TT>}</TT> +<BR> +<BR> +where <I>filename</I> is the name of the file containing all the +<TT>\newglossaryentry</TT> commands. The optional argument +<I>type</I> is the name of the glossary to which those entries +should belong, for those entries where the <TT>type</TT><A NAME="2564"></A> key has +been omitted. Note that only those entries that have been used +in the text will appear in the relevant glossaries. +<P> +<A HREF="glossaries-manual.html#top">Top</A> + +<P> + +<H2><A NAME="SECTION00043000000000000000"></A> +<A NAME="sec:numberlists"></A> +<BR> +Number lists +</H2> + +<P> +Each entry in the glossary has an associated <I>number list</I><A NAME="2570"></A>. +By default, +these numbers refer to the pages on which that entry has been used +(using any of the commands described in <A HREF="glossaries-manual.html#sec:glslink">Links to Glossary Entries</A> +and <A HREF="glossaries-manual.html#sec:glsadd">Adding an entry to the glossary without generating text</A>). The number list can be suppressed using +the <TT>nonumberlist</TT><A NAME="2577"></A> package option, or an alternative counter +can be set as the default using the <TT>counter</TT><A NAME="2586"></A> package option. +<P> +<A HREF="glossaries-manual.html#top">Top</A> + +<P> + +<H2><A NAME="SECTION00044000000000000000"></A> +<A NAME="sec:glslink"></A> +<BR> +Links to Glossary Entries +</H2> + +<P> +Once you have defined a glossary entry using +<TT>\newglossaryentry</TT><A NAME="2593"></A>, you can refer to that entry in the +document using one of the commands listed in this section. The +text which appears at that point in the document when using +one of these commands is referred to as the +<I>link text</I><A NAME="2596"></A> (even if there are no hyperlinks). + +<P> +The way the link text<A NAME="2597"></A> is displayed +depends on <TT>\glstextformat{</TT><EM>text</EM><TT>}</TT>. +For example, to make all link text<A NAME="2598"></A> appear in a sans-serif +font, do: +<PRE> +\renewcommand*{\glstextformat}[1]{\textsf{#1}} +</PRE> + +<P> +The command: +<BR> +<BR><TT>\glslink[</TT><EM>options</EM><TT>]{</TT><EM>label</EM><TT>}{</TT><EM>text</EM><TT>}</TT> +<BR> +<BR> +will place <I>text</I> in the document at that point and add +a line into the associated glossary file for the glossary entry +given by <I>label</I>. If hyperlinks are supported, <I>text</I> +will be a hyperlink to the relevant line in the glossary. The +optional argument <I>options</I> must be a <I>key</I>=<I>value</I> +list which can take any of the following keys: + +<P> +<DL> +<DT><STRONG><TT>format</TT><A NAME="2600"></A></STRONG></DT> +<DD>This specifies how to format the +associated number for this entry in the glossary. This value is +equivalent to the <TT>makeindex</TT><A NAME="2603"></A> encap value, and (as with +<TT>\index</TT>) the value needs to be the name of a command <I>without</I> +the initial backslash. As with <TT>\index</TT>, the characters <code>(</code> and +<code>)</code> can also be used to specify the beginning and ending of a +number range. Again as with <TT>\index</TT>, the command should be the name +of a command which takes an argument (which will be the associated +number). Be careful not to use a declaration (such as <TT>\bfseries</TT>) +instead of a text block command (such as <TT>\textbf</TT>) as the effect is +not guaranteed to be localised. If you want to apply more than one +style to a given entry (e.g. <B>bold</B> and <I>italic</I>) you will +need to create a command that applies both formats, e.g. +<PRE> +\newcommand*{\textbfem}[1]{\textbf{\emph{#1}}} +</PRE> +and use that command. + +<P> +If you are using hyperlinks and you want to change the font of the +hyperlink, don't use <TT>\hyperpage</TT> (provided by the <TT>hyperref</TT><A NAME="2606"></A> +package) as the numbers may not refer to a page number. +Instead, the <TT>glossaries</TT> package provides the following +number formats: +<DIV ALIGN="CENTER"> +<TABLE CELLPADDING=3> +<TR><TD ALIGN="LEFT"><TT>hyperrm</TT></TD> +<TD ALIGN="LEFT">The number is a serif hyperlink to the relevant part of the +document</TD> +</TR> +<TR><TD ALIGN="LEFT"><TT>hypersf</TT></TD> +<TD ALIGN="LEFT">The number is a sans-serif hyperlink to the relevant part +of the document</TD> +</TR> +<TR><TD ALIGN="LEFT"><TT>hypertt</TT></TD> +<TD ALIGN="LEFT">The number is a monospaced hyperlink to the relevant part +of the document</TD> +</TR> +<TR><TD ALIGN="LEFT"><TT>hyperbf</TT></TD> +<TD ALIGN="LEFT">The number is a bold hyperlink to the relevant part of the +document</TD> +</TR> +<TR><TD ALIGN="LEFT"><TT>hypermd</TT></TD> +<TD ALIGN="LEFT">The number is a medium weight hyperlink to the relevant +part of the document</TD> +</TR> +<TR><TD ALIGN="LEFT"><TT>hyperit</TT></TD> +<TD ALIGN="LEFT">The number is an italic hyperlink to the relevant +part of the document</TD> +</TR> +<TR><TD ALIGN="LEFT"><TT>hypersl</TT></TD> +<TD ALIGN="LEFT">The number is a slanted hyperlink to the relevant +part of the document</TD> +</TR> +<TR><TD ALIGN="LEFT"><TT>hyperup</TT></TD> +<TD ALIGN="LEFT">The number is an upright hyperlink to the relevant +part of the document</TD> +</TR> +<TR><TD ALIGN="LEFT"><TT>hypersc</TT></TD> +<TD ALIGN="LEFT">The number is a small caps hyperlink to the relevant +part of the document</TD> +</TR> +<TR><TD ALIGN="LEFT"><TT>hyperemph</TT></TD> +<TD ALIGN="LEFT">The number is an emphasized hyperlink to the relevant +part of the document</TD> +</TR> +</TABLE> + +</DIV> +Note that if the <TT>\hyperlink</TT> command hasn't been defined, +the <TT>hyper</TT><I>xx</I> formats are equivalent to the +analogous <TT>\text</TT><I>xx</I> font commands. If you want to +make a new format, you will need to define a command which takes +one argument and use that; for example, if you want the associated +number in the glossary to be in a bold sans-serif font, you can define a +command called, say, <TT>\hyperbsf</TT>: +<PRE> +\newcommand{\hyperbsf}[1]{\textbf{\hypersf{#1}}} +</PRE> +and then use <TT>hyperbsf</TT> as the value for the <TT>format</TT><A NAME="2610"></A> +key. + +<P> +</DD> +<DT><STRONG><TT>counter</TT><A NAME="2613"></A></STRONG></DT> +<DD>This specifies which counter +to use for the associated number for this glossary entry. (See also +<A HREF="glossaries-manual.html#sec:numberlists">Number Lists</A>.) + +<P> +</DD> +<DT><STRONG><TT>hyper</TT><A NAME="2616"></A></STRONG></DT> +<DD>This is a boolean key which can +be used to enable/disable the hyperlink to the relevant entry +in the glossary. (Note that setting <TT>hyper=true</TT> will have no +effect if <TT>\hyperlink</TT> has not been defined.) The default +value is <TT>hyper=true</TT>. + +<P> +</DD> +</DL> + +There is also a starred version: +<BR> +<BR><TT>\glslink*[</TT><EM>options</EM><TT>]{</TT><EM>label</EM><TT>}{</TT><EM>text</EM><TT>}</TT> +<BR> +<BR> +which is equivalent to <TT>\glslink</TT>, except it sets +<TT>hyper=false</TT>. + +<P> +The command: +<BR> +<BR><TT>\gls[</TT><EM>options</EM><TT>]{</TT><EM>label</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +is the same as <TT>\glslink</TT>, except that the link text<A NAME="2618"></A> +is determined from the values of the <TT>text</TT><A NAME="2620"></A> and +<TT>first</TT><A NAME="2623"></A> keys supplied when the entry was defined using +<TT>\newglossaryentry</TT><A NAME="2626"></A>. There are two uppercase variants: +<BR> +<BR> +<TT>\Gls[</TT><EM>options</EM><TT>]{</TT><EM>label</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +and +<BR> +<BR> +<TT>\GLS[</TT><EM>options</EM><TT>]{</TT><EM>label</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +which make the first letter of the link or all the link text +uppercase, respectively. + +<P> +The final optional argument <I>insert</I>, allows you to insert +some additional text into the link text. By default, this will +append <I>insert</I> at the end of the link text. The first optional +argument <I>options</I> is the same as the optional argument to +<TT>\glslink</TT><A NAME="2629"></A>. As with <TT>\glslink</TT>, these commands also have +a starred version that disable the hyperlink. + +<P> +There are also analogous plural forms: +<BR> +<BR> +<TT>\glspl[</TT><EM>options</EM><TT>]{</TT><EM>label</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +<TT>\Glspl[</TT><EM>options</EM><TT>]{</TT><EM>label</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +<TT>\GLSpl[</TT><EM>options</EM><TT>]{</TT><EM>label</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +These determine the link text from the <TT>plural</TT><A NAME="2632"></A> and +<TT>firstplural</TT><A NAME="2635"></A> keys supplied when the entry was first +defined. As before, these commands also have +a starred version that disable the hyperlink. + +<P> +The command: +<BR> +<BR><TT>\glstext[</TT><EM>options</EM><TT>]{</TT><EM>label</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +is similar to <TT>\gls</TT><A NAME="2638"></A> except that it always uses the value +of the <TT>text</TT><A NAME="2641"></A> key and does not mark the entry as +having been used. + +<P> +There are also analogous commands: +<BR> +<BR> +<TT>\Glstext[</TT><EM>options</EM><TT>]{</TT><EM>text</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +<TT>\GLStext[</TT><EM>options</EM><TT>]{</TT><EM>text</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +As before, these commands also have a starred version that disable +the hyperlink. + +<P> +The command: +<BR> +<BR><TT>\glsfirst[</TT><EM>options</EM><TT>]{</TT><EM>label</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +is similar to <TT>\gls</TT><A NAME="2644"></A> except that it always uses the value +of the <TT>first</TT><A NAME="2647"></A> key and does not mark the entry as +having been used. + +<P> +There are also analogous commands: +<BR> +<BR> +<TT>\Glsfirst[</TT><EM>options</EM><TT>]{</TT><EM>text</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +<TT>\GLSfirst[</TT><EM>options</EM><TT>]{</TT><EM>text</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +As before, these commands also have a starred version that disable +the hyperlink. + +<P> +The command: +<BR> +<BR><TT>\glsplural[</TT><EM>options</EM><TT>]{</TT><EM>label</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +is similar to <TT>\gls</TT><A NAME="2650"></A> except that it always uses the value +of the <TT>plural</TT><A NAME="2653"></A> key and does not mark the entry as +having been used. + +<P> +There are also analogous commands: +<BR> +<BR> +<TT>\Glsplural[</TT><EM>options</EM><TT>]{</TT><EM>text</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +<TT>\GLSplural[</TT><EM>options</EM><TT>]{</TT><EM>text</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +As before, these commands also have a starred version that disable +the hyperlink. + +<P> +The command: +<BR> +<BR><TT>\glsfirstplural[</TT><EM>options</EM><TT>]{</TT><EM>label</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +is similar to <TT>\gls</TT><A NAME="2656"></A> except that it always uses the value +of the <TT>firstplural</TT><A NAME="2659"></A> key and does not mark the entry as +having been used. + +<P> +There are also analogous commands: +<BR> +<BR> +<TT>\Glsfirstplural[</TT><EM>options</EM><TT>]{</TT><EM>text</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +<TT>\GLSfirstplural[</TT><EM>options</EM><TT>]{</TT><EM>text</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +As before, these commands also have a starred version that disable +the hyperlink. + +<P> +The command: +<BR> +<BR><TT>\glsname[</TT><EM>options</EM><TT>]{</TT><EM>label</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +is similar to <TT>\gls</TT><A NAME="2662"></A> except that it always uses the value +of the <TT>name</TT><A NAME="2665"></A> key and does not mark the entry as +having been used. Note: if you want to use this command and the +<TT>name</TT><A NAME="2668"></A> key contains commands, you will have to disable the +<A HREF="glossaries-manual.html#sanitize">sanitization</A> +of the <TT>name</TT><A NAME="2671"></A> key and protect fragile commands. + +<P> +There are also analogous commands: +<BR> +<BR> +<TT>\Glsname[</TT><EM>options</EM><TT>]{</TT><EM>text</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +<TT>\GLSname[</TT><EM>options</EM><TT>]{</TT><EM>text</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +As before, these commands also have a starred version that disable +the hyperlink. + +<P> +The command: +<BR> +<BR><TT>\glssymbol[</TT><EM>options</EM><TT>]{</TT><EM>label</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +is similar to <TT>\gls</TT><A NAME="2674"></A> except that it always uses the value +of the <TT>symbol</TT><A NAME="2677"></A> key and does not mark the entry as +having been used. Note: if you want to use this command and the +<TT>symbol</TT><A NAME="2680"></A> key contains commands, you will have to disable the +<A HREF="glossaries-manual.html#sanitize">sanitization</A> +of the <TT>symbol</TT><A NAME="2683"></A> key and protect fragile commands. + +<P> +There are also analogous commands: +<BR> +<BR> +<TT>\Glssymbol[</TT><EM>options</EM><TT>]{</TT><EM>text</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +<TT>\GLSsymbol[</TT><EM>options</EM><TT>]{</TT><EM>text</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +As before, these commands also have a starred version that disable +the hyperlink. + +<P> +The command: +<BR> +<BR><TT>\glsdesc[</TT><EM>options</EM><TT>]{</TT><EM>label</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +is similar to <TT>\gls</TT><A NAME="2686"></A> except that it always uses the value +of the <TT>description</TT><A NAME="2689"></A> key and does not mark the entry as +having been used. Note: if you want to use this command and the +<TT>description</TT><A NAME="2692"></A> key contains commands, you will have to disable the +<A HREF="glossaries-manual.html#sanitize">sanitization</A> +of the <TT>description</TT><A NAME="2695"></A> key and protect fragile commands. + +<P> +There are also analogous commands: +<BR> +<BR> +<TT>\Glsdesc[</TT><EM>options</EM><TT>]{</TT><EM>text</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +<TT>\GLSdesc[</TT><EM>options</EM><TT>]{</TT><EM>text</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +As before, these commands also have a starred version that disable +the hyperlink. + +<P> + +<P> +<A HREF="glossaries-manual.html#top">Top</A> + +<P> + +<H3><A NAME="SECTION00044100000000000000"></A> +<A NAME="sec:glsdisplay"></A> +<BR> +Changing the format of the link text +</H3> + +<P> +The format of the link text<A NAME="2700"></A> for <TT>\gls</TT><A NAME="2702"></A>, <TT>\glspl</TT><A NAME="2705"></A> +and their uppercase variants is governed by two commands: +<TT>\glsdisplayfirst</TT>, which is used the +first time a glossary entry is used in the text and +<TT>\glsdisplay</TT>, which is used subsequently. +Both commands take four arguments: the first is either the singular or +plural form given by the <TT>text</TT><A NAME="2708"></A>, <TT>plural</TT><A NAME="2711"></A>, +<TT>first</TT><A NAME="2714"></A> or <TT>firstplural</TT><A NAME="2717"></A> keys (used when the term was +defined) depending on context; the second argument is the term's +description (as supplied by the <TT>description</TT><A NAME="2720"></A> key); the third +argument is the symbol associated with the term (as supplied by the +<TT>symbol</TT><A NAME="2723"></A> key) and the fourth argument is the additional text +supplied in the final optional argument to <TT>\gls</TT> or +<TT>\glspl</TT> (or their uppercase variants). The default definitions +of <TT>\glsdisplay</TT> and <TT>\glsdisplayfirst</TT> simply +print the first argument immediately followed by the fourth argument. +The remaining arguments are ignored. + +<P> +For example, suppose you want a glossary of measurements and +units, you can use the <TT>symbol</TT><A NAME="2726"></A> key to store the unit: +<PRE> +\newglossaryentry{distance}{name=distance, +description={The length between two points}, +symbol={km}} +</PRE> +and now suppose you want <code>\gls{distance}</code> to produce +"distance (km)" on first use, then you can redefine +<TT>\glsdisplayfirst</TT> as follows: +<PRE> +\renewcommand{\glsdisplayfirst}[4]{#1#4 (#3)} +</PRE> +Note that the additional text is placed after <code>#1</code>, so +<code>\gls{distance}['s]</code> will produce "distance's (km)" +rather than "distance (km)'s" which looks a bit odd (even though +it may be in the context of "the distance (km) is measured between +the two points" -- but in this instance it may be better not to +use a contraction). + +<P> +Note also that all of the link text<A NAME="2728"></A> will be formatted according +to <TT>\glstextformat</TT><A NAME="2730"></A> (described earlier). So if you do, say: +<PRE> +\renewcommand{\glstextformat}[1]{\textbf{#1}} +\renewcommand{\glsdisplayfirst}[4]{#1#4 (#3)} +</PRE> +then <code>\gls{distance}</code> will produce "<B>distance (km)</B>". + +<P> +If you have multiple glossaries, changing <TT>\glsdisplayfirst</TT> and +<TT>\glsdisplay</TT> will change the way entries for all of the +glossaries appear when using commands <TT>\gls</TT>, <TT>\glspl</TT> and their +uppercase variants. If you only +want the change to affect entries for a given glossary, then you need +to use <TT>\defglsdisplay</TT> and +<TT>\defglsdisplayfirst</TT> instead +of redefining <TT>\glsdisplay</TT> and <TT>\glsdisplayfirst</TT>. + +<P> +Both <TT>\defglsdisplay</TT> and <TT>\defglsdisplayfirst</TT> take two arguments: +the first (which is optional) is the glossary name<A NAME="tex2html6" + HREF="#foot1718"><SUP>3</SUP></A> and the second is how the term should be +displayed when it is invoked using commands <TT>\gls</TT>, +<TT>\glspl</TT> and their uppercase variants. This is similar to the way <TT>\glsdisplayfirst</TT> was +redefined above. + +<P> +For example, suppose you have created a new glossary called +<TT>notation</TT> and you want to change the way the entry is +displayed on first use so that it includes the symbol, you can +do: +<PRE> +\defglsdisplayfirst[notation]{#1#4 (denoted #3)} +</PRE> +Now suppose you have defined an entry as follows: +<PRE> +\newglossaryentry{set}{type=notation, +name=set, +description={A collection of objects}, +symbol={$S$}, +} +</PRE> +The first time you reference this entry using <TT>\gls</TT> it +will be displayed as: "set (denoted <I>S</I>)" +(similarly for <TT>\glspl</TT> and the uppercase variants). + +<P> +Remember that if you use the <TT>symbol</TT><A NAME="2737"></A> key, you need to use a +glossary style that displays the symbol, as many of the styles ignore +it. In addition, if you want either the description or symbol to appear +in the link text<A NAME="2739"></A>, you will have to disable the +<A HREF="glossaries-manual.html#sanitize">sanitization</A> +of these keys and protect fragile commands. +<P> +<A HREF="glossaries-manual.html#top">Top</A> + +<P> + +<H3><A NAME="SECTION00044200000000000000"> +Enabling and disabling hyperlinks to glossary entries</A> +</H3> + +<P> +If you load the <TT>hyperref</TT><A NAME="2744"></A> or <TT>html</TT><A NAME="2747"></A> packages prior to +loading the <TT>glossaries</TT> package, commands such as <TT>\glslink</TT><A NAME="2751"></A> +and <TT>\gls</TT><A NAME="2754"></A>, described above, will automatically have hyperlinks +to the relevant glossary entry, unless the <TT>hyper</TT><A NAME="2757"></A> +option has been set to <TT>false</TT>. You can disable or enable links using: +<BR> +<BR><TT>\glsdisablehyper</TT> +<BR> +<BR> +and +<BR> +<BR><TT>\glsenablehyper</TT> +<BR> +<BR> +respectively. The effect can be localised by placing the commands +within a group. Note that you should only use <TT>\glsenablehyper</TT> +if the commands <TT>\hyperlink</TT><A NAME="2760"></A> and <TT>\hypertarget</TT><A NAME="2763"></A> have been +defined (for example, by the <TT>hyperref</TT><A NAME="2766"></A> package). + +<P> + +<H2><A NAME="SECTION00045000000000000000"></A> +<A NAME="sec:glsadd"></A> +<BR> +Adding an entry to the glossary without generating text +</H2> + +<P> +It is possible to add a line in the glossary file without +generating any text at that point in the document using: +<BR> +<BR><TT>\glsadd[</TT><EM>options</EM><TT>]{</TT><EM>label</EM><TT>}</TT> +<BR> +<BR> +This is similar to <TT>\glslink</TT><A NAME="2769"></A>, only it doesn't produce +any text (so therefore, there is no <TT>hyper</TT><A NAME="2772"></A> key +available in <I>options</I> but all the other options that can +be used with <TT>\glslink</TT> can be passed to <TT>\glsadd</TT>). + +<P> +To add all entries that have been defined, use: +<BR> +<BR><TT>\glsaddall[</TT><EM>glossary list</EM><TT>]</TT> +<BR> +<BR> +If there are multiple glossaries, you can specify to add only +those entries which belong to the glossaries listed in +<I>glossary list</I> (which must be a comma separated list of +glossary names). For example: +<PRE> +\glsaddall[notation] +</PRE> +will add all the entries that have been defined for the glossary +labelled "notation". +<P> +<A HREF="glossaries-manual.html#top">Top</A> + +<P> + +<H2><A NAME="SECTION00046000000000000000"> +Displaying a glossary</A> +</H2> + +<P> +The command <TT>\printglossaries</TT> will display all the +defined glossaries. Note that no glossaries will appear until +you have either used the Perl script <TT>makeglossaries</TT><A NAME="2778"></A> +or have directly used <TT>makeindex</TT><A NAME="2781"></A> (as described in +<A HREF="glossaries-manual.html#sec:makeglossaries">Generating the Associated Glossary Files</A>). If the glossary still +does not appear after you re-LaTeX your document, check +the <TT>makeindex</TT><A NAME="2784"></A> log files to see if there is a problem. +Remember that you also need to use the command <TT>\makeglossaries</TT><A NAME="2787"></A> in +the preamble to enable the glossaries. + +<P> +An individual glossary is displayed using: +<BR> +<BR><TT>\printglossary[</TT><EM>options</EM><TT>]</TT> +<BR> +<BR> +where <I>options</I> is a <I>key</I>=<I>value</I> list of options. +The following keys are available: +<DL> +<DT><STRONG><TT>type</TT><A NAME="2790"></A></STRONG></DT> +<DD>The value of this key +specifies which glossary to print. If omitted, the default +glossary is assumed. For example, to print the list of acronyms: +<PRE> +\printglossary[type=\acronymtype] +</PRE> + +<P> +</DD> +<DT><STRONG><TT>title</TT><A NAME="2793"></A></STRONG></DT> +<DD>This is the glossary's +title (overriding the title specified when the glossary was +defined). + +<P> +</DD> +<DT><STRONG><TT>toctitle</TT><A NAME="2796"></A></STRONG></DT> +<DD>This is the title +to use for the table of contents (if the <TT>toc</TT><A NAME="2804"></A> package +option has been used). If omitted, the glossary title is used. + +<P> +</DD> +<DT><STRONG><TT>style</TT><A NAME="2808"></A></STRONG></DT> +<DD>This specifies which +glossary style to use for this glossary, overriding the effect +of the <TT>style</TT><A NAME="2816"></A> option or <TT>\glossarystyle</TT><A NAME="2820"></A>. +</DD> +</DL> + +<P> +Information can be added to the start of the glossary by redefining +<TT>\glossarypreamble</TT>. For example: +<PRE> +\renewcommand{\glossarypreamble}{Numbers in italic indicate +primary definitions.} +</PRE> +This needs to be done before the glossary is displayed using +<TT>\printglossaries</TT> or <TT>\printglossary</TT>. Note that if you +want a different preamble for each glossary, you will need to +use a separate <TT>\printglossary</TT> for each glossary and change +the definition of <TT>\glossarypreamble</TT> between each glossary. +For example: +<PRE> +\renewcommand{\glossarypreamble}{Numbers in italic indicate +primary definitions.} +\printglossary +\renewcommand{\glossarypreamble}{} +\printglossary[type=acronym] +</PRE> +Alternatively, you can do something like: +<PRE> +\renewcommand{\glossarypreamble}{Numbers in italic indicate +primary definitions.\gdef\glossarypreamble{}} +\printglossaries +</PRE> +which will print the preamble text for the first glossary and +change the preamble to do nothing for subsequent glossaries. +(Note that <TT>\gdef</TT> is required as the glossary is placed within +a group.) + +<P> +There is an analogous command +called <TT>\glossarypostamble</TT> which is placed at the end of each +glossary. +<P> +<A HREF="glossaries-manual.html#top">Top</A> + +<P> + +<H3><A NAME="SECTION00046100000000000000"></A> +<A NAME="sec:glsnamefont"></A> +<BR> +Changing the way the entry name appears in the glossary +</H3> + +<P> +Within each glossary, each entry name is +formatted according to <TT>\glsnamefont</TT> which takes one argument: the +entry name. This command is always used regardless of the glossary +style. By default, <TT>\glsnamefont</TT> simply displays its argument in +whatever the surrounding font happens to be. This means that in the +list styles the name will appear in bold, since the name is placed in +the optional argument of <TT>\item</TT>, whereas in the tabular styles the +name will appear in the normal font. + +<P> +For example, suppose you want all the entry names to appear in +medium weight small caps, then you can do: +<PRE> +\renewcommand{\glsnamefont}[1]{\textsc{\mdseries #1}} +</PRE> + +<P> +<A HREF="glossaries-manual.html#top">Top</A> + +<P> + +<H2><A NAME="SECTION00047000000000000000"> +Defining New Glossaries</A> +</H2> + +<P> +A new glossary can be defined using: +<BR> +<BR><TT>\newglossary[</TT><EM>log-ext</EM><TT>]{</TT><EM>name</EM><TT>}{</TT><EM>in-ext</EM><TT>}{</TT><EM>out-ext</EM><TT>}{</TT><EM>title</EM><TT>}[</TT><EM>counter</EM><TT>]</TT> +<BR> +<BR> +where <I>name</I> is label to assign to this glossary. The arguments +<I>in-ext</I> and <I>out-ext</I> specify the extensions to give to the +input and output files for that glossary, <I>title</I> is the default +title for this new glossary and the final optional argument +<I>counter</I> specifies which counter to use for the associated number +lists<A NAME="2828"></A> (see also <A HREF="glossaries-manual.html#sec:numberlists">Number Lists</A>.) The +first optional argument specifies the extension for the +<TT>makeindex</TT><A NAME="2830"></A> transcript file (this information is only used by +<TT>makeglossaries</TT><A NAME="2833"></A> which picks up the information from the +auxiliary file.) + +<P> +Note that the main (default) glossary is automatically created as: +<PRE> +\newglossary{main}{gls}{glo}{\glossaryname} +</PRE> +so it can be identified by the label <TT>main</TT>. Using the +<TT>acronym</TT><A NAME="2841"></A> package option is equivalent to: +<PRE> +\newglossary[alg]{acronym}{acr}{acn}{\acronymname} +</PRE> +so it can be identified by the label <TT>acronym</TT>. If you are +not sure whether the <TT>acronym</TT><A NAME="2850"></A> option has been used, you +can identify the list of acronyms by the command +<TT>\acronymtype</TT> which is set to +<TT>acronym</TT>, if the <TT>acronym</TT><A NAME="2859"></A> option has been used, +otherwise it is set to <TT>main</TT>. +<P> +<A HREF="glossaries-manual.html#top">Top</A> + +<P> + +<H2><A NAME="SECTION00048000000000000000"></A> +<A NAME="sec:acronyms"></A> +<BR> +Acronyms +</H2> + +<P> +As you may have noticed in <A HREF="glossaries-manual.html#sec:newglosentry">Defining Glossary Entries</A>, when you +specify a new entry, you can specify alternate text to use when +the term is first used in the document. This provides a useful +means to define acronyms. The <TT>glossaries</TT> package defines +the command: +<BR> +<BR><TT>\newacronym[</TT><EM>key-val list</EM><TT>]{</TT><EM>label</EM><TT>}{</TT><EM>abbrv</EM><TT>}{</TT><EM>long</EM><TT>}</TT> +<BR> +<BR> +This is equivalent to: +<P> +<TT> +<TT>\newglossaryentry</TT></TT> <TT>{</TT><EM>label</EM><TT>}{type=<TT>\acronymtype</TT>, +<BR> +name=</TT> <TT>{</TT><EM>abbrv</EM><TT>}, +<BR> +description=</TT> <TT>{</TT><EM>long</EM><TT>}, +<BR> +text=</TT> <TT>{</TT><EM>abbrv</EM><TT>}, +<BR> +first={</TT> <I>long</I><TT> (</TT> <I>abbrv</I><TT>)}, +<BR> +plural={</TT> <I>abbrv</I><TT>s}, +<BR> +firstplural={</TT> <I>long</I><TT>s (</TT> <I>abbrv</I><TT>s)}, +<BR></TT> <I>key-val list</I><TT>}</TT> +<P> +As mentioned in the previous section, the command <TT>\acronymtype</TT> is +the name of the glossary in which the acronyms should appear. If the +<TT>acronym</TT><A NAME="2872"></A> package option has been used, this will be +<TT>acronym</TT>, otherwise it will be <TT>main</TT>. The acronyms can +then be used in exactly the same way as any other glossary entry. +For example, the following defines the acronym IDN: +<PRE> +\newacronym{idn}{IDN}{identification number} +</PRE> +This is equivalent to: +<PRE> +\newglossaryentry{idn}{type=\acronymtype, +name={IDN}, +description={identification number}, +text={IDN}, +first={identification number (IDN)}, +plural={IDNs}, +firstplural={identification numbers (IDNs)}} +</PRE> +so <code>\gls{idn}</code> will produce "identification number (IDN)" on +first use and "IDN" on subsequent uses. + +<P> +The <TT>glossaries</TT> package has options that change the +definition of <TT>\newacronym</TT><A NAME="2877"></A> for common acronym formats. These +options also change the way the link text is displayed for the +acronyms. + +<P> +Table <A HREF="glossaries-manual.html#tab:acronymsettings">1</A> lists the package options and +how the keys are used to store <I>long</I> (the long form) and +<I>abbrv</I> (the short form). Note that the <TT>smallcaps</TT><A NAME="2885"></A> +option redefines <TT>\acronymfont</TT><A NAME="2889"></A> so that it sets its argument +in small captials otherwise <TT>\acronymfont</TT> simply displays its +argument in the surrounding font. Note also that if none of +the package options <TT>smallcaps</TT><A NAME="2897"></A>, <TT>description</TT><A NAME="2906"></A> +or <TT>footnote</TT><A NAME="2915"></A> are used, <TT>\acronymfont</TT> is not used, so +changing the definition of <TT>\acronymfont</TT> will have no effect +under such circumstances. + +<P> +<BR><P></P> +<DIV ALIGN="CENTER"> + +<A NAME="tab:acronymsettings"></A> +<DIV ALIGN="CENTER"> +<A NAME="1161"></A> +<TABLE CELLPADDING=3> +<CAPTION><STRONG>Table 1:</STRONG> +Package options governing acronyms and how the information +is stored in the glossary keys</CAPTION> +<TR><TH ALIGN="LEFT"><B>Package Option </B></TH> +<TD ALIGN="LEFT"><TT>first</TT><A NAME="2919"></A></TD> +<TD ALIGN="LEFT"><TT>text</TT><A NAME="2922"></A></TD> +<TD ALIGN="LEFT"><TT>description</TT><A NAME="2925"></A></TD> +<TD ALIGN="LEFT"><TT>symbol</TT><A NAME="2928"></A></TD> +</TR> +<TR><TD ALIGN="LEFT"><TT>description</TT><A NAME="2936"></A>,<TT>footnote</TT><A NAME="2945"></A></TD> +<TD ALIGN="LEFT"><I>abbrv</I></TD> +<TD ALIGN="LEFT"><I>abbrv</I></TD> +<TD ALIGN="LEFT">user supplied</TD> +<TD ALIGN="LEFT"><I>long</I></TD> +</TR> +<TR><TD ALIGN="LEFT"><TT>description</TT><A NAME="2954"></A>,<TT>dua</TT><A NAME="2963"></A></TD> +<TD ALIGN="LEFT"><I>long</I></TD> +<TD ALIGN="LEFT"><I>long</I></TD> +<TD ALIGN="LEFT">user supplied</TD> +<TD ALIGN="LEFT"><I>abbrv</I></TD> +</TR> +<TR><TD ALIGN="LEFT"><TT>description</TT><A NAME="2972"></A></TD> +<TD ALIGN="LEFT"><I>long</I></TD> +<TD ALIGN="LEFT"><I>abbrv</I></TD> +<TD ALIGN="LEFT">user supplied</TD> +<TD ALIGN="LEFT"><I>abbrv</I></TD> +</TR> +<TR><TD ALIGN="LEFT"><TT>footnote</TT><A NAME="2981"></A></TD> +<TD ALIGN="LEFT"><I>abbrv</I></TD> +<TD ALIGN="LEFT"><I>abbrv</I></TD> +<TD ALIGN="LEFT"><I>long</I></TD> +<TD ALIGN="LEFT"> </TD> +</TR> +<TR><TD ALIGN="LEFT"><TT>smallcaps</TT><A NAME="2990"></A></TD> +<TD ALIGN="LEFT"><I>long</I></TD> +<TD ALIGN="LEFT"><I>abbrv</I></TD> +<TD ALIGN="LEFT"><I>long</I></TD> +<TD ALIGN="LEFT"><I>abbrv</I></TD> +</TR> +<TR><TD ALIGN="LEFT"><TT>dua</TT><A NAME="2999"></A></TD> +<TD ALIGN="LEFT"><I>long</I></TD> +<TD ALIGN="LEFT"><I>long</I></TD> +<TD ALIGN="LEFT"><I>long</I></TD> +<TD ALIGN="LEFT"><I>abbrv</I></TD> +</TR> +<TR><TD ALIGN="LEFT">None of the above</TD> +<TD ALIGN="LEFT"><I>long</I> (<I>abbrv</I>)</TD> +<TD ALIGN="LEFT"><I>abbrv</I></TD> +<TD ALIGN="LEFT"><I>long</I></TD> +<TD ALIGN="LEFT"> </TD> +</TR> +</TABLE> +</DIV> +</DIV> +<BR> + +<P> +Each of the package options <TT>smallcaps</TT><A NAME="3008"></A>, <TT>footnote</TT><A NAME="3017"></A> +and <TT>description</TT><A NAME="3026"></A> use <TT>\defglsdisplay</TT><A NAME="3030"></A> and +<TT>\defglsdisplayfirst</TT><A NAME="3033"></A> (described <A HREF="glossaries-manual.html#sec:glsdisplay">earlier</A>) +to change the way the link text is displayed. + +<P> +<DL> +<DT><STRONG><TT>description</TT><A NAME="3041"></A>,<TT>footnote</TT><A NAME="3050"></A></STRONG></DT> +<DD> +When these two options are used together, the first use displays +the entry as: +<BR> +<BR><TT>\acronymfont{</TT><EM>abbrv</EM><TT>}</TT><I>insert</I><TT>\footnote{</TT><EM>long</EM><TT>}</TT> +<BR> +<BR> +while subsequent use displays the entry as: +<BR> +<BR><TT>\acronymfont{</TT><EM>abbrv</EM><TT>}</TT><I>insert</I> +<BR> +<BR> +where <I>insert</I> indicates the text supplied in the final +optional argument to <TT>\gls</TT>, <TT>\glspl</TT> or their uppercase +variants. + +<P> +Note also that when these two package options are used (in the +given order), the <TT>glossaries</TT> package additionally implements the +<TT>sanitize</TT><A NAME="3060"></A> option using +<A NAME="3069"></A><A NAME="3076"></A><code>sanitize={description=false,symbol=false}</code>, so +remember to protect fragile commands when defining acronyms. + +<P> +</DD> +<DT><STRONG>dua</STRONG></DT> +<DD> +The <TT>dua</TT><A NAME="3083"></A> package option always displays the expanded +form and so may not be used with <TT>footnote</TT><A NAME="3092"></A> or +<TT>smallcaps</TT><A NAME="3101"></A>. Both first use and subsequent use displays the +entry in the form: +<BR> +<BR><I>long</I><I>insert</I> +<BR> +<BR> +If the <TT>description</TT><A NAME="3110"></A> option is also used, the <TT>name</TT><A NAME="3114"></A> +key is set to the long form, otherwise the <TT>name</TT><A NAME="3117"></A> key is +set to the short form and the <TT>description</TT><A NAME="3120"></A> key is set to +the long form. + +<P> +</DD> +<DT><STRONG><TT>description</TT><A NAME="3128"></A></STRONG></DT> +<DD> +This option displays the entry on first use as: +<BR> +<BR><I>long</I><I>insert</I> (<TT>\acronymfont{</TT><EM>abbrv</EM><TT>}</TT>) +<BR> +<BR> +while subsequent use displays the entry as: +<BR> +<BR><TT>\acronymfont{</TT><EM>abbrv</EM><TT>}</TT><I>insert</I> +<BR> +<BR> +Note also that if this package option is used, the <TT>glossaries</TT> +package additionally implements the option +<A NAME="3138"></A><code>sanitize={symbol=false}</code>, so +remember to protect fragile commands when defining acronyms. + +<P> +</DD> +<DT><STRONG><TT>footnote</TT><A NAME="3145"></A></STRONG></DT> +<DD> +This option displays the entry on first use as: +<BR> +<BR><TT>\acronymfont{</TT><EM>abbrv</EM><TT>}</TT><I>insert</I><TT>\footnote{</TT><EM>long</EM><TT>}</TT> +<BR> +<BR> +while subsequent use displays the entry as: +<BR> +<BR><TT>\acronymfont{</TT><EM>abbrv</EM><TT>}</TT><I>insert</I> + +<P> +Note also that if this package option is used, the <TT>glossaries</TT> +package additionally implements the option +<A NAME="3155"></A><code>sanitize={description=false}</code>, so +remember to protect fragile commands when defining acronyms. + +<P> +</DD> +<DT><STRONG><TT>smallcaps</TT><A NAME="3162"></A></STRONG></DT> +<DD> +If neither the <TT>footnote</TT><A NAME="3171"></A> nor <TT>description</TT><A NAME="3180"></A> options +have been set, this option displays the entry on first use as: +<BR> +<BR><I>long</I><I>insert</I> (<TT>\acronymfont{</TT><EM>abbrv</EM><TT>}</TT>) +<BR> +<BR> +while subsequent use displays the entry as: +<BR> +<BR><TT>\acronymfont{</TT><EM>abbrv</EM><TT>}</TT><I>insert</I> +<BR> +<BR> +where <TT>\acronymfont</TT> is set to <TT>\textsc</TT>. + +<P> +Note also that if this package option is used, the <TT>glossaries</TT> +package additionally implements the option +<A NAME="3190"></A><code>sanitize={symbol=false}</code>, so +remember to protect fragile commands when defining acronyms. + +<P> +</DD> +<DT><STRONG>None of the above</STRONG></DT> +<DD> +If none of the package options <TT>smallcaps</TT><A NAME="3197"></A>, <TT>footnote</TT><A NAME="3206"></A> +or <TT>description</TT><A NAME="3215"></A> are used, then on first use the entry is +displayed as: +<BR> +<BR><I>long</I> (<I>abbrv</I>)<I>insert</I> +<BR> +<BR> +while subsequent use displays the entry as: +<BR> +<BR><TT>\acronymfont{</TT><EM>abbrv</EM><TT>}</TT><I>insert</I> +<BR> +<BR><I>abbrv</I><I>insert</I> +</DD> +</DL> + +<P> +Recall from <A HREF="glossaries-manual.html#sec:glslink">earlier</A> +that you can access the values of individual keys using commands +like <TT>\glstext</TT><A NAME="3219"></A>, so it is possible to use these commands to +print just the long form or just the abbreviation without affecting +the flag that determines whether the entry has been used. However +the keys that store the long and short form vary depending on +the acronym style, so the <TT>glossaries</TT> package provides +commands that are set according to the package options. These are +as follows: +<BR> +<BR> +<P> + +<TT>\acrshort[</TT><EM>options</EM><TT>]{</TT><EM>label</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<TT>\ACRshort[</TT><EM>options</EM><TT>]{</TT><EM>label</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<TT>\ACRshort[</TT><EM>options</EM><TT>]{</TT><EM>label</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +Print the abbreviated version with a hyperlink (if necessary) to the +relevant entry in the glossary. This is usually equivalent to +<TT>\glstext</TT><A NAME="3223"></A> (or its uppercase variants) but may additionally +put the link text within the argument to <TT>\acronymfont</TT><A NAME="3226"></A>. +<BR> +<BR> +<P> + +<TT>\acrlong[</TT><EM>options</EM><TT>]{</TT><EM>label</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<TT>\ACRlong[</TT><EM>options</EM><TT>]{</TT><EM>label</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<TT>\ACRlong[</TT><EM>options</EM><TT>]{</TT><EM>label</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +Print the long version with a hyperlink (if necessary) to the +relevant entry in the glossary. This is may be equivalent to +<TT>\glsdesc</TT><A NAME="3229"></A>, <TT>\glssymbol</TT><A NAME="3232"></A> or <TT>\glsfirst</TT><A NAME="3235"></A> (or their uppercase +variants), depending on package options. +<BR> +<BR> +<P> + +<TT>\acrfull[</TT><EM>options</EM><TT>]{</TT><EM>label</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<TT>\ACRfull[</TT><EM>options</EM><TT>]{</TT><EM>label</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<TT>\ACRfull[</TT><EM>options</EM><TT>]{</TT><EM>label</EM><TT>}[</TT><EM>insert</EM><TT>]</TT> +<BR> +<BR> +Print the long version followed by the abbreviation in brackets +with a hyperlink (if necessary) to the +relevant entry in the glossary. + +<P> +Note that if you change the definition of <TT>\newacronym</TT><A NAME="3238"></A>, you +may additionally need to change the above commands as well as +the changing way the text is displayed using <TT>\defglsdisplay</TT><A NAME="3241"></A> +and <TT>\defglsdisplayfirst</TT><A NAME="3244"></A>. + +<P> + +<P> +<A HREF="glossaries-manual.html#top">Top</A> + +<P> + +<H2><A NAME="SECTION00049000000000000000"> +Unsetting and resetting entry flags</A> +</H2> + +<P> +When using commands such as <TT>\gls</TT><A NAME="3250"></A> it is possible that you may want +to use the value given by the <TT>first</TT><A NAME="3253"></A> key, even though you have +already used the glossary entry. Conversely, you may want to use the +value given by the <TT>text</TT><A NAME="3256"></A> key, even though you haven't used the +glossary entry. The former can be achieved by one of the following +commands: +<BR> +<BR><TT>\glsreset{</TT><EM>label</EM><TT>}</TT> +<BR><TT>\glslocalreset{</TT><EM>label</EM><TT>}</TT> +<BR> +<BR> +while the latter can be achieved by one of the following commands: +<BR> +<BR><TT>\glsunset{</TT><EM>label</EM><TT>}</TT> +<BR><TT>\glslocalunset{</TT><EM>label</EM><TT>}</TT> +<BR> +<BR> +You can determine whether an entry has been used using: +<BR> +<BR> +<TT>\ifglsused{</TT><EM>label</EM><TT>}{</TT><EM>true part</EM><TT>}{</TT><EM>false part</EM><TT>}</TT> +<BR> +<BR> +where <I>label</I> is the label of the required entry. If the +entry has been used, <I>true part</I> will be done, otherwise +<I>false part</I> will be done. + +<P> +<A HREF="glossaries-manual.html#top">Top</A> + +<P> + +<H2><A NAME="SECTION000410000000000000000"></A> +<A NAME="sec:styles"></A> +<BR> +Glossary Styles +</H2> +The <TT>glossaries</TT> package comes with some pre-defined +glossary styles. These are as follows: +<DL> +<DT><STRONG>list</STRONG></DT> +<DD>The <TT>list</TT><A NAME="3263"></A> style uses the <TT>description</TT> +environment. The entry name is placed in the optional argument +of the <TT>\item</TT> command (so it will appear in bold by +default). The description follows, and then the associated number +list for that entry. + +<P> +</DD> +<DT><STRONG>listgroup</STRONG></DT> +<DD>The <TT>listgroup</TT><A NAME="3266"></A> style is like +<TT>list</TT><A NAME="3268"></A> but the glossary groups have headings. + +<P> +</DD> +<DT><STRONG>listhypergroup</STRONG></DT> +<DD>The <TT>listhypergroup</TT><A NAME="3270"></A> style is like +<TT>listgroup</TT><A NAME="3272"></A> but has a set of links to the glossary +groups. + +<P> +</DD> +<DT><STRONG>altlist</STRONG></DT> +<DD>The <TT>altlist</TT><A NAME="3274"></A> style is like <TT>list</TT><A NAME="3276"></A> +but the description is placed on the following line. + +<P> +</DD> +<DT><STRONG>altlistgroup</STRONG></DT> +<DD>The <TT>altlistgroup</TT><A NAME="3278"></A> style is like +<TT>altlist</TT><A NAME="3280"></A> but the glossary groups have headings. + +<P> +</DD> +<DT><STRONG>altlisthypergroup</STRONG></DT> +<DD>The <TT>altlisthypergroup</TT><A NAME="3282"></A> style is like +<TT>altlistgroup</TT><A NAME="3284"></A> but has a set of links to the glossary +groups. + +<P> +</DD> +<DT><STRONG>listdotted</STRONG></DT> +<DD>This style uses the <TT>description</TT> +environment. Each entry starts with <code>\item[]</code>, followed by the +name followed by a dotted line, followed by the description. Note that +this style ignores both the number list<A NAME="3286"></A> and the symbol. The +length <TT>\glslistdottedwidth</TT> +governs where the description should start.<A NAME="tex2html8" + HREF="#foot1409"><SUP>4</SUP></A> +<P> +</DD> +<DT><STRONG>long</STRONG></DT> +<DD>The <TT>long</TT><A NAME="3288"></A> style uses the <TT>longtable</TT> +environment (defined by the <TT>longtable</TT><A NAME="3291"></A> package). It has two +columns: the first column contains the entry's name and the second +column contains the description followed by the number list<A NAME="3293"></A>. + +<P> +</DD> +<DT><STRONG>longborder</STRONG></DT> +<DD>The <TT>longborder</TT><A NAME="3295"></A> style is like +<TT>long</TT><A NAME="3297"></A> but has horizontal and vertical lines around it. + +<P> +</DD> +<DT><STRONG>longheader</STRONG></DT> +<DD>The <TT>longheader</TT><A NAME="3299"></A> style is like +<TT>long</TT><A NAME="3301"></A> but has a header row. + +<P> +</DD> +<DT><STRONG>longheaderborder</STRONG></DT> +<DD>The <TT>longheaderborder</TT><A NAME="3303"></A> style is +like <TT>longheader</TT><A NAME="3305"></A> but has horizontal and vertical lines +around it. + +<P> +</DD> +<DT><STRONG>long3col</STRONG></DT> +<DD>The <TT>long3col</TT><A NAME="3307"></A> style is like +<TT>long</TT><A NAME="3309"></A> but has three columns. The first column contains +the entry's name, the second column contains the description +and the third column contains the number list<A NAME="3310"></A>. + +<P> +</DD> +<DT><STRONG>long3colborder</STRONG></DT> +<DD>The <TT>long3colborder</TT><A NAME="3312"></A> style is like +the <TT>long3col</TT><A NAME="3314"></A> style but has horizontal and vertical +lines around it. + +<P> +</DD> +<DT><STRONG>long3colheader</STRONG></DT> +<DD>The <TT>long3colheader</TT><A NAME="3316"></A> style is like +<TT>long3col</TT><A NAME="3318"></A> but has a header row. + +<P> +</DD> +<DT><STRONG>long3colheaderborder</STRONG></DT> +<DD>The <TT>long3colheaderborder</TT><A NAME="3320"></A> style is +like <TT>long3colheader</TT><A NAME="3322"></A> but has horizontal and vertical lines +around it. + +<P> +</DD> +<DT><STRONG>long4col</STRONG></DT> +<DD>The <TT>long4col</TT><A NAME="3324"></A> style is like +<TT>long3col</TT><A NAME="3326"></A> but has an additional column in which the +entry's associated symbol appears. + +<P> +</DD> +<DT><STRONG>long4colborder</STRONG></DT> +<DD>The <TT>long4colborder</TT><A NAME="3328"></A> style is like +the <TT>long4col</TT><A NAME="3330"></A> style but has horizontal and vertical +lines around it. + +<P> +</DD> +<DT><STRONG>long4colheader</STRONG></DT> +<DD>The <TT>long4colheader</TT><A NAME="3332"></A> style is like +<TT>long4col</TT><A NAME="3334"></A> but has a header row. + +<P> +</DD> +<DT><STRONG>long4colheaderborder</STRONG></DT> +<DD>The <TT>long4colheaderborder</TT><A NAME="3336"></A> style is +like <TT>long4colheader</TT><A NAME="3338"></A> but has horizontal and vertical lines +around it. + +<P> +</DD> +<DT><STRONG>super</STRONG></DT> +<DD>The <TT>super</TT><A NAME="3340"></A> style uses the <TT>supertabular</TT> +environment (defined by the <TT>supertabular</TT><A NAME="3343"></A> package). It has two +columns: the first column contains the entry's name and the second +column contains the description followed by the number list<A NAME="3345"></A>. + +<P> +</DD> +<DT><STRONG>superborder</STRONG></DT> +<DD>The <TT>superborder</TT><A NAME="3347"></A> style is like +<TT>super</TT><A NAME="3349"></A> but has horizontal and vertical lines around it. + +<P> +</DD> +<DT><STRONG>superheader</STRONG></DT> +<DD>The <TT>superheader</TT><A NAME="3351"></A> style is like +<TT>super</TT><A NAME="3353"></A> but has a header row. + +<P> +</DD> +<DT><STRONG>superheaderborder</STRONG></DT> +<DD>The <TT>superheaderborder</TT><A NAME="3355"></A> style is +like <TT>superheader</TT><A NAME="3357"></A> but has horizontal and vertical lines +around it. + +<P> +</DD> +<DT><STRONG>super3col</STRONG></DT> +<DD>The <TT>super3col</TT><A NAME="3359"></A> style is like +<TT>super</TT><A NAME="3361"></A> but has three columns. The first column contains +the entry's name, the second column contains the description +and the third column contains the <A NAME="3362"></A>. + +<P> +</DD> +<DT><STRONG>super3colborder</STRONG></DT> +<DD>The <TT>super3colborder</TT><A NAME="3364"></A> style is like +the <TT>super3col</TT><A NAME="3366"></A> style but has horizontal and vertical +lines around it. + +<P> +</DD> +<DT><STRONG>super3colheader</STRONG></DT> +<DD>The <TT>super3colheader</TT><A NAME="3368"></A> style is like +<TT>super3col</TT><A NAME="3370"></A> but has a header row. + +<P> +</DD> +<DT><STRONG>super3colheaderborder</STRONG></DT> +<DD>The <TT>super3colheaderborder</TT><A NAME="3372"></A> style +is like <TT>super3colheader</TT><A NAME="3374"></A> but has horizontal and vertical +lines around it. + +<P> +</DD> +<DT><STRONG>super4col</STRONG></DT> +<DD>The <TT>super4col</TT><A NAME="3376"></A> style is like +<TT>super3col</TT><A NAME="3378"></A> but has an additional column in which the +entry's associated symbol appears. + +<P> +</DD> +<DT><STRONG>super4colborder</STRONG></DT> +<DD>The <TT>super4colborder</TT><A NAME="3380"></A> style is like +the <TT>super4col</TT><A NAME="3382"></A> style but has horizontal and vertical +lines around it. + +<P> +</DD> +<DT><STRONG>super4colheader</STRONG></DT> +<DD>The <TT>super4colheader</TT><A NAME="3384"></A> style is like +<TT>super4col</TT><A NAME="3386"></A> but has a header row. + +<P> +</DD> +<DT><STRONG>super4colheaderborder</STRONG></DT> +<DD>The <TT>super4colheaderborder</TT><A NAME="3388"></A> style +is like <TT>super4colheader</TT><A NAME="3390"></A> but has horizontal and vertical +lines around it. + +<P> +</DD> +</DL> + +<P> +The glossary style can be set using the <TT>style</TT><A NAME="3397"></A> package option +or using the <TT>style</TT><A NAME="3401"></A> key in the optional +argument to <TT>\printglossary</TT><A NAME="3404"></A> or using the command: +<BR> +<BR><TT>\glossarystyle{</TT><EM>style-name</EM><TT>}</TT> +<BR> +<BR> +<P> +All the styles except for the three- and four-column styles and the +<TT>listdotted</TT><A NAME="3407"></A> style use the command +<TT>\glspostdescription</TT> after the +description. This simply displays a full stop by default. To eliminate +this full stop (or replace it with something else, say a comma), you +will need to redefine <TT>\glspostdescription</TT> before the glossary is +displayed. +<P> +<A HREF="glossaries-manual.html#top">Top</A> + +<P> + +<H2><A NAME="SECTION000411000000000000000"> +Defining your own glossary style</A> +</H2> + +<P> +If the predefined styles don't fit your requirements, you can +define your own style using: +<BR> +<BR><TT>\newglossarystyle{</TT><EM>name</EM><TT>}{</TT><EM>definitions</EM><TT>}</TT> +<BR> +<BR> +where <I>name</I> is the name of the new glossary style (to be +used in <TT>\glossarystyle</TT>). The second argument <I>definitions</I>, +needs to redefine all of the following: + +<P> +<DL> +<DT></DT> +<DD> +<TT>theglossary</TT> +<P> +This environment defines how the main body of the glossary should +be typeset. Note that this does not include the section heading, +the glossary preamble (defined by <TT>\glossarypreamble</TT>) or the +glossary postamble (defined by <TT>\glossarypostamble</TT>.) For example, +the <TT>list</TT><A NAME="3413"></A> style uses the <TT>description</TT> environment, +so the <TT>theglossary</TT> environment is simply redefined to begin +and end the <TT>description</TT> environment. + +<P> +</DD> +<DT></DT> +<DD> +<TT>\glossaryheader</TT> +<P> +This macro indicates what to do at the start of the main body +of the glossary. Note that this is not the same as +<TT>\glossarypreamble</TT>, which should not be affected by changes in +the glossary style. The <TT>list</TT><A NAME="3418"></A> glossary style redefines +<TT>\glossaryheader</TT> to do nothing, whereas the <TT>longheader</TT><A NAME="3420"></A> +glossary style redefines <TT>\glossaryheader</TT> to do a header row. + +<P> +</DD> +<DT></DT> +<DD> +<TT>\glsgroupheading{</TT><EM>label</EM><TT>}</TT> +<P> +This macro indicates what to do at the start of each logical block +within the main body of the glossary. The glossary is sub-divided into +twenty-eight logical blocks that are determined by the first character +of the <TT>sort</TT><A NAME="3422"></A> key (or <TT>name</TT><A NAME="3425"></A> key if the <TT>sort</TT><A NAME="3428"></A> +key is omitted). The sub-divisions are in the following order: symbols, +numbers, A, ..., Z. Note that the argument to <TT>\glsgroupheading</TT> +is a label <I>not</I> the group title. The group title can be obtained +via <TT>\glsgetgrouptitle{</TT><EM>label</EM><TT>}</TT>, and a navigation hypertarget can +be created using <TT>\glsnavhypertarget{</TT><EM>label</EM><TT>}</TT>. Most of the +predefined glossary styles redefine <TT>\glsgroupheading</TT> to simply +ignore its argument. The <TT>listhypergroup</TT><A NAME="3431"></A> style redefines +<TT>\glsgroupheading</TT> as follows: +<PRE> +\renewcommand*{\glsgroupheading}[1]{% +\item[\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}]} +</PRE> +See also <TT>\glsgroupskip</TT> below. (Note that command definitions within +<TT>\newglossarystyle</TT> must use <code>##1</code> etc instead of <code>#1</code> etc.) + +<P> +</DD> +<DT></DT> +<DD> +<TT>\glsgroupskip</TT> +<P> +This macro determines what to do after one logical group but before +the header for the next logical group. The <TT>list</TT><A NAME="3433"></A> glossary +style simply redefines <TT>\glsgroupskip</TT> to be <TT>\indexspace</TT>. + +<P> +</DD> +<DT></DT> +<DD> +<TT>\glossaryentryfield{</TT><EM>label</EM><TT>}{</TT><EM>formatted +name</EM><TT>}{</TT><EM>description</EM><TT>}{</TT><EM>symbol</EM><TT>}</TT> +<TT>{</TT><EM>number list</EM><TT>}</TT> +<P> +This macro indicates what to do for a given glossary entry. +Note that <I>formatted name</I> will always be in the form +<TT>\glsnamefont{</TT><EM>name</EM><TT>}</TT>. This allows the user to set a given +font for the entry name, regardless of the glossary style used. +Note that <I>label</I> is the label used when the glossary entry +was defined via either <TT>\newglossaryentry</TT> or <TT>\newacronym</TT>. +Each time you use a glossary entry it creates a +link<A NAME="tex2html9" + HREF="#foot1752"><SUP>5</SUP></A> +using <TT>\@glslink{</TT><EM>label</EM><TT>}{</TT><EM>text</EM><TT>}</TT> with the label +<TT>glo:</TT><I>label</I>. Your +new glossary style must therefore redefine <TT>\glossaryentryfield</TT> +so that it uses <TT>\@glstarget</TT><code>{</code><TT>glo:</TT><I>label</I><code>}</code><TT>{</TT><EM>text</EM><TT>}</TT> +to ensure the hyperlinks function correctly.<A NAME="tex2html10" + HREF="#foot1753"><SUP>6</SUP></A> For example, the +<TT>list</TT><A NAME="3435"></A> style defines <TT>\glossaryentryfield</TT> as follows: +<PRE> +\renewcommand*{\glossaryentryfield}[5]{% +\item[\@glstarget{glo:##1}{##2}] ##3\glspostdescription\space ##5} +</PRE> + +<P> +Note also that <I>number list</I> will always be of the form +<BR> +<BR><TT>\glossaryentrynumbers</TT>{<TT>\relax</TT> +<BR><TT>\setentrycounter{</TT><EM>counter name</EM><TT>}\glsnumberformat{</TT><EM>number(s)</EM><TT>}</TT>} +<BR> +<BR> +where <I>number(s)</I> +may contain <TT>\delimN</TT> (to delimit individual numbers) and/or +<TT>\delimR</TT> (to indicate a range of numbers). There may be +multiple occurrences of +<TT>\setentrycounter{</TT><EM>counter name</EM><TT>}\glsnumberformat{</TT><EM>number(s)</EM><TT>}</TT>, but note +that the entire number list is enclosed within the argument +to <TT>\glossaryentrynumbers</TT><A NAME="3437"></A>. The user can redefine this to change +the way the entire number list is formatted, regardless of +the glossary style. However the most common use of +<TT>\glossaryentrynumbers</TT> is to provide a means of suppressing the +number list altogether. (In fact, the <TT>nonumberlist</TT><A NAME="3445"></A> option +redefines <TT>\glossaryentrynumbers</TT> to ignore its argument.) +Therefore, when you define a new glossary style, you don't need +to worry about whether the user has specified the +<TT>nonumberlist</TT><A NAME="3454"></A> package option. +</DD> +</DL> +<P> +<A HREF="glossaries-manual.html#top">Top</A> + +<P> + +<H3><A NAME="SECTION000411100000000000000"> +Example: creating a completely new style</A> +</H3> + +<P> +If you want a completely new style, you will need to redefine all +of the commands and environment listed above. You also need to +take care when using internal commands (commands whose name +contain the @ symbol). These should either be used in a <TT>.sty</TT> +file or must be placed within <TT>\makeatletter</TT> and <TT>\makeatother</TT>. + +<P> +For example, suppose you want each entry to start with a bullet point. +This means that the glossary should be placed in the <TT>itemize</TT> +environment, so <TT>theglossary</TT> should start and end that +environment. Let's also suppose that you don't want anything between +the glossary groups (so <TT>\glsgroupheading</TT> and <TT>\glsgroupskip</TT> +should do nothing) and suppose you don't want anything to appear +immediately after <code>\begin{theglossary}</code> (so <TT>\glossaryheader</TT> +should do nothing). In addition, let's suppose the symbol should +appear in brackets after the name, followed by the description and +last of all the number list<A NAME="3462"></A> should appear within square brackets +at the end. Then you can create this new glossary style, called, say, +<TT>mylist</TT>, as follows: +<PRE> + \newglossarystyle{mylist}{% + % put the glossary in the itemize environment: + \renewenvironment{theglossary}{\begin{itemize}}{\end{itemize}}% + % have nothing after \begin{theglossary}: + \renewcommand*{\glossaryheader}{}% + % have nothing between glossary groups: + \renewcommand*{\glsgroupheading}[1]{}% + \renewcommand*{\glsgroupskip}{}% + % set how each entry should appear: + \renewcommand*{\glossaryentryfield}[5]{% + \item % bullet point + \@glstarget{glo:##1}{##2}% the entry name + \space (##4)% the symbol in brackets + \space ##3% the description + \space [##5]% the number list in square brackets + }% + } +</PRE> + +<P> +<A HREF="glossaries-manual.html#top">Top</A> + +<P> + +<H3><A NAME="SECTION000411200000000000000"> +Example: creating a new glossary style based on an +existing style</A> +</H3> + +<P> +If you want to define a new style that is a slightly modified +version of an existing style, you can use <TT>\glossarystyle</TT> +within the second argument of <TT>\newglossarystyle</TT> followed by +whatever alterations you require. For example, suppose you want +a style like the <TT>list</TT><A NAME="3467"></A> style but you don't want the extra +vertical space created by <TT>\indexspace</TT> between groups, then you +can create a new glossary style called, say, <TT>mylist</TT> as +follows: +<PRE> +\newglossarystyle{mylist}{% +\glossarystyle{list}% base this style on the list style +\renewcommand{\glsgroupskip}{}% make nothing happen between groups +} +</PRE> + +<P> +<A HREF="glossaries-manual.html#top">Top</A> + +<P> + +<P> +<BR> + +<H2><A NAME="SECTION00050000000000000000"> +Index</A> +</H2><DL COMPACT> +<DT><STRONG><TT>\acronymfont</TT></STRONG> +<DD><A HREF="glossaries-manual.html#2889">Acronyms</A> + | <A HREF="glossaries-manual.html#3226">Acronyms</A> +<DT><STRONG><TT>\acronymtype</TT></STRONG> +<DD><A HREF="glossaries-manual.html#1978">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2247">Package Options</A> + | <A HREF="glossaries-manual.html#2534">Defining Glossary Entries</A> +<DT><STRONG><TT>babel</TT></STRONG> +<DD><A HREF="glossaries-manual.html#1804">Introduction</A> + | <A HREF="glossaries-manual.html#2368">Package Options</A> + | <A HREF="glossaries-manual.html#2380">Package Options</A> +<DT><STRONG><TT>\defglsdisplay</TT></STRONG> +<DD><A HREF="glossaries-manual.html#3030">Acronyms</A> + | <A HREF="glossaries-manual.html#3241">Acronyms</A> +<DT><STRONG><TT>\defglsdisplayfirst</TT></STRONG> +<DD><A HREF="glossaries-manual.html#3033">Acronyms</A> + | <A HREF="glossaries-manual.html#3244">Acronyms</A> +<DT><STRONG><TT>\emph</TT></STRONG> +<DD><A HREF="glossaries-manual.html#2036">A Quick Guide For</A> +<DT><STRONG>file types</STRONG> +<DD><DL COMPACT> +<DT><STRONG>.alg</STRONG> +<DD><A HREF="glossaries-manual.html#1864">Generating the associated glossary</A> +<DT><STRONG>.glg</STRONG> +<DD><A HREF="glossaries-manual.html#1862">Generating the associated glossary</A> + | <A HREF="glossaries-manual.html#1924">A Quick Guide For</A> +<DT><STRONG>.glo</STRONG> +<DD><A HREF="glossaries-manual.html#2444">Defining Glossary Entries</A> +<DT><STRONG>.gls</STRONG> +<DD><A HREF="glossaries-manual.html#2446">Defining Glossary Entries</A> +<DT><STRONG>.ist</STRONG> +<DD><A HREF="glossaries-manual.html#1836">Generating the associated glossary</A> + | <A HREF="glossaries-manual.html#2460">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2465">Defining Glossary Entries</A> +<DT><STRONG>.nlg</STRONG> +<DD><A HREF="glossaries-manual.html#1922">A Quick Guide For</A> +</DL> +<DT><STRONG><TT>glossary</TT></STRONG> +<DD><A HREF="glossaries-manual.html#1800">Introduction</A> +<DT><STRONG>glossary styles</STRONG> +<DD><DL COMPACT> +<DT><STRONG>altlist</STRONG> +<DD><A HREF="glossaries-manual.html#3274">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3280">Glossary Styles</A> +<DT><STRONG>altlistgroup</STRONG> +<DD><A HREF="glossaries-manual.html#3278">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3284">Glossary Styles</A> +<DT><STRONG>altlisthypergroup</STRONG> +<DD><A HREF="glossaries-manual.html#3282">Glossary Styles</A> +<DT><STRONG>list</STRONG> +<DD><A HREF="glossaries-manual.html#3263">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3268">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3276">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3413">Defining your own glossary</A> + | <A HREF="glossaries-manual.html#3418">Defining your own glossary</A> + | <A HREF="glossaries-manual.html#3433">Defining your own glossary</A> + | <A HREF="glossaries-manual.html#3435">Defining your own glossary</A> + | <A HREF="glossaries-manual.html#3467">Example: creating a new</A> +<DT><STRONG>listdotted</STRONG> +<DD><A HREF="glossaries-manual.html#3407">Glossary Styles</A> +<DT><STRONG>listgroup</STRONG> +<DD><A HREF="glossaries-manual.html#3266">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3272">Glossary Styles</A> +<DT><STRONG>listhypergroup</STRONG> +<DD><A HREF="glossaries-manual.html#3270">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3431">Defining your own glossary</A> +<DT><STRONG>long</STRONG> +<DD><A HREF="glossaries-manual.html#3288">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3297">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3301">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3309">Glossary Styles</A> +<DT><STRONG>long3col</STRONG> +<DD><A HREF="glossaries-manual.html#3307">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3314">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3318">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3326">Glossary Styles</A> +<DT><STRONG>long3colborder</STRONG> +<DD><A HREF="glossaries-manual.html#3312">Glossary Styles</A> +<DT><STRONG>long3colheader</STRONG> +<DD><A HREF="glossaries-manual.html#3316">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3322">Glossary Styles</A> +<DT><STRONG>long3colheaderborder</STRONG> +<DD><A HREF="glossaries-manual.html#3320">Glossary Styles</A> +<DT><STRONG>long4col</STRONG> +<DD><A HREF="glossaries-manual.html#2069">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#3324">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3330">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3334">Glossary Styles</A> +<DT><STRONG>long4colborder</STRONG> +<DD><A HREF="glossaries-manual.html#2073">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#3328">Glossary Styles</A> +<DT><STRONG>long4colheader</STRONG> +<DD><A HREF="glossaries-manual.html#2071">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#3332">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3338">Glossary Styles</A> +<DT><STRONG>long4colheaderborder</STRONG> +<DD><A HREF="glossaries-manual.html#2075">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#3336">Glossary Styles</A> +<DT><STRONG>longborder</STRONG> +<DD><A HREF="glossaries-manual.html#3295">Glossary Styles</A> +<DT><STRONG>longheader</STRONG> +<DD><A HREF="glossaries-manual.html#3299">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3305">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3420">Defining your own glossary</A> +<DT><STRONG>longheaderborder</STRONG> +<DD><A HREF="glossaries-manual.html#3303">Glossary Styles</A> +<DT><STRONG>super</STRONG> +<DD><A HREF="glossaries-manual.html#3340">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3349">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3353">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3361">Glossary Styles</A> +<DT><STRONG>super3col</STRONG> +<DD><A HREF="glossaries-manual.html#3359">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3366">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3370">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3378">Glossary Styles</A> +<DT><STRONG>super3colborder</STRONG> +<DD><A HREF="glossaries-manual.html#3364">Glossary Styles</A> +<DT><STRONG>super3colheader</STRONG> +<DD><A HREF="glossaries-manual.html#3368">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3374">Glossary Styles</A> +<DT><STRONG>super3colheaderborder</STRONG> +<DD><A HREF="glossaries-manual.html#3372">Glossary Styles</A> +<DT><STRONG>super4col</STRONG> +<DD><A HREF="glossaries-manual.html#2077">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#3376">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3382">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3386">Glossary Styles</A> +<DT><STRONG>super4colborder</STRONG> +<DD><A HREF="glossaries-manual.html#2081">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#3380">Glossary Styles</A> +<DT><STRONG>super4colheader</STRONG> +<DD><A HREF="glossaries-manual.html#2079">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#3384">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3390">Glossary Styles</A> +<DT><STRONG>super4colheaderborder</STRONG> +<DD><A HREF="glossaries-manual.html#2083">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#3388">Glossary Styles</A> +<DT><STRONG>superborder</STRONG> +<DD><A HREF="glossaries-manual.html#3347">Glossary Styles</A> +<DT><STRONG>superheader</STRONG> +<DD><A HREF="glossaries-manual.html#3351">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3357">Glossary Styles</A> +<DT><STRONG>superheaderborder</STRONG> +<DD><A HREF="glossaries-manual.html#3355">Glossary Styles</A> +</DL> +<DT><STRONG><TT>glossary-list</TT></STRONG> +<DD><A HREF="glossaries-manual.html#1996">A Quick Guide For</A> +<DT><STRONG><TT>\glossaryentrynumbers</TT></STRONG> +<DD><A HREF="glossaries-manual.html#3437">Defining your own glossary</A> +<DT><STRONG><TT>\glossarystyle</TT></STRONG> +<DD><A HREF="glossaries-manual.html#2094">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2820">Displaying a glossary</A> +<DT><STRONG><TT>\gls</TT></STRONG> +<DD><A HREF="glossaries-manual.html#1960">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2005">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2008">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2011">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2054">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2482">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2491">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2638">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2644">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2650">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2656">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2662">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2674">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2686">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2702">Changing the format of</A> + | <A HREF="glossaries-manual.html#2754">Enabling and disabling hyperlinks</A> + | <A HREF="glossaries-manual.html#3250">Unsetting and resetting entry</A> +<DT><STRONG><TT>\glsadd</TT></STRONG> +<DD><A HREF="glossaries-manual.html#2042">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2057">A Quick Guide For</A> +<DT><STRONG><TT>\glsaddall</TT></STRONG> +<DD><A HREF="glossaries-manual.html#2045">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2060">A Quick Guide For</A> +<DT><STRONG><TT>\glscompositor</TT></STRONG> +<DD><A HREF="glossaries-manual.html#1936">A Quick Guide For</A> +<DT><STRONG><TT>\glsdesc</TT></STRONG> +<DD><A HREF="glossaries-manual.html#3229">Acronyms</A> +<DT><STRONG><TT>\glsfirst</TT></STRONG> +<DD><A HREF="glossaries-manual.html#3235">Acronyms</A> +<DT><STRONG><TT>\glslink</TT></STRONG> +<DD><A HREF="glossaries-manual.html#2023">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2051">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2629">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2751">Enabling and disabling hyperlinks</A> + | <A HREF="glossaries-manual.html#2769">Adding an entry to</A> +<DT><STRONG><TT>\glslink</TT> keys</STRONG> +<DD><DL COMPACT> +<DT><STRONG>counter</STRONG> +<DD><A HREF="glossaries-manual.html#2613">Links to Glossary Entries</A> +<DT><STRONG>format</STRONG> +<DD><A HREF="glossaries-manual.html#2026">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2029">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2039">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2600">Links to Glossary Entries</A> +<DT><STRONG>hyper</STRONG> +<DD><A HREF="glossaries-manual.html#2616">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2757">Enabling and disabling hyperlinks</A> + | <A HREF="glossaries-manual.html#2772">Adding an entry to</A> +</DL> +<DT><STRONG><TT>\glsnamefont</TT></STRONG> +<DD><A HREF="glossaries-manual.html#1993">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2002">A Quick Guide For</A> +<DT><STRONG><TT>\glspl</TT></STRONG> +<DD><A HREF="glossaries-manual.html#1963">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2014">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2017">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2020">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2500">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2509">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2705">Changing the format of</A> +<DT><STRONG><TT>\glssymbol</TT></STRONG> +<DD><A HREF="glossaries-manual.html#3232">Acronyms</A> +<DT><STRONG><TT>\glstext</TT></STRONG> +<DD><A HREF="glossaries-manual.html#3219">Acronyms</A> + | <A HREF="glossaries-manual.html#3223">Acronyms</A> +<DT><STRONG><TT>\glstextformat</TT></STRONG> +<DD><A HREF="glossaries-manual.html#2730">Changing the format of</A> +<DT><STRONG><TT>html</TT></STRONG> +<DD><A HREF="glossaries-manual.html#1877">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2747">Enabling and disabling hyperlinks</A> +<DT><STRONG><TT>\hyperemph</TT></STRONG> +<DD><A HREF="glossaries-manual.html#2033">A Quick Guide For</A> +<DT><STRONG><TT>\hyperlink</TT></STRONG> +<DD><A HREF="glossaries-manual.html#2760">Enabling and disabling hyperlinks</A> +<DT><STRONG><TT>hyperref</TT></STRONG> +<DD><A HREF="glossaries-manual.html#1874">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2606">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2744">Enabling and disabling hyperlinks</A> + | <A HREF="glossaries-manual.html#2766">Enabling and disabling hyperlinks</A> +<DT><STRONG><TT>\hypertarget</TT></STRONG> +<DD><A HREF="glossaries-manual.html#2763">Enabling and disabling hyperlinks</A> +<DT><STRONG><TT>\item</TT></STRONG> +<DD><A HREF="glossaries-manual.html#1999">A Quick Guide For</A> +<DT><STRONG>link text</STRONG> +<DD><A HREF="glossaries-manual.html#2596">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2597">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2598">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2618">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2700">Changing the format of</A> + | <A HREF="glossaries-manual.html#2728">Changing the format of</A> + | <A HREF="glossaries-manual.html#2739">Changing the format of</A> +<DT><STRONG><TT>longtable</TT></STRONG> +<DD><A HREF="glossaries-manual.html#3291">Glossary Styles</A> +<DT><STRONG><TT>makeglossaries</TT></STRONG> +<DD><A HREF="glossaries-manual.html#1827">Generating the associated glossary</A> + | <A HREF="glossaries-manual.html#1838">Generating the associated glossary</A> + | <A HREF="glossaries-manual.html#1841">Generating the associated glossary</A> + | <A HREF="glossaries-manual.html#1856">Generating the associated glossary</A> + | <A HREF="glossaries-manual.html#1880">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#1883">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#1889">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#1907">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#1916">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#1939">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2454">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2778">Displaying a glossary</A> + | <A HREF="glossaries-manual.html#2787">Displaying a glossary</A> + | <A HREF="glossaries-manual.html#2833">Defining New Glossaries</A> +<DT><STRONG><TT>makeindex</TT></STRONG> +<DD><A HREF="glossaries-manual.html#1830">Generating the associated glossary</A> + | <A HREF="glossaries-manual.html#1833">Generating the associated glossary</A> + | <A HREF="glossaries-manual.html#1844">Generating the associated glossary</A> + | <A HREF="glossaries-manual.html#1859">Generating the associated glossary</A> + | <A HREF="glossaries-manual.html#1904">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#1910">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#1913">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#1919">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2048">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2066">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2457">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2462">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2521">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2527">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2603">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2781">Displaying a glossary</A> + | <A HREF="glossaries-manual.html#2784">Displaying a glossary</A> + | <A HREF="glossaries-manual.html#2830">Defining New Glossaries</A> +<DT><STRONG><TT>\newacronym</TT></STRONG> +<DD><A HREF="glossaries-manual.html#1975">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2402">Package Options</A> + | <A HREF="glossaries-manual.html#2414">Package Options</A> + | <A HREF="glossaries-manual.html#2426">Package Options</A> + | <A HREF="glossaries-manual.html#2438">Package Options</A> + | <A HREF="glossaries-manual.html#2877">Acronyms</A> + | <A HREF="glossaries-manual.html#3238">Acronyms</A> +<DT><STRONG><TT>\newglossary</TT></STRONG> +<DD><A HREF="glossaries-manual.html#1901">A Quick Guide For</A> +<DT><STRONG><TT>\newglossaryentry</TT></STRONG> +<DD><A HREF="glossaries-manual.html#1951">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#1990">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2593">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2626">Links to Glossary Entries</A> +<DT><STRONG><TT>\newglossaryentry</TT> keys</STRONG> +<DD><DL COMPACT> +<DT><STRONG>description</STRONG> +<DD><A HREF="glossaries-manual.html#1957">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2310">Package Options</A> + | <A HREF="glossaries-manual.html#2325">Package Options</A> + | <A HREF="glossaries-manual.html#2337">Package Options</A> + | <A HREF="glossaries-manual.html#2476">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2470">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2689">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2692">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2695">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2720">Changing the format of</A> + | <A HREF="glossaries-manual.html#2925">Acronyms</A> + | <A HREF="glossaries-manual.html#3120">Acronyms</A> +<DT><STRONG>first</STRONG> +<DD><A HREF="glossaries-manual.html#2488">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2512">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2558">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2623">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2647">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2714">Changing the format of</A> + | <A HREF="glossaries-manual.html#2919">Acronyms</A> + | <A HREF="glossaries-manual.html#3253">Unsetting and resetting entry</A> +<DT><STRONG>firstplural</STRONG> +<DD><A HREF="glossaries-manual.html#2506">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2561">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2635">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2659">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2717">Changing the format of</A> +<DT><STRONG>format</STRONG> +<DD><A HREF="glossaries-manual.html#2610">Links to Glossary Entries</A> +<DT><STRONG>name</STRONG> +<DD><A HREF="glossaries-manual.html#1954">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2307">Package Options</A> + | <A HREF="glossaries-manual.html#2328">Package Options</A> + | <A HREF="glossaries-manual.html#2334">Package Options</A> + | <A HREF="glossaries-manual.html#2349">Package Options</A> + | <A HREF="glossaries-manual.html#2352">Package Options</A> + | <A HREF="glossaries-manual.html#2473">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2467">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2485">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2524">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2549">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2665">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2668">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2671">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#3114">Acronyms</A> + | <A HREF="glossaries-manual.html#3117">Acronyms</A> + | <A HREF="glossaries-manual.html#3425">Defining your own glossary</A> +<DT><STRONG>plural</STRONG> +<DD><A HREF="glossaries-manual.html#1972">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2497">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2555">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2632">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2653">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2711">Changing the format of</A> +<DT><STRONG>sort</STRONG> +<DD><A HREF="glossaries-manual.html#2063">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2343">Package Options</A> + | <A HREF="glossaries-manual.html#2518">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#3422">Defining your own glossary</A> + | <A HREF="glossaries-manual.html#3428">Defining your own glossary</A> +<DT><STRONG>symbol</STRONG> +<DD><A HREF="glossaries-manual.html#2313">Package Options</A> + | <A HREF="glossaries-manual.html#2331">Package Options</A> + | <A HREF="glossaries-manual.html#2340">Package Options</A> + | <A HREF="glossaries-manual.html#2515">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2677">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2680">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2683">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2723">Changing the format of</A> + | <A HREF="glossaries-manual.html#2726">Changing the format of</A> + | <A HREF="glossaries-manual.html#2737">Changing the format of</A> + | <A HREF="glossaries-manual.html#2928">Acronyms</A> +<DT><STRONG>text</STRONG> +<DD><A HREF="glossaries-manual.html#2346">Package Options</A> + | <A HREF="glossaries-manual.html#2355">Package Options</A> + | <A HREF="glossaries-manual.html#2479">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2494">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2503">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2546">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2552">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2620">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2641">Links to Glossary Entries</A> + | <A HREF="glossaries-manual.html#2708">Changing the format of</A> + | <A HREF="glossaries-manual.html#2922">Acronyms</A> + | <A HREF="glossaries-manual.html#3256">Unsetting and resetting entry</A> +<DT><STRONG>type</STRONG> +<DD><A HREF="glossaries-manual.html#1966">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#1969">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2531">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2564">Defining Glossary Entries</A> +</DL> +<DT><STRONG>number list</STRONG> +<DD><A HREF="glossaries-manual.html#2285">Package Options</A> + | <A HREF="glossaries-manual.html#2295">Package Options</A> + | <A HREF="glossaries-manual.html#2570">Number lists</A> + | <A HREF="glossaries-manual.html#2828">Defining New Glossaries</A> + | <A HREF="glossaries-manual.html#3286">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3293">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3310">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3345">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3362">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3462">Example: creating a completely</A> +<DT><STRONG>package options</STRONG> +<DD><DL COMPACT> +<DT><STRONG>acronym</STRONG> +<DD><A HREF="glossaries-manual.html#1852">Generating the associated glossary</A> + | <A HREF="glossaries-manual.html#1854">Generating the associated glossary</A> + | <A HREF="glossaries-manual.html#1931">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#1933">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#1986">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#1988">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2188">Package Options</A> + | <A HREF="glossaries-manual.html#2190">Package Options</A> + | <A HREF="glossaries-manual.html#2242">Package Options</A> + | <A HREF="glossaries-manual.html#2244">Package Options</A> + | <A HREF="glossaries-manual.html#2255">Package Options</A> + | <A HREF="glossaries-manual.html#2257">Package Options</A> + | <A HREF="glossaries-manual.html#2264">Package Options</A> + | <A HREF="glossaries-manual.html#2266">Package Options</A> + | <A HREF="glossaries-manual.html#2542">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2544">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#2841">Defining New Glossaries</A> + | <A HREF="glossaries-manual.html#2843">Defining New Glossaries</A> + | <A HREF="glossaries-manual.html#2850">Defining New Glossaries</A> + | <A HREF="glossaries-manual.html#2852">Defining New Glossaries</A> + | <A HREF="glossaries-manual.html#2859">Defining New Glossaries</A> + | <A HREF="glossaries-manual.html#2861">Defining New Glossaries</A> + | <A HREF="glossaries-manual.html#2872">Acronyms</A> + | <A HREF="glossaries-manual.html#2874">Acronyms</A> +<DT><STRONG>babel</STRONG> +<DD><A HREF="glossaries-manual.html#2363">Package Options</A> + | <A HREF="glossaries-manual.html#2365">Package Options</A> + | <A HREF="glossaries-manual.html#2376">Package Options</A> + | <A HREF="glossaries-manual.html#2389">Package Options</A> +<DD><DL COMPACT> +<DT><STRONG>false</STRONG> +<DD><A HREF="glossaries-manual.html#2391">Package Options</A> +<DT><STRONG>true</STRONG> +<DD><A HREF="glossaries-manual.html#2378">Package Options</A> +</DL> +<DT><STRONG>counter</STRONG> +<DD><A HREF="glossaries-manual.html#2292">Package Options</A> + | <A HREF="glossaries-manual.html#2294">Package Options</A> + | <A HREF="glossaries-manual.html#2586">Number lists</A> + | <A HREF="glossaries-manual.html#2588">Number lists</A> +<DT><STRONG>description</STRONG> +<DD><A HREF="glossaries-manual.html#2398">Package Options</A> + | <A HREF="glossaries-manual.html#2400">Package Options</A> + | <A HREF="glossaries-manual.html#2906">Acronyms</A> + | <A HREF="glossaries-manual.html#2908">Acronyms</A> + | <A HREF="glossaries-manual.html#2936">Acronyms</A> + | <A HREF="glossaries-manual.html#2938">Acronyms</A> + | <A HREF="glossaries-manual.html#2954">Acronyms</A> + | <A HREF="glossaries-manual.html#2956">Acronyms</A> + | <A HREF="glossaries-manual.html#2972">Acronyms</A> + | <A HREF="glossaries-manual.html#2974">Acronyms</A> + | <A HREF="glossaries-manual.html#3026">Acronyms</A> + | <A HREF="glossaries-manual.html#3028">Acronyms</A> + | <A HREF="glossaries-manual.html#3041">Acronyms</A> + | <A HREF="glossaries-manual.html#3043">Acronyms</A> + | <A HREF="glossaries-manual.html#3110">Acronyms</A> + | <A HREF="glossaries-manual.html#3112">Acronyms</A> + | <A HREF="glossaries-manual.html#3128">Acronyms</A> + | <A HREF="glossaries-manual.html#3130">Acronyms</A> + | <A HREF="glossaries-manual.html#3180">Acronyms</A> + | <A HREF="glossaries-manual.html#3182">Acronyms</A> + | <A HREF="glossaries-manual.html#3215">Acronyms</A> + | <A HREF="glossaries-manual.html#3217">Acronyms</A> +<DT><STRONG>dua</STRONG> +<DD><A HREF="glossaries-manual.html#2434">Package Options</A> + | <A HREF="glossaries-manual.html#2436">Package Options</A> + | <A HREF="glossaries-manual.html#2963">Acronyms</A> + | <A HREF="glossaries-manual.html#2965">Acronyms</A> + | <A HREF="glossaries-manual.html#2999">Acronyms</A> + | <A HREF="glossaries-manual.html#3001">Acronyms</A> + | <A HREF="glossaries-manual.html#3083">Acronyms</A> + | <A HREF="glossaries-manual.html#3085">Acronyms</A> +<DT><STRONG>footnote</STRONG> +<DD><A HREF="glossaries-manual.html#2410">Package Options</A> + | <A HREF="glossaries-manual.html#2412">Package Options</A> + | <A HREF="glossaries-manual.html#2915">Acronyms</A> + | <A HREF="glossaries-manual.html#2917">Acronyms</A> + | <A HREF="glossaries-manual.html#2945">Acronyms</A> + | <A HREF="glossaries-manual.html#2947">Acronyms</A> + | <A HREF="glossaries-manual.html#2981">Acronyms</A> + | <A HREF="glossaries-manual.html#2983">Acronyms</A> + | <A HREF="glossaries-manual.html#3017">Acronyms</A> + | <A HREF="glossaries-manual.html#3019">Acronyms</A> + | <A HREF="glossaries-manual.html#3050">Acronyms</A> + | <A HREF="glossaries-manual.html#3052">Acronyms</A> + | <A HREF="glossaries-manual.html#3092">Acronyms</A> + | <A HREF="glossaries-manual.html#3094">Acronyms</A> + | <A HREF="glossaries-manual.html#3145">Acronyms</A> + | <A HREF="glossaries-manual.html#3147">Acronyms</A> + | <A HREF="glossaries-manual.html#3171">Acronyms</A> + | <A HREF="glossaries-manual.html#3173">Acronyms</A> + | <A HREF="glossaries-manual.html#3206">Acronyms</A> + | <A HREF="glossaries-manual.html#3208">Acronyms</A> +<DT><STRONG>nonumberlist</STRONG> +<DD><A HREF="glossaries-manual.html#2103">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2105">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2282">Package Options</A> + | <A HREF="glossaries-manual.html#2284">Package Options</A> + | <A HREF="glossaries-manual.html#2577">Number lists</A> + | <A HREF="glossaries-manual.html#2579">Number lists</A> + | <A HREF="glossaries-manual.html#3445">Defining your own glossary</A> + | <A HREF="glossaries-manual.html#3447">Defining your own glossary</A> + | <A HREF="glossaries-manual.html#3454">Defining your own glossary</A> + | <A HREF="glossaries-manual.html#3456">Defining your own glossary</A> +<DT><STRONG>numberedsection</STRONG> +<DD><A HREF="glossaries-manual.html#2209">Package Options</A> + | <A HREF="glossaries-manual.html#2211">Package Options</A> + | <A HREF="glossaries-manual.html#2218">Package Options</A> + | <A HREF="glossaries-manual.html#2220">Package Options</A> + | <A HREF="glossaries-manual.html#2233">Package Options</A> +<DD><DL COMPACT> +<DT><STRONG>autolabel</STRONG> +<DD><A HREF="glossaries-manual.html#2235">Package Options</A> + | <A HREF="glossaries-manual.html#2226">Package Options</A> +<DT><STRONG>false</STRONG> +<DD><A HREF="glossaries-manual.html#2222">Package Options</A> +<DT><STRONG>nolabel</STRONG> +<DD><A HREF="glossaries-manual.html#2224">Package Options</A> +</DL> +<DT><STRONG>numberline</STRONG> +<DD><A HREF="glossaries-manual.html#2143">Package Options</A> + | <A HREF="glossaries-manual.html#2145">Package Options</A> + | <A HREF="glossaries-manual.html#2179">Package Options</A> + | <A HREF="glossaries-manual.html#2181">Package Options</A> +<DT><STRONG>sanitize</STRONG> +<DD><A HREF="glossaries-manual.html#2302">Package Options</A> + | <A HREF="glossaries-manual.html#2304">Package Options</A> + | <A HREF="glossaries-manual.html#2321">Package Options</A> + | <A HREF="glossaries-manual.html#2323">Package Options</A> + | <A HREF="glossaries-manual.html#3060">Acronyms</A> + | <A HREF="glossaries-manual.html#3062">Acronyms</A> + | <A HREF="glossaries-manual.html#3068">Acronyms</A> + | <A HREF="glossaries-manual.html#3075">Acronyms</A> + | <A HREF="glossaries-manual.html#3137">Acronyms</A> + | <A HREF="glossaries-manual.html#3154">Acronyms</A> + | <A HREF="glossaries-manual.html#3189">Acronyms</A> +<DD><DL COMPACT> +<DT><STRONG>description</STRONG> +<DD><A HREF="glossaries-manual.html#3069">Acronyms</A> + | <A HREF="glossaries-manual.html#3155">Acronyms</A> +<DT><STRONG>symbol</STRONG> +<DD><A HREF="glossaries-manual.html#3076">Acronyms</A> + | <A HREF="glossaries-manual.html#3138">Acronyms</A> + | <A HREF="glossaries-manual.html#3190">Acronyms</A> +</DL> +<DT><STRONG>section</STRONG> +<DD><A HREF="glossaries-manual.html#2112">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2114">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2121">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2123">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2197">Package Options</A> + | <A HREF="glossaries-manual.html#2199">Package Options</A> +<DT><STRONG>smallcaps</STRONG> +<DD><A HREF="glossaries-manual.html#2422">Package Options</A> + | <A HREF="glossaries-manual.html#2424">Package Options</A> + | <A HREF="glossaries-manual.html#2885">Acronyms</A> + | <A HREF="glossaries-manual.html#2887">Acronyms</A> + | <A HREF="glossaries-manual.html#2897">Acronyms</A> + | <A HREF="glossaries-manual.html#2899">Acronyms</A> + | <A HREF="glossaries-manual.html#2990">Acronyms</A> + | <A HREF="glossaries-manual.html#2992">Acronyms</A> + | <A HREF="glossaries-manual.html#3008">Acronyms</A> + | <A HREF="glossaries-manual.html#3010">Acronyms</A> + | <A HREF="glossaries-manual.html#3101">Acronyms</A> + | <A HREF="glossaries-manual.html#3103">Acronyms</A> + | <A HREF="glossaries-manual.html#3162">Acronyms</A> + | <A HREF="glossaries-manual.html#3164">Acronyms</A> + | <A HREF="glossaries-manual.html#3197">Acronyms</A> + | <A HREF="glossaries-manual.html#3199">Acronyms</A> +<DT><STRONG>style</STRONG> +<DD><A HREF="glossaries-manual.html#2090">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2092">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2273">Package Options</A> + | <A HREF="glossaries-manual.html#2275">Package Options</A> + | <A HREF="glossaries-manual.html#2816">Displaying a glossary</A> + | <A HREF="glossaries-manual.html#2818">Displaying a glossary</A> + | <A HREF="glossaries-manual.html#3397">Glossary Styles</A> + | <A HREF="glossaries-manual.html#3399">Glossary Styles</A> +<DT><STRONG>toc</STRONG> +<DD><A HREF="glossaries-manual.html#1897">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#1899">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#1947">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#1949">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2134">Package Options</A> + | <A HREF="glossaries-manual.html#2136">Package Options</A> + | <A HREF="glossaries-manual.html#2152">Package Options</A> + | <A HREF="glossaries-manual.html#2154">Package Options</A> + | <A HREF="glossaries-manual.html#2161">Package Options</A> + | <A HREF="glossaries-manual.html#2163">Package Options</A> + | <A HREF="glossaries-manual.html#2170">Package Options</A> + | <A HREF="glossaries-manual.html#2172">Package Options</A> + | <A HREF="glossaries-manual.html#2804">Displaying a glossary</A> + | <A HREF="glossaries-manual.html#2806">Displaying a glossary</A> +<DT><STRONG>translate</STRONG> +<DD><A HREF="glossaries-manual.html#1819">Introduction</A> +<DD><DL COMPACT> +<DT><STRONG>false</STRONG> +<DD><A HREF="glossaries-manual.html#1821">Introduction</A> +</DL> +</DL> +<DT><STRONG><TT>\printglossaries</TT></STRONG> +<DD><A HREF="glossaries-manual.html#1886">A Quick Guide For</A> + | <A HREF="glossaries-manual.html#2451">Defining Glossary Entries</A> +<DT><STRONG><TT>\printglossary</TT></STRONG> +<DD><A HREF="glossaries-manual.html#2448">Defining Glossary Entries</A> + | <A HREF="glossaries-manual.html#3404">Glossary Styles</A> +<DT><STRONG><TT>\printglossary</TT> keys</STRONG> +<DD><DL COMPACT> +<DT><STRONG>style</STRONG> +<DD><A HREF="glossaries-manual.html#2808">Displaying a glossary</A> + | <A HREF="glossaries-manual.html#3401">Glossary Styles</A> +<DT><STRONG>title</STRONG> +<DD><A HREF="glossaries-manual.html#2793">Displaying a glossary</A> +<DT><STRONG>toctitle</STRONG> +<DD><A HREF="glossaries-manual.html#2796">Displaying a glossary</A> +<DT><STRONG>type</STRONG> +<DD><A HREF="glossaries-manual.html#2790">Displaying a glossary</A> +</DL> +<DT><STRONG><TT>\setglossarysection</TT></STRONG> +<DD><A HREF="glossaries-manual.html#2201">Package Options</A> +<DT><STRONG><TT>supertabular</TT></STRONG> +<DD><A HREF="glossaries-manual.html#3343">Glossary Styles</A> +<DT><STRONG><TT>translator</TT></STRONG> +<DD><A HREF="glossaries-manual.html#1810">Introduction</A> + +</DL> +<P> +<A HREF="glossaries-manual.html#top">Top</A> + +<P> +<BR><HR><H4>Footnotes</H4> +<DL> +<DT><A NAME="foot370">... +range</A><A + HREF="glossaries-manual.html#tex2html4"><SUP>1</SUP></A></DT> +<DD>This is new to version 1.01 + +</DD> +<DT><A NAME="foot1670">...acronym</A><A + HREF="glossaries-manual.html#tex2html5"><SUP>2</SUP></A></DT> +<DD>if the +<TT>acronym</TT><A NAME="2242"></A> option is used, otherwise the list of +acronyms is the main glossary + +</DD> +<DT><A NAME="foot1718">... name</A><A + HREF="glossaries-manual.html#tex2html6"><SUP>3</SUP></A></DT> +<DD><TT>main</TT> for the main +(default) glossary, <TT>\acronymtype</TT> for the list of acronyms, or the +name supplied in the first mandatory argument to <TT>\newglossary</TT> for +additional glossaries. + +</DD> +<DT><A NAME="foot1409">... start.</A><A + HREF="glossaries-manual.html#tex2html8"><SUP>4</SUP></A></DT> +<DD>This style was +supplied by Axel Menzel. + +</DD> +<DT><A NAME="foot1752">... +link</A><A + HREF="glossaries-manual.html#tex2html9"><SUP>5</SUP></A></DT> +<DD>if the document doesn't have hyperlinks enabled +<TT>\@glslink</TT> ignores the label and simply typesets the text. + +</DD> +<DT><A NAME="foot1753">... correctly.</A><A + HREF="glossaries-manual.html#tex2html10"><SUP>6</SUP></A></DT> +<DD>again, if the +document doesn't support hyperlinks, <TT>\@glstarget</TT> will ignore +the label, and just typeset the text. + +</DD> +</DL> +<BR><HR> + +</BODY> +</HTML> diff --git a/Master/texmf-dist/doc/latex/glossaries/glossaries-manual.tex b/Master/texmf-dist/doc/latex/glossaries/glossaries-manual.tex new file mode 100644 index 00000000000..9ede69d65e0 --- /dev/null +++ b/Master/texmf-dist/doc/latex/glossaries/glossaries-manual.tex @@ -0,0 +1,1947 @@ +\documentclass[a4paper]{ltxdoc} +\usepackage{ifthen} +\usepackage{alltt} +\usepackage[colorlinks, + bookmarks, + hyperindex=false, + pdfauthor={Nicola L.C. Talbot}, + pdftitle={glossaries.sty: LaTeX2e Package to Assist Generating Glossaries}, + pdfkeywords={LaTeX,package,glossary,acronyms}]{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. + +\usepackage{creatdtx} +\ifmakedtx{ +\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 +\CheckSum{4357} +\CodelineNumbered +\newcommand*{\termdef}[1]{\emph{#1}\iterm{#1}} +\newcommand*{\term}[1]{#1\iterm{#1}} +\newcommand*{\iterm}[1]{\index{#1|main}} +\newcommand{\dq}[1]{``#1''} +} +{ +\usepackage{html} +\usepackage{makeidx} +\renewcommand{\LaTeX}{LaTeX} +\renewcommand{\LaTeXe}{LaTeX2e} +\newcommand*{\termdef}[1]{\emph{#1}\index{#1}} +\newcommand*{\term}[1]{#1\index{#1}} +\newcommand*{\iterm}[1]{\index{#1}} +\newcommand{\dq}[1]{"#1"} +} + + +\ifmakedtx{ +\newcommand*{\istkey}[1]{\texttt{#1}\index{makeindex=\texttt{makeindex}>#1=\texttt{#1}|hyperpage}} +\newcommand*{\ics}[1]{\texttt{\char`\\#1}\SpecialMainIndex{#1}} +\newcommand*{\appname}[1]{\texttt{#1}\index{#1=\texttt{#1}|hyperpage}} +\newcommand*{\mkidxspch}{\index{makeindex=\texttt{makeindex}>special characters|hyperpage}} +\newcommand*{\igloskey}[2][newglossaryentry]{\index{#1 options=\cs{#1} options>#2=\textsf{#2}|hyperpage}} +\newcommand*{\gloskey}[2][newglossaryentry]{\textsf{#2}\igloskey[#1]{#2}} +\newcommand*{\ipkgopt}[2][]{% +\ifthenelse{\equal{#1}{}}{% +\index{package options>#2=\textsf{#2}|hyperpage}}{% +\index{package options>#2=\textsf{#2}>#1=\textsf{#1}|hyperpage}}} +\newcommand*{\pkgopt}[2][]{% +\ifthenelse{\equal{#1}{}}{% +\textsf{#2}\index{package options>#2=\textsf{#2}|hyperpage}}{% +\textsf{#2=#1}\index{package options>#2=\textsf{#2}>#1=\textsf{#1}|hyperpage}}} +\newcommand*{\pkgoptval}[2]{\textsf{#1}\index{package options>#2=\textsf{#2}>#1=\textsf{#1}|hyperpage}} +\newcommand*{\glostyle}[1]{\textsf{#1}\index{glossary styles>#1|hyperpage}} +\newcommand*{\filetype}[1]{\texttt{#1}\index{file types>#1|hyperpage}} +\newcommand*{\sty}[1]{\textsf{#1}} +\newcommand*{\isty}[1]{\sty{#1}\index{#1 package=\sty{#1} package|hyperpage}} +\newcommand*{\envname}[1]{\textsf{#1}} +} +{ +\newcommand{\istkey}[1]{\texttt{#1}\index{makeindex key!#1}} +\newcommand{\ics}[1]{\texttt{\char`\\#1}\index{#1@\cs{#1}}} +\html{\newcommand{\SpecialMainIndex}[1]{\index{#1@\cs{#1}}}} +\newcommand{\appname}[1]{\texttt{#1}\index{#1@\texttt{#1}}} +\newcommand*{\mkidxspch}{\index{makeindex@\texttt{makeindex}!special characters|hyperpage}} +\newcommand{\gloskey}[2][newglossaryentry]{\texttt{#2}\index{#1 keys@\cs{#1} keys!#2}} +\newcommand{\ipkgopt}[2][]{% +\ifthenelse{\equal{#1}{}}{% +\index{package options!#2}}{% +\index{package options!#2!#1}}} +\newcommand{\pkgopt}[2][]{% +\ifthenelse{\equal{#1}{}}{% +\texttt{#2}\index{package options!#2}}{% +\texttt{#2=#1}\index{package options!#2!#1}}} +\newcommand{\pkgoptval}[2]{\texttt{#1}\index{package options!#2!#1}} +\newcommand{\glostyle}[1]{\texttt{#1}\index{glossary styles!#1}} +\newcommand{\filetype}[1]{\texttt{#1}\index{file types!#1}} +\newcommand{\sty}[1]{\texttt{#1}} +\newcommand{\isty}[1]{\sty{#1}\index{#1@\sty{#1}}} +\newcommand{\envname}[1]{\texttt{#1}} +\newcommand{\toTop}{\mbox{}\par\htmlref{Top}{top}} +} + +\begin{document}\ifmakedtx{}{\label{top}} +\MakeShortVerb{"} +\DeleteShortVerb{\|} + + \title{glossaries.sty v 1.11: \LaTeXe\ Package to Assist Generating Glossaries} + \author{Nicola L.C. Talbot\\[10pt] +School of Computing Sciences\\ +University of East Anglia\\ +Norwich. Norfolk\\ +NR4 7TJ. United Kingdom.\\ +\url{http://theoval.cmp.uea.ac.uk/~nlct/}} + + \date{2nd March 2008} + \maketitle +\tableofcontents + + \section{Introduction} + + \changes{1.0}{2007 May 16}{Initial version} +The \sty{glossaries} package is provided to assist generating +glossaries. It has a certain amount of flexibility, allowing the user +to customize the format of the glossary and define multiple glossaries. +It also supports acronyms and glossary styles that include +symbols (in addition to a name and description) for glossary +entries. There is provision for loading a database of glossary terms +where only those terms used in the text are added to the glossary. +This package replaces the \isty{glossary} package which is now +obsolete. + +As from version 1.08, the \sty{glossaries} package now has +limited multi-lingual support, thanks to all the people who have sent +me the relevant translations either via email or via comp.text.tex. +However you must load \isty{babel} \emph{before} +\sty{glossaries} to enable this. \ifmakedtx{(See \autoref{sec:predefinednames} for the +predefined names used by the \sty{glossaries} package.)}{} +As from version 1.1, the \sty{glossaries} package also supports +Till~Tantau's \isty{translator} package provided it is loaded +before the \sty{glossaries} package. This makes it easier to change +the default translations or add new dictionaries. +If you don't want to use the predefined translations, you can use the +package option \pkgopt[false]{translate} and supply your own translations. + +This documentation is structured as follows: \ifmakedtx{\autoref{sec:quick}}{\htmlref{{A Quick Guide For The Impatient}}{sec:quick}} is for +people who want a few quick pointers of how to get started, +without having to read through lengthy descriptions, +\ifmakedtx{\autoref{sec:overview}}{and \htmlref{Overview}{sec:overview}} gives an overview of available commands +and their syntax\ifmakedtx{, \autoref{sec:code} contains the documented +source code for those who want to know more about how the +package works, and how to do more complicated things, such as +changing the way glossary entries appear}{}.\ifmakedtx{}{\toTop} + +\subsection{Generating the associated glossary files} +\label{sec:makeglossaries} + +The \sty{glossaries} package comes with the Perl script +\appname{makeglossaries} which will run \appname{makeindex} on +all the glossary files using a customized \appname{makeindex} +\filetype{.ist} style file (which is created by \ics{makeglossaries}). +The relevant extensions are obtained from the +auxiliary file, so you should only pass the basename as the +argument. For example, if your document is called +\texttt{myfile.tex}, do: +\begin{verbatim} +latex myfile +makeglossaries myfile +latex myfile +\end{verbatim} +You may need to explicitly load \appname{makeglossaries} into +Perl: +\begin{verbatim} +perl makeglossaries myfile +\end{verbatim} +There is a batch file called \texttt{makeglossaries.bat} which +does this for Windows users. + +If you don't have Perl installed, you will have to run +\appname{makeindex} for each glossary type you have defined. +For example, if you have used the \pkgopt{acronym} package option +then you will have both a main glossary as well as a list of acronyms, so you +will need to do (assuming your document is called \texttt{myfile.tex}): +\begin{verbatim} +makeindex -s myfile.ist -t myfile.glg -o myfile.gls myfile.glo +makeindex -s myfile.ist -t myfile.alg -o myfile.acr myfile.acn +\end{verbatim} +This requires remembering all extensions for each of the glossaries +defined in your document, so where possible you should use +\appname{makeglossaries} instead to reduce the possibility of error. +Don't pass all the glossary files in a single call to +\appname{makeindex} or it will merge all your glossaries into a +single glossary. + +If any problems occur, remember to check the transcript files +(e.g.\ \filetype{.glg} or \filetype{.alg}) for messages.\ifmakedtx{}{\toTop} + +\subsection{Troubleshooting} + +The glossaries package comes with a minimal file called +\texttt{minimalgls.tex} which can be used for testing. This +should be located in \texttt{texmf/doc/latex/glossaries/samples/}. Further +information on debugging \LaTeX\ code is available at +\url{http://theoval.cmp.uea.ac.uk/~nlct/latex/minexample/}. + +There is a list of frequently asked questions for the +\sty{glossaries} package available at +\url{http://theoval.cmp.uea.ac.uk/~nlct/latex/packages/faq/glossariesfaq.html}.\ifmakedtx{}{\toTop} + +\section{A Quick Guide For The Impatient} +\label{sec:quick} + +This section is for people who want a few quick pointers +of how to get started, without having to read through +lengthy descriptions. + +\begin{enumerate} +\item Load \sty{glossaries} \emph{after} \isty{hyperref}: +\begin{verbatim} +\usepackage{hyperref} +\usepackage{glossaries} +\end{verbatim} +Similarly for the \isty{html} package: +\begin{verbatim} +\usepackage{html} +\usepackage{glossaries} +\end{verbatim} + +\item Always use \ics{makeglossaries} if you want the glossary +entries to be written to the glossary file: +\begin{verbatim} +\documentclass{article} +\usepackage{glossaries} +\makeglossaries +\end{verbatim} +If you don't use \ics{makeglossaries}, your glossaries will +not appear in the document! + +\item Use \ics{printglossaries} to make your glossaries appear +in the document at that point. For example: +\begin{verbatim} +\maketitle +\printglossaries +\section{Introduction} +\end{verbatim} +Note that only the glossary entries that have been used in the +document text will appear in the glossary. + +\item When you have created your document, run \LaTeX\ on it, +then the Perl script \appname{makeglossaries}, then run \LaTeX\ +on it again: +\begin{verbatim} +latex myfile +makeglossaries myfile +latex myfile +\end{verbatim} +(You may need to run \LaTeX\ again if you have used the \pkgopt{toc} +package option.) +If you use Windows, there is a batch file called +\texttt{makeglossaries.bat} which you can use, but you will +still need Perl installed. + +\item New glossaries can be defined using:\par +\ics{newglossary}\oarg{log-ext}% +\marg{label}\marg{in-ext}\marg{out-ext}% +\marg{title}\par where \meta{label} is an identifying label, +\meta{in-ext} is the extension of the file to be created +by \appname{makeindex} (called by \appname{makeglossaries}), +\meta{out-ext} is the extension of the file to be read by +\appname{makeindex} and \meta{title} is the title for this +new glossary. The first optional argument \meta{log-ext} specifies +the extension of the \appname{makeindex} transcript file. Example: +\begin{verbatim} +\newglossary[nlg]{notation}{not}{ntn}{Notation} +\end{verbatim} +This glossary's label is \texttt{notation} and its title +will be Notation. If you use \appname{makeglossaries}, the +\appname{makeindex} transcript will be written to a file with the +extension \filetype{.nlg}. If \meta{log-ext} is omitted, the extension +\filetype{.glg} will be used. + +\item Any new glossaries must be defined before +\cs{makeglossaries} +\begin{verbatim} +\documentclass{article} +\usepackage{glossaries} +\newglossary{notation}{not}{ntn}{Notation} +\makeglossaries +\end{verbatim} + +\item If you use the \pkgopt{acronym} package option, the +\sty{glossaries} package +will automatically create a new glossary type labelled +\texttt{acronym}: +\begin{verbatim} +\usepackage[acronym]{glossaries} +\end{verbatim} + +\item If your pages have a hyphen compositor (i.e.\ your page +numbers appear in the form 2-1), redefine \ics{glscompositor} +\emph{before} \ics{makeglossaries}: +\begin{verbatim} +\documentclass{article} +\usepackage{glossaries} +\renewcommand{\glscompositor}{-} +\makeglossaries +\end{verbatim} + +\item To add the glossaries to the table of contents use the +\pkgopt{toc} package option: +\begin{verbatim} +\usepackage[toc]{glossaries} +\end{verbatim} + +\item Define a new entry with:\par +\ics{newglossaryentry}\marg{label}\marg{key-val list}\par +The \meta{key-val list} must at least contain a \gloskey{name} +key and a \gloskey{description} key. +For example: +\begin{verbatim} +\newglossaryentry{perl}{name=Perl, +description=A scripting language} +\end{verbatim} +In this example, I have given the entry the label \texttt{perl}. +Whenever I want to use this entry, that is the label I need +to use to identify it. + +\item If the entry name starts with an accented letter, you will +need to group the first letter (otherwise it will cause a +problem for \ics{Gls} and \ics{Glspl}): +\begin{verbatim} +\newglossaryentry{elite}{name={{\'e}lite}, +description={select group or class}} +\end{verbatim} + +\item If you have multiple glossaries, use the \gloskey{type} +key to specify in which glossary the entry belongs. For example: +\begin{verbatim} +\newglossary{languages}{lan}{lng}{Index of Languages} + +\makeglossaries + +\newglossaryentry{perl}{name=Perl, +description=A scripting language, +type=languages} +\end{verbatim} +If \gloskey{type} is omitted, the default glossary is used. + +\item Remember to group values that have a comma or equal sign. +For example: +\begin{verbatim} +\newglossaryentry{pagelist}{name=page list, +description={A list of individual pages or page ranges +(e.g.\ 1,2,4,7--9)}} +\end{verbatim} + +\item Plural forms are assumed to be the singular form with an +\dq{s} appended, unless otherwise specified. To specify an +irregular plural, use the \gloskey{plural} key. For example: +\begin{verbatim} +\newglossaryentry{matrix}{name=matrix, +description=rectangular array of quantities, +plural=matrices} +\end{verbatim} + +\item The way the term appears in the main text can be different +from the way the term appears in the glossary: +\begin{verbatim} +\newglossaryentry{matrix}{name=Matrix, +description=rectangular array of quantities, +text=matrix, +plural=matrices} +\end{verbatim} +In this example, the entry name appears as \dq{Matrix} in the +glossary, and either \dq{matrix} or \dq{matrices} in the text. + +\item The way the term appears on first use can be different +to the way it appears subsequently: +\begin{verbatim} +\newglossaryentry{singmtx}{name=Singular Matrix, +description=A matrix with a zero determinant, +first=singular matrix (SM), +text=SM, +firstplural=singular matrices (SMs)} +\end{verbatim} +In this example, the entry name appears as \dq{Singular Matrix} in +the glossary, and in the text it appears as \dq{singular matrix (SM)} +or \dq{singular matrices (SMs)} the first time the entry is used, +and subsequently appears as \dq{SM} or \dq{SMs}. + +\item The quick and easy way to define an acronym is to use:\par +\ics{newacronym}\oarg{key-val list}\marg{label}\marg{abbrev}% +\marg{long}\par +For example: +\begin{verbatim} +\newacronym{svm}{SVM}{support vector machine} +\end{verbatim} +This is equivalent to: +\begin{verbatim} +\newglossaryentry{svm}{type=\acronymtype, +name={SVM}, +description={support vector machine}, +text={SVM}, +first={support vector machine (SVM)}, +plural={SVMs}, +firstplural={support vector machines (SVMs)}} +\end{verbatim} +(The value of \ics{acronymtype} varies depending on whether +the \pkgopt{acronym} package option is used or not. +The optional argument \meta{key-val list} can be used to +override any of the \ics{newglossaryentry} keys; for +example, if the acronym has an irregular plural.) + +\item The font used to display the entry name in the glossary +is governed by \ics{glsnamefont}. This can be redefined +as required. For example, to make the entry names appear +in a medium sans-serif font do: +\begin{verbatim} +\renewcommand{\glsnamefont}[1]{\textsf{\mdseries #1}} +\end{verbatim} +Note that the list-like glossary styles defined in the +\isty{glossary-list} package place the entry name in +the optional argument to \ics{item}, so they will +appear in bold, unless you redefine \ics{glsnamefont} to counteract the +bold font. + +\item In the document use \ics{gls}\marg{label} +to use a predefined term (this will also enter the term into +the associated glossary output file). For example: +\begin{verbatim} +A \gls{singmtx} is a matrix with a zero determinant. +\end{verbatim} + +\item Other variations: +\begin{itemize} +\item \ics{Gls}\marg{label} : like \cs{gls}, +but with first letter in upper case +\item \ics{GLS}\marg{label} : like \cs{gls}, +but all upper case. +\item \ics{glspl}\marg{label} : use plural +\item \ics{Glspl}\marg{label} : use plural with +first letter in upper case +\item \ics{GLSpl}\marg{label} : use plural but +all upper case +\item \ics{glslink}\marg{label}\marg{link text} : +use \meta{link text} to link to the given entry in the glossary. +\end{itemize} +For example, the following will produce the plural form with +the first letter in uppercase: +\begin{verbatim} +\Glspl{singmtx} are matrices with a zero determinant. +\end{verbatim} + +\item Additional text can be appended to the link using the +end optional argument. For example, to form the possessive: +\begin{verbatim} +The \gls{singmtx}['s] dimensions \ldots +\end{verbatim} + +\item The format of the associated entry number can be +changed using the \gloskey[glslink]{format} key in the optional argument. +Note that the value of the \gloskey[glslink]{format} key should be the +name of a command \emph{without} the initial backslash. For +example: +\begin{verbatim} +The primary definition of \glspl[format=textbf]{singmtx}. +\end{verbatim} +In this example the relevant glossary entry will have the +page number in bold (since it uses \cs{textbf}) but +it will no longer have a hyperlink (if hyperlinks are enabled.) + +\item The \sty{glossaries} package provides commands to +change the font whilst ensuring that the number remains a +hyperlink. These are of the form \cs{hyper}\meta{xx} and +are equivalent to the standard font changing commands of the +form \cs{text}\meta{xx}, as well as \ics{hyperemph} +(which uses \ics{emph}.) For example: +\begin{verbatim} +The primary definition of \glspl[format=hyperbf]{singmtx}. +\end{verbatim} + +\item Don't use declarations in \gloskey[glslink]{format} as this can +cause unpredictable results, as there is no guarantee that the effect +will be localised to the required text. + +\item Entries can be added to the glossary without producing +any text using \ics{glsadd}\marg{label} or +\ics{glsaddall}. These commands also taken an optional +argument where you can specify the format. For example +\begin{verbatim} +\glsadd[format=hyperbf]{singmtx} +\end{verbatim} +will add a line to the +glossary file for the specified term, but will not produce +any text where the command occurs. + +\item A number range can be entered using \verb|format=(| and +\verb"format=)" to mark the beginning and ending of the +range\footnote{This is new to version 1.01}. For example: +\begin{verbatim} + \glsadd[format=(]{singmtx} + This is a very long section all about \glspl{singmtx}. + + % lots of text omitted + + \glsadd[format=)]{singmtx} +\end{verbatim} +This is equivalent to \appname{makeindex}'s \verb"|(" and \verb"|)" +formats. + +\item You can combine the range markers with a formatting command +(again without the preceding backslash). For example: +\begin{verbatim} + This is the start of a very long section all + about \glspl[format=(hyperbf]{singmtx}. + + % lots of text omitted + + This is the end a very long section all about + \glspl[format=)hyperbf]{singmtx}. +\end{verbatim} + +\item Only those terms that have actually been used in the +document will be placed in the glossary. If you have defined +a term that doesn't appear in the document, then it means +you haven't used it in the text (either via \ics{glslink} +or \ics{gls} and related commands, or via \ics{glsadd} +or \ics{glsaddall}.) + +\item To change the sorting order, use the \gloskey{sort} key. +For example: +\begin{verbatim} +\newglossaryentry{universal}{name={\ensuremath{\mathcal{U}}}, +description=The universal set, +sort=U} +\end{verbatim} + +\item You don't need to escape \appname{makeindex}'s special characters: +\begin{verbatim} +\newglossaryentry{quote}{name={"}, +description={Double quote character}} + +\newglossaryentry{exclam}{name={!}, +description={Exclamation mark}} + +\newacronym{rna}{RNA}{ribonukleins\"aure} +\end{verbatim} + +\item Associated symbols can also be specified, but whether the +symbol appears in the glossary depends on the glossary style. +For example: +\begin{verbatim} +\newglossaryentry{metre}{name={metre}, +description={A metric measurement of length}, +symbol={m}} +\end{verbatim} +The predefined glossary styles that display the entry symbol +are: \glostyle{long4col}, \glostyle{long4colheader}, +\glostyle{long4colborder}, \glostyle{long4colheaderborder}, +\glostyle{super4col}, \glostyle{super4colheader}, +\glostyle{super4colborder} and \glostyle{super4colheaderborder}. +All the other styles supplied by this package ignore the associated +symbol. + +\item Glossary styles can be set using the \pkgopt{style} +package option. For example: +\begin{verbatim} +\usepackage[style=long3col]{glossaries} +\end{verbatim} +or using \ics{glossarystyle}\marg{style}. For example: +\begin{verbatim} +\glossarystyle{altlist} +\end{verbatim} +The predefined glossary styles provided by the \sty{glossaries} +bundle are listed in \ifmakedtx{\autoref{sec:styles}}{\htmlref{{Glossary Styles}}{sec:styles}}. + +\item The list of numbers associated with each glossary entry +can be suppressed using the package option \pkgopt{nonumberlist}: +\begin{verbatim} +\usepackage[nonumberlist]{glossaries} +\end{verbatim} + +\item By default, the glossaries will appear in an unnumbered +chapter if chapters are defined, otherwise in an unnumbered +section. This can be changed using the \pkgopt{section} package +option. For example, to make the glossaries appear in an unnumbered +section, even if chapters are defined, do: +\begin{verbatim} +\usepackage[section]{glossaries} +\end{verbatim} +Other sectional units can also be specified as +\pkgopt{section}=\meta{value}. For example, to make the glossaries +appear in unnumbered subsections: +\begin{verbatim} +\usepackage[section=subsection]{glossaries} +\end{verbatim} + +\end{enumerate}\ifmakedtx{}{\toTop} + +\section{Overview}\label{sec:overview} + \changes{1.02}{2007 May 25}{added overview section} + +\subsection{Package Options} + +The \sty{glossaries} package options are as follows: +\begin{description} +\item[\pkgopt{toc}] Add the glossaries to the table of contents. + +\item[\pkgopt{numberline}] When used with \pkgopt{toc}, this will +add \cs{numberline}\verb|{}| in the final argument of +\cs{addcontentsline}. This will align the table of contents entry +with the numbered section titles. Note that this option has no +effect if the \pkgopt{toc} option is omitted. If \pkgopt{toc} is +used without \pkgopt{numberline}, the title will be aligned with +the section numbers rather than the section titles. + +\item[\pkgopt{acronym}] Make a separate glossary for acronyms. + +\item[\pkgopt{section}] This is a \meta{key}=\meta{value} option. Its +value should be the name of a sectional unit (e.g.\ chapter). +This will make the glossaries appear in the named sectional unit, +otherwise each glossary will appear in a chapter, if chapters +exists, otherwise in a section. Unnumbered sectional units will be used +by default. Example: +\begin{verbatim} +\usepackage[section=subsection]{glossaries} +\end{verbatim} +You can omit the value if you want to use sections, i.e.\ +\begin{verbatim} +\usepackage[section]{glossaries} +\end{verbatim} +is equivalent to +\begin{verbatim} +\usepackage[section=section]{glossaries} +\end{verbatim} +You can change this value later in the document using +\ics{setglossarysection}\marg{type}. + +\item[\pkgopt{numberedsection}] +The glossaries are placed in unnumbered sectional units by default, +but this can be changed using \pkgopt{numberedsection}. This option can take +three possible values: \pkgoptval{false}{numberedsection} (no +number, i.e.\ use starred form), \pkgoptval{nolabel}{numberedsection} +(numbered, i.e.\ unstarred form, but not labelled) and +\pkgoptval{autolabel}{numberedsection} (numbered with automatic +labelling). If \pkgopt[autolabel]{numberedsection} is used, each +glossary is given a label that matches the glossary type, so the +main (default) glossary is labelled \texttt{main}, the list of +acronyms is labelled \texttt{acronym}\footnote{if the +\pkgopt{acronym} option is used, otherwise the list of +acronyms is the main glossary} and additional glossaries are labelled +using the value specified in the first mandatory argument to +\cs{newglossary}. For example, if you load \sty{glossaries} +using: +\begin{verbatim} +\usepackage[section,numberedsection=autolabel]{glossaries} +\end{verbatim} +then each glossary will appear in a numbered section, and can +be referenced using something like: +\begin{verbatim} +The main glossary is in section~\ref{main} and the list of +acronyms is in section~\ref{acronym}. +\end{verbatim} +If you can't decide whether to have the acronyms in the main +glossary or a separate list of acronyms, you can use +\ics{acronymtype} which is set to \texttt{main} if the +\pkgopt{acronym} option is not used and is set to \texttt{acronym} +if the \pkgopt{acronym} option is used. For example: +\begin{verbatim} +The list of acronyms is in section~\ref{\acronymtype}. +\end{verbatim} + +\item[\pkgopt{style}] This is a \meta{key}=\meta{value} option. Its +value should be the name of the glossary style to use. Predefined +glossary styles are listed \ifmakedtx{in \autoref{sec:styles}}{\htmlref{later}{sec:styles}}. + +\item[\pkgopt{nonumberlist}] This option will suppress the +associated number lists\iterm{number list} in the glossaries (see also +\ifmakedtx{\autoref{sec:numberlists}}{\htmlref{Number Lists}{sec:numberlists}}.) + +\item[\pkgopt{counter}] This is a \meta{key}=\meta{value} option. The +value should be the name of the default counter to use in the number +lists\iterm{number list}. + +\ifmakedtx{\hypertarget{sanitize}{}\relax}{\label{sanitize}} +\item[\pkgopt{sanitize}] This is a \meta{key}=\meta{value} option whose +value is also a \meta{key}=\meta{value} list. By default, the +\sty{glossaries} package sanitizes the values of the +\gloskey{name}, \gloskey{description} and \gloskey{symbol} keys used +when defining a new glossary entry. This may lead to unexpected results +if you try to display these values within the document text. This +sanitization can be switched off using the \pkgopt{sanitize} package +option. \ifmakedtx{(See \autoref{sec:pkgopt} and \autoref{sec:newentry} for +further details.)}{} For example, to switch off the sanitization for the +\gloskey{description} and \gloskey{name} keys, but not for the +\gloskey{symbol} key, do: +\begin{verbatim} +\usepackage[sanitize={name=false,description=false,% +symbol=true}]{glossaries} +\end{verbatim} + +\textbf{Note}: this sanitization only applies to the \gloskey{name}, +\gloskey{description} and \gloskey{symbol} keys. It doesn't apply +to any of the other keys (except the \gloskey{sort} key which is +always sanitized) so fragile commands contained in the value of +the other keys must always be protected using \cs{protect}. +Since the value of the \gloskey{text} key is obtained from the +\gloskey{name} key, you will still need to protect fragile commands +in the \gloskey{name} key if you don't use the \gloskey{text} key. + +\item[\pkgopt{babel}] This is a boolean key and is for use when +the \sty{glossaries} package is used in conjunction with the +\isty{babel} package. The default is \pkgopt[true]{babel}, which +adds the glossary translations to \isty{babel}'s captions. If +you don't like the translations provided by the \sty{glossaries} +package, you can set \pkgopt[false]{babel} and provide your own +translations. + +\item[\pkgopt{description}] This option changes the definition of +\ics{newacronym} to allow a description. See \ifmakedtx{\autoref{sec:acronyms}}{\htmlref{later}{sec:acronyms}} +for further details. + +\item[\pkgopt{footnote}] This option changes the definition of +\ics{newacronym} and the way that acronyms are displayed. See \ifmakedtx{\autoref{sec:acronyms}}{\htmlref{later}{sec:acronyms}} +for further details. + +\item[\pkgopt{smallcaps}] This option changes the definition of +\ics{newacronym} and the way that acronyms are displayed. See \ifmakedtx{\autoref{sec:acronyms}}{\htmlref{later}{sec:acronyms}} +for further details. + +\item[\pkgopt{dua}] This option changes the definition of +\ics{newacronym} so that acronyms are always expanded. +See \ifmakedtx{\autoref{sec:acronyms}}{\htmlref{later}{sec:acronyms}} +for further details. + +\end{description}\ifmakedtx{}{\toTop} + +\subsection{Defining Glossary Entries} +\label{sec:newglosentry} + +All glossary entries that are used in a document must be defined in +the preamble. Only those entries that occur in the document +(using any of the commands described in \ifmakedtx{\autoref{sec:glslink}}{\htmlref{Links to Glossary Entries}{sec:glslink}} and +\ifmakedtx{\autoref{sec:glsadd}}{\htmlref{Adding an entry to the glossary without generating text}{sec:glsadd}}) will appear in the glossary. Each time an entry +is used in this way, a line is added to an associated glossary +(\filetype{.glo}) file, which then needs to be converted into a +corresponding \filetype{.gls} file which contains the typeset glossary +which is input by \ics{printglossary} or +\ics{printglossaries}. The Perl script \appname{makeglossaries} +can be used to call \appname{makeindex}, using a customised +\filetype{.ist} style file, for each of the glossaries that are defined +in the document. Note that there should be no need for you to +explicitly edit or input any of these external files. + +\DescribeMacro{\makeglossaries} +The command \cs{makeglossaries} must be placed in the preamble in +order to create the customised \appname{makeindex} \filetype{.ist} +style file and to ensure that glossary entries are written to the +appropriate output file. If you omit \cs{makeglossaries} none of the +glossaries will be created. Note that if your page numbers use a +hyphen compositor, you must set this by redefining +\DescribeMacro{\glscompositor}\cs{glscompositor} \emph{before} +using \cs{makeglossaries}: +\begin{verbatim} +\renewcommand*{\glscompositor}{-} +\end{verbatim} +(The default value of \cs{glscompositor} is a full stop.) + +\DescribeMacro{\newglossaryentry} +New glossary entries are defined using the command:\\[10pt] +\cs{newglossaryentry}\marg{label}\marg{key-val list}\\[10pt] The first +argument, \meta{label}, must be a unique label with which to identify +this entry. The second argument, \meta{key-val list}, is a +\meta{key}=\meta{value} list that supplies the relevant information +about this entry. There are two required fields: \gloskey{name} and +\gloskey{description}. Available fields are listed below: + +\begin{description} +\item[{\gloskey{name}}] The name of the entry (as it will appear in the +glossary). + +\item[{\gloskey{description}}] A brief description of this term (to +appear in the glossary). + +\item[{\gloskey{text}}] How this entry will appear in the document text +when using \ics{gls} (or one of its uppercase variants). If this +field is omitted, the value of the \gloskey{name} key is used. + +\item[{\gloskey{first}}] How the entry will appear in the document text +the first time it is used with \ics{gls} (or one of its uppercase +variants). If this field is omitted, the value of the \gloskey{text} +key is used. + +\item[{\gloskey{plural}}] How the entry will appear in the document text +when using \ics{glspl} (or one of its uppercase variants). +If this field is omitted, the value is obtained by appending an +\dq{s} to the value of the \gloskey{text} field. + +\item[{\gloskey{firstplural}}] How the entry will appear in the document +text the first time it is used with \ics{glspl} (or one of +its uppercase variants). If this field is omitted, the value is +obtained by appending an \dq{s} to the value of the \gloskey{first} +field. + +\item[{\gloskey{symbol}}] This field is provided to allow the user to +specify an associated symbol, but most glossary styles ignore +this value. If omitted, the value is set to \cs{relax}. + +\item[{\gloskey{sort}}] This value indicates how \appname{makeindex} +should sort this entry. If omitted, the value is given by the +\gloskey{name} field. This value is equivalent to +\appname{makeindex}'s \dq{actual} character (which is usually the +at-sign @ although the \sty{glossaries} package uses a different +symbol). + +\item[{\gloskey{type}}] This is the glossary type to which this entry +belongs. If omitted, the default glossary is assumed +(\texttt{type=main}). The list of acronyms type is given by +\ics{acronymtype} which will either be \texttt{main} or +\texttt{acronym}, depending on whether the \pkgopt{acronym} package +option was used. +\end{description} +Note that if the \gloskey{text} key (or the \gloskey{name} key, if the +\gloskey{text} key is omitted) starts with an accented letter, +you must group the accented letter, otherwise it will cause a +problem for \cs{Gls} and \cs{Glspl}. For example: +\begin{verbatim} +\newglossaryentry{elite}{name={{\'e}lite}, +description={select group or class}} +\end{verbatim} +(Likewise for the \gloskey{plural}, \gloskey{first} and +\gloskey{firstplural} keys.) + +\DescribeMacro{\loadglsentries} +You can store all your glossary entry definitions in another +file, and use:\\[10pt] +\cs{loadglsentries}\oarg{type}\marg{filename}\\[10pt] +where \meta{filename} is the name of the file containing all the +\cs{newglossaryentry} commands. The optional argument +\meta{type} is the name of the glossary to which those entries +should belong, for those entries where the \gloskey{type} key has +been omitted. Note that only those entries that have been used +in the text will appear in the relevant glossaries.\ifmakedtx{}{\toTop} + +\subsection{Number lists} +\label{sec:numberlists} + +Each entry in the glossary has an associated \termdef{number list}. +By default, +these numbers refer to the pages on which that entry has been used +(using any of the commands described in \ifmakedtx{\autoref{sec:glslink}}{\htmlref{Links to Glossary Entries}{sec:glslink}} +and \ifmakedtx{\autoref{sec:glsadd}}{\htmlref{Adding an entry to the glossary without generating text}{sec:glsadd}}). The number list can be suppressed using +the \pkgopt{nonumberlist} package option, or an alternative counter +can be set as the default using the \pkgopt{counter} package option.\ifmakedtx{}{\toTop} + +\subsection{Links to Glossary Entries} +\label{sec:glslink} + +Once you have defined a glossary entry using +\ics{newglossaryentry}, you can refer to that entry in the +document using one of the commands listed in this section. The +text which appears at that point in the document when using +one of these commands is referred to as the +\termdef{link text} (even if there are no hyperlinks). + +The way the \term{link text} is displayed +depends on \DescribeMacro{\glstextformat}\cs{glstextformat}\marg{text}. +For example, to make all \term{link text} appear in a sans-serif +font, do: +\begin{verbatim} +\renewcommand*{\glstextformat}[1]{\textsf{#1}} +\end{verbatim} + +\DescribeMacro{\glslink} +The command:\\[10pt] +\cs{glslink}\oarg{options}\marg{label}\marg{text}\\[10pt] +will place \meta{text} in the document at that point and add +a line into the associated glossary file for the glossary entry +given by \meta{label}. If hyperlinks are supported, \meta{text} +will be a hyperlink to the relevant line in the glossary. The +optional argument \meta{options} must be a \meta{key}=\meta{value} +list which can take any of the following keys: + +\begin{description} +\item[{\gloskey[glslink]{format}}] This specifies how to format the +associated number for this entry in the glossary. This value is +equivalent to the \appname{makeindex} encap value, and (as with +\cs{index}) the value needs to be the name of a command \emph{without} +the initial backslash. As with \cs{index}, the characters \verb"(" and +\verb")" can also be used to specify the beginning and ending of a +number range. Again as with \cs{index}, the command should be the name +of a command which takes an argument (which will be the associated +number). Be careful not to use a declaration (such as \cs{bfseries}) +instead of a text block command (such as \cs{textbf}) as the effect is +not guaranteed to be localised. If you want to apply more than one +style to a given entry (e.g.\ \textbf{bold} and \emph{italic}) you will +need to create a command that applies both formats, e.g.\ +\begin{verbatim} +\newcommand*{\textbfem}[1]{\textbf{\emph{#1}}} +\end{verbatim} +and use that command. + +If you are using hyperlinks and you want to change the font of the +hyperlink, don't use \cs{hyperpage} (provided by the \isty{hyperref} +package) as the numbers may not refer to a page number. +Instead, the \sty{glossaries} package provides the following +number formats: +\begin{center} +\ifmakedtx{\begin{tabular}{@{\sffamily}lp{0.8\linewidth}} +hyperrm & The number is a serif hyperlink to the relevant part of the +document\\ +hypersf & The number is a sans-serif hyperlink to the relevant part +of the document\\ +hypertt & The number is a monospaced hyperlink to the relevant part +of the document\\ +hyperbf & The number is a bold hyperlink to the relevant part of the +document\\ +hypermd & The number is a medium weight hyperlink to the relevant +part of the document\\ +hyperit & The number is an italic hyperlink to the relevant +part of the document\\ +hypersl & The number is a slanted hyperlink to the relevant +part of the document\\ +hyperup & The number is an upright hyperlink to the relevant +part of the document\\ +hypersc & The number is a small caps hyperlink to the relevant +part of the document\\ +hyperemph & The number is an emphasized hyperlink to the relevant +part of the document +\end{tabular}}{\begin{tabular}{ll} +\texttt{hyperrm} & The number is a serif hyperlink to the relevant part of the +document\\ +\texttt{hypersf} & The number is a sans-serif hyperlink to the relevant part +of the document\\ +\texttt{hypertt} & The number is a monospaced hyperlink to the relevant part +of the document\\ +\texttt{hyperbf} & The number is a bold hyperlink to the relevant part of the +document\\ +\texttt{hypermd} & The number is a medium weight hyperlink to the relevant +part of the document\\ +\texttt{hyperit} & The number is an italic hyperlink to the relevant +part of the document\\ +\texttt{hypersl} & The number is a slanted hyperlink to the relevant +part of the document\\ +\texttt{hyperup} & The number is an upright hyperlink to the relevant +part of the document\\ +\texttt{hypersc} & The number is a small caps hyperlink to the relevant +part of the document\\ +\texttt{hyperemph} & The number is an emphasized hyperlink to the relevant +part of the document +\end{tabular}} +\end{center} +Note that if the \cs{hyperlink} command hasn't been defined, +the \texttt{hyper}\meta{xx} formats are equivalent to the +analogous \cs{text}\meta{xx} font commands. If you want to +make a new format, you will need to define a command which takes +one argument and use that; for example, if you want the associated +number in the glossary to be in a bold sans-serif font, you can define a +command called, say, \cs{hyperbsf}: +\begin{verbatim} +\newcommand{\hyperbsf}[1]{\textbf{\hypersf{#1}}} +\end{verbatim} +and then use \texttt{hyperbsf} as the value for the \gloskey{format} +key.\ifmakedtx{ (See also \autoref{sec:printglos}.)}{} + +\item[{\gloskey[glslink]{counter}}] This specifies which counter +to use for the associated number for this glossary entry. (See also +\ifmakedtx{\autoref{sec:numberlists}}{\htmlref{Number Lists}{sec:numberlists}}.) + +\item[{\gloskey[glslink]{hyper}}] This is a boolean key which can +be used to enable/disable the hyperlink to the relevant entry +in the glossary. (Note that setting \texttt{hyper=true} will have no +effect if \cs{hyperlink} has not been defined.) The default +value is \texttt{hyper=true}. + +\end{description} +\DescribeMacro{\glslink*} +There is also a starred version:\\[10pt] +\cs{glslink*}\oarg{options}\marg{label}\marg{text}\\[10pt] +which is equivalent to \cs{glslink}, except it sets +\texttt{hyper=false}. + +\DescribeMacro{\gls} +The command:\\[10pt] +\cs{gls}\oarg{options}\marg{label}\oarg{insert}\\[10pt] +is the same as \cs{glslink}, except that the \term{link text} +is determined from the values of the \gloskey{text} and +\gloskey{first} keys supplied when the entry was defined using +\ics{newglossaryentry}. There are two uppercase variants:\\[10pt] +\DescribeMacro{\Gls} +\cs{Gls}\oarg{options}\marg{label}\oarg{insert}\\[10pt] +and\\[10pt] +\DescribeMacro{\GLS} +\cs{GLS}\oarg{options}\marg{label}\oarg{insert}\\[10pt] +which make the first letter of the link or all the link text +uppercase, respectively. + +The final optional argument \meta{insert}, allows you to insert +some additional text into the link text. By default, this will +append \meta{insert} at the end of the link text. The first optional +argument \meta{options} is the same as the optional argument to +\ics{glslink}. As with \cs{glslink}, these commands also have +a starred version that disable the hyperlink. + +There are also analogous plural forms:\\[10pt] +\DescribeMacro{\glspl} +\cs{glspl}\oarg{options}\marg{label}\oarg{insert}\\[10pt] +\DescribeMacro{\Glspl} +\cs{Glspl}\oarg{options}\marg{label}\oarg{insert}\\[10pt] +\DescribeMacro{\GLSpl} +\cs{GLSpl}\oarg{options}\marg{label}\oarg{insert}\\[10pt] +These determine the link text from the \gloskey{plural} and +\gloskey{firstplural} keys supplied when the entry was first +defined. As before, these commands also have +a starred version that disable the hyperlink. + +\DescribeMacro{\glstext}The command:\\[10pt] +\cs{glstext}\oarg{options}\marg{label}\oarg{insert}\\[10pt] +is similar to \ics{gls} except that it always uses the value +of the \gloskey{text} key and does not mark the entry as +having been used. + +There are also analogous commands:\\[10pt] +\DescribeMacro{\Glstext} +\cs{Glstext}\oarg{options}\marg{text}\oarg{insert}\\[10pt] +\DescribeMacro{\GLStext} +\cs{GLStext}\oarg{options}\marg{text}\oarg{insert}\\[10pt] +As before, these commands also have a starred version that disable +the hyperlink. + +\DescribeMacro{\glsfirst}The command:\\[10pt] +\cs{glsfirst}\oarg{options}\marg{label}\oarg{insert}\\[10pt] +is similar to \ics{gls} except that it always uses the value +of the \gloskey{first} key and does not mark the entry as +having been used. + +There are also analogous commands:\\[10pt] +\DescribeMacro{\Glsfirst} +\cs{Glsfirst}\oarg{options}\marg{text}\oarg{insert}\\[10pt] +\DescribeMacro{\GLSfirst} +\cs{GLSfirst}\oarg{options}\marg{text}\oarg{insert}\\[10pt] +As before, these commands also have a starred version that disable +the hyperlink. + +\DescribeMacro{\glsplural}The command:\\[10pt] +\cs{glsplural}\oarg{options}\marg{label}\oarg{insert}\\[10pt] +is similar to \ics{gls} except that it always uses the value +of the \gloskey{plural} key and does not mark the entry as +having been used. + +There are also analogous commands:\\[10pt] +\DescribeMacro{\Glsplural} +\cs{Glsplural}\oarg{options}\marg{text}\oarg{insert}\\[10pt] +\DescribeMacro{\GLSplural} +\cs{GLSplural}\oarg{options}\marg{text}\oarg{insert}\\[10pt] +As before, these commands also have a starred version that disable +the hyperlink. + +\DescribeMacro{\glsfirstplural}The command:\\[10pt] +\cs{glsfirstplural}\oarg{options}\marg{label}\oarg{insert}\\[10pt] +is similar to \ics{gls} except that it always uses the value +of the \gloskey{firstplural} key and does not mark the entry as +having been used. + +There are also analogous commands:\\[10pt] +\DescribeMacro{\Glsfirstplural} +\cs{Glsfirstplural}\oarg{options}\marg{text}\oarg{insert}\\[10pt] +\DescribeMacro{\GLSfirstplural} +\cs{GLSfirstplural}\oarg{options}\marg{text}\oarg{insert}\\[10pt] +As before, these commands also have a starred version that disable +the hyperlink. + +\DescribeMacro{\glsname}The command:\\[10pt] +\cs{glsname}\oarg{options}\marg{label}\oarg{insert}\\[10pt] +is similar to \ics{gls} except that it always uses the value +of the \gloskey{name} key and does not mark the entry as +having been used. Note: if you want to use this command and the +\gloskey{name} key contains commands, you will have to disable the +\ifmakedtx{\hyperlink{sanitize}{sanitization}}{\htmlref{sanitization}{sanitize}} +of the \gloskey{name} key and protect fragile commands. + +There are also analogous commands:\\[10pt] +\DescribeMacro{\Glsname} +\cs{Glsname}\oarg{options}\marg{text}\oarg{insert}\\[10pt] +\DescribeMacro{\GLSname} +\cs{GLSname}\oarg{options}\marg{text}\oarg{insert}\\[10pt] +As before, these commands also have a starred version that disable +the hyperlink. + +\DescribeMacro{\glssymbol}The command:\\[10pt] +\cs{glssymbol}\oarg{options}\marg{label}\oarg{insert}\\[10pt] +is similar to \ics{gls} except that it always uses the value +of the \gloskey{symbol} key and does not mark the entry as +having been used. Note: if you want to use this command and the +\gloskey{symbol} key contains commands, you will have to disable the +\ifmakedtx{\hyperlink{sanitize}{sanitization}}{\htmlref{sanitization}{sanitize}} +of the \gloskey{symbol} key and protect fragile commands. + +There are also analogous commands:\\[10pt] +\DescribeMacro{\Glssymbol} +\cs{Glssymbol}\oarg{options}\marg{text}\oarg{insert}\\[10pt] +\DescribeMacro{\GLSsymbol} +\cs{GLSsymbol}\oarg{options}\marg{text}\oarg{insert}\\[10pt] +As before, these commands also have a starred version that disable +the hyperlink. + +\DescribeMacro{\glsdesc}The command:\\[10pt] +\cs{glsdesc}\oarg{options}\marg{label}\oarg{insert}\\[10pt] +is similar to \ics{gls} except that it always uses the value +of the \gloskey{description} key and does not mark the entry as +having been used. Note: if you want to use this command and the +\gloskey{description} key contains commands, you will have to disable the +\ifmakedtx{\hyperlink{sanitize}{sanitization}}{\htmlref{sanitization}{sanitize}} +of the \gloskey{description} key and protect fragile commands. + +There are also analogous commands:\\[10pt] +\DescribeMacro{\Glsdesc} +\cs{Glsdesc}\oarg{options}\marg{text}\oarg{insert}\\[10pt] +\DescribeMacro{\GLSdesc} +\cs{GLSdesc}\oarg{options}\marg{text}\oarg{insert}\\[10pt] +As before, these commands also have a starred version that disable +the hyperlink. + +\ifmakedtx{}{\toTop} + +\subsubsection{Changing the format of the link text} +\label{sec:glsdisplay} + +The format of the \term{link text} for \ics{gls}, \ics{glspl} +and their uppercase variants is governed by two commands: +\DescribeMacro{\glsdisplayfirst}\cs{glsdisplayfirst}, which is used the +first time a glossary entry is used in the text and +\DescribeMacro{\glsdisplay}\cs{glsdisplay}, which is used subsequently. +Both commands take four arguments: the first is either the singular or +plural form given by the \gloskey{text}, \gloskey{plural}, +\gloskey{first} or \gloskey{firstplural} keys (used when the term was +defined) depending on context; the second argument is the term's +description (as supplied by the \gloskey{description} key); the third +argument is the symbol associated with the term (as supplied by the +\gloskey{symbol} key) and the fourth argument is the additional text +supplied in the final optional argument to \cs{gls} or +\cs{glspl} (or their uppercase variants). The default definitions +of \cs{glsdisplay} and \cs{glsdisplayfirst} simply +print the first argument immediately followed by the fourth argument. +The remaining arguments are ignored. + +For example, suppose you want a glossary of measurements and +units, you can use the \gloskey{symbol} key to store the unit: +\begin{verbatim} +\newglossaryentry{distance}{name=distance, +description={The length between two points}, +symbol={km}} +\end{verbatim} +and now suppose you want \verb|\gls{distance}| to produce +\dq{distance (km)} on first use, then you can redefine +\cs{glsdisplayfirst} as follows: +\begin{verbatim} +\renewcommand{\glsdisplayfirst}[4]{#1#4 (#3)} +\end{verbatim} +Note that the additional text is placed after \verb|#1|, so +\verb|\gls{distance}['s]| will produce \dq{distance's (km)} +rather than \dq{distance (km)'s} which looks a bit odd (even though +it may be in the context of \dq{the distance (km) is measured between +the two points} --- but in this instance it may be better not to +use a contraction). + +Note also that all of the \term{link text} will be formatted according +to \ics{glstextformat} (described earlier). So if you do, say: +\begin{verbatim} +\renewcommand{\glstextformat}[1]{\textbf{#1}} +\renewcommand{\glsdisplayfirst}[4]{#1#4 (#3)} +\end{verbatim} +then \verb|\gls{distance}| will produce \dq{\textbf{distance (km)}}. + +If you have multiple glossaries, changing \cs{glsdisplayfirst} and +\cs{glsdisplay} will change the way entries for all of the +glossaries appear when using commands \cs{gls}, \cs{glspl} and their +uppercase variants. If you only +want the change to affect entries for a given glossary, then you need +to use \DescribeMacro{\defglsdisplay}\cs{defglsdisplay} and +\DescribeMacro{\defglsdisplayfirst}\cs{defglsdisplayfirst} instead +of redefining \cs{glsdisplay} and \cs{glsdisplayfirst}. + +Both \cs{defglsdisplay} and \cs{defglsdisplayfirst} take two arguments: +the first (which is optional) is the glossary name\footnote{\texttt{main} for the main +(default) glossary, \cs{acronymtype} for the list of acronyms, or the +name supplied in the first mandatory argument to \cs{newglossary} for +additional glossaries.} and the second is how the term should be +displayed when it is invoked using commands \cs{gls}, +\cs{glspl} and their uppercase variants. This is similar to the way \cs{glsdisplayfirst} was +redefined above. + +For example, suppose you have created a new glossary called +\texttt{notation} and you want to change the way the entry is +displayed on first use so that it includes the symbol, you can +do: +\begin{verbatim} +\defglsdisplayfirst[notation]{#1#4 (denoted #3)} +\end{verbatim} +Now suppose you have defined an entry as follows: +\begin{verbatim} +\newglossaryentry{set}{type=notation, +name=set, +description={A collection of objects}, +symbol={$S$}, +} +\end{verbatim} +The first time you reference this entry using \cs{gls} it +will be displayed as: \dq{set (denoted \ifmakedtx{$S$}{\textit{S}})} +(similarly for \cs{glspl} and the uppercase variants). + +Remember that if you use the \gloskey{symbol} key, you need to use a +glossary style that displays the symbol, as many of the styles ignore +it. In addition, if you want either the description or symbol to appear +in the \term{link text}, you will have to disable the +\ifmakedtx{\hyperlink{sanitize}{sanitization}}{\htmlref{sanitization}{sanitize}} +of these keys and protect fragile commands.\ifmakedtx{}{\toTop} + +\subsubsection{Enabling and disabling hyperlinks to glossary entries} + +If you load the \isty{hyperref} or \isty{html} packages prior to +loading the \sty{glossaries} package, commands such as \ics{glslink} +and \ics{gls}, described above, will automatically have hyperlinks +to the relevant glossary entry, unless the \gloskey[glslink]{hyper} +option has been set to \texttt{false}. You can disable or enable links using:\\[10pt] +\DescribeMacro{\glsdisablehyper}\cs{glsdisablehyper}\\[10pt] +and\\[10pt] +\DescribeMacro{\glsenablehyper}\cs{glsenablehyper}\\[10pt] +respectively. The effect can be localised by placing the commands +within a group. Note that you should only use \cs{glsenablehyper} +if the commands \ics{hyperlink} and \ics{hypertarget} have been +defined (for example, by the \isty{hyperref} package). + +\subsection{Adding an entry to the glossary without generating text} +\label{sec:glsadd} + +\DescribeMacro{\glsadd} +It is possible to add a line in the glossary file without +generating any text at that point in the document using:\\[10pt] +\cs{glsadd}\oarg{options}\marg{label}\\[10pt] +This is similar to \ics{glslink}, only it doesn't produce +any text (so therefore, there is no \gloskey[glslink]{hyper} key +available in \meta{options} but all the other options that can +be used with \cs{glslink} can be passed to \cs{glsadd}). + +\DescribeMacro{\glsaddall} +To add all entries that have been defined, use:\\[10pt] +\cs{glsaddall}\oarg{glossary list}\\[10pt] +If there are multiple glossaries, you can specify to add only +those entries which belong to the glossaries listed in +\meta{glossary list} (which must be a comma separated list of +glossary names). For example: +\begin{verbatim} +\glsaddall[notation] +\end{verbatim} +will add all the entries that have been defined for the glossary +labelled \dq{notation}.\ifmakedtx{}{\toTop} + +\subsection{Displaying a glossary} + +\DescribeMacro{\printglossaries} +The command \cs{printglossaries} will display all the +defined glossaries. Note that no glossaries will appear until +you have either used the Perl script \appname{makeglossaries} +or have directly used \appname{makeindex} (as described in +\ifmakedtx{\autoref{sec:makeglossaries}}{\htmlref{Generating the Associated Glossary Files}{sec:makeglossaries}}). If the glossary still +does not appear after you re-\LaTeX\ your document, check +the \appname{makeindex} log files to see if there is a problem. +Remember that you also need to use the command \ics{makeglossaries} in +the preamble to enable the glossaries. + +\DescribeMacro{\printglossary} +An individual glossary is displayed using:\\[10pt] +\cs{printglossary}\oarg{options}\\[10pt] +where \meta{options} is a \meta{key}=\meta{value} list of options. +The following keys are available: +\begin{description} +\item[{\gloskey[printglossary]{type}}] The value of this key +specifies which glossary to print. If omitted, the default +glossary is assumed. For example, to print the list of acronyms: +\begin{verbatim} +\printglossary[type=\acronymtype] +\end{verbatim} + +\item[{\gloskey[printglossary]{title}}] This is the glossary's +title (overriding the title specified when the glossary was +defined). + +\item[{\gloskey[printglossary]{toctitle}}] This is the title +to use for the table of contents (if the \pkgopt{toc} package +option has been used). If omitted, the glossary title is used. + +\item[{\gloskey[printglossary]{style}}] This specifies which +glossary style to use for this glossary, overriding the effect +of the \pkgopt{style} option or \ics{glossarystyle}. +\end{description} + +\DescribeMacro{\glossarypreamble} +Information can be added to the start of the glossary by redefining +\cs{glossarypreamble}. For example: +\begin{verbatim} +\renewcommand{\glossarypreamble}{Numbers in italic indicate +primary definitions.} +\end{verbatim} +This needs to be done before the glossary is displayed using +\cs{printglossaries} or \cs{printglossary}. Note that if you +want a different preamble for each glossary, you will need to +use a separate \cs{printglossary} for each glossary and change +the definition of \cs{glossarypreamble} between each glossary. +For example: +\begin{verbatim} +\renewcommand{\glossarypreamble}{Numbers in italic indicate +primary definitions.} +\printglossary +\renewcommand{\glossarypreamble}{} +\printglossary[type=acronym] +\end{verbatim} +Alternatively, you can do something like: +\begin{verbatim} +\renewcommand{\glossarypreamble}{Numbers in italic indicate +primary definitions.\gdef\glossarypreamble{}} +\printglossaries +\end{verbatim} +which will print the preamble text for the first glossary and +change the preamble to do nothing for subsequent glossaries. +(Note that \cs{gdef} is required as the glossary is placed within +a group.) + +\DescribeMacro{\glossarypostamble}There is an analogous command +called \cs{glossarypostamble} which is placed at the end of each +glossary.\ifmakedtx{}{\toTop} + +\subsubsection{Changing the way the entry name appears in the glossary} +\label{sec:glsnamefont} + +\DescribeMacro{\glsnamefont}Within each glossary, each entry name is +formatted according to \cs{glsnamefont} which takes one argument: the +entry name. This command is always used regardless of the glossary +style. By default, \cs{glsnamefont} simply displays its argument in +whatever the surrounding font happens to be. This means that in the +list styles the name will appear in bold, since the name is placed in +the optional argument of \cs{item}, whereas in the tabular styles the +name will appear in the normal font. + +For example, suppose you want all the entry names to appear in +medium weight small caps, then you can do: +\begin{verbatim} +\renewcommand{\glsnamefont}[1]{\textsc{\mdseries #1}} +\end{verbatim} +\ifmakedtx{}{\toTop} + +\subsection{Defining New Glossaries} + +\DescribeMacro{\newglossary} +A new glossary can be defined using:\\[10pt] +\cs{newglossary}\oarg{log-ext}\marg{name}\marg{in-ext}\marg{out-ext}\marg{title}\oarg{counter}\\[10pt] +where \meta{name} is label to assign to this glossary. The arguments +\meta{in-ext} and \meta{out-ext} specify the extensions to give to the +input and output files for that glossary, \meta{title} is the default +title for this new glossary and the final optional argument +\meta{counter} specifies which counter to use for the associated number +lists\iterm{number list} (see also \ifmakedtx{\autoref{sec:numberlists}}{\htmlref{Number Lists}{sec:numberlists}}.) The +first optional argument specifies the extension for the +\appname{makeindex} transcript file (this information is only used by +\appname{makeglossaries} which picks up the information from the +auxiliary file.) + +Note that the main (default) glossary is automatically created as: +\begin{verbatim} +\newglossary{main}{gls}{glo}{\glossaryname} +\end{verbatim} +so it can be identified by the label \texttt{main}. Using the +\pkgopt{acronym} package option is equivalent to: +\begin{verbatim} +\newglossary[alg]{acronym}{acr}{acn}{\acronymname} +\end{verbatim} +so it can be identified by the label \texttt{acronym}. If you are +not sure whether the \pkgopt{acronym} option has been used, you +can identify the list of acronyms by the command +\DescribeMacro{\acronymtype}\cs{acronymtype} which is set to +\texttt{acronym}, if the \pkgopt{acronym} option has been used, +otherwise it is set to \texttt{main}.\ifmakedtx{}{\toTop} + +\subsection{Acronyms} +\label{sec:acronyms} + +\DescribeMacro{\newacronym} +As you may have noticed in \ifmakedtx{\autoref{sec:newglosentry}}{\htmlref{Defining Glossary Entries}{sec:newglosentry}}, when you +specify a new entry, you can specify alternate text to use when +the term is first used in the document. This provides a useful +means to define acronyms. The \sty{glossaries} package defines +the command:\\[10pt] +\cs{newacronym}\oarg{key-val list}\marg{label}\marg{abbrv}\marg{long}\\[10pt] +This is equivalent to:\vskip5pt +\begin{ttfamily}\par\noindent +\cs{newglossaryentry}\textrm{\marg{label}}\{type=\cs{acronymtype},\\ +name=\textrm{\marg{abbrv}},\\ +description=\textrm{\marg{long}},\\ +text=\textrm{\marg{abbrv}},\\ +first=\{\textrm{\meta{long}} (\textrm{\meta{abbrv}})\},\\ +plural=\{\textrm{\meta{abbrv}}s\},\\ +firstplural=\{\textrm{\meta{long}}s (\textrm{\meta{abbrv}}s)\},\\ +\textrm{\meta{key-val list}}\}\par +\end{ttfamily} +\vskip5pt +As mentioned in the previous section, the command \cs{acronymtype} is +the name of the glossary in which the acronyms should appear. If the +\pkgopt{acronym} package option has been used, this will be +\texttt{acronym}, otherwise it will be \texttt{main}. The acronyms can +then be used in exactly the same way as any other glossary entry. +For example, the following defines the acronym IDN: +\begin{verbatim} +\newacronym{idn}{IDN}{identification number} +\end{verbatim} +This is equivalent to: +\begin{verbatim} +\newglossaryentry{idn}{type=\acronymtype, +name={IDN}, +description={identification number}, +text={IDN}, +first={identification number (IDN)}, +plural={IDNs}, +firstplural={identification numbers (IDNs)}} +\end{verbatim} +so \verb|\gls{idn}| will produce \dq{identification number (IDN)} on +first use and \dq{IDN} on subsequent uses. + +The \sty{glossaries} package has options that change the +definition of \ics{newacronym} for common acronym formats. These +options also change the way the link text is displayed for the +acronyms. + +Table~\ref{tab:acronymsettings} lists the package options and +how the keys are used to store \meta{long} (the long form) and +\meta{abbrv} (the short form). Note that the \pkgopt{smallcaps} +option redefines \ics{acronymfont} so that it sets its argument +in small captials otherwise \cs{acronymfont} simply displays its +argument in the surrounding font. Note also that if none of +the package options \pkgopt{smallcaps}, \pkgopt{description} +or \pkgopt{footnote} are used, \cs{acronymfont} is not used, so +changing the definition of \cs{acronymfont} will have no effect +under such circumstances. + +\begin{table}[htbp] +\caption{Package options governing acronyms and how the information +is stored in the glossary keys} +\label{tab:acronymsettings} +\begin{center} +\begin{tabular}{lllll} +\bfseries Package Option & +\gloskey{first} & +\gloskey{text} & +\gloskey{description} & +\gloskey{symbol}\\ +\pkgopt{description},\pkgopt{footnote} & +\meta{abbrv} & +\meta{abbrv} & +user supplied & +\meta{long}\\ +\pkgopt{description},\pkgopt{dua} & +\meta{long} & +\meta{long} & +user supplied & +\meta{abbrv}\\ +\pkgopt{description} & +\meta{long} & +\meta{abbrv} & +user supplied & +\meta{abbrv}\\ +\pkgopt{footnote} & +\meta{abbrv} & +\meta{abbrv} & +\meta{long} & + \\ +\pkgopt{smallcaps} & +\meta{long} & +\meta{abbrv} & +\meta{long} & +\meta{abbrv}\\ +\pkgopt{dua} & +\meta{long} & +\meta{long} & +\meta{long} & +\meta{abbrv}\\ +None of the above& +\meta{long} (\meta{abbrv}) & +\meta{abbrv} & +\meta{long} & +\end{tabular} +\end{center} +\end{table} + +Each of the package options \pkgopt{smallcaps}, \pkgopt{footnote} +and \pkgopt{description} use \ics{defglsdisplay} and +\ics{defglsdisplayfirst} (described \ifmakedtx{in +\autoref{sec:glsdisplay}}{\htmlref{earlier}{sec:glsdisplay}}) +to change the way the link text is displayed. + +\begin{description} +\item[\pkgopt{description},\pkgopt{footnote}]\ifmakedtx{\mbox{}\par}{} +When these two options are used together, the first use displays +the entry as:\\[10pt] +\cs{acronymfont}\marg{abbrv}\meta{insert}\cs{footnote}\marg{long} +\\[10pt] +while subsequent use displays the entry as:\\[10pt] +\cs{acronymfont}\marg{abbrv}\meta{insert}\\[10pt] +where \meta{insert} indicates the text supplied in the final +optional argument to \cs{gls}, \cs{glspl} or their uppercase +variants. + +Note also that when these two package options are used (in the +given order), the \sty{glossaries} package additionally implements the +\pkgopt{sanitize} option using +\ipkgopt[description]{sanitize}\ipkgopt[symbol]{sanitize}\verb|sanitize={description=false,symbol=false}|, so +remember to protect fragile commands when defining acronyms. + +\item[dua]\ifmakedtx{\mbox{}\par}{} +The \pkgopt{dua} package option always displays the expanded +form and so may not be used with \pkgopt{footnote} or +\pkgopt{smallcaps}. Both first use and subsequent use displays the +entry in the form:\\[10pt] +\meta{long}\meta{insert}\\[10pt] +If the \pkgopt{description} option is also used, the \gloskey{name} +key is set to the long form, otherwise the \gloskey{name} key is +set to the short form and the \gloskey{description} key is set to +the long form. + +\item[\pkgopt{description}]\ifmakedtx{\mbox{}\par}{} +This option displays the entry on first use as:\\[10pt] +\meta{long}\meta{insert} (\cs{acronymfont}\marg{abbrv})\\[10pt] +while subsequent use displays the entry as:\\[10pt] +\cs{acronymfont}\marg{abbrv}\meta{insert}\\[10pt] +Note also that if this package option is used, the \sty{glossaries} +package additionally implements the option +\ipkgopt[symbol]{sanitize}\verb|sanitize={symbol=false}|, so +remember to protect fragile commands when defining acronyms. + +\item[\pkgopt{footnote}]\ifmakedtx{\mbox{}\par}{} +This option displays the entry on first use as:\\[10pt] +\cs{acronymfont}\marg{abbrv}\meta{insert}\cs{footnote}\marg{long}\\[10pt] +while subsequent use displays the entry as:\\[10pt] +\cs{acronymfont}\marg{abbrv}\meta{insert} + +Note also that if this package option is used, the \sty{glossaries} +package additionally implements the option +\ipkgopt[description]{sanitize}\verb|sanitize={description=false}|, so +remember to protect fragile commands when defining acronyms. + +\item[\pkgopt{smallcaps}]\ifmakedtx{\mbox{}\par}{} +If neither the \pkgopt{footnote} nor \pkgopt{description} options +have been set, this option displays the entry on first use as:\\[10pt] +\meta{long}\meta{insert} (\cs{acronymfont}\marg{abbrv})\\[10pt] +while subsequent use displays the entry as:\\[10pt] +\cs{acronymfont}\marg{abbrv}\meta{insert}\\[10pt] +where \cs{acronymfont} is set to \cs{textsc}. + +Note also that if this package option is used, the \sty{glossaries} +package additionally implements the option +\ipkgopt[symbol]{sanitize}\verb|sanitize={symbol=false}|, so +remember to protect fragile commands when defining acronyms. + +\item[None of the above]\ifmakedtx{\mbox{}\par}{} +If none of the package options \pkgopt{smallcaps}, \pkgopt{footnote} +or \pkgopt{description} are used, then on first use the entry is +displayed as:\\[10pt] +\meta{long} (\meta{abbrv})\meta{insert}\\[10pt] +while subsequent use displays the entry as:\\[10pt] +\cs{acronymfont}\marg{abbrv}\meta{insert}\\[10pt] +\meta{abbrv}\meta{insert} +\end{description} + +Recall from \ifmakedtx{\autoref{sec:glslink}}{\htmlref{earlier}{sec:glslink}} +that you can access the values of individual keys using commands +like \ics{glstext}, so it is possible to use these commands to +print just the long form or just the abbreviation without affecting +the flag that determines whether the entry has been used. However +the keys that store the long and short form vary depending on +the acronym style, so the \sty{glossaries} package provides +commands that are set according to the package options. These are +as follows: +\vspace{10pt}\par\noindent +\DescribeMacro{\acrshort} +\cs{acrshort}\oarg{options}\marg{label}\oarg{insert}\\ +\DescribeMacro{\Acrshort} +\cs{ACRshort}\oarg{options}\marg{label}\oarg{insert}\\ +\DescribeMacro{\ACRshort} +\cs{ACRshort}\oarg{options}\marg{label}\oarg{insert}\\[10pt] +Print the abbreviated version with a hyperlink (if necessary) to the +relevant entry in the glossary. This is usually equivalent to +\ics{glstext} (or its uppercase variants) but may additionally +put the link text within the argument to \ics{acronymfont}. +\vspace{10pt}\par\noindent +\DescribeMacro{\acrlong} +\cs{acrlong}\oarg{options}\marg{label}\oarg{insert}\\ +\DescribeMacro{\Acrlong} +\cs{ACRlong}\oarg{options}\marg{label}\oarg{insert}\\ +\DescribeMacro{\ACRlong} +\cs{ACRlong}\oarg{options}\marg{label}\oarg{insert}\\[10pt] +Print the long version with a hyperlink (if necessary) to the +relevant entry in the glossary. This is may be equivalent to +\ics{glsdesc}, \ics{glssymbol} or \ics{glsfirst} (or their uppercase +variants), depending on package options. +\vspace{10pt}\par\noindent +\DescribeMacro{\acrfull} +\cs{acrfull}\oarg{options}\marg{label}\oarg{insert}\\ +\DescribeMacro{\Acrfull} +\cs{ACRfull}\oarg{options}\marg{label}\oarg{insert}\\ +\DescribeMacro{\ACRfull} +\cs{ACRfull}\oarg{options}\marg{label}\oarg{insert}\\[10pt] +Print the long version followed by the abbreviation in brackets +with a hyperlink (if necessary) to the +relevant entry in the glossary. + +Note that if you change the definition of \ics{newacronym}, you +may additionally need to change the above commands as well as +the changing way the text is displayed using \ics{defglsdisplay} +and \ics{defglsdisplayfirst}. + +\ifmakedtx{}{\toTop} + +\subsection{Unsetting and resetting entry flags} + +When using commands such as \ics{gls} it is possible that you may want +to use the value given by the \gloskey{first} key, even though you have +already used the glossary entry. Conversely, you may want to use the +value given by the \gloskey{text} key, even though you haven't used the +glossary entry. The former can be achieved by one of the following +commands:\\[10pt] +\DescribeMacro{\glsreset}\cs{glsreset}\marg{label}\\ +\DescribeMacro{\glslocalreset}\cs{glslocalreset}\marg{label}\\[10pt] +while the latter can be achieved by one of the following commands:\\[10pt] +\DescribeMacro{\glsunset}\cs{glsunset}\marg{label}\\ +\DescribeMacro{\glslocalunset}\cs{glslocalunset}\marg{label} +\\[10pt] +You can determine whether an entry has been used using:\\[10pt] +\DescribeMacro{\ifglsused} +\cs{ifglsused}\marg{label}\marg{true part}\marg{false part}\\[10pt] +where \meta{label} is the label of the required entry. If the +entry has been used, \meta{true part} will be done, otherwise +\meta{false part} will be done. +\ifmakedtx{}{\toTop} + +\subsection{Glossary Styles} +\label{sec:styles} +The \sty{glossaries} package comes with some pre-defined +glossary styles. These are as follows: +\begin{description} +\item[list] The \glostyle{list} style uses the \envname{description} +environment. The entry name is placed in the optional argument +of the \cs{item} command (so it will appear in bold by +default). The description follows, and then the associated number +list for that entry. + +\item[listgroup] The \glostyle{listgroup} style is like +\glostyle{list} but the glossary groups have headings. + +\item[listhypergroup] The \glostyle{listhypergroup} style is like +\glostyle{listgroup} but has a set of links to the glossary +groups. + +\item[altlist] The \glostyle{altlist} style is like \glostyle{list} +but the description is placed on the following line. + +\item[altlistgroup] The \glostyle{altlistgroup} style is like +\glostyle{altlist} but the glossary groups have headings. + +\item[altlisthypergroup] The \glostyle{altlisthypergroup} style is like +\glostyle{altlistgroup} but has a set of links to the glossary +groups. + +\item[listdotted] This style uses the \envname{description} +environment. Each entry starts with \verb|\item[]|, followed by the +name followed by a dotted line, followed by the description. Note that +this style ignores both the \term{number list} and the symbol. The +length \DescribeMacro{\glslistdottedwidth}\cs{glslistdottedwidth} +governs where the description should start.\footnote{This style was +supplied by Axel~Menzel.} + +\item[long] The \glostyle{long} style uses the \envname{longtable} +environment (defined by the \isty{longtable} package). It has two +columns: the first column contains the entry's name and the second +column contains the description followed by the \term{number list}. + +\item[longborder] The \glostyle{longborder} style is like +\glostyle{long} but has horizontal and vertical lines around it. + +\item[longheader] The \glostyle{longheader} style is like +\glostyle{long} but has a header row. + +\item[longheaderborder] The \glostyle{longheaderborder} style is +like \glostyle{longheader} but has horizontal and vertical lines +around it. + +\item[long3col] The \glostyle{long3col} style is like +\glostyle{long} but has three columns. The first column contains +the entry's name, the second column contains the description +and the third column contains the \term{number list}. + +\item[long3colborder] The \glostyle{long3colborder} style is like +the \glostyle{long3col} style but has horizontal and vertical +lines around it. + +\item[long3colheader] The \glostyle{long3colheader} style is like +\glostyle{long3col} but has a header row. + +\item[long3colheaderborder] The \glostyle{long3colheaderborder} style is +like \glostyle{long3colheader} but has horizontal and vertical lines +around it. + +\item[long4col] The \glostyle{long4col} style is like +\glostyle{long3col} but has an additional column in which the +entry's associated symbol appears. + +\item[long4colborder] The \glostyle{long4colborder} style is like +the \glostyle{long4col} style but has horizontal and vertical +lines around it. + +\item[long4colheader] The \glostyle{long4colheader} style is like +\glostyle{long4col} but has a header row. + +\item[long4colheaderborder] The \glostyle{long4colheaderborder} style is +like \glostyle{long4colheader} but has horizontal and vertical lines +around it. + +\item[super] The \glostyle{super} style uses the \envname{supertabular} +environment (defined by the \isty{supertabular} package). It has two +columns: the first column contains the entry's name and the second +column contains the description followed by the \term{number list}. + +\item[superborder] The \glostyle{superborder} style is like +\glostyle{super} but has horizontal and vertical lines around it. + +\item[superheader] The \glostyle{superheader} style is like +\glostyle{super} but has a header row. + +\item[superheaderborder] The \glostyle{superheaderborder} style is +like \glostyle{superheader} but has horizontal and vertical lines +around it. + +\item[super3col] The \glostyle{super3col} style is like +\glostyle{super} but has three columns. The first column contains +the entry's name, the second column contains the description +and the third column contains the \iterm{number list}. + +\item[super3colborder] The \glostyle{super3colborder} style is like +the \glostyle{super3col} style but has horizontal and vertical +lines around it. + +\item[super3colheader] The \glostyle{super3colheader} style is like +\glostyle{super3col} but has a header row. + +\item[super3colheaderborder] The \glostyle{super3colheaderborder} style +is like \glostyle{super3colheader} but has horizontal and vertical +lines around it. + +\item[super4col] The \glostyle{super4col} style is like +\glostyle{super3col} but has an additional column in which the +entry's associated symbol appears. + +\item[super4colborder] The \glostyle{super4colborder} style is like +the \glostyle{super4col} style but has horizontal and vertical +lines around it. + +\item[super4colheader] The \glostyle{super4colheader} style is like +\glostyle{super4col} but has a header row. + +\item[super4colheaderborder] The \glostyle{super4colheaderborder} style +is like \glostyle{super4colheader} but has horizontal and vertical +lines around it. + +\end{description} + +The glossary style can be set using the \pkgopt{style} package option +or using the \gloskey[printglossary]{style} key in the optional +argument to \ics{printglossary} or using the command:\\[10pt] +\DescribeMacro{\glossarystyle}\cs{glossarystyle}\marg{style-name}\\[10pt] + + \changes{1.03}{2007 July 4}{'glspostdescription added} +All the styles except for the three- and four-column styles and the +\glostyle{listdotted} style use the command +\DescribeMacro{\glspostdescription}\cs{glspostdescription} after the +description. This simply displays a full stop by default. To eliminate +this full stop (or replace it with something else, say a comma), you +will need to redefine \cs{glspostdescription} before the glossary is +displayed.\ifmakedtx{}{\toTop} + +\subsection{Defining your own glossary style} + +If the predefined styles don't fit your requirements, you can +define your own style using\DescribeMacro{\newglossarystyle}:\\[10pt] +\cs{newglossarystyle}\marg{name}\marg{definitions}\\[10pt] +where \meta{name} is the name of the new glossary style (to be +used in \cs{glossarystyle}). The second argument \meta{definitions}, +needs to redefine all of the following: + +\begin{description} +\item +\DescribeEnv{theglossary} +\envname{theglossary}\par\noindent +This environment defines how the main body of the glossary should +be typeset. Note that this does not include the section heading, +the glossary preamble (defined by \cs{glossarypreamble}) or the +glossary postamble (defined by \cs{glossarypostamble}.) For example, +the \glostyle{list} style uses the \envname{description} environment, +so the \envname{theglossary} environment is simply redefined to begin +and end the \envname{description} environment. + +\item +\DescribeMacro{\glossaryheader} +\cs{glossaryheader}\par\noindent +This macro indicates what to do at the start of the main body +of the glossary. Note that this is not the same as +\cs{glossarypreamble}, which should not be affected by changes in +the glossary style. The \glostyle{list} glossary style redefines +\cs{glossaryheader} to do nothing, whereas the \glostyle{longheader} +glossary style redefines \cs{glossaryheader} to do a header row. + +\item +\DescribeMacro{\glsgroupheading} +\cs{glsgroupheading}\marg{label}\par\noindent +This macro indicates what to do at the start of each logical block +within the main body of the glossary. The glossary is sub-divided into +twenty-eight logical blocks that are determined by the first character +of the \gloskey{sort} key (or \gloskey{name} key if the \gloskey{sort} +key is omitted). The sub-divisions are in the following order: symbols, +numbers, A, \ldots, Z. Note that the argument to \cs{glsgroupheading} +is a label \emph{not} the group title. The group title can be obtained +via \cs{glsgetgrouptitle}\marg{label}, and a navigation hypertarget can +be created using \cs{glsnavhypertarget}\marg{label}. Most of the +predefined glossary styles redefine \cs{glsgroupheading} to simply +ignore its argument. The \glostyle{listhypergroup} style redefines +\cs{glsgroupheading} as follows: +\begin{verbatim} +\renewcommand*{\glsgroupheading}[1]{% +\item[\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}]} +\end{verbatim} +See also \cs{glsgroupskip} below. (Note that command definitions within +\cs{newglossarystyle} must use \verb|##1| etc instead of \verb|#1| etc.) + +\item +\DescribeMacro{\glsgroupskip} +\cs{glsgroupskip}\par\noindent +This macro determines what to do after one logical group but before +the header for the next logical group. The \glostyle{list} glossary +style simply redefines \cs{glsgroupskip} to be \cs{indexspace}. + +\item +\DescribeMacro{\glossaryentryfield} +\cs{glossaryentryfield}\marg{label}\marg{formatted +name}\marg{description}\marg{symbol} +\marg{number list}\par\noindent +This macro indicates what to do for a given glossary entry. +Note that \meta{formatted name} will always be in the form +\cs{glsnamefont}\marg{name}. This allows the user to set a given +font for the entry name, regardless of the glossary style used. +Note that \meta{label} is the label used when the glossary entry +was defined via either \cs{newglossaryentry} or \cs{newacronym}. +Each time you use a glossary entry it creates a +link\footnote{if the document doesn't have hyperlinks enabled +\cs{@glslink} ignores the label and simply typesets the text.} +using \cs{@glslink}\marg{label}\marg{text} with the label +\texttt{glo:}\meta{label}. Your +new glossary style must therefore redefine \cs{glossaryentryfield} +so that it uses \cs{@glstarget}\verb|{|\texttt{glo:}\meta{label}\verb|}|\marg{text} +to ensure the hyperlinks function correctly.\footnote{again, if the +document doesn't support hyperlinks, \cs{@glstarget} will ignore +the label, and just typeset the text.} For example, the +\glostyle{list} style defines \cs{glossaryentryfield} as follows: +\begin{verbatim} +\renewcommand*{\glossaryentryfield}[5]{% +\item[\@glstarget{glo:##1}{##2}] ##3\glspostdescription\space ##5} +\end{verbatim} + +Note also that \meta{number list} will always be of the form\\[10pt] +\cs{glossaryentrynumbers}\{\cs{relax}\\ +\cs{setentrycounter}\marg{counter name}\cs{glsnumberformat}\marg{number(s)}\}\\[10pt] +where \meta{number(s)} +may contain \cs{delimN} (to delimit individual numbers) and/or +\cs{delimR} (to indicate a range of numbers). There may be +multiple occurrences of +\cs{setentrycounter}\marg{counter name}\cs{glsnumberformat}\marg{number(s)}, but note +that the entire number list is enclosed within the argument +to \ics{glossaryentrynumbers}. The user can redefine this to change +the way the entire number list is formatted, regardless of +the glossary style. However the most common use of +\cs{glossaryentrynumbers} is to provide a means of suppressing the +number list altogether. (In fact, the \pkgopt{nonumberlist} option +redefines \cs{glossaryentrynumbers} to ignore its argument.) +Therefore, when you define a new glossary style, you don't need +to worry about whether the user has specified the +\pkgopt{nonumberlist} package option. +\end{description}\ifmakedtx{}{\toTop} + +\subsubsection{Example: creating a completely new style} + +If you want a completely new style, you will need to redefine all +of the commands and environment listed above. You also need to +take care when using internal commands (commands whose name +contain the @ symbol). These should either be used in a \texttt{.sty} +file or must be placed within \cs{makeatletter} and \cs{makeatother}. + +For example, suppose you want each entry to start with a bullet point. +This means that the glossary should be placed in the \envname{itemize} +environment, so \envname{theglossary} should start and end that +environment. Let's also suppose that you don't want anything between +the glossary groups (so \cs{glsgroupheading} and \cs{glsgroupskip} +should do nothing) and suppose you don't want anything to appear +immediately after \verb|\begin{theglossary}| (so \cs{glossaryheader} +should do nothing). In addition, let's suppose the symbol should +appear in brackets after the name, followed by the description and +last of all the \term{number list} should appear within square brackets +at the end. Then you can create this new glossary style, called, say, +\texttt{mylist}, as follows: +\begin{verbatim} + \newglossarystyle{mylist}{% + % put the glossary in the itemize environment: + \renewenvironment{theglossary}{\begin{itemize}}{\end{itemize}}% + % have nothing after \begin{theglossary}: + \renewcommand*{\glossaryheader}{}% + % have nothing between glossary groups: + \renewcommand*{\glsgroupheading}[1]{}% + \renewcommand*{\glsgroupskip}{}% + % set how each entry should appear: + \renewcommand*{\glossaryentryfield}[5]{% + \item % bullet point + \@glstarget{glo:##1}{##2}% the entry name + \space (##4)% the symbol in brackets + \space ##3% the description + \space [##5]% the number list in square brackets + }% + } +\end{verbatim} +\ifmakedtx{}{\toTop} + +\subsubsection{Example: creating a new glossary style based on an +existing style} + +\changes{1.11}{2008 March 1}{Fixed error in manual (glossary style +is set using 'glossarystyle not 'setglossarystyle)}% +If you want to define a new style that is a slightly modified +version of an existing style, you can use \cs{glossarystyle} +within the second argument of \cs{newglossarystyle} followed by +whatever alterations you require. For example, suppose you want +a style like the \glostyle{list} style but you don't want the extra +vertical space created by \cs{indexspace} between groups, then you +can create a new glossary style called, say, \texttt{mylist} as +follows: +\begin{verbatim} +\newglossarystyle{mylist}{% +\glossarystyle{list}% base this style on the list style +\renewcommand{\glsgroupskip}{}% make nothing happen between groups +} +\end{verbatim} +\ifmakedtx{}{\toTop} + + \StopEventually{\clearpage\phantomsection\addcontentsline{toc}{section}{Index}\PrintIndex} + +\ifmakedtx{}{\printindex\toTop} + +\end{document} diff --git a/Master/texmf-dist/doc/latex/glossaries/glossaries.pdf b/Master/texmf-dist/doc/latex/glossaries/glossaries.pdf Binary files differnew file mode 100644 index 00000000000..34cab2da055 --- /dev/null +++ b/Master/texmf-dist/doc/latex/glossaries/glossaries.pdf diff --git a/Master/texmf-dist/doc/latex/glossaries/glossaries.perl b/Master/texmf-dist/doc/latex/glossaries/glossaries.perl deleted file mode 100644 index 22ad50f784c..00000000000 --- a/Master/texmf-dist/doc/latex/glossaries/glossaries.perl +++ /dev/null @@ -1,1713 +0,0 @@ -# File : glossaries.perl -# Author : Nicola L.C. Talbot -# Date : 14th June 2007 -# Last Modified : 21st Aug 2007 -# Version : 1.02 -# Description : LaTeX2HTML (limited!) implementation of glossaries -# package. Note that not all the glossaries.sty -# macros have been implemented. - -# This is a LaTeX2HTML style implementing the glossaries package, and -# is distributed as part of that package. -# Copyright 2007 Nicola L.C. Talbot -# This work may be distributed and/or modified under the -# conditions of the LaTeX Project Public License, either version 1.3 -# of this license of (at your option) any later version. -# The latest version of this license is in -# http://www.latex-project.org/lppl.txt -# and version 1.3 or later is part of all distributions of LaTeX -# version 2005/12/01 or later. -# -# This work has the LPPL maintenance status `maintained'. -# -# The Current Maintainer of this work is Nicola Talbot. - -# This work consists of the files glossaries.dtx and glossaries.ins -# and the derived files glossaries.sty, glossary-hypernav.sty, -# glossary-list.sty, glossary-long.sty, glossary-super.sty, -# glossaries.perl. Also makeglossaries and makeglossaries.bat - -package main; - -# These are the only package options implemented. - -sub do_glossaries_style_altlist{ -} - -sub do_glossaries_toc{ -} - -sub do_glossaries_toc_true{ -} - -$GLSCURRENTFORMAT="textrm"; - -sub do_cmd_glossaryname{ - "Glossary$_[0]" -} - -$gls_mark{'main'} = "<tex2html_gls_main_mark>"; -$gls_file_mark{'main'} = "<tex2html_gls_main_file_mark>"; -$gls_title{'main'} = "\\glossaryname"; -$delimN{'main'} = ", "; -$glsnumformat{'main'} = $GLSCURRENTFORMAT; -@{$gls_entries{'main'}} = (); -$gls_displayfirst{'main'} = "glsdisplayfirst"; -$gls_display{'main'} = "glsdisplay"; - - -$acronymtype = 'main'; - -sub do_glossaries_acronym{ - &do_glossaries_acronym_true -} - -sub do_glossaries_acronym_true{ - &make_newglossarytype("acronym", "\\acronymname"); - $acronymtype = 'acronym'; -} - -sub do_glossary_acronym_false{ - $acronymtype = 'main'; -} - -sub do_cmd_acronymname{ - join('', 'Acronyms', $_[0]); -} - -sub do_cmd_acronymtype{ - join('', $acronymtype, $_[0]); -} - -# modify set_depth_levels so that glossary is added - -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 glossary '$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); - - local($entry) = $glossary_entry{$type}{$key}; - - $id = ++$global{'max_id'}; - local($name) = &translate_commands( - "\\glsnamefont $OP$id$CP$glsentry{$entry}{name}$OP$id$CP"); - - local($symbol) = ($glsentry{$entry}{'symbol'} ? - " $glsentry{$entry}{symbol}" : ''); - - $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>" - . $name - . "<DD>" - . $glsentry{$entry}{'description'} - . $symbol . '. ' - . $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 -, 'textohtmlglossaries', $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); -} - -sub add_gls_dummy_commands{ - s/[\\]printglossary/\\textohtmlglossary/sg; - s/[\\]printglossaries/\\textohtmlglossaries/sg; -} - -sub get_firstkeyval{ - local($key,$_) = @_; - local($value); - - s/\b$key\s*=$OP(\d+)$CP(.*)$OP\1$CP\s*(,|$)/$value=$2;','/es; - undef($value) if $`=~/\b$key\s*=/; - - unless (defined($value)) - { - s/(^|,)\s*$key\s*=\s*([^,]*)\s*(,|$)/,/s; - $value=$2; - } - - ($value,$_); -} - -# need to get the value of the last key of a given name -# in the event of multiple occurences. -sub get_keyval{ - local($key,$_) = @_; - local($value); - - while (/\b$key\s*=/) - { - ($value,$_) = &get_firstkeyval($key, $_); - last unless defined($value); - } - - ($value,$_); -} - -# This is modified from do_cmd_textohtmlindex - -sub do_cmd_textohtmlglossary{ - local($_) = @_; - - local($keyval,$pat) = &get_next_optional_argument; - - local($type,$title,$toctitle,$style); - - ($type,$keyval) = &get_keyval('type', $keyval); - ($title,$keyval) = &get_keyval('title', $keyval); - ($toctitle,$keyval) = &get_keyval('toctitle', $keyval); - ($style,$keyval) = &get_keyval('style', $keyval); - - &make_textohtmlglossary($type,$toctitle,$title,$style).$_; -} - -sub make_textohtmlglossary{ - local($type,$toctitle,$title,$style) = @_; - - unless (defined($type)) {$type = 'main';} - - unless (defined $gls_mark{$type}) - { - &write_warnings("glossary type '$type' not implemented"); - } - - unless (defined($title) and $title) {$title = $gls_title{$type};} - unless (defined($toctitle) and $toctitle) {$toctitle = $title;} - - $toc_sec_title = $toctitle; - $glsfile{$type} = $CURRENT_FILE; - - $TITLE=&translate_commands($toctitle); - - 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); -} - -sub do_cmd_textohtmlglossaries{ - local($_) = @_; - - foreach $type (keys %gls_mark) - { - $id = ++$global{'max_id'}; - $_ = &make_textohtmlglossary($type,$gls_title{'main'}).$_; - } - - $_; -} - -sub make_glossary_labels { - local($key, @keys); - @keys = keys %glossary_labels; - foreach $key (@keys) { - if (($ref_files{$key}) && !($ref_files{$key} eq "$glsfile{'main'}")) { - local($tmp) = $ref_files{$key}; - &write_warnings("\nmultiple label $key , target in $glsfile{'main'} masks $tmp "); - } - $ref_files{$key} .= $glsfile{'main'}; - } -} - -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($type) = "main"; - local($anchor,$entry); - - local($type,$pat) = &get_next_optional_argument; - - $entry = &missing_braces unless - (s/$next_pair_pr_rx//o&&($entry=$2)); - - $anchor = &make_glossary_entry($entry,$anchor_invisible_mark,$type); - - join('', $anchor, $_); -} - -sub make_glossary_entry { &make_real_glossary_entry(@_) } -sub make_real_glossary_entry { - local($entry,$text,$type) = @_; - local($this_file) = $CURRENT_FILE; - $TITLE = $saved_title if (($saved_title)&&(!($TITLE)||($TITLE eq $default_title))); - - local($sort) = $glsentry{$entry}{'sort'}; - - # Save the reference - local($str) = "$sort###" . ++$global{'max_id'}; # Make unique - # concatenate multiple spaces into a single space - # otherwise keys won't sort properly - $str=~s/\s+/ /gs; - local($br_id) = ++$global{'max_id'}; - $glossary{$type}{$str} .= &make_half_href($this_file."#$br_id"); - $glossary_format{$type}{$str} = $GLSCURRENTFORMAT; - $glossary_entry{$type}{$str} = $entry; - $glossary_linktext{$type}{$str} = $TITLE; - "<A HREF=$gls_file_mark{$type}#tex2html$href_name NAME=\"$br_id\">$text<\/A>"; -} - -sub do_cmd_newglossary{ - local($_) = @_; - local($type,$out,$in,$opt,$pat,$title); - - ($opt,$pat) = &get_next_optional_argument; - - $type = &missing_braces unless - (s/$next_pair_pr_rx//o&&($type=$2)); - $in = &missing_braces unless - (s/$next_pair_pr_rx//o&&($in=$2)); - $out = &missing_braces unless - (s/$next_pair_pr_rx//o&&($out=$2)); - $title = &missing_braces unless - (s/$next_pair_pr_rx//o&&($title=$2)); - - ($opt,$pat) = &get_next_optional_argument; - - &make_newglossarytype($type, $title); - - $_; -} - -sub make_newglossarytype{ - local($type, $title) = @_; - - $gls_mark{$type} = "<tex2html_gls_${type}_mark>"; - $gls_file_mark{$type} = "<tex2html_gls_${type}_file_mark>"; - $gls_title{$type} = $title; - $delimN{$type} = ", "; - $glsnumformat{$type} = $GLSCURRENTFORMAT; - @{$gls_entries{$type}} = (); - $gls_displayfirst{$type} = "glsdisplayfirst"; - $gls_display{$type} = "glsdisplay"; -} - -sub do_cmd_glsdisplay{ - local($_) = @_; - local($text,$description,$symbol,$insert); - - $text = &missing_braces unless - (s/$next_pair_pr_rx/$text=$2;''/eo); - - $description = &missing_braces unless - (s/$next_pair_pr_rx/$description=$2;''/eo); - - $symbol = &missing_braces unless - (s/$next_pair_pr_rx/$symbol=$2;''/eo); - - $insert = &missing_braces unless - (s/$next_pair_pr_rx/$insert=$2;''/eo); - - "$text$insert" . $_; -} - -sub do_cmd_glsdisplayfirst{ - local($_) = @_; - local($text,$description,$symbol,$insert); - - $text = &missing_braces unless - (s/$next_pair_pr_rx/$text=$2;''/eo); - - $description = &missing_braces unless - (s/$next_pair_pr_rx/$description=$2;''/eo); - - $symbol = &missing_braces unless - (s/$next_pair_pr_rx/$symbol=$2;''/eo); - - $insert = &missing_braces unless - (s/$next_pair_pr_rx/$insert=$2;''/eo); - - "$text$insert" . $_; -} - -sub gls_get_displayfirst{ - local($type) = @_; - local($display)= $gls_displayfirst{$type}; - - if (not defined($display)) - { - &write_warnings("Glossary '$type' is not defined"); - $display=''; - } - elsif ($display eq '') - { - &write_warnings("glsdisplayfirst not set for glossary '$type'"); - } - else - { - $display = "\\$display "; - } - - $display; -} - -sub gls_get_display{ - local($type) = @_; - local($display)= $gls_display{$type}; - - if (not defined($display)) - { - &write_warnings("Glossary '$type' is not defined"); - $display = ''; - } - elsif ($display eq '') - { - &write_warnings("glsdisplay not set for glossary '$type'"); - } - else - { - $display = "\\$display "; - } - - $display; -} - -sub do_cmd_glsnamefont{ - local($_) = @_; - local($text); - - $text = &missing_braces unless - (s/$next_pair_pr_rx/$text=$2;''/eo); - - "<B>$text</B>$_"; -} - -sub do_cmd_newacronym{ - local($_) = @_; - local($label,$abbrev,$long,$opt); - - ($opt,$pat) = &get_next_optional_argument; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - $abbrv = &missing_braces unless - (s/$next_pair_pr_rx/$abbrv=$2;''/eo); - $long = &missing_braces unless - (s/$next_pair_pr_rx/$long=$2;''/eo); - - local($cmd) = "\\newglossaryentry"; - local($id); - $id = ++$global{'max_id'}; - $cmd .= "$OP$id$CP$label$OP$id$CP"; - $id = ++$global{'max_id'}; - local($entry) = "type=$OP$id$CP\\acronymtype$OP$id$CP,"; - $id = ++$global{'max_id'}; - $entry .= "name=$OP$id$CP$abbrv$OP$id$CP,"; - $id = ++$global{'max_id'}; - $entry .= "description=$OP$id$CP$long$OP$id$CP,"; - $id = ++$global{'max_id'}; - $entry .= "text=$OP$id$CP$abbrv$OP$id$CP,"; - $id = ++$global{'max_id'}; - $entry .= "first=$OP$id$CP$long ($abbrv)$OP$id$CP,"; - $id = ++$global{'max_id'}; - $entry .= "plural=$OP$id$CP${abbrv}s$OP$id$CP,"; - $id = ++$global{'max_id'}; - $entry .= "firstplural=$OP$id$CP${long}s (${abbrv}s)$OP$id$CP"; - - $id = ++$global{'max_id'}; - $cmd .= "$OP$id$CP$entry,$opt$OP$id$CP"; - - &translate_commands($cmd).$_; -} - -sub gls_entry_init{ - local($label, $type, $name, $desc) = @_; - - %{$glsentry{$label}} = - ( type => $type, - name => $name, - 'sort' => $name, - description => $description, - text => $name, - first => $name, - plural => "${name}s", - firstplural => "${name}s", - symbol => '', - flag => 0 - ); -} - -sub gls_get_type{ - local($label) = @_; - local($type) = ''; - - if (&gls_entry_defined($label)) - { - $type = $glsentry{$label}{'type'}; - } - else - { - &write_warnings("gls_get_type: glossary entry '$label' has not been defined"); - } - - $type; -} - -sub gls_set_type{ - local($label, $type) = @_; - - if (&gls_entry_defined($label)) - { - $glsentry{$label}{'type'} = $type; - } - else - { - &write_warnings("gls_set_type: glossary entry '$label' has not been defined"); - } -} - -sub gls_get_name{ - local($label) = @_; - local($name) = ''; - - if (&gls_entry_defined($label)) - { - $name = $glsentry{$label}{'name'}; - } - else - { - &write_warnings("gls_get_name: glossary entry '$label' has not been defined"); - } - - $name; -} - -sub gls_set_name{ - local($label, $name) = @_; - - if (&gls_entry_defined($label)) - { - $glsentry{$label}{'name'} = $name; - } - else - { - &write_warnings("gls_set_name: glossary entry '$label' has not been defined"); - } -} - -sub gls_get_description{ - local($label) = @_; - local($description) = ''; - - if (&gls_entry_defined($label)) - { - $description = $glsentry{$label}{'description'}; - } - else - { - &write_warnings("gls_get_description: glossary entry '$label' has not been defined"); - } - - $description; -} - -sub gls_set_description{ - local($label, $description) = @_; - - if (&gls_entry_defined($label)) - { - $glsentry{$label}{'description'} = $description; - } - else - { - &write_warnings("gls_set_description: glossary entry '$label' has not been defined"); - } -} - -sub gls_get_symbol{ - local($label) = @_; - local($symbol) = ''; - - if (&gls_entry_defined($label)) - { - $symbol = $glsentry{$label}{'symbol'}; - } - else - { - &write_warnings("gls_get_symbol: glossary entry '$label' has not been defined"); - } - - $symbol; -} - -sub gls_set_symbol{ - local($label, $symbol) = @_; - - if (&gls_entry_defined($label)) - { - $glsentry{$label}{'symbol'} = $symbol; - } - else - { - &write_warnings("gls_set_symbol: glossary entry '$label' has not been defined"); - } -} - -sub gls_get_sort{ - local($label) = @_; - local($sort) = ''; - - if (&gls_entry_defined($label)) - { - $sort = $glsentry{$label}{'sort'}; - } - else - { - &write_warnings("gls_get_sort: glossary entry '$label' has not been defined"); - } - - $sort; -} - -sub gls_set_sort{ - local($label, $sort) = @_; - - if (&gls_entry_defined($label)) - { - $glsentry{$label}{'sort'} = $sort; - } - else - { - &write_warnings("gls_set_sort: glossary entry '$label' has not been defined"); - } -} - -sub gls_get_text{ - local($label) = @_; - local($text) = ''; - - if (&gls_entry_defined($label)) - { - $text = $glsentry{$label}{'text'}; - } - else - { - &write_warnings("gls_get_text: glossary entry '$label' has not been defined"); - } - - $text; -} - -sub gls_set_text{ - local($label, $text) = @_; - - if (&gls_entry_defined($label)) - { - $glsentry{$label}{'text'} = $text; - } - else - { - &write_warnings("gls_set_text: glossary entry '$label' has not been defined"); - } -} - -sub gls_get_plural{ - local($label) = @_; - local($plural) = ''; - - if (&gls_entry_defined($label)) - { - $plural = $glsentry{$label}{'plural'}; - } - else - { - &write_warnings("gls_get_plural: glossary entry '$label' has not been defined"); - } - - $plural; -} - -sub gls_set_plural{ - local($label, $plural) = @_; - - if (&gls_entry_defined($label)) - { - $glsentry{$label}{'plural'} = $plural; - } - else - { - &write_warnings("gls_set_plural: glossary entry '$label' has not been defined"); - } -} - -sub gls_get_firstplural{ - local($label) = @_; - local($firstplural) = ''; - - if (&gls_entry_defined($label)) - { - $firstplural = $glsentry{$label}{'firstplural'}; - } - else - { - &write_warnings("gls_get_firstplural: glossary entry '$label' has not been defined"); - } - - $firstplural; -} - -sub gls_set_firstplural{ - local($label, $firstplural) = @_; - - if (&gls_entry_defined($label)) - { - $glsentry{$label}{'firstplural'} = $firstplural; - } - else - { - &write_warnings("gls_set_firstplural: glossary entry '$label' has not been defined"); - } -} - -sub gls_get_first{ - local($label) = @_; - local($first) = ''; - - if (&gls_entry_defined($label)) - { - $first = $glsentry{$label}{'first'}; - } - else - { - &write_warnings("gls_get_first: glossary entry '$label' has not been defined"); - } - - $first; -} - -sub gls_set_first{ - local($label, $first) = @_; - - if (&gls_entry_defined($label)) - { - $glsentry{$label}{'first'} = $first; - } - else - { - &write_warnings("gls_set_first: glossary entry '$label' has not been defined"); - } -} - -sub gls_used{ - local($label) = @_; - local($flag) = 0; - - if (&gls_entry_defined($label)) - { - $flag = $glsentry{$label}{'flag'}; - } - else - { - &write_warnings("gls_used: glossary entry '$label' has not been defined"); - } - - $flag; -} - -sub gls_entry_defined{ - local($label) = @_; - - defined(%{$glsentry{$label}}); -} - -sub do_cmd_newglossaryentry{ - local($_) = @_; - local($label,$name,$description,$symbol,$sort,$text,$first, - $plural,$firstplural,$type,$keyval); - - $label = &missing_braces unless - s/$next_pair_pr_rx/$label=$2;''/eo; - - $keyval = &missing_braces unless - s/$next_pair_pr_rx/$keyval=$2;''/eo; - - ($name,$keyval) = &get_keyval('name', $keyval); - ($description,$keyval) = &get_keyval('description', $keyval); - ($symbol,$keyval) = &get_keyval('symbol', $keyval); - ($sort,$keyval) = &get_keyval('sort', $keyval); - ($text,$keyval) = &get_keyval('text', $keyval); - ($first,$keyval) = &get_keyval('first', $keyval); - ($firstplural,$keyval) = &get_keyval('firstplural', $keyval); - ($plural,$keyval) = &get_keyval('plural', $keyval); - ($type,$keyval) = &get_keyval('type', $keyval); - - if (defined($type)) - { - $type = &translate_commands($type); - } - else - { - $type = 'main'; - } - - &gls_entry_init($label, $type, $name, $description); - - &gls_set_symbol($label, defined($symbol)?$symbol:''); - - $sort = "$name $description" unless (defined($sort) and $sort); - - &gls_set_sort($label, $sort); - - $text = $name unless (defined($text) and $text); - - &gls_set_text($label, $text); - - $first = $text unless (defined($first) and $first); - - &gls_set_first($label, $first); - - $plural = "${text}s" unless (defined($plural) and $plural); - - &gls_set_plural($label, $plural); - - $firstplural = "${first}s" unless (defined($firstplural) and $firstplural); - - &gls_set_firstplural($label, $firstplural); - - push @{$gls_entries{$type}}, $label; - - $_; -} - -sub reset_entry{ - local($label) = @_; - - $glsentry{$label}{'flag'} = 0; -} - -sub unset_entry{ - local($label) = @_; - - $glsentry{$label}{'flag'} = 1; -} - -sub do_cmd_glsreset{ - local($_) = @_; - local($label); - - $label = &missing_braces unless - s/$next_pair_pr_rx/$label=$2;''/eo; - - &reset_entry($label); - - $_; -} - -sub do_cmd_glsunset{ - local($_) = @_; - local($label); - - $label = &missing_braces unless - s/$next_pair_pr_rx/$label=$2;''/eo; - - &unset_entry($label); - - $_; -} - -sub do_cmd_ifglsused{ - local($_) = @_; - local($label,$true,$false); - - $label = &missing_braces unless - s/$next_pair_pr_rx/$label=$2;''/eo; - - $true = &missing_braces unless - s/$next_pair_pr_rx/$true=$2;''/eo; - - $false = &missing_braces unless - s/$next_pair_pr_rx/$false=$2;''/eo; - - (&gls_used($label) ? $true : $false) . $_; -} - -sub do_cmd_ifglsentryexists{ - local($_) = @_; - local($label,$true,$false); - - $label = &missing_braces unless - s/$next_pair_pr_rx/$label=$2;''/eo; - - $true = &missing_braces unless - s/$next_pair_pr_rx/$true=$2;''/eo; - - $false = &missing_braces unless - s/$next_pair_pr_rx/$false=$2;''/eo; - - (&gls_entry_defined($label) ? $true : $false) . $_; -} - -sub gls_add_entry{ - local($type, $label, $format, $text) = @_; - - local($oldfmt) = $GLSCURRENTFORMAT; - - if (defined($format) and $format) - { - $GLSCURRENTFORMAT=$format; - } - - $id = ++$global{'max_id'}; - - local($str) = &make_real_glossary_entry($label,$text,$type); - $GLSCURRENTFORMAT = $oldfmt; - - $str; -} - -sub do_cmd_glsadd{ - local($_) = @_; - local($optarg,$pat,$label,$str,$id,$type,$format); - ($optarg,$pat) = &get_next_optional_argument; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - $type = &gls_get_type($label); - - if (defined $type) - { - ($format,$optarg) = &get_keyval('format', $optarg); - $format='' unless(defined($format)); - - &gls_add_entry($type,$label,$format,""); - } - else - { - &write_warnings("gls_add: glossary entry '$label' undefined"); - $str = ''; - } - - $str . $_; -} - -sub do_cmd_glsaddall{ - local($_) = @_; - local($optarg,$pat) = &get_next_optional_argument; - - local($format,$types); - - ($type,$optarg) = &get_keyval('types', $optarg); - - ($format,$optarg) = &get_keyval('format', $optarg); - $format='' unless(defined($format)); - - local(@types) = keys(%gls_mark); - - if (defined($types)) - { - @types = split /,/, $types; - } - - foreach $type (@types) - { - # strip leasing and trailing spaces - $type=~s/^\s*([^\s]+)\s*$/\1/; - - foreach $label (@{$gls_entries{$type}}) - { - &gls_add_entry($type,$label,$format,""); - } - } - - $_; -} - -sub do_cmd_glsresetall{ - local($_) = @_; - local($types,$pat) = &get_next_optional_argument; - - local(@types) = keys(%gls_mark); - - if (defined($types) and $types) - { - @types = split /,/, $types; - } - - foreach $type (@types) - { - # strip leasing and trailing spaces - $type=~s/^\s*([^\s]+)\s*$/\1/; - - foreach $label (@{$gls_entries{$type}}) - { - &reset_entry($label); - } - } - - $_; -} - -sub do_cmd_glsunsetall{ - local($_) = @_; - local($types,$pat) = &get_next_optional_argument; - - local(@types) = keys(%gls_mark); - - if (defined($types) and $types) - { - @types = split /,/, $types; - } - - foreach $type (@types) - { - # strip leasing and trailing spaces - $type=~s/^\s*([^\s]+)\s*$/\1/; - - foreach $label (@{$gls_entries{$type}}) - { - &reset_entry($label); - } - } - - $_; -} - -sub make_glslink{ - local($type,$label,$format,$text) = @_; - local($str) = ''; - - if (defined $type) - { - $str = &gls_add_entry($type,$label,$format,$text); - } - else - { - &write_warnings("glossary '$type' undefined"); - } - - $str; -} - -sub do_cmd_glslink{ - local($_) = @_; - local($optarg,$pat,$label,$text,$type,$format,$str); - - ($optarg,$pat) = &get_next_optional_argument; - - ($format,$optarg) = &get_keyval('format', $optarg); - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - $text = &missing_braces unless - (s/$next_pair_pr_rx/$text=$2;''/eo); - - # v1.01 removed following lines (\glslink doesn't have - # a final optional argument! - #local ($space) = ''; - #if (/^\s+[^\[]/ or /^\s*\[.*\]\s/) {$space = ' ';} - #($optarg,$pat) = &get_next_optional_argument; - - $type = &gls_get_type($label); - - #&make_glslink($type, $label, $format, $text).$space . $_; - &make_glslink($type, $label, $format, $text) . $_; -} - -sub do_cmd_glsentrydesc{ - local($_) = @_; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - &gls_get_description($label).$_; -} - -sub do_cmd_Glsentrydesc{ - local($_) = @_; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - ucfirst(&gls_get_description($label)).$_; -} - -sub do_cmd_glsentrytext{ - local($_) = @_; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - &gls_get_text($label).$_; -} - -sub do_cmd_Glsentrytext{ - local($_) = @_; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - ucfirst(&gls_get_text($label)).$_; -} - -sub do_cmd_glsentryname{ - local($_) = @_; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - &gls_get_name($label).$_; -} - -sub do_cmd_Glsentryname{ - local($_) = @_; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - ucfirst(&gls_get_name($label)).$_; -} - -sub do_cmd_glsentryfirst{ - local($_) = @_; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - &gls_get_first($label).$_; -} - -sub do_cmd_Glsentryfirst{ - local($_) = @_; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - ucfirst(&gls_get_first($label)).$_; -} - -sub do_cmd_glsentryplural{ - local($_) = @_; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - &gls_get_plural($label).$_; -} - -sub do_cmd_Glsentryplural{ - local($_) = @_; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - ucfirst(&gls_get_plural($label)).$_; -} - -sub do_cmd_glsentryfirstplural{ - local($_) = @_; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - local($text)=$glsentry{$label}{'firstplural'}; - - unless (defined($text)) - { - &write_warnings("glossary entry '$label' has not been defined"); - $text = ''; - } - - "$text$_"; - &gls_get_firstplural($label).$_; -} - -sub do_cmd_Glsentryfirstplural{ - local($_) = @_; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - ucfirst(&gls_get_firstplural($label)).$_; -} - -sub do_cmd_glsentrysymbol{ - local($_) = @_; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - &gls_get_symbol($label).$_; -} - -sub do_cmd_Glsentrysymbol{ - local($_) = @_; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - ucfirst(&gls_get_symbol($label)).$_; -} - -sub do_cmd_gls{ - local($_) = @_; - local($optarg,$pat,$label,$text, $format, $insert); - - ($optarg,$pat) = &get_next_optional_argument; - - ($format,$optarg) = &get_keyval('format', $optarg); - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - local ($space) = ''; - if (/^\s+[^\[]/ or /^\s*\[.*\]\s/) {$space = ' ';} - - $insert = ''; - ($insert,$pat) = &get_next_optional_argument; - - local($display) = ''; - - local($type) = &gls_get_type($label); - - if (&gls_used($label)) - { - # entry has already been used - - $text = &gls_get_text($label); - $display = &gls_get_display($type); - } - else - { - # entry hasn't been used - - $text = &gls_get_first($label); - $display = &gls_get_displayfirst($type); - - &unset_entry($label); - } - - local($args) = ''; - - local($id) = ++$global{'max_id'}; - $args .= "$OP$id$CP$text$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$glsentry{$label}{description}$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$glsentry{$label}{symbol}$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$insert$OP$id$CP"; - - local($link_text) = &translate_commands("$display$args"); - - &make_glslink($type, $label, $format, $link_text) .$space . $_; -} - -sub do_cmd_glspl{ - local($_) = @_; - local($optarg,$pat,$label,$text, $format, $insert); - - ($optarg,$pat) = &get_next_optional_argument; - - ($format,$optarg) = &get_keyval('format', $optarg); - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - local ($space) = ''; - if (/^\s+[^\[]/ or /^\s*\[.*\]\s/) {$space = ' ';} - - $insert = ''; - ($insert,$pat) = &get_next_optional_argument; - - local($display) = ''; - - local($type) = $glsentry{$label}{'type'}; - - if (&gls_used($label)) - { - # entry has already been used - - $text = &gls_get_plural($label); - $display = &gls_get_display($type);; - } - else - { - # entry hasn't been used - - $text = &gls_get_firstplural($label); - $display = &gls_get_displayfirst($type); - - &unset_entry($label); - } - - local($args) = ''; - - local($id) = ++$global{'max_id'}; - $args .= "$OP$id$CP$text$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$glsentry{$label}{description}$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$glsentry{$label}{symbol}$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$insert$OP$id$CP"; - - local($link_text) = &translate_commands("$display$args"); - - &make_glslink($type, $label, $format, $link_text) . $space . $_; -} - -sub do_cmd_Gls{ - local($_) = @_; - local($optarg,$pat,$label,$text, $format, $insert); - - ($optarg,$pat) = &get_next_optional_argument; - - ($format,$optarg) = &get_keyval('format', $optarg); - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - local ($space) = ''; - if (/^\s+[^\[]/ or /^\s*\[.*\]\s/) {$space = ' ';} - - $insert = ''; - ($insert,$pat) = &get_next_optional_argument; - - local($display) = ''; - - local($type) = $glsentry{$label}{'type'}; - - if (&gls_used($label)) - { - # entry has already been used - - $text = &gls_get_text($label); - $display = &gls_get_display($type);; - } - else - { - # entry hasn't been used - - $text = &gls_get_first($label); - $display = &gls_get_displayfirst($type); - - &unset_entry($label); - } - - local($args) = ''; - - local($id) = ++$global{'max_id'}; - $args .= "$OP$id$CP$text$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$glsentry{$label}{description}$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$glsentry{$label}{symbol}$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$insert$OP$id$CP"; - - local($link_text) = &translate_commands("$display$args"); - - &make_glslink($type, $label, $format, ucfirst($link_text)). $space . $_; -} - -sub do_cmd_Glspl{ - local($_) = @_; - local($optarg,$pat,$label,$text, $format, $insert); - - ($optarg,$pat) = &get_next_optional_argument; - - ($format,$optarg) = &get_keyval('format', $optarg); - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - local ($space) = ''; - if (/^\s+[^\[]/ or /^\s*\[.*\]\s/) {$space = ' ';} - - $insert = ''; - ($insert,$pat) = &get_next_optional_argument; - - local($display) = ''; - - local($type) = $glsentry{$label}{'type'}; - - if (&gls_used($label)) - { - # entry has already been used - - $text = &gls_get_plural($label); - $display = &gls_get_display($type);; - } - else - { - # entry hasn't been used - - $text = &gls_get_firstplural($label); - $display = &gls_get_displayfirst($type); - - &unset_entry($label); - } - - local($args) = ''; - - local($id) = ++$global{'max_id'}; - $args .= "$OP$id$CP$text$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$glsentry{$label}{description}$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$glsentry{$label}{symbol}$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$insert$OP$id$CP"; - - local($link_text) = &translate_commands("$display$args"); - - &make_glslink($type, $label, $format, ucfirst($link_text)).$space . $_; -} - -sub do_cmd_GLS{ - local($_) = @_; - local($optarg,$pat,$label,$text, $format, $insert); - - ($optarg,$pat) = &get_next_optional_argument; - - ($format,$optarg) = &get_keyval('format', $optarg); - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - local ($space) = ''; - if (/^\s+[^\[]/ or /^\s*\[.*\]\s/) {$space = ' ';} - - $insert = ''; - ($insert,$pat) = &get_next_optional_argument; - - local($display) = ''; - - local($type) = $glsentry{$label}{'type'}; - - if (&gls_used($label)) - { - # entry has already been used - - $text = &gls_get_text($label); - $display = &gls_get_display($type);; - } - else - { - # entry hasn't been used - - $text = &gls_get_first($label); - $display = &gls_get_displayfirst($type); - - &unset_entry($label); - } - - local($args) = ''; - - local($id) = ++$global{'max_id'}; - $args .= "$OP$id$CP$text$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$glsentry{$label}{description}$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$glsentry{$label}{symbol}$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$insert$OP$id$CP"; - - local($link_text) = &translate_commands("$display$args"); - - &make_glslink($type, $label, $format, uc($link_text)).$space . $_; -} - -sub do_cmd_GLSpl{ - local($_) = @_; - local($optarg,$pat,$label,$text, $format, $insert); - - ($optarg,$pat) = &get_next_optional_argument; - - ($format,$optarg) = &get_keyval('format', $optarg); - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - local ($space) = ''; - if (/^\s+[^\[]/ or /^\s*\[.*\]\s/) {$space = ' ';} - - $insert = ''; - ($insert,$pat) = &get_next_optional_argument; - - local($display) = ''; - - local($type) = $glsentry{$label}{'type'}; - - if (&gls_used($label)) - { - # entry has already been used - - $text = &gls_get_plural($label); - $display = &gls_get_display($type);; - } - else - { - # entry hasn't been used - - $text = &gls_get_firstplural($label); - $display = &gls_get_displayfirst($type); - - &unset_entry($label); - } - - local($args) = ''; - - local($id) = ++$global{'max_id'}; - $args .= "$OP$id$CP$text$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$glsentry{$label}{description}$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$glsentry{$label}{symbol}$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$insert$OP$id$CP"; - - local($link_text) = &translate_commands("$display$args"); - - &make_glslink($type, $label, $format, uc($link_text)).$space . $_; -} - -sub do_cmd_glossarypreamble{ - local($_) = @_; - $_[0]; -} - -sub do_cmd_glossarypostamble{ - local($_) = @_; - $_[0]; -} - -sub do_cmd_glsnumformat{ - local($_) = @_; - - $_; -} - -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 -makeglossaries -_IGNORED_CMDS_ - -1; diff --git a/Master/texmf-dist/doc/latex/glossaries/doc/glossary2glossaries.html b/Master/texmf-dist/doc/latex/glossaries/glossary2glossaries.html index 235ac5000db..74207fb56c1 100644 --- a/Master/texmf-dist/doc/latex/glossaries/doc/glossary2glossaries.html +++ b/Master/texmf-dist/doc/latex/glossaries/glossary2glossaries.html @@ -34,41 +34,41 @@ Contents</A> <!--Table of Contents--> <UL> -<LI><A NAME="tex2html19" +<LI><A NAME="tex2html21" HREF="glossary2glossaries.html#SECTION00020000000000000000">1 Package Options</A> -<LI><A NAME="tex2html20" +<LI><A NAME="tex2html22" HREF="glossary2glossaries.html#SECTION00030000000000000000">2 Defining new glossary types</A> -<LI><A NAME="tex2html21" +<LI><A NAME="tex2html23" HREF="glossary2glossaries.html#SECTION00040000000000000000">3 \make<glossary name></A> -<LI><A NAME="tex2html22" +<LI><A NAME="tex2html24" HREF="glossary2glossaries.html#SECTION00050000000000000000">4 Storing glossary information</A> -<LI><A NAME="tex2html23" +<LI><A NAME="tex2html25" HREF="glossary2glossaries.html#SECTION00060000000000000000">5 Adding an entry to the glossary</A> <UL> -<LI><A NAME="tex2html24" +<LI><A NAME="tex2html26" HREF="glossary2glossaries.html#SECTION00061000000000000000">5.1 \useglosentry</A> -<LI><A NAME="tex2html25" +<LI><A NAME="tex2html27" HREF="glossary2glossaries.html#SECTION00062000000000000000">5.2 \useGlosentry</A> -<LI><A NAME="tex2html26" +<LI><A NAME="tex2html28" HREF="glossary2glossaries.html#SECTION00063000000000000000">5.3 \gls</A> -<LI><A NAME="tex2html27" +<LI><A NAME="tex2html29" HREF="glossary2glossaries.html#SECTION00064000000000000000">5.4 \glossary</A> </UL> <BR> -<LI><A NAME="tex2html28" +<LI><A NAME="tex2html30" HREF="glossary2glossaries.html#SECTION00070000000000000000">6 Acronyms</A> <UL> -<LI><A NAME="tex2html29" +<LI><A NAME="tex2html31" HREF="glossary2glossaries.html#SECTION00071000000000000000">6.1 \acrln and \acrsh</A> -<LI><A NAME="tex2html30" +<LI><A NAME="tex2html32" HREF="glossary2glossaries.html#SECTION00072000000000000000">6.2 \ifacronymfirstuse</A> -<LI><A NAME="tex2html31" +<LI><A NAME="tex2html33" HREF="glossary2glossaries.html#SECTION00073000000000000000">6.3 \resetacronym and \unsetacronym</A> </UL> <BR> -<LI><A NAME="tex2html32" +<LI><A NAME="tex2html34" HREF="glossary2glossaries.html#SECTION00080000000000000000">7 Displaying the glossary</A> -<LI><A NAME="tex2html33" +<LI><A NAME="tex2html35" HREF="glossary2glossaries.html#SECTION00090000000000000000">8 Using makeindex</A> </UL> <!--End of Table of Contents--> @@ -104,7 +104,7 @@ to the <TT>glossaries</TT> package options. <A NAME="tab:pkgopt"></A> <DIV ALIGN="CENTER"> -<A NAME="457"></A> +<A NAME="462"></A> <TABLE CELLPADDING=3> <CAPTION><STRONG>Table 1:</STRONG> Mappings from <TT>glossary</TT> to <TT>glossaries</TT> @@ -290,7 +290,7 @@ glossary information for later use, or you could simply use <TT>\glossary</TT> whenever you wanted to add information to the glossary. With the new <TT>glossaries</TT> package, the latter option is no longer available<A NAME="tex2html2" - HREF="#foot459"><SUP>1</SUP></A>. If + HREF="#foot464"><SUP>1</SUP></A>. If you have stored all the glossary information using <TT>\storeglosentry</TT>, then you will need to convert these commands into the equivalent <TT>\newglossaryentry</TT>. If you haven't used @@ -429,18 +429,19 @@ to <TT>counter</TT>. </H2> <P> -If you have opted to explicitly use <TT>\glossary</TT> instead of storing -the glossary information with <TT>\storeglosentry</TT>, then converting -from <TT>glossary</TT> to <TT>glossaries</TT> will be more time-consuming, -although in the end, I hope you will see the benefits! Using -<TT>\glossary</TT> throughout the document is time consuming, and if you -use it more than once for the same term, there's a chance extra -spaces may creep in which will cause <TT>makeindex</TT> to treat the -two entries as different terms, even though they look the same in the -document. However, if you have used <TT>\glossary</TT>, you will need -to define the term using <TT>\newglossaryentry</TT>, and then use -<TT>\glsadd{<<I>label</I>>}</TT> (or <TT>\glslink{<<I>label</I>>}{<<I>text</I>>}</TT> -if you have used <TT>\xglossary</TT>.) +When using the <TT>glossaries</TT> package, you should not use +<TT>\glossary</TT> directly.<A NAME="tex2html3" + HREF="#foot469"><SUP>2</SUP></A> If, with the old +package, you have opted to explicitly use <TT>\glossary</TT> instead of +storing the glossary information with <TT>\storeglosentry</TT>, then +converting from <TT>glossary</TT> to <TT>glossaries</TT> will be more +time-consuming, although in the end, I hope you will see the +benefits!<A NAME="tex2html4" + HREF="#foot470"><SUP>3</SUP></A> If +you have used <TT>\glossary</TT> with the old glossary package, you will +instead need to define the relevant glossary terms using +<TT>\newglossaryentry</TT> and reference the terms using <TT>\glslink</TT>, +<TT>\gls</TT> (or <TT>\glspl</TT> etc). <P> If you don't like the idea of continually scrolling back to the @@ -727,20 +728,37 @@ instead. <P> <BR><HR><H4>Footnotes</H4> <DL> -<DT><A NAME="foot459">... +<DT><A NAME="foot464">... available</A><A HREF="glossary2glossaries.html#tex2html2"><SUP>1</SUP></A></DT> <DD>mainly because having a key value list in <TT>\glossary</TT> caused problems, but it also helps consistency. </DD> +<DT><A NAME="foot469">... directly.</A><A + HREF="glossary2glossaries.html#tex2html3"><SUP>2</SUP></A></DT> +<DD>This is because <TT>\glossary</TT> requires +the argument to be in a specific format and doesn't use the +<<I>key</I>>=<<I>value</I>> format that the old glossary package used. The +new package's internal commands set this format, as well as escaping +any of <TT>makeindex</TT>'s special characters, so although it is +still possible to use <TT>\glossary</TT> with the new package, it's not +recommended. If you persist in using <TT>\glossary</TT> with the new +package, don't complain if things go wrong! + +</DD> +<DT><A NAME="foot470">... +benefits!</A><A + HREF="glossary2glossaries.html#tex2html4"><SUP>3</SUP></A></DT> +<DD>From the user's point of view, using <TT>\glossary</TT> +throughout the document is time consuming, and if you use it more than +once for the same term, there's a chance extra spaces may creep in +which will cause <TT>makeindex</TT> to treat the two entries as +different terms, even though they look the same in the document. + +</DD> </DL> <BR><HR> -<ADDRESS> -<A href=http://theoval.cmp.uea.ac.uk/~nlct/>Nicola L. C. Talbot</A>. -<A HREF=http://www.cmp.uea.ac.uk/>School of Computing Sciences</A>. -<A HREF=http://www.uea.ac.uk/>University of East Anglia.</A> -Last Modified: 2007-09-15 -</ADDRESS> + </BODY> </HTML> diff --git a/Master/texmf-dist/doc/latex/glossaries/glossary2glossaries.pdf b/Master/texmf-dist/doc/latex/glossaries/glossary2glossaries.pdf Binary files differnew file mode 100644 index 00000000000..7280a20d692 --- /dev/null +++ b/Master/texmf-dist/doc/latex/glossaries/glossary2glossaries.pdf diff --git a/Master/texmf-dist/doc/latex/glossaries/glossary2glossaries.tex b/Master/texmf-dist/doc/latex/glossaries/glossary2glossaries.tex new file mode 100644 index 00000000000..f811c671f11 --- /dev/null +++ b/Master/texmf-dist/doc/latex/glossaries/glossary2glossaries.tex @@ -0,0 +1,529 @@ +\documentclass[a4paper]{article} + +\usepackage[colorlinks,pdfauthor={Nicola L.C. Talbot}, + pdftitle={Upgrading from the glossary package to + the glossaries package}]{hyperref} +\usepackage{html} +\usepackage{xr} + +\externaldocument{glossaries} + +\title{Upgrading from the glossary package to the glossaries +package} +\author{Nicola L.C. Talbot} + +\newcommand*{\meta}[1]{\textnormal{\textless\emph{#1}\textgreater}} +\newcommand*{\marg}[1]{\texttt{\char`\{\meta{#1}\char`\}}} +\newcommand*{\oarg}[1]{\texttt{[\meta{#1}]}} +\newcommand*{\cs}[1]{\texttt{\char`\\#1}} + +%\begin{latexonly} +\newcommand*{\sty}[1]{\textsf{#1}} + +\newsavebox\waybox +\newenvironment{oldway}{\begin{lrbox}{\waybox} +\begin{minipage}{0.98\linewidth}\ttfamily +}{\end{minipage}\end{lrbox}\vskip\baselineskip\par\noindent +\begin{tabular}{r} +\fbox{\usebox\waybox}\\[4pt]\footnotesize\mbox{\sty{glossary}} +\end{tabular}% +\vskip\baselineskip\par\noindent\ignorespaces} + +\newenvironment{newway}{\begin{lrbox}{\waybox} +\begin{minipage}{0.98\linewidth}\ttfamily +}{\end{minipage}\end{lrbox}\vskip\baselineskip\par\noindent +\begin{tabular}{r} +\fbox{\usebox\waybox}\\[4pt]\footnotesize\mbox{\sty{glossaries}} +\end{tabular}% +\vskip\baselineskip\par\noindent\ignorespaces} +%\end{latexonly} +\begin{htmlonly} +\newenvironment{oldway}{\par\begin{ttfamily}}{\end{ttfamily}\par} +\newenvironment{newway}{\par\begin{ttfamily}}{\end{ttfamily}\par} +\newcommand{\sty}[1]{\texttt{#1}} +\renewcommand{\LaTeX}{LaTeX} +\end{htmlonly} + +\begin{document} +\maketitle +\tableofcontents + +\begin{abstract} +The purpose of this document is to provide advice if you want +to convert a \LaTeX\ document from using the obsolete +\sty{glossary} package to the replacement \sty{glossaries} package. +\end{abstract} + +\section{Package Options} + +When converting a document that currently uses the obsolete +\sty{glossary} package to the replacement \sty{glossaries} package, +it should be fairly obvious that the first thing you need to do is +replace \verb|\usepackage{glossary}| with +\verb|\usepackage{glossaries}|, however some of the package options +are different, so you may need to change those as well. +Table~\ref{tab:pkgopt} shows the mappings from the \sty{glossary} +to the \sty{glossaries} package options. + +\begin{table}[htbp] +\caption[Mappings]{Mappings from \sty{glossary} to \sty{glossaries} +package options} +\label{tab:pkgopt} +\begin{center} +\begin{tabular}{ll} +\bfseries \sty{glossary} option & \bfseries \sty{glossaries} option\\ +style=list & style=list\\ +style=altlist & style=altlist\\ +style=long,header=none,border=none,cols=2 & style=long\\ +style=long,header=plain,border=none,cols=2 & style=longheader\\ +style=long,header=none,border=plain,cols=2 & style=longborder\\ +style=long,header=plain,border=plain,cols=2 & style=longheaderborder\\ +style=long,header=none,border=none,cols=3 & style=long3col\\ +style=long,header=plain,border=none,cols=3 & style=long3colheader\\ +style=long,header=none,border=plain,cols=3 & style=long3colborder\\ +style=long,header=plain,border=plain,cols=3 & style=long3colheaderborder\\ +style=super,header=none,border=none,cols=2 & style=super\\ +style=super,header=plain,border=none,cols=2 & style=superheader\\ +style=super,header=none,border=plain,cols=2 & style=superborder\\ +style=super,header=plain,border=plain,cols=2 & style=superheaderborder\\ +style=super,header=none,border=none,cols=3 & style=super3col\\ +style=super,header=plain,border=none,cols=3 & style=super3colheader\\ +style=super,header=none,border=plain,cols=3 & style=super3colborder\\ +style=super,header=plain,border=plain,cols=3 & style=super3colheaderborder\\ +number=none & nonumberlist\\ +number=\meta{counter name} & counter=\meta{counter name}\\ +toc & toc\\ +hypertoc & toc\\ +hyper & \emph{no corresponding option}\\ +section=true & section\\ +section=false & \emph{no corresponding option}\\ +acronym & acronym\\ +global & \emph{no corresponding option} +\end{tabular} +\end{center} +\end{table} + +\section{Defining new glossary types} + +If you have created new glossary types, you will need to +replace all instances of +\begin{oldway} +\cs{newglossarytype}\oarg{log-ext}\marg{type}\marg{out-ext}\marg{in-ext}\oarg{style list}\newline +\cs{newcommand}\verb|{\|\meta{type}name\verb|}|\marg{title} +\end{oldway}% +with +\begin{newway} +\cs{newglossary}\oarg{log-ext}\marg{type}\marg{out-ext}\marg{in-ext}\marg{title} +\end{newway}% +in the preamble, and +\begin{newway} +\cs{glossarystyle}\marg{new style list} +\end{newway}% +immediately before \verb|\printglossary[type=|\meta{type}\verb|]|, +if the new glossary requires a different style to the main (default) +glossary. + +The \meta{style list} optional argument can be converted to +\meta{new style list} using the same mapping given in +Table~\ref{tab:pkgopt}. + +For example, if your document contains the following: +\begin{verbatim} +\newglossarytype[nlg]{notation}{not}{ntn}[style=long,header] +\newcommand{\notationname}{Index of Notation} +\end{verbatim} +You will need to replace the above two lines with: +\begin{verbatim} +\newglossary[nlg]{notation}{not}{ntn}{Index of Notation} +\end{verbatim} +in the preamble, and +\begin{verbatim} +\glossarystyle{style=longheader} +\end{verbatim} +immediately prior to displaying this glossary new type. + +Note that the glossary title is no longer specified using +\cs{}\meta{glossary-type}\texttt{name} (except for \cs{glossaryname} +and \cs{acronymname}) but is instead specified in the \meta{title} +argument of \cs{newglossary}. The short title which is specified +in the \sty{glossary} package by the command +\cs{short}\meta{glossary-name}\texttt{name} is now specified +using the \texttt{toctitle} key in the optional argument to +\cs{printglossary}. + +\section{\cs{make}\meta{glossary name}} + +All instances of \cs{make}\meta{glossary name} (e.g.\ +\cs{makeglossary} and \cs{makeacronym}) should be replaced +by the single command \cs{makeglossaries}. For example, if +your document contained the following: +\begin{verbatim} +\makeglossary +\makeacronym +\end{verbatim} +then you should replace both lines with the single line: +\begin{verbatim} +\makeglossaries +\end{verbatim} + +\section{Storing glossary information} + +With the old \sty{glossary} package you could optionally store +glossary information for later use, or you could simply use +\cs{glossary} whenever you wanted to add information to the glossary. +With the new \sty{glossaries} package, the latter option is no longer +available\footnote{mainly because having a key value list in +\cs{glossary} caused problems, but it also helps consistency.}. If +you have stored all the glossary information using +\cs{storeglosentry}, then you will need to convert these commands +into the equivalent \cs{newglossaryentry}. If you haven't used +\cs{storeglosentry}, then you'll have a bit more work to do! + +The former approach requires substituting all instances of +\begin{oldway} +\cs{storeglosentry}\marg{label}\marg{gls-entry} +\end{oldway}% +with +\begin{newway} +\cs{newglossaryentry}\marg{label}\marg{gls-entry} +\end{newway}% +This should be fairly easy to do using the search and replace +facility in your editor (but see notes below). + +If you have used the optional argument of \cs{storeglosentry} +(i.e.\ you have multiple glossaries) then you will need to +substitute +\begin{oldway} +\cs{storeglosentry}\oarg{gls-type}\marg{label}\marg{gls-entry} +\end{oldway}% +with +\begin{newway} +\cs{newglossaryentry}\marg{label}\verb|{|\meta{gls-entry},type=\meta{gls-type}\verb|}| +\end{newway} + +The glossary entry information \meta{gls-entry} may also need +changing. If \meta{gls-entry} contains any of \texttt{makeindex}'s +special characters (i.e.\ \texttt{@} \texttt{!} \verb|"| or +\verb"|") then they should no longer be escaped with \verb'"' +since the \sty{glossaries} package deals with these characters +internally. For example, if your document contains the following: +\begin{verbatim} +\storeglosentry{card}{name={$"|\mathcal{S}"|$}, +description={The cardinality of the set $\mathcal{S}$}} +\end{verbatim} +then you will need to replace it with: +\begin{verbatim} +\newglossaryentry{card}{name={$|\mathcal{S}|$}, +description={The cardinality of the set $\mathcal{S}$}} +\end{verbatim} + +The \texttt{format} and \texttt{number} keys available in +\cs{storeglosentry} are not available with \cs{newglossaryentry}. +Note also that the \sty{glossary} package allowed you to use +\cs{storeglosentry} in the document, but \cs{newglossaryentry} +may only be used in the preamble. + +\section{Adding an entry to the glossary} + +The \sty{glossary} package provided two basic means to add +information to the glossary: firstly, the term was defined +using \cs{storeglosentry} and the entries for that term were +added using \cs{useglosentry}, \cs{useGlosentry} and \cs{gls}. +Secondly, the term was added to the glossary using \cs{glossary}. +This second approach is unavailable with the \sty{glossaries} +package. + +\subsection{\cs{useglosentry}} +\label{sec:useglosentry} + +The \sty{glossary} package allows you to add information to the +glossary for a predefined term without producing any text +in the document using +\begin{oldway} +\cs{useglosentry}\oarg{old options}\marg{label} +\end{oldway}% +Any occurrences of this command will need to be replaced with +\begin{newway} +\cs{glsadd}\oarg{new options}\marg{label} +\end{newway}% +The \texttt{format} key in \meta{old options} remains the same +in \meta{new options}, the \texttt{number=}\meta{counter name} +key in \meta{old options} should be replaced with\linebreak +\texttt{counter=}\meta{counter name} in \meta{new options}. + +\subsection{\cs{useGlosentry}} + +The \sty{glossary} package allows you to add information to the +glossary for a predefined term with the given text using +\begin{oldway} +\cs{useGlosentry}\oarg{old options}\marg{label}\marg{text} +\end{oldway}% +Any occurrences if this command will need to be replaced with +\begin{newway} +\cs{glslink}\oarg{new options}\marg{label}\marg{text} +\end{newway}% +The mapping from \meta{old options} to \meta{new options} is +the same as that given in section~\ref{sec:useglosentry} above. + +\subsection{\cs{gls}} + +Both the \sty{glossary} and the \sty{glossaries} packages define +the command \cs{gls}. In this case, the only thing you need to +change is the \texttt{number} key in the optional argument +to \texttt{counter}. + +\subsection{\cs{glossary}} + +When using the \sty{glossaries} package, you should not use +\cs{glossary} directly.\footnote{This is because \cs{glossary} requires +the argument to be in a specific format and doesn't use the +\meta{key}=\meta{value} format that the old glossary package used. The +new package's internal commands set this format, as well as escaping +any of \texttt{makeindex}'s special characters, so although it is +still possible to use \cs{glossary} with the new package, it's not +recommended. If you persist in using \cs{glossary} with the new +package, don't complain if things go wrong!} If, with the old +package, you have opted to explicitly use \cs{glossary} instead of +storing the glossary information with \cs{storeglosentry}, then +converting from \sty{glossary} to \sty{glossaries} will be more +time-consuming, although in the end, I hope you will see the +benefits!\footnote{From the user's point of view, using \cs{glossary} +throughout the document is time consuming, and if you use it more than +once for the same term, there's a chance extra spaces may creep in +which will cause \texttt{makeindex} to treat the two entries as +different terms, even though they look the same in the document.} If +you have used \cs{glossary} with the old glossary package, you will +instead need to define the relevant glossary terms using +\cs{newglossaryentry} and reference the terms using \cs{glslink}, +\cs{gls} (or \cs{glspl} etc). + +If you don't like the idea of continually scrolling back to the +preamble to type all your \cs{newglossaryentry} commands, you may +prefer to create a new file, in which to store all these commands, +and then input that file in your document's preamble. Most text +editors and front-ends allow you to have multiple files open, and +you can tab back and forth between them. + +\section{Acronyms} + +In the \sty{glossary} package, acronyms were treated differently +to glossary entries. This resulted in inconsistencies and sprawling +unmaintainable code. The new \sty{glossaries} package treats +acronyms in exactly the same way as normal glossary terms. In fact, +in the \sty{glossaries} package: +\begin{newway} +\cs{newacronym}\oarg{options}\marg{label}\marg{abbrv}\marg{long} +\end{newway} +is a shortcut for: +\begin{newway} +\cs{newglossaryentry}\marg{label}\{type=\cs{acronymtype}, +name=\marg{abbrv}, +description=\marg{long}, +text=\marg{abbrv}, +first=\{\meta{long} (\meta{abbrv})\}, +plural=\{\meta{abbrv}s\}, +firstplural=\{\meta{long}s (\meta{abbrv}s)\}, +\meta{options}\} +\end{newway} + +This is different to the \sty{glossary} package which set the +\texttt{name} key to \meta{long} (\meta{abbrv}) and allowed you +to set a description using the \texttt{description} key. If you want +your document to remain like this, you can redefine \cs{newacronym} +as follows: +\begin{verbatim} +\renewcommand{\newacronym}[4][]{% +\newglossaryentry{#2}{type=\acronymtype, +name={#4 (#3)}, +text={#3}, +first={#4 (#3)}, +plural={#3s}, +firstplural={#4s (#3s)},#1}} +\end{verbatim} +The \texttt{description} key will then need to be entered using the +optional argument. + +For example, if your document originally had the following: +\begin{verbatim} +\newacronym{SVM}{Support Vector Machine}{description=Statistical +pattern recognition technique} +\end{verbatim} +Then you would need to redefine \cs{newacronym} as shown above, +and change the above to: +\begin{verbatim} +\newacronym[description=Statistical pattern recognition +technique]{svm}{SVM}{Support Vector Machine} +\end{verbatim} +You will also need to replace all occurrences of \cs{SVM} with +\verb|\gls{svm}|. Alternatively, you can define \cs{SVM}: +\begin{verbatim} +\newcommand{\SVM}{\gls{svm}} +\end{verbatim} + +If you have used \cs{useacronym} instead of \cs{}\meta{acr-name}, +then you will need to replace all occurrences of +\begin{oldway} +\cs{useacronym}\oarg{insert}\marg{acr-name} +\end{oldway}% +with +\begin{newway} +\cs{gls}\marg{label}\oarg{insert} +\end{newway}% +Note that the starred versions of \cs{useacronym} and +\cs{}\meta{acr-name} (which make the first letter uppercase) should +be replaced with \cs{Gls}\marg{label}. + +\subsection{\cs{acrln} and \cs{acrsh}} + +In the \sty{glossary} package, it is possible to produce the +long and short forms of an acronym without adding an entry to +the glossary using \cs{acrln} and \cs{acrsh}. With the +\sty{glossaries} package, you can replace +\begin{oldway} +\cs{acrsh}\marg{acr-name} +\end{oldway}% +with +\begin{newway} +\cs{glsentrytext}\marg{label} +\end{newway}% +However the \sty{glossaries} package provides no direct equivalent +of \cs{acrln}. Instead it provides \cs{glsentryfirst} which +produces the ``first use'' text without adding an entry to the +glossary, or affecting the first use flag. + +Alternatively, if you haven't changed the definition of +\cs{newacronym}, the long form by itself can be obtained using +\cs{glsentrydesc}, since by default the \texttt{description} key is +set to the long form (but read the notes in the \sty{glossaries} +manual regarding the \texttt{sanitize} package option). + +If you want to be able to set a description, and be able to +independently access the description, the long form and the +short form, you can redefine \cs{newacronym} so that it uses +the \texttt{symbol} key and use \cs{defglsdisplayfirst} +so that it uses this value on first use, as follows: +\begin{verbatim} +\renewcommand{\newacronym}[4][]{\newglossaryentry{#2}{% +name={#4 (#3)}, +text={#3}, +first={#4}, +symbol={#3}, +}} +\defglsdisplayfirst{\acronymtype}{##1 (##3)##4} +\end{verbatim} +As before, you can access the short name via +\cs{glsentrytext}\marg{label}, but you can now access just the long +form via \cs{glsentryfirst}\marg{label} and the description via +\cs{glsentrydesc}\marg{label}. + +See +\latexhtml{section~\ref*{sec:code:glslink} (}{the section }``Using +glossary entries in the text''\latex{)} of the \sty{glossaries} +manual for further details of how to use these commands. + +\subsection{\cs{ifacronymfirstuse}} + +The \sty{glossary} package command +\begin{oldway} +\cs{ifacronymfirstuse}\marg{acr-name}\marg{text1}\marg{text2} +\end{oldway}% +can be replaced by the \sty{glossaries} command: +\begin{newway} +\cs{ifglsused}\marg{label}\marg{text2}\marg{text1} +\end{newway}% +Note that \cs{ifglsused} evaluates the opposite condition to +that of \cs{ifacronymfirstuse} which is why the last two arguments +have been reversed. + +\subsection{\cs{resetacronym} and \cs{unsetacronym}} + +The \sty{glossary} package allows you to reset and unset the +acronym flag which is used to determine whether the acronym has +been used in the document. The \sty{glossaries} package also +provides a means to do this on either a local or global level. +To reset an acronym, you will need to replace: +\begin{oldway} +\cs{resetacronym}\marg{acr-name} +\end{oldway}% +with either +\begin{newway} +\cs{glsreset}\marg{label} +\end{newway}% +or +\begin{newway} +\cs{glslocalreset}\marg{label} +\end{newway} + +To unset an acronym, you will need to replace: +\begin{oldway} +\cs{unsetacronym}\marg{acr-name} +\end{oldway}% +with either +\begin{newway} +\cs{glsunset}\marg{label} +\end{newway}% +or +\begin{newway} +\cs{glslocalunset}\marg{label} +\end{newway} + +\section{Displaying the glossary} + +The \sty{glossary} package provides the command \cs{printglossary} +(or \cs{print}\meta{type} for other glossary types) which +can be used to print individual glossaries. The \sty{glossaries} +package provides the command \cs{printglossaries} which +will print all the glossaries which have been defined, or +\cs{printglossary}\oarg{options} to print individual glossaries. +So if you just have \cs{printglossary}, then you can leave it as +it is, but if you have, say: +\begin{verbatim} +\printglossary +\printglossary[acronym] +\end{verbatim} +or +\begin{verbatim} +\printglossary +\printacronym +\end{verbatim} +then you will need to either replace this with either +\begin{verbatim} +\printglossaries +\end{verbatim} +or +\begin{verbatim} +\printglossary +\printglossary[type=\acronymtype] +\end{verbatim} + +The \sty{glossary} package allows you to specify a short title +(for the table of contents and page header) by defining a command +of the form \cs{short}\meta{glossary-type}\texttt{name}. The +\sty{glossaries} package doesn't do this, but instead provides +the \texttt{toctitle} key which can be used in the optional +argument to \cs{printglossary}. For example, if you have created +a new glossary type called \texttt{notation}, and you had +defined +\begin{verbatim} +\newcommand{\shortnotationname}{Notation} +\end{verbatim} +then you would need to use the \texttt{toctitle} key: +\begin{verbatim} +\printglossary[type=notation,toctitle=Notation] +\end{verbatim} +The \sty{glossaries} package will ignore \cs{shortnotationname}, +so unless you have used it elsewhere in the document, you may +as well remove the definition. + +\section{Using makeindex} + +If you convert your document from using the \sty{glossary} package +to the \sty{glossaries} package, you will need to delete any of +the additional files, such as the \texttt{.glo} file, that were +created by the \sty{glossary} package, as the \sty{glossaries} +package uses a different \texttt{makeindex} style file. +Remember also, that if you used the \texttt{makeglos} Perl script, +you will need to use the \texttt{makeglossaries} Perl script +instead. + +\end{document} diff --git a/Master/texmf-dist/doc/latex/glossaries/latex2html/glossaries.perl b/Master/texmf-dist/doc/latex/glossaries/latex2html/glossaries.perl deleted file mode 100644 index 22ad50f784c..00000000000 --- a/Master/texmf-dist/doc/latex/glossaries/latex2html/glossaries.perl +++ /dev/null @@ -1,1713 +0,0 @@ -# File : glossaries.perl -# Author : Nicola L.C. Talbot -# Date : 14th June 2007 -# Last Modified : 21st Aug 2007 -# Version : 1.02 -# Description : LaTeX2HTML (limited!) implementation of glossaries -# package. Note that not all the glossaries.sty -# macros have been implemented. - -# This is a LaTeX2HTML style implementing the glossaries package, and -# is distributed as part of that package. -# Copyright 2007 Nicola L.C. Talbot -# This work may be distributed and/or modified under the -# conditions of the LaTeX Project Public License, either version 1.3 -# of this license of (at your option) any later version. -# The latest version of this license is in -# http://www.latex-project.org/lppl.txt -# and version 1.3 or later is part of all distributions of LaTeX -# version 2005/12/01 or later. -# -# This work has the LPPL maintenance status `maintained'. -# -# The Current Maintainer of this work is Nicola Talbot. - -# This work consists of the files glossaries.dtx and glossaries.ins -# and the derived files glossaries.sty, glossary-hypernav.sty, -# glossary-list.sty, glossary-long.sty, glossary-super.sty, -# glossaries.perl. Also makeglossaries and makeglossaries.bat - -package main; - -# These are the only package options implemented. - -sub do_glossaries_style_altlist{ -} - -sub do_glossaries_toc{ -} - -sub do_glossaries_toc_true{ -} - -$GLSCURRENTFORMAT="textrm"; - -sub do_cmd_glossaryname{ - "Glossary$_[0]" -} - -$gls_mark{'main'} = "<tex2html_gls_main_mark>"; -$gls_file_mark{'main'} = "<tex2html_gls_main_file_mark>"; -$gls_title{'main'} = "\\glossaryname"; -$delimN{'main'} = ", "; -$glsnumformat{'main'} = $GLSCURRENTFORMAT; -@{$gls_entries{'main'}} = (); -$gls_displayfirst{'main'} = "glsdisplayfirst"; -$gls_display{'main'} = "glsdisplay"; - - -$acronymtype = 'main'; - -sub do_glossaries_acronym{ - &do_glossaries_acronym_true -} - -sub do_glossaries_acronym_true{ - &make_newglossarytype("acronym", "\\acronymname"); - $acronymtype = 'acronym'; -} - -sub do_glossary_acronym_false{ - $acronymtype = 'main'; -} - -sub do_cmd_acronymname{ - join('', 'Acronyms', $_[0]); -} - -sub do_cmd_acronymtype{ - join('', $acronymtype, $_[0]); -} - -# modify set_depth_levels so that glossary is added - -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 glossary '$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); - - local($entry) = $glossary_entry{$type}{$key}; - - $id = ++$global{'max_id'}; - local($name) = &translate_commands( - "\\glsnamefont $OP$id$CP$glsentry{$entry}{name}$OP$id$CP"); - - local($symbol) = ($glsentry{$entry}{'symbol'} ? - " $glsentry{$entry}{symbol}" : ''); - - $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>" - . $name - . "<DD>" - . $glsentry{$entry}{'description'} - . $symbol . '. ' - . $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 -, 'textohtmlglossaries', $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); -} - -sub add_gls_dummy_commands{ - s/[\\]printglossary/\\textohtmlglossary/sg; - s/[\\]printglossaries/\\textohtmlglossaries/sg; -} - -sub get_firstkeyval{ - local($key,$_) = @_; - local($value); - - s/\b$key\s*=$OP(\d+)$CP(.*)$OP\1$CP\s*(,|$)/$value=$2;','/es; - undef($value) if $`=~/\b$key\s*=/; - - unless (defined($value)) - { - s/(^|,)\s*$key\s*=\s*([^,]*)\s*(,|$)/,/s; - $value=$2; - } - - ($value,$_); -} - -# need to get the value of the last key of a given name -# in the event of multiple occurences. -sub get_keyval{ - local($key,$_) = @_; - local($value); - - while (/\b$key\s*=/) - { - ($value,$_) = &get_firstkeyval($key, $_); - last unless defined($value); - } - - ($value,$_); -} - -# This is modified from do_cmd_textohtmlindex - -sub do_cmd_textohtmlglossary{ - local($_) = @_; - - local($keyval,$pat) = &get_next_optional_argument; - - local($type,$title,$toctitle,$style); - - ($type,$keyval) = &get_keyval('type', $keyval); - ($title,$keyval) = &get_keyval('title', $keyval); - ($toctitle,$keyval) = &get_keyval('toctitle', $keyval); - ($style,$keyval) = &get_keyval('style', $keyval); - - &make_textohtmlglossary($type,$toctitle,$title,$style).$_; -} - -sub make_textohtmlglossary{ - local($type,$toctitle,$title,$style) = @_; - - unless (defined($type)) {$type = 'main';} - - unless (defined $gls_mark{$type}) - { - &write_warnings("glossary type '$type' not implemented"); - } - - unless (defined($title) and $title) {$title = $gls_title{$type};} - unless (defined($toctitle) and $toctitle) {$toctitle = $title;} - - $toc_sec_title = $toctitle; - $glsfile{$type} = $CURRENT_FILE; - - $TITLE=&translate_commands($toctitle); - - 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); -} - -sub do_cmd_textohtmlglossaries{ - local($_) = @_; - - foreach $type (keys %gls_mark) - { - $id = ++$global{'max_id'}; - $_ = &make_textohtmlglossary($type,$gls_title{'main'}).$_; - } - - $_; -} - -sub make_glossary_labels { - local($key, @keys); - @keys = keys %glossary_labels; - foreach $key (@keys) { - if (($ref_files{$key}) && !($ref_files{$key} eq "$glsfile{'main'}")) { - local($tmp) = $ref_files{$key}; - &write_warnings("\nmultiple label $key , target in $glsfile{'main'} masks $tmp "); - } - $ref_files{$key} .= $glsfile{'main'}; - } -} - -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($type) = "main"; - local($anchor,$entry); - - local($type,$pat) = &get_next_optional_argument; - - $entry = &missing_braces unless - (s/$next_pair_pr_rx//o&&($entry=$2)); - - $anchor = &make_glossary_entry($entry,$anchor_invisible_mark,$type); - - join('', $anchor, $_); -} - -sub make_glossary_entry { &make_real_glossary_entry(@_) } -sub make_real_glossary_entry { - local($entry,$text,$type) = @_; - local($this_file) = $CURRENT_FILE; - $TITLE = $saved_title if (($saved_title)&&(!($TITLE)||($TITLE eq $default_title))); - - local($sort) = $glsentry{$entry}{'sort'}; - - # Save the reference - local($str) = "$sort###" . ++$global{'max_id'}; # Make unique - # concatenate multiple spaces into a single space - # otherwise keys won't sort properly - $str=~s/\s+/ /gs; - local($br_id) = ++$global{'max_id'}; - $glossary{$type}{$str} .= &make_half_href($this_file."#$br_id"); - $glossary_format{$type}{$str} = $GLSCURRENTFORMAT; - $glossary_entry{$type}{$str} = $entry; - $glossary_linktext{$type}{$str} = $TITLE; - "<A HREF=$gls_file_mark{$type}#tex2html$href_name NAME=\"$br_id\">$text<\/A>"; -} - -sub do_cmd_newglossary{ - local($_) = @_; - local($type,$out,$in,$opt,$pat,$title); - - ($opt,$pat) = &get_next_optional_argument; - - $type = &missing_braces unless - (s/$next_pair_pr_rx//o&&($type=$2)); - $in = &missing_braces unless - (s/$next_pair_pr_rx//o&&($in=$2)); - $out = &missing_braces unless - (s/$next_pair_pr_rx//o&&($out=$2)); - $title = &missing_braces unless - (s/$next_pair_pr_rx//o&&($title=$2)); - - ($opt,$pat) = &get_next_optional_argument; - - &make_newglossarytype($type, $title); - - $_; -} - -sub make_newglossarytype{ - local($type, $title) = @_; - - $gls_mark{$type} = "<tex2html_gls_${type}_mark>"; - $gls_file_mark{$type} = "<tex2html_gls_${type}_file_mark>"; - $gls_title{$type} = $title; - $delimN{$type} = ", "; - $glsnumformat{$type} = $GLSCURRENTFORMAT; - @{$gls_entries{$type}} = (); - $gls_displayfirst{$type} = "glsdisplayfirst"; - $gls_display{$type} = "glsdisplay"; -} - -sub do_cmd_glsdisplay{ - local($_) = @_; - local($text,$description,$symbol,$insert); - - $text = &missing_braces unless - (s/$next_pair_pr_rx/$text=$2;''/eo); - - $description = &missing_braces unless - (s/$next_pair_pr_rx/$description=$2;''/eo); - - $symbol = &missing_braces unless - (s/$next_pair_pr_rx/$symbol=$2;''/eo); - - $insert = &missing_braces unless - (s/$next_pair_pr_rx/$insert=$2;''/eo); - - "$text$insert" . $_; -} - -sub do_cmd_glsdisplayfirst{ - local($_) = @_; - local($text,$description,$symbol,$insert); - - $text = &missing_braces unless - (s/$next_pair_pr_rx/$text=$2;''/eo); - - $description = &missing_braces unless - (s/$next_pair_pr_rx/$description=$2;''/eo); - - $symbol = &missing_braces unless - (s/$next_pair_pr_rx/$symbol=$2;''/eo); - - $insert = &missing_braces unless - (s/$next_pair_pr_rx/$insert=$2;''/eo); - - "$text$insert" . $_; -} - -sub gls_get_displayfirst{ - local($type) = @_; - local($display)= $gls_displayfirst{$type}; - - if (not defined($display)) - { - &write_warnings("Glossary '$type' is not defined"); - $display=''; - } - elsif ($display eq '') - { - &write_warnings("glsdisplayfirst not set for glossary '$type'"); - } - else - { - $display = "\\$display "; - } - - $display; -} - -sub gls_get_display{ - local($type) = @_; - local($display)= $gls_display{$type}; - - if (not defined($display)) - { - &write_warnings("Glossary '$type' is not defined"); - $display = ''; - } - elsif ($display eq '') - { - &write_warnings("glsdisplay not set for glossary '$type'"); - } - else - { - $display = "\\$display "; - } - - $display; -} - -sub do_cmd_glsnamefont{ - local($_) = @_; - local($text); - - $text = &missing_braces unless - (s/$next_pair_pr_rx/$text=$2;''/eo); - - "<B>$text</B>$_"; -} - -sub do_cmd_newacronym{ - local($_) = @_; - local($label,$abbrev,$long,$opt); - - ($opt,$pat) = &get_next_optional_argument; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - $abbrv = &missing_braces unless - (s/$next_pair_pr_rx/$abbrv=$2;''/eo); - $long = &missing_braces unless - (s/$next_pair_pr_rx/$long=$2;''/eo); - - local($cmd) = "\\newglossaryentry"; - local($id); - $id = ++$global{'max_id'}; - $cmd .= "$OP$id$CP$label$OP$id$CP"; - $id = ++$global{'max_id'}; - local($entry) = "type=$OP$id$CP\\acronymtype$OP$id$CP,"; - $id = ++$global{'max_id'}; - $entry .= "name=$OP$id$CP$abbrv$OP$id$CP,"; - $id = ++$global{'max_id'}; - $entry .= "description=$OP$id$CP$long$OP$id$CP,"; - $id = ++$global{'max_id'}; - $entry .= "text=$OP$id$CP$abbrv$OP$id$CP,"; - $id = ++$global{'max_id'}; - $entry .= "first=$OP$id$CP$long ($abbrv)$OP$id$CP,"; - $id = ++$global{'max_id'}; - $entry .= "plural=$OP$id$CP${abbrv}s$OP$id$CP,"; - $id = ++$global{'max_id'}; - $entry .= "firstplural=$OP$id$CP${long}s (${abbrv}s)$OP$id$CP"; - - $id = ++$global{'max_id'}; - $cmd .= "$OP$id$CP$entry,$opt$OP$id$CP"; - - &translate_commands($cmd).$_; -} - -sub gls_entry_init{ - local($label, $type, $name, $desc) = @_; - - %{$glsentry{$label}} = - ( type => $type, - name => $name, - 'sort' => $name, - description => $description, - text => $name, - first => $name, - plural => "${name}s", - firstplural => "${name}s", - symbol => '', - flag => 0 - ); -} - -sub gls_get_type{ - local($label) = @_; - local($type) = ''; - - if (&gls_entry_defined($label)) - { - $type = $glsentry{$label}{'type'}; - } - else - { - &write_warnings("gls_get_type: glossary entry '$label' has not been defined"); - } - - $type; -} - -sub gls_set_type{ - local($label, $type) = @_; - - if (&gls_entry_defined($label)) - { - $glsentry{$label}{'type'} = $type; - } - else - { - &write_warnings("gls_set_type: glossary entry '$label' has not been defined"); - } -} - -sub gls_get_name{ - local($label) = @_; - local($name) = ''; - - if (&gls_entry_defined($label)) - { - $name = $glsentry{$label}{'name'}; - } - else - { - &write_warnings("gls_get_name: glossary entry '$label' has not been defined"); - } - - $name; -} - -sub gls_set_name{ - local($label, $name) = @_; - - if (&gls_entry_defined($label)) - { - $glsentry{$label}{'name'} = $name; - } - else - { - &write_warnings("gls_set_name: glossary entry '$label' has not been defined"); - } -} - -sub gls_get_description{ - local($label) = @_; - local($description) = ''; - - if (&gls_entry_defined($label)) - { - $description = $glsentry{$label}{'description'}; - } - else - { - &write_warnings("gls_get_description: glossary entry '$label' has not been defined"); - } - - $description; -} - -sub gls_set_description{ - local($label, $description) = @_; - - if (&gls_entry_defined($label)) - { - $glsentry{$label}{'description'} = $description; - } - else - { - &write_warnings("gls_set_description: glossary entry '$label' has not been defined"); - } -} - -sub gls_get_symbol{ - local($label) = @_; - local($symbol) = ''; - - if (&gls_entry_defined($label)) - { - $symbol = $glsentry{$label}{'symbol'}; - } - else - { - &write_warnings("gls_get_symbol: glossary entry '$label' has not been defined"); - } - - $symbol; -} - -sub gls_set_symbol{ - local($label, $symbol) = @_; - - if (&gls_entry_defined($label)) - { - $glsentry{$label}{'symbol'} = $symbol; - } - else - { - &write_warnings("gls_set_symbol: glossary entry '$label' has not been defined"); - } -} - -sub gls_get_sort{ - local($label) = @_; - local($sort) = ''; - - if (&gls_entry_defined($label)) - { - $sort = $glsentry{$label}{'sort'}; - } - else - { - &write_warnings("gls_get_sort: glossary entry '$label' has not been defined"); - } - - $sort; -} - -sub gls_set_sort{ - local($label, $sort) = @_; - - if (&gls_entry_defined($label)) - { - $glsentry{$label}{'sort'} = $sort; - } - else - { - &write_warnings("gls_set_sort: glossary entry '$label' has not been defined"); - } -} - -sub gls_get_text{ - local($label) = @_; - local($text) = ''; - - if (&gls_entry_defined($label)) - { - $text = $glsentry{$label}{'text'}; - } - else - { - &write_warnings("gls_get_text: glossary entry '$label' has not been defined"); - } - - $text; -} - -sub gls_set_text{ - local($label, $text) = @_; - - if (&gls_entry_defined($label)) - { - $glsentry{$label}{'text'} = $text; - } - else - { - &write_warnings("gls_set_text: glossary entry '$label' has not been defined"); - } -} - -sub gls_get_plural{ - local($label) = @_; - local($plural) = ''; - - if (&gls_entry_defined($label)) - { - $plural = $glsentry{$label}{'plural'}; - } - else - { - &write_warnings("gls_get_plural: glossary entry '$label' has not been defined"); - } - - $plural; -} - -sub gls_set_plural{ - local($label, $plural) = @_; - - if (&gls_entry_defined($label)) - { - $glsentry{$label}{'plural'} = $plural; - } - else - { - &write_warnings("gls_set_plural: glossary entry '$label' has not been defined"); - } -} - -sub gls_get_firstplural{ - local($label) = @_; - local($firstplural) = ''; - - if (&gls_entry_defined($label)) - { - $firstplural = $glsentry{$label}{'firstplural'}; - } - else - { - &write_warnings("gls_get_firstplural: glossary entry '$label' has not been defined"); - } - - $firstplural; -} - -sub gls_set_firstplural{ - local($label, $firstplural) = @_; - - if (&gls_entry_defined($label)) - { - $glsentry{$label}{'firstplural'} = $firstplural; - } - else - { - &write_warnings("gls_set_firstplural: glossary entry '$label' has not been defined"); - } -} - -sub gls_get_first{ - local($label) = @_; - local($first) = ''; - - if (&gls_entry_defined($label)) - { - $first = $glsentry{$label}{'first'}; - } - else - { - &write_warnings("gls_get_first: glossary entry '$label' has not been defined"); - } - - $first; -} - -sub gls_set_first{ - local($label, $first) = @_; - - if (&gls_entry_defined($label)) - { - $glsentry{$label}{'first'} = $first; - } - else - { - &write_warnings("gls_set_first: glossary entry '$label' has not been defined"); - } -} - -sub gls_used{ - local($label) = @_; - local($flag) = 0; - - if (&gls_entry_defined($label)) - { - $flag = $glsentry{$label}{'flag'}; - } - else - { - &write_warnings("gls_used: glossary entry '$label' has not been defined"); - } - - $flag; -} - -sub gls_entry_defined{ - local($label) = @_; - - defined(%{$glsentry{$label}}); -} - -sub do_cmd_newglossaryentry{ - local($_) = @_; - local($label,$name,$description,$symbol,$sort,$text,$first, - $plural,$firstplural,$type,$keyval); - - $label = &missing_braces unless - s/$next_pair_pr_rx/$label=$2;''/eo; - - $keyval = &missing_braces unless - s/$next_pair_pr_rx/$keyval=$2;''/eo; - - ($name,$keyval) = &get_keyval('name', $keyval); - ($description,$keyval) = &get_keyval('description', $keyval); - ($symbol,$keyval) = &get_keyval('symbol', $keyval); - ($sort,$keyval) = &get_keyval('sort', $keyval); - ($text,$keyval) = &get_keyval('text', $keyval); - ($first,$keyval) = &get_keyval('first', $keyval); - ($firstplural,$keyval) = &get_keyval('firstplural', $keyval); - ($plural,$keyval) = &get_keyval('plural', $keyval); - ($type,$keyval) = &get_keyval('type', $keyval); - - if (defined($type)) - { - $type = &translate_commands($type); - } - else - { - $type = 'main'; - } - - &gls_entry_init($label, $type, $name, $description); - - &gls_set_symbol($label, defined($symbol)?$symbol:''); - - $sort = "$name $description" unless (defined($sort) and $sort); - - &gls_set_sort($label, $sort); - - $text = $name unless (defined($text) and $text); - - &gls_set_text($label, $text); - - $first = $text unless (defined($first) and $first); - - &gls_set_first($label, $first); - - $plural = "${text}s" unless (defined($plural) and $plural); - - &gls_set_plural($label, $plural); - - $firstplural = "${first}s" unless (defined($firstplural) and $firstplural); - - &gls_set_firstplural($label, $firstplural); - - push @{$gls_entries{$type}}, $label; - - $_; -} - -sub reset_entry{ - local($label) = @_; - - $glsentry{$label}{'flag'} = 0; -} - -sub unset_entry{ - local($label) = @_; - - $glsentry{$label}{'flag'} = 1; -} - -sub do_cmd_glsreset{ - local($_) = @_; - local($label); - - $label = &missing_braces unless - s/$next_pair_pr_rx/$label=$2;''/eo; - - &reset_entry($label); - - $_; -} - -sub do_cmd_glsunset{ - local($_) = @_; - local($label); - - $label = &missing_braces unless - s/$next_pair_pr_rx/$label=$2;''/eo; - - &unset_entry($label); - - $_; -} - -sub do_cmd_ifglsused{ - local($_) = @_; - local($label,$true,$false); - - $label = &missing_braces unless - s/$next_pair_pr_rx/$label=$2;''/eo; - - $true = &missing_braces unless - s/$next_pair_pr_rx/$true=$2;''/eo; - - $false = &missing_braces unless - s/$next_pair_pr_rx/$false=$2;''/eo; - - (&gls_used($label) ? $true : $false) . $_; -} - -sub do_cmd_ifglsentryexists{ - local($_) = @_; - local($label,$true,$false); - - $label = &missing_braces unless - s/$next_pair_pr_rx/$label=$2;''/eo; - - $true = &missing_braces unless - s/$next_pair_pr_rx/$true=$2;''/eo; - - $false = &missing_braces unless - s/$next_pair_pr_rx/$false=$2;''/eo; - - (&gls_entry_defined($label) ? $true : $false) . $_; -} - -sub gls_add_entry{ - local($type, $label, $format, $text) = @_; - - local($oldfmt) = $GLSCURRENTFORMAT; - - if (defined($format) and $format) - { - $GLSCURRENTFORMAT=$format; - } - - $id = ++$global{'max_id'}; - - local($str) = &make_real_glossary_entry($label,$text,$type); - $GLSCURRENTFORMAT = $oldfmt; - - $str; -} - -sub do_cmd_glsadd{ - local($_) = @_; - local($optarg,$pat,$label,$str,$id,$type,$format); - ($optarg,$pat) = &get_next_optional_argument; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - $type = &gls_get_type($label); - - if (defined $type) - { - ($format,$optarg) = &get_keyval('format', $optarg); - $format='' unless(defined($format)); - - &gls_add_entry($type,$label,$format,""); - } - else - { - &write_warnings("gls_add: glossary entry '$label' undefined"); - $str = ''; - } - - $str . $_; -} - -sub do_cmd_glsaddall{ - local($_) = @_; - local($optarg,$pat) = &get_next_optional_argument; - - local($format,$types); - - ($type,$optarg) = &get_keyval('types', $optarg); - - ($format,$optarg) = &get_keyval('format', $optarg); - $format='' unless(defined($format)); - - local(@types) = keys(%gls_mark); - - if (defined($types)) - { - @types = split /,/, $types; - } - - foreach $type (@types) - { - # strip leasing and trailing spaces - $type=~s/^\s*([^\s]+)\s*$/\1/; - - foreach $label (@{$gls_entries{$type}}) - { - &gls_add_entry($type,$label,$format,""); - } - } - - $_; -} - -sub do_cmd_glsresetall{ - local($_) = @_; - local($types,$pat) = &get_next_optional_argument; - - local(@types) = keys(%gls_mark); - - if (defined($types) and $types) - { - @types = split /,/, $types; - } - - foreach $type (@types) - { - # strip leasing and trailing spaces - $type=~s/^\s*([^\s]+)\s*$/\1/; - - foreach $label (@{$gls_entries{$type}}) - { - &reset_entry($label); - } - } - - $_; -} - -sub do_cmd_glsunsetall{ - local($_) = @_; - local($types,$pat) = &get_next_optional_argument; - - local(@types) = keys(%gls_mark); - - if (defined($types) and $types) - { - @types = split /,/, $types; - } - - foreach $type (@types) - { - # strip leasing and trailing spaces - $type=~s/^\s*([^\s]+)\s*$/\1/; - - foreach $label (@{$gls_entries{$type}}) - { - &reset_entry($label); - } - } - - $_; -} - -sub make_glslink{ - local($type,$label,$format,$text) = @_; - local($str) = ''; - - if (defined $type) - { - $str = &gls_add_entry($type,$label,$format,$text); - } - else - { - &write_warnings("glossary '$type' undefined"); - } - - $str; -} - -sub do_cmd_glslink{ - local($_) = @_; - local($optarg,$pat,$label,$text,$type,$format,$str); - - ($optarg,$pat) = &get_next_optional_argument; - - ($format,$optarg) = &get_keyval('format', $optarg); - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - $text = &missing_braces unless - (s/$next_pair_pr_rx/$text=$2;''/eo); - - # v1.01 removed following lines (\glslink doesn't have - # a final optional argument! - #local ($space) = ''; - #if (/^\s+[^\[]/ or /^\s*\[.*\]\s/) {$space = ' ';} - #($optarg,$pat) = &get_next_optional_argument; - - $type = &gls_get_type($label); - - #&make_glslink($type, $label, $format, $text).$space . $_; - &make_glslink($type, $label, $format, $text) . $_; -} - -sub do_cmd_glsentrydesc{ - local($_) = @_; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - &gls_get_description($label).$_; -} - -sub do_cmd_Glsentrydesc{ - local($_) = @_; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - ucfirst(&gls_get_description($label)).$_; -} - -sub do_cmd_glsentrytext{ - local($_) = @_; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - &gls_get_text($label).$_; -} - -sub do_cmd_Glsentrytext{ - local($_) = @_; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - ucfirst(&gls_get_text($label)).$_; -} - -sub do_cmd_glsentryname{ - local($_) = @_; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - &gls_get_name($label).$_; -} - -sub do_cmd_Glsentryname{ - local($_) = @_; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - ucfirst(&gls_get_name($label)).$_; -} - -sub do_cmd_glsentryfirst{ - local($_) = @_; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - &gls_get_first($label).$_; -} - -sub do_cmd_Glsentryfirst{ - local($_) = @_; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - ucfirst(&gls_get_first($label)).$_; -} - -sub do_cmd_glsentryplural{ - local($_) = @_; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - &gls_get_plural($label).$_; -} - -sub do_cmd_Glsentryplural{ - local($_) = @_; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - ucfirst(&gls_get_plural($label)).$_; -} - -sub do_cmd_glsentryfirstplural{ - local($_) = @_; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - local($text)=$glsentry{$label}{'firstplural'}; - - unless (defined($text)) - { - &write_warnings("glossary entry '$label' has not been defined"); - $text = ''; - } - - "$text$_"; - &gls_get_firstplural($label).$_; -} - -sub do_cmd_Glsentryfirstplural{ - local($_) = @_; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - ucfirst(&gls_get_firstplural($label)).$_; -} - -sub do_cmd_glsentrysymbol{ - local($_) = @_; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - &gls_get_symbol($label).$_; -} - -sub do_cmd_Glsentrysymbol{ - local($_) = @_; - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - ucfirst(&gls_get_symbol($label)).$_; -} - -sub do_cmd_gls{ - local($_) = @_; - local($optarg,$pat,$label,$text, $format, $insert); - - ($optarg,$pat) = &get_next_optional_argument; - - ($format,$optarg) = &get_keyval('format', $optarg); - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - local ($space) = ''; - if (/^\s+[^\[]/ or /^\s*\[.*\]\s/) {$space = ' ';} - - $insert = ''; - ($insert,$pat) = &get_next_optional_argument; - - local($display) = ''; - - local($type) = &gls_get_type($label); - - if (&gls_used($label)) - { - # entry has already been used - - $text = &gls_get_text($label); - $display = &gls_get_display($type); - } - else - { - # entry hasn't been used - - $text = &gls_get_first($label); - $display = &gls_get_displayfirst($type); - - &unset_entry($label); - } - - local($args) = ''; - - local($id) = ++$global{'max_id'}; - $args .= "$OP$id$CP$text$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$glsentry{$label}{description}$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$glsentry{$label}{symbol}$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$insert$OP$id$CP"; - - local($link_text) = &translate_commands("$display$args"); - - &make_glslink($type, $label, $format, $link_text) .$space . $_; -} - -sub do_cmd_glspl{ - local($_) = @_; - local($optarg,$pat,$label,$text, $format, $insert); - - ($optarg,$pat) = &get_next_optional_argument; - - ($format,$optarg) = &get_keyval('format', $optarg); - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - local ($space) = ''; - if (/^\s+[^\[]/ or /^\s*\[.*\]\s/) {$space = ' ';} - - $insert = ''; - ($insert,$pat) = &get_next_optional_argument; - - local($display) = ''; - - local($type) = $glsentry{$label}{'type'}; - - if (&gls_used($label)) - { - # entry has already been used - - $text = &gls_get_plural($label); - $display = &gls_get_display($type);; - } - else - { - # entry hasn't been used - - $text = &gls_get_firstplural($label); - $display = &gls_get_displayfirst($type); - - &unset_entry($label); - } - - local($args) = ''; - - local($id) = ++$global{'max_id'}; - $args .= "$OP$id$CP$text$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$glsentry{$label}{description}$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$glsentry{$label}{symbol}$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$insert$OP$id$CP"; - - local($link_text) = &translate_commands("$display$args"); - - &make_glslink($type, $label, $format, $link_text) . $space . $_; -} - -sub do_cmd_Gls{ - local($_) = @_; - local($optarg,$pat,$label,$text, $format, $insert); - - ($optarg,$pat) = &get_next_optional_argument; - - ($format,$optarg) = &get_keyval('format', $optarg); - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - local ($space) = ''; - if (/^\s+[^\[]/ or /^\s*\[.*\]\s/) {$space = ' ';} - - $insert = ''; - ($insert,$pat) = &get_next_optional_argument; - - local($display) = ''; - - local($type) = $glsentry{$label}{'type'}; - - if (&gls_used($label)) - { - # entry has already been used - - $text = &gls_get_text($label); - $display = &gls_get_display($type);; - } - else - { - # entry hasn't been used - - $text = &gls_get_first($label); - $display = &gls_get_displayfirst($type); - - &unset_entry($label); - } - - local($args) = ''; - - local($id) = ++$global{'max_id'}; - $args .= "$OP$id$CP$text$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$glsentry{$label}{description}$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$glsentry{$label}{symbol}$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$insert$OP$id$CP"; - - local($link_text) = &translate_commands("$display$args"); - - &make_glslink($type, $label, $format, ucfirst($link_text)). $space . $_; -} - -sub do_cmd_Glspl{ - local($_) = @_; - local($optarg,$pat,$label,$text, $format, $insert); - - ($optarg,$pat) = &get_next_optional_argument; - - ($format,$optarg) = &get_keyval('format', $optarg); - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - local ($space) = ''; - if (/^\s+[^\[]/ or /^\s*\[.*\]\s/) {$space = ' ';} - - $insert = ''; - ($insert,$pat) = &get_next_optional_argument; - - local($display) = ''; - - local($type) = $glsentry{$label}{'type'}; - - if (&gls_used($label)) - { - # entry has already been used - - $text = &gls_get_plural($label); - $display = &gls_get_display($type);; - } - else - { - # entry hasn't been used - - $text = &gls_get_firstplural($label); - $display = &gls_get_displayfirst($type); - - &unset_entry($label); - } - - local($args) = ''; - - local($id) = ++$global{'max_id'}; - $args .= "$OP$id$CP$text$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$glsentry{$label}{description}$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$glsentry{$label}{symbol}$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$insert$OP$id$CP"; - - local($link_text) = &translate_commands("$display$args"); - - &make_glslink($type, $label, $format, ucfirst($link_text)).$space . $_; -} - -sub do_cmd_GLS{ - local($_) = @_; - local($optarg,$pat,$label,$text, $format, $insert); - - ($optarg,$pat) = &get_next_optional_argument; - - ($format,$optarg) = &get_keyval('format', $optarg); - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - local ($space) = ''; - if (/^\s+[^\[]/ or /^\s*\[.*\]\s/) {$space = ' ';} - - $insert = ''; - ($insert,$pat) = &get_next_optional_argument; - - local($display) = ''; - - local($type) = $glsentry{$label}{'type'}; - - if (&gls_used($label)) - { - # entry has already been used - - $text = &gls_get_text($label); - $display = &gls_get_display($type);; - } - else - { - # entry hasn't been used - - $text = &gls_get_first($label); - $display = &gls_get_displayfirst($type); - - &unset_entry($label); - } - - local($args) = ''; - - local($id) = ++$global{'max_id'}; - $args .= "$OP$id$CP$text$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$glsentry{$label}{description}$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$glsentry{$label}{symbol}$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$insert$OP$id$CP"; - - local($link_text) = &translate_commands("$display$args"); - - &make_glslink($type, $label, $format, uc($link_text)).$space . $_; -} - -sub do_cmd_GLSpl{ - local($_) = @_; - local($optarg,$pat,$label,$text, $format, $insert); - - ($optarg,$pat) = &get_next_optional_argument; - - ($format,$optarg) = &get_keyval('format', $optarg); - - $label = &missing_braces unless - (s/$next_pair_pr_rx/$label=$2;''/eo); - - local ($space) = ''; - if (/^\s+[^\[]/ or /^\s*\[.*\]\s/) {$space = ' ';} - - $insert = ''; - ($insert,$pat) = &get_next_optional_argument; - - local($display) = ''; - - local($type) = $glsentry{$label}{'type'}; - - if (&gls_used($label)) - { - # entry has already been used - - $text = &gls_get_plural($label); - $display = &gls_get_display($type);; - } - else - { - # entry hasn't been used - - $text = &gls_get_firstplural($label); - $display = &gls_get_displayfirst($type); - - &unset_entry($label); - } - - local($args) = ''; - - local($id) = ++$global{'max_id'}; - $args .= "$OP$id$CP$text$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$glsentry{$label}{description}$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$glsentry{$label}{symbol}$OP$id$CP"; - - $id = ++$global{'max_id'}; - $args .= "$OP$id$CP$insert$OP$id$CP"; - - local($link_text) = &translate_commands("$display$args"); - - &make_glslink($type, $label, $format, uc($link_text)).$space . $_; -} - -sub do_cmd_glossarypreamble{ - local($_) = @_; - $_[0]; -} - -sub do_cmd_glossarypostamble{ - local($_) = @_; - $_[0]; -} - -sub do_cmd_glsnumformat{ - local($_) = @_; - - $_; -} - -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 -makeglossaries -_IGNORED_CMDS_ - -1; diff --git a/Master/texmf-dist/doc/latex/glossaries/doc/database1.tex b/Master/texmf-dist/doc/latex/glossaries/samples/database1.tex index 8a78ad6d785..ab557f81460 100644 --- a/Master/texmf-dist/doc/latex/glossaries/doc/database1.tex +++ b/Master/texmf-dist/doc/latex/glossaries/samples/database1.tex @@ -1,8 +1,8 @@ -% This is a sample database of glossary entries -% Only those entries used in the document with \glslink, \gls, -% \glspl, and uppercase variants will have entries in the -% glossary. Note that the type key is not used, as the -% glossary type can be specified in \loadglsentries + % This is a sample database of glossary entries + % Only those entries used in the document with \glslink, \gls, + % \glspl, and uppercase variants will have entries in the + % glossary. Note that the type key is not used, as the + % glossary type can be specified in \loadglsentries \newglossaryentry{array}{name=array, description={A list of values identified by a numeric value}} diff --git a/Master/texmf-dist/doc/latex/glossaries/doc/database2.tex b/Master/texmf-dist/doc/latex/glossaries/samples/database2.tex index 032b2d2b586..1fb3042e36b 100644 --- a/Master/texmf-dist/doc/latex/glossaries/doc/database2.tex +++ b/Master/texmf-dist/doc/latex/glossaries/samples/database2.tex @@ -1,10 +1,10 @@ -% This is a sample database of glossary entries -% Only those entries used in the document with \glslink, \gls, -% \glspl, and uppercase variants will have entries in the -% glossary. Note that the type key is not used, as the -% glossary type can be specified in \loadglsentries + % This is a sample database of glossary entries + % Only those entries used in the document with \glslink, \gls, + % \glspl, and uppercase variants will have entries in the + % glossary. Note that the type key is not used, as the + % glossary type can be specified in \loadglsentries -% Don't need to worry about makeindex special characters + % Don't need to worry about makeindex special characters \newglossaryentry{quote}{name={"}, description={the double quote symbol}} diff --git a/Master/texmf-dist/doc/latex/glossaries/samples/minimalgls.tex b/Master/texmf-dist/doc/latex/glossaries/samples/minimalgls.tex new file mode 100644 index 00000000000..b9d3cf6c7e6 --- /dev/null +++ b/Master/texmf-dist/doc/latex/glossaries/samples/minimalgls.tex @@ -0,0 +1,39 @@ + % This is a minimal file for testing and debugging + % the glossaries package. Change the class file as + % desired, and add the relevant package options to + % both the class file and the glossaries package. + % Change the sample glossary entry and acronym if + % required. + % + % Only add extra packages or commands if they + % contribute to whatever problem you are trying to + % test. + % + % Remember that the document will not be complete + % until you have successfully completed all of the + % following steps: + % 1. latex minimalgls + % 2. makeglossaries minimalgls (note no extension) + % 3. latex minimalgls + % A further run through LaTeX will be required to ensure that + % the table of contents is up to date if the toc option + % is used. +\documentclass{article} +\listfiles + + %\usepackage{glossaries} % acronym will go in main glossary +\usepackage[acronym]{glossaries} % make a separate list of acronyms + +\makeglossaries + +\newglossaryentry{sample}{name={sample}, +description={a sample entry}} + +\newacronym{aca}{aca}{a contrived acronym} + +\begin{document} + +A \gls{sample} entry and \gls{aca}. + +\printglossaries +\end{document} diff --git a/Master/texmf-dist/doc/latex/glossaries/doc/sample.tex b/Master/texmf-dist/doc/latex/glossaries/samples/sample.tex index 1555f0c31d3..f91ab534f8e 100644 --- a/Master/texmf-dist/doc/latex/glossaries/doc/sample.tex +++ b/Master/texmf-dist/doc/latex/glossaries/samples/sample.tex @@ -15,14 +15,14 @@ sort=Perl, % need a sort key because name contains a command description=A scripting language} \newglossaryentry{pagelist}{name=page list, -% description value has to be enclosed in braces -% because it contains commas + % 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)}} \newglossaryentry{mtrx}{name=matrix, description={rectangular array of quantities}, -% plural is not simply obtained by appending an s, so specify + % plural is not simply obtained by appending an s, so specify plural=matrices} \newcommand{\pardescription}{distinct section of piece of diff --git a/Master/texmf-dist/doc/latex/glossaries/doc/sample4col.tex b/Master/texmf-dist/doc/latex/glossaries/samples/sample4col.tex index 67b78bc4575..67b78bc4575 100644 --- a/Master/texmf-dist/doc/latex/glossaries/doc/sample4col.tex +++ b/Master/texmf-dist/doc/latex/glossaries/samples/sample4col.tex diff --git a/Master/texmf-dist/doc/latex/glossaries/doc/sampleAcr.tex b/Master/texmf-dist/doc/latex/glossaries/samples/sampleAcr.tex index 2b26e982be0..2b26e982be0 100644 --- a/Master/texmf-dist/doc/latex/glossaries/doc/sampleAcr.tex +++ b/Master/texmf-dist/doc/latex/glossaries/samples/sampleAcr.tex diff --git a/Master/texmf-dist/doc/latex/glossaries/doc/sampleAcrDesc.tex b/Master/texmf-dist/doc/latex/glossaries/samples/sampleAcrDesc.tex index 4a54c674943..8014d656b42 100644 --- a/Master/texmf-dist/doc/latex/glossaries/doc/sampleAcrDesc.tex +++ b/Master/texmf-dist/doc/latex/glossaries/samples/sampleAcrDesc.tex @@ -10,17 +10,17 @@ \makeglossaries \newglossaryentry{svm}{ -% how the entry name should appear in the glossary + % how the entry name should appear in the glossary name={Support vector machine (SVM)}, -% how the description should appear in the glossary -% since I have used sanitize={description=false} -% I have to protect fragile commands + % how the description should appear in the glossary + % since I have used sanitize={description=false} + % I have to protect fragile commands description={Statistical pattern recognition technique~\protect\cite{svm}}, -% how the entry should appear in the document text + % how the entry should appear in the document text text={svm}, -% how the entry should appear the first time it is -% used in the document text + % how the entry should appear the first time it is + % used in the document text first={support vector machine (svm)}} \newglossaryentry{ksvm}{ @@ -36,7 +36,7 @@ first={kernel support vector machine}} \chapter{Support Vector Machines} The \gls{svm} is used widely in the area of pattern recognition. -% plural form with initial letter in uppercase: + % plural form with initial letter in uppercase: \Glspl{svm} are \ldots This is the text produced without a link: \glsentrytext{svm}. diff --git a/Master/texmf-dist/doc/latex/glossaries/doc/sampleDB.tex b/Master/texmf-dist/doc/latex/glossaries/samples/sampleDB.tex index 7d58e32e2af..7d58e32e2af 100644 --- a/Master/texmf-dist/doc/latex/glossaries/doc/sampleDB.tex +++ b/Master/texmf-dist/doc/latex/glossaries/samples/sampleDB.tex diff --git a/Master/texmf-dist/doc/latex/glossaries/doc/sampleEq.tex b/Master/texmf-dist/doc/latex/glossaries/samples/sampleEq.tex index 4fb888c6cb9..39829705e77 100644 --- a/Master/texmf-dist/doc/latex/glossaries/doc/sampleEq.tex +++ b/Master/texmf-dist/doc/latex/glossaries/samples/sampleEq.tex @@ -9,13 +9,13 @@ \makeglossaries -% Change the glossary headings + % Change the glossary headings \renewcommand{\entryname}{Notation} \renewcommand{\descriptionname}{Function Name} \renewcommand{\pagelistname}{Number of Formula} -% define glossary entries + % define glossary entries \newglossaryentry{Gamma}{name=\ensuremath{\Gamma(z)}, description=Gamma function, @@ -78,7 +78,7 @@ description=Euler's constant,sort=C} description=Catalan's constant,sort=G} \begin{document} -\title{A Sample Document Using glossary.sty} +\title{A Sample Document Using glossaries.sty} \author{Nicola Talbot} \maketitle diff --git a/Master/texmf-dist/doc/latex/glossaries/doc/sampleEqPg.tex b/Master/texmf-dist/doc/latex/glossaries/samples/sampleEqPg.tex index 19531e3897e..218b1a3fed4 100644 --- a/Master/texmf-dist/doc/latex/glossaries/doc/sampleEqPg.tex +++ b/Master/texmf-dist/doc/latex/glossaries/samples/sampleEqPg.tex @@ -13,27 +13,27 @@ \renewcommand{\glossarypreamble}{Numbers in italic indicate the equation number, numbers in bold indicate page numbers where the main definition occurs.\par} -% set the glossary number style to italic -% hyperit is used instead of textit because -% the hyperref package is being used. + % set the glossary number style to italic + % hyperit is used instead of textit because + % the hyperref package is being used. \renewcommand{\glsnumberformat}[1]{\hyperit{#1}} -% 1st column heading + % 1st column heading \renewcommand{\entryname}{Notation} -% 2nd column heading + % 2nd column heading \renewcommand{\descriptionname}{Function Name} -% 3rd column heading + % 3rd column heading \renewcommand{\pagelistname}{} -% Redefine header row so that it -% adds a blank row after the title row + % Redefine header row so that it + % adds a blank row after the title row \renewcommand{\glossaryheader}{\bfseries\entryname & \bfseries\descriptionname&\bfseries\pagelistname\\ & & \\\endhead} -% Define glossary entries + % Define glossary entries \newglossaryentry{Gamma}{name=\ensuremath{\Gamma(z)}, description=Gamma function,sort=Gamma} diff --git a/Master/texmf-dist/doc/latex/glossaries/doc/sampleNtn.tex b/Master/texmf-dist/doc/latex/glossaries/samples/sampleNtn.tex index 04af87e3562..b33269174f6 100644 --- a/Master/texmf-dist/doc/latex/glossaries/doc/sampleNtn.tex +++ b/Master/texmf-dist/doc/latex/glossaries/samples/sampleNtn.tex @@ -4,12 +4,12 @@ \usepackage{html} \usepackage[toc]{glossaries} -% Define a new glossary type called notation + % Define a new glossary type called notation \newglossary[nlg]{notation}{not}{ntn}{Notation} \makeglossaries -% Notation definitions + % Notation definitions \newglossaryentry{not:set}{type=notation, % glossary type name={$\mathcal{S}$}, @@ -31,7 +31,7 @@ name={$!$}, description={factorial}, sort=factorial} -% Main glossary definitions + % Main glossary definitions \newglossaryentry{gls:set}{name=set, description={A collection of distinct objects}} @@ -40,13 +40,13 @@ description={A collection of distinct objects}} description={The number of elements in the specified set}} \begin{document} -\title{Sample Document using glossary Package} +\title{Sample Document using the glossaries Package} \author{Nicola Talbot} \pagenumbering{alph} \maketitle \begin{abstract} -%stop hyperref complaining about duplicate page identifiers: + %stop hyperref complaining about duplicate page identifiers: \pagenumbering{Alph} This is a sample document illustrating the use of the \textsf{glossaries} package. In this example, a new glossary type @@ -60,6 +60,9 @@ doesn't have associated numbers. \tableofcontents \printglossaries + %\printglossary + %\setglossarysection{section} + %\printglossary[type=notation] \chapter{Introduction} \pagenumbering{arabic} diff --git a/Master/texmf-dist/doc/latex/glossaries/doc/sampleSec.tex b/Master/texmf-dist/doc/latex/glossaries/samples/sampleSec.tex index ccefe8c19e1..ccefe8c19e1 100644 --- a/Master/texmf-dist/doc/latex/glossaries/doc/sampleSec.tex +++ b/Master/texmf-dist/doc/latex/glossaries/samples/sampleSec.tex diff --git a/Master/texmf-dist/doc/latex/glossaries/scripts/makeglossaries b/Master/texmf-dist/doc/latex/glossaries/scripts/makeglossaries deleted file mode 100755 index aaa0c1b36d0..00000000000 --- a/Master/texmf-dist/doc/latex/glossaries/scripts/makeglossaries +++ /dev/null @@ -1,229 +0,0 @@ -#!/usr/bin/perl - -# File : makeglossaries -# Author : Nicola Talbot -# Version : 1.0 (2007/05/10) -# Description: simple Perl script that calls makeindex. -# Intended for use with "glossaries.sty" (saves having to remember -# all the various switches) - -# This file is distributed as part of the glossaries LaTeX package. -# Copyright 2007 Nicola L.C. Talbot -# This work may be distributed and/or modified under the -# conditions of the LaTeX Project Public License, either version 1.3 -# of this license of (at your option) any later version. -# The latest version of this license is in -# http://www.latex-project.org/lppl.txt -# and version 1.3 or later is part of all distributions of LaTeX -# version 2005/12/01 or later. -# -# This work has the LPPL maintenance status `maintained'. -# -# The Current Maintainer of this work is Nicola Talbot. - -# This work consists of the files glossaries.dtx and glossaries.ins -# and the derived files glossaries.sty, glossary-hypernav.sty, -# glossary-list.sty, glossary-long.sty, glossary-super.sty, -# glossaries.perl. Also makeglossaries and makeglossaries. - -use Getopt::Std; - -if ($#ARGV < 0) -{ - die "Syntax : $0 [-ilqrcg] [-s sty] [-o gls] [-t log] [-p num] <filename>\n"; -} - -getopt('sotp'); -getopts('ilqrcg'); - -# define known extensions - - %exttype = ( - main => {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/\\\@newglossary\s*\{(.*)\}{(.*)}{(.*)}{(.*)}/ - and ($1 ne 'main')) - { - $exttype{$1}{'log'} = $2; - $exttype{$1}{'out'} = $3; - $exttype{$1}{'in'} = $4; - - if (!$opt_q) - { - print "added glossary type '$1' ($2,$3,$4)\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{'main'}}; #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); -} -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); - } - elsif (!$opt_q) - { - print "no read access for '$inputfile'\n"; - } - } -} - -sub makeindex{ - local($in,$out,$trans,$ist,$rest,$quiet) = @_; - local($name,$cmdstr,$buffer,$n,$i,$j); - local(@stuff,@item); - - $cmdstr = "$rest -s $ist -t $trans -o $out $in"; - - unless ($quiet) - { - print "makeindex $cmdstr\n"; - } - - `makeindex $cmdstr`; -} - -1; diff --git a/Master/texmf-dist/doc/latex/glossaries/scripts/makeglossaries.bat b/Master/texmf-dist/doc/latex/glossaries/scripts/makeglossaries.bat deleted file mode 100755 index 64a6a20750c..00000000000 --- a/Master/texmf-dist/doc/latex/glossaries/scripts/makeglossaries.bat +++ /dev/null @@ -1,3 +0,0 @@ -@rem = '-*- Perl -*-
-@echo off
-perl -S "%~dp0makeglossaries" %*
|