|
|
1.1 root 1: % LaTeX customization
2:
3:
4: \makeatletter % for a little while
5:
6:
7: % plain TeX compatibility
8:
9: \def\oldstyle{\xdef\@oldstyle{\the\textfont\@ne}\mit\@oldstyle}
10:
11:
12: % PhD-TeX compatibility
13:
14: \def\showsummary{%
15: \begingroup
16: \def\note##1{%
17: \ifcase\value{##1}no ##1s\or
18: 1 ##1\else
19: \the\value{##1} ##1s\fi
20: }%
21: \typeout{LaTeX summary: \note{figure}, \note{table}, \note{footnote}.}%
22: \endgroup
23: }
24:
25: \def\smaller{\footnotesize}
26:
27:
28: % Float Support
29:
30: \def\topfraction{0.85}
31: \def\textfraction{0.20}
32: \def\floatpagefraction{0.85}
33: \def\dbltopfraction{0.85}
34: \def\dblfloatpagefraction{0.85}
35:
36: \def\@tagskipcommand{\vskip .5\baselineskip}
37:
38: % \tagfigure*[FLOAT]{FILE}{CAPTION}{LABEL}
39: % * optional
40: % FLOAT float options
41: % FILE reads TPIC output in file figureFILE
42: % CAPTION for list of figures
43: % LABEL for \ref and \pageref
44: \def\tagfigure{\@ifstar{\@stagfigure}{\@tagfigure}}
45: \def\@tagfigure{\@ifnextchar[{\@@tagfigure}{\@@tagfigure[t]}}
46: \def\@stagfigure{\@ifnextchar[{\@@stagfigure}{\@@stagfigure[t]}}
47:
48: \def\@@tagfigure[#1]#2{%
49: \@@@tagfigure[#1]{\input figure#2\relax\centerline{\box\graph}}}
50: \def\@@stagfigure[#1]#2{%
51: \@@@stagfigure[#1]{\input figure#2\relax\centerline{\box\graph}}}
52:
53:
54: % \tagdiagram*[FLOAT]{FILE}{CAPTION}{LABEL}
55: % * optional
56: % FLOAT float options
57: % FILE reads LaTeX input in file diagramFILE
58: % CAPTION for list of figures
59: % LABEL for \ref and \pageref
60: \def\tagdiagram{\@ifstar{\@stagdiagram}{\@tagdiagram}}
61: \def\@tagdiagram{\@ifnextchar[{\@@tagdiagram}{\@@tagdiagram[t]}}
62: \def\@stagdiagram{\@ifnextchar[{\@@stagdiagram}{\@@stagdiagram[t]}}
63:
64: \def\@@tagdiagram[#1]#2{\@@@tagfigure[#1]{\input diagram#2\relax}}
65: \def\@@stagdiagram[#1]#2{\@@@stagfigure[#1]{\input diagram#2\relax}}
66:
67: \def\@@@tagfigure[#1]#2#3#4{%
68: \begin{figure}[#1]
69: \hrule
70: \@tagskipcommand
71: \begin{minipage}\columnwidth
72: \small#2%
73: \end{minipage}
74: \vskip .5\baselineskip plus .5\baselineskip
75: \begingroup
76: \setbox\z@=\hbox{#4}%
77: \ifdim\wd\z@>\z@
78: \caption{#3}%
79: \label{#4}%
80: \else
81: \captcont{#3}%
82: \fi
83: \endgroup
84: \vskip 2pt
85: \hrule
86: \end{figure}
87: }
88:
89: \def\@@@stagfigure[#1]#2#3#4{%
90: \begin{figure*}[#1]
91: \hrule
92: \@tagskipcommand
93: \begin{minipage}\textwidth
94: \small#2%
95: \end{minipage}
96: \vskip .5\baselineskip plus .5\baselineskip
97: \begingroup
98: \setbox\z@=\hbox{#4}%
99: \ifdim\wd\z@>\z@
100: \caption{#3}%
101: \label{#4}%
102: \else
103: \captcont{#3}%
104: \fi
105: \endgroup
106: \vskip 2pt
107: \hrule
108: \end{figure*}
109: }
110:
111:
112: % \tagtable*[FLOAT]{FILE}{CAPTION}{LABEL}
113: % * optional
114: % FILE read LaTeX input in file tableFILE
115: % FLOAT float options
116: % CAPTION for list of tables
117: % LABEL for \ref and \pageref
118: \def\tagtable{\@ifstar{\@stagtable}{\@tagtable}}
119: \def\@tagtable{\@ifnextchar[{\@@tagtable}{\@@tagtable[t]}}
120: \def\@stagtable{\@ifnextchar[{\@@stagtable}{\@@stagtable[t]}}
121:
122: \def\@@tagtable[#1]#2#3#4{%
123: \begin{table}[#1]
124: \hrule
125: \@tagskipcommand
126: \begin{minipage}\textwidth
127: \small\input table#2\relax
128: \end{minipage}
129: \vskip .5\baselineskip plus .5\baselineskip
130: \begingroup
131: \setbox\z@=\hbox{#4}%
132: \ifdim\wd\z@>\z@
133: \caption{#3}%
134: \label{#4}%
135: \else
136: \captcont{#3}%
137: \fi
138: \endgroup
139: \vskip 2pt
140: \hrule
141: \end{table}
142: }
143:
144: \def\@@stagtable[#1]#2#3#4{%
145: \begin{table*}[#1]
146: \hrule
147: \@tagskipcommand
148: \begin{minipage}\columnwidth
149: \small\input table#2\relax
150: \end{minipage}
151: \vskip .5\baselineskip plus .5\baselineskip
152: \begingroup
153: \setbox\z@=\hbox{#4}%
154: \ifdim\wd\z@>\z@
155: \caption{#3}%
156: \label{#4}%
157: \else
158: \captcont{#3}%
159: \fi
160: \endgroup
161: \vskip 2pt
162: \hrule
163: \end{table*}
164: }
165:
166:
167: % Environments:
168:
169: % DESCRIBE - similar to DESCRIPTION, but indents extra on left margin of
170: % outer list
171:
172: \def\describe{\list{}{\labelwidth\z@ \itemindent-\leftmargin
173: \ifnum\@listdepth=1 \advance\leftmargin by2em\fi
174: \let\makelabel\descriptionlabel}}
175: \let\enddescribe=\endlist
176:
177:
178: % Document style options:
179: % 10pt - Makes ten-point type the normal (default) type size
180: % draftnote - Customized draft option
181:
182: \@namedef{ds@10pt}{\def\@ptsize{0}} %%% for orthogonality
183:
184:
185: \newif\ifdraft \draftfalse
186:
187: \def\draftstring{{\ifdraft \tt Draft\fi}}
188:
189: \def\draftext{%
190: \ifdraft
191: \begingroup
192: \tt
193: \ifodd\c@page
194: \LaTeX set \today\ with \fmtname\ v\fmtversion
195: \else
196: Draft \versiontag/ of \versiondate/
197: \fi
198: \endgroup
199: \fi
200: }
201:
202: \def\versiontag/{%
203: \gdef\versiontag/{\#0}%
204: \gdef\versiondate/{\today}%
205: \@input{\jobname.vrsn}%6
206: \versiontag/%
207: }
208: \def\versiondate/{%
209: \gdef\versiontag/{\#0}%
210: \gdef\versiondate/{\today}%
211: \@input{\jobname.vrsn}%
212: \versiondate/%
213: }
214:
215: \def\ds@draftnote{%
216: \drafttrue
217: \@ifundefined{ds@draft}{}{\ds@draft}%
218: \def\ps@plain{%
219: \let\@mkboth=\@gobbletwo
220: \def\@oddhead{\draftext\hfil}%
221: \def\@oddfoot{\draftstring\hfil\rm\thepage\hfil\draftstring}%
222: \def\@evenhead{\hfil\draftext}%
223: \let\@evenfoot=\@oddfoot
224: }%
225: \let\ps@@headings=\ps@headings
226: \def\ps@headings{%
227: \ps@@headings
228: \def\@oddfoot{\draftext\hfil}%
229: \def\@evenfoot{\hfil\draftext}%
230: }%
231: }
232:
233:
234: % Page Styles
235:
236: % \pagestyle{myfootings} similar to the myheadings command but also permits
237: % the user to define foot information as well as head information
238: % \markleftfoot{left_foot} specifies the foot for odd-numbered
239: % pages
240: % \markrightfoot{right_foot} specifies the foot for even-numbered
241: % pages
242: % N.B. DOES NOT USE MARKS TO ACCOMPLISH THIS, OWING TO CONFLICT WITH HEADING
243: % ROUTINES
244:
245: \def\ps@myfootings{\ps@myheadings}
246:
247: \def\markleftfoot#1{\def\@evenfoot{\hbox{}\sl#1\hfil}}
248: \def\markrightfoot#1{\def\@oddfoot{\hfil\sl#1\hbox{}}}
249:
250:
251: % \pagestyle{reprint} similar to plain page style in draft mode
252:
253: \let\reprintext=\draftext
254: \let\reprintstring=\draftstring
255:
256: \def\ps@reprint{%
257: \def\draftext{%
258: \ifdraft
259: \begingroup
260: \tt
261: \ifodd\c@page
262: \LaTeX set \today
263: \else
264: Draft \versiontag/
265: \fi
266: \endgroup
267: \fi
268: }%
269: \def\@oddhead{\reprintext\hfil\draftext}%
270: \def\@oddfoot{\reprintstring\hfil\rm\thepage}%
271: \def\@evenhead{\draftext\hfil\reprintext}%
272: \def\@evenfoot{\rm\thepage\hfil\reprintstring}%
273: }
274:
275:
276: % The Title
277:
278: \def\title#1{%
279: \gdef\@title{#1}%
280: \gdef\banner{%
281: \newpage\setcounter{page}{1}%
282: \begin{center}\Large#1\end{center}%
283: }%
284: }
285:
286:
287: % Miscellany
288:
289: \def\implies{\quad\supset\ }
290:
291: \def\tdots{\ldots\thinspace}
292:
293: \def\boxit#1{\fbox{\sc#1}}
294:
295: \def\note#1{\ifdraft\marginpar{\tt#1}\fi}
296:
297:
298: % Fractions (from The TUGboat v6 n1, 1985)
299:
300: \def\myfrac#1/#2{%
301: \leavevmode\kern.1em
302: \raise.5ex\mbox{\the\scriptfont\z@ #1}\kern-.1em
303: /\kern-.15em\lower.25ex\mbox{\the\scriptfont\z@ #2}%
304: }
305:
306:
307: % Trademarks...
308:
309: \input trademark
310:
311:
312: % Continuation Captions...
313:
314: \input captcont.sty
315:
316:
317: % Startup
318:
319: \xdef\today{%
320: \ifcase\month
321: \number\month\or
322: January\or February\or March\or April\or May\or June\or
323: July\or August\or September\or October\or November\or December\else
324: \number\month\fi
325: \space\number\day, {\noexpand\mit\number\year}%
326: }
327:
328: \begingroup
329: \count0=\time
330: \count1=\count0
331: \divide\count0 by 60
332: \count2=\count0
333: \multiply\count0 by 60
334: \advance\count1 by -\count0
335: \ifnum\count2>11
336: \ifnum\count2>12 \advance\count2 by -12\fi
337: \def\ampm{pm}%
338: \else
339: \ifnum\count2=0 \advance\count2 by 12\fi
340: \def\ampm{am}%
341: \fi
342: \xdef\daytime{%
343: \ifnum\count2<10 0\fi \the\count2:%
344: \ifnum\count1<10 0\fi \the\count1
345: \ampm
346: }%
347: \endgroup
348:
349:
350: \makeatother % back to normal
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.