annotate papers/doclib/diss.sty @ 12:441a2190cfae

Lion fix
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 21 Apr 2012 13:10:49 +0900
parents bce86c4163a3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1 % UCI Dissertation Style for AmSTeX.
12
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
2 % @(#)$Id: diss.sty,v 1.1.1.1 2005/04/18 14:46:05 kono Exp $
0
bce86c4163a3 Initial revision
kono
parents:
diff changeset
3
bce86c4163a3 Initial revision
kono
parents:
diff changeset
4 % Tim Morgan with many suggestions, bug fixes, etc, from Marshall Rose
bce86c4163a3 Initial revision
kono
parents:
diff changeset
5 % Based originally on Michael Spivak's AMSPPT.STY.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
6
bce86c4163a3 Initial revision
kono
parents:
diff changeset
7 % When edits are made to this file, the version number should be incremented.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
8 \def\version{103}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
9 \let\fmtversion=\version % These two control sequences are defined
bce86c4163a3 Initial revision
kono
parents:
diff changeset
10 \def\fmtname{dissertation} % in plain.tex, so we do it here too.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
11
bce86c4163a3 Initial revision
kono
parents:
diff changeset
12 % Assumes the following hidden definitions from plain.tex:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
13 % \z@ is defined from plain.tex as 0pt (and magically can
bce86c4163a3 Initial revision
kono
parents:
diff changeset
14 % be used as the integer constant 0 also).
bce86c4163a3 Initial revision
kono
parents:
diff changeset
15 % \p@ is the same, but 1pt
bce86c4163a3 Initial revision
kono
parents:
diff changeset
16 % \@ne is 1
bce86c4163a3 Initial revision
kono
parents:
diff changeset
17 % \m@ne is -1
bce86c4163a3 Initial revision
kono
parents:
diff changeset
18 % \tw@ is 2
bce86c4163a3 Initial revision
kono
parents:
diff changeset
19 % \thr@@ is 3
bce86c4163a3 Initial revision
kono
parents:
diff changeset
20 % \@m is 1000
bce86c4163a3 Initial revision
kono
parents:
diff changeset
21 % \@M is 10000
bce86c4163a3 Initial revision
kono
parents:
diff changeset
22 % And the following scratch register definitions:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
23 % \dimen@ is \dimendef'd to be \dimen0
bce86c4163a3 Initial revision
kono
parents:
diff changeset
24 % \skip@ is \skipdef'd to be \skip0
bce86c4163a3 Initial revision
kono
parents:
diff changeset
25 % \count@ is \count255
bce86c4163a3 Initial revision
kono
parents:
diff changeset
26
bce86c4163a3 Initial revision
kono
parents:
diff changeset
27 \catcode`\@=11 % So we can use a special character
bce86c4163a3 Initial revision
kono
parents:
diff changeset
28
bce86c4163a3 Initial revision
kono
parents:
diff changeset
29
bce86c4163a3 Initial revision
kono
parents:
diff changeset
30 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
31 % PARAMETERS DIFFERENT THAN IN PLAIN %
bce86c4163a3 Initial revision
kono
parents:
diff changeset
32 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
33
bce86c4163a3 Initial revision
kono
parents:
diff changeset
34 % These are words which TeX doesn't hyphenate perfectly.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
35 % Unfortunately, the plural forms must be included also.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
36 \hyphenation{com-put-er com-mun ap-pen-dix cart-wheel data-base Dijk-stra}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
37 \hyphenation{in-fra-struc-ture man-u-script mi-cro-fiche para-mil-i-tary}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
38 \hyphenation{post-am-ble pre-am-ble sub-scrib-er wave-guide sub-scrib-ers}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
39 \hyphenation{com-put-ers cart-wheels data-bases in-fra-struc-tures}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
40 \hyphenation{man-u-scripts mi-cro-fiches post-am-bles pre-am-bles}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
41 \hyphenation{buf-fer buf-fers des-ig-na-ted par-a-graph par-a-graphs}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
42 \hyphenation{key-stroke key-strokes usu-al-ly}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
43
bce86c4163a3 Initial revision
kono
parents:
diff changeset
44
bce86c4163a3 Initial revision
kono
parents:
diff changeset
45 \def\normal@topskip{0.48cm}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
46 \topskip=\normal@topskip % For correct page positioning, do NOT
bce86c4163a3 Initial revision
kono
parents:
diff changeset
47 \hoffset=0.5in % change any of these values!!!
bce86c4163a3 Initial revision
kono
parents:
diff changeset
48 \voffset=0.07cm
bce86c4163a3 Initial revision
kono
parents:
diff changeset
49 \hsize=15.2cm
bce86c4163a3 Initial revision
kono
parents:
diff changeset
50 \vsize=22.2cm
bce86c4163a3 Initial revision
kono
parents:
diff changeset
51
bce86c4163a3 Initial revision
kono
parents:
diff changeset
52 \normallineskiplimit=\p@ % Min. dist. btw. lines.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
53 \parindent=1cm % Normal indentation.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
54 \hfuzz=0.115\p@ % So we hear fewer complaints. Good up to
bce86c4163a3 Initial revision
kono
parents:
diff changeset
55 \vfuzz=0.115\p@ % 300 dpi.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
56
bce86c4163a3 Initial revision
kono
parents:
diff changeset
57 \pretolerance=200 % At 12pt, these margins are kind of narrow
bce86c4163a3 Initial revision
kono
parents:
diff changeset
58 \tolerance=300 % so we have to be more tolerant.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
59 \clubpenalty=\@M % Never allow these.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
60 \widowpenalty=\@M
bce86c4163a3 Initial revision
kono
parents:
diff changeset
61 \newlinechar=`\^^J % For writing output to tty.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
62 \uchyph=\z@ % Don't take any chances.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
63 \brokenpenalty=\@M % Never hyphenate last line on a page.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
64 \newcount\defaultinterlinepenalty % This probably won't make any
bce86c4163a3 Initial revision
kono
parents:
diff changeset
65 \defaultinterlinepenalty=\thr@@ % difference, so why not??
bce86c4163a3 Initial revision
kono
parents:
diff changeset
66 \interlinepenalty=\defaultinterlinepenalty
bce86c4163a3 Initial revision
kono
parents:
diff changeset
67
bce86c4163a3 Initial revision
kono
parents:
diff changeset
68
bce86c4163a3 Initial revision
kono
parents:
diff changeset
69 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
70 % PARAMETERS DIFFERENT from AmSTeX %
bce86c4163a3 Initial revision
kono
parents:
diff changeset
71 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
72
bce86c4163a3 Initial revision
kono
parents:
diff changeset
73 \TagsOnRight % Set tags like a sane person does
bce86c4163a3 Initial revision
kono
parents:
diff changeset
74
bce86c4163a3 Initial revision
kono
parents:
diff changeset
75
bce86c4163a3 Initial revision
kono
parents:
diff changeset
76 %%%%%%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
77 % EXTRA FONTS NEEDED %
bce86c4163a3 Initial revision
kono
parents:
diff changeset
78 %%%%%%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
79
bce86c4163a3 Initial revision
kono
parents:
diff changeset
80 \newif\ifolddigits
bce86c4163a3 Initial revision
kono
parents:
diff changeset
81 \olddigitsfalse % Allow use of amcscod10 for citations
bce86c4163a3 Initial revision
kono
parents:
diff changeset
82 \def\useolddigits{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
83 \olddigitstrue
bce86c4163a3 Initial revision
kono
parents:
diff changeset
84 \oktell{Old Digits Mode}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
85 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
86
bce86c4163a3 Initial revision
kono
parents:
diff changeset
87 \font\sixrm=cmr6 \font\sixbf=cmbx6
bce86c4163a3 Initial revision
kono
parents:
diff changeset
88 \font\sixi=cmmi6 \skewchar\sixi='177
bce86c4163a3 Initial revision
kono
parents:
diff changeset
89 \font\sixsy=cmsy6 \skewchar\sixsy='60
bce86c4163a3 Initial revision
kono
parents:
diff changeset
90
bce86c4163a3 Initial revision
kono
parents:
diff changeset
91 \font\eightrm=cmr8 \font\eightsl=cmsl8 \font\eightit=cmti8
bce86c4163a3 Initial revision
kono
parents:
diff changeset
92 \font\eightsy=cmsy8 \skewchar\eightsy='60
bce86c4163a3 Initial revision
kono
parents:
diff changeset
93 \skewchar\eightsy='60 \font\eightbf=cmbx8
bce86c4163a3 Initial revision
kono
parents:
diff changeset
94 \font\eightex=cmex10 at 8\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
95 \font\eighti=cmmi8 \skewchar\eighti='177
bce86c4163a3 Initial revision
kono
parents:
diff changeset
96
bce86c4163a3 Initial revision
kono
parents:
diff changeset
97 \font\ninerm=cmr9 \font\nineit=cmti9
bce86c4163a3 Initial revision
kono
parents:
diff changeset
98 \font\ninei=cmmi9 \skewchar\ninei='177
bce86c4163a3 Initial revision
kono
parents:
diff changeset
99 \font\ninesy=cmsy9 \skewchar\ninesy='60
bce86c4163a3 Initial revision
kono
parents:
diff changeset
100 \font\ninesl=cmsl9 \font\ninebf=cmbx9
bce86c4163a3 Initial revision
kono
parents:
diff changeset
101
bce86c4163a3 Initial revision
kono
parents:
diff changeset
102 \font\twelvecsc=cmcsc10 scaled \magstep1
bce86c4163a3 Initial revision
kono
parents:
diff changeset
103 \font\tencsc=cmcsc10
bce86c4163a3 Initial revision
kono
parents:
diff changeset
104 \font\eightcsc=cmcsc10 at 8\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
105 \font\elevencsc=cmcsc10 scaled \magstephalf
bce86c4163a3 Initial revision
kono
parents:
diff changeset
106 \font\ninecsc=cmcsc10 at 9\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
107
bce86c4163a3 Initial revision
kono
parents:
diff changeset
108 \let\tencscod=\tencsc
bce86c4163a3 Initial revision
kono
parents:
diff changeset
109 \let\eightcscod=\eightcsc
bce86c4163a3 Initial revision
kono
parents:
diff changeset
110
bce86c4163a3 Initial revision
kono
parents:
diff changeset
111 \font\eightsf=cmss10 at 8\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
112 \font\tensf=cmss10
bce86c4163a3 Initial revision
kono
parents:
diff changeset
113 \font\twelvesf=cmss10 at 12\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
114
bce86c4163a3 Initial revision
kono
parents:
diff changeset
115 \font\twelvett=cmtt10 scaled \magstep1
bce86c4163a3 Initial revision
kono
parents:
diff changeset
116 \font\eighttt=cmtt10 at 8\p@ % \tentt is predefined in plain.tex
bce86c4163a3 Initial revision
kono
parents:
diff changeset
117
bce86c4163a3 Initial revision
kono
parents:
diff changeset
118 \font\twelvebti=cmbti at 12\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
119 \font\tenbti=cmbti
bce86c4163a3 Initial revision
kono
parents:
diff changeset
120 \font\eightbti=cmbti at 8\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
121
bce86c4163a3 Initial revision
kono
parents:
diff changeset
122 \font\twelveex=cmex10 scaled \magstep1 \font\twelverm=cmr10 scaled \magstep1
bce86c4163a3 Initial revision
kono
parents:
diff changeset
123 \font\twelvesl=cmsl10 scaled \magstep1 \font\twelvebf=cmbx10 scaled \magstep1
bce86c4163a3 Initial revision
kono
parents:
diff changeset
124 \font\twelvei=cmmi10 scaled \magstep1 \skewchar\twelvei='177
bce86c4163a3 Initial revision
kono
parents:
diff changeset
125 \font\twelvesy=cmsy10 scaled \magstep1 \skewchar\twelvesy='60
bce86c4163a3 Initial revision
kono
parents:
diff changeset
126 \font\twelveit=cmti10 scaled \magstep1
bce86c4163a3 Initial revision
kono
parents:
diff changeset
127
bce86c4163a3 Initial revision
kono
parents:
diff changeset
128 \font\twelvechap@font=cmssbx10 at 14\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
129 \font\twelvesec@font=cmss10 at 13\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
130 \font\twelvesubsec@font=cmssi10 scaled \magstep1
bce86c4163a3 Initial revision
kono
parents:
diff changeset
131
bce86c4163a3 Initial revision
kono
parents:
diff changeset
132 \font\tenchap@font=cmssbx10 scaled \magstep1
bce86c4163a3 Initial revision
kono
parents:
diff changeset
133 \font\tensec@font=cmssbx10 scaled \magstephalf
bce86c4163a3 Initial revision
kono
parents:
diff changeset
134 \font\tensubsec@font=cmssi10
bce86c4163a3 Initial revision
kono
parents:
diff changeset
135
bce86c4163a3 Initial revision
kono
parents:
diff changeset
136 \font\eightchap@font=cmssbx10
bce86c4163a3 Initial revision
kono
parents:
diff changeset
137 \font\eightsec@font=cmss10 at 9\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
138 \font\eightsubsec@font=cmssqi8
bce86c4163a3 Initial revision
kono
parents:
diff changeset
139
bce86c4163a3 Initial revision
kono
parents:
diff changeset
140 % Font selection
bce86c4163a3 Initial revision
kono
parents:
diff changeset
141 \newcount\font@no
bce86c4163a3 Initial revision
kono
parents:
diff changeset
142 \def\curfont{\ifcase\font@no\rm\or\it\or\sl\or\bf\or\tt\or\csc\or\bti\or\sf
bce86c4163a3 Initial revision
kono
parents:
diff changeset
143 \else\errmessage{Internal font confusion}\fi}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
144
bce86c4163a3 Initial revision
kono
parents:
diff changeset
145 %%%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
146 % SPACING CONTROL %
bce86c4163a3 Initial revision
kono
parents:
diff changeset
147 %%%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
148
bce86c4163a3 Initial revision
kono
parents:
diff changeset
149 \newskip\normalabovedisplayskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
150 \newskip\normalbelowdisplayskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
151 \newskip\normalabovedisplayshortskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
152 \newskip\normalbelowdisplayshortskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
153 \newdimen\normalparskip \normalparskip=22.5\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
154 \newdimen\parstretch \parstretch=8\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
155
bce86c4163a3 Initial revision
kono
parents:
diff changeset
156 \newif\ifsinglespacing % Tells if we are currently in single space mode
bce86c4163a3 Initial revision
kono
parents:
diff changeset
157 \newif\ifhalfspacing % Special version of singlespacing, a little bigger.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
158
bce86c4163a3 Initial revision
kono
parents:
diff changeset
159 % Actually tell TeX what spacing is wanted
bce86c4163a3 Initial revision
kono
parents:
diff changeset
160 \def\setbaselines{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
161 \baselineskip=\normalbaselineskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
162 \abovedisplayskip=\normalabovedisplayskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
163 \belowdisplayskip=\normalbelowdisplayskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
164 \abovedisplayshortskip=\normalabovedisplayshortskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
165 \belowdisplayshortskip=\normalbelowdisplayshortskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
166 % Compute \parskip for even paragraph spacing at all pt sizes
bce86c4163a3 Initial revision
kono
parents:
diff changeset
167 \dimen@=\normalparskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
168 \advance\dimen@ by -\normalbaselineskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
169 \parskip=\dimen@ plus\parstretch
bce86c4163a3 Initial revision
kono
parents:
diff changeset
170 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
171
bce86c4163a3 Initial revision
kono
parents:
diff changeset
172 % Go from double to single spacing
bce86c4163a3 Initial revision
kono
parents:
diff changeset
173 \def\reducespacing{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
174 \normalbaselineskip=0.64\normalbaselineskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
175 \normalabovedisplayskip=0.64\normalabovedisplayskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
176 \normalbelowdisplayskip=0.64\normalbelowdisplayskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
177 \normalabovedisplayshortskip=0.64\normalabovedisplayshortskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
178 \normalbelowdisplayshortskip=0.64\normalbelowdisplayshortskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
179 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
180
bce86c4163a3 Initial revision
kono
parents:
diff changeset
181 % Set halfspacing baseline etc starting from singlespacing mode
bce86c4163a3 Initial revision
kono
parents:
diff changeset
182 \def\sethalfspacing{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
183 \normalbaselineskip=1.28125\normalbaselineskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
184 \abovedisplayskip=1.28125\abovedisplayskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
185 \belowdisplayskip=1.28125\belowdisplayskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
186 \abovedisplayshortskip=1.28125\abovedisplayshortskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
187 \belowdisplayshortskip=1.28125\belowdisplayshortskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
188 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
189
bce86c4163a3 Initial revision
kono
parents:
diff changeset
190 % Go to single spacing if we're not there already
bce86c4163a3 Initial revision
kono
parents:
diff changeset
191 \def\singlespace{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
192 \normalspacing \reducespacing
bce86c4163a3 Initial revision
kono
parents:
diff changeset
193 \halfspacingfalse \singlespacingtrue
bce86c4163a3 Initial revision
kono
parents:
diff changeset
194 \setbaselines
bce86c4163a3 Initial revision
kono
parents:
diff changeset
195 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
196
bce86c4163a3 Initial revision
kono
parents:
diff changeset
197 % Go to 1-1/2 spacing.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
198 \def\halfspace{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
199 \normalspacing \reducespacing \sethalfspacing
bce86c4163a3 Initial revision
kono
parents:
diff changeset
200 \singlespacingtrue \halfspacingtrue
bce86c4163a3 Initial revision
kono
parents:
diff changeset
201 \setbaselines
bce86c4163a3 Initial revision
kono
parents:
diff changeset
202 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
203
bce86c4163a3 Initial revision
kono
parents:
diff changeset
204 % Go to normal, doublespacing mode
bce86c4163a3 Initial revision
kono
parents:
diff changeset
205 \def\doublespace{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
206 \normalspacing
bce86c4163a3 Initial revision
kono
parents:
diff changeset
207 \singlespacingfalse \halfspacingfalse
bce86c4163a3 Initial revision
kono
parents:
diff changeset
208 \setbaselines
bce86c4163a3 Initial revision
kono
parents:
diff changeset
209 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
210
bce86c4163a3 Initial revision
kono
parents:
diff changeset
211 % Make sure we're doing the spacing we're supposed to be.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
212 \def\setspacing{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
213 \normalspacing
bce86c4163a3 Initial revision
kono
parents:
diff changeset
214 \ifsinglespacing
bce86c4163a3 Initial revision
kono
parents:
diff changeset
215 \reducespacing
bce86c4163a3 Initial revision
kono
parents:
diff changeset
216 \ifhalfspacing \sethalfspacing \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
217 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
218 \setbaselines
bce86c4163a3 Initial revision
kono
parents:
diff changeset
219 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
220
bce86c4163a3 Initial revision
kono
parents:
diff changeset
221
bce86c4163a3 Initial revision
kono
parents:
diff changeset
222 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
223 % FOUR DIFFERENT POINT SIZES %
bce86c4163a3 Initial revision
kono
parents:
diff changeset
224 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
225
bce86c4163a3 Initial revision
kono
parents:
diff changeset
226 \def\twelvepoint{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
227 \def\big@@AmS{10.2\p@}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
228 \def\Big@@AmS{13.8\p@}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
229 \def\bigg@@AmS{17.4\p@}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
230 \def\Bigg@@AmS{21.0\p@}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
231 \let\smallertype=\tenpoint
bce86c4163a3 Initial revision
kono
parents:
diff changeset
232 \let\curtype=\twelvepoint
bce86c4163a3 Initial revision
kono
parents:
diff changeset
233 \def\biggertype{\errmessage{No larger point size available}}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
234 \def\normalspacing{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
235 \normalbaselineskip=22.8\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
236 \normalabovedisplayskip=14.5\p@ plus 3\p@ minus 9\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
237 \normalbelowdisplayskip=14.5\p@ plus 3\p@ minus 9\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
238 \normalabovedisplayshortskip=\z@ plus 4\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
239 \normalbelowdisplayshortskip=9\p@ plus 4\p@ minus 5\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
240 }%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
241 \def\rm{\font@no=0\fam\z@\twelverm}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
242 \def\it{\font@no=1\fam\itfam\twelveit}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
243 \def\sl{\font@no=2\fam\slfam\twelvesl}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
244 \def\bf{\font@no=3\fam\bffam\twelvebf}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
245 \def\tt{\font@no=4\fam\ttfam\twelvett \spaceskip.5em plus.25em
bce86c4163a3 Initial revision
kono
parents:
diff changeset
246 minus.15em }%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
247 \def\csc{\font@no=5\twelvecsc}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
248 \def\bti{\font@no=6\twelvebti}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
249 \def\sf{\font@no=7\twelvesf}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
250 \let\sc=\csc
bce86c4163a3 Initial revision
kono
parents:
diff changeset
251 \ifolddigits
bce86c4163a3 Initial revision
kono
parents:
diff changeset
252 \let\cite@font=\tencscod
bce86c4163a3 Initial revision
kono
parents:
diff changeset
253 \else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
254 \let\cite@font=\elevencsc
bce86c4163a3 Initial revision
kono
parents:
diff changeset
255 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
256 \textfont\z@=\twelverm \scriptfont\z@=\ninerm \scriptscriptfont\z@=\sixrm
bce86c4163a3 Initial revision
kono
parents:
diff changeset
257 \textfont\@ne=\twelvei \scriptfont\@ne=\ninei \scriptscriptfont\@ne=\sixi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
258 \textfont\tw@=\twelvesy \scriptfont\tw@=\ninesy \scriptscriptfont\tw@=\sixsy
bce86c4163a3 Initial revision
kono
parents:
diff changeset
259 \textfont\thr@@=\twelveex \scriptfont\thr@@=\twelveex
bce86c4163a3 Initial revision
kono
parents:
diff changeset
260 \scriptscriptfont\thr@@=\twelveex
bce86c4163a3 Initial revision
kono
parents:
diff changeset
261 \textfont\itfam=\twelveit
bce86c4163a3 Initial revision
kono
parents:
diff changeset
262 \textfont\slfam=\twelvesl
bce86c4163a3 Initial revision
kono
parents:
diff changeset
263 \textfont\ttfam=\twelvett
bce86c4163a3 Initial revision
kono
parents:
diff changeset
264 \textfont\bffam=\twelvebf \scriptfont\bffam=\ninebf
bce86c4163a3 Initial revision
kono
parents:
diff changeset
265 \scriptscriptfont\bffam=\sixbf
bce86c4163a3 Initial revision
kono
parents:
diff changeset
266 \let\chap@font=\twelvechap@font
bce86c4163a3 Initial revision
kono
parents:
diff changeset
267 \let\sec@font=\twelvesec@font
bce86c4163a3 Initial revision
kono
parents:
diff changeset
268 \let\subsec@font=\twelvesubsec@font
bce86c4163a3 Initial revision
kono
parents:
diff changeset
269 \let\subsubsec@font=\twelvebf
bce86c4163a3 Initial revision
kono
parents:
diff changeset
270 \def\oldstyle{\fam1\twelvei}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
271 \setspacing
bce86c4163a3 Initial revision
kono
parents:
diff changeset
272 \curfont
bce86c4163a3 Initial revision
kono
parents:
diff changeset
273 \ifundefined{everypointsize}\else\everypointsize{twelve}{12}\fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
274 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
275
bce86c4163a3 Initial revision
kono
parents:
diff changeset
276 \def\tenpoint{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
277 \def\big@@AmS{8.5\p@}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
278 \def\Big@@AmS{11.5\p@}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
279 \def\bigg@@AmS{14.5\p@}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
280 \def\Bigg@@AmS{17.5\p@}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
281 \let\smallertype=\eightpoint
bce86c4163a3 Initial revision
kono
parents:
diff changeset
282 \let\curtype=\tenpoint
bce86c4163a3 Initial revision
kono
parents:
diff changeset
283 \let\biggertype=\twelvepoint
bce86c4163a3 Initial revision
kono
parents:
diff changeset
284 \def\normalspacing{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
285 \normalbaselineskip=18.9\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
286 \normalabovedisplayskip=12\p@ plus 3\p@ minus 9\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
287 \normalbelowdisplayskip=12\p@ plus 3\p@ minus 9\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
288 \normalabovedisplayshortskip=\z@ plus 3\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
289 \normalbelowdisplayshortskip=7\p@ plus 3\p@ minus 4\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
290 }%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
291 \def\rm{\font@no=0\fam\z@\tenrm}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
292 \def\it{\font@no=1\fam\itfam\tenit}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
293 \def\sl{\font@no=2\fam\slfam\tensl}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
294 \def\bf{\font@no=3\fam\bffam\tenbf}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
295 \def\tt{\font@no=4\fam\ttfam\tentt \spaceskip.5em plus.25em
bce86c4163a3 Initial revision
kono
parents:
diff changeset
296 minus.15em }%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
297 \def\csc{\font@no=5\tencsc}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
298 \def\bti{\font@no=6\tenbti}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
299 \def\sf{\font@no=7\tensf}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
300 \let\sc=\csc
bce86c4163a3 Initial revision
kono
parents:
diff changeset
301 \ifolddigits
bce86c4163a3 Initial revision
kono
parents:
diff changeset
302 \let\cite@font=\eightcscod
bce86c4163a3 Initial revision
kono
parents:
diff changeset
303 \else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
304 \let\cite@font=\ninecsc
bce86c4163a3 Initial revision
kono
parents:
diff changeset
305 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
306 \textfont\z@=\tenrm \scriptfont\z@=\sevenrm \scriptscriptfont\z@=\fiverm
bce86c4163a3 Initial revision
kono
parents:
diff changeset
307 \textfont\@ne=\teni \scriptfont\@ne=\seveni \scriptscriptfont\@ne=\fivei
bce86c4163a3 Initial revision
kono
parents:
diff changeset
308 \textfont\tw@=\tensy \scriptfont\tw@=\sevensy \scriptscriptfont\tw@=\fivesy
bce86c4163a3 Initial revision
kono
parents:
diff changeset
309 \textfont\thr@@=\tenex \scriptfont\thr@@=\tenex
bce86c4163a3 Initial revision
kono
parents:
diff changeset
310 \scriptscriptfont\thr@@=\tenex
bce86c4163a3 Initial revision
kono
parents:
diff changeset
311 \textfont\itfam=\tenit
bce86c4163a3 Initial revision
kono
parents:
diff changeset
312 \textfont\slfam=\tensl
bce86c4163a3 Initial revision
kono
parents:
diff changeset
313 \textfont\ttfam=\tentt
bce86c4163a3 Initial revision
kono
parents:
diff changeset
314 \textfont\bffam=\tenbf \scriptfont\bffam=\sevenbf
bce86c4163a3 Initial revision
kono
parents:
diff changeset
315 \scriptscriptfont\bffam=\fivebf
bce86c4163a3 Initial revision
kono
parents:
diff changeset
316 \let\chap@font=\tenchap@font
bce86c4163a3 Initial revision
kono
parents:
diff changeset
317 \let\sec@font=\tensec@font
bce86c4163a3 Initial revision
kono
parents:
diff changeset
318 \let\subsec@font=\tensubsec@font
bce86c4163a3 Initial revision
kono
parents:
diff changeset
319 \let\subsubsec@font=\tenbf
bce86c4163a3 Initial revision
kono
parents:
diff changeset
320 \def\oldstyle{\fam1\teni}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
321 \setspacing
bce86c4163a3 Initial revision
kono
parents:
diff changeset
322 \curfont
bce86c4163a3 Initial revision
kono
parents:
diff changeset
323 \ifundefined{everypointsize}\else\everypointsize{ten}{10}\fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
324 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
325
bce86c4163a3 Initial revision
kono
parents:
diff changeset
326 \def\eightpoint{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
327 \def\big@@AmS{6.8\p@}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
328 \def\Big@@AmS{9.2\p@}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
329 \def\bigg@@AmS{11.6\p@}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
330 \def\Bigg@@AmS{14.0\p@}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
331 \def\smallertype{\errmessage{No smaller point size available}}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
332 \let\curtype=\eightpoint
bce86c4163a3 Initial revision
kono
parents:
diff changeset
333 \let\biggertype=\tenpoint
bce86c4163a3 Initial revision
kono
parents:
diff changeset
334 \def\normalspacing{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
335 \normalbaselineskip=15\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
336 \normalabovedisplayskip=10\p@ plus 2.4\p@ minus 7.2\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
337 \normalbelowdisplayskip=10\p@ plus 2.4\p@ minus 7.2\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
338 \normalabovedisplayshortskip=\z@ plus 2.4\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
339 \normalbelowdisplayshortskip=55.6\p@ plus 2.4\p@ minus 3.2\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
340 }%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
341 \def\rm{\font@no=0\fam\z@\eightrm}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
342 \def\it{\font@no=1\fam\itfam\eightit}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
343 \def\sl{\font@no=2\fam\slfam\eightsl}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
344 \def\bf{\font@no=3\fam\bffam\eightbf}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
345 \def\tt{\font@no=4\fam\ttfam\eighttt \spaceskip.5em plus.25em
bce86c4163a3 Initial revision
kono
parents:
diff changeset
346 minus.15em }%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
347 \def\csc{\font@no=5\eightcsc}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
348 \def\bti{\font@no=6\eightbti}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
349 \def\sf{\font@no=7\eightsf}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
350 \let\sc=\csc
bce86c4163a3 Initial revision
kono
parents:
diff changeset
351 \def\cite@font{\errmessage{You may not do citations in 8 point}}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
352 \textfont\z@=\eightrm \scriptfont\z@=\sixrm \scriptscriptfont\z@=\fiverm
bce86c4163a3 Initial revision
kono
parents:
diff changeset
353 \textfont\@ne=\eighti \scriptfont\@ne=\sixi \scriptscriptfont\@ne=\fivei
bce86c4163a3 Initial revision
kono
parents:
diff changeset
354 \textfont\tw@=\eightsy \scriptfont\tw@=\sixsy \scriptscriptfont\tw@=\fivesy
bce86c4163a3 Initial revision
kono
parents:
diff changeset
355 \textfont\thr@@=\eightex \scriptfont\thr@@=\eightex
bce86c4163a3 Initial revision
kono
parents:
diff changeset
356 \scriptscriptfont\thr@@=\eightex
bce86c4163a3 Initial revision
kono
parents:
diff changeset
357 \textfont\itfam=\eightit
bce86c4163a3 Initial revision
kono
parents:
diff changeset
358 \textfont\slfam=\eightsl
bce86c4163a3 Initial revision
kono
parents:
diff changeset
359 \textfont\ttfam=\eighttt
bce86c4163a3 Initial revision
kono
parents:
diff changeset
360 \textfont\bffam=\eightbf \scriptfont\bffam=\sixbf
bce86c4163a3 Initial revision
kono
parents:
diff changeset
361 \scriptscriptfont\bffam=\fivebf
bce86c4163a3 Initial revision
kono
parents:
diff changeset
362 \let\chap@font=\eightchap@font
bce86c4163a3 Initial revision
kono
parents:
diff changeset
363 \let\sec@font=\eightsec@font
bce86c4163a3 Initial revision
kono
parents:
diff changeset
364 \let\subsec@font=\eightsubsec@font
bce86c4163a3 Initial revision
kono
parents:
diff changeset
365 \let\subsubsec@font=\eightbf
bce86c4163a3 Initial revision
kono
parents:
diff changeset
366 \def\oldstyle{\fam1\eighti}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
367 \setspacing
bce86c4163a3 Initial revision
kono
parents:
diff changeset
368 \curfont
bce86c4163a3 Initial revision
kono
parents:
diff changeset
369 \ifundefined{everypointsize}\else\everypointsize{eight}{10}\fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
370 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
371
bce86c4163a3 Initial revision
kono
parents:
diff changeset
372
bce86c4163a3 Initial revision
kono
parents:
diff changeset
373 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
374 % TABLE of CONTENTS Macros %
bce86c4163a3 Initial revision
kono
parents:
diff changeset
375 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
376
bce86c4163a3 Initial revision
kono
parents:
diff changeset
377 % This set of macros allows you to build a table of contents for a document
bce86c4163a3 Initial revision
kono
parents:
diff changeset
378 % automatically in TeX. There are only three control sequences which you
bce86c4163a3 Initial revision
kono
parents:
diff changeset
379 % will need to use. The first is \inicont, which initializes the macros.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
380 % This package works by writing the appropriate lines into a file called
bce86c4163a3 Initial revision
kono
parents:
diff changeset
381 % \jobname.toc in your account. This file is read by \printcontents or
bce86c4163a3 Initial revision
kono
parents:
diff changeset
382 % by \printcont in PRINT-PRELIM.TEX.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
383 %
bce86c4163a3 Initial revision
kono
parents:
diff changeset
384 \newwrite\cont@file % Get a free channel to write to
bce86c4163a3 Initial revision
kono
parents:
diff changeset
385 \newif\ifcont@closed
bce86c4163a3 Initial revision
kono
parents:
diff changeset
386 \cont@closedtrue % Haven't opened contents file yet
bce86c4163a3 Initial revision
kono
parents:
diff changeset
387 \newwrite\fig@file
bce86c4163a3 Initial revision
kono
parents:
diff changeset
388 \newwrite\tab@file
bce86c4163a3 Initial revision
kono
parents:
diff changeset
389 \newif\iffig@closed
bce86c4163a3 Initial revision
kono
parents:
diff changeset
390 \fig@closedtrue % Or the list of figures file
bce86c4163a3 Initial revision
kono
parents:
diff changeset
391 \newif\iftab@closed
bce86c4163a3 Initial revision
kono
parents:
diff changeset
392 \tab@closedtrue % Or the tables file
bce86c4163a3 Initial revision
kono
parents:
diff changeset
393
bce86c4163a3 Initial revision
kono
parents:
diff changeset
394 \def\contitle{\jobname.toc} % Default name of contents file
bce86c4163a3 Initial revision
kono
parents:
diff changeset
395 \def\figtitle{\jobname.lof} % ditto for figures file
bce86c4163a3 Initial revision
kono
parents:
diff changeset
396 \def\tabtitle{\jobname.lot} % ditto for tables file
bce86c4163a3 Initial revision
kono
parents:
diff changeset
397
bce86c4163a3 Initial revision
kono
parents:
diff changeset
398 % Make sure the contents file is open before writing to it
bce86c4163a3 Initial revision
kono
parents:
diff changeset
399 \def\opencontfile{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
400 \ifcont@closed
bce86c4163a3 Initial revision
kono
parents:
diff changeset
401 \immediate\openout\cont@file=\contitle
bce86c4163a3 Initial revision
kono
parents:
diff changeset
402 \cont@closedfalse
bce86c4163a3 Initial revision
kono
parents:
diff changeset
403 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
404 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
405
bce86c4163a3 Initial revision
kono
parents:
diff changeset
406 %
bce86c4163a3 Initial revision
kono
parents:
diff changeset
407 % This control sequence adds its argument to the table of contents.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
408 %
bce86c4163a3 Initial revision
kono
parents:
diff changeset
409 \def\content#1{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
410 \opencontfile
bce86c4163a3 Initial revision
kono
parents:
diff changeset
411 \let\\=\space
bce86c4163a3 Initial revision
kono
parents:
diff changeset
412 \write\cont@file{\string\Z{#1}{\the\pageno}}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
413 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
414
bce86c4163a3 Initial revision
kono
parents:
diff changeset
415 %
bce86c4163a3 Initial revision
kono
parents:
diff changeset
416 % This control sequence is the same as \content except that the first
bce86c4163a3 Initial revision
kono
parents:
diff changeset
417 % box written will have two leading spaces to indent it.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
418 %
bce86c4163a3 Initial revision
kono
parents:
diff changeset
419 \def\subcontent#1{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
420 \opencontfile
bce86c4163a3 Initial revision
kono
parents:
diff changeset
421 \let\\=\space
bce86c4163a3 Initial revision
kono
parents:
diff changeset
422 \write\cont@file{\string\Z{\string\hskip \parindent{}#1}{\the\pageno}}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
423 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
424
bce86c4163a3 Initial revision
kono
parents:
diff changeset
425 % And the same thing for sub-sections
bce86c4163a3 Initial revision
kono
parents:
diff changeset
426 \def\subsubcontent#1{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
427 \opencontfile
bce86c4163a3 Initial revision
kono
parents:
diff changeset
428 \let\\=\space
bce86c4163a3 Initial revision
kono
parents:
diff changeset
429 \write\cont@file{\string\Z{\string\hskip 2\parindent{}#1}{\the\pageno}}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
430 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
431
bce86c4163a3 Initial revision
kono
parents:
diff changeset
432 % And the same thing for sub-sub-sections
bce86c4163a3 Initial revision
kono
parents:
diff changeset
433 \def\subsubsubcontent#1{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
434 \opencontfile
bce86c4163a3 Initial revision
kono
parents:
diff changeset
435 \let\\=\space
bce86c4163a3 Initial revision
kono
parents:
diff changeset
436 \write\cont@file{\string\Z{\string\hskip 3\parindent{}#1}{\the\pageno}}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
437 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
438
bce86c4163a3 Initial revision
kono
parents:
diff changeset
439 % Simple table-of-contents printer for \articlestyle.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
440 % For dissertations, use the one in print-prelim.tex.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
441 % Use this macro as the last thing in your report, since it makes
bce86c4163a3 Initial revision
kono
parents:
diff changeset
442 % the page numbers be in romannumerals at the bottom of the page.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
443 \def\printcontents{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
444 \closeout \cont@file
bce86c4163a3 Initial revision
kono
parents:
diff changeset
445 \null\vfill\supereject % Close output, end last page
bce86c4163a3 Initial revision
kono
parents:
diff changeset
446 \twelvepoint\rm % Make sure we're in normal mode
bce86c4163a3 Initial revision
kono
parents:
diff changeset
447 \pageno=\m@ne % Contents get roman numerals.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
448 \plain@page@numbers % Put page #s at bottom only
bce86c4163a3 Initial revision
kono
parents:
diff changeset
449 \oktell{Table of Contents}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
450 \null \vskip .8in minus\baselineskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
451 \centerline{\chap@font Contents}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
452 \vskip \tw@\baselineskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
453 \rightline{Page}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
454 \begingroup % Temporarily change \baselineskip to avoid
bce86c4163a3 Initial revision
kono
parents:
diff changeset
455 % underfull \vbox's during output errors.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
456 \baselineskip=\@ne\baselineskip plus .05\baselineskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
457 \def\Z##1##2{\line{\ignorespaces##1\leaders
bce86c4163a3 Initial revision
kono
parents:
diff changeset
458 \hbox to.7em{.\hfil}\hfil\hbox to2em{\hss##2}}}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
459 \catcode`@=11
bce86c4163a3 Initial revision
kono
parents:
diff changeset
460 \let\\=\space
bce86c4163a3 Initial revision
kono
parents:
diff changeset
461 \input\contitle \relax
bce86c4163a3 Initial revision
kono
parents:
diff changeset
462 \endgroup % Also undoes the \catcode change
bce86c4163a3 Initial revision
kono
parents:
diff changeset
463 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
464
bce86c4163a3 Initial revision
kono
parents:
diff changeset
465
bce86c4163a3 Initial revision
kono
parents:
diff changeset
466 %%%%%%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
467 % NUMBERED FOOTNOTES %
bce86c4163a3 Initial revision
kono
parents:
diff changeset
468 %%%%%%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
469
bce86c4163a3 Initial revision
kono
parents:
diff changeset
470 % First, modify \vfootnote from Plain to use smallertype and singlespace
bce86c4163a3 Initial revision
kono
parents:
diff changeset
471 \def\vfootnote#1{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
472 \insert\footins\bgroup\tenpoint\singlespace
bce86c4163a3 Initial revision
kono
parents:
diff changeset
473 \interlinepenalty\interfootnotelinepenalty
bce86c4163a3 Initial revision
kono
parents:
diff changeset
474 \splittopskip\ht\strutbox % top baseline for broken footnotes
bce86c4163a3 Initial revision
kono
parents:
diff changeset
475 \splitmaxdepth\dp\strutbox \floatingpenalty\@MM
bce86c4163a3 Initial revision
kono
parents:
diff changeset
476 \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
477 \parindent=.13in
bce86c4163a3 Initial revision
kono
parents:
diff changeset
478 \textindent{#1}\footstrut\futurelet\next\fo@t
bce86c4163a3 Initial revision
kono
parents:
diff changeset
479 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
480
bce86c4163a3 Initial revision
kono
parents:
diff changeset
481 % Allocate a counter for the numbered footnotes
bce86c4163a3 Initial revision
kono
parents:
diff changeset
482 \newcount\note@count \note@count=\@ne
bce86c4163a3 Initial revision
kono
parents:
diff changeset
483
bce86c4163a3 Initial revision
kono
parents:
diff changeset
484 \def\nfootnote#1{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
485 \unskip\footnote{$^{\number\note@count}$}{#1}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
486 \global\advance\note@count by\@ne
bce86c4163a3 Initial revision
kono
parents:
diff changeset
487 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
488
bce86c4163a3 Initial revision
kono
parents:
diff changeset
489 % Same except that trailing period or comma is ``tucked'' under
bce86c4163a3 Initial revision
kono
parents:
diff changeset
490 % the note mark. \ntucknote provides auto numbering.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
491 \def\ntucknote#1#2{\nfootnote{#1}\llap{#2}}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
492 \def\tucknote#1#2#3{\footnote{#1}{#2}\llap{#3}}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
493
bce86c4163a3 Initial revision
kono
parents:
diff changeset
494
bce86c4163a3 Initial revision
kono
parents:
diff changeset
495 %%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
496 % UTILITY MACROS %
bce86c4163a3 Initial revision
kono
parents:
diff changeset
497 %%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
498
bce86c4163a3 Initial revision
kono
parents:
diff changeset
499 % Insert a discretionary hyphen. For use in restricted
bce86c4163a3 Initial revision
kono
parents:
diff changeset
500 % horizontal mode, as in the bibliography.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
501 \def\hyphenbreak{\discretionary{-}{}{-}}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
502
bce86c4163a3 Initial revision
kono
parents:
diff changeset
503 % Check if a macro name is currently undefined (from The TeXbook)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
504 \def\ifundefined#1{\expandafter\ifx\csname#1\endcsname\relax}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
505
bce86c4163a3 Initial revision
kono
parents:
diff changeset
506 % Terminal input and output routines and auxilary stuff
bce86c4163a3 Initial revision
kono
parents:
diff changeset
507 \newwrite\undef@out@chan % Allocate a channel for the tty
bce86c4163a3 Initial revision
kono
parents:
diff changeset
508 \def\tell#1{{\let\\=\space\immediate\write\undef@out@chan{#1}}}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
509 \def\ask#1{\read-16 to #1} % Read from tty w/o prompt
bce86c4163a3 Initial revision
kono
parents:
diff changeset
510
bce86c4163a3 Initial revision
kono
parents:
diff changeset
511 % Sanitize a string before \write'ing it.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
512 % Call with \unexpanded{op}{msg}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
513 % Modified from version in The TeXbook, originally by Todd Allen
bce86c4163a3 Initial revision
kono
parents:
diff changeset
514 \long\def\unexpanded#1#2{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
515 \def\finwrite{#1}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
516 {\aftergroup\finwrite\aftergroup{\sanitize@uci#2\endsanity@uci}}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
517 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
518 \def\sanitize@uci{\futurelet\next@uci\sanswitch@uci}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
519 \def\sanswitch@uci{\ifx\next@uci\endsanity@uci
bce86c4163a3 Initial revision
kono
parents:
diff changeset
520 \else\ifx\next@uci\\\aftergroup\space\let\next@uci=\eat@uci
bce86c4163a3 Initial revision
kono
parents:
diff changeset
521 \else\ifcat\noexpand\next@uci\space\aftergroup\space\let\next@uci=\eat@uci
bce86c4163a3 Initial revision
kono
parents:
diff changeset
522 \else\ifcat\noexpand\next@uci\bgroup\aftergroup{\let\next@uci=\eat@uci
bce86c4163a3 Initial revision
kono
parents:
diff changeset
523 \else\ifcat\noexpand\next@uci\egroup\aftergroup}\let\next@uci=\eat@uci
bce86c4163a3 Initial revision
kono
parents:
diff changeset
524 \else\let\next@uci=\copytoken@uci\fi\fi\fi\fi\fi \next@uci
bce86c4163a3 Initial revision
kono
parents:
diff changeset
525 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
526 \def\eat@uci{\afterassignment\sanitize@uci \let\next@uci= }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
527 \long\def\copytoken@uci#1{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
528 \ifcat\noexpand#1\relax\aftergroup\noexpand
bce86c4163a3 Initial revision
kono
parents:
diff changeset
529 \else\ifcat\noexpand#1\noexpand~\aftergroup\noexpand
bce86c4163a3 Initial revision
kono
parents:
diff changeset
530 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
531 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
532 \aftergroup#1\sanitize@uci
bce86c4163a3 Initial revision
kono
parents:
diff changeset
533 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
534 \def\endsanity@uci\endsanity@uci{}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
535
bce86c4163a3 Initial revision
kono
parents:
diff changeset
536 % Now use the sanity stuff to make a sane tell command. This macro
bce86c4163a3 Initial revision
kono
parents:
diff changeset
537 % actually takes one argument, but since it's the last for \unexpanded,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
538 % we avoid scanning it twice by not picking it up here.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
539 \def\sanetell{\unexpanded{\immediate\write\undef@out@chan}}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
540
bce86c4163a3 Initial revision
kono
parents:
diff changeset
541 % Produce verbatim listings of various sorts
bce86c4163a3 Initial revision
kono
parents:
diff changeset
542
bce86c4163a3 Initial revision
kono
parents:
diff changeset
543 \def\uncatcodespecials{\def\do##1{\catcode`##1=12 } \dospecials}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
544 \def\setupverbatim{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
545 \par \tt \spaceskip=\z@ % Want fixed tt spacing now
bce86c4163a3 Initial revision
kono
parents:
diff changeset
546 \obeylines \uncatcodespecials \obeyspaces \verbatimdefs
bce86c4163a3 Initial revision
kono
parents:
diff changeset
547 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
548
bce86c4163a3 Initial revision
kono
parents:
diff changeset
549 % This macro turns on verbatim mode until ?endverbatim is seen.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
550 \def\verbatim{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
551 \begingroup \setupverbatim
bce86c4163a3 Initial revision
kono
parents:
diff changeset
552 \parskip=\z@ plus .05\baselineskip \parindent=\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
553 \catcode`\ =13 \catcode`\^^M=13 \catcode`\?=\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
554 \verbatimgobble
bce86c4163a3 Initial revision
kono
parents:
diff changeset
555 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
556 {\catcode`\^^M=13{\catcode`\ =13\gdef\verbatimdefs{\def^^M{\ \par}\let =\ }}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
557 \gdef\verbatimgobble#1^^M{}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
558 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
559
bce86c4163a3 Initial revision
kono
parents:
diff changeset
560 % This defines ?endverbatim to end the group which begins with \verbatim
bce86c4163a3 Initial revision
kono
parents:
diff changeset
561 \let\endverbatim=\endgroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
562
bce86c4163a3 Initial revision
kono
parents:
diff changeset
563 % Input a file in verbatim mode. Sometimes useful for including
bce86c4163a3 Initial revision
kono
parents:
diff changeset
564 % real-life examples into a paper.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
565 \def\verbfile#1{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
566 \begingroup\setupverbatim
bce86c4163a3 Initial revision
kono
parents:
diff changeset
567 \parskip=\z@ plus .05\baselineskip \parindent=\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
568 \input#1 \endgroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
569 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
570
bce86c4163a3 Initial revision
kono
parents:
diff changeset
571 % This is the same as the above, but it adds line numbers to each
bce86c4163a3 Initial revision
kono
parents:
diff changeset
572 % line of the file printed. \lineno@uci has the obvious use.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
573 \newcount\lineno@uci
bce86c4163a3 Initial revision
kono
parents:
diff changeset
574 \def\listing#1{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
575 \lineno@uci=\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
576 \begingroup\setupverbatim
bce86c4163a3 Initial revision
kono
parents:
diff changeset
577 \parskip=\z@ plus .05\baselineskip \parindent=20\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
578 \everypar{\advance\lineno@uci by\@ne \llap{\the\lineno@uci\ \ }}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
579 \input#1
bce86c4163a3 Initial revision
kono
parents:
diff changeset
580 \endgroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
581 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
582
bce86c4163a3 Initial revision
kono
parents:
diff changeset
583 % Draw a little qed symbol (black box)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
584 \def\qed{\hbox{\hskip\p@ \vrule width4\p@ height6\p@ depth1.5\p@ \hskip\p@}}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
585
bce86c4163a3 Initial revision
kono
parents:
diff changeset
586 % Conditions -- from AmSppt
bce86c4163a3 Initial revision
kono
parents:
diff changeset
587 \newif\ifrunin@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
588 \runin@AmSfalse
bce86c4163a3 Initial revision
kono
parents:
diff changeset
589 \let\runin=\runin@AmStrue
bce86c4163a3 Initial revision
kono
parents:
diff changeset
590 \newdimen\cond@dimen
bce86c4163a3 Initial revision
kono
parents:
diff changeset
591 \newdimen\condindent % Amount each nested condition is indented
bce86c4163a3 Initial revision
kono
parents:
diff changeset
592 \condindent=.5in % Default indentation amount
bce86c4163a3 Initial revision
kono
parents:
diff changeset
593
bce86c4163a3 Initial revision
kono
parents:
diff changeset
594 % This is used in \conditions
bce86c4163a3 Initial revision
kono
parents:
diff changeset
595 \def\firstcon@AmS#1:{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
596 \ifrunin@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
597 {\rm\ignorespaces#1\unskip}\ignorespaces
bce86c4163a3 Initial revision
kono
parents:
diff changeset
598 \runin@AmSfalse
bce86c4163a3 Initial revision
kono
parents:
diff changeset
599 \else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
600 \par
bce86c4163a3 Initial revision
kono
parents:
diff changeset
601 \ifdim\lastskip<\smallskipamount
bce86c4163a3 Initial revision
kono
parents:
diff changeset
602 \removelastskip \penalty55 \smallskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
603 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
604 \\#1:%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
605 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
606 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
607
bce86c4163a3 Initial revision
kono
parents:
diff changeset
608 % Do one item of the conditions. This is really \\ in disguise.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
609 \def\cond@item#1:{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
610 \par\noindent
bce86c4163a3 Initial revision
kono
parents:
diff changeset
611 \hbox to \cond@dimen{\hfil\rm\ignorespaces#1\unskip\quad}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
612 \hangafter1
bce86c4163a3 Initial revision
kono
parents:
diff changeset
613 \hangindent\cond@dimen\ignorespaces
bce86c4163a3 Initial revision
kono
parents:
diff changeset
614 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
615
bce86c4163a3 Initial revision
kono
parents:
diff changeset
616 \cond@dimen=\z@ % Value for outermost block
bce86c4163a3 Initial revision
kono
parents:
diff changeset
617 % Do the main stuff for \conditions.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
618 \def\conditions{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
619 \par
bce86c4163a3 Initial revision
kono
parents:
diff changeset
620 \let\\=\cond@item
bce86c4163a3 Initial revision
kono
parents:
diff changeset
621 \begingroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
622 \advance\cond@dimen by\condindent
bce86c4163a3 Initial revision
kono
parents:
diff changeset
623 \firstcon@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
624 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
625
bce86c4163a3 Initial revision
kono
parents:
diff changeset
626 % Exit special stuff for \conditions.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
627 \def\endconditions{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
628 \par\smallbreak\endgroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
629 \ifdim\cond@dimen>\z@ \cond@item \fi % If ending an inner condition
bce86c4163a3 Initial revision
kono
parents:
diff changeset
630 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
631
bce86c4163a3 Initial revision
kono
parents:
diff changeset
632 % Automatically numbered items
bce86c4163a3 Initial revision
kono
parents:
diff changeset
633 \newcount\item@count
bce86c4163a3 Initial revision
kono
parents:
diff changeset
634 \newdimen\item@dimen \item@dimen=\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
635 \def\item@prefix{}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
636 \def\beginitems{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
637 \begingroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
638 \advance \parindent by\item@dimen
bce86c4163a3 Initial revision
kono
parents:
diff changeset
639 \ifnum\item@dimen>\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
640 \edef\item@prefix{\item@prefix\number\item@count.}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
641 \else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
642 \item@dimen=1cm
bce86c4163a3 Initial revision
kono
parents:
diff changeset
643 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
644 \item@count=\z@ \singlespace \interlinepenalty=200
bce86c4163a3 Initial revision
kono
parents:
diff changeset
645 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
646 \def\enditems{\par\endgroup}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
647 \def\nitem{\advance\item@count by\@ne \item{\item@prefix\number\item@count.}}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
648
bce86c4163a3 Initial revision
kono
parents:
diff changeset
649 % Turn back on the \+ construct of plain TeX.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
650 \def\tabalign{\us@true\m@ketabbox}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
651 \outer\def\+{\tabalign}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
652
bce86c4163a3 Initial revision
kono
parents:
diff changeset
653 % Fix AmSTeX's definition used in its definition of ~ (tie).
bce86c4163a3 Initial revision
kono
parents:
diff changeset
654 \def\s@AmS{\penalty\@M\ifx\tok@AmS\Space@AmS\else\ \fi}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
655
bce86c4163a3 Initial revision
kono
parents:
diff changeset
656 % And make \/ work the way it does in plain.tex
bce86c4163a3 Initial revision
kono
parents:
diff changeset
657 \let\/=\ic@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
658
bce86c4163a3 Initial revision
kono
parents:
diff changeset
659 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
660 % PAGE CONTROL and OBJECT MANIPULATION %
bce86c4163a3 Initial revision
kono
parents:
diff changeset
661 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
662
bce86c4163a3 Initial revision
kono
parents:
diff changeset
663 % This definition doesn't blow up if you're in vertical mode already
bce86c4163a3 Initial revision
kono
parents:
diff changeset
664 \def\pagebreak{\ifhmode\vadjust{\break}\else\break\relax}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
665
bce86c4163a3 Initial revision
kono
parents:
diff changeset
666 % This definition clears out all previous inserts etc to
bce86c4163a3 Initial revision
kono
parents:
diff changeset
667 % guarantee that the following stuff is at the top of a page.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
668 \def\clearpage{\vfill\supereject}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
669
bce86c4163a3 Initial revision
kono
parents:
diff changeset
670 % This macro keeps the stuff in the argument on the same page, leaving
bce86c4163a3 Initial revision
kono
parents:
diff changeset
671 % blank space on this page if necessary
bce86c4163a3 Initial revision
kono
parents:
diff changeset
672 \def\keep{\par\setbox\z@=\vbox\bgroup}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
673 \def\endkeep{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
674 \egroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
675 \dimen@=\ht\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
676 \advance\dimen@ by\dp\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
677 \vskip\z@ plus\dimen@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
678 \penalty\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
679 \vskip\z@ plus-\dimen@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
680 \vskip\parskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
681 \box\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
682 \goodbreak
bce86c4163a3 Initial revision
kono
parents:
diff changeset
683 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
684 \def\filkeep{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
685 \egroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
686 \filbreak
bce86c4163a3 Initial revision
kono
parents:
diff changeset
687 \vskip\parskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
688 \box\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
689 \goodbreak
bce86c4163a3 Initial revision
kono
parents:
diff changeset
690 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
691
bce86c4163a3 Initial revision
kono
parents:
diff changeset
692 % List macros from the TeXbook
bce86c4163a3 Initial revision
kono
parents:
diff changeset
693
bce86c4163a3 Initial revision
kono
parents:
diff changeset
694 \toksdef\ta=\z@ \toksdef\tb=\tw@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
695 \newif\ifresult@uci
bce86c4163a3 Initial revision
kono
parents:
diff changeset
696
bce86c4163a3 Initial revision
kono
parents:
diff changeset
697 % usage: \newlist\list
bce86c4163a3 Initial revision
kono
parents:
diff changeset
698 \def\newlist#1{\let#1=\empty}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
699
bce86c4163a3 Initial revision
kono
parents:
diff changeset
700 % usage: \append{item}\to\list
bce86c4163a3 Initial revision
kono
parents:
diff changeset
701 \def\append#1\to#2{\ta={\\{#1}}\tb=\expandafter{#2}\edef#2{\the\tb\the\ta}}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
702 \def\gappend#1\to#2{\ta={\\{#1}}\tb=\expandafter{#2}\xdef#2{\the\tb\the\ta}}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
703
bce86c4163a3 Initial revision
kono
parents:
diff changeset
704 % usage: \cardinality\list\to\counter
bce86c4163a3 Initial revision
kono
parents:
diff changeset
705 \def\cardinality#1\to#2{#2=\z@ \long\def\\##1{\advance#2 by\@ne }#1}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
706
bce86c4163a3 Initial revision
kono
parents:
diff changeset
707 % usage: \ifismember{item}\of\list ... \else ... \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
708 \def\ifismember#1\of#2{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
709 \def\given@uci{#1}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
710 \result@ucifalse
bce86c4163a3 Initial revision
kono
parents:
diff changeset
711 \def\\##1{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
712 \def\next@uci{##1}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
713 \ifx\next@uci\given@uci \result@ucitrue\fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
714 }%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
715 #2%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
716 \ifresult@uci
bce86c4163a3 Initial revision
kono
parents:
diff changeset
717 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
718
bce86c4163a3 Initial revision
kono
parents:
diff changeset
719 % usage: \ifwasmember{item}\of\list ... \else ... \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
720 % side effect: removes {item} from \list if present
bce86c4163a3 Initial revision
kono
parents:
diff changeset
721 \def\ifwasmember#1\of#2{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
722 \newlist\ref@mtr
bce86c4163a3 Initial revision
kono
parents:
diff changeset
723 \def\given@uci{#1}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
724 \result@ucifalse
bce86c4163a3 Initial revision
kono
parents:
diff changeset
725 \def\\##1{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
726 \def\next@uci{##1}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
727 \ifx\next@uci\given@uci
bce86c4163a3 Initial revision
kono
parents:
diff changeset
728 \result@ucitrue
bce86c4163a3 Initial revision
kono
parents:
diff changeset
729 \else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
730 \append ##1\to\ref@mtr
bce86c4163a3 Initial revision
kono
parents:
diff changeset
731 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
732 }%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
733 #2%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
734 \let#2=\ref@mtr
bce86c4163a3 Initial revision
kono
parents:
diff changeset
735 \ifresult@uci
bce86c4163a3 Initial revision
kono
parents:
diff changeset
736 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
737
bce86c4163a3 Initial revision
kono
parents:
diff changeset
738 % Append #1 to list #2 if #1 is not already in #2
bce86c4163a3 Initial revision
kono
parents:
diff changeset
739 \def\addtolist#1\to#2{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
740 \ifismember#1\of#2%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
741 \else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
742 \append #1\to #2%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
743 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
744 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
745 % Same thing, but do it \global'ly
bce86c4163a3 Initial revision
kono
parents:
diff changeset
746 \def\gaddtolist#1\to#2{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
747 \ifismember#1\of#2%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
748 \else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
749 \gappend#1\to#2%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
750 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
751 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
752
bce86c4163a3 Initial revision
kono
parents:
diff changeset
753
bce86c4163a3 Initial revision
kono
parents:
diff changeset
754 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
755 % STUFF for BIBLIOGRAPHY and APPENDICES %
bce86c4163a3 Initial revision
kono
parents:
diff changeset
756 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
757
bce86c4163a3 Initial revision
kono
parents:
diff changeset
758 % Bibliography Package:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
759 % Original version by Michal Spivak
bce86c4163a3 Initial revision
kono
parents:
diff changeset
760 % Updated for JACM format and automated by Tim Morgan
bce86c4163a3 Initial revision
kono
parents:
diff changeset
761 % Final cleanup, and much-improved automation, by Marshall Rose
bce86c4163a3 Initial revision
kono
parents:
diff changeset
762 % Additional work and IEEE support by TM.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
763
bce86c4163a3 Initial revision
kono
parents:
diff changeset
764 % Simple appendix entry builder
bce86c4163a3 Initial revision
kono
parents:
diff changeset
765 \def\appendix#1#2{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
766 \par
bce86c4163a3 Initial revision
kono
parents:
diff changeset
767 \clearpage
bce86c4163a3 Initial revision
kono
parents:
diff changeset
768 \ifoddpages
bce86c4163a3 Initial revision
kono
parents:
diff changeset
769 \ifodd\pageno \else \null\vfill\eject\fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
770 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
771 \pageno@foot
bce86c4163a3 Initial revision
kono
parents:
diff changeset
772 \begingroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
773 \setbox\z@=\hbox{#1}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
774 \ifdim\wd\z@>\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
775 \content{Appendix #1: #2}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
776 \oktell{Appendix #1: #2}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
777 \def\title{Appendix #1\\#2}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
778 \else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
779 \content{Appendix: #2}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
780 \oktell{Appendix: #2}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
781 \def\title{Appendix\\#2}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
782 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
783 \let\\=\cr \tabskip=\z@ \chap@font
bce86c4163a3 Initial revision
kono
parents:
diff changeset
784 \halign to\hsize{\centerline{\ignorespaces##\unskip}\cr\title\cr}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
785 \endgroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
786 \nobreak
bce86c4163a3 Initial revision
kono
parents:
diff changeset
787 \vskip 1.0in minus 0.15in
bce86c4163a3 Initial revision
kono
parents:
diff changeset
788 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
789
bce86c4163a3 Initial revision
kono
parents:
diff changeset
790
bce86c4163a3 Initial revision
kono
parents:
diff changeset
791 % Citations:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
792 % We keep a running list, \ref@set, which is
bce86c4163a3 Initial revision
kono
parents:
diff changeset
793 % all the things which were \cite'd throughout the paper, with
bce86c4163a3 Initial revision
kono
parents:
diff changeset
794 % only one entry for each different key.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
795 %
bce86c4163a3 Initial revision
kono
parents:
diff changeset
796 % There are three versions of each of the citation
bce86c4163a3 Initial revision
kono
parents:
diff changeset
797 % commands:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
798 % 1. The \def'd version is the normal one used throughout the paper.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
799 % 2. Within a figure, table, etc,'s caption, because of the use of
bce86c4163a3 Initial revision
kono
parents:
diff changeset
800 % \def and \edef, a special version which just produces the
bce86c4163a3 Initial revision
kono
parents:
diff changeset
801 % citation without the \gaddtolist command is used. These
bce86c4163a3 Initial revision
kono
parents:
diff changeset
802 % definitions are predefined, and are \let to be \cite etc with
bce86c4163a3 Initial revision
kono
parents:
diff changeset
803 % \no@cites, for speed.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
804 %
bce86c4163a3 Initial revision
kono
parents:
diff changeset
805 % When the user requests a citation with key, we first look it up
bce86c4163a3 Initial revision
kono
parents:
diff changeset
806 % in a translation table called \key@table, organized as a list of
bce86c4163a3 Initial revision
kono
parents:
diff changeset
807 % <key, printed-key> pairs, to see if it really should be
bce86c4163a3 Initial revision
kono
parents:
diff changeset
808 % printed differently. The user can specify this translation table using
bce86c4163a3 Initial revision
kono
parents:
diff changeset
809 % the \printkey command. If a key is not in the table, it is printed
bce86c4163a3 Initial revision
kono
parents:
diff changeset
810 % as-is.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
811
bce86c4163a3 Initial revision
kono
parents:
diff changeset
812 % We keep the dimension \key@size as the largest printed key so far.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
813 % This value can then be used to print the keys in the bibliography
bce86c4163a3 Initial revision
kono
parents:
diff changeset
814 % optimally, rather than just trying to guess. Each time we print a
bce86c4163a3 Initial revision
kono
parents:
diff changeset
815 % (in \use@key), we see if it's longer than \key@size, and if so then
bce86c4163a3 Initial revision
kono
parents:
diff changeset
816 % we set \key@size = its width.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
817 \newdimen\key@size
bce86c4163a3 Initial revision
kono
parents:
diff changeset
818 \key@size=\z@ % Init. value so \key@size is made as small as possible
bce86c4163a3 Initial revision
kono
parents:
diff changeset
819
bce86c4163a3 Initial revision
kono
parents:
diff changeset
820 % Invisible citation. usage: \icite{key}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
821 \def\icite#1{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
822 \gaddtolist#1\to\ref@set
bce86c4163a3 Initial revision
kono
parents:
diff changeset
823 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
824
bce86c4163a3 Initial revision
kono
parents:
diff changeset
825 % Management of \key@table stuff. This table is formatted as
bce86c4163a3 Initial revision
kono
parents:
diff changeset
826 % \\{real-key}{printed-key}...
bce86c4163a3 Initial revision
kono
parents:
diff changeset
827 \newlist\key@table
bce86c4163a3 Initial revision
kono
parents:
diff changeset
828
bce86c4163a3 Initial revision
kono
parents:
diff changeset
829 % Add a pair of items to the list. This should be done before any
bce86c4163a3 Initial revision
kono
parents:
diff changeset
830 % citations are made, for obvious reasons.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
831 % #1=real key (the one you use in the paper and bibliography)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
832 % #2=the key that gets printed in the output
bce86c4163a3 Initial revision
kono
parents:
diff changeset
833 \def\printkey#1#2{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
834 \ta={\\{#1}{#2}}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
835 \tb=\expandafter{\key@table}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
836 \xdef\key@table{\the\tb\the\ta}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
837 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
838
bce86c4163a3 Initial revision
kono
parents:
diff changeset
839 % Print a key, looking it up in the table. #1 is \whatever which
bce86c4163a3 Initial revision
kono
parents:
diff changeset
840 % expands to the key used by the user. The definition of \\ here
bce86c4163a3 Initial revision
kono
parents:
diff changeset
841 % makes use of the format of the \key@table, so that the table is
bce86c4163a3 Initial revision
kono
parents:
diff changeset
842 % actually EXECUTED, hence making lookup relatively fast.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
843 \newif\if@not@printed@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
844 \def\use@key#1{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
845 \@not@printed@true
bce86c4163a3 Initial revision
kono
parents:
diff changeset
846 \def\\##1##2{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
847 \if@not@printed@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
848 \def\temp@uci{##1}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
849 \ifx\temp@uci#1%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
850 \@not@printed@false
bce86c4163a3 Initial revision
kono
parents:
diff changeset
851 \setbox\z@=\hbox{[##2]\enspace}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
852 \ifdim\wd\z@>\key@size \global\key@size=\wd\z@ \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
853 ##2%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
854 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
855 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
856 }%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
857 \key@table
bce86c4163a3 Initial revision
kono
parents:
diff changeset
858 \if@not@printed@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
859 \setbox\z@=\hbox{\cite@font[\ignorespaces#1\unskip]\enspace}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
860 \ifdim\wd\z@>\key@size \global\key@size=\wd\z@ \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
861 #1%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
862 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
863 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
864
bce86c4163a3 Initial revision
kono
parents:
diff changeset
865 % This macro moves forward until it hits \end, skipping spaces.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
866 % Each time it hits a comma, or when it hits and \end, it
bce86c4163a3 Initial revision
kono
parents:
diff changeset
867 % adds whatever has been collected so far (in \@total) to
bce86c4163a3 Initial revision
kono
parents:
diff changeset
868 % \ref@set and to the output list. It is assumed that \@total
bce86c4163a3 Initial revision
kono
parents:
diff changeset
869 % has been set to \empty before this routine is called (this is done
bce86c4163a3 Initial revision
kono
parents:
diff changeset
870 % by \@@cite, below).
bce86c4163a3 Initial revision
kono
parents:
diff changeset
871 \def\@icite#1{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
872 \if#1\end
bce86c4163a3 Initial revision
kono
parents:
diff changeset
873 \expandafter\gaddtolist\@total\to\ref@set
bce86c4163a3 Initial revision
kono
parents:
diff changeset
874 \use@key\@total
bce86c4163a3 Initial revision
kono
parents:
diff changeset
875 \let\@next=\relax % Exit loop after this time
bce86c4163a3 Initial revision
kono
parents:
diff changeset
876 \else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
877 \if#1,% % We have a complete key now.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
878 \expandafter\gaddtolist\@total\to\ref@set
bce86c4163a3 Initial revision
kono
parents:
diff changeset
879 \use@key\@total,\space
bce86c4163a3 Initial revision
kono
parents:
diff changeset
880 \global\let\@total=\empty
bce86c4163a3 Initial revision
kono
parents:
diff changeset
881 \else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
882 \xdef\@total{\@total#1}% Add new char to total
bce86c4163a3 Initial revision
kono
parents:
diff changeset
883 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
884 \let\@next=\@icite % Continue looping until done
bce86c4163a3 Initial revision
kono
parents:
diff changeset
885 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
886 \@next
bce86c4163a3 Initial revision
kono
parents:
diff changeset
887 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
888
bce86c4163a3 Initial revision
kono
parents:
diff changeset
889 % Initialize and call \@icite. Used in \cite, \citep, \citepp
bce86c4163a3 Initial revision
kono
parents:
diff changeset
890 \def\@@cite#1{\global\let\@total=\empty\@icite#1\end}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
891
bce86c4163a3 Initial revision
kono
parents:
diff changeset
892 % usage: \cite{key [, key...]}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
893 \def\cite#1{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
894 {\cite@font[\@@cite{#1}]}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
895 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
896
bce86c4163a3 Initial revision
kono
parents:
diff changeset
897 % usage: \citep{key}{page}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
898 \def\citep#1#2{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
899 {\cite@font[\@@cite{#1}, \hbox{\rm p \ignorespaces#2\unskip}]}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
900 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
901
bce86c4163a3 Initial revision
kono
parents:
diff changeset
902 % usage: \citepp{key}{pages}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
903 \def\citepp#1#2{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
904 {\cite@font[\@@cite{#1}, \hbox{\rm pp \ignorespaces#2\unskip}]}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
905 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
906
bce86c4163a3 Initial revision
kono
parents:
diff changeset
907 % These three definitions are used in \no@cites, below. They
bce86c4163a3 Initial revision
kono
parents:
diff changeset
908 % don't handle extraneous spaces as well as the normal
bce86c4163a3 Initial revision
kono
parents:
diff changeset
909 % definition, but they should be sufficient for most people.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
910 \def\i@cite#1{{\cite@font[\noexpand\noexpand\noexpand\@@cite{#1}]}}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
911
bce86c4163a3 Initial revision
kono
parents:
diff changeset
912 \def\i@citep#1#2{{\cite@font[\noexpand\noexpand\noexpand\@@cite{#1},\space
bce86c4163a3 Initial revision
kono
parents:
diff changeset
913 \hbox{\noexpand\noexpand\noexpand\rm p \ignorespaces#2\unskip}]}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
914 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
915
bce86c4163a3 Initial revision
kono
parents:
diff changeset
916 \def\i@citepp#1#2{{\cite@font[\noexpand\noexpand\noexpand\@@cite{#1},\space
bce86c4163a3 Initial revision
kono
parents:
diff changeset
917 \hbox{\noexpand\noexpand\noexpand\rm pp \ignorespaces#2\unskip}]}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
918 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
919
bce86c4163a3 Initial revision
kono
parents:
diff changeset
920 % Turn off adding citations to \ref@set. This is needed when
bce86c4163a3 Initial revision
kono
parents:
diff changeset
921 % using \cite etc inside a caption for tables, figures, etc.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
922 % \no@cites is undone by exiting an enclosing group.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
923 \def\no@cites{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
924 \let\citepp=\i@citepp
bce86c4163a3 Initial revision
kono
parents:
diff changeset
925 \let\citep=\i@citep
bce86c4163a3 Initial revision
kono
parents:
diff changeset
926 \let\cite=\i@cite
bce86c4163a3 Initial revision
kono
parents:
diff changeset
927 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
928
bce86c4163a3 Initial revision
kono
parents:
diff changeset
929 %%%%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
930 % References Section %
bce86c4163a3 Initial revision
kono
parents:
diff changeset
931 %%%%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
932
bce86c4163a3 Initial revision
kono
parents:
diff changeset
933 % The basic strategy is as follows. We read the bib. file, which is
bce86c4163a3 Initial revision
kono
parents:
diff changeset
934 % assumed to be in sorted order of keys/author names. Each
bce86c4163a3 Initial revision
kono
parents:
diff changeset
935 % entry is of the form \ref{key}. We see if that key is in the table
bce86c4163a3 Initial revision
kono
parents:
diff changeset
936 % \ref@set, which is a table of all the keys we've \cite'd. If the key
bce86c4163a3 Initial revision
kono
parents:
diff changeset
937 % isn't in the list, we print it in parens and go on to the next entry.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
938 % Otherwise, we print the key in square brackets, and format the
bce86c4163a3 Initial revision
kono
parents:
diff changeset
939 % bibliography entry according to the format (JACM or IEEE). We print a
bce86c4163a3 Initial revision
kono
parents:
diff changeset
940 % warning if the key is in the \ref@seen list. We add the key to
bce86c4163a3 Initial revision
kono
parents:
diff changeset
941 % the \ref@seen list. The key is removed from the \ref@set list if it
bce86c4163a3 Initial revision
kono
parents:
diff changeset
942 % was there. At the end of the references (\endreferences), we check
bce86c4163a3 Initial revision
kono
parents:
diff changeset
943 % if there are any keys left in \ref@set. If so, the bib. file was
bce86c4163a3 Initial revision
kono
parents:
diff changeset
944 % deficient, and we print a warning message (it should probably be a
bce86c4163a3 Initial revision
kono
parents:
diff changeset
945 % fatal error message).
bce86c4163a3 Initial revision
kono
parents:
diff changeset
946
bce86c4163a3 Initial revision
kono
parents:
diff changeset
947 % Annotation control
bce86c4163a3 Initial revision
kono
parents:
diff changeset
948 \newif\ifinclude@annos % Should annotations be printed?
bce86c4163a3 Initial revision
kono
parents:
diff changeset
949 \include@annosfalse % By default, no
bce86c4163a3 Initial revision
kono
parents:
diff changeset
950 \def\annotate{% % ``official'' command
bce86c4163a3 Initial revision
kono
parents:
diff changeset
951 \include@annostrue
bce86c4163a3 Initial revision
kono
parents:
diff changeset
952 \oktell{Annotating bibliography}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
953 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
954
bce86c4163a3 Initial revision
kono
parents:
diff changeset
955 \newif\ifin@anno % True while doing an annotation
bce86c4163a3 Initial revision
kono
parents:
diff changeset
956 \in@annofalse
bce86c4163a3 Initial revision
kono
parents:
diff changeset
957
bce86c4163a3 Initial revision
kono
parents:
diff changeset
958 \def\refi@AmS{F} % This starts as False
bce86c4163a3 Initial revision
kono
parents:
diff changeset
959
bce86c4163a3 Initial revision
kono
parents:
diff changeset
960 % Begin an annotation -- must be in vertical mode. Just gather
bce86c4163a3 Initial revision
kono
parents:
diff changeset
961 % text into box0 for use by \endanno. We do a couple of consistency
bce86c4163a3 Initial revision
kono
parents:
diff changeset
962 % checks at the beginning.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
963 \def\anno{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
964 \ifhmode
bce86c4163a3 Initial revision
kono
parents:
diff changeset
965 \message{You forgot the \noexpand\endref command!}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
966 \message{I've inserted one for you.}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
967 \endanno
bce86c4163a3 Initial revision
kono
parents:
diff changeset
968 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
969 \if F\refi@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
970 \errmessage{No \noexpand\ref command before first \noexpand\anno}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
971 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
972 \let\\=\newline
bce86c4163a3 Initial revision
kono
parents:
diff changeset
973 \in@annotrue
bce86c4163a3 Initial revision
kono
parents:
diff changeset
974 \setbox\z@=\vbox\bgroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
975 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
976
bce86c4163a3 Initial revision
kono
parents:
diff changeset
977 % End of an annotation. Decide if it should be typeset or skipped.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
978 \def\endanno{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
979 \egroup % End the group for box0
bce86c4163a3 Initial revision
kono
parents:
diff changeset
980 \in@annofalse % No longer doing an annotation
bce86c4163a3 Initial revision
kono
parents:
diff changeset
981 \if T\refed@uci % If previous reference was used,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
982 \ifinclude@annos {% And if we're producing an annotated bib.,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
983 \vskip\parskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
984 \interlinepenalty=\defaultinterlinepenalty
bce86c4163a3 Initial revision
kono
parents:
diff changeset
985 \unvbox\z@ % Then include annotation as normal paragraph(s)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
986 \par
bce86c4163a3 Initial revision
kono
parents:
diff changeset
987 }\fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
988 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
989 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
990
bce86c4163a3 Initial revision
kono
parents:
diff changeset
991 \global\newlist\ref@set % list of all references cited
bce86c4163a3 Initial revision
kono
parents:
diff changeset
992 \global\newlist\ref@seen % list of all references defined
bce86c4163a3 Initial revision
kono
parents:
diff changeset
993
bce86c4163a3 Initial revision
kono
parents:
diff changeset
994 \def\reftitle{References} % Default title for bibliography
bce86c4163a3 Initial revision
kono
parents:
diff changeset
995
bce86c4163a3 Initial revision
kono
parents:
diff changeset
996 % usage: \references (begin the References section)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
997 \def\references{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
998 \vfill\supereject % Begin new page, clear out everything
bce86c4163a3 Initial revision
kono
parents:
diff changeset
999 \ifoddpages % Make sure start on even page.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1000 \ifodd\pageno \relax \else \null\vfill\eject \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1001 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1002 \begingroup % Following changes are local to bib.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1003
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1004 \twelvepoint % Get good appearance
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1005 \singlespace
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1006 \no@cites % \cite's just produce [key]
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1007 \parskip=0.6\baselineskip plus5\p@ minus4\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1008 \tolerance=5000 % Must be extremely tolerant!
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1009 \pretolerance=300
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1010 \interlinepenalty=400 % To discourage breaking a reference
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1011 % across page boundaries
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1012 \uchyph=\@ne % Needed to try hyphenating title words
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1013 \sfcode`.=\@m % Like \frenchspacing, but only for
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1014 % periods
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1015
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1016 % Now we output the title and so forth.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1017 \centerline{\csc \reftitle}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1018 \nobreak
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1019 \medskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1020 \content\reftitle % Tell user and TOC.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1021 \oktell\reftitle
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1022 \pageno@foot % Put page # in special place
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1023
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1024 % Special definitions within reference mode
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1025 \let\year=\yr
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1026 \let\month=\mon
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1027 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1028
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1029 % usage: \endreferences (end the References section)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1030 \def\endreferences{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1031 \par % Make sure last printed reference is finished up.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1032 \cardinality\ref@set\to\count@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1033 \ifnum\count@>\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1034 \def\\##1{[##1] }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1035 \ifnum\count@>1
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1036 \message{Warning: \number\count@\space undefined citations: \ref@set}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1037 \else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1038 \message{Warning: One undefined citation: \ref@set}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1039 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1040 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1041 \endgroup % End of \references group
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1042 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1043
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1044
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1045 % References Database
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1046
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1047
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1048 \newbox\bybox@AmS \newbox\bysamebox@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1049 \newbox\paperbox@AmS \newbox\paperinfobox@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1050 \newbox\jourbox@AmS \newbox\jourinfobox@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1051 \newbox\volbox@AmS \newbox\issuebox@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1052 \newbox\monbox@AmS \newbox\yrbox@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1053 \newbox\pagesbox@AmS \newbox\editorbox@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1054 \newbox\bookbox@AmS \newbox\bookinfobox@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1055 \newbox\publbox@AmS \newbox\publaddrbox@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1056 \newbox\finalinfobox@AmS\newbox\wastebox@uci
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1057 \newbox\talkbox@AmS \newbox\keybox@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1058 \newbox\editorsbox@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1059
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1060 \def\using@IEEE{F} % By default, not using IEEE format
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1061
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1062 % reset a \keyword to the ``not used'' condition
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1063 \def\refset@AmS#1{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1064 \expandafter\gdef\csname is\expandafter\eat@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1065 \string#1@AmS\endcsname{F}\expandafter
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1066 \setbox\csname\expandafter\eat@AmS\string#1box@AmS\endcsname=\null
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1067 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1068
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1069 % reset \keyword's
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1070 \def\ref@AmS{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1071 \refset@AmS\key \refset@AmS\finalinfo
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1072 \refset@AmS\by \gdef\isbysame@AmS{F}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1073 \refset@AmS\paper \refset@AmS\paperinfo
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1074 \refset@AmS\jour \refset@AmS\jourinfo
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1075 \refset@AmS\vol \refset@AmS\issue
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1076 \refset@AmS\mon \refset@AmS\yr
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1077 \refset@AmS\pages \gdef\ispage@AmS{F}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1078 \refset@AmS\book \refset@AmS\bookinfo
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1079 \refset@AmS\publ \refset@AmS\publaddr
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1080 \refset@AmS\editor \refset@AmS\talk
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1081 \refset@AmS\editors
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1082 \gdef\istoappear@AmS{F}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1083 \gdef\isinbook@AmS{F}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1084 \bgroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1085 \ignorespaces
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1086 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1087
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1088 % usage: \ref{citation} \keywords arguments ... \endref. We make sure
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1089 % we aren't still doing an \anno first.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1090 \def\ref#1{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1091 \ifin@anno
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1092 \message{You forgot an \noexpand\endanno command,}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1093 \message{but I forgive you this time.}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1094 \endanno
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1095 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1096 \def\refi@AmS{T}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1097 \ifwasmember#1\of\ref@set
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1098 \def\refed@uci{T}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1099 \okmessage{[#1]}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1100 \else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1101 \def\refed@uci{F}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1102 \okmessage{(#1)}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1103 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1104 \ifismember#1\of\ref@seen
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1105 \sanetell{multiply defined: [#1]}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1106 \else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1107 \append#1\to\ref@seen
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1108 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1109 \def\refl@AmS{F}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1110 \def\\{\egroup\endref@AmS\gdef\refi@AmS{F}\ref@AmS}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1111 \ref@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1112 \gdef\@total{#1}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1113 \key \if T\refed@uci
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1114 \use@key\@total
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1115 \fi\egroup\setbox\wastebox@uci=\hbox\bgroup\ignorespaces
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1116 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1117
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1118 % End of a reference.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1119 %
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1120 % Note that \endref@AmS is \let to be whichever \endref@xxx command
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1121 % is being used; default is \endref@JACM for JACM format.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1122 %
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1123 % If we printed the reference, \endref@AmS will
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1124 % have set \bysamebox@AmS to be a box containing a box
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1125 % containing a rule and a period. This is unboxed if a subsequent
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1126 % reference which gets printed uses \bysame. Otherwise, we here
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1127 % save the \by field (if given) so that if a subsequent reference
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1128 % using \bysame gets used, we'll know who the author was, even though
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1129 % the reference which gave the author(s) wasn't printed. Tricky, huh?
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1130 \def\endref{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1131 \egroup\gdef\refl@AmS{T}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1132 \if T\refed@uci
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1133 \endref@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1134 \else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1135 \if T\isby@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1136 \setbox\bysamebox@AmS=\box\bybox@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1137 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1138 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1139 \par
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1140 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1141
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1142 % define a \keyword. #1=keyword, #2=font to use, or {}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1143 \def\refdef@AmS#1#2{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1144 \def#1{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1145 \egroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1146 \expandafter\gdef
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1147 \csname is\expandafter\eat@AmS\string#1@AmS\endcsname{T}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1148 \expandafter\setbox
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1149 \csname\expandafter\eat@AmS\string#1box@AmS\endcsname
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1150 =\hbox\bgroup#2\ignorespaces
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1151 }%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1152 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1153
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1154 % define the keywords
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1155
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1156 \refdef@AmS\by\by@font \refdef@AmS\paper{}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1157 \refdef@AmS\paperinfo{} \refdef@AmS\jour\book@font
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1158 \refdef@AmS\vol\book@font \refdef@AmS\issue{}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1159 \refdef@AmS\mon{} \refdef@AmS\yr{}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1160 \refdef@AmS\pages{} \refdef@AmS\talk{}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1161 \refdef@AmS\book\book@font \refdef@AmS\bookinfo{}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1162 \refdef@AmS\publ{} \refdef@AmS\publaddr{}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1163 \refdef@AmS\finalinfo{} \refdef@AmS\editor{}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1164 \refdef@AmS\jourinfo{} \refdef@AmS\key\cite@font
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1165 \refdef@AmS\editors{}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1166
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1167 % These don't fit the normal pattern.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1168 \def\bysame{\egroup\gdef\isbysame@AmS{T}\bgroup}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1169 \def\page{\egroup\gdef\ispage@AmS{T}\setbox\pagesbox@AmS=\hbox\bgroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1170 \ignorespaces}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1171 \def\toappear{\egroup\gdef\istoappear@AmS{T}\bgroup}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1172 \def\inbook{\egroup\gdef\isinbook@AmS{T}\setbox\bookbox@AmS=\hbox\bgroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1173 \book@font\ignorespaces
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1174 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1175
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1176 % This is the font we normally print book and journal titles in, but we
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1177 % use \twelveit for IEEE format.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1178 \let\book@font=\twelvesl
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1179
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1180 % Similarly, this is the font to use for the author's name(s).
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1181 % Optionally, the user can ask for the cite font instead (this is
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1182 % not necessarily related to use of the IEEE format).
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1183 \let\by@font=\twelverm
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1184
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1185 % As an option, the user can have the author's name(s) in caps-small-caps.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1186 \def\AuthorsInCSC{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1187 \let\by@font=\elevencsc
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1188 \oktell{Authors in CSC mode}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1189 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1190
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1191 % Define some aliases for some of the above, for user convenience.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1192 \let\pp=\pages
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1193 \let\pgs=\pages
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1194 \let\pg=\page
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1195 \let\p=\page
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1196 \let\journal=\jour
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1197 \let\volume=\vol
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1198 \let\author=\by
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1199 \let\authors=\by
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1200 \let\ieee@editors=\editors % Save it in case we use IEEE format
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1201 \let\editors=\editor % If using default JACM format
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1202 \let\other=\talk
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1203 \let\no=\issue
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1204
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1205 % Helpers to \endref@AmS, which speed things up a lot, and/or
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1206 % make the code more compact.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1207 \def\a@comma{, } % Used in next routine. Predefined for speed of \let.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1208 \def\setpunct@AmS{\let\prepunct@AmS=\a@comma}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1209 \def\ppunbox@AmS#1{\prepunct@AmS\unhbox#1\unskip}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1210
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1211
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1212 % Actually do some typesetting (finally). As mentioned above,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1213 % \endref@AmS is called to print a reference if we want it. It
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1214 % is \let to be either \endref@JACM or \endref@IEEE (or possibly
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1215 % some other format in the future) depending on the desired
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1216 % format.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1217 %
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1218 % For some reason, the ~'s don't see to tie things, so some
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1219 % \hbox's were introduced.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1220 %
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1221 % There is unfortunately a lot of common code between the
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1222 % different formats. Here are some sections which were easy to
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1223 % pull out:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1224 \def\endref@startup{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1225 % Test to see if there is anything in the wastebox
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1226 \setbox\wastebox@uci=\hbox{\unhbox\wastebox@uci\unskip}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1227 \ifdim\wd\wastebox@uci>\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1228 \errmessage{Keyword omitted after \noexpand\ref}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1229 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1230 \let\prepunct@AmS=\empty
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1231 \vskip\parskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1232 \noindent \hangafter=\@ne
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1233 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1234
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1235 % This is the text printed for the JACM format for papers
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1236 % appearing in a book.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1237 \def\appearing@in{Appearing in }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1238
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1239 % Common code at the end of \endref@JACM and \endref@IEEE.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1240 % The argument is the date routine to use.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1241 \def\endref@finishup#1{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1242 \if T\istalk@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1243 \dimen@=\wd\talkbox@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1244 \ifdim\dimen@>\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1245 \ppunbox@AmS\talkbox@AmS\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1246 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1247 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1248 \if T\isbook@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1249 \ppunbox@AmS\bookbox@AmS \setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1250 \editor@ref
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1251 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1252 \if T\isinbook@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1253 \prepunct@AmS\appearing@in\unhbox\bookbox@AmS\unskip \setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1254 \editor@ref \gdef\isbook@AmS{T}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1255 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1256 \if T\isbookinfo@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1257 \ppunbox@AmS\bookinfobox@AmS\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1258 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1259 \if T\using@IEEE
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1260 \if T\ispubladdr@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1261 \ppunbox@AmS\publaddrbox@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1262 \if T\ispubl@AmS \def\prepunct@AmS{: }\else\setpunct@AmS\fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1263 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1264 \if T\ispubl@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1265 \ppunbox@AmS\publbox@AmS\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1266 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1267 \else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1268 \if T\ispubl@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1269 \ppunbox@AmS\publbox@AmS\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1270 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1271 \if T\ispubladdr@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1272 \ppunbox@AmS\publaddrbox@AmS\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1273 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1274 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1275 \if T\isbook@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1276 \if T\isvol@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1277 \prepunct@AmS Vol.~\unhbox\volbox@AmS\unskip\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1278 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1279 \if T\isyr@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1280 \ppunbox@AmS\yrbox@AmS\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1281 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1282 \if T\istoappear@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1283 \ (to appear)\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1284 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1285 \if T\ispages@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1286 \prepunct@AmS pp.~\unhbox\pagesbox@AmS\unskip\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1287 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1288 \if T\ispage@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1289 \prepunct@AmS p.~\unhbox\pagesbox@AmS\unskip\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1290 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1291 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1292 \if T\istalk@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1293 #1% This is the date routine to use.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1294 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1295 \if T\isfinalinfo@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1296 \period\unhbox\finalinfobox@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1297 \else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1298 \if T\refl@AmS .
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1299 \else ;
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1300 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1301 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1302 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1303
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1304 % Print editor(s) if and as appropriate.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1305 \def\editor@ref{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1306 \if T\using@IEEE
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1307 \if T\iseditor@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1308 \ppunbox@AmS\editorbox@AmS, Ed.\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1309 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1310 \if T\iseditors@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1311 \ppunbox@AmS\editorsbox@AmS, Eds.\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1312 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1313 \else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1314 \if T\iseditor@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1315 \ppunbox@AmS\editorbox@AmS\ (ed.)\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1316 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1317 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1318 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1319
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1320 % This routine prints the date in the JACM format
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1321 \def\date@JACM{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1322 \if T\isyr@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1323 \/\ (%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1324 \if T\ismon@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1325 \unhbox\monbox@AmS\unskip,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1326 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1327 \unhbox\yrbox@AmS\unskip)\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1328 \else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1329 \if T\ismon@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1330 \ppunbox@AmS\monbox@AmS\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1331 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1332 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1333 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1334
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1335 % This prints the date in the IEEE format.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1336 \def\date@IEEE{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1337 \if T\isyr@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1338 \prepunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1339 \if T\ismon@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1340 \unhbox\monbox@AmS\unskip\a@comma
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1341 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1342 \unhbox\yrbox@AmS\unskip\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1343 \else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1344 \if T\ismon@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1345 \ppunbox@AmS\monbox@AmS\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1346 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1347 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1348 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1349
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1350
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1351 % This version produces JACM format references.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1352 \def\endref@JACM{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1353 \endref@startup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1354 \if T\refi@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1355 \hbox to \key@size{\cite@font [\unhbox\keybox@AmS\unskip]\hfil}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1356 \hangindent=\key@size
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1357 \if T\isby@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1358 \unhcopy\bybox@AmS\unskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1359 \def\prepunct@AmS{\hskip7\p@ plus5\p@\relax}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1360 \setbox\z@=\hbox{\unhbox\bybox@AmS\unskip}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1361 \dimen@=\wd\z@ % We want \dimen0=max(\wd0, 2in)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1362 \ifdim\dimen@>2in \dimen@=2in \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1363 \setbox\bysamebox@AmS=\hbox{\hbox to\dimen@{\leaders\hrule\hfill.}}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1364 \else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1365 \if T\isbysame@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1366 \unhcopy\bysamebox@AmS\unskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1367 \def\prepunct@AmS{\hskip7\p@ plus5\p@\relax}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1368 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1369 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1370 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1371 \if T\ispaper@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1372 \ppunbox@AmS\paperbox@AmS\def\prepunct@AmS{. }%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1373 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1374 \if T\ispaperinfo@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1375 \ppunbox@AmS\paperinfobox@AmS\def\prepunct@AmS{. }%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1376 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1377 \if T\isjour@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1378 \ppunbox@AmS\jourbox@AmS\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1379 \editor@ref
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1380 \if T\isjourinfo@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1381 \ppunbox@AmS\jourinfobox@AmS\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1382 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1383 \if T\isvol@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1384 \ \unhbox\volbox@AmS\unskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1385 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1386 \if T\isissue@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1387 \ppunbox@AmS\issuebox@AmS\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1388 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1389 \date@JACM
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1390 \if T\istoappear@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1391 \ (to appear)\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1392 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1393 \if T\ispages@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1394 \ppunbox@AmS\pagesbox@AmS\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1395 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1396 \if T\ispage@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1397 \prepunct@AmS p.~\unhbox\pagesbox@AmS\unskip\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1398 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1399 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1400 \endref@finishup\date@JACM
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1401 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1402
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1403
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1404 % This version produces IEEE format references.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1405 \def\endref@IEEE{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1406 \endref@startup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1407 \if T\refi@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1408 \hbox to \key@size{\cite@font [\unhbox\keybox@AmS\unskip]\hfil}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1409 \hangindent=\key@size
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1410 \if T\isby@AmS \unhcopy\bybox@AmS\unskip\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1411 \setbox\z@=\hbox{\unhbox\bybox@AmS\unskip}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1412 \dimen@=\wd\z@ % We want \dimen0=max(\wd0, 2in)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1413 \ifdim\dimen@>2in \dimen@=2in \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1414 \setbox\bysamebox@AmS=\hbox{\hbox to\dimen@{\leaders\hrule\hfill}}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1415 \else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1416 \if T\isbysame@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1417 \unhcopy\bysamebox@AmS\unskip\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1418 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1419 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1420 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1421 \if T\ispaper@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1422 \prepunct@AmS``\unhbox\paperbox@AmS\unskip,''
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1423 \let\prepunct@AmS=\empty
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1424 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1425 \if T\ispaperinfo@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1426 \ppunbox@AmS\paperinfobox@AmS\def\prepunct@AmS{, }%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1427 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1428 \if T\isjour@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1429 \ppunbox@AmS\jourbox@AmS\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1430 \editor@ref
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1431 \if T\isjourinfo@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1432 \ppunbox@AmS\jourinfobox@AmS\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1433 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1434 \if T\isvol@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1435 \prepunct@AmS vol.~\unhbox\volbox@AmS\unskip\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1436 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1437 \if T\isissue@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1438 \prepunct@AmS no.~\unhbox\issuebox@AmS\unskip\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1439 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1440 \if T\istoappear@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1441 \ (to appear)\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1442 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1443 \if T\ispages@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1444 \prepunct@AmS pp.~\unhbox\pagesbox@AmS\unskip\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1445 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1446 \if T\ispage@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1447 \prepunct@AmS p.~\unhbox\pagesbox@AmS\unskip\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1448 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1449 \if T\ispubladdr@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1450 \ppunbox@AmS\publaddrbox@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1451 \if T\ispubl@AmS \def\prepunct@AmS{: }\else\setpunct@AmS\fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1452 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1453 \if T\ispubl@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1454 \ppunbox@AmS\publbox@AmS\setpunct@AmS
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1455 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1456 \let\ispubl@AmS=F\let\ispubladdr@AmS=F% For finishup routine
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1457 \date@IEEE
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1458 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1459 \endref@finishup\date@IEEE
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1460 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1461
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1462
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1463 % By default, we use JACM format references
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1464 \let\endref@AmS=\endref@JACM
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1465
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1466 % But it's possible to get the other format
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1467 \def\IEEE{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1468 \gdef\using@IEEE{T}% Now we're using IEEE format.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1469 \let\editors=\ieee@editors
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1470 \let\endref@AmS=\endref@IEEE
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1471 \refdef@AmS\vol{}% Vol not printed in slanted any more.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1472 \global\let\appearing@in=\empty % Don't say that in IEEE format.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1473 \let\volume=\vol
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1474 \let\book@font=\twelveit % Book and journal titles in this font.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1475 \oktell{IEEE Bibliography Style}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1476 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1477
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1478
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1479 % References Dump
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1480
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1481 \newwrite\dump@file
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1482
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1483 \catcode`\{=12 \catcode`\}=12 \catcode`\%=12 \catcode`\[=1 \catcode`\]=2
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1484 \def\ref@open[{]
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1485 \def\ref@close[}]
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1486 \def\ref@comment[%]
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1487 \catcode`\{=1 \catcode`\}=2 \catcode`\%=14 \catcode`\[=12 \catcode`\]=12
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1488
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1489 \def\refdump{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1490 \vfill\supereject
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1491 \begingroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1492 \content\reftitle
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1493 \tell{Dumping \reftitle\space to refdump.tex}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1494 \immediate\openout\dump@file=refdump
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1495 \immediate\write\dump@file{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1496 \noexpand\catcode`\noexpand\@=11 ^^J%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1497 \noexpand\let\noexpand\content=\noexpand\eat@AmS^^J%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1498 \noexpand\pageno=\the\pageno^^J%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1499 \noexpand\def\noexpand\ref@set\ref@open\ref@comment
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1500 }%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1501 \def\\##1{\immediate\write\dump@file{ \noexpand\\{##1}\ref@comment}}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1502 \ref@set
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1503 \immediate\write\dump@file{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1504 \ref@close^^J%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1505 }%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1506 \immediate\closeout\dump@file
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1507 \endgroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1508 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1509
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1510
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1511 %%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1512 % OUTPUT CONTROL %
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1513 %%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1514
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1515 % Control for informational messages. Default is \verbose mode.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1516 \newif\iftell@all
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1517 \let\verbose=\tell@alltrue
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1518 \let\quiet=\tell@allfalse
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1519 \verbose
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1520 \def\oktell#1{\iftell@all\tell{#1}\fi}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1521 \def\okmessage#1{\iftell@all\message{#1}\fi}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1522
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1523 % Chapter macro parameters
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1524 \newcount\chapterno
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1525 \chapterno=\z@ % Number of current chapter
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1526 \newif\ifnumber@chapters
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1527 \number@chapterstrue % By default, number the chapters
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1528 \def\nochapternumbers{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1529 \number@chaptersfalse
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1530 \oktell{No Chapter Numbers mode}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1531 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1532
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1533 % Same thing for sections, subsections, etc
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1534 \newcount\sectno \sectno=\@ne
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1535 \newcount\subsectno \subsectno=\@ne
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1536 \newcount\subsubsectno \subsubsectno=\@ne
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1537 \newif\ifnumber@sections
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1538 \def\numbersections{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1539 \number@sectionstrue
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1540 \oktell{Section Numbers mode}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1541 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1542
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1543
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1544 %%%%%%%%%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1545 % OUTPUT CONTROL MACROS %
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1546 %%%%%%%%%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1547
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1548
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1549 % Center, left justify, right justify -- avoid exceeding margins
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1550 \def\centerline#1{\line{\hfill#1\hfill}}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1551 \def\leftline#1{\line{#1\hfill}}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1552 \def\rightline#1{\line{\hfill#1}}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1553 \def\threepart#1#2#3{\line{\hskip\leftskip\rlap{#1}\hfill#2\hfill
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1554 \llap{#3}\hskip\rightskip}}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1555
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1556 % End of the main body of the document
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1557 \let\enddiss=\bye
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1558
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1559 % Summary Information
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1560 \outer\def\showsummary{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1561 \begingroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1562 \def\note##1##2##3##4{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1563 \count@=##1
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1564 \advance\count@ by##3
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1565 \ifcase\count@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1566 \message{No ##2s##4}\or
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1567 \message{1 ##2##4}\else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1568 \message{\the\count@\space ##2s##4}\fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1569 }%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1570 \note\fignumber{figure}{-1}{,}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1571 \note\tablenumber{table}{-1}{,}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1572 \note\note@count{footnote}{-1}{,}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1573 \cardinality\ref@set\to\count@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1574 \note\count@{citation}{0}{.}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1575 \endgroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1576 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1577
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1578
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1579 % Real version of ragged right margins
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1580 \def\raggedright{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1581 \rightskip=\z@ plus 2em
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1582 \oktell{Raggedright mode}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1583 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1584
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1585 % Disallow hyphenation -- a very dangerous thing
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1586 \def\nohyphens{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1587 \hyphenpenalty=\@M\tolerance=500\pretolerance=\@M
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1588 \oktell{Nohyphens mode}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1589 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1590
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1591 % Allow capitalized words to be hyphenated
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1592 \def\hyphenall{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1593 \uchyph=\@ne
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1594 \oktell{Hyphenating all words}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1595 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1596
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1597 % Handle a long quotation in a standard way
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1598 \def\bigquote#1\endbigquote{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1599 \par
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1600 \vskip \baselineskip \vskip -\parskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1601 { \advance\rightskip by30\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1602 \advance\leftskip by30\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1603 \smallertype
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1604 \singlespace
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1605 \let\\=\newline
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1606 \noindent\llap{``}\ignorespaces#1\unskip''\par
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1607 }% End of singlespacing and special indentation
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1608 \vskip \baselineskip \vskip -\parskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1609 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1610
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1611
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1612 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1613 % CHAPTERS, SECTIONS, FIGURES, TABLES %
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1614 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1615
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1616 % What to do at the beginning of a chapter
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1617 \def\chapter#1\endchapter{
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1618 \chapter@base #1\endchapter
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1619 \oktell{Chapter \number\chapterno: #1}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1620 \content{Chapter \number\chapterno: #1}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1621 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1622
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1623
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1624 % This boolean controls whether chapters are made to start only on
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1625 % odd pages.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1626 \newif\ifoddpages
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1627 \oddpagesfalse
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1628 \def\twosided{% This is the ``official'' command
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1629 \oddpagestrue
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1630 \oktell{Twosided mode}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1631 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1632
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1633 % The guts of the \chapter command. \chapter==\chapter@base when
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1634 % in \articlestyle.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1635 \def\chapter@base#1\endchapter{
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1636 \par
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1637 \clearpage % Clean up from prev chapter
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1638 \ifoddpages % Make sure start on even page.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1639 \ifodd\pageno \relax \else \null\vfill\eject \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1640 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1641 \pageno@foot % Page #ing special for chap pages
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1642 \advance\chapterno by\@ne
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1643 \ifnumber@chapters
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1644 \centerline{\chap@font CHAPTER \number\chapterno}% Do heading
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1645 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1646 \sectno=\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1647 \subsectno=\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1648 \subsubsectno=\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1649 {\let\\=\cr \tabskip=\z@ \chap@font % Center the chapter title
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1650 \halign to\hsize{\centerline{\ignorespaces##\unskip}\cr#1\cr}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1651 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1652 \nobreak % Shouldn't happen anyway
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1653 \vskip 1.0in minus 0.15in
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1654 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1655
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1656 % What to do at the beginning of a section
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1657 \outer\def\section{\dosection}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1658 \def\dosection#1{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1659 \skip@=\lastskip % \par resets \lastskip, apparently
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1660 \par
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1661 % This junk trys to provide consistent spacing
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1662 \dimen@=\baselineskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1663 \ifdim\skip@<\dimen@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1664 \ifdim\skip@=\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1665 \penalty-200
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1666 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1667 \vskip \dimen@ plus .5\baselineskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1668 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1669 \ifnumber@sections
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1670 \advance\sectno by\@ne
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1671 \subsectno=\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1672 \subsubsectno=\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1673 \leftline{\sec@font\number\sectno. #1}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1674 \else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1675 \leftline{\sec@font#1}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1676 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1677 \subcontent{#1}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1678 \sanetell{ Section: #1}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1679 \nobreak
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1680 \vskip \z@ plus .15\baselineskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1681 \vskip -\parskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1682 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1683
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1684 % And for sub-sections
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1685 \outer\def\subsection{\dosubsection}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1686 \def\dosubsection#1{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1687 \skip@=\lastskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1688 \par
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1689 \dimen@=.6\baselineskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1690 \ifdim\skip@<\dimen@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1691 \ifdim\skip@=\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1692 \penalty-100
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1693 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1694 \vskip \dimen@ plus .3\baselineskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1695 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1696 \ifnumber@sections
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1697 \advance\subsectno by\@ne
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1698 \subsubsectno=\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1699 \leftline{\subsec@font\number\sectno.\number\subsectno. #1}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1700 \else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1701 \leftline{\subsec@font#1}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1702 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1703 \subsubcontent{#1}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1704 \sanetell{ \\Subsection: #1}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1705 \nobreak
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1706 \vskip \z@ plus .1\baselineskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1707 \vskip -\parskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1708 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1709
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1710 % And for sub-sub-sections
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1711 \outer\def\subsubsection{\dosubsubsection}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1712 \def\dosubsubsection#1{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1713 \skip@=\lastskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1714 \par
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1715 \dimen@=.5\baselineskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1716 \ifdim\skip@<\dimen@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1717 \ifdim\skip@=\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1718 \penalty-50
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1719 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1720 \vskip \dimen@ plus .3\baselineskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1721 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1722 \ifnumber@sections
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1723 \advance\subsubsectno by\@ne
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1724 \leftline{\subsubsec@font\number\sectno.\number\subsectno
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1725 .\number\subsubsectno. #1}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1726 \else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1727 \leftline{\subsubsec@font#1}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1728 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1729 \subsubsubcontent{#1}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1730 \sanetell{ \\\\Subsubsection: #1}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1731 \nobreak
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1732 \vskip -\parskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1733 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1734
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1735 % This is an alternate definition for plain TeX's \@ins,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1736 % omitting the \par. It is for use during \figure etc. Reason:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1737 % If you use \figure right after \section, it would otherwise
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1738 % become a legal place for a page break.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1739 \def\@ins@uci{\begingroup\setbox\z@\vbox\bgroup}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1740
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1741 % This is \endinsert from plain.tex, but \midinsert's are not converted
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1742 % to \topinsert's, since that can lead to figures getting out of order.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1743 % This can lead to excessive blank space at the bottom of the page, but
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1744 % that's life. Makes use of \keep...\endkeep type stuff.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1745 \def\endinsert{\egroup % finish the \vbox
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1746 \if@mid \dimen@\ht\z@ \advance\dimen@\dp\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1747 \advance\dimen@12\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1748 \vskip\z@ plus\dimen@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1749 \penalty\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1750 \vskip\z@ plus-\dimen@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1751 \bigskip\box\z@\bigbreak
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1752 \else\insert\topins{\penalty100 % floating insertion
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1753 \splittopskip\z@skip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1754 \splitmaxdepth\maxdimen \floatingpenalty\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1755 \ifp@ge \dimen@\dp\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1756 \vbox to\vsize{\unvbox\z@\kern-\dimen@}% depth is zero
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1757 \else \box\z@\nobreak\bigskip\fi}\fi\endgroup}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1758
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1759
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1760 % This macro provides rudamentary support for figures. The
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1761 % argument to \figure is the name of the file containing the tpic (or whatever)
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1762 % output. The second argument is the caption for the picture.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1763 % As usual, TeX's delayed paging and midinserting causes expansion-timing
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1764 % problems which have to be kludged around.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1765 \newif\iftopfigs \topfigstrue
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1766 \def\domidfigs{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1767 \topfigsfalse
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1768 \oktell{Midfigs mode}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1769 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1770
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1771 % Counters for figures/diagrams/examples and tables
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1772 \newcount\fignumber \fignumber=\@ne
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1773 \newcount\tablenumber \tablenumber=\@ne
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1774
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1775 % Helper for \figure, \example, and \diagram. Define \lastfigure and
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1776 % \this@insert, increment the figure number for next time, and make sure
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1777 % the figures list file is open for writing.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1778 % #1=the caption, to be written to the figures list file
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1779 \def\advance@figno#1{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1780 \xdef\lastfigure{\the\fignumber}% Remember the current figure number
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1781 \begingroup\no@cites
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1782 \let\\=\space
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1783 \xdef\this@insert{\write\noexpand\fig@file{\noexpand\noexpand
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1784 \noexpand\listfig{\lastfigure}{#1}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1785 {\noexpand\number\noexpand\pageno}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1786 }%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1787 }%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1788 \endgroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1789 \global\advance\fignumber by\@ne
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1790 \iffig@closed % Open figures file if not already
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1791 \immediate\openout\fig@file=\figtitle
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1792 \global\fig@closedfalse
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1793 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1794 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1795
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1796 % Bump the table number after defining \lasttable. Prepare \this@insert.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1797 % Define \table@caption.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1798 \def\advance@tablenumber#1{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1799 \xdef\lasttable{\the\tablenumber}% Remember the current figure number
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1800 \begingroup \no@cites \let\\=\space
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1801 \xdef\this@insert{\write\noexpand\tab@file{\noexpand\noexpand
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1802 \noexpand\listfig{\lasttable}{#1}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1803 {\noexpand\number\noexpand\pageno}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1804 }%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1805 }%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1806 \endgroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1807 \global\advance\tablenumber by\@ne
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1808 \gdef\table@caption{#1}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1809 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1810
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1811 \newif\ifpage@figs \page@figsfalse
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1812
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1813 % Special mode to put figures/diagrams/examples on separate pages
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1814 \def\pagefigs{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1815 \oktell{Page Figures mode}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1816 \page@figstrue
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1817 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1818
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1819 % Usage: \figure{filename}{caption with \\'s}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1820 \def\figure#1#2{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1821 \begingroup % Hide anything that crazy user does!
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1822 \advance@figno{#2}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1823 % Now do mid or top insert as appropriate
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1824 \let\@ins=\@ins@uci
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1825 \ifpage@figs
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1826 \shipout\vbox to\vsize\bgroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1827 {\smallertype\rm\input #1\relax\centerline{\box\graph}}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1828 \vfill
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1829 \centerline{Figure \lastfigure}\this@insert
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1830 \egroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1831 \else \iftopfigs \topinsert \else \midinsert \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1832 \hrule
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1833 \vskip .5\baselineskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1834 {\smallertype\rm\input #1\relax\centerline{\box\graph}}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1835 \vskip .5\baselineskip plus .5\baselineskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1836 \centerline{\twelvebf Figure \lastfigure}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1837 \this@insert
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1838 \let\\=\cr \tabskip=\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1839 \halign to\hsize{\centerline{\ignorespaces##\unskip}\cr#2\cr}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1840 \vskip2\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1841 \hrule
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1842 \endinsert
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1843 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1844 \endgroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1845 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1846
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1847
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1848 % Allow user to specify arbitrary diagrams. The arguments are:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1849 % #1=name of the file containing the commands to form the diagram,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1850 % #2=caption for the figure, possibly containing \\'s.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1851 \def\diagram#1#2{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1852 \begingroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1853 \advance@figno{#2}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1854 % Do mid or top insert as appropriate
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1855 \let\@ins=\@ins@uci
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1856 \ifpage@figs
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1857 \shipout\vbox to\vsize\bgroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1858 {\smallertype\rm\input #1\relax}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1859 \vfill
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1860 \centerline{\twelverm Figure \lastfigure}\this@insert
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1861 \egroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1862 \else \iftopfigs \topinsert \else \midinsert \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1863 \hrule
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1864 \vskip .5\baselineskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1865 {\smallertype\rm\input #1\relax}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1866 \vskip .5\baselineskip plus .5\baselineskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1867 \centerline{\twelvebf Figure \lastfigure}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1868 \this@insert
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1869 \let\\=\cr \tabskip=\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1870 \halign to \hsize{\centerline{\ignorespaces##\unskip}\cr#2\cr}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1871 \vskip2\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1872 \hrule
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1873 \endinsert
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1874 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1875 \endgroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1876 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1877
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1878
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1879 % Allow user to include verbatim examples from files. The arguments are:
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1880 % #1=name of the file containing the text of the example,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1881 % #2=caption for the figure, possibly containing \\'s.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1882 \def\example#1#2{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1883 \begingroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1884 \advance@figno{#2}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1885 % Do mid or top insert as appropriate
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1886 \let\@ins=\@ins@uci
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1887 \ifpage@figs
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1888 \shipout\vbox to\vsize\bgroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1889 \vbox{\smallertype\singlespace\verbfile{#1}}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1890 \vfill
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1891 \centerline{\twelverm Figure \lastfigure}\this@insert
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1892 \egroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1893 \else \iftopfigs \topinsert \else \midinsert \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1894 \hrule
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1895 \vskip .5\baselineskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1896 \vbox{\smallertype\singlespace\verbfile{#1}}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1897 \vskip .5\baselineskip plus .5\baselineskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1898 \centerline{\twelvebf Figure \lastfigure}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1899 \this@insert
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1900 \let\\=\cr \tabskip=\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1901 \halign to \hsize{\centerline{\ignorespaces##\unskip}\cr#2\cr}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1902 \vskip2\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1903 \hrule
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1904 \endinsert
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1905 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1906 \endgroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1907 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1908
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1909
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1910 % Similar thing for tables
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1911 % usage: \table{caption} ...text... \endtable
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1912 \def\table#1{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1913 \begingroup % Hide user zingers
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1914 \advance@tablenumber{#1}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1915 \setbox\z@=\vbox\bgroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1916 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1917
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1918
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1919 % End of the table body specification.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1920 \def\endtable{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1921 \egroup % End the definition of \box0.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1922 % Now do top or mid insert
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1923 \let\@ins=\@ins@uci
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1924 \iftab@closed % Open output file if necessary
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1925 \immediate\openout\tab@file=\tabtitle
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1926 \global\tab@closedfalse
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1927 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1928 \ifpage@figs
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1929 \shipout\vbox to\vsize\bgroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1930 \box\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1931 \vfill
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1932 \centerline{\twelverm Table \lasttable}\this@insert
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1933 \egroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1934 \else \iftopfigs \topinsert \else \midinsert \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1935 \hrule
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1936 \vskip .5\baselineskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1937 \box\z@ % Insert the material here.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1938 \vskip .5\baselineskip plus .5\baselineskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1939 \centerline{\twelvebf Table \lasttable}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1940 \this@insert
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1941 \let\\=\cr \tabskip=\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1942 \halign to\hsize{\centerline{\ignorespaces##\unskip}\cr\table@caption
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1943 \cr}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1944 \vskip2\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1945 \hrule
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1946 \endinsert
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1947 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1948 \endgroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1949 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1950
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1951
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1952 % End of the table body specification for a full-page table.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1953 \def\endtablepage{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1954 \egroup % End the definition of \box0.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1955 % Now do top or mid insert
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1956 \let\@ins=\@ins@uci
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1957 \iftab@closed % Open output file if necessary
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1958 \immediate\openout\tab@file=\tabtitle
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1959 \global\tab@closedfalse
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1960 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1961 \ifpage@figs
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1962 \shipout\vbox to\vsize\bgroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1963 \box\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1964 \vfill
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1965 \centerline{\twelverm Table \lasttable}\this@insert
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1966 \egroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1967 \else \pageinsert
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1968 \hrule
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1969 \vskip .5\baselineskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1970 \box\z@ % Insert the material here.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1971 \vskip .5\baselineskip plus .5\baselineskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1972 \centerline{\twelvebf Table \lasttable}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1973 \this@insert
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1974 \let\\=\cr \tabskip=\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1975 \halign to\hsize{\centerline{\ignorespaces##\unskip}\cr\table@caption
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1976 \cr}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1977 \vskip2\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1978 \hrule
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1979 \endinsert
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1980 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1981 \endgroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1982 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1983
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1984 % Environment for report generation -- use only at the beginning!
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1985 % Since sections are the biggest division, the table of contents
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1986 % stuff is redefined, and chapter numbering is turned off so that
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1987 % \chapter can be used for the first-page title. The title page
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1988 % gets no page number (page # 0). The user can get to the
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1989 % normal chapter font as \titlefont, and the section font as
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1990 % \authorfont.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1991 \def\articlestyle{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1992 \nochapternumbers
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1993 \let\subsubsubcontent=\subsubcontent
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1994 \let\subsubcontent=\subcontent
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1995 \let\subcontent=\content
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1996 \let\chapter=\chapter@base
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1997 \pageno=\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1998 \let\titlefont=\chap@font
bce86c4163a3 Initial revision
kono
parents:
diff changeset
1999 \let\authorfont=\sec@font
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2000 \oktell{Articlestyle mode}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2001 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2002
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2003
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2004 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2005 % PAGE NUMBERING and OUTPUT ROUTINES %
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2006 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2007
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2008 % This macro produces a blank, numbered page of output
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2009 \def\blankpage{\pageinsert \null\vfill \endinsert}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2010
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2011 % This defintion of \folio differs from Plain's in that (a) page
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2012 % numbers are printed in 12pt, and (b) roman numeral ones are
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2013 % printed in italics. It makes use of a trick, that
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2014 % \romannumeral0 produces no output, which we need for title
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2015 % pages and things, so we make their page numbers be 0.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2016 \def\folio{\ifnum\pageno>\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2017 {\twelverm\number\pageno}\else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2018 {\twelveit\romannumeral-\pageno}\fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2019 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2020
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2021 % Permanent definitions of macros which get switched in and out
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2022 % with \let's. Do not change any of these !!!
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2023 \def\uci@headpage{\hfill\folio}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2024 \def\uci@footpage{\hfill\folio\hfill}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2025 \headline={\uci@headline}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2026 \footline={\uci@footline}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2027
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2028 % If this is used as the footline, it causes a page number to be
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2029 % printed, but with the side-effect of making the headline blank
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2030 % and the footline a page number again. This is used on pages
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2031 % like the first of a chapter.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2032 \def\no@foot{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2033 \uci@footpage
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2034 \global\let\uci@footline=\hfil
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2035 \global\let\uci@headline=\uci@headpage
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2036 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2037
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2038 % This macro causes the page number to be at the bottom of the current
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2039 % page, and after it has been used there once, it moves to the
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2040 % top right of each page. It also sets \dimen\topins=0pt so that
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2041 % any material \topinsert'd on these pages will get carried over
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2042 % to subsequent pages.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2043 \def\pageno@foot{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2044 \dimen\topins=\z@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2045 \let\uci@headline=\hfil
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2046 \let\uci@footline=\no@foot
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2047 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2048
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2049 % Executing this causes page numbers to be at the bottom only, as
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2050 % with the plain TeX format.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2051 \def\plain@page@numbers{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2052 \let\uci@headline=\hfil % Initial values similar to plain's
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2053 \let\uci@footline=\uci@footpage
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2054 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2055
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2056 % Change plain's \makeheadline and \makefootline to position page
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2057 % numbers as required.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2058 \def\makeheadline{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2059 \vbox to\z@{\vskip-22.65\p@
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2060 \line{\vbox to8.5\p@{}\the\headline}\vss}\nointerlineskip
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2061 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2062 \def\makefootline{\baselineskip=1.6cm\line{\the\footline}}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2063
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2064 % Define an output routine which will restore \dimen\topins
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2065 % after \chapter, \references, etc, title pages, which have
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2066 % \dimen\topins=0pt
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2067 \def\dissoutput{\shipout\vbox{\makeheadline\pagebody\makefootline}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2068 \advancepageno \global\dimen\topins=\vsize
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2069 \ifnum\outputpenalty>-\@MM \else\dosupereject\fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2070 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2071 \let\output@AmS=\dissoutput
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2072 \dimen\topins=\vsize % Don't insert more than will fit on one page
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2073
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2074 % Output Routines: We adjust the \raggedbottom command of plain
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2075 % TeX so that the extra space is no more than 1in, and so that
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2076 % the space is put above footnotes instead of below. NOTE: Since
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2077 % we put a \vfil below the page contents, the topskip glue will
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2078 % never actually be stretched. Its stretchability is just to
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2079 % let TeX know about the raggedness in computing when to make a
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2080 % page break. Since it's 1in, the \vfil will never be stretched to
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2081 % more than that amount.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2082
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2083 \def\raggedbottom{\topskip=\normal@topskip plus1in \r@ggedbottomtrue
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2084 \oktell{Ragged bottom mode}}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2085 \def\normalbottom{\topskip=\normal@topskip\r@ggedbottomfalse
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2086 \oktell{Normal bottom mode}}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2087
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2088 \def\pagecontents{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2089 \ifvoid\topins\else\unvbox\topins\fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2090 \dimen@=\dp\@cclv \unvbox\@cclv % open up \box255
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2091 \ifr@ggedbottom \kern-\dimen@ \vfil\fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2092 \ifvoid\footins \else % footnote info is present
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2093 \vskip\skip\footins
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2094 \footnoterule
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2095 \unvbox\footins
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2096 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2097 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2098
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2099
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2100 %%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2101 % INITIALIZATION %
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2102 %%%%%%%%%%%%%%%%%%%%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2103
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2104 \font@no=0 % Default font=\rm,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2105 \twelvepoint % point size,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2106 \doublespace % and spacing
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2107 \plain@page@numbers % Page nos like plain's
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2108
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2109 % Note that normally in AmSTeX, the @ character may not be used.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2110 % But in the dissertation style, @ may be used as a normal character,
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2111 % As it can in plain TeX.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2112 \catcode`\@=12
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2113
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2114 % Eat any further \documentstyle commands
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2115 \def\documentstyle#1{}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2116
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2117 % This prints out our welcome message, and it computes the time
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2118 % and date string once per run, which saves time if they're used
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2119 % more than once. Since \catcode`@=12 at the time this is
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2120 % executed, it can't contain any @-type macros.
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2121 \everyjob={%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2122 \begingroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2123 \xdef\today{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2124 \ifcase\month
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2125 \the\month\or
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2126 January\or
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2127 February\or
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2128 March\or
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2129 April\or
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2130 May\or
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2131 June\or
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2132 July\or
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2133 August\or
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2134 September\or
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2135 October\or
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2136 November\or
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2137 December\else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2138 \the\month
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2139 \fi\space\the\day, \the\year
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2140 }%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2141 \count0=\time
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2142 \count1=\count0
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2143 \divide\count0by60
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2144 \count2=\count0
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2145 \multiply\count0by60
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2146 \advance\count1by-\count0
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2147 \ifnum\count2>11
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2148 \ifnum\count2>12 \advance\count2by-12\fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2149 \def\ampm{PM}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2150 \else
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2151 \ifnum\count2=0 \advance\count2by12\fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2152 \def\ampm{AM}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2153 \fi
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2154 \xdef\daytime{%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2155 \ifnum\count2<10 0\fi \the\count2:%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2156 \ifnum\count1<10 0\fi \the\count1
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2157 \ampm
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2158 }%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2159 \endgroup
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2160 \tell{AmSTeX Dissertation Style, version \version}%
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2161 }
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2162
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2163 \edef\temp@uci{\the\everyjob}
bce86c4163a3 Initial revision
kono
parents:
diff changeset
2164 \temp@uci