%% gatech-thesis-losa.sty - support code for creating a 'List of %% Symbols or Abbreviations" %% %% 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-losa} %% \losafiles{} %% in your preamble, and the LOSA 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: %% \losa{key}. %% Note that \losa{} typesets the from the entry of %% the losafile within the text, so there''s no need to do this: %% (BAD) word\losa{key-for-word} %% Again, you should read the gloss.sty documentation for more info, but %% basically gatech-thesis-losa.sty makes it simple: %% 1. insert the two commands above into your preamble %% 2. create a database with your glossary definitions %% 3. sprinkle \losa{} citations in your text %% 4. run ``bibtex'' on the .losa.aux file created %% after the first ``latex'' run. (But don''t include the %% .aux extension. So say ``bibtex .losa'' 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-losa} [2002/08/08 List of Symbols support for gatech-thesis.cls] \@ifclassloaded{gatech-thesis}{}{ PackageError{This style can only be used with the gatech-thesis class} } \RequirePackage[refpages]{gloss} \newif\iflosapage \losapagetrue % why use this package if you're not going to USE it? \newcommand{\losafiles}[1]% {\ifx\empty#1\empty\else\gdef\@losafiles{#1}\fi} \def\@losafiles{} \newcommand{\losaname}{} \newcommand{\gtlosaname}{} \newcommand{\losacontentlinestring}{} \newcommand{\losapdfbookmarkstring}{} \newcommand{\setlosastring}[1]{% \renewcommand{\gtlosaname}{#1} \renewcommand{\losaname}{\Makeuppercase{#1}} \renewcommand{\losacontentlinestring}{% \texorpdfstring{\Makeuppercase{#1}}{#1} } \renewcommand{\losapdfbookmarkstring}{#1} } \setlosastring{List of Symbols or Abbreviations} \makegloss \newgloss{losa}{.losa}{\losaname}{gatech-thesis-losa} \newlength{\losahang} \setlength{\losahang}{2cm} \newcommand\setlosagroup[1]{\@namedef{gls@group@#1}} \newcommand{\losaheading}[1]{} % don't print subsection headings ("A", "B", ...) \newcommand{\losagroup}[1]{% \expandafter\losaheading\csname gls@group@#1\endcsname} % make the '\losa[otheroptions]{}' command a synonym for % '\gloss[losa,otheroptions]{}' \newcommand\losa{\protect\losa@gloss@i} \def\losa@gloss@i{% \@bsphack \begingroup \catcode`\ =9 \@ifnextchar[{\losa@gloss@iia}{\losa@gloss@iib[]}} \def\losa@gloss@iia[#1]{% \endgroup \gls@gloss@iii{losa,#1}} \def\losa@gloss@iib[#1]{% #1 is empty \endgroup \gls@gloss@iii{losa}} % and alternate forms \newcommand\Losa[1]{\losa[Word]{#1}} \newcommand\onlylosa[1]{\losa[nocite]{#1}} \newenvironment{losalist} {\begin{singlespaced}\begin{list}{\relax}{% \def\makelabel##1{##1\hfil}% \setlength{\labelsep}{1em}% \setlength{\labelwidth}{\losahang}% \addtolength{\labelwidth}{-\labelsep}% \setlength{\itemindent}{0em}% \setlength{\leftmargin}{\losahang}}} {\end{list}\end{singlespaced}} \newenvironment{losaitem}[4]% {\ifgls@list \expandafter\let\expandafter\gls@thispage % relax if undefined \csname glsp@\gls@name::#1\endcsname \item[% \gls@raisedlink{\hyper@anchorstart{\gls@name::#1}\hyper@anchorend}% \gls@label{#2}{#3}{#4}]% \begingroup \let\protect\noexpand \immediate\write\@auxout{% \string\gls@cite{\gls@name::#1}{#2}{#3}{#4}}% \endgroup \else \xdef\gls@a{\noexpand\begin{\@currenvir}}% \endgroup \begin{losalist}% \gls@listtrue \def\stopglosslist{\end{losalist}}% \gls@a{#1}{#2}{#3}{#4}% \fi \ignorespaces} {.\@@par} \expandafter\let\csname losaitem*\endcsname\losaitem \expandafter\let\csname endlosaitem*\endcsname\@@par \newcommand\losa@section{% \if@twocolumn \@restonecoltrue\onecolumn \else \@restonecolfalse \fi \chapter*{\losaname}% \@mkboth{\scshape\MakeUppercase\losaname}% {\scshape\MakeUppercase\losaname}% } \newenvironment{thelosa} {\losa@section \def\+##1+{}% \@beginparpenalty\@M}% {\if@restonecol\twocolumn\fi% \stopglosslist} \renewcommand{\do@losapage}{% \iflosapage \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}{\losacontentlinestring} \printgloss[losa]{\@losafiles} }% \newpage \fi }