summaryrefslogtreecommitdiff
path: root/obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-losa.sty
diff options
context:
space:
mode:
Diffstat (limited to 'obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-losa.sty')
-rw-r--r--obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-losa.sty156
1 files changed, 156 insertions, 0 deletions
diff --git a/obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-losa.sty b/obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-losa.sty
new file mode 100644
index 0000000000..7b6cc1626f
--- /dev/null
+++ b/obsolete/macros/latex/contrib/gatech-thesis/gatech-thesis-losa.sty
@@ -0,0 +1,156 @@
+%% 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{<database file, sans .bib suffix>}
+%% 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{<key>} typesets the <word> from the <key> 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 <rootfile>.losa.aux file created
+%% after the first ``latex'' run. (But don''t include the
+%% .aux extension. So say ``bibtex <rootfile>.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
+}