|
1 % latex2e by nr 7/3/96 |
|
2 % acmtrans.cls revised 4/19/96 |
|
3 % revised again 31-JAN-1996 (see end of file) |
|
4 % revised 5-14-1997 : |
|
5 % Don't use sans-serif font in categories and descriptors |
|
6 % include latexsym by default |
|
7 % Define longpage and shortpage |
|
8 % Adjusted from the acmtrans2e.cls file to the needs of ACM TOCL by |
|
9 % Marco Aiello on June 14, 2000. |
|
10 % Further changes made by Frederic Goualard on Sep. 27, 2000 |
|
11 % to take care of the indentation problem in the bibliography |
|
12 % arising without the use of the hyperref package. |
|
13 % Modularization to adapt to the needs of ALL Transactions of the ACM, |
|
14 % and the Journal of the ACM, by Marco Aiello on June and October 2001. |
|
15 % Here is the basic framework that is needed to convert your paper |
|
16 % into ACM Transactions format and bibliographic format. For a tutorial |
|
17 % introduction, see ``instructions.tex'' (compile it with LaTeX) that |
|
18 % accompanies the distribution of this style file. |
|
19 % |
|
20 % -> \documentclass{acmtrans2m} |
|
21 % -> \markboth{}{} |
|
22 % takes 2 arguments and it is for the left- and right-page headers: |
|
23 % the first set of braces is assigned for author's name(s) |
|
24 % and |
|
25 % the second set of braces is assigned for the title |
|
26 % (if the title is too long, contraction may be needed |
|
27 % -> \title{} |
|
28 % if the title is too long, it can be separated by \\ |
|
29 % -> \author{} |
|
30 % author1 \\ author1 affiliation |
|
31 % \and |
|
32 % author2 \\ author2 affiliation |
|
33 % -> \begin{abstract} |
|
34 % -> \end{abstract} |
|
35 % |
|
36 % -> \category{}{}{} |
|
37 % takes 3 arguments for the Computing Reviews Classification Scheme. |
|
38 % ex: \category{D.3.3}{Programming Languages}{Language Constructs and |
|
39 % Features}[data types and structures] |
|
40 % the last argument, in square brackets, is optional. |
|
41 % -> \terms{} (ex: \terms{Human Factors, Languages}) |
|
42 % -> \keywords{} (in alphabetical order \keywords{document processing, sequences, |
|
43 % string searching, subsequences, substrings}) |
|
44 % -> \begin{document} |
|
45 % |
|
46 % -> \begin{bottomstuff} |
|
47 % similar to \thanks |
|
48 % for authors' addresses; research/grant statements |
|
49 % -> \end{bottomstuff} |
|
50 % -> \maketitle |
|
51 % |
|
52 % Now you can start the body of the paper; your figures, tables and |
|
53 % use all the latex constructs. |
|
54 % |
|
55 % -> \begin{acks} |
|
56 % acknowledgements |
|
57 % -> \end{acks} |
|
58 % |
|
59 % -> \bibliographystyle{acmtrans} |
|
60 % -> \bibliography{mybib_file} |
|
61 % |
|
62 % **** |
|
63 % If your paper has been accepted with a separate (electronic only) |
|
64 % appendix, you need to add the following control sequence: |
|
65 % |
|
66 % |
|
67 % body of appendix |
|
68 %!!!!!! \appendixhead has be cut into two: \appendixhead and \elecappendix |
|
69 %!!!!!! See end of file. (jtb) |
|
70 % |
|
71 % -> \end{document} |
|
72 % |
|
73 % Do not worry about the other definitions in this style file |
|
74 % Remember to compile: latex, bibtex, latex latex |
|
75 % |
|
76 % Bibliographic cite forms needed: |
|
77 % |
|
78 % \cite{key} |
|
79 % which produces citations with author list and year. |
|
80 % eg. [Brown 1978; Jarke, et al. 1985] |
|
81 % \citeA{key} |
|
82 % which produces citations with only the author list. |
|
83 % eg. [Brown; Jarke, et al.] |
|
84 % \citeN{key} |
|
85 % which produces citations with the author list and year, but |
|
86 % can be used as nouns in a sentence; no brackets appear around |
|
87 % the author names, but only around the year. |
|
88 % eg. Shneiderman [1978] states that...... |
|
89 % \citeN should only be used for a single citation. |
|
90 % \citeNN{refkey1,refkey2} for author [ref1year; ref2year] |
|
91 % \citeyear{key} |
|
92 % which produces the year information only, within brackets. |
|
93 % |
|
94 % Abbreviated author lists use the ``et al.'' construct. |
|
95 % |
|
96 % The above are examples of required ACM bibliographic cite formats needed. |
|
97 % ******************* |
|
98 % Here is the complete list of cite forms from the chicago bibliographic style |
|
99 % |
|
100 % \cite{key} |
|
101 % which produces citations with abbreviated author list and year. |
|
102 % \citeNP{key} |
|
103 % which produces citations with abbreviated author list and year. |
|
104 % \citeA{key} |
|
105 % which produces only the abbreviated author list. |
|
106 % \citeANP{key} |
|
107 % which produces only the abbreviated author list. |
|
108 % \citeN{key} |
|
109 % which produces the abbreviated author list and year, with only the |
|
110 % year in parentheses. Use with only one citation. |
|
111 % \citeyear{key} |
|
112 % which produces the year information only, within parentheses. |
|
113 % \citeyearNP{key} |
|
114 % which produces the year information only. |
|
115 % |
|
116 % Abbreviated author lists use the ``et al.'' construct. |
|
117 % |
|
118 % `NP' means `no parentheses' |
|
119 % |
|
120 |
|
121 \NeedsTeXFormat{LaTeX2e} |
|
122 \ProvidesClass{acmtrans2m} [1996/07/03 ACM Transactions class based on <23 April 96>] |
|
123 \RequirePackage{latexsym} |
|
124 %aiellom{ |
|
125 \RequirePackage{url} |
|
126 |
|
127 % Do not change the following! Use the appropriate acmtocl, acmtods, ... |
|
128 % options in the .tex file |
|
129 \def\@acmVolume{V} %the volume |
|
130 \def\@acmNumber{N} %the number |
|
131 \def\@acmYear{YY} %the last two digits of the year, |
|
132 \def\@acmMonth{0} %the month number |
|
133 \def\@journalName{ACM Journal Name} %the name of the ACM journal |
|
134 \def\@journalNameShort{jn} %the acronym of the ACM journal |
|
135 \def\@permissionCodeOne{0000-0000} %the permission code of the ACM journal |
|
136 \def\@permissionCodeTwo{\acmMonthCode} %the permission code of the ACM journal part 2 |
|
137 \def\@pageCode{\acmPageCode} %the first page of the article in 4 digits |
|
138 |
|
139 \newif\if@acmnow \newif\if@acmjacm \newif\if@acmcsur |
|
140 \newif\if@acmtissec \newif\if@acmtochi \newif\if@acmtocl |
|
141 \newif\if@acmtocs \newif\if@acmtodaes \newif\if@acmtods |
|
142 \newif\if@acmtogs \newif\if@acmtois \newif\if@acmtoit |
|
143 \newif\if@acmtomacs \newif\if@acmtoms \newif\if@acmtoplas |
|
144 \newif\if@acmtosem |
|
145 |
|
146 \DeclareOption{acmnow}{ |
|
147 \typeout{Directly generating the Month and Year for footers from the clock.} |
|
148 \def\@acmYear{\yearTwoDigits} |
|
149 \def\@acmMonth{\the\month} |
|
150 } |
|
151 |
|
152 \DeclareOption{acmjacm}{ |
|
153 \typeout{} |
|
154 \typeout{Using ACM JACM option: 2001/06/01 by Marco Aiello et al.} |
|
155 \typeout{} |
|
156 %\global\@acmjacmfalse |
|
157 \global\@acmcsurfalse \global\@acmtissecfalse \global\@acmtochifalse |
|
158 \global\@acmtoclfalse \global\@acmtocsfalse \global\@acmtodaesfalse |
|
159 \global\@acmtodsfalse \global\@acmtogsfalse \global\@acmtoisfalse |
|
160 \global\@acmtoitfalse \global\@acmtomacsfalse \global\@acmtomsfalse |
|
161 \global\@acmtoplasfalse \global\@acmtosemfalse |
|
162 \global\@acmjacmtrue |
|
163 \def\@journalName{Journal of the ACM} |
|
164 \def\@journalNameShort{jacm} |
|
165 \def\@permissionCodeOne{0004-5411} |
|
166 } |
|
167 |
|
168 \DeclareOption{acmcsur}{ |
|
169 \typeout{} |
|
170 \typeout{Using ACM CSUR option: 2001/06/01 by Marco Aiello et al.} |
|
171 \typeout{} |
|
172 \global\@acmjacmfalse % \global\@acmcsurfalse |
|
173 \global\@acmtissecfalse \global\@acmtochifalse \global\@acmtoclfalse |
|
174 \global\@acmtocsfalse \global\@acmtodaesfalse \global\@acmtodsfalse |
|
175 \global\@acmtogsfalse \global\@acmtoisfalse \global\@acmtoitfalse |
|
176 \global\@acmtomacsfalse \global\@acmtomsfalse |
|
177 \global\@acmtoplasfalse \global\@acmtosemfalse |
|
178 \global\@acmcsurtrue |
|
179 \def\@journalName{ACM Computing Surveys} |
|
180 \def\@journalNameShort{csur} |
|
181 \def\@permissionCodeOne{0360-0300} |
|
182 } |
|
183 |
|
184 \DeclareOption{acmtissec}{ |
|
185 \typeout{} |
|
186 \typeout{Using ACM TISSEC option: 2001/06/01 by Marco Aiello et al.} |
|
187 \typeout{} |
|
188 \global\@acmjacmfalse \global\@acmcsurfalse %\global\@acmtissecfalse |
|
189 \global\@acmtochifalse \global\@acmtoclfalse \global\@acmtocsfalse |
|
190 \global\@acmtodaesfalse \global\@acmtodsfalse \global\@acmtogsfalse |
|
191 \global\@acmtoisfalse \global\@acmtoitfalse \global\@acmtomacsfalse |
|
192 \global\@acmtomsfalse \global\@acmtoplasfalse \global\@acmtosemfalse |
|
193 \global\@acmtissectrue |
|
194 \def\@journalName{ACM Transactions on Information Systems and Security} |
|
195 \def\@journalNameShort{tissec} |
|
196 \def\@permissionCodeOne{1094-9224} |
|
197 } |
|
198 |
|
199 \DeclareOption{acmtochi}{ |
|
200 \typeout{} |
|
201 \typeout{Using ACM TOCHI option: 2001/06/01 by Marco Aiello et al.} |
|
202 \typeout{} |
|
203 \global\@acmjacmfalse \global\@acmcsurfalse \global\@acmtissecfalse |
|
204 %\global\@acmtochifalse |
|
205 \global\@acmtoclfalse \global\@acmtocsfalse \global\@acmtodaesfalse |
|
206 \global\@acmtodsfalse \global\@acmtogsfalse \global\@acmtoisfalse |
|
207 \global\@acmtoitfalse \global\@acmtomacsfalse \global\@acmtomsfalse |
|
208 \global\@acmtoplasfalse \global\@acmtosemfalse |
|
209 \global\@acmtochitrue |
|
210 \def\@journalName{ACM Transactions on Computer-Human Interaction} |
|
211 \def\@journalNameShort{tochi} |
|
212 \def\@permissionCodeOne{1073-0516} |
|
213 } |
|
214 |
|
215 \DeclareOption{acmtocl}{ |
|
216 \typeout{} |
|
217 \typeout{Using ACM TOCL option: 2001/06/01 by Marco Aiello et al.} |
|
218 \typeout{} |
|
219 \global\@acmjacmfalse \global\@acmcsurfalse \global\@acmtissecfalse |
|
220 \global\@acmtochifalse %\global\@acmtoclfalse |
|
221 \global\@acmtocsfalse \global\@acmtodaesfalse \global\@acmtodsfalse |
|
222 \global\@acmtogsfalse \global\@acmtoisfalse \global\@acmtoitfalse |
|
223 \global\@acmtomacsfalse \global\@acmtomsfalse |
|
224 \global\@acmtoplasfalse \global\@acmtosemfalse |
|
225 \global\@acmtocltrue |
|
226 \def\@journalName{ACM Transactions on Computational Logic} |
|
227 \def\@journalNameShort{tocl} |
|
228 \def\@permissionCodeOne{1529-3785} |
|
229 } |
|
230 |
|
231 \DeclareOption{acmtocs}{ |
|
232 \typeout{} |
|
233 \typeout{Using ACM TOCS option: 2001/06/01 by Marco Aiello et al.} |
|
234 \typeout{} |
|
235 \global\@acmjacmfalse \global\@acmcsurfalse \global\@acmtissecfalse |
|
236 \global\@acmtochifalse \global\@acmtoclfalse |
|
237 %\global\@acmtocsfalse |
|
238 \global\@acmtodaesfalse \global\@acmtodsfalse \global\@acmtogsfalse |
|
239 \global\@acmtoisfalse \global\@acmtoitfalse \global\@acmtomacsfalse |
|
240 \global\@acmtomsfalse \global\@acmtoplasfalse \global\@acmtosemfalse |
|
241 \global\@acmtocstrue |
|
242 \def\@journalName{ACM Transactions on Computer Systems} |
|
243 \def\@journalNameShort{tocs} |
|
244 \def\@permissionCodeOne{0734-2071} |
|
245 } |
|
246 |
|
247 \DeclareOption{acmtodaes}{ |
|
248 \typeout{} |
|
249 \typeout{Using ACM TODAES option: 2001/06/01 by Marco Aiello et al.} |
|
250 \typeout{} |
|
251 \global\@acmjacmfalse \global\@acmcsurfalse \global\@acmtissecfalse |
|
252 \global\@acmtochifalse \global\@acmtoclfalse \global\@acmtocsfalse |
|
253 %\global\@acmtodaesfalse |
|
254 \global\@acmtodsfalse \global\@acmtogsfalse \global\@acmtoisfalse |
|
255 \global\@acmtoitfalse \global\@acmtomacsfalse \global\@acmtomsfalse |
|
256 \global\@acmtoplasfalse \global\@acmtosemfalse |
|
257 \global\@acmtodaestrue |
|
258 \def\@journalName{ACM Transactions on Design Automation of Electronic Systems} |
|
259 \def\@journalNameShort{todaes} |
|
260 \def\@permissionCodeOne{1084-4309} |
|
261 } |
|
262 |
|
263 \DeclareOption{acmtods}{ |
|
264 \typeout{} |
|
265 \typeout{Using ACM TODS option: 2001/06/01 by Marco Aiello et al.} |
|
266 \typeout{} |
|
267 \global\@acmjacmfalse \global\@acmcsurfalse \global\@acmtissecfalse |
|
268 \global\@acmtochifalse \global\@acmtoclfalse \global\@acmtocsfalse |
|
269 \global\@acmtodaesfalse |
|
270 %\global\@acmtodsfalse |
|
271 \global\@acmtogsfalse \global\@acmtoisfalse \global\@acmtoitfalse |
|
272 \global\@acmtomacsfalse \global\@acmtomsfalse |
|
273 \global\@acmtoplasfalse \global\@acmtosemfalse |
|
274 \global\@acmtodstrue |
|
275 \def\@journalName{ACM Transactions on Database Systems} |
|
276 \def\@journalNameShort{tods} |
|
277 \def\@permissionCodeOne{0362-5915} |
|
278 } |
|
279 |
|
280 \DeclareOption{acmtogs}{ |
|
281 \typeout{} |
|
282 \typeout{Using ACM TOGS option: 2001/06/01 by Marco Aiello et al.} |
|
283 \typeout{} |
|
284 \global\@acmjacmfalse \global\@acmcsurfalse \global\@acmtissecfalse |
|
285 \global\@acmtochifalse \global\@acmtoclfalse \global\@acmtocsfalse |
|
286 \global\@acmtodaesfalse \global\@acmtodsfalse |
|
287 %\global\@acmtogsfalse |
|
288 \global\@acmtoisfalse \global\@acmtoitfalse \global\@acmtomacsfalse |
|
289 \global\@acmtomsfalse \global\@acmtoplasfalse \global\@acmtosemfalse |
|
290 \global\@acmtogstrue |
|
291 \def\@journalName{ACM Transactions on Graphics} |
|
292 \def\@journalNameShort{togs} |
|
293 \def\@permissionCodeOne{0730-0301} |
|
294 } |
|
295 |
|
296 \DeclareOption{acmtois}{ |
|
297 \typeout{} |
|
298 \typeout{Using ACM TOIS option: 2001/06/01 by Marco Aiello et al.} |
|
299 \typeout{} |
|
300 \global\@acmjacmfalse \global\@acmcsurfalse \global\@acmtissecfalse |
|
301 \global\@acmtochifalse \global\@acmtoclfalse \global\@acmtocsfalse |
|
302 \global\@acmtodaesfalse \global\@acmtodsfalse \global\@acmtogsfalse |
|
303 %\global\@acmtoisfalse |
|
304 \global\@acmtoitfalse \global\@acmtomacsfalse \global\@acmtomsfalse |
|
305 \global\@acmtoplasfalse \global\@acmtosemfalse |
|
306 \global\@acmtoistrue |
|
307 \def\@journalName{ACM Transactions on Information Systems} |
|
308 \def\@journalNameShort{tois} |
|
309 \def\@permissionCodeOne{1046-8188} |
|
310 } |
|
311 |
|
312 \DeclareOption{acmtoit}{ |
|
313 \typeout{} |
|
314 \typeout{Using ACM TOIT option: 2001/06/01 by Marco Aiello et al.} |
|
315 \typeout{} |
|
316 \global\@acmjacmfalse \global\@acmcsurfalse \global\@acmtissecfalse |
|
317 \global\@acmtochifalse \global\@acmtoclfalse \global\@acmtocsfalse |
|
318 \global\@acmtodaesfalse \global\@acmtodsfalse \global\@acmtogsfalse |
|
319 \global\@acmtoisfalse |
|
320 %\global\@acmtoitfalse |
|
321 \global\@acmtomacsfalse \global\@acmtomsfalse |
|
322 \global\@acmtoplasfalse \global\@acmtosemfalse |
|
323 \global\@acmtoittrue |
|
324 \def\@journalName{ACM Transactions on Internet Technology} |
|
325 \def\@journalNameShort{toit} |
|
326 \def\@permissionCodeOne{1533-5399} |
|
327 } |
|
328 |
|
329 \DeclareOption{acmtomacs}{ |
|
330 \typeout{} |
|
331 \typeout{Using ACM TOMACS option: 2001/06/01 by Marco Aiello et al.} |
|
332 \typeout{} |
|
333 \global\@acmjacmfalse \global\@acmcsurfalse \global\@acmtissecfalse |
|
334 \global\@acmtochifalse \global\@acmtoclfalse \global\@acmtocsfalse |
|
335 \global\@acmtodaesfalse \global\@acmtodsfalse \global\@acmtogsfalse |
|
336 \global\@acmtoisfalse \global\@acmtoitfalse |
|
337 %\global\@acmtomacsfalse |
|
338 \global\@acmtomsfalse \global\@acmtoplasfalse \global\@acmtosemfalse |
|
339 \global\@acmtomacstrue |
|
340 \def\@journalName{ACM Transactions on Modeling and Computer Simulation} |
|
341 \def\@journalNameShort{tomacs} |
|
342 \def\@permissionCodeOne{1049-3301} |
|
343 } |
|
344 |
|
345 \DeclareOption{acmtoms}{ |
|
346 \typeout{} |
|
347 \typeout{Using ACM TOMS option: 2001/06/01 by Marco Aiello et al.} |
|
348 \typeout{} |
|
349 \global\@acmjacmfalse \global\@acmcsurfalse \global\@acmtissecfalse |
|
350 \global\@acmtochifalse \global\@acmtoclfalse \global\@acmtocsfalse |
|
351 \global\@acmtodaesfalse \global\@acmtodsfalse \global\@acmtogsfalse |
|
352 \global\@acmtoisfalse \global\@acmtoitfalse \global\@acmtomacsfalse |
|
353 %\global\@acmtomsfalse |
|
354 \global\@acmtoplasfalse \global\@acmtosemfalse |
|
355 \global\@acmtomstrue |
|
356 \def\@journalName{ACM Transactions on Mathematical Software} |
|
357 \def\@journalNameShort{toms} |
|
358 \def\@permissionCodeOne{0098-3500} |
|
359 } |
|
360 |
|
361 \DeclareOption{acmtoplas}{ |
|
362 \typeout{} |
|
363 \typeout{Using ACM TOPLAS option: 2001/06/01 by Marco Aiello et al.} |
|
364 \typeout{} |
|
365 \global\@acmjacmfalse \global\@acmcsurfalse \global\@acmtissecfalse |
|
366 \global\@acmtochifalse \global\@acmtoclfalse \global\@acmtocsfalse |
|
367 \global\@acmtodaesfalse \global\@acmtodsfalse \global\@acmtogsfalse |
|
368 \global\@acmtoisfalse \global\@acmtoitfalse \global\@acmtomacsfalse |
|
369 \global\@acmtomsfalse |
|
370 %\global\@acmtoplasfalse |
|
371 \global\@acmtosemfalse |
|
372 \global\@acmtoplastrue |
|
373 \def\@journalName{ACM Transactions on Programming Languages and Systems} |
|
374 \def\@journalNameShort{toplas} |
|
375 \def\@permissionCodeOne{0164-0925} |
|
376 } |
|
377 |
|
378 \DeclareOption{acmtosem}{ |
|
379 \typeout{} |
|
380 \typeout{Using ACM, TOSEM option: 2001/06/01 by Marco Aiello et al.} |
|
381 \typeout{} |
|
382 \global\@acmjacmfalse \global\@acmcsurfalse \global\@acmtissecfalse |
|
383 \global\@acmtochifalse \global\@acmtoclfalse \global\@acmtocsfalse |
|
384 \global\@acmtodaesfalse \global\@acmtodsfalse \global\@acmtogsfalse |
|
385 \global\@acmtoisfalse \global\@acmtoitfalse \global\@acmtomacsfalse |
|
386 \global\@acmtomsfalse \global\@acmtoplasfalse |
|
387 %\global\@acmtosemfalse |
|
388 \global\@acmtosemtrue |
|
389 \def\@journalName{ACM Transactions on Software Engineering and Methodology} |
|
390 \def\@journalNameShort{tosem} |
|
391 \def\@permissionCodeOne{1049-331X} |
|
392 } |
|
393 %}aiellom |
|
394 |
|
395 |
|
396 |
|
397 \if@compatibility\else |
|
398 \DeclareOption{a4paper} |
|
399 {\setlength\paperheight {297mm}% |
|
400 \setlength\paperwidth {210mm}% |
|
401 \def\special@paper{210mm,297mm}} |
|
402 \DeclareOption{a5paper} |
|
403 {\setlength\paperheight {210mm}% |
|
404 \setlength\paperwidth {148mm}% |
|
405 \def\special@paper{148mm,210mm}} |
|
406 \DeclareOption{b5paper} |
|
407 {\setlength\paperheight {250mm}% |
|
408 \setlength\paperwidth {176mm}% |
|
409 \setlength\voffset {-15mm}% |
|
410 \setlength\hoffset {-20mm}% |
|
411 \def\special@paper{176mm,250mm}} |
|
412 \DeclareOption{letterpaper} |
|
413 {\setlength\paperheight {11in}% |
|
414 \setlength\paperwidth {8.5in}% |
|
415 \def\special@paper{8.5in,11in}} |
|
416 \DeclareOption{legalpaper} |
|
417 {\setlength\paperheight {14in}% |
|
418 \setlength\paperwidth {8.5in}% |
|
419 \def\special@paper{8.5in,14in}} |
|
420 \DeclareOption{executivepaper} |
|
421 {\setlength\paperheight {10.5in}% |
|
422 \setlength\paperwidth {7.25in}% |
|
423 \def\special@paper{7.25in,10.5in}} |
|
424 \DeclareOption{landscape} |
|
425 {\setlength\@tempdima {\paperheight}% |
|
426 \setlength\paperheight {\paperwidth}% |
|
427 \setlength\paperwidth {\@tempdima}} |
|
428 \fi |
|
429 |
|
430 \DeclareOption{checkMargin}{\setlength\overfullrule{5pt}} |
|
431 \DeclareOption{final}{\setlength\overfullrule{0pt}} |
|
432 |
|
433 \DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse} |
|
434 \DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue} |
|
435 |
|
436 \DeclareOption{10pt}{\def\@ptsize{0}} %needed for amssymbols.sty |
|
437 \DeclareOption{11pt}{\ClassError{acmtrans}{11pt style not supported} |
|
438 {ACM transactions documents can be set in 10pt only}} |
|
439 \DeclareOption{12pt}{\ClassError{acmtrans}{11pt style not supported} |
|
440 {ACM transactions documents can be set in 10pt only}} |
|
441 \newif\if@hyperref |
|
442 \DeclareOption{hyperref}{% |
|
443 \def\pages{\pageref{@firstpg}--\pageref{@lastpg}}% |
|
444 \def\mypage{\thepage}% |
|
445 \def\@getpagenum#1#2#3#4{#2}% |
|
446 \def\pdfinfo#1#2{\pdfmark{pdfmark=/DOCINFO,Title=#1,Author=#2}} |
|
447 \global\@hyperreftrue |
|
448 } |
|
449 \DeclareOption{nohyperref}{ |
|
450 \def\pages{\pageref{@firstpg}--\pageref{@lastpg}}% |
|
451 \def\@getpagenum#1#2{#2}% |
|
452 \def\mypage{\thepage}% |
|
453 \def\pdfinfo#1#2{}% |
|
454 \def\pdfbookmark#1#2{}% |
|
455 \global\@hyperreffalse |
|
456 } |
|
457 \DeclareOption{notfinal}{ |
|
458 \def\pages{BD}% |
|
459 \def\mypage{TBD}% |
|
460 \def\@getpagenum#1#2{#2}% |
|
461 \def\pdfinfo#1#2{}% |
|
462 \def\pdfbookmark#1#2{}% |
|
463 } |
|
464 \DeclareOption{omitline}{\def\@abstractbottom{\relax}} |
|
465 \DeclareOption{dontomitline}{\def\@abstractbottom{\if@acmjacm\else\hbox{\vrule height .2pt width 30pc}\fi}} |
|
466 \ExecuteOptions{twoside,notfinal,10pt,dontomitline,nohyperref,letterpaper} % defaults |
|
467 |
|
468 |
|
469 |
|
470 \ProcessOptions |
|
471 |
|
472 %{aiellom to automatize the issue specific data |
|
473 \def\acmVolume#1{\def\@acmVolume{#1}} |
|
474 \def\acmNumber#1{\def\@acmNumber{#1}} |
|
475 \if@acmnow\else |
|
476 \def\acmYear#1{\def\@acmYear{#1}} |
|
477 \def\acmMonth#1{\def\@acmMonth{#1}} |
|
478 \fi |
|
479 \def\@acmMonthName{\ifnum\@acmMonth=1 January\fi\ifnum\@acmMonth=2 February\fi\ifnum\@acmMonth=3 March\fi\ifnum\@acmMonth=4 April\fi\ifnum\@acmMonth=5 May\fi\ifnum\@acmMonth=6 June\fi\ifnum\@acmMonth=7 July\fi\ifnum\@acmMonth=8 August\fi\ifnum\@acmMonth=9 September\fi\ifnum\@acmMonth=10 October\fi\ifnum\@acmMonth=11 November\fi\ifnum\@acmMonth=12 December\fi} |
|
480 |
|
481 |
|
482 |
|
483 % Command to get the year from the system and display the last two digits |
|
484 \newcommand{\ignoretwo}[2]{} |
|
485 \newcommand{\yearTwoDigits}{\expandafter\ignoretwo\the\year} |
|
486 % overright the \@setref definition, so that if a reference is undefined |
|
487 % then it returns a number 0 and then the usual double boldface |
|
488 % question marks ?? |
|
489 % this is necessary for the \acmPageCode command, otherwise it gives an error |
|
490 % everytime the aux file is not there |
|
491 \def\@setref#1#2#3{% |
|
492 \ifx#1\relax |
|
493 \number 0\relax |
|
494 \protect\G@refundefinedtrue |
|
495 \nfss@text{\reset@font\bfseries ??}% |
|
496 \@latex@warning{Reference `#3' on page \thepage \space undefined}% |
|
497 \else |
|
498 \expandafter#2#1\null |
|
499 \fi} |
|
500 %make the code a four digits string based on the first page number |
|
501 \newcommand{\acmPageCode}{\bgroup |
|
502 \newcount\c@tempo |
|
503 \setcounter{tempo}{\number\pageref{@firstpg}}\ifnum \c@tempo<1000 0\fi\ifnum \c@tempo<100 0\fi\ifnum \c@tempo<10 0\fi\ifnum \c@tempo<1 0\fi\pageref{@firstpg} |
|
504 \egroup |
|
505 } |
|
506 \newcommand{\acmMonthCode}{\bgroup |
|
507 \newcount\c@tempo |
|
508 \setcounter{tempo}{\number\@acmMonth}\ifnum \c@tempo<10 0\fi\number\@acmMonth00\egroup |
|
509 }%}aiellom |
|
510 |
|
511 |
|
512 |
|
513 \lineskip 1pt \normallineskip 1pt |
|
514 \def\baselinestretch{1} |
|
515 |
|
516 \renewcommand\normalsize{% |
|
517 \@setfontsize\normalsize\@xpt\@xiipt |
|
518 \abovedisplayskip 6pt plus2pt minus1pt\belowdisplayskip \abovedisplayskip |
|
519 \abovedisplayshortskip 6pt plus0pt minus 3pt |
|
520 \belowdisplayshortskip 6pt plus0pt minus3pt\let\@listi\@listI} |
|
521 |
|
522 \newcommand\small{% |
|
523 \@setfontsize\small\@ixpt{11pt}% |
|
524 \abovedisplayskip 5pt plus 2pt minus 1pt\belowdisplayskip \abovedisplayskip |
|
525 \abovedisplayshortskip 5pt plus0pt minus2pt\belowdisplayshortskip 5pt plus0pt |
|
526 minus 2pt |
|
527 \def\@listi{\leftmargin\leftmargini \topsep 5pt plus 2pt minus 1pt\parsep 0pt |
|
528 plus .7pt |
|
529 \itemsep 1.6pt plus .8pt}} |
|
530 \newcommand\footnotesize{% |
|
531 % \@setfontsize\footnotesize\@viiipt{10pt} |
|
532 \@setsize\footnotesize{10pt}\viiipt\@viiipt |
|
533 \abovedisplayskip 4pt plus 1pt minus 0pt\belowdisplayskip \abovedisplayskip |
|
534 \abovedisplayshortskip 4pt plus 0pt minus 1pt\belowdisplayshortskip 4pt plus |
|
535 0pt minus 1pt |
|
536 \def\@listi{\leftmargin\leftmargini \topsep 4pt plus 1pt minus |
|
537 0pt\parsep 0pt plus .5pt |
|
538 \itemsep 1pt plus .7pt}} |
|
539 |
|
540 \newcommand\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt} |
|
541 \newcommand\tiny{\@setfontsize\tiny\@vpt\@vipt} |
|
542 \newcommand\large{\@setfontsize\large\@xiipt{14}} |
|
543 \newcommand\Large{\@setfontsize\Large\@xivpt{18}} |
|
544 \newcommand\LARGE{\@setfontsize\LARGE\@xviipt{20}} |
|
545 \newcommand\huge{\@setfontsize\huge\@xxpt{25}} |
|
546 \newcommand\Huge{\@setfontsize\Huge\@xxvpt{30}} |
|
547 |
|
548 \normalsize |
|
549 |
|
550 \oddsidemargin .75in \evensidemargin .75in \marginparwidth .5in |
|
551 \marginparsep .125in |
|
552 \topmargin .25in \headheight 12pt\headsep 16pt |
|
553 %% not in latex2e \footheight 10pt |
|
554 \footskip 15pt |
|
555 |
|
556 \textheight 47pc \textwidth 30pc \columnsep 10pt \columnseprule 0pt |
|
557 % next five lines added by K.R. Apt, March 20, 01 |
|
558 \advance\textheight-2.6pt |
|
559 \newdimen\normaltextheight |
|
560 \setlength\normaltextheight{\textheight} |
|
561 %\renewcommand\rmdefault{pnc} |
|
562 %\renewcommand\sfdefault{phv} |
|
563 |
|
564 |
|
565 \footnotesep 7pt |
|
566 \skip\footins 15pt plus 4pt minus 3pt |
|
567 \floatsep 12pt plus 2pt minus 2pt |
|
568 \textfloatsep \floatsep |
|
569 \intextsep 1pc plus 1pc |
|
570 %%% not in 2e %% \@maxsep 1pc |
|
571 %%% not in 2e %% \@dblmaxsep 20pt |
|
572 \dblfloatsep 12pt plus 2pt minus 2pt |
|
573 \dbltextfloatsep 20pt plus 2pt minus 4pt |
|
574 \@fptop 0pt plus 1fil \@fpsep 1pc plus 2fil \@fpbot 0pt plus 1fil |
|
575 \@dblfptop 0pt plus 1fil \@dblfpsep 8pt plus 2fil \@dblfpbot 0pt plus 1fil |
|
576 \marginparpush 6pt |
|
577 |
|
578 \parskip 0pt plus .1pt \parindent 10pt \partopsep 0pt |
|
579 \@lowpenalty 51 \@medpenalty 151 \@highpenalty 301 |
|
580 \@beginparpenalty -\@lowpenalty \@endparpenalty -\@lowpenalty \@itempenalty |
|
581 -\@lowpenalty |
|
582 |
|
583 |
|
584 \def\part{\@ucheadtrue |
|
585 \@startsection{part}{9}{\z@}{-10pt plus -4pt minus |
|
586 -2pt}{4pt}{\reset@font\normalsize\sffamily}} |
|
587 \def\section{\@ucheadtrue |
|
588 \@startsection{section}{1}{\z@}{-10pt plus -4pt minus |
|
589 -2pt}{4pt}{\reset@font\normalsize\sffamily}} |
|
590 \def\subsection{\@ucheadfalse |
|
591 \@startsection{subsection}{2}{\z@}{-8pt plus -2pt minus |
|
592 -1pt}{4pt}{\reset@font\normalsize\sffamily}} |
|
593 \def\subsubsection{\@ucheadfalse |
|
594 \@startsection{subsubsection}{3}{\parindent}{6pt plus |
|
595 1pt}{-5pt}{\reset@font\normalsize\itshape}} |
|
596 \def\paragraph{\@ucheadfalse |
|
597 \@startsection{paragraph}{3}{\parindent}{6pt plus |
|
598 1pt}{-5pt}{\reset@font\normalsize\itshape}} |
|
599 |
|
600 \renewcommand{\@seccntformat}[1]{\textup{\csname the#1\endcsname}} |
|
601 |
|
602 \gdef\@period{.} |
|
603 \def\@trivlist{\@topsepadd\topsep |
|
604 \if@noskipsec \gdef\@period{}\leavevmode\gdef\@period{.}\fi |
|
605 \ifvmode \advance\@topsepadd\partopsep \else \unskip\par\fi |
|
606 \if@inlabel \@noparitemtrue \@noparlisttrue |
|
607 \else \@noparlistfalse \@topsep\@topsepadd \fi |
|
608 \advance\@topsep \parskip |
|
609 \leftskip\z@\rightskip\@rightskip \parfillskip\@flushglue |
|
610 \@setpar{\if@newlist\else{\@@par}\fi} \global\@newlisttrue |
|
611 \@outerparskip\parskip} |
|
612 |
|
613 |
|
614 \def\@startsection#1#2#3#4#5#6{% |
|
615 \if@noskipsec \leavevmode \fi |
|
616 \par |
|
617 \@tempskipa #4\relax |
|
618 \@afterindenttrue |
|
619 \ifdim \@tempskipa <\z@ |
|
620 \@tempskipa -\@tempskipa \@afterindentfalse |
|
621 \fi |
|
622 \if@nobreak |
|
623 \everypar{}% |
|
624 \else |
|
625 \addpenalty\@secpenalty\addvspace\@tempskipa |
|
626 \fi |
|
627 \@ifstar |
|
628 {\@ssect{#3}{#4}{#5}{#6}}% |
|
629 {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}} |
|
630 \def\@sect#1#2#3#4#5#6[#7]#8{% |
|
631 \ifnum #2>\c@secnumdepth |
|
632 \let\@svsec\@empty |
|
633 \else |
|
634 \refstepcounter{#1}% |
|
635 \if@uchead% |
|
636 \protected@edef\@svsec{\@seccntformat{#1}.\quad\relax}% |
|
637 \else% |
|
638 \protected@edef\@svsec{\@seccntformat{#1}\quad\relax}% |
|
639 \fi% |
|
640 \fi |
|
641 \@tempskipa #5\relax |
|
642 \ifdim \@tempskipa>\z@ |
|
643 \begingroup |
|
644 #6{% |
|
645 \@hangfrom{\hskip #3\relax\@svsec}% |
|
646 \interlinepenalty \@M \if@uchead\MakeUppercase{#8}\else#8\fi \@@par}% |
|
647 \endgroup |
|
648 \csname #1mark\endcsname{#7}% |
|
649 \addcontentsline{toc}{#1}{% |
|
650 \ifnum #2>\c@secnumdepth \else |
|
651 \protect\numberline{\csname the#1\endcsname}% |
|
652 \fi |
|
653 #7}% |
|
654 \else |
|
655 \def\@svsechd{% |
|
656 #6{\hskip #3\relax |
|
657 \@svsec \if@uchead\Makeuppercase{#8}\else#8\fi}% |
|
658 \csname #1mark\endcsname{#7}% |
|
659 \addcontentsline{toc}{#1}{% |
|
660 \ifnum #2>\c@secnumdepth \else |
|
661 \protect\numberline{\csname the#1\endcsname}% |
|
662 \fi |
|
663 #7}}% |
|
664 \fi |
|
665 \@xsect{#5}} |
|
666 |
|
667 \def\@xsect#1{\@tempskipa #1\relax |
|
668 \ifdim \@tempskipa>\z@ |
|
669 \par \nobreak |
|
670 \vskip \@tempskipa |
|
671 \@afterheading |
|
672 \else \global\@nobreakfalse \global\@noskipsectrue |
|
673 \everypar{\if@noskipsec \global\@noskipsecfalse |
|
674 \clubpenalty\@M \hskip -\parindent |
|
675 \begingroup \@svsechd\@period \endgroup \unskip |
|
676 \hskip -#1 |
|
677 \else \clubpenalty \@clubpenalty |
|
678 \everypar{}\fi}\fi\ignorespaces} |
|
679 \newif\if@uchead\@ucheadfalse |
|
680 |
|
681 |
|
682 \setcounter{secnumdepth}{3} |
|
683 \newcounter{secnumbookdepth} |
|
684 \setcounter{secnumbookdepth}{3} |
|
685 |
|
686 \newfont{\apbf}{cmbx9} |
|
687 |
|
688 \def\@withappendix#1{App--\number #1} |
|
689 |
|
690 \newcommand{\elecappendix}{ |
|
691 } |
|
692 |
|
693 \def\appenheader{\global\@topnum\z@ \global\@botroom \textheight \begin{figure} |
|
694 \newfont{\sc}{cmcsc10} |
|
695 \parindent\z@ |
|
696 \hbox{} |
|
697 \vskip -\textfloatsep |
|
698 \vskip 11pt |
|
699 \hrule height .2pt width 30pc |
|
700 \vskip 2pt\rule{0pt}{10pt}\ignorespaces} |
|
701 \def\endappenheader{\end{figure}\gdef\appendixhead{}} |
|
702 |
|
703 \def\@appsec{} |
|
704 |
|
705 \def\appendix{\par |
|
706 \setcounter{section}{0} |
|
707 \setcounter{subsection}{0} |
|
708 \def\@appsec{APPENDIX } |
|
709 \def\thesection{\Alph{section}} |
|
710 \def\theHsection{\Alph{section}}} |
|
711 |
|
712 |
|
713 |
|
714 \labelsep 5pt |
|
715 \settowidth{\leftmargini}{(9)} \addtolength\leftmargini\labelsep |
|
716 \settowidth{\leftmarginii}{(b)} \addtolength\leftmarginii\labelsep |
|
717 \leftmarginiii \leftmarginii |
|
718 \leftmarginiv \leftmarginii |
|
719 \leftmarginv \leftmarginii |
|
720 \leftmarginvi \leftmarginii |
|
721 \leftmargin\leftmargini |
|
722 \labelwidth\leftmargini\advance\labelwidth-\labelsep |
|
723 \def\@listI{\leftmargin\leftmargini \parsep 0pt plus 1pt\topsep 6pt plus 2pt |
|
724 minus 2pt\itemsep 2pt plus 1pt minus .5pt} |
|
725 \let\@listi\@listI |
|
726 \@listi |
|
727 \def\@listii{\leftmargin\leftmarginii |
|
728 \labelwidth\leftmarginii\advance\labelwidth-\labelsep |
|
729 \topsep 0pt plus 1pt |
|
730 \parsep 0pt plus .5pt |
|
731 \itemsep \parsep} |
|
732 \def\@listiii{\leftmargin\leftmarginiii |
|
733 \labelwidth\leftmarginiii\advance\labelwidth-\labelsep |
|
734 \topsep 0pt plus 1pt |
|
735 \parsep 0pt plus .5pt |
|
736 \itemsep \parsep} |
|
737 \def\@listiv{\leftmargin\leftmarginiv |
|
738 \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} |
|
739 \def\@listv{\leftmargin\leftmarginv |
|
740 \labelwidth\leftmarginv\advance\labelwidth-\labelsep} |
|
741 \def\@listvi{\leftmargin\leftmarginvi |
|
742 \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} |
|
743 |
|
744 |
|
745 |
|
746 |
|
747 \def\enumerate{\ifnum \@enumdepth >3 \@toodeep\else |
|
748 \advance\@enumdepth \@ne |
|
749 \edef\@enumctr{enum\romannumeral\the\@enumdepth}\list |
|
750 {\csname label\@enumctr\endcsname}{\usecounter |
|
751 {\@enumctr}\def\makelabel##1{##1\hss}}\fi} |
|
752 \def\longenum{\ifnum \@enumdepth >3 \@toodeep\else |
|
753 \advance\@enumdepth \@ne |
|
754 \edef\@enumctr{enum\romannumeral\the\@enumdepth}\list |
|
755 {\csname label\@enumctr\endcsname}{\usecounter |
|
756 {\@enumctr}\labelwidth\z@}\fi} |
|
757 %\leftmargin\z@ \itemindent\parindent}\fi} - this indents each item in enumerate |
|
758 \let\endlongenum\endlist |
|
759 %%--------------------CHANGED: always roman parentheses. dave ---------------%% |
|
760 \def\labelenumi{{\rm (}\arabic{enumi}\/{\rm )}} |
|
761 \def\theenumi{\arabic{enumi}} |
|
762 \def\labelenumii{{\rm (}\alph{enumii}\rm{)}} |
|
763 \def\theenumii{\alph{enumii}} |
|
764 \def\p@enumii{\theenumi} |
|
765 \def\labelenumiii{\roman{enumiii}.} |
|
766 \def\theenumiii{\roman{enumiii}} |
|
767 \def\p@enumiii{\theenumi{\rm (}\theenumii{\rm )}} |
|
768 \def\labelenumiv{\Alph{enumiv}.} |
|
769 \def\theenumiv{\Alph{enumiv}} |
|
770 \def\p@enumiv{\p@enumiii\theenumiii} |
|
771 |
|
772 \def\p@enumiv{\p@enumiii\theenumiii} |
|
773 |
|
774 \def\itemize{\list{---\hskip -\labelsep}{\settowidth |
|
775 {\leftmargin}{---}\labelwidth\leftmargin |
|
776 \addtolength{\labelwidth}{-\labelsep}}} |
|
777 \let\enditemize\endlist |
|
778 \def\longitem{\list{---}{\labelwidth\z@ |
|
779 \leftmargin\z@ \itemindent\parindent \advance\itemindent\labelsep}} |
|
780 \let\endlongitem\endlist |
|
781 \def\verse{\let\\=\@centercr |
|
782 \list{}{\leftmargin 2pc |
|
783 \itemindent -1.5em\listparindent \itemindent |
|
784 \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]} |
|
785 \let\endverse\endlist |
|
786 \def\quotation{\list{}{\leftmargin 2pc \listparindent .5em |
|
787 \itemindent\listparindent |
|
788 \rightmargin\leftmargin \parsep 0pt plus 1pt}\item[]} |
|
789 \let\endquotation=\endlist |
|
790 \def\quote{\list{}{\leftmargin 2pc \rightmargin\leftmargin}\item[]} |
|
791 \let\endquote=\endlist |
|
792 |
|
793 \def\description{\list{}{\listparindent\parindent\labelwidth\z@ |
|
794 \leftmargin\z@ \itemindent\parindent\advance\itemindent\labelsep |
|
795 \def\makelabel##1{\it ##1.}}} |
|
796 \let\enddescription\endlist |
|
797 |
|
798 \def\describe#1{\list{}{\listparindent\parindent\settowidth{\labelwidth}{#1}\leftmargin |
|
799 \labelwidth\addtolength\leftmargin\labelsep\def\makelabel##1{##1\hfil}}} |
|
800 \let\enddescribe\endlist |
|
801 |
|
802 \def\program{\ifx\@currsize\normalsize\small \else \rm \fi\tabbing} |
|
803 \let\endprogram\endtabbing |
|
804 \def\@begintheorem#1#2{\trivlist \item[\hskip 10pt\hskip |
|
805 \labelsep{\sc{#1}\hskip 5pt\relax #2.}] \itshape} |
|
806 % aiellom{: this is what makes the theorem environment with names |
|
807 % ABOVE #1 is the word example, corollary, etc. |
|
808 % #2 is the number |
|
809 % \def\@opargbegintheorem#1#2#3{\trivlist |
|
810 % \item[\hskip 10pt \hskip \labelsep{\sc #1\savebox\@tempboxa{#3}\ifdim |
|
811 % \wd\@tempboxa>\z@ \hskip 5pt\relax \box\@tempboxa\fi.}] \itshape} |
|
812 % is been changed to |
|
813 % #1 is the word theorem, lemma, etc. |
|
814 % #2 is the number |
|
815 % #3 is the name of the theorem, lemma, etc. |
|
816 \def\@opargbegintheorem#1#2#3{\trivlist |
|
817 \item[\hskip 10pt \hskip |
|
818 \labelsep{\sc{#1}\savebox\@tempboxa{\sc{#3}}\ifdim |
|
819 \wd\@tempboxa>\z@ \hskip 5pt\relax \sc{#2} \box\@tempboxa\fi.}] |
|
820 \itshape} |
|
821 % aiellom} |
|
822 |
|
823 |
|
824 |
|
825 \newif\if@qeded\global\@qededfalse |
|
826 \def\proof{\global\@qededfalse\@ifnextchar[{\@xproof}{\@proof}} |
|
827 \def\endproof{\if@qeded\else\qed\fi\endtrivlist} |
|
828 \def\qed{\unskip\kern 10pt{\unitlength1pt\linethickness{.4pt}\framebox(6,6){}} |
|
829 \global\@qededtrue} |
|
830 \def\@proof{\trivlist \item[\hskip 10pt\hskip |
|
831 \labelsep{\sc Proof.}]\ignorespaces} |
|
832 \def\@xproof[#1]{\trivlist \item[\hskip 10pt\hskip |
|
833 \labelsep{\sc Proof #1.}]\ignorespaces} |
|
834 |
|
835 \def\newdef#1#2{\expandafter\@ifdefinable\csname #1\endcsname |
|
836 {\@definecounter{#1}\expandafter\xdef\csname |
|
837 the#1\endcsname{\@thmcounter{#1}}\global |
|
838 \@namedef{#1}{\@defthm{#1}{#2}}\global |
|
839 \@namedef{end#1}{\@endtheorem}}} |
|
840 \def\@defthm#1#2{\refstepcounter |
|
841 {#1}\@ifnextchar[{\@ydefthm{#1}{#2}}{\@xdefthm{#1}{#2}}} |
|
842 \def\@xdefthm#1#2{\@begindef{#2}{\csname the#1\endcsname}\ignorespaces} |
|
843 \def\@ydefthm#1#2[#3]{\trivlist \item[\hskip 10pt\hskip |
|
844 \labelsep{\it #2\savebox\@tempboxa{#3}\ifdim |
|
845 \wd\@tempboxa>\z@ \ \box\@tempboxa\fi.}]\ignorespaces} |
|
846 \def\@begindef#1#2{\trivlist \item[\hskip 10pt\hskip |
|
847 \labelsep{\it #1\ \rm #2.}]} |
|
848 |
|
849 \def\theequation{\arabic{equation}} |
|
850 |
|
851 \def\titlepage{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn |
|
852 \else \newpage \fi \thispagestyle{empty}\c@page\z@} |
|
853 \def\endtitlepage{\if@restonecol\twocolumn \else \newpage \fi} |
|
854 |
|
855 \arraycolsep 2.5pt \tabcolsep 6pt \arrayrulewidth .4pt \doublerulesep 2pt |
|
856 \tabbingsep \labelsep |
|
857 |
|
858 \skip\@mpfootins = \skip\footins |
|
859 \fboxsep = 3pt \fboxrule = .4pt |
|
860 |
|
861 \newcounter{part} |
|
862 \newcounter{section} |
|
863 \newcounter{subsection}[section] |
|
864 \newcounter{subsubsection}[subsection] |
|
865 \newcounter{paragraph}[subsubsection] |
|
866 |
|
867 \def\thepart{\Roman{part}} |
|
868 \def\thesection {\arabic{section}} |
|
869 \def\thesubsection {\thesection.\arabic{subsection}} |
|
870 \def\thesubsubsection {\thesubsection.\arabic{subsubsection}} |
|
871 \def\theparagraph {\thesubsubsection.\arabic{paragraph}} |
|
872 |
|
873 \def\@pnumwidth{1.55em} |
|
874 \def\@tocrmarg {2.55em} |
|
875 \def\@dotsep{4.5} |
|
876 \setcounter{tocdepth}{3} |
|
877 |
|
878 \def\tableofcontents{\section*{Contents\@mkboth{CONTENTS}{CONTENTS}} |
|
879 \@starttoc{toc}} |
|
880 \def\l@part#1#2{\addpenalty{\@secpenalty} |
|
881 \addvspace{2.25em plus 1pt} \begingroup |
|
882 \@tempdima 3em \parindent \z@ \rightskip \@pnumwidth \parfillskip |
|
883 -\@pnumwidth |
|
884 {\large \bf \leavevmode #1\hfil \hbox to\@pnumwidth{\hss #2}}\par |
|
885 \nobreak \endgroup} |
|
886 \def\l@section#1#2{\addpenalty{\@secpenalty} \addvspace{1.0em plus 1pt} |
|
887 \@tempdima 1.5em \begingroup |
|
888 \parindent \z@ \rightskip \@pnumwidth |
|
889 \parfillskip -\@pnumwidth |
|
890 \bf \leavevmode #1\hfil \hbox to\@pnumwidth{\hss #2}\par |
|
891 \endgroup} |
|
892 \def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}} |
|
893 \def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}} |
|
894 \def\listoffigures{\section*{List of Figures\@mkboth |
|
895 {LIST OF FIGURES}{LIST OF FIGURES}}\@starttoc{lof}} |
|
896 \def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} |
|
897 \def\listoftables{\section*{List of Tables\@mkboth |
|
898 {LIST OF TABLES}{LIST OF TABLES}}\@starttoc{lot}} |
|
899 \let\l@table\l@figure |
|
900 |
|
901 |
|
902 \def\thebibliography#1{\par\footnotesize |
|
903 \@ucheadfalse |
|
904 \@startsection{subsection}{2}{\z@}{16pt plus 2pt minus |
|
905 1pt}{2pt}{\sf}*{REFERENCES}% |
|
906 \list{\arabic{enumi}.}{% |
|
907 \settowidth{\labelwidth}{99.}% |
|
908 \leftmargin\labelwidth |
|
909 \advance\leftmargin\labelsep \topsep \z@ \parsep 0pt plus .1pt |
|
910 \itemsep \parsep |
|
911 \usecounter{enumi}}% |
|
912 \def\newblock{\hskip .11em plus .33em minus .07em} |
|
913 \sloppy |
|
914 \widowpenalty=4500 |
|
915 \clubpenalty=4500 |
|
916 \sfcode`\.=1000\relax} |
|
917 \let\endthebibliography=\endlist |
|
918 |
|
919 |
|
920 \newif\if@restonecol |
|
921 \def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi |
|
922 \columnseprule \z@ |
|
923 \columnsep 35pt\twocolumn[\section*{Index}] |
|
924 \@mkboth{INDEX}{INDEX}\thispagestyle{plain}\parindent\z@ |
|
925 \parskip\z@ plus .3pt\relax\let\item\@idxitem} |
|
926 \def\@idxitem{\par\hangindent 40pt} |
|
927 \def\subitem{\par\hangindent 40pt \hspace*{20pt}} |
|
928 \def\subsubitem{\par\hangindent 40pt \hspace*{30pt}} |
|
929 \def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi} |
|
930 \def\indexspace{\par \vskip 10pt plus 5pt minus 3pt\relax} |
|
931 |
|
932 \def\footnoterule{\kern-3\p@ |
|
933 \hrule \@height 0.2\p@ \@width 47\p@ |
|
934 \kern 2.6\p@ |
|
935 } |
|
936 |
|
937 \long\def\@makefntext#1{\parindent 1em\noindent |
|
938 $^{\@thefnmark}$#1} |
|
939 |
|
940 |
|
941 \setcounter{topnumber}{3} |
|
942 \def\topfraction{.99} |
|
943 \setcounter{bottomnumber}{1} |
|
944 \def\bottomfraction{.5} |
|
945 \setcounter{totalnumber}{3} |
|
946 \def\textfraction{.01} |
|
947 \def\floatpagefraction{.85} |
|
948 \setcounter{dbltopnumber}{2} |
|
949 \def\dbltopfraction{.7} |
|
950 \def\dblfloatpagefraction{.5} |
|
951 |
|
952 \long\def\@makecaption#1#2{\vskip 1pc \setbox\@tempboxa\hbox{#1.\hskip |
|
953 1em\relax #2} |
|
954 \ifdim \wd\@tempboxa >\hsize #1. #2\par \else \hbox |
|
955 to\hsize{\hfil\box\@tempboxa\hfil} |
|
956 \fi} |
|
957 |
|
958 \def\nocaption{\refstepcounter\@captype \par |
|
959 \vskip 1pc \hbox to\hsize{\hfil \footnotesize Figure \thefigure |
|
960 \hfil}} |
|
961 |
|
962 |
|
963 \newcounter{figure} |
|
964 \def\thefigure{\@arabic\c@figure} |
|
965 \def\fps@figure{tbp} |
|
966 \def\ftype@figure{1} |
|
967 \def\ext@figure{lof} |
|
968 \def\fnum@figure{Fig.\ \thefigure} |
|
969 \def\figure{\let\normalsize\footnotesize \normalsize \@float{figure}} |
|
970 \let\endfigure\end@float |
|
971 \@namedef{figure*}{\@dblfloat{figure}} |
|
972 \@namedef{endfigure*}{\end@dblfloat} |
|
973 |
|
974 \newcounter{table} |
|
975 \def\thetable{\@Roman\c@table} |
|
976 \def\fps@table{tbp} |
|
977 \def\ftype@table{2} |
|
978 \def\ext@table{lot} |
|
979 \def\fnum@table{Table \thetable} |
|
980 \def\table{\let\normalsize\footnotesize \normalsize\@float{table}} |
|
981 \let\endtable\end@float |
|
982 \@namedef{table*}{\@dblfloat{table}} |
|
983 \@namedef{endtable*}{\end@dblfloat} |
|
984 \def\acmtable#1{\@narrowfig #1\relax |
|
985 \let\caption\@atcap \let\nocaption\@atnocap |
|
986 \def\@tmpnf{}\@ifnextchar[{\@xntab}{\@ntab}} |
|
987 \def\endacmtable{\hbox to \textwidth{\hfil |
|
988 \vbox{\hsize \@narrowfig |
|
989 \box\@nfcapbox |
|
990 {\baselineskip 4pt \hbox{\vrule height .4pt width \hsize}} |
|
991 \vskip -1pt |
|
992 \box\@nfigbox\vskip -1pt |
|
993 {\baselineskip 4pt \hbox{\vrule height .4pt width \hsize}}}\hfil} |
|
994 \end@float} |
|
995 \def\@xntab[#1]{\def\@tmpnf{[#1]}\@ntab} |
|
996 \def\@ntab{\expandafter\table\@tmpnf |
|
997 \setbox\@nfigbox\vbox\bgroup |
|
998 \hsize \@narrowfig \@parboxrestore} |
|
999 \def\@atmakecap #1#2{\setbox\@tempboxa\hbox{#1.\hskip 1em\relax #2} |
|
1000 \ifdim \wd\@tempboxa >\hsize \sloppy #1.\hskip 1em\relax #2 \par \else \hbox |
|
1001 to\hsize{\hfil\box\@tempboxa\hfil} |
|
1002 \fi} |
|
1003 \def\@atcap{\par\egroup\refstepcounter\@captype |
|
1004 \@dblarg{\@atcapx\@captype}} |
|
1005 \long\def\@atcapx#1[#2]#3{\setbox\@nfcapbox\vbox {\hsize \wd\@nfigbox |
|
1006 \@parboxrestore |
|
1007 \@atmakecap{\csname fnum@#1\endcsname}{\ignorespaces #3}\par}} |
|
1008 \def\@atnocap{\egroup \refstepcounter\@captype |
|
1009 \setbox\@nfcapbox\vbox {\hsize \wd\@nfigbox |
|
1010 \hbox to\hsize{\hfil \footnotesize Table \thetable\hfil}}} |
|
1011 |
|
1012 % |
|
1013 %% Narrow figures |
|
1014 % |
|
1015 \def\narrowfig#1{\@narrowfig #1\relax |
|
1016 \let\caption\@nfcap \let\nocaption\@nfnocap |
|
1017 \def\@tmpnf{}\@ifnextchar[{\@xnfig}{\@nfig}} |
|
1018 \def\endnarrowfig{\hbox to \textwidth{\if@nfeven |
|
1019 \box\@nfcapbox\hfil\box\@nfigbox |
|
1020 \else \box\@nfigbox\hfil\box\@nfcapbox\fi}\end@float} |
|
1021 \def\@xnfig[#1]{\def\@tmpnf{[#1]}\@nfig} |
|
1022 \def\@nfig{\expandafter\figure\@tmpnf |
|
1023 \setbox\@nfigbox\vbox\bgroup |
|
1024 \hsize \@narrowfig \@parboxrestore} |
|
1025 \def\@nfmakecap #1#2{\setbox\@tempboxa\hbox{#1.\hskip 1em\relax #2} |
|
1026 \ifdim \wd\@tempboxa >\hsize \sloppy #1.\hskip 1em\relax #2 \par \else \hbox |
|
1027 to\hsize{\if@nfeven\else\hfil\fi\box\@tempboxa\if@nfeven\hfil\fi} |
|
1028 \fi} |
|
1029 \def\@nfcap{\par\egroup\refstepcounter\@captype |
|
1030 \@dblarg{\@nfcapx\@captype}} |
|
1031 \long\def\@nfcapx#1[#2]#3{\@seteven |
|
1032 \setbox\@nfcapbox\vbox to \ht\@nfigbox |
|
1033 {\hsize \textwidth \advance\hsize -2pc \advance\hsize -\wd\@nfigbox |
|
1034 \@parboxrestore |
|
1035 \vfil |
|
1036 \@nfmakecap{\csname fnum@#1\endcsname}{\ignorespaces #3}\par |
|
1037 \vfil}} |
|
1038 \def\@nfnocap{\egroup \refstepcounter\@captype \@seteven |
|
1039 \setbox\@nfcapbox\vbox to \ht\@nfigbox |
|
1040 {\hsize \textwidth \advance\hsize -2pc \advance\hsize -\wd\@nfigbox |
|
1041 \@parboxrestore |
|
1042 \vfil |
|
1043 \hbox to\hsize{\if@nfeven\else\hfil\fi |
|
1044 \footnotesize Figure \thefigure |
|
1045 \if@nfeven\hfil\fi} |
|
1046 \vfil}} |
|
1047 \def\@seteven{\@nfeventrue |
|
1048 \@ifundefined{r@@nf\thefigure}{}{% |
|
1049 \edef\@tmpnf{\csname r@@nf\thefigure\endcsname}% |
|
1050 \edef\@tmpnf{\expandafter\@getpagenum\@tmpnf}% |
|
1051 \ifodd\@tmpnf\relax\@nfevenfalse\fi}% |
|
1052 \label{@nf\thefigure}\edef\@tmpnfx{\if@nfeven e\else o\fi} |
|
1053 \edef\@tmpnf{\write\@unused {\noexpand\ifodd \noexpand\c@page |
|
1054 \noexpand\if \@tmpnfx e\noexpand\@nfmsg{\thefigure} \noexpand\fi |
|
1055 \noexpand\else |
|
1056 \noexpand\if \@tmpnfx o\noexpand\@nfmsg{\thefigure}\noexpand\fi |
|
1057 \noexpand\fi }}\@tmpnf} |
|
1058 \def\@nfmsg#1{Bad narrowfig: Figure #1 on page \thepage} |
|
1059 |
|
1060 \newdimen\@narrowfig |
|
1061 \newbox\@nfigbox |
|
1062 \newbox\@nfcapbox |
|
1063 \newif\if@nfeven |
|
1064 |
|
1065 \def\and{\\ and\\} |
|
1066 \def\maketitle{\newpage \thispagestyle{titlepage}\par |
|
1067 \begingroup \lineskip = \z@\null \vskip -30pt\relax |
|
1068 \parindent\z@ \LARGE {\raggedright \hyphenpenalty\@M |
|
1069 %\sf \@title \par |
|
1070 \@title \par |
|
1071 \global\firstfoot %aiellom |
|
1072 \global\runningfoot %aiellom |
|
1073 } |
|
1074 \label{@firstpg} |
|
1075 { \vskip 13.5pt\relax \normalsize \sf %vskip 13.5pt between title and author |
|
1076 \begingroup \addtolength{\baselineskip}{2pt} |
|
1077 \@author\par \vskip -2pt |
|
1078 \endgroup } |
|
1079 {\ifx \@categories\@empty |
|
1080 \else |
|
1081 \baselineskip 17pt\relax |
|
1082 \if@acmjacm\else\hbox{\vrule height .2pt width 30pc}\fi%to eliminate the lines for jacm |
|
1083 } |
|
1084 \vskip 8.5pt \footnotesize \box\@abstract \vskip 4pt\relax %vskip8.5 space above abstract |
|
1085 {\def\and{\unskip\/{\rm ; }} |
|
1086 Categories and Subject Descriptors: \@categories \fi}\par\vskip 4pt\relax |
|
1087 \box\@terms \vskip 4pt\relax |
|
1088 \box\@keywords \par |
|
1089 {\baselineskip 14pt\relax |
|
1090 \@abstractbottom |
|
1091 } |
|
1092 \vskip 23pt\relax |
|
1093 \endgroup |
|
1094 \let\maketitle\relax |
|
1095 % \gdef\@author{}\gdef\@title{} |
|
1096 \gdef\@categories{}} |
|
1097 |
|
1098 |
|
1099 \newbox\@abstract |
|
1100 \newbox\@terms |
|
1101 \newbox\@keywords |
|
1102 \def\abstract{\global\setbox\@abstract=\vbox\bgroup \everypar{} |
|
1103 \footnotesize \hsize 30pc \parindent 10pt \noindent |
|
1104 \rule{0pt}{10pt}\ignorespaces} |
|
1105 \def\endabstract{\egroup} |
|
1106 |
|
1107 \def\terms#1{\setbox\@terms=\vbox{\everypar{} |
|
1108 \footnotesize \hsize 30pc \parindent 0pt \noindent |
|
1109 General Terms: \ignorespaces #1}} |
|
1110 \def\keywords#1{\setbox\@keywords=\vbox{\everypar{} |
|
1111 \footnotesize \hsize 30pc \parindent 0pt \noindent |
|
1112 Additional Key Words and Phrases: \ignorespaces #1} |
|
1113 } |
|
1114 |
|
1115 \def\category#1#2#3{\@ifnextchar |
|
1116 [{\@category{#1}{#2}{#3}}{\@xcategory{#1}{#2}{#3}}} |
|
1117 \def\@category#1#2#3[#4]{\edef\@tempa{\ifx \@categories\@empty |
|
1118 \else ; \fi}{\def\protect{\noexpand\protect |
|
1119 \noexpand}\def\and{\noexpand\and}\xdef\@categories{\@categories\@tempa #1 |
|
1120 [{\bf #2}]: |
|
1121 #3\kern\z@---\hskip\z@{\it #4}}}} |
|
1122 \def\@xcategory#1#2#3{\edef\@tempa{\ifx \@categories\@empty \else ; |
|
1123 \fi}{\def\protect{\noexpand\protect\noexpand}\def\and{\noexpand |
|
1124 \and}\xdef\@categories{\@categories\@tempa #1 [{\bf #2}]: #3}}} |
|
1125 \def\@categories{} |
|
1126 \def\bottomstuff{\global\@topnum\z@ \global\@botroom \textheight \begin{figure} |
|
1127 \parindent\z@ |
|
1128 \hbox{} |
|
1129 \vskip -\textfloatsep |
|
1130 \vskip 10pt |
|
1131 \hrule height .2pt width 30pc |
|
1132 \vskip 2pt\rule{0pt}{10pt}\ignorespaces} |
|
1133 \def\endbottomstuff{\permission\end{figure}\gdef\permission{}} |
|
1134 |
|
1135 \newenvironment{ackslike}[1] |
|
1136 {\par \footnotesize |
|
1137 \@ucheadfalse |
|
1138 \@startsection{subsection}{2}{\z@}{-16pt plus -2pt minus -1pt}{2pt}{\sf}* |
|
1139 {\uppercase{#1}}\par\normalsize |
|
1140 \pdfbookmark{Acknowledgments}{Ack} |
|
1141 } |
|
1142 {\par} |
|
1143 \newenvironment{acks}{\begin{ackslike}{ACKNOWLEDGMENTS}}{\end{ackslike}} |
|
1144 |
|
1145 \def\received{\par\footnotesize\addvspace{18pt plus 0pt minus |
|
1146 4pt}\parindent\z@} |
|
1147 %the line below replaced by the line that follows (K.R. Apt, July 11, 2000 |
|
1148 %\def\endreceived{\label{@lastpg}\hskip-2pt\par} |
|
1149 \def\endreceived{\label{@lastpg}\hskip-2pt\par\normalsize} |
|
1150 |
|
1151 \mark{{}{}} |
|
1152 |
|
1153 \def\ps@myheadings{\let\@mkboth\@gobbletwo |
|
1154 \def\@oddhead{\hbox{}\hfill \small\sf \rightmark\hskip |
|
1155 19pt{\Large$\cdot$}\hskip 17pt\mypage} |
|
1156 \def\@oddfoot{\hbox{}\hfill\tiny\@runningfoot} |
|
1157 \def\@evenhead{\small\sf\mypage \hskip 17pt{\Large$\cdot$}\hskip 19pt\leftmark\hfill \hbox{}} |
|
1158 \def\@evenfoot{\tiny\@runningfoot\hfill\hbox{}} |
|
1159 \def\sectionmark##1{}\def\subsectionmark##1{}} |
|
1160 \def\@runningfoot{} |
|
1161 \def\runningfoot{\def\@runningfoot{\@journalName, Vol.\ \@acmVolume, No.\ \@acmNumber, \@acmMonthName\ 20\@acmYear.}} |
|
1162 \def\@firstfoot{} |
|
1163 \def\firstfoot{\def\@firstfoot{\@journalName, Vol.\ \@acmVolume, No.\ \@acmNumber, \@acmMonthName\ 20\@acmYear, Pages \pages.}} |
|
1164 \def\ps@titlepage{\let\@mkboth\@gobbletwo |
|
1165 \def\@oddhead{}\def\@oddfoot{\hbox{}\hfill |
|
1166 \tiny\@firstfoot}\def\@evenhead{}\def\@evenfoot{\tiny\@firstfoot\hfill\hbox{}}} |
|
1167 |
|
1168 \def\today{\ifcase\month\or |
|
1169 January\or February\or March\or April\or May\or June\or |
|
1170 July\or August\or September\or October\or November\or December\fi |
|
1171 \space\number\day, \number\year} |
|
1172 \def\@marrayclassiv{\@addtopreamble{$\displaystyle \@nextchar$}} |
|
1173 \def\@marrayclassz{\ifcase \@lastchclass \@acolampacol \or \@ampacol \or |
|
1174 \or \or \@addamp \or |
|
1175 \@acolampacol \or \@firstampfalse \@acol \fi |
|
1176 \edef\@preamble{\@preamble |
|
1177 \ifcase \@chnum |
|
1178 \hfil$\relax\displaystyle\@sharp$\hfil \or $\relax\displaystyle\@sharp$\hfil |
|
1179 \or \hfil$\relax\displaystyle\@sharp$\fi}} |
|
1180 \def\marray{\arraycolsep 2.5pt\let\@acol\@arrayacol \let\@classz\@marrayclassz |
|
1181 \let\@classiv\@marrayclassiv \let\\\@arraycr\def\@halignto{}\@tabarray} |
|
1182 \def\endmarray{\crcr\egroup\egroup} |
|
1183 |
|
1184 |
|
1185 \ps@myheadings \pagenumbering{arabic} \onecolumn |
|
1186 |
|
1187 %-----------------------BIBLIOGRAPHY STUFF------------------------- |
|
1188 % this is adapted (November 1993) by Andrew Appel and Rebecca Davies from |
|
1189 % |
|
1190 %%% filename = "chicago.sty", |
|
1191 %%% version = "4", % MODIFIED! |
|
1192 %%% date = "31 August 1992", |
|
1193 %%% time = "09:42:44 199", |
|
1194 %%% author = "Glenn Paulley", |
|
1195 %%% address = "Data Structuring Group |
|
1196 %%% Department of Computer Science |
|
1197 %%% University of Waterloo |
|
1198 %%% Waterloo, Ontario, Canada |
|
1199 %%% N2L 3G1", |
|
1200 %%% telephone = "(519) 885-1211", |
|
1201 %%% FAX = "(519) 885-1208", |
|
1202 %%% email = "gnpaulle@bluebox.uwaterloo.ca", |
|
1203 |
|
1204 %%% ==================================================================== |
|
1205 % |
|
1206 % this file: Modification of chicago.sty for new ACM bibliography |
|
1207 % style, which is similar (but not identical) to the ``Chicago'' style. |
|
1208 % |
|
1209 % chicago.sty: Style file for use with bibtex style chicago.bst, for |
|
1210 % bibliographies formatted according to the 13th Edition of the Chicago |
|
1211 % Manual of Style. |
|
1212 % |
|
1213 % 'newapa.bst' was made from 'plain.bst', 'named.bst', and 'apalike.bst', |
|
1214 % with lots of tweaking to make it look like APA style, along with tips |
|
1215 % from Young Ryu and Brian Reiser's modifications of 'apalike.bst'. |
|
1216 % newapa.sty formed the basis of this style, chicago.sty. Author-date |
|
1217 % references in newapa.bst formed the basis for chicago.bst. Chicagoa.bst |
|
1218 % supports annotations. |
|
1219 % |
|
1220 % Version 4 (August, 1992): |
|
1221 % - fixed chicago.bst and chicagoa.bst to handle long author lists in |
|
1222 % sorting |
|
1223 % - fixed chicago.bst and chicagoa.bst so that missing page numbers in |
|
1224 % ``article'' entries are handled correctly |
|
1225 % - modified chicago.sty to format entries with 2nd and subsequent lines |
|
1226 % indented. |
|
1227 % |
|
1228 % Citation format: (author-last-name year) |
|
1229 % (author-last-name and author-last-name year) |
|
1230 % (author-last-name et al. year) |
|
1231 % (author-last-name) |
|
1232 % author-last-name |
|
1233 % author-last-name (year) |
|
1234 % (author-last-name and author-last-name) |
|
1235 % (author-last-name et al.) |
|
1236 % (year) or (year,year) |
|
1237 % year or year,year |
|
1238 % |
|
1239 % Reference list ordering: alphabetical by author or whatever passes |
|
1240 % for author in the absence of one. |
|
1241 % |
|
1242 % This BibTeX style has support for abbreviated author lists and for |
|
1243 % year-only citations. This is done by having the citations |
|
1244 % actually look like |
|
1245 % |
|
1246 % \citeauthoryear{full-author-info}{abbrev-author-info}{year} |
|
1247 % |
|
1248 % The LaTeX style has to have the following (or similar) |
|
1249 % |
|
1250 % \let\@internalcite\cite |
|
1251 % \def\fullcite{\def\citeauthoryear##1##2##3{##1, ##3}\@internalcite} |
|
1252 % \def\fullciteA{\def\citeauthoryear##1##2##3{##1}\@internalcite} |
|
1253 % \def\shortcite{\def\citeauthoryear##1##2##3{##2, ##3}\@internalcite} |
|
1254 % \def\shortciteA{\def\citeauthoryear##1##2##3{##2}\@internalcite} |
|
1255 % \def\citeyear{\def\citeauthoryear##1##2##3{##3}\@internalcite} |
|
1256 % |
|
1257 % |
|
1258 % ------------------------------------------------------------------------- |
|
1259 % |
|
1260 % Citation macros. |
|
1261 % |
|
1262 \let\@internalcite\cite |
|
1263 |
|
1264 \def\cite{\def\@citeseppen{-1000}% |
|
1265 \def\@cite##1##2{[##1\if@tempswa , ##2\fi]}% |
|
1266 \def\citeauthoryear##1##2##3{##2 ##3}\@internalcite} |
|
1267 \def\citeXNP#1#2{% |
|
1268 \def\@cite@label{#2}% |
|
1269 \def\@cite##1##2{##1\if@tempswa , ##2\fi}% |
|
1270 \def\citeauthoryear##1##2##3{\@cite@label}\@internalcite{#1}} |
|
1271 % \def\@citeseppen{-1000}% |
|
1272 % \def\@cite@label{#1} |
|
1273 % \def\@cite##1##2{\if@tempswa ##2\fi}% |
|
1274 % \def\citeauthoryear##1##2##3{##2 ##3}\@internalcite} |
|
1275 \def\citeNP{\def\@citeseppen{-1000}% |
|
1276 \def\@cite##1##2{##1\if@tempswa , ##2\fi}% |
|
1277 \def\citeauthoryear##1##2##3{##2 ##3}\@internalcite} |
|
1278 \def\citeN{\def\@citeseppen{-1000}% |
|
1279 \def\@cite##1##2{##1\if@tempswa , ##2]\else{]}\fi}% |
|
1280 \def\citeauthoryear##1##2##3{##2 [##3}\@citedata} |
|
1281 \def\shortcite#1{\citeyear{#1}} |
|
1282 \def\citeS#1{[\citeANP{#1} \citeyearNP{#1}]} |
|
1283 \def\citeNS#1{\citeANP{#1} \citeyear{#1}} |
|
1284 \def\citeNPS#1{\citeANP{#1} \citeyearNP{#1}} |
|
1285 %testing year,year |
|
1286 \def\citeNN{\def\@citeseppen{-1000}% |
|
1287 \def\@cite##1##2{[##1\if@tempswa , ##2\fi]}% |
|
1288 \def\citeauthoryear##1##2##3{##3}\@citedata} |
|
1289 |
|
1290 \def\citeA{\def\@citeseppen{-1000}% |
|
1291 \def\@cite##1##2{[##1\if@tempswa , ##2\fi]}% |
|
1292 \def\citeauthoryear##1##2##3{##2}\@internalcite} |
|
1293 \def\citeANP{\def\@citeseppen{-1000}% |
|
1294 \def\@cite##1##2{##1\if@tempswa , ##2\fi}% |
|
1295 \def\citeauthoryear##1##2##3{##2}\@internalcite} |
|
1296 |
|
1297 \def\citeyear{\def\@citeseppen{-1000}% |
|
1298 \def\@cite##1##2{[##1\if@tempswa , ##2\fi]}% |
|
1299 \def\citeauthoryear##1##2##3{##3}\@citedata} |
|
1300 \def\citeyearNP{\def\@citeseppen{-1000}% |
|
1301 \def\@cite##1##2{##1\if@tempswa , ##2\fi}% |
|
1302 \def\citeauthoryear##1##2##3{##3}\@citedata} |
|
1303 |
|
1304 % |
|
1305 % \@citedata and \@citedatax: |
|
1306 % |
|
1307 % Place commas in-between citations in the same \citeyear, \citeyearNP, |
|
1308 % or \citeN command. |
|
1309 % Use something like \citeN{ref1,ref2,ref3} and \citeN{ref4} for a list. |
|
1310 % |
|
1311 \def\@citedata{% |
|
1312 \@ifnextchar [{\@tempswatrue\@citedatax}% |
|
1313 {\@tempswafalse\@citedatax[]}% |
|
1314 } |
|
1315 |
|
1316 \def\@citedatax[#1]#2{% |
|
1317 \if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi% |
|
1318 \def\@citea{}\@cite{\@for\@citeb:=#2\do% |
|
1319 {\@citea\def\@citea{; }\@ifundefined% by Young |
|
1320 {b@\@citeb}{{\bf ?}% |
|
1321 \@warning{Citation `\@citeb' on page \thepage \space undefined}}% |
|
1322 {\csname b@\@citeb\endcsname}}}{#1}}% |
|
1323 |
|
1324 % don't box citations, separate with ; and a space |
|
1325 % also, make the penalty between citations negative: a good place to break. |
|
1326 % |
|
1327 \def\@citex[#1]#2{% |
|
1328 \if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi% |
|
1329 \def\@citea{}\@cite{\@for\@citeb:=#2\do% |
|
1330 {\@citea\def\@citea{; }\@ifundefined% by Young |
|
1331 {b@\@citeb}{{\bf ?}% |
|
1332 \@warning{Citation `\@citeb' on page \thepage \space undefined}}% |
|
1333 {\csname b@\@citeb\endcsname}}}{#1}}% |
|
1334 |
|
1335 % (from apalike.sty) |
|
1336 % No labels in the bibliography. |
|
1337 % |
|
1338 \def\@biblabel#1{} |
|
1339 |
|
1340 % (from apalike.sty) |
|
1341 % Set length of hanging indentation for bibliography entries. |
|
1342 % |
|
1343 \newlength{\bibhang} |
|
1344 \setlength{\bibhang}{2em} |
|
1345 |
|
1346 % Indent second and subsequent lines of bibliographic entries. Stolen |
|
1347 % from openbib.sty: \newblock is set to {}. |
|
1348 |
|
1349 \newdimen\bibindent |
|
1350 \bibindent=1em |
|
1351 \@ifundefined{refname}% |
|
1352 {\@ifundefined{chapter}% |
|
1353 {\newcommand{\refname}{\footnotesize REFERENCES}}% |
|
1354 {\newcommand{\refname}{\footnotesize BIBLIOGRAPHY}}% |
|
1355 }% |
|
1356 {}% |
|
1357 \@ifundefined{chapter}% |
|
1358 {\def\thebibliography#1{\footnotesize \section*{\refname\@mkboth |
|
1359 {\uppercase{\refname}}{\uppercase{\refname}}}\list |
|
1360 {[\arabic{enumi}]}{ |
|
1361 \settowidth\labelwidth{[#1]} |
|
1362 \leftmargin\labelwidth |
|
1363 \advance\leftmargin\labelsep |
|
1364 \advance\leftmargin\bibindent |
|
1365 \itemindent -\bibindent |
|
1366 \listparindent \itemindent |
|
1367 \parsep \z@ |
|
1368 \usecounter{enumi}} |
|
1369 \def\newblock{} |
|
1370 \sloppy |
|
1371 \sfcode`\.=1000\relax}} |
|
1372 {\def\thebibliography#1{\footnotesize \chapter*{\refname\@mkboth |
|
1373 {\uppercase{\refname}}{\uppercase{\refname}}}\list |
|
1374 {[\arabic{enumi}]}{\settowidth\labelwidth{[#1]} |
|
1375 \leftmargin\labelwidth |
|
1376 \advance\leftmargin\labelsep |
|
1377 \advance\leftmargin\bibindent |
|
1378 \itemindent -\bibindent |
|
1379 \listparindent \itemindent |
|
1380 \parsep \z@ |
|
1381 \usecounter{enumi}} |
|
1382 \def\newblock{} |
|
1383 \sloppy |
|
1384 \sfcode`\.=1000\relax}} |
|
1385 |
|
1386 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
1387 |
|
1388 % fixes to acm trans macro package |
|
1389 % 31-JAN-1996 |
|
1390 % John Tang Boyland |
|
1391 |
|
1392 % newdef need to take the optional parameters of newtheorem |
|
1393 \def\newdef#1{\@ifnextchar[{\@xnewdef{#1}}{\@ynewdef{#1}}} |
|
1394 \def\@xnewdef#1[#2]#3{\newtheorem{italic@#1}[#2]{{\em #3}}\@newdef{#1}} |
|
1395 \def\@ynewdef#1#2{\@ifnextchar[{\@xynewdef{#1}{#2}}{\@yynewdef{#1}{#2}}} |
|
1396 \def\@xynewdef#1#2[#3]{\newtheorem{italic@#1}{{\em #2}}[#3]\@newdef{#1}} |
|
1397 \def\@yynewdef#1#2{\newtheorem{italic@#1}{{\em #2}}\@newdef{#1}} |
|
1398 % and now fix up definition, to change body to use roman font: |
|
1399 \def\@newdef#1{\newenvironment{#1}{\@ifnextchar[{\@xstartdef{#1}}{\@ystartdef{#1}}}{\end{italic@#1}}} |
|
1400 %changed by K.R. Apt on Sep. 27, 2000. It was: \def\@xstartdef#1[#2]{\begin{italic@#1}[#2]\rm} |
|
1401 \def\@xstartdef#1[#2]{\begin{italic@#1}[{\em #2}]\rm} |
|
1402 \def\@ystartdef#1{\begin{italic@#1}\rm} |
|
1403 |
|
1404 % footers produced too small (vpt), when ACM typsets them at 7.5pt (!). |
|
1405 % A better compromise is viipt. |
|
1406 \def\@oddfoot{\hbox{}\hfill\scriptsize\@runningfoot} |
|
1407 \def\@evenfoot{\scriptsize\@runningfoot\hfill\hbox{}} |
|
1408 |
|
1409 % first footer was set to (vpt), when ACM typesets them at 6.5pt (!). |
|
1410 % A better compromise is vipt. |
|
1411 \def\firstfootsize{\@setsize\firstfootsize{7pt}\vipt\@vipt} |
|
1412 \def\ps@titlepage{\let\@mkboth\@gobbletwo |
|
1413 \def\@oddhead{}\def\@oddfoot{\hbox{}\hfill\firstfootsize\@firstfoot}% |
|
1414 \def\@evenhead{}\def\@evenfoot{\firstfootsize\@firstfoot\hfill\hbox{}}} |
|
1415 |
|
1416 % new permission statement |
|
1417 \long\def\permission{\par |
|
1418 % linebreaks added to conform to the current style |
|
1419 Permission to make digital/hard copy of all or part of this material without |
|
1420 fee |
|
1421 for personal or classroom use |
|
1422 provided that the copies are not made or distributed for profit |
|
1423 or commercial advantage, the ACM copyright/server notice, the title of the |
|
1424 publication, and its date appear, and notice is given that copying is by |
|
1425 permission of the ACM, Inc. To copy |
|
1426 otherwise, to republish, to post on servers, or to redistribute to lists |
|
1427 requires prior specific |
|
1428 permission and/or a fee.\par |
|
1429 \copyright\ 20\@acmYear\ |
|
1430 ACM \@permissionCodeOne/\@acmYear/\@permissionCodeTwo-\@pageCode\$5.00 % aiellom |
|
1431 } |
|
1432 |
|
1433 % make sure \permission doesn't get trashed |
|
1434 \def\endbottomstuff{\permission\end{figure}} |
|
1435 |
|
1436 % alternate way of using citeyear |
|
1437 % \def\shortcite#1{\citeyear{#1} |
|
1438 % enumerations and longenums are wrong |
|
1439 % 1. the second line in a paragraph of an enumerations in theorems |
|
1440 % (or other trivlists) doesn't line up under the first |
|
1441 % 1. the second line of a longenum doesn't properly wrap around |
|
1442 % back to the left margin. |
|
1443 |
|
1444 % the original definition of \@listI doesn't set labelwidth |
|
1445 \def\@listI{\leftmargin\leftmargini |
|
1446 \labelwidth\leftmargini\advance\labelwidth-\labelsep |
|
1447 \parsep 0pt plus 1pt |
|
1448 \topsep 6pt plus 2pt minus 2pt |
|
1449 \itemsep 2pt plus 1pt minus .5pt} |
|
1450 \let\@listi\@listI |
|
1451 \@listi |
|
1452 |
|
1453 % add set of \labelwidth and \itemindent |
|
1454 \def\longenum{\ifnum \@enumdepth >3 \@toodeep\else |
|
1455 \advance\@enumdepth \@ne |
|
1456 \edef\@enumctr{enum\romannumeral\the\@enumdepth}\list |
|
1457 {\csname label\@enumctr\endcsname}{\usecounter |
|
1458 {\@enumctr}\labelwidth\z@\leftmargin\z@ |
|
1459 \itemindent\parindent \advance\itemindent\labelsep}\fi} |
|
1460 |
|
1461 % split electronic appendix into two parts: |
|
1462 |
|
1463 |
|
1464 %aiellom{ |
|
1465 \def\appendixhead#1{\appendix |
|
1466 \section*{ELECTRONIC APPENDIX} |
|
1467 The electronic appendix for this article can be accessed in |
|
1468 the ACM Digital Library by visiting the following URL:$\;$ |
|
1469 \url{http://www.acm.org/pubs/citations/journals/}{\tt \@journalNameShort /20\@acmYear-\@acmVolume-\@acmNumber/p\pageref{@firstpg}-#1}. |
|
1470 % \quad \href{http://www.acm.org/tocl}{{\small http://www.acm.org/tocl} } |
|
1471 } |
|
1472 %aiellom} |
|
1473 |
|
1474 \long\def\elecappendix{ |
|
1475 \clearpage |
|
1476 \makeatletter |
|
1477 \pagenumbering{withappendix} |
|
1478 \makeatother |
|
1479 \appendix |
|
1480 \par\noindent{\sc This document is the online-only appendix to:}\hfill \vskip 1em |
|
1481 {\vbox{\Large\sf \parindent0pt\@title{}}}\vskip .5em |
|
1482 \vbox{\sf \parindent0pt\@author{}}\vskip .5em\noindent |
|
1483 \vskip 10pt\noindent |
|
1484 {\firstfootsize |
|
1485 \@journalName, Vol.\ \@acmVolume, No.\ \@acmNumber, \@acmMonthName\ 20\@acmYear, Pages \pages.} |
|
1486 \vskip 11pt\noindent |
|
1487 \hrule height .2pt |
|
1488 \par |
|
1489 \bottomstuff |
|
1490 \endbottomstuff |
|
1491 } |
|
1492 |
|
1493 % provide for a single acknowledgment |
|
1494 \def\ack{ \par \footnotesize |
|
1495 \@ucheadfalse |
|
1496 \@startsection{subsection}{2}{\z@}{-16pt plus -2pt minus |
|
1497 -1pt}{2pt}{\sf}*{ACKNOWLEDGMENT}\par\normalsize |
|
1498 \pdfbookmark{Acknowledgment}{Ack} |
|
1499 } |
|
1500 \def\endack{\par} |
|
1501 |
|
1502 % provide both spellings of Acknowledgment(s) |
|
1503 \let\acknowledgments\acks |
|
1504 \let\endacknowledgments\endacks |
|
1505 \let\acknowledgment\ack |
|
1506 \let\endacknowledgment\endack |
|
1507 |
|
1508 \newcommand{\longpage}{\enlargethispage{\baselineskip}} |
|
1509 \newcommand{\shortpage}{\enlargethispage{-\baselineskip}} |
|
1510 |
|
1511 |
|
1512 % Don't indent bibliography and |
|
1513 % override \refname (which sets fontsize): |
|
1514 \def\thebibliography#1{ |
|
1515 \footnotesize\section*{\footnotesize\sf{REFERENCES}\@mkboth |
|
1516 {\uppercase{\refname}}{\uppercase{\refname}}}% |
|
1517 \pdfbookmark{References}{Ref} |
|
1518 \list |
|
1519 {\@biblabel{\arabic{enumiv}}}{% |
|
1520 %\settowidth\labelwidth{[#1]} |
|
1521 \labelwidth 0pt |
|
1522 \leftmargin \bibindent |
|
1523 \labelsep 0pt |
|
1524 \if@hyperref |
|
1525 \itemindent -\bibindent |
|
1526 \fi |
|
1527 \listparindent -\bibindent |
|
1528 \labelsep -\bibindent |
|
1529 \usecounter{enumiv}% |
|
1530 \let\p@enumiv\@empty |
|
1531 \def\theenumiv{\arabic{enumiv}}}% |
|
1532 \def\newblock{\hskip .11em plus.33em minus.07em}% |
|
1533 \sloppy |
|
1534 \clubpenalty=4500 |
|
1535 \widowpenalty=4500 |
|
1536 \frenchspacing} |
|
1537 \def\endthebibliography{% |
|
1538 \def\@noitemerr{\@warning{Empty `thebibliography' environment}}% |
|
1539 \endlist} |
|
1540 \def\@lbibitem[#1]#2{\item[]\if@filesw |
|
1541 {\def\protect##1{\string ##1\space}\immediate |
|
1542 \write\@auxout{\string\bibcite{#2}{#1}}}\fi\hskip-1em\ignorespaces} |
|
1543 % Fix cite so it doesn't repeat author lists in citations: |
|
1544 |
|
1545 \def\cite{\def\@citeseppen{-1000}% |
|
1546 \def\@cite##1##2{[##1\if@tempswa , ##2\fi]}% |
|
1547 \let\@lastauthor=\@noauthor |
|
1548 \let\citeauthoryear=\citeauthoryear@no@repeats\@internalcite} |
|
1549 %\def\citeauthoryear##1##2##3{##2 ##3}\@internalcite |
|
1550 |
|
1551 \def\@noauthor={\relax} |
|
1552 \let\@lastauthor=\@noauthor |
|
1553 \let\@currauthor=\@noauthor |
|
1554 |
|
1555 \def\citeauthoryear@no@repeats#1#2#3{% |
|
1556 \def\@currauthor{\csname @author #1\endcsname}% |
|
1557 \ifx\@lastauthor\@currauthor{#3}\else{#2 #3}\fi% |
|
1558 \let\@lastauthor=\@currauthor} |
|
1559 |
|
1560 \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} |
|
1561 \DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} |
|
1562 \DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} |
|
1563 \DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} |
|
1564 \DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} |
|
1565 \DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} |
|
1566 \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} |
|
1567 \DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal} |
|
1568 \DeclareRobustCommand*\mit{\@fontswitch\relax\mathnormal} |
|
1569 |
|
1570 |
|
1571 \if@hyperref |
|
1572 \let\pdfbookmark=\relax |
|
1573 \RequirePackage[pdfmark]{hyperref} |
|
1574 \fi |
|
1575 |
|
1576 % \renewcommand{\thefootnote}{\arabic{footnote}\hspace{-3pt}} |
|
1577 |
|
1578 |