Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 1c462ad

Browse files
committed
Added indexing commands
1 parent 7ac1c81 commit 1c462ad

2 files changed

Lines changed: 82 additions & 8 deletions

File tree

Doc/lib.tex

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,42 @@
1515
\\*[0mm]
1616
}
1717

18+
% Command to generate two index entries (using subentries)
19+
\newcommand{\indexii}[2]{
20+
\index{#1!#2}
21+
\index{#2!#1}
22+
}
23+
24+
% And three entries (using only one level of subentries)
25+
\newcommand{\indexiii}[3]{
26+
\index{#1!#2 #3}
27+
\index{#2!#3, #1}
28+
\index{#3!#1 #2}
29+
}
30+
31+
% And four (again, using only one level of subentries)
32+
\newcommand{\indexiv}[4]{
33+
\index{#1!#2 #3 #4}
34+
\index{#2!#3 #4, #1}
35+
\index{#3!#4, #1 #2}
36+
\index{#4!#1 #2 #3}
37+
}
38+
39+
% Command to generate a reference to a function, statement, keyword, operator
40+
\newcommand{\stindex}[1]{\indexii{statement}{#1@{\tt#1}}}
41+
\newcommand{\kwindex}[1]{\indexii{keyword}{#1@{\tt#1}}}
42+
\newcommand{\opindex}[1]{\indexii{operator}{#1@{\tt#1}}}
43+
\newcommand{\bifuncindex}[1]{\index{#1@{\tt#1} (built-in function)}}
44+
45+
% Add an index entry for a module
46+
\newcommand{\modindex}[2]{\index{#1@{\tt#1} (#2module)}}
47+
\newcommand{\bimodindex}[1]{\modindex{#1}{built-in }}
48+
\newcommand{\stmodindex}[1]{\modindex{#1}{standard }}
49+
50+
% Additional string for an index entry
51+
\newcommand{\indexsubitem}{}
52+
\newcommand{\ttindex}[1]{\index{#1@{\tt#1} \indexsubitem}}
53+
1854
% Define \itemjoin: some negative vspace to join two items together
1955
\newcommand{\itemjoin}{
2056
\mbox{}
@@ -24,21 +60,21 @@
2460

2561
% Define \funcitem{func}{args}: define a function item
2662
\newcommand{\funcitem}[2]{
27-
\index{#1@{\tt#1}}
63+
\ttindex{#1}
2864
\item[{\tt #1(#2)}]
2965
\
3066
}
3167

3268
% Define \dataitem{name}: define a data item
3369
\newcommand{\dataitem}[1]{
34-
\index{#1@{\tt#1}}
70+
\ttindex{#1}
3571
\item[{\tt #1}]
3672
\
3773
}
3874

3975
% Define \excitem{name}{string}: define an exception item
4076
\newcommand{\excitem}[2]{
41-
\index{#1@{\tt#1}}
77+
\ttindex{#1}
4278
\item[{\tt #1 = '#2'}]
4379
\itembreak
4480
}
@@ -54,6 +90,7 @@
5490
E-mail: {\tt [email protected]}
5591
}
5692

93+
% Tell \index to actually write the .idx file
5794
\makeindex
5895

5996
\begin{document}
@@ -87,6 +124,6 @@
87124
\input{lib3.tex} % standard modules
88125
\input{lib4.tex} % OS-dependent chapters
89126
\input{lib5.tex} % Graphics chapters
90-
\input{libindex.tex} % The index
127+
\input{lib.ind} % The index
91128

92129
\end{document}

Doc/lib/lib.tex

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,42 @@
1515
\\*[0mm]
1616
}
1717

18+
% Command to generate two index entries (using subentries)
19+
\newcommand{\indexii}[2]{
20+
\index{#1!#2}
21+
\index{#2!#1}
22+
}
23+
24+
% And three entries (using only one level of subentries)
25+
\newcommand{\indexiii}[3]{
26+
\index{#1!#2 #3}
27+
\index{#2!#3, #1}
28+
\index{#3!#1 #2}
29+
}
30+
31+
% And four (again, using only one level of subentries)
32+
\newcommand{\indexiv}[4]{
33+
\index{#1!#2 #3 #4}
34+
\index{#2!#3 #4, #1}
35+
\index{#3!#4, #1 #2}
36+
\index{#4!#1 #2 #3}
37+
}
38+
39+
% Command to generate a reference to a function, statement, keyword, operator
40+
\newcommand{\stindex}[1]{\indexii{statement}{#1@{\tt#1}}}
41+
\newcommand{\kwindex}[1]{\indexii{keyword}{#1@{\tt#1}}}
42+
\newcommand{\opindex}[1]{\indexii{operator}{#1@{\tt#1}}}
43+
\newcommand{\bifuncindex}[1]{\index{#1@{\tt#1} (built-in function)}}
44+
45+
% Add an index entry for a module
46+
\newcommand{\modindex}[2]{\index{#1@{\tt#1} (#2module)}}
47+
\newcommand{\bimodindex}[1]{\modindex{#1}{built-in }}
48+
\newcommand{\stmodindex}[1]{\modindex{#1}{standard }}
49+
50+
% Additional string for an index entry
51+
\newcommand{\indexsubitem}{}
52+
\newcommand{\ttindex}[1]{\index{#1@{\tt#1} \indexsubitem}}
53+
1854
% Define \itemjoin: some negative vspace to join two items together
1955
\newcommand{\itemjoin}{
2056
\mbox{}
@@ -24,21 +60,21 @@
2460

2561
% Define \funcitem{func}{args}: define a function item
2662
\newcommand{\funcitem}[2]{
27-
\index{#1@{\tt#1}}
63+
\ttindex{#1}
2864
\item[{\tt #1(#2)}]
2965
\
3066
}
3167

3268
% Define \dataitem{name}: define a data item
3369
\newcommand{\dataitem}[1]{
34-
\index{#1@{\tt#1}}
70+
\ttindex{#1}
3571
\item[{\tt #1}]
3672
\
3773
}
3874

3975
% Define \excitem{name}{string}: define an exception item
4076
\newcommand{\excitem}[2]{
41-
\index{#1@{\tt#1}}
77+
\ttindex{#1}
4278
\item[{\tt #1 = '#2'}]
4379
\itembreak
4480
}
@@ -54,6 +90,7 @@
5490
E-mail: {\tt [email protected]}
5591
}
5692

93+
% Tell \index to actually write the .idx file
5794
\makeindex
5895

5996
\begin{document}
@@ -87,6 +124,6 @@
87124
\input{lib3.tex} % standard modules
88125
\input{lib4.tex} % OS-dependent chapters
89126
\input{lib5.tex} % Graphics chapters
90-
\input{libindex.tex} % The index
127+
\input{lib.ind} % The index
91128

92129
\end{document}

0 commit comments

Comments
 (0)