You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
435 lines
12 KiB
435 lines
12 KiB
%%
|
|
%% This is file `index.sty',
|
|
%% generated with the docstrip utility.
|
|
%%
|
|
%% The original source files were:
|
|
%%
|
|
%% index.dtx (with options: `style')
|
|
%%
|
|
%% IMPORTANT NOTICE:
|
|
%%
|
|
%% For the copyright see the source file.
|
|
%%
|
|
%% Any modified versions of this file must be renamed
|
|
%% with new filenames distinct from index.sty.
|
|
%%
|
|
%% For distribution of the original source see the terms
|
|
%% for copying and modification in the file index.dtx.
|
|
%%
|
|
%% This generated file may be distributed as long as the
|
|
%% original source files, as listed above, are part of the
|
|
%% same distribution. (The sources need not necessarily be
|
|
%% in the same archive or directory.)
|
|
%% \CheckSum{755}
|
|
%% \CharacterTable
|
|
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
|
|
%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
|
|
%% Digits \0\1\2\3\4\5\6\7\8\9
|
|
%% Exclamation \! Double quote \" Hash (number) \#
|
|
%% Dollar \$ Percent \% Ampersand \&
|
|
%% Acute accent \' Left paren \( Right paren \)
|
|
%% Asterisk \* Plus \+ Comma \,
|
|
%% Minus \- Point \. Solidus \/
|
|
%% Colon \: Semicolon \; Less than \<
|
|
%% Equals \= Greater than \> Question mark \?
|
|
%% Commercial at \@ Left bracket \[ Backslash \\
|
|
%% Right bracket \] Circumflex \^ Underscore \_
|
|
%% Grave accent \` Left brace \{ Vertical bar \|
|
|
%% Right brace \} Tilde \~}
|
|
\NeedsTeXFormat{LaTeX2e}[1995/06/01]
|
|
|
|
\ProvidesPackage{index}[2004/01/20 v4.2beta Improved index support (dmj)]
|
|
\def\disableindex#1{%
|
|
\@for\@tempa:=#1\do{%
|
|
\@namedef{disable@\@tempa}{}%
|
|
\@ifundefined{tf@\@tempa}{}{%
|
|
\PackageWarningNoLine{index}{It's too late to disable
|
|
the `\@tempa' index;\MessageBreak
|
|
\jobname.\@tempa\space has already
|
|
been opened for output. You \MessageBreak
|
|
should put the \string\disableindex\space command
|
|
before\MessageBreak
|
|
the declaration of the `\@tempa' index}%
|
|
}%
|
|
}%
|
|
}
|
|
\newif\if@newindex
|
|
|
|
\def\newindex{%
|
|
\@tempswafalse
|
|
\@ifnextchar[{\@tempswatrue\x@newindex}{\x@newindex[thepage]}%
|
|
}
|
|
|
|
\def\x@newindex[#1]{%
|
|
\@ifstar {\@tempswafalse\y@newindex{#1}}
|
|
{\y@newindex{#1}}%
|
|
}
|
|
|
|
\def\y@newindex#1#2{%
|
|
\@ifundefined{idx@#2}%
|
|
{\@newindextrue\def@index{#1}{#2}}%
|
|
{%
|
|
\@latexerr{Index type `\string#2' already defined}\@ehc
|
|
\expandafter\@gobble\@gobbletwo
|
|
}%
|
|
}
|
|
|
|
\def\renewindex{%
|
|
\@tempswafalse
|
|
\@ifnextchar[{\@tempswatrue\x@renewindex}{\x@renewindex[thepage]}%
|
|
}
|
|
|
|
\def\x@renewindex[#1]{%
|
|
\@ifstar {\@tempswafalse\y@renewindex{#1}}
|
|
{\y@renewindex{#1}}%
|
|
}
|
|
|
|
\def\y@renewindex#1#2{%
|
|
\@ifundefined{idx@#2}%
|
|
{%
|
|
\@newindextrue
|
|
\@latexerr{Index type `\string#2' not defined}\@ehc
|
|
}%
|
|
{\@newindexfalse}%
|
|
\def@index{#1}{#2}%
|
|
}
|
|
\@onlypreamble\newindex
|
|
\@onlypreamble\renewindex
|
|
\@onlypreamble\disableindex
|
|
\def\def@index#1#2#3#4{%
|
|
\@namedef{idx@#2}{#3:#4:#1}%
|
|
\expandafter\let\csname if@immediate@#2\endcsname\if@tempswa
|
|
\if@filesw
|
|
\if@newindex
|
|
\expandafter\newtoks\csname idxtitle@#2\endcsname
|
|
\fi
|
|
\@ifundefined{disable@#2}{%
|
|
\if@newindex
|
|
\expandafter\newwrite\csname tf@#2\endcsname
|
|
\else
|
|
\immediate\closeout\@nameuse{tf@#2}%
|
|
\fi
|
|
\immediate\openout\@nameuse{tf@#2}\jobname.#3 %
|
|
\PackageInfo{index}{Writing index file \jobname.#3}%
|
|
}
|
|
{\PackageInfo{index}{Index `#2' disabled -- not opening
|
|
\jobname.#3}}%
|
|
\fi
|
|
\expandafter\csname idxtitle@#2\endcsname
|
|
}
|
|
\def\@second#1:#2:#3\@nil{#2}
|
|
|
|
\def\@third#1:#2:#3\@nil{#3}
|
|
\def\@nearverbatim{\expandafter\strip@prefix\meaning}
|
|
\edef\makeindex{%
|
|
\noexpand\newindex{default}{idx}{ind}{\indexname}%
|
|
}
|
|
\newif\if@silentindex\@silentindextrue
|
|
|
|
\newif\if@addtoindex\@addtoindextrue
|
|
|
|
\newif\ifproofmode\proofmodefalse
|
|
\def\index{\protect\p@index}
|
|
|
|
\def\p@index{%
|
|
\if@silentindex\@bsphack\fi
|
|
\@ifstar{\@silentindexfalse\@xindex}{\@silentindextrue\@xindex}%
|
|
}
|
|
|
|
\def\@xindex{\@ifnextchar[{\@index}{\@index[default]}}
|
|
\def\@index[#1]{%
|
|
\ifx\index\@gobble
|
|
\@addtoindexfalse
|
|
\fi
|
|
\def\@tempf{%
|
|
\begingroup
|
|
\@sanitize
|
|
\@@index{#1}%
|
|
}%
|
|
\if@addtoindex
|
|
\@ifundefined{idx@#1}%
|
|
{%
|
|
\def\@tempf{%
|
|
\@latexerr{Index type `\string#1' undefined}%
|
|
\@ehc
|
|
\@silentindextrue
|
|
\@gobble
|
|
}%
|
|
}%
|
|
{}%
|
|
\fi
|
|
\@tempf
|
|
}
|
|
|
|
\def\@@index#1#2{%
|
|
\endgroup
|
|
\if@addtoindex
|
|
\if@filesw\@wrindex{#1}{#2}\fi
|
|
\ifproofmode\@showidx{#2}\fi
|
|
\fi
|
|
\if@silentindex
|
|
\expandafter\@esphack
|
|
\else
|
|
\@silentindextrue#2%
|
|
\fi
|
|
}
|
|
|
|
\def\@wrindex#1#2{%
|
|
\begingroup
|
|
\def\@tempa{#2}%
|
|
\edef\@tempb{\@nameuse{idx@#1}}%
|
|
\edef\@tempb{\expandafter\@third\@tempb\@nil}%
|
|
\csname if@immediate@#1\endcsname \else
|
|
\expandafter\let\csname\@tempb\endcsname\relax
|
|
\fi
|
|
\edef\@tempa{%
|
|
\write\@auxout{%
|
|
\string\@writefile{#1}{%
|
|
\string\indexentry{\@nearverbatim\@tempa}%
|
|
{\@nameuse{\@tempb}}%
|
|
}%
|
|
}%
|
|
}%
|
|
\expandafter\endgroup\@tempa
|
|
\if@nobreak\ifvmode\nobreak\fi\fi
|
|
}
|
|
\providecommand{\seename}{see}
|
|
|
|
\providecommand*{\see}[2]{\emph{\seename} #1}
|
|
|
|
\@ifclassloaded{article}{%
|
|
|
|
\renewenvironment{theindex}{%
|
|
\edef\indexname{\the\@nameuse{idxtitle@\@indextype}}%
|
|
\if@twocolumn
|
|
\@restonecolfalse
|
|
\else
|
|
\@restonecoltrue
|
|
\fi
|
|
\columnseprule \z@
|
|
\columnsep 35\p@
|
|
\twocolumn[%
|
|
\section*{\indexname}%
|
|
\ifx\index@prologue\@empty\else
|
|
\index@prologue
|
|
\bigskip
|
|
\fi
|
|
]%
|
|
\@mkboth{\MakeUppercase\indexname}%
|
|
{\MakeUppercase\indexname}%
|
|
\thispagestyle{plain}%
|
|
\parindent\z@
|
|
\parskip\z@ \@plus .3\p@\relax
|
|
\let\item\@idxitem
|
|
}{%
|
|
\if@restonecol
|
|
\onecolumn
|
|
\else
|
|
\clearpage
|
|
\fi
|
|
}
|
|
}{%
|
|
\renewenvironment{theindex}{%
|
|
\edef\indexname{\the\@nameuse{idxtitle@\@indextype}}%
|
|
\if@twocolumn
|
|
\@restonecolfalse
|
|
\else
|
|
\@restonecoltrue
|
|
\fi
|
|
\columnseprule \z@
|
|
\columnsep 35\p@
|
|
\twocolumn[%
|
|
\@makeschapterhead{\indexname}%
|
|
\ifx\index@prologue\@empty\else
|
|
\index@prologue
|
|
\bigskip
|
|
\fi
|
|
]%
|
|
\@mkboth{\MakeUppercase\indexname}%
|
|
{\MakeUppercase\indexname}%
|
|
\thispagestyle{plain}%
|
|
\parindent\z@
|
|
\parskip\z@ \@plus .3\p@\relax
|
|
\let\item\@idxitem
|
|
}{%
|
|
\if@restonecol
|
|
\onecolumn
|
|
\else
|
|
\clearpage
|
|
\fi
|
|
}
|
|
}
|
|
|
|
\def\printindex{\@ifnextchar[{\@printindex}{\@printindex[default]}}
|
|
|
|
\def\@printindex[#1]{%
|
|
\@ifnextchar[{\@print@index[#1]}{\@print@index[#1][]}%
|
|
}
|
|
|
|
\long\def\@print@index[#1][#2]{%
|
|
\def\@indextype{#1}%
|
|
\long\def\index@prologue{#2}%
|
|
\@ifundefined{idx@#1}%
|
|
{\@latexerr{Index type `\string#1' undefined}\@ehc}%
|
|
{%
|
|
\edef\@tempa{\@nameuse{idx@#1}}%
|
|
\edef\@tempa{%
|
|
\noexpand\@input@{\jobname.\expandafter\@second\@tempa\@nil}%
|
|
}%
|
|
\@tempa
|
|
}%
|
|
}
|
|
\def\@indexstar@{\index*}
|
|
\def\idx@activehat{%
|
|
\relax
|
|
\ifmmode\expandafter\sp\else\expandafter\@indexstar@\fi
|
|
}
|
|
|
|
\def\idx@activebar{%
|
|
\relax
|
|
\ifmmode\expandafter\sb\else\expandafter\index\fi
|
|
}
|
|
\newif\if@shortindexing
|
|
|
|
\begingroup
|
|
|
|
\catcode`\^\active
|
|
\catcode`\_\active
|
|
|
|
\gdef\shortindexingon{%
|
|
\@shortindexingtrue
|
|
\chardef\old@idxhatcode\catcode`\^\relax
|
|
\chardef\old@idxbarcode\catcode`\_\relax
|
|
\catcode`\^\active
|
|
\catcode`\_\active
|
|
\let\old@idxhat ^%
|
|
\let\old@idxbar _%
|
|
\let^\idx@activehat
|
|
\let_\idx@activebar
|
|
}
|
|
|
|
\gdef\shortindexingoff{%
|
|
\if@shortindexing
|
|
\@shortindexingfalse
|
|
\let^\old@idxhat
|
|
\let_\old@idxbar
|
|
\catcode`\^\old@idxhatcode
|
|
\catcode`\_\old@idxbarcode
|
|
\fi
|
|
}
|
|
|
|
\endgroup
|
|
\newinsert\@indexbox
|
|
|
|
\dimen\@indexbox\maxdimen
|
|
\begingroup
|
|
\catcode`\@\active
|
|
\expandafter\gdef\csname\string @sanitizeat\endcsname
|
|
{\def @{\char`\@}}
|
|
\endgroup
|
|
\newtoks\indexproofstyle
|
|
|
|
\indexproofstyle{\footnotesize\reset@font\ttfamily}
|
|
|
|
\def\@showidx#1{%
|
|
\insert\@indexbox{%
|
|
\@sanitizeat
|
|
\the\indexproofstyle
|
|
\hsize\marginparwidth
|
|
\hangindent\marginparsep \parindent\z@
|
|
\everypar{}\let\par\@@par \parfillskip\@flushglue
|
|
\lineskip\normallineskip
|
|
\baselineskip .8\normalbaselineskip\sloppy
|
|
\raggedright \leavevmode
|
|
\vrule \@height .7\normalbaselineskip \@width \z@\relax#1\relax
|
|
\vrule \@height\z@ \@depth.3\normalbaselineskip \@width\z@\relax
|
|
}%
|
|
\ifhmode\penalty\@M \hskip\z@skip\fi
|
|
}
|
|
|
|
\def\@leftidx{\hskip-\marginparsep \hskip-\marginparwidth}
|
|
|
|
\def\@rightidx{\hskip\columnwidth \hskip\marginparsep}
|
|
|
|
\def\@mkidx{%
|
|
\vbox to \z@{%
|
|
\rlap{%
|
|
\if@twocolumn
|
|
\if@firstcolumn \@leftidx \else \@rightidx \fi
|
|
\else
|
|
\if@twoside
|
|
\ifodd\c@page \@rightidx \else \@leftidx \fi
|
|
\else
|
|
\@rightidx
|
|
\fi
|
|
\fi
|
|
\box\@indexbox
|
|
}%
|
|
\vss
|
|
}%
|
|
}
|
|
|
|
\def\raggedbottom{%
|
|
\def\@textbottom{\vskip\z@ plus.0001fil}%
|
|
\let\@texttop\@mkidx
|
|
}
|
|
|
|
\def\flushbottom{\let\@textbottom\relax \let\@texttop\@mkidx}
|
|
|
|
\let\@texttop\@mkidx
|
|
\CheckCommand\addtocontents[2]{%
|
|
\protected@write\@auxout
|
|
{\let\label\@gobble \let\index\@gobble \let\glossary\@gobble}%
|
|
{\string\@writefile{#1}{#2}}%
|
|
}
|
|
|
|
\renewcommand{\addtocontents}[2]{%
|
|
\protected@write\@auxout
|
|
{\let\label\@gobble \let\glossary\@gobble}%
|
|
{\string\@writefile{#1}{#2}}%
|
|
}
|
|
\let\old@starttoc\@starttoc
|
|
|
|
\renewcommand{\@starttoc}[1]{%
|
|
\begingroup
|
|
\@addtoindexfalse
|
|
\old@starttoc{#1}%
|
|
\endgroup
|
|
}
|
|
\CheckCommand*{\markboth}[2]{%
|
|
\begingroup
|
|
\let\label\relax \let\index\relax \let\glossary\relax
|
|
\unrestored@protected@xdef\@themark {{#1}{#2}}%
|
|
\@temptokena \expandafter{\@themark}%
|
|
\mark{\the\@temptokena}%
|
|
\endgroup
|
|
\if@nobreak\ifvmode\nobreak\fi\fi}
|
|
\CheckCommand*{\markright}[1]{%
|
|
\begingroup
|
|
\let\label\relax \let\index\relax \let\glossary\relax
|
|
\expandafter\@markright\@themark {#1}%
|
|
\@temptokena \expandafter{\@themark}%
|
|
\mark{\the\@temptokena}%
|
|
\endgroup
|
|
\if@nobreak\ifvmode\nobreak\fi\fi}
|
|
|
|
\renewcommand{\markboth}[2]{%
|
|
\begingroup
|
|
\let\label\relax \let\glossary\relax
|
|
\unrestored@protected@xdef\@themark {{#1}{#2}}%
|
|
\@temptokena \expandafter{\@themark}%
|
|
\mark{\the\@temptokena}%
|
|
\endgroup
|
|
\if@nobreak\ifvmode\nobreak\fi\fi}
|
|
|
|
\renewcommand{\markright}[1]{%
|
|
\begingroup
|
|
\let\label\relax \let\glossary\relax
|
|
\expandafter\@markright\@themark {#1}%
|
|
\@temptokena \expandafter{\@themark}%
|
|
\mark{\the\@temptokena}%
|
|
\endgroup
|
|
\if@nobreak\ifvmode\nobreak\fi\fi}
|
|
\endinput
|
|
%%
|
|
%% End of file `index.sty'.
|
|
|