%% 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 }