%% gatech-thesis-index.sty - support code for creating an index %% depends on index.sty, so it is not included by default in the %% main gatech-thesis.cls (this cuts down on ``extra'' dependencies. %% It also depends on the multicol package. %% %% Note that index.sty is included in the ``camel'' package if you %% are using MikTeX. %% %% To use this package, all you need do is include %% \usepackage{gatech-thesis-index} %% in your preamble, and %% \gtindex %% just after your vita section, but within the postliminary environment %% of your bodytext. The, the index will be automatically %% and included in the location specified, and added to the table of %% contents. Of course, you need actual index references within your %% main text like this: %% foo\index{foo} %% Read the index.sty documentation for more info, but basically %% gatech-thesis-gloss.sty makes it simple: %% 1. insert the \usepackage and \gtindex commands into your document %% 2. sprinkle \index{} citations in your text %% 3. run ``makeindex'' on the .idx file created %% after the first ``latex'' run, like this: %% makeindex -s gatech-thesis-index.ist .idx %% This will create .ind (the gatech-thesis-index.ist %% file is a format specification for the index). If you want %% to customize the index format, copy gatech-thesis-index.ist to %% ``myformat.ist'' and change the copy. Use ``-s myformat.ist'' %% instead of gatech-thesis-index.ist. %% You can run the makeindex command at the same time you run ` %% `bibtex'' for your references and/or glossary. %% 4. run ``latex'' twice more (the same ``twice more'' needed for %% bibtex and gatech-thesis-gloss.sty) %% \NeedsTeXFormat{LaTeX2e}[1995/06/01] \ProvidesPackage{gatech-thesis-index} [2002/08/08 Index support for gatech-thesis.cls] \@ifclassloaded{gatech-thesis}{}{ PackageError{This style can only be used with the gatech-thesis class} } \RequirePackage{index} \RequirePackage{multicol} \newif\if@proofmode \@proofmodefalse \DeclareOption{proofmode}{% \if@draft % This is an internal gatech-thesis variable! \@proofmodetrue % this is an internal index.sty variable \else \PackageWarn{option `proofmode' can't be used in 'final' mode.} \@proofmodefalse \fi } \DeclareOption{showidx}{% \if@draft % This is an internal gatech-thesis variable! \@proofmodetrue % this is an internal index.sty variable \else \PackageWarn{option `showidx' can't be used in 'final' mode.} \@proofmodefalse \fi } \ProcessOptions \newif\ifindexpage \indexpagetrue% why use this package if you're not going to USE it? \if@proofmode \proofmodetrue% pass option to index package \else \proofmodefalse% ditto \fi \newcommand{\gtindexname}{} \newcommand{\idxcontentlinestring}{} \newcommand{\idxpdfbookmarkstring}{} \newcommand{\setindexstring}[1]{% \renewcommand{\gtindexname}{#1} \renewcommand{\indexname}{\Makeuppercase{#1}} \renewcommand{\idxcontentlinestring}{% \texorpdfstring{\Makeuppercase{#1}}{#1} } \renewcommand{\idxpdfbookmarkstring}{#1} } \setindexstring{Index} % if you want to change the name of the index, do it in the preamble % once the document begins, it''s too late. \AtBeginDocument{% \newindex{default}{idx}{ind}{Index} } \renewenvironment{theindex}{% \edef\indexname{\the\@nameuse{idxtitle@\@indextype}}% \if@twocolumn \@restonecolfalse \else \@restonecoltrue \fi \chapter*{\MakeUppercase{\gtindexname}} \@mkboth{\scshape\MakeUppercase\indexname}% {\scshape\MakeUppercase\indexname}% \let\item\@idxitem \columnseprule \z@ \columnsep 35\p@ \begin{multicols}{2}[% \ifx\index@prologue\@empty\else \index@prologue \bigskip \fi]% \parindent\z@ \parskip\z@ \@plus .3\p@\relax }{\end{multicols}% \if@restonecol \onecolumn \else \clearpage \fi } \renewcommand{\do@indexpage}{% \ifindexpage \if@openright\cleardoublepage\else\clearpage\fi % must clear page here, so that phantomsection\addcontentsline is on the correct page \phantomsection% \addcontentsline{toc}{chapter}{\idxcontentlinestring} \settoheight{\gt@tmpa}{A} \set@gttocskip{\gt@tmpa} {\newlinestretch{1} \printindex }% \newpage \fi } \newcommand{\gtindex}{\do@indexpage} \newcommand{\bs}{\symbol{'134}}% print backslash \newcommand{\gtCom}[1]{\texttt{\bs#1}\index{#1@\texttt{\bs#1}}} \newcommand{\gtProg}[1]{\texttt{#1}\index{#1@\texttt{#1} program}}