%% gatech-thesis-gloss.sty - support code for creating glossaries
%% depends on gloss.sty, so it is not included by default in the
%% main gatech-thesis.cls (this cuts down on ``extra'' dependencies
%%
%% To use this package, all you need do is include
%% \usepackage{gatech-thesis-gloss}
%% \glossfiles{}
%% in your preamble, and the glossary will be automatically generated
%% and included in the frontmatter. Of course, you need actual
%% *entries* in the glossary file -- which must end in .bib -- and you
%% need actual citations to those entries within your bodytext, like this:
%% \gloss{key}.
%% Note that \gloss{} typesets the from the entry of
%% the glossfile within the text, so there''s no need to do this:
%% (BAD) word\gloss{keyforword}
%% Read the gloss.sty documentation for more info, but basically
%% gatech-thesis-gloss.sty makes it simple:
%% 1. insert the two commands above into your preamble
%% 2. create a glossfile with your glossary definitions
%% 3. sprinkle \gloss{} citations in your text
%% 4. run ``bibtex'' on the .gls.aux file created
%% after the first ``latex'' run. (But don''t include the
%% .aux extension. So say ``bibtex .gls'' You
%% can do this at the same time you run ``bibtex'' for your
%% references.
%% 5. run ``latex'' twice more
%%
\NeedsTeXFormat{LaTeX2e}[1995/06/01] \ProvidesPackage{gatech-thesis-gloss}
[2002/08/08 Glossary support for gatech-thesis.cls]
\@ifclassloaded{gatech-thesis}{}{
PackageError{This style can only be used with the gatech-thesis class}
}
\RequirePackage[refpages]{gloss}
\newif\ifglossarypage
\glossarypagetrue% why use this package if you're not going to USE it?
\makegloss
\newcommand{\glossfiles}[1]%
{\ifx\empty#1\empty\else\gdef\@glossfiles{#1}\fi}
\def\@glossfiles{}
\newcommand{\gtglossname}{}
\newcommand{\glscontentlinestring}{}
\newcommand{\glspdfbookmarkstring}{}
\newcommand{\setglossstring}[1]{%
\renewcommand{\gtglossname}{#1}
\renewcommand{\glossname}{\Makeuppercase{#1}}
\renewcommand{\glscontentlinestring}{%
\texorpdfstring{\Makeuppercase{#1}}{#1}
}
\renewcommand{\glspdfbookmarkstring}{#1}
}
% \setglossstring{List of Nomenclature}% ???
\setglossstring{Glossary}
\renewcommand{\glossheading}[1]{} % don't print subsection headings ("A", "B", ...)
\renewenvironment{glosslist}
{\begin{singlespaced}\begin{list}{\relax}{%
\def\makelabel##1{##1\hfil}%
\setlength{\labelsep}{1em}%
\setlength{\labelwidth}{\glosshang}%
\addtolength{\labelwidth}{-\labelsep}%
\setlength{\itemindent}{0em}%
\setlength{\leftmargin}{\glosshang}}}
{\end{list}\end{singlespaced}}
\renewcommand\gls@section{%
\if@twocolumn
\@restonecoltrue\onecolumn
\else
\@restonecolfalse
\fi
\chapter*{\glossname}%
\@mkboth{\scshape\MakeUppercase\glossname}%
{\scshape\MakeUppercase\glossname}%
}
\renewenvironment{thegloss}
{\gls@section
\def\+##1+{}%
\@beginparpenalty\@M}%
{\if@restonecol\twocolumn\fi%
\stopglosslist}
\renewcommand{\do@glossarypage}{%
\ifglossarypage
\if@openright\cleardoublepage\else\clearpage\fi
% must clear page here, so that phantomsection\addcontentsline is on the correct page
\settoheight{\gt@tmpa}{A}
\set@gttocskip{\gt@tmpa}
{\newlinestretch{1}
\addvspace{\gt@tocentryskip@value}
\phantomsection%
\addcontentsline{toc}{chapter}{\glscontentlinestring}
\printgloss{\@glossfiles}
}%
\newpage
\fi
}