File: amsmidx.sty

package info (click to toggle)
tetex-src 3.0.dfsg.2-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 122,292 kB
  • ctags: 2,709
  • sloc: makefile: 2,323; perl: 1,820; sh: 1,378; lisp: 448; python: 335; xml: 175; sed: 138; ansic: 138; yacc: 52
file content (82 lines) | stat: -rw-r--r-- 2,559 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
% amsmidx.sty
% 2001/09/26
% preliminary version
% 
%  Package for use with AMS document classes to produce multiple indexes
% 
%  Adapted from multind.sty (version 1.1b, 31 August 1991), by F.W. Long

%  Modified \makeindex and \index commands to allow multiple indexes
%  The first argument of \makeindex and \index is the index file name.
%  These commands now work more like \@starttoc and \addcontentsline.
%  \index is no longer defined inside \makeindex but determines whether
%  the appropriate file is defined before writing to it.

\def\makeindex#1{\begingroup
  \makeatletter
  \if@filesw \expandafter\newwrite\csname #1@idxfile\endcsname
  \expandafter\immediate\openout \csname #1@idxfile\endcsname #1.idx\relax
  \typeout{Writing index file #1.idx }\fi \endgroup}

\def\index#1{\@bsphack
  \begingroup
  \def\protect##1{\string##1\space}\@sanitize
  \@wrindex{#1}}

%  \@wrindex now checks that the appropriate file is defined.

\def\@wrindex#1#2{\let\thepage\relax
  \xdef\@gtempa{\@ifundefined{#1@idxfile}{}{%
    \expandafter\write\csname #1@idxfile\endcsname
      {\string\indexentry{#2}{\thepage}}}}%
  \endgroup\@gtempa
  \if@nobreak \ifvmode\nobreak\fi\fi
  \@esphack}

%  Modified \printindex command to accept the name of an index file.

\renewcommand{\printindex}[1]{\@input{#1.ind}}

%  Alternate command with new name:
%  \Printindex locally modifies some formatting commands for an improved
%  appearance, sets the index title and reads in the requested index file.
%  #1 = file name, #2 = index title

\newcommand\Printindex[2]{%
  \begingroup
    \cleardoublepage
    \def\indexname{#2}%
    \raggedright
    \hyphenpenalty=10000
    \renewcommand{\seename}{see~also}
    \renewcommand{\subitem}{\par\hangindent 3em\hspace*{1em}}
    \@input{#1.ind}%
  \endgroup
}

\endinput

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Instructions for using amsmidx.sty

Put these commands in the preamble:

     \usepackage{amsmidx}
     \makeindex{filename-a}
     \makeindex{filename-b}

To identify the index entries in the text:

     \index{filename-a}{index term}
     \index{filename-b}{index term}

In the backmatter, where the indexes are to appear:

     \Printindex{filename-a}{First Index}
     \Printindex{filename-b}{Second Index}

Two files of index terms, filename-a.idx and filename-b.idx, will be
generated.  To sort the index terms, process the two .idx files
separately with Makeindex; this will create the files filename-a.ind
and filename-b.ind, which will in turn be input by \Printindex.