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