%% 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 <rootfile>.idx file created
%% after the first ``latex'' run, like this:
%% makeindex -s gatech-thesis-index.ist <rootfile>.idx
%% This will create <rootfile>.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{\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}
}
\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
}