summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/index/index.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-12 23:57:07 +0000
committerKarl Berry <karl@freefriends.org>2006-01-12 23:57:07 +0000
commit36d4aa42d015b48d19108d0b983d26cc207ca078 (patch)
tree253eed51f8286374e8c7f5cebb3dd2a2d7bf977e /Master/texmf-dist/tex/latex/index/index.sty
parentb2db5eec35b894d3550529a0c6de5cdf35928339 (diff)
index
git-svn-id: svn://tug.org/texlive/trunk@994 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/index/index.sty')
-rw-r--r--Master/texmf-dist/tex/latex/index/index.sty435
1 files changed, 435 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/index/index.sty b/Master/texmf-dist/tex/latex/index/index.sty
new file mode 100644
index 00000000000..b0cca83e334
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/index/index.sty
@@ -0,0 +1,435 @@
+%%
+%% 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'.