summaryrefslogtreecommitdiff
path: root/indexing/glo+idxtex/crlext.sty
blob: 8851b28c8d7630e3182dcee063c88785420fb430 (plain)
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
%                          CRL Extensions to LaTeX
%
\typeout{CRDS Extensions to LaTeX,  V1.1.  (RL Aurbach, 09-Sep-1986)}
%
%****************************************************************************
%*                                                                          *
%*			    Outline Environment				    *
%*									    *
%* Description:								    *
%*	The outline environment is a modified enumerate environment in	    *
%*	which the numbering is done using standard outlining conventions.   *
%*									    *
%* Syntax:                                                                  *
%*	\begin{outline}	    \item text	\end{outline}			    *
%*									    *
%****************************************************************************
%
\@definecounter{outlni} \@definecounter{outlnii} \@definecounter{outlniii}
\@definecounter{outlniv} \@definecounter{outlnv}
\newcount\@outlndepth  \@outlndepth =0
\def\outline{\ifnum \@outlndepth >4 \@toodeep \else \advance\@outlndepth\@ne
  \edef\@outlnctr{outln\romannumeral\the\@outlndepth}\list
  {\csname label\@outlnctr\endcsname}{\usecounter{\@outlnctr}
  \def\makelabel##1{\hss\llap{##1}}}\fi}
\let\endoutline =\endlist
\def\labeloutlni{\Roman{outlni}.}       \def\theoutlni{\Roman{outlni}}
\def\labeloutlnii{\Alph{outlnii}.}      \def\theoutlnii{\Alph{outlnii}}
\def\labeloutlniii{\arabic{outlniii}.}  \def\theoutlniii{\arabic{outlniii}}
\def\labeloutlniv{\alph{outlniv}.}      \def\theoutlniv{\alph{outlniv}}
\def\labeloutlnv{(\roman{outlnv})}      \def\theoutlnv{\roman{outlnv}}
\def\p@outlnii{\theoutlni.}             \def\p@outlniii{\p@outlnii\theoutlnii.}
\def\p@outlniv{\p@outlniii\theoutlniii.}\def\p@outlnv{\p@outlniv\theoutlniv.}
%
%****************************************************************************
%*                                                                          *
%*			    InfoMap Environment				    *
%*									    *
%* Description:								    *
%*	The infomap environment is a modified description environment in    *
%*	which the label is set off from the text as a signpost.  The	    *
%*	signpost is implemented in a \parbox to allow for a multi-line	    *
%*	label.								    *
%*									    *
%* Syntax:                                                                  *
%*	\begin{infomap}  \item[label] text  \end{infomap}		    *
%*									    *
%* Where:								    *
%*	label	is the text to be placed in the Signpost at the current	    *
%*		left margin.						    *
%*									    *
%* Note:								    *
%*	The signpost is implemented as a \parbox set in a \raisebox which   *
%*	has a depth of 0pt.  This is necessary to make a multi-line sign-   *
%*	work correctly, but occasionally, you will need to add extra	    *
%*	vertical space if the signpost occupies more lines than the text.   *
%*									    *
%****************************************************************************
%
\newdimen\infomapmargin
\newdimen\infomapwidth
\infomapmargin 115pt
\infomapwidth 103pt
\def\infomaplabel#1{\raisebox{0pt}[1em][0pt]{\makebox[\labelwidth][l]
    {\parbox[t]{\infomapwidth}{\bf #1}}}}
\def\infomap{\list{}{\leftmargin\infomapmargin
    \labelwidth\leftmargin\advance\labelwidth-\labelsep
    \let\makelabel\infomaplabel}}
\let\endinfomap\endlist
\def\ttitem[#1]{\item[{\tt #1}]}
%
%****************************************************************************
%*                                                                          *
%*			    Note Environment				    *
%*									    *
%* Description:								    *
%*	The note environment is a modified version of the quote environment.*
%*	It is distinctive in that it has a centered title for the note	    *
%*	prior to the beginning of the text.  The title may be specified,    *
%*	using the optional argument.  If no title is specified, the title   *
%*	"Note" is used.							    *
%*									    *
%* Syntax:                                                                  *
%*	\begin{note}[title]  text  \end{note}				    *
%*									    *
%* Where:								    *
%*	title	    is the text to be used as the title.  If not specified  *
%*		    "Note" is used.  The title is centered above the text,  *
%*		    in boldface.					    *
%*									    *
%* Note:								    *
%*	It is possible for the title and text of a note to be separated	    *
%*	across a page break.  So far, I haven't been able to discover a	    *
%*	fool-proof way to prevent this from occurring, so check the output. *
%*									    *
%****************************************************************************
%
\def\note{\@ifnextchar [{\@note}{\@note[Note]}}
\def\@note[#1]{\par \list{}{\leftmargin 2em \rightmargin\leftmargin }
    \item[] \hfil {\bf #1} \hfil \par \item[]}
\let\endnote\endlist
%
%****************************************************************************
%*                                                                          *
%*			    Ctl Command					    *
%*									    *
%* Description:								    *
%*	The \ctl command is used to place a representation of a control	    *
%*	character in the document.  \ctl{x} is represented as ^x.	    *
%*									    *
%* Syntax:                                                                  *
%*	\ctl{ch}							    *
%*									    *
%* Where:								    *
%*	ch	is the character to be represented.			    *
%*									    *
%* Note:								    *
%*	The character is displayed in \tt.				    *
%*									    *
%****************************************************************************
%
\def\ctl#1{{\tt $^\wedge$#1}}
%
%****************************************************************************
%*                                                                          *
%*			    Trademark Command				    *
%*									    *
%* Description:								    *
%*	This command generates a trademark symbol (an R in a circle).  The  *
%*	symbol is normally used as "foo$^\trademark$".			    *
%*									    *
%* Syntax:                                                                  *
%*	\trademark							    *
%*									    *
%* Note:								    *
%*	Thanks to Kent McPherson of Lear/Siegler for this command.	    *
%*									    *
%****************************************************************************
%
\def\trademark{{\ooalign
   {\tiny \hfill \raise .085ex\hbox{R}\hfill \crcr
    \scriptsize \mathhexbox20D}}}
%
%****************************************************************************
%*                                                                          *
%*			    ULine Command				    *
%*									    *
%* Description:								    *
%*	The \uline command is used to underline text.  Unlike the	    *
%*	\underline command, \uline provides the user with the ability to    *
%*	control the thickness of the line.				    *
%*									    *
%* Syntax:                                                                  *
%*	\uline{text}{thickness}						    *
%*									    *
%* Where:								    *
%*	text	    is the text which will be underlined.		    *
%*									    *
%*	thickness   is the thickness of the line.  This dimension is	    *
%*		    typically .3pt --.5pt.				    *
%*									    *
%* Note:								    *
%*	Thanks to Kent McPherson of Lear/Siegler for this command.	    *
%*									    *
%****************************************************************************
%
\newlength{\ulength}
\newcommand{\uline}[2]{\settowidth{\ulength}{#1}
    \parbox{\ulength}{{#1} \\[-.75\baselineskip] \rule{\ulength}{#2}}}
%
%****************************************************************************
%*                                                                          *
%*			    ClearDoublePage Command			    *
%*									    *
%* Description:								    *
%*	This command is a modification of the standard LaTeX command of the *
%*	same name.  Unlike standard LaTeX, this command uses the "empty"    *
%*	pagestyle for the blank page it throws, so that the page is totally *
%*	blank.								    *
%*									    *
%* Syntax:                                                                  *
%*	\cleardoublepage						    *
%*									    *
%****************************************************************************
%
\def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else
  \if@twocolumn\hbox{}\newpage\fi\hbox{}\thispagestyle{empty}\newpage\fi\fi}
%
%****************************************************************************
%*                                                                          *
%*			ForceRightPage Command				    *
%*									    *
%* Description:								    *
%*	The \forcerightpage command is a variant on the \cleardoublepage    *
%*	command.  It conditionally throws a blank page to force the text    *
%*	which follows to appear on a right-hand page.  The blank page will  *
%*	contain an optional, centered message.				    *
%*									    *
%* Syntax:                                                                  *
%*	\forcerightpage[text]						    *
%*									    *
%* Where:								    *
%*	text	    is the text to be displayed centered on the page.  If   *
%*		    not specified, "This page intentionally left blank"     *
%*		    is used.						    *
%*									    *
%* Note:								    *
%*	This command will not correctly handle a two-column document and    *
%*	should not be used in that environment.				    *
%*									    *
%****************************************************************************
%
\def\forcerightpage{\@ifnextchar [{\@forcerightpage}
    {\@forcerightpage[This page intentionally left blank]}}
\def\@forcerightpage[#1]{\clearpage\if@twoside \ifodd\c@page\else
    \hbox{} \vfill \centerline{#1} \vfill \newpage\fi\fi}
%
%****************************************************************************
%*									    *
%*			ForceLeftPage Command				    *
%*                                                                          *
%* Description:								    *
%*	The \forceleftpage command is a variant on the \cleardoublepage	    *
%*	command.  It conditionally throws a blank page to force the text    *
%*	which follows to appear on a left-hand page.  The blank page will   *
%*	contain an optional, centered message.				    *
%*									    *
%* Syntax:                                                                  *
%*	\forceleftpage[text]						    *
%*									    *
%* Where:								    *
%*	text	    is the text to be displayed centered on the page.  If   *
%*		    not specified, "This page intentionally left blank"     *
%*		    is used.						    *
%*									    *
%* Note:								    *
%*	This command will not correctly handle a two-column document and    *
%*	should not be used in that environment.				    *
%*									    *
%****************************************************************************
%
\def\forceleftpage{\@ifnextchar [{\@forceleftpage}
    {\@forceleftpage[This page intentionally left blank]}}
\def\@forceleftpage[#1]{\clearpage \if@twoside \ifodd\c@page
    \hbox{} \vfill \centerline{#1} \vfill \newpage\fi\fi}
%
%****************************************************************************
%*									    *
%*			Input Command					    *
%*                                                                          *
%* Description:								    *
%*	The \input command is a variation of the standard LaTeX command of  *
%*	the same name.  It reads in an external file.  It differs from the  *
%*	normal LaTeX command in that if the specified file is not found,    *
%*	the routine displays a message and continues, rather than prompting *
%*	for a new file name.						    *
%*									    *
%* Syntax:                                                                  *
%*	\input{file}							    *
%*									    *
%* Where:								    *
%*	file	    is the file specification of the input file to be read. *
%*		    By default, the file has the file type ".tex" unless    *
%*		    specified otherwise.  If the file is not found in the   *
%*		    current default directory, it will be searched for in   *
%*		    TEX$INPUTS.						    *
%*									    *
%****************************************************************************
%
\def\input{\@ifnextchar \bgroup{\@input}{\@@input }}
%
%****************************************************************************
%*									    * 
%*			CoverStyle Command				    *
%*                                                                          *
%* Description:								    *
%*	This routine defines a cover style for a document.  It reads in a   *
%*	".cvrsty" file, which contains the necessary information.	    *
%*									    *
%* Syntax:                                                                  *
%*	\coverstyle{name}						    *
%*									    *
%* Where:								    *
%*	name	    is the name of a coverstyle.  The file name.cvrsty will *
%*		    be input.						    *
%*									    *
%****************************************************************************
%
\def\coverstyle#1{\def\@coverstyle{#1}
  \makeatletter \input \@coverstyle.cvrsty \relax \makeatother}
%
%****************************************************************************
%*									    *
%*			ScreenPix Environment				    *
%*                                                                          *
%* Description:								    *
%*	The screenpix environment is used to display the image of a screen  *
%*	in a document.  A curved line is drawn at the top, which represents *
%*	the beginning of the screen.  After the verbatim text, another line *
%*	is drawn at the bottom to represent the bottom of the screen.	    *
%*									    *
%*	Lines up to 80 characters long may appear.  You should place a	    *
%*	leading space at the beginning of each line, so that the text will  *
%*	not overwrite the curved lines.  Since tabs are not expanded in	    *
%*	verbatim mode, they should be explicitly converted to spaces.	    *
%*									    *
%* Syntax:                                                                  *
%*	\begin{screenpix}						    *
%*	\begin{verbatim}						    *
%*	 lines of verbatim screen-image text				    *
%*	\end{verbatim}							    *
%*	\end{screenpix}							    *
%*									    *
%* Where:								    *
%*	The lines of verbatim text may be up to 80 characters long, not	    *
%*	counting the REQUIRED leading space on each line.		    *
%*									    *
%* Note:								    *
%*	This environment assumes that a text width of 6 inches is available *
%*	for the display of the screen.					    *
%*									    *
%****************************************************************************
%
\def\screenpix{\small \setlength{\unitlength}{1in} \thicklines
    \begin{picture}(6,.35) \put(3,0){\oval(6,.7)[t]} \end{picture}\par
    \vspace*{-3\parskip}}
\def\endscreenpix{\vspace*{-3\parskip}
    \begin{picture}(6,.35) \put(3,.35){\oval(6,.7)[b]} \end{picture}}
%
%****************************************************************************
%*									    *
%*			    Glossaryfile Command			    *
%*                                                                          *
%* Description:								    *
%*	This command is used to specify one or more Glossary Definition	    *
%*	files which will be searched for glossary definitions by GloTeX.    *
%*									    *
%* Syntax:                                                                  *
%*	\glossaryfile{filelist}						    *
%*									    *
%* Where:								    *
%*	filelist    is a file specification of a .gdf file or a comma-list  *
%*		    of file specifications.				    *
%*									    *
%* Note:								    *
%*	This command writes a \glofile command to the .glo file		    *
%*									    *
%****************************************************************************
%
\def\glossaryfile#1{\if@filesw\write\@glossaryfile{\string
    \glofile{#1}}\fi}
%
%****************************************************************************
%*									    *
%*			    InsertGlossary Command			    *
%*                                                                          *
%* Description:								    *
%*	This command causes a .gls file to be read in and processed.	    *
%*									    *
%* Syntax:                                                                  *
%*	\insertglossary							    *
%*									    *
%* Note:								    *
%*	The .gls file is assumed to have the same name as the root latex    *
%*	source file.							    *
%*									    *
%****************************************************************************
%
\def\insertglossary{\@input{\jobname.gls}}
%
%****************************************************************************
%*									    *
%*			    InsertIndex Command				    *
%*                                                                          *
%* Description:								    *
%*	This command causes an .ind file to be read in and processed.	    *
%*									    *
%* Syntax:                                                                  *
%*	\insertindex							    *
%*									    *
%* Note:								    *
%*	The .ind file is assumed to have the same name as the root latex    *
%*	source file.							    *
%*									    *
%****************************************************************************
%
\def\insertindex{\@input{\jobname.ind}}	
%