acm_proc_article-sp.cls 58 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671
  1. % ACM_PROC_ARTICLE-SP.CLS - VERSION 3.2SP
  2. % COMPATIBLE WITH THE "SIG-ALTERNATE" V2.4
  3. % Gerald Murray - April 22nd. 2009
  4. %
  5. % ---- Start of 'updates' ----
  6. %
  7. % April 22nd. 2009 - Fixed 'Natbib' incompatibility problem - Gerry
  8. % April 22nd. 2009 - Fixed 'Babel' incompatibility problem - Gerry
  9. % April 22nd. 2009 - Inserted various bug-fixes and improvements - Gerry
  10. %
  11. % To produce Type 1 fonts in the document plus allow for 'normal LaTeX accenting' in the critical areas;
  12. % title, author block, section-heads, etc. etc.
  13. % i.e. the whole purpose of this version update is to NOT resort to 'inelegant accent patches'.
  14. % After much research, three extra .sty packages were added to the the tail (ae, aecompl, aeguill) to solve,
  15. % in particular, the accenting problem(s). We _could_ ask authors (via instructions/sample file) to 'include' these in
  16. % the source .tex file - in the preamble - but if everything is already provided ('behind the scenes' - embedded IN the .cls)
  17. % then this is less work for authors and also makes everything appear 'vanilla'.
  18. % NOTE: all 'patchwork accenting" has been commented out (here) and is no longer 'used' in the sample .tex file (either).
  19. % Gerry June 2007
  20. %
  21. % Rule widths changed to .5, author count (>6) fixed, roll-back for Type 3 problem. Gerry March 20th. 2007
  22. % Changes made to 'modernize' the fontnames but esp. for MikTeX users V2.4/2.5 - Nov. 30th. 2006
  23. % Updated the \email definition to allow for its use inside of 'shared affiliations' - Nov. 30th. 2006
  24. % Fixed the 'section number depth value' - Nov. 30th. 2006
  25. %
  26. % Footnotes inside table cells using \minipage (Oct. 2002)
  27. % Georgia fixed bug in sub-sub-section numbering in paragraphs (July 29th. 2002)
  28. % JS/GM fix to vertical spacing before Proofs (July 30th. 2002)
  29. %
  30. % Allowance made to switch default fonts between those systems using
  31. % normal/modern font names and those using 'Type 1' or 'Truetype' fonts.
  32. % See LINE NUMBER 269 for details.
  33. % Also provided for enumerated/annotated Corollaries 'surrounded' by
  34. % enumerated Theorems (line 844).
  35. % Gerry November 11th. 1999
  36. %
  37. % This 'sp' version does NOT produce the permission block.
  38. %
  39. % Major change in January 2000 was to include a "blank line" in between
  40. % new paragraphs. This involved major changes to the, then, acmproc-sp.cls 1.0SP
  41. % file, precipitating a 'new' name: "acm_proc_article-sp.cls" V2.01SP.
  42. %
  43. % ---- End of 'updates' ----
  44. %
  45. \def\fileversion{V3.2SP} % for ACM's tracking purposes
  46. \def\filedate{April 22, 2009} % Gerry Murray's tracking data
  47. \def\docdate {Wednesday 22nd. April 2009} % Gerry Murray (with deltas to doc}
  48. \usepackage{epsfig}
  49. \usepackage{amssymb}
  50. \usepackage{amsmath}
  51. \usepackage{amsfonts}
  52. % Need this for accents in Arial/Helvetica
  53. %\usepackage[T1]{fontenc} % Gerry March 12, 2007 - causes Type 3 problems (body text)
  54. %\usepackage{textcomp}
  55. %
  56. % ACM_PROC_ARTICLE-SP DOCUMENT STYLE
  57. % G.K.M. Tobin August-October 1999
  58. % adapted from ARTICLE document style by Ken Traub, Olin Shivers
  59. % also using elements of esub2acm.cls
  60. % LATEST REVISION V3.2SP - APRIL 2009
  61. % ARTICLE DOCUMENT STYLE -- Released 16 March 1988
  62. % for LaTeX version 2.09
  63. % Copyright (C) 1988 by Leslie Lamport
  64. %
  65. %
  66. %%% ACM_PROC_ARTICLE-SP is a document style for producing two-column camera-ready pages for
  67. %%% ACM conferences, according to ACM specifications. The main features of
  68. %%% this style are:
  69. %%%
  70. %%% 1) Two columns.
  71. %%% 2) Side and top margins of 4.5pc, bottom margin of 6pc, column gutter of
  72. %%% 2pc, hence columns are 20pc wide and 55.5pc tall. (6pc =3D 1in, approx)
  73. %%% 3) First page has title information, and an extra 6pc of space at the
  74. %%% bottom of the first column for the ACM copyright notice.
  75. %%% 4) Text is 9pt on 10pt baselines; titles (except main) are 9pt bold.
  76. %%%
  77. %%%
  78. %%% There are a few restrictions you must observe:
  79. %%%
  80. %%% 1) You cannot change the font size; ACM wants you to use 9pt.
  81. %%% 3) You must start your paper with the \maketitle command. Prior to the
  82. %%% \maketitle you must have \title and \author commands. If you have a
  83. %%% \date command it will be ignored; no date appears on the paper, since
  84. %%% the proceedings will have a date on the front cover.
  85. %%% 4) Marginal paragraphs, tables of contents, lists of figures and tables,
  86. %%% and page headings are all forbidden.
  87. %%% 5) The `figure' environment will produce a figure one column wide; if you
  88. %%% want one that is two columns wide, use `figure*'.
  89. %%%
  90. %
  91. %%% Copyright Space:
  92. %%% This style automatically leaves 1" blank space at the bottom of page 1/
  93. %%% column 1. This space can optionally be filled with some text using the
  94. %%% \toappear{...} command. If used, this command must be BEFORE the \maketitle
  95. %%% command. If this command is defined AND [preprint] is on, then the
  96. %%% space is filled with the {...} text (at the bottom); otherwise, it is
  97. %%% blank. If you use \toappearbox{...} instead of \toappear{...} then a
  98. %%% box will be drawn around the text (if [preprint] is on).
  99. %%%
  100. %%% A typical usage looks like this:
  101. %%% \toappear{To appear in the Ninth AES Conference on Medievil Lithuanian
  102. %%% Embalming Technique, June 1991, Alfaretta, Georgia.}
  103. %%% This will be included in the preprint, and left out of the conference
  104. %%% version.
  105. %%%
  106. %%% WARNING:
  107. %%% Some dvi-ps converters heuristically allow chars to drift from their
  108. %%% true positions a few pixels. This may be noticeable with the 9pt sans-serif
  109. %%% bold font used for section headers.
  110. %%% You may turn this hackery off via the -e option:
  111. %%% dvips -e 0 foo.dvi >foo.ps
  112. %%%
  113. \typeout{Document Class 'acm_proc_article-sp' <22nd. April '09>. Modified by G.K.M. Tobin}
  114. \typeout{Based in part upon document Style `acmconf' <22 May 89>. Hacked 4/91 by}
  115. \typeout{[email protected], 4/93 by [email protected]}
  116. \typeout{Excerpts were taken from (Journal Style) 'esub2acm.cls'.}
  117. \typeout{****** Bugs/comments/suggestions to Gerry Murray -- [email protected] ******}
  118. \oddsidemargin 4.5pc
  119. \evensidemargin 4.5pc
  120. \advance\oddsidemargin by -1in % Correct for LaTeX gratuitousness
  121. \advance\evensidemargin by -1in % Correct for LaTeX gratuitousness
  122. \marginparwidth 0pt % Margin pars are not allowed.
  123. \marginparsep 11pt % Horizontal space between outer margin and
  124. % marginal note
  125. % Top of page:
  126. \topmargin 4.5pc % Nominal distance from top of page to top of
  127. % box containing running head.
  128. \advance\topmargin by -1in % Correct for LaTeX gratuitousness
  129. \headheight 0pt % Height of box containing running head.
  130. \headsep 0pt % Space between running head and text.
  131. % Bottom of page:
  132. \footskip 30pt % Distance from baseline of box containing foot
  133. % to baseline of last line of text.
  134. \@ifundefined{footheight}{\newdimen\footheight}{}% this is for LaTeX2e
  135. \footheight 12pt % Height of box containing running foot.
  136. %% Must redefine the top margin so there's room for headers and
  137. %% page numbers if you are using the preprint option. Footers
  138. %% are OK as is. Olin.
  139. \advance\topmargin by -37pt % Leave 37pt above text for headers
  140. \headheight 12pt % Height of box containing running head.
  141. \headsep 25pt % Space between running head and text.
  142. \textheight 666pt % 9 1/4 column height
  143. \textwidth 42pc % Width of text line.
  144. % For two-column mode:
  145. \columnsep 2pc % Space between columns
  146. \columnseprule 0pt % Width of rule between columns.
  147. \hfuzz 1pt % Allow some variation in column width, otherwise it's
  148. % too hard to typeset in narrow columns.
  149. \footnotesep 5.6pt % Height of strut placed at the beginning of every
  150. % footnote =3D height of normal \footnotesize strut,
  151. % so no extra space between footnotes.
  152. \skip\footins 8.1pt plus 4pt minus 2pt % Space between last line of text and
  153. % top of first footnote.
  154. \floatsep 11pt plus 2pt minus 2pt % Space between adjacent floats moved
  155. % to top or bottom of text page.
  156. \textfloatsep 18pt plus 2pt minus 4pt % Space between main text and floats
  157. % at top or bottom of page.
  158. \intextsep 11pt plus 2pt minus 2pt % Space between in-text figures and
  159. % text.
  160. \@ifundefined{@maxsep}{\newdimen\@maxsep}{}% this is for LaTeX2e
  161. \@maxsep 18pt % The maximum of \floatsep,
  162. % \textfloatsep and \intextsep (minus
  163. % the stretch and shrink).
  164. \dblfloatsep 11pt plus 2pt minus 2pt % Same as \floatsep for double-column
  165. % figures in two-column mode.
  166. \dbltextfloatsep 18pt plus 2pt minus 4pt% \textfloatsep for double-column
  167. % floats.
  168. \@ifundefined{@dblmaxsep}{\newdimen\@dblmaxsep}{}% this is for LaTeX2e
  169. \@dblmaxsep 18pt % The maximum of \dblfloatsep and
  170. % \dbltexfloatsep.
  171. \@fptop 0pt plus 1fil % Stretch at top of float page/column. (Must be
  172. % 0pt plus ...)
  173. \@fpsep 8pt plus 2fil % Space between floats on float page/column.
  174. \@fpbot 0pt plus 1fil % Stretch at bottom of float page/column. (Must be
  175. % 0pt plus ... )
  176. \@dblfptop 0pt plus 1fil % Stretch at top of float page. (Must be 0pt plus ...)
  177. \@dblfpsep 8pt plus 2fil % Space between floats on float page.
  178. \@dblfpbot 0pt plus 1fil % Stretch at bottom of float page. (Must be
  179. % 0pt plus ... )
  180. \marginparpush 5pt % Minimum vertical separation between two marginal
  181. % notes.
  182. \parskip 0pt % Extra vertical space between paragraphs.
  183. % Set to 0pt outside sections, to keep section heads
  184. % uniformly spaced. The value of parskip is set
  185. % to leading value _within_ sections.
  186. % 12 Jan 2000 gkmt
  187. \parindent 0pt % Width of paragraph indentation.
  188. \partopsep 2pt plus 1pt minus 1pt% Extra vertical space, in addition to
  189. % \parskip and \topsep, added when user
  190. % leaves blank line before environment.
  191. \@lowpenalty 51 % Produced by \nopagebreak[1] or \nolinebreak[1]
  192. \@medpenalty 151 % Produced by \nopagebreak[2] or \nolinebreak[2]
  193. \@highpenalty 301 % Produced by \nopagebreak[3] or \nolinebreak[3]
  194. \@beginparpenalty -\@lowpenalty % Before a list or paragraph environment.
  195. \@endparpenalty -\@lowpenalty % After a list or paragraph environment.
  196. \@itempenalty -\@lowpenalty % Between list items.
  197. %\@namedef{ds@10pt}{\@latexerr{The `10pt' option is not allowed in the `acmconf'
  198. \@namedef{ds@10pt}{\ClassError{The `10pt' option is not allowed in the `acmconf' % January 2008
  199. document style.}\@eha}
  200. %\@namedef{ds@11pt}{\@latexerr{The `11pt' option is not allowed in the `acmconf'
  201. \@namedef{ds@11pt}{\ClassError{The `11pt' option is not allowed in the `acmconf' % January 2008
  202. document style.}\@eha}
  203. %\@namedef{ds@12pt}{\@latexerr{The `12pt' option is not allowed in the `acmconf'
  204. \@namedef{ds@12pt}{\ClassError{The `12pt' option is not allowed in the `acmconf' % January 2008
  205. document style.}\@eha}
  206. \@options
  207. \lineskip 2pt % \lineskip is 1pt for all font sizes.
  208. \normallineskip 2pt
  209. \def\baselinestretch{1}
  210. \abovedisplayskip 9pt plus2pt minus4.5pt%
  211. \belowdisplayskip \abovedisplayskip
  212. \abovedisplayshortskip \z@ plus3pt%
  213. \belowdisplayshortskip 5.4pt plus3pt minus3pt%
  214. \let\@listi\@listI % Setting of \@listi added 9 Jun 87
  215. \def\small{\@setsize\small{9pt}\viiipt\@viiipt
  216. \abovedisplayskip 7.6pt plus 3pt minus 4pt%
  217. \belowdisplayskip \abovedisplayskip
  218. \abovedisplayshortskip \z@ plus2pt%
  219. \belowdisplayshortskip 3.6pt plus2pt minus 2pt
  220. \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87
  221. \topsep 4pt plus 2pt minus 2pt\parsep 2pt plus 1pt minus 1pt
  222. \itemsep \parsep}}
  223. \def\footnotesize{\@setsize\footnotesize{9pt}\ixpt\@ixpt
  224. \abovedisplayskip 6.4pt plus 2pt minus 4pt%
  225. \belowdisplayskip \abovedisplayskip
  226. \abovedisplayshortskip \z@ plus 1pt%
  227. \belowdisplayshortskip 2.7pt plus 1pt minus 2pt
  228. \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87
  229. \topsep 3pt plus 1pt minus 1pt\parsep 2pt plus 1pt minus 1pt
  230. \itemsep \parsep}}
  231. \newcount\aucount
  232. \newcount\originalaucount
  233. \newdimen\auwidth
  234. \auwidth=\textwidth
  235. \newdimen\auskip
  236. \newcount\auskipcount
  237. \newdimen\auskip
  238. \global\auskip=1pc
  239. \newdimen\allauboxes
  240. \allauboxes=\auwidth
  241. \newtoks\addauthors
  242. \newcount\addauflag
  243. \global\addauflag=0 %Haven't shown additional authors yet
  244. \newtoks\subtitletext
  245. \gdef\subtitle#1{\subtitletext={#1}}
  246. \gdef\additionalauthors#1{\addauthors={#1}}
  247. \gdef\numberofauthors#1{\global\aucount=#1
  248. \ifnum\aucount>3\global\originalaucount=\aucount \global\aucount=3\fi %g} % 3 OK - Gerry March 2007
  249. \global\auskipcount=\aucount\global\advance\auskipcount by 1
  250. \global\multiply\auskipcount by 2
  251. \global\multiply\auskip by \auskipcount
  252. \global\advance\auwidth by -\auskip
  253. \global\divide\auwidth by \aucount}
  254. % \and was modified to count the number of authors. GKMT 12 Aug 1999
  255. \def\alignauthor{% % \begin{tabular}
  256. \end{tabular}%
  257. \begin{tabular}[t]{p{\auwidth}}\centering}%
  258. % *** NOTE *** NOTE *** NOTE *** NOTE ***
  259. % If you have 'font problems' then you may need
  260. % to change these, e.g. 'arialb' instead of "arialbd".
  261. % Gerry Murray 11/11/1999
  262. % *** OR ** comment out block A and activate block B or vice versa.
  263. % **********************************************
  264. %
  265. % -- Start of block A -- (Type 1 or Truetype fonts)
  266. %\newfont{\secfnt}{timesbd at 12pt} % was timenrb originally - now is timesbd
  267. %\newfont{\secit}{timesbi at 12pt} %13 Jan 00 gkmt
  268. %\newfont{\subsecfnt}{timesi at 11pt} % was timenrri originally - now is timesi
  269. %\newfont{\subsecit}{timesbi at 11pt} % 13 Jan 00 gkmt -- was times changed to timesbi gm 2/4/2000
  270. % % because "normal" is italic, "italic" is Roman
  271. %\newfont{\ttlfnt}{arialbd at 18pt} % was arialb originally - now is arialbd
  272. %\newfont{\ttlit}{arialbi at 18pt} % 13 Jan 00 gkmt
  273. %\newfont{\subttlfnt}{arial at 14pt} % was arialr originally - now is arial
  274. %\newfont{\subttlit}{ariali at 14pt} % 13 Jan 00 gkmt
  275. %\newfont{\subttlbf}{arialbd at 14pt} % 13 Jan 00 gkmt
  276. %\newfont{\aufnt}{arial at 12pt} % was arialr originally - now is arial
  277. %\newfont{\auit}{ariali at 12pt} % 13 Jan 00 gkmt
  278. %\newfont{\affaddr}{arial at 10pt} % was arialr originally - now is arial
  279. %\newfont{\affaddrit}{ariali at 10pt} %13 Jan 00 gkmt
  280. %\newfont{\eaddfnt}{arial at 12pt} % was arialr originally - now is arial
  281. %\newfont{\ixpt}{times at 9pt} % was timenrr originally - now is times
  282. %\newfont{\confname}{timesi at 8pt} % was timenrri - now is timesi
  283. %\newfont{\crnotice}{times at 8pt} % was timenrr originally - now is times
  284. %\newfont{\ninept}{times at 9pt} % was timenrr originally - now is times
  285. % *********************************************
  286. % -- End of block A --
  287. %
  288. %
  289. % -- Start of block B -- UPDATED FONT NAMES
  290. % *********************************************
  291. % Gerry Murray 11/30/2006
  292. % *********************************************
  293. \newfont{\secfnt}{ptmb8t at 12pt}
  294. \newfont{\secit}{ptmbi8t at 12pt} %13 Jan 00 gkmt
  295. \newfont{\subsecfnt}{ptmri8t at 11pt}
  296. \newfont{\subsecit}{ptmbi8t at 11pt} %
  297. \newfont{\ttlfnt}{phvb8t at 18pt}
  298. \newfont{\ttlit}{phvbo8t at 18pt} % GM 2/4/2000
  299. \newfont{\subttlfnt}{phvr8t at 14pt}
  300. \newfont{\subttlit}{phvro8t at 14pt} % GM 2/4/2000
  301. \newfont{\subttlbf}{phvb8t at 14pt} % 13 Jan 00 gkmt
  302. \newfont{\aufnt}{phvr8t at 12pt}
  303. \newfont{\auit}{phvro8t at 12pt} % GM 2/4/2000
  304. \newfont{\affaddr}{phvr8t at 10pt}
  305. \newfont{\affaddrit}{phvro8t at 10pt} % GM 2/4/2000
  306. \newfont{\eaddfnt}{phvr8t at 12pt}
  307. \newfont{\ixpt}{ptmr8t at 9pt}
  308. \newfont{\confname}{ptmri8t at 8pt}
  309. \newfont{\crnotice}{ptmr8t at 8pt}
  310. \newfont{\ninept}{ptmr8t at 9pt}
  311. % +++++++++++++++++++++++++++++++++++++++++++++
  312. % -- End of block B --
  313. %\def\email#1{{{\eaddfnt{\vskip 4pt#1}}}}
  314. % If we have an email, inside a "shared affiliation" then we need the following instead
  315. \def\email#1{{{\eaddfnt{\par #1}}}} % revised - GM - 11/30/2006
  316. \def\addauthorsection{\ifnum\originalaucount>6 % was 3 - Gerry March 2007
  317. \section{Additional Authors}\the\addauthors
  318. \fi}
  319. \newcount\savesection
  320. \newcount\sectioncntr
  321. \global\sectioncntr=1
  322. \setcounter{secnumdepth}{3}
  323. \def\appendix{\par
  324. \section*{APPENDIX}
  325. \setcounter{section}{0}
  326. \setcounter{subsection}{0}
  327. \def\thesection{\Alph{section}} }
  328. \leftmargini 22.5pt
  329. \leftmarginii 19.8pt % > \labelsep + width of '(m)'
  330. \leftmarginiii 16.8pt % > \labelsep + width of 'vii.'
  331. \leftmarginiv 15.3pt % > \labelsep + width of 'M.'
  332. \leftmarginv 9pt
  333. \leftmarginvi 9pt
  334. \leftmargin\leftmargini
  335. \labelsep 4.5pt
  336. \labelwidth\leftmargini\advance\labelwidth-\labelsep
  337. \def\@listI{\leftmargin\leftmargini \parsep 3.6pt plus 2pt minus 1pt%
  338. \topsep 7.2pt plus 2pt minus 4pt%
  339. \itemsep 3.6pt plus 2pt minus 1pt}
  340. \let\@listi\@listI
  341. \@listi
  342. \def\@listii{\leftmargin\leftmarginii
  343. \labelwidth\leftmarginii\advance\labelwidth-\labelsep
  344. \topsep 3.6pt plus 2pt minus 1pt
  345. \parsep 1.8pt plus 0.9pt minus 0.9pt
  346. \itemsep \parsep}
  347. \def\@listiii{\leftmargin\leftmarginiii
  348. \labelwidth\leftmarginiii\advance\labelwidth-\labelsep
  349. \topsep 1.8pt plus 0.9pt minus 0.9pt
  350. \parsep \z@ \partopsep 1pt plus 0pt minus 1pt
  351. \itemsep \topsep}
  352. \def\@listiv{\leftmargin\leftmarginiv
  353. \labelwidth\leftmarginiv\advance\labelwidth-\labelsep}
  354. \def\@listv{\leftmargin\leftmarginv
  355. \labelwidth\leftmarginv\advance\labelwidth-\labelsep}
  356. \def\@listvi{\leftmargin\leftmarginvi
  357. \labelwidth\leftmarginvi\advance\labelwidth-\labelsep}
  358. \def\labelenumi{\theenumi.}
  359. \def\theenumi{\arabic{enumi}}
  360. \def\labelenumii{(\theenumii)}
  361. \def\theenumii{\alph{enumii}}
  362. \def\p@enumii{\theenumi}
  363. \def\labelenumiii{\theenumiii.}
  364. \def\theenumiii{\roman{enumiii}}
  365. \def\p@enumiii{\theenumi(\theenumii)}
  366. \def\labelenumiv{\theenumiv.}
  367. \def\theenumiv{\Alph{enumiv}}
  368. \def\p@enumiv{\p@enumiii\theenumiii}
  369. \def\labelitemi{$\bullet$}
  370. \def\labelitemii{\bf --}
  371. \def\labelitemiii{$\ast$}
  372. \def\labelitemiv{$\cdot$}
  373. \def\verse{\let\\=\@centercr
  374. \list{}{\itemsep\z@ \itemindent -1.5em\listparindent \itemindent
  375. \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]}
  376. \let\endverse\endlist
  377. \def\quotation{\list{}{\listparindent 1.5em
  378. \itemindent\listparindent
  379. \rightmargin\leftmargin \parsep 0pt plus 1pt}\item[]}
  380. \let\endquotation=\endlist
  381. \def\quote{\list{}{\rightmargin\leftmargin}\item[]}
  382. \let\endquote=\endlist
  383. \def\descriptionlabel#1{\hspace\labelsep \bf #1}
  384. \def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin
  385. \let\makelabel\descriptionlabel}}
  386. \let\enddescription\endlist
  387. \def\theequation{\arabic{equation}}
  388. \arraycolsep 4.5pt % Half the space between columns in an array environment.
  389. \tabcolsep 5.4pt % Half the space between columns in a tabular environment.
  390. \arrayrulewidth .5pt % Width of rules in array and tabular environment. % (was .4) updated Gerry March 20 2007
  391. \doublerulesep 1.8pt % Space between adjacent rules in array or tabular env.
  392. \tabbingsep \labelsep % Space used by the \' command. (See LaTeX manual.)
  393. \skip\@mpfootins =\skip\footins
  394. \fboxsep =2.7pt % Space left between box and text by \fbox and \framebox.
  395. \fboxrule =.5pt % Width of rules in box made by \fbox and \framebox. % (was .4) updated Gerry March 20 2007
  396. \def\thepart{\Roman{part}} % Roman numeral part numbers.
  397. \def\thesection {\arabic{section}}
  398. \def\thesubsection {\thesection.\arabic{subsection}}
  399. %\def\thesubsubsection {\thesubsection.\arabic{subsubsection}} % GM 7/30/2002
  400. %\def\theparagraph {\thesubsubsection.\arabic{paragraph}} % GM 7/30/2002
  401. \def\thesubparagraph {\theparagraph.\arabic{subparagraph}}
  402. \def\@pnumwidth{1.55em}
  403. \def\@tocrmarg {2.55em}
  404. \def\@dotsep{4.5}
  405. \setcounter{tocdepth}{3}
  406. %\def\tableofcontents{\@latexerr{\tableofcontents: Tables of contents are not
  407. % allowed in the `acmconf' document style.}\@eha}
  408. \def\tableofcontents{\ClassError{%
  409. \string\tableofcontents\space is not allowed in the `acmconf' document % January 2008
  410. style}\@eha}
  411. \def\l@part#1#2{\addpenalty{\@secpenalty}
  412. \addvspace{2.25em plus 1pt} % space above part line
  413. \begingroup
  414. \@tempdima 3em % width of box holding part number, used by
  415. \parindent \z@ \rightskip \@pnumwidth %% \numberline
  416. \parfillskip -\@pnumwidth
  417. {\large \bf % set line in \large boldface
  418. \leavevmode % TeX command to enter horizontal mode.
  419. #1\hfil \hbox to\@pnumwidth{\hss #2}}\par
  420. \nobreak % Never break after part entry
  421. \endgroup}
  422. \def\l@section#1#2{\addpenalty{\@secpenalty} % good place for page break
  423. \addvspace{1.0em plus 1pt} % space above toc entry
  424. \@tempdima 1.5em % width of box holding section number
  425. \begingroup
  426. \parindent \z@ \rightskip \@pnumwidth
  427. \parfillskip -\@pnumwidth
  428. \bf % Boldface.
  429. \leavevmode % TeX command to enter horizontal mode.
  430. \advance\leftskip\@tempdima %% added 5 Feb 88 to conform to
  431. \hskip -\leftskip %% 25 Jan 88 change to \numberline
  432. #1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par
  433. \endgroup}
  434. \def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}}
  435. \def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}}
  436. \def\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}}
  437. \def\l@subparagraph{\@dottedtocline{5}{10em}{5em}}
  438. %\def\listoffigures{\@latexerr{\listoffigures: Lists of figures are not
  439. % allowed in the `acmconf' document style.}\@eha}
  440. \def\listoffigures{\ClassError{%
  441. \string\listoffigures\space is not allowed in the `acmconf' document % January 2008
  442. style}\@eha}
  443. \def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}
  444. %\def\listoftables{\@latexerr{\listoftables: Lists of tables are not
  445. % allowed in the `acmconf' document style.}\@eha}
  446. %\let\l@table\l@figure
  447. \def\listoftables{\ClassError{%
  448. \string\listoftables\space is not allowed in the `acmconf' document % January 2008
  449. style}\@eha}
  450. \let\l@table\l@figure
  451. \def\footnoterule{\kern-3\p@
  452. \hrule width .5\columnwidth % (was .4) updated Gerry March 20 2007
  453. \kern 2.6\p@} % The \hrule has default height of .4pt % (was .4) updated Gerry March 20 2007
  454. % ------
  455. \long\def\@makefntext#1{\noindent
  456. %\hbox to .5em{\hss$^{\@thefnmark}$}#1} % original
  457. \hbox to .5em{\hss\textsuperscript{\@thefnmark}}#1} % C. Clifton / GM Oct. 2nd. 2002
  458. % -------
  459. \long\def\@maketntext#1{\noindent
  460. #1}
  461. \long\def\@maketitlenotetext#1#2{\noindent
  462. \hbox to 1.8em{\hss$^{#1}$}#2}
  463. \setcounter{topnumber}{2}
  464. \def\topfraction{.7}
  465. \setcounter{bottomnumber}{1}
  466. \def\bottomfraction{.3}
  467. \setcounter{totalnumber}{3}
  468. \def\textfraction{.2}
  469. \def\floatpagefraction{.5}
  470. \setcounter{dbltopnumber}{2}
  471. \def\dbltopfraction{.7}
  472. \def\dblfloatpagefraction{.5}
  473. \long\def\@makecaption#1#2{
  474. \vskip \baselineskip
  475. \setbox\@tempboxa\hbox{\textbf{#1: #2}}
  476. \ifdim \wd\@tempboxa >\hsize % IF longer than one line:
  477. \textbf{#1: #2}\par % THEN set as ordinary paragraph.
  478. \else % ELSE center.
  479. \hbox to\hsize{\hfil\box\@tempboxa\hfil}\par
  480. \fi}
  481. \@ifundefined{figure}{\newcounter {figure}} % this is for LaTeX2e
  482. \def\fps@figure{tbp}
  483. \def\ftype@figure{1}
  484. \def\ext@figure{lof}
  485. \def\fnum@figure{Figure \thefigure}
  486. \def\figure{\@float{figure}}
  487. %\let\endfigure\end@float
  488. \def\endfigure{\end@float} % Gerry January 2008
  489. \@namedef{figure*}{\@dblfloat{figure}}
  490. \@namedef{endfigure*}{\end@dblfloat}
  491. \@ifundefined{table}{\newcounter {table}} % this is for LaTeX2e
  492. \def\fps@table{tbp}
  493. \def\ftype@table{2}
  494. \def\ext@table{lot}
  495. \def\fnum@table{Table \thetable}
  496. \def\table{\@float{table}}
  497. %\let\endtable\end@float
  498. \def\endtable{\end@float} % Gerry January 2008
  499. \@namedef{table*}{\@dblfloat{table}}
  500. \@namedef{endtable*}{\end@dblfloat}
  501. \newtoks\titleboxnotes
  502. \newcount\titleboxnoteflag
  503. \def\maketitle{\par
  504. \begingroup
  505. \def\thefootnote{\fnsymbol{footnote}}
  506. \def\@makefnmark{\hbox
  507. to 0pt{$^{\@thefnmark}$\hss}}
  508. \twocolumn[\@maketitle]
  509. \@thanks
  510. \endgroup
  511. \setcounter{footnote}{0}
  512. \let\maketitle\relax
  513. \let\@maketitle\relax
  514. \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\gdef\@subtitle{}\let\thanks\relax
  515. \@copyrightspace}
  516. %% CHANGES ON NEXT LINES
  517. \newif\if@ll % to record which version of LaTeX is in use
  518. \expandafter\ifx\csname LaTeXe\endcsname\relax % LaTeX2.09 is used
  519. \else% LaTeX2e is used, so set ll to true
  520. \global\@lltrue
  521. \fi
  522. \if@ll
  523. \NeedsTeXFormat{LaTeX2e}
  524. \ProvidesClass{acm_proc_article-sp} [2009/04/22 - V3.2SP - based on esub2acm.sty <23 April 96>]
  525. \RequirePackage{latexsym}% QUERY: are these two really needed?
  526. \let\dooptions\ProcessOptions
  527. \else
  528. \let\dooptions\@options
  529. \fi
  530. %% END CHANGES
  531. \def\@height{height}
  532. \def\@width{width}
  533. \def\@minus{minus}
  534. \def\@plus{plus}
  535. \def\hb@xt@{\hbox to}
  536. \newif\if@faircopy
  537. \@faircopyfalse
  538. \def\ds@faircopy{\@faircopytrue}
  539. \def\ds@preprint{\@faircopyfalse}
  540. \@twosidetrue
  541. \@mparswitchtrue
  542. \def\ds@draft{\overfullrule 5\p@}
  543. %% CHANGE ON NEXT LINE
  544. \dooptions
  545. \lineskip \p@
  546. \normallineskip \p@
  547. \def\baselinestretch{1}
  548. \def\@ptsize{0} %needed for amssymbols.sty
  549. %% CHANGES ON NEXT LINES
  550. \if@ll% allow use of old-style font change commands in LaTeX2e
  551. \@maxdepth\maxdepth
  552. %
  553. \DeclareOldFontCommand{\rm}{\ninept\rmfamily}{\mathrm}
  554. \DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
  555. \DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
  556. \DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
  557. \DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
  558. \DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
  559. \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
  560. \DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}}
  561. \DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}}
  562. \fi
  563. %
  564. \if@ll
  565. \renewcommand{\rmdefault}{cmr} % was 'ttm'
  566. % Note! I have also found 'mvr' to work ESPECIALLY well.
  567. % Gerry - October 1999
  568. % You may need to change your LV1times.fd file so that sc is
  569. % mapped to cmcsc - -for smallcaps -- that is if you decide
  570. % to change {cmr} to {times} above. (Not recommended)
  571. \renewcommand{\@ptsize}{}
  572. \renewcommand{\normalsize}{%
  573. \@setfontsize\normalsize\@ixpt{10.5\p@}%\ninept%
  574. \abovedisplayskip 6\p@ \@plus2\p@ \@minus\p@
  575. \belowdisplayskip \abovedisplayskip
  576. \abovedisplayshortskip 6\p@ \@minus 3\p@
  577. \belowdisplayshortskip 6\p@ \@minus 3\p@
  578. \let\@listi\@listI
  579. }
  580. \else
  581. \def\@normalsize{%changed next to 9 from 10
  582. \@setsize\normalsize{9\p@}\ixpt\@ixpt
  583. \abovedisplayskip 6\p@ \@plus2\p@ \@minus\p@
  584. \belowdisplayskip \abovedisplayskip
  585. \abovedisplayshortskip 6\p@ \@minus 3\p@
  586. \belowdisplayshortskip 6\p@ \@minus 3\p@
  587. \let\@listi\@listI
  588. }%
  589. \fi
  590. \if@ll
  591. \newcommand\scriptsize{\@setfontsize\scriptsize\@viipt{8\p@}}
  592. \newcommand\tiny{\@setfontsize\tiny\@vpt{6\p@}}
  593. \newcommand\large{\@setfontsize\large\@xiipt{14\p@}}
  594. \newcommand\Large{\@setfontsize\Large\@xivpt{18\p@}}
  595. \newcommand\LARGE{\@setfontsize\LARGE\@xviipt{20\p@}}
  596. \newcommand\huge{\@setfontsize\huge\@xxpt{25\p@}}
  597. \newcommand\Huge{\@setfontsize\Huge\@xxvpt{30\p@}}
  598. \else
  599. \def\scriptsize{\@setsize\scriptsize{8\p@}\viipt\@viipt}
  600. \def\tiny{\@setsize\tiny{6\p@}\vpt\@vpt}
  601. \def\large{\@setsize\large{14\p@}\xiipt\@xiipt}
  602. \def\Large{\@setsize\Large{18\p@}\xivpt\@xivpt}
  603. \def\LARGE{\@setsize\LARGE{20\p@}\xviipt\@xviipt}
  604. \def\huge{\@setsize\huge{25\p@}\xxpt\@xxpt}
  605. \def\Huge{\@setsize\Huge{30\p@}\xxvpt\@xxvpt}
  606. \fi
  607. \normalsize
  608. % make aubox hsize/number of authors up to 3, less gutter
  609. % then showbox gutter showbox gutter showbox -- GKMT Aug 99
  610. \newbox\@acmtitlebox
  611. \def\@maketitle{\newpage
  612. \null
  613. \setbox\@acmtitlebox\vbox{%
  614. \baselineskip 20pt
  615. \vskip 2em % Vertical space above title.
  616. \begin{center}
  617. {\ttlfnt \@title\par} % Title set in 18pt Helvetica (Arial) bold size.
  618. \vskip 1.5em % Vertical space after title.
  619. %This should be the subtitle.
  620. {\subttlfnt \the\subtitletext\par}\vskip 1.25em%\fi
  621. {\baselineskip 16pt\aufnt % each author set in \12 pt Arial, in a
  622. \lineskip .5em % tabular environment
  623. \begin{tabular}[t]{c}\@author
  624. \end{tabular}\par}
  625. \vskip 1.5em % Vertical space after author.
  626. \end{center}}
  627. \dimen0=\ht\@acmtitlebox
  628. \advance\dimen0 by -12.75pc\relax % Increased space for title box -- KBT
  629. \unvbox\@acmtitlebox
  630. \ifdim\dimen0<0.0pt\relax\vskip-\dimen0\fi}
  631. \newcount\titlenotecount
  632. \global\titlenotecount=0
  633. \newtoks\tntoks
  634. \newtoks\tntokstwo
  635. \newtoks\tntoksthree
  636. \newtoks\tntoksfour
  637. \newtoks\tntoksfive
  638. \def\abstract{
  639. \ifnum\titlenotecount>0 % was =1
  640. \insert\footins{%
  641. \reset@font\footnotesize
  642. \interlinepenalty\interfootnotelinepenalty
  643. \splittopskip\footnotesep
  644. \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
  645. \hsize\columnwidth \@parboxrestore
  646. \protected@edef\@currentlabel{%
  647. }%
  648. \color@begingroup
  649. \ifnum\titlenotecount=1
  650. \@maketntext{%
  651. \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\@finalstrut\strutbox}%
  652. \fi
  653. \ifnum\titlenotecount=2
  654. \@maketntext{%
  655. \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}%
  656. \@maketntext{%
  657. \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\@finalstrut\strutbox}%
  658. \fi
  659. \ifnum\titlenotecount=3
  660. \@maketntext{%
  661. \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}%
  662. \@maketntext{%
  663. \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\par\@finalstrut\strutbox}%
  664. \@maketntext{%
  665. \raisebox{4pt}{$\ddagger$}\rule\z@\footnotesep\ignorespaces\the\tntoksthree\@finalstrut\strutbox}%
  666. \fi
  667. \ifnum\titlenotecount=4
  668. \@maketntext{%
  669. \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}%
  670. \@maketntext{%
  671. \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\par\@finalstrut\strutbox}%
  672. \@maketntext{%
  673. \raisebox{4pt}{$\ddagger$}\rule\z@\footnotesep\ignorespaces\the\tntoksthree\par\@finalstrut\strutbox}%
  674. \@maketntext{%
  675. \raisebox{4pt}{$\S$}\rule\z@\footnotesep\ignorespaces\the\tntoksfour\@finalstrut\strutbox}%
  676. \fi
  677. \ifnum\titlenotecount=5
  678. \@maketntext{%
  679. \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}%
  680. \@maketntext{%
  681. \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\par\@finalstrut\strutbox}%
  682. \@maketntext{%
  683. \raisebox{4pt}{$\ddagger$}\rule\z@\footnotesep\ignorespaces\the\tntoksthree\par\@finalstrut\strutbox}%
  684. \@maketntext{%
  685. \raisebox{4pt}{$\S$}\rule\z@\footnotesep\ignorespaces\the\tntoksfour\par\@finalstrut\strutbox}%
  686. \@maketntext{%
  687. \raisebox{4pt}{$\P$}\rule\z@\footnotesep\ignorespaces\the\tntoksfive\@finalstrut\strutbox}%
  688. \fi
  689. \color@endgroup} %g}
  690. \fi
  691. \setcounter{footnote}{0}
  692. \section*{ABSTRACT}\normalsize %\the\parskip \the\baselineskip%\ninept
  693. }
  694. \def\endabstract{\if@twocolumn\else\endquotation\fi}
  695. \def\keywords{\if@twocolumn
  696. \section*{Keywords}
  697. \else \small
  698. \quotation
  699. \fi}
  700. % I've pulled the check for 2 cols, since proceedings are _always_
  701. % two-column 11 Jan 2000 gkmt
  702. \def\terms{%\if@twocolumn
  703. \section*{General Terms}
  704. %\else \small
  705. %\quotation\the\parskip
  706. %\fi}
  707. }
  708. % -- Classification needs to be a bit smart due to optionals - Gerry/Georgia November 2nd. 1999
  709. \newcount\catcount
  710. \global\catcount=1
  711. \def\category#1#2#3{%
  712. \ifnum\catcount=1
  713. \section*{Categories and Subject Descriptors}
  714. \advance\catcount by 1\else{\unskip; }\fi
  715. \@ifnextchar [{\@category{#1}{#2}{#3}}{\@category{#1}{#2}{#3}[]}%
  716. }
  717. \def\@category#1#2#3[#4]{%
  718. \begingroup
  719. \let\and\relax
  720. #1 [\textbf{#2}]%
  721. \if!#4!%
  722. \if!#3!\else : #3\fi
  723. \else
  724. :\space
  725. \if!#3!\else #3\kern\z@---\hskip\z@\fi
  726. \textit{#4}%
  727. \fi
  728. \endgroup
  729. }
  730. %
  731. %%% This section (written by KBT) handles the 1" box in the lower left
  732. %%% corner of the left column of the first page by creating a picture,
  733. %%% and inserting the predefined string at the bottom (with a negative
  734. %%% displacement to offset the space allocated for a non-existent
  735. %%% caption).
  736. %%%
  737. \newtoks\copyrightnotice
  738. \def\ftype@copyrightbox{8}
  739. \def\@copyrightspace{
  740. \@float{copyrightbox}[b]
  741. \begin{center}
  742. \setlength{\unitlength}{1pc}
  743. \begin{picture}(20,6) %Space for copyright notice
  744. \put(0,-0.95){\crnotice{\@toappear}}
  745. \end{picture}
  746. \end{center}
  747. \end@float}
  748. \def\@toappear{} % Default setting blank - commands below change this.
  749. \long\def\toappear#1{\def\@toappear{\parbox[b]{20pc}{\baselineskip 9pt#1}}}
  750. \def\toappearbox#1{\def\@toappear{\raisebox{5pt}{\framebox[20pc]{\parbox[b]{19pc}{#1}}}}}
  751. \newtoks\conf
  752. \newtoks\confinfo
  753. \def\conferenceinfo#1#2{\global\conf={#1}\global\confinfo{#2}}
  754. %\def\marginpar{\@latexerr{The \marginpar command is not allowed in the
  755. % `acmconf' document style.}\@eha}
  756. \def\marginpar{\ClassError{%
  757. \string\marginpar\space is not allowed in the `acmconf' document % January 2008
  758. style}\@eha}
  759. \mark{{}{}} % Initializes TeX's marks
  760. \def\today{\ifcase\month\or
  761. January\or February\or March\or April\or May\or June\or
  762. July\or August\or September\or October\or November\or December\fi
  763. \space\number\day, \number\year}
  764. \def\@begintheorem#1#2{%
  765. \trivlist
  766. \item[%
  767. \hskip 10\p@
  768. \hskip \labelsep
  769. {{\sc #1}\hskip 5\p@\relax#2.}%
  770. ]
  771. \it
  772. }
  773. \def\@opargbegintheorem#1#2#3{%
  774. \trivlist
  775. \item[%
  776. \hskip 10\p@
  777. \hskip \labelsep
  778. {\sc #1\ #2\ % This mod by Gerry to enumerate corollaries
  779. \setbox\@tempboxa\hbox{(#3)} % and bracket the 'corollary title'
  780. \ifdim \wd\@tempboxa>\z@ % and retain the correct numbering of e.g. theorems
  781. \hskip 5\p@\relax % if they occur 'around' said corollaries.
  782. \box\@tempboxa % Gerry - Nov. 1999.
  783. \fi.}%
  784. ]
  785. \it
  786. }
  787. \newif\if@qeded
  788. \global\@qededfalse
  789. % -- original
  790. %\def\proof{%
  791. % \vspace{-\parskip} % GM July 2000 (for tighter spacing)
  792. % \global\@qededfalse
  793. % \@ifnextchar[{\@xproof}{\@proof}%
  794. %}
  795. % -- end of original
  796. % (JSS) Fix for vertical spacing bug - Gerry Murray July 30th. 2002
  797. \def\proof{%
  798. \vspace{-\lastskip}\vspace{-\parsep}\penalty-51%
  799. \global\@qededfalse
  800. \@ifnextchar[{\@xproof}{\@proof}%
  801. }
  802. \def\endproof{%
  803. \if@qeded\else\qed\fi
  804. \endtrivlist
  805. }
  806. \def\@proof{%
  807. \trivlist
  808. \item[%
  809. \hskip 10\p@
  810. \hskip \labelsep
  811. {\sc Proof.}%
  812. ]
  813. \ignorespaces
  814. }
  815. \def\@xproof[#1]{%
  816. \trivlist
  817. \item[\hskip 10\p@\hskip \labelsep{\sc Proof #1.}]%
  818. \ignorespaces
  819. }
  820. \def\qed{%
  821. \unskip
  822. \kern 10\p@
  823. \begingroup
  824. \unitlength\p@
  825. \linethickness{.4\p@}%
  826. \framebox(6,6){}%
  827. \endgroup
  828. \global\@qededtrue
  829. }
  830. \def\newdef#1#2{%
  831. \expandafter\@ifdefinable\csname #1\endcsname
  832. {\@definecounter{#1}%
  833. \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}%
  834. \global\@namedef{#1}{\@defthm{#1}{#2}}%
  835. \global\@namedef{end#1}{\@endtheorem}%
  836. }%
  837. }
  838. \def\@defthm#1#2{%
  839. \refstepcounter{#1}%
  840. \@ifnextchar[{\@ydefthm{#1}{#2}}{\@xdefthm{#1}{#2}}%
  841. }
  842. \def\@xdefthm#1#2{%
  843. \@begindef{#2}{\csname the#1\endcsname}%
  844. \ignorespaces
  845. }
  846. \def\@ydefthm#1#2[#3]{%
  847. \trivlist
  848. \item[%
  849. \hskip 10\p@
  850. \hskip \labelsep
  851. {\it #2%
  852. % \savebox\@tempboxa{#3}%
  853. \saveb@x\@tempboxa{#3}% % January 2008
  854. \ifdim \wd\@tempboxa>\z@
  855. \ \box\@tempboxa
  856. \fi.%
  857. }]%
  858. \ignorespaces
  859. }
  860. \def\@begindef#1#2{%
  861. \trivlist
  862. \item[%
  863. \hskip 10\p@
  864. \hskip \labelsep
  865. {\it #1\ \rm #2.}%
  866. ]%
  867. }
  868. \def\theequation{\arabic{equation}}
  869. \newcounter{part}
  870. \newcounter{section}
  871. \newcounter{subsection}[section]
  872. \newcounter{subsubsection}[subsection]
  873. \newcounter{paragraph}[subsubsection]
  874. \def\thepart{\Roman{part}}
  875. \def\thesection{\arabic{section}}
  876. \def\thesubsection{\thesection.\arabic{subsection}}
  877. \def\thesubsubsection{\thesubsection.\arabic{subsubsection}} %removed \subsecfnt 29 July 2002 gkmt
  878. \def\theparagraph{\thesubsubsection.\arabic{paragraph}} %removed \subsecfnt 29 July 2002 gkmt
  879. \newif\if@uchead
  880. \@ucheadfalse
  881. %% CHANGES: NEW NOTE
  882. %% NOTE: OK to use old-style font commands below, since they were
  883. %% suitably redefined for LaTeX2e
  884. %% END CHANGES
  885. \setcounter{secnumdepth}{3}
  886. \def\part{%
  887. \@startsection{part}{9}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@}
  888. {4\p@}{\normalsize\@ucheadtrue}%
  889. }
  890. % Rationale for changes made in next four definitions:
  891. % "Before skip" is made elastic to provide some give in setting columns (vs.
  892. % parskip, which is non-elastic to keep section headers "anchored" to their
  893. % subsequent text.
  894. %
  895. % "After skip" is minimized -- BUT setting it to 0pt resulted in run-in heads, despite
  896. % the documentation asserted only after-skip < 0pt would have result.
  897. %
  898. % Baselineskip added to style to ensure multi-line section titles, and section heads
  899. % followed by another section head rather than text, are decently spaced vertically.
  900. % 12 Jan 2000 gkmt
  901. \def\section{%
  902. \@startsection{section}{1}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@}%
  903. {0.5pt}{\baselineskip=14pt\secfnt\@ucheadtrue}%
  904. }
  905. \def\subsection{%
  906. \@startsection{subsection}{2}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@}
  907. {0.5pt}{\baselineskip=14pt\secfnt}%
  908. }
  909. \def\subsubsection{%
  910. \@startsection{subsubsection}{3}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@}%
  911. {0.5pt}{\baselineskip=14pt\subsecfnt}%
  912. }
  913. %\def\paragraph{%
  914. % \vskip 12pt\@startsection{paragraph}{3}{\z@}{6\p@ \@plus \p@}% original
  915. % {-5\p@}{\subsecfnt}%
  916. %}
  917. % If one wants sections, subsections and subsubsections numbered,
  918. % but not paragraphs, one usually sets secnumepth to 3.
  919. % For that, the "depth" of paragraphs must be given correctly
  920. % in the definition (``4'' instead of ``3'' as second argument
  921. % of @startsection):
  922. \def\paragraph{%
  923. \vskip 12pt\@startsection{paragraph}{4}{\z@}{6\p@ \@plus \p@}% % GM and Wolfgang May - 11/30/06
  924. {-5\p@}{\subsecfnt}%
  925. }
  926. \let\@period=.
  927. \def\@startsection#1#2#3#4#5#6{%
  928. \if@noskipsec %gkmt, 11 aug 99
  929. \global\let\@period\@empty
  930. \leavevmode
  931. \global\let\@period.%
  932. \fi
  933. \par
  934. \@tempskipa #4\relax
  935. \@afterindenttrue
  936. \ifdim \@tempskipa <\z@
  937. \@tempskipa -\@tempskipa
  938. \@afterindentfalse
  939. \fi
  940. %\if@nobreak 11 Jan 00 gkmt
  941. %\everypar{}
  942. %\else
  943. \addpenalty\@secpenalty
  944. \addvspace\@tempskipa
  945. %\fi
  946. \parskip=0pt
  947. \@ifstar
  948. {\@ssect{#3}{#4}{#5}{#6}}
  949. {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}%
  950. }
  951. \def\@ssect#1#2#3#4#5{%
  952. \@tempskipa #3\relax
  953. \ifdim \@tempskipa>\z@
  954. \begingroup
  955. #4{%
  956. \@hangfrom{\hskip #1}%
  957. \interlinepenalty \@M #5\@@par}%
  958. \endgroup
  959. \else
  960. \def\@svsechd{#4{\hskip #1\relax #5}}%
  961. \fi
  962. \vskip -10.5pt %gkmt, 7 jan 00 -- had been -14pt, now set to parskip
  963. \@xsect{#3}\parskip=10.5pt} % within the starred section, parskip = leading 12 Jan 2000 gkmt
  964. \def\@sect#1#2#3#4#5#6[#7]#8{%
  965. \ifnum #2>\c@secnumdepth
  966. \let\@svsec\@empty
  967. \else
  968. \refstepcounter{#1}%
  969. \edef\@svsec{%
  970. \begingroup
  971. %\ifnum#2>2 \noexpand\rm \fi % changed to next 29 July 2002 gkmt
  972. \ifnum#2>2 \noexpand#6 \fi
  973. \csname the#1\endcsname
  974. \endgroup
  975. \ifnum #2=1\relax .\fi
  976. \hskip 1em
  977. }%
  978. \fi
  979. \@tempskipa #5\relax
  980. \ifdim \@tempskipa>\z@
  981. \begingroup
  982. #6\relax
  983. \@hangfrom{\hskip #3\relax\@svsec}%
  984. \begingroup
  985. \interlinepenalty \@M
  986. \if@uchead
  987. \uppercase{#8}%
  988. \else
  989. #8%
  990. \fi
  991. \par
  992. \endgroup
  993. \endgroup
  994. \csname #1mark\endcsname{#7}%
  995. \vskip -10.5pt % -14pt gkmt, 11 aug 99 -- changed to -\parskip 11 Jan 2000
  996. \addcontentsline{toc}{#1}{%
  997. \ifnum #2>\c@secnumdepth \else
  998. \protect\numberline{\csname the#1\endcsname}%
  999. \fi
  1000. #7%
  1001. }%
  1002. \else
  1003. \def\@svsechd{%
  1004. #6%
  1005. \hskip #3\relax
  1006. \@svsec
  1007. \if@uchead
  1008. \uppercase{#8}%
  1009. \else
  1010. #8%
  1011. \fi
  1012. \csname #1mark\endcsname{#7}%
  1013. \addcontentsline{toc}{#1}{%
  1014. \ifnum #2>\c@secnumdepth \else
  1015. \protect\numberline{\csname the#1\endcsname}%
  1016. \fi
  1017. #7%
  1018. }%
  1019. }%
  1020. \fi
  1021. \@xsect{#5}\parskip=10.5pt% within the section, parskip = leading 12 Jan 2000 gkmt
  1022. }
  1023. \def\@xsect#1{%
  1024. \@tempskipa #1\relax
  1025. \ifdim \@tempskipa>\z@
  1026. \par
  1027. \nobreak
  1028. \vskip \@tempskipa
  1029. \@afterheading
  1030. \else
  1031. \global\@nobreakfalse
  1032. \global\@noskipsectrue
  1033. \everypar{%
  1034. \if@noskipsec
  1035. \global\@noskipsecfalse
  1036. \clubpenalty\@M
  1037. \hskip -\parindent
  1038. \begingroup
  1039. \@svsechd
  1040. \@period
  1041. \endgroup
  1042. \unskip
  1043. \@tempskipa #1\relax
  1044. \hskip -\@tempskipa
  1045. \else
  1046. \clubpenalty \@clubpenalty
  1047. \everypar{}%
  1048. \fi
  1049. }%
  1050. \fi
  1051. \ignorespaces
  1052. }
  1053. \def\@trivlist{%
  1054. \@topsepadd\topsep
  1055. \if@noskipsec
  1056. \global\let\@period\@empty
  1057. \leavevmode
  1058. \global\let\@period.%
  1059. \fi
  1060. \ifvmode
  1061. \advance\@topsepadd\partopsep
  1062. \else
  1063. \unskip
  1064. \par
  1065. \fi
  1066. \if@inlabel
  1067. \@noparitemtrue
  1068. \@noparlisttrue
  1069. \else
  1070. \@noparlistfalse
  1071. \@topsep\@topsepadd
  1072. \fi
  1073. \advance\@topsep \parskip
  1074. \leftskip\z@skip
  1075. \rightskip\@rightskip
  1076. \parfillskip\@flushglue
  1077. \@setpar{\if@newlist\else{\@@par}\fi}
  1078. \global\@newlisttrue
  1079. \@outerparskip\parskip
  1080. }
  1081. %%% Actually, 'abbrev' works just fine as the default - Gerry Feb. 2000
  1082. %%% Bibliography style.
  1083. \parindent 0pt
  1084. \typeout{Using 'Abbrev' bibliography style}
  1085. \newcommand\bibyear[2]{%
  1086. \unskip\quad\ignorespaces#1\unskip
  1087. \if#2..\quad \else \quad#2 \fi
  1088. }
  1089. \newcommand{\bibemph}[1]{{\em#1}}
  1090. \newcommand{\bibemphic}[1]{{\em#1\/}}
  1091. \newcommand{\bibsc}[1]{{\sc#1}}
  1092. \def\@normalcite{%
  1093. \def\@cite##1##2{[##1\if@tempswa , ##2\fi]}%
  1094. }
  1095. \def\@citeNB{%
  1096. \def\@cite##1##2{##1\if@tempswa , ##2\fi}%
  1097. }
  1098. \def\@citeRB{%
  1099. \def\@cite##1##2{##1\if@tempswa , ##2\fi]}%
  1100. }
  1101. \def\start@cite#1#2{%
  1102. \edef\citeauthoryear##1##2##3{%
  1103. ###1%
  1104. \ifnum#2=\z@ \else\ ###2\fi
  1105. }%
  1106. \ifnum#1=\thr@@
  1107. \let\@@cite\@citeyear
  1108. \else
  1109. \let\@@cite\@citenormal
  1110. \fi
  1111. \@ifstar{\@citeNB\@@cite}{\@normalcite\@@cite}%
  1112. }
  1113. %\def\cite{\start@cite23}
  1114. \DeclareRobustCommand\cite{\start@cite23} % January 2008
  1115. \def\citeNP{\cite*} % No Parentheses e.g. 5
  1116. %\def\citeA{\start@cite10}
  1117. \DeclareRobustCommand\citeA{\start@cite10} % January 2008
  1118. \def\citeANP{\citeA*}
  1119. %\def\shortcite{\start@cite23}
  1120. \DeclareRobustCommand\shortcite{\start@cite23} % January 2008
  1121. \def\shortciteNP{\shortcite*}
  1122. %\def\shortciteA{\start@cite20}
  1123. \DeclareRobustCommand\shortciteA{\start@cite20} % January 2008
  1124. \def\shortciteANP{\shortciteA*}
  1125. %\def\citeyear{\start@cite30}
  1126. \DeclareRobustCommand\citeyear{\start@cite30} % January 2008
  1127. \def\citeyearNP{\citeyear*}
  1128. %\def\citeN{%
  1129. \DeclareRobustCommand\citeN{% % January 2008
  1130. \@citeRB
  1131. \def\citeauthoryear##1##2##3{##1\ [##3%
  1132. \def\reserved@a{##1}%
  1133. \def\citeauthoryear####1####2####3{%
  1134. \def\reserved@b{####1}%
  1135. \ifx\reserved@a\reserved@b
  1136. ####3%
  1137. \else
  1138. \errmessage{Package acmart Error: author mismatch
  1139. in \string\citeN^^J^^J%
  1140. See the acmart package documentation for explanation}%
  1141. \fi
  1142. }%
  1143. }%
  1144. \@ifstar\@citeyear\@citeyear
  1145. }
  1146. %\def\shortciteN{%
  1147. \DeclareRobustCommand\shortciteN{% % January 2008
  1148. \@citeRB
  1149. \def\citeauthoryear##1##2##3{##2\ [##3%
  1150. \def\reserved@a{##2}%
  1151. \def\citeauthoryear####1####2####3{%
  1152. \def\reserved@b{####2}%
  1153. \ifx\reserved@a\reserved@b
  1154. ####3%
  1155. \else
  1156. \errmessage{Package acmart Error: author mismatch
  1157. in \string\shortciteN^^J^^J%
  1158. See the acmart package documentation for explanation}%
  1159. \fi
  1160. }%
  1161. }%
  1162. \@ifstar\@citeyear\@citeyear % changed from "\@ifstart" 12 Jan 2000 gkmt
  1163. }
  1164. \def\@citenormal{%
  1165. \@ifnextchar [{\@tempswatrue\@citex;}%
  1166. % original {\@tempswafalse\@citex,[]}% was ; Gerry 2/24/00
  1167. {\@tempswafalse\@citex[]}% % GERRY FIX FOR BABEL 3/20/2009
  1168. }
  1169. \def\@citeyear{%
  1170. \@ifnextchar [{\@tempswatrue\@citex,}%
  1171. % original {\@tempswafalse\@citex,[]}%
  1172. {\@tempswafalse\@citex[]}% % GERRY FIX FOR BABEL 3/20/2009
  1173. }
  1174. \def\@citex#1[#2]#3{%
  1175. \let\@citea\@empty
  1176. \@cite{%
  1177. \@for\@citeb:=#3\do{%
  1178. \@citea
  1179. % original \def\@citea{#1 }%
  1180. \def\@citea{#1, }% % GERRY FIX FOR BABEL 3/20/2009 -- SO THAT YOU GET [1, 2] IN THE BODY TEXT
  1181. \edef\@citeb{\expandafter\@iden\@citeb}%
  1182. \if@filesw
  1183. \immediate\write\@auxout{\string\citation{\@citeb}}%
  1184. \fi
  1185. \@ifundefined{b@\@citeb}{%
  1186. {\bf ?}%
  1187. \@warning{%
  1188. Citation `\@citeb' on page \thepage\space undefined%
  1189. }%
  1190. }%
  1191. {\csname b@\@citeb\endcsname}%
  1192. }%
  1193. }{#2}%
  1194. }
  1195. %\let\@biblabel\@gobble % Dec. 2008 - Gerry
  1196. % ----
  1197. \def\@biblabelnum#1{[#1]} % Gerry's solution #1 - for Natbib
  1198. \let\@biblabel=\@biblabelnum % Gerry's solution #1 - for Natbib
  1199. \def\newblock{\relax} % Gerry Dec. 2008
  1200. % ---
  1201. \newdimen\bibindent
  1202. \setcounter{enumi}{1}
  1203. \bibindent=0em
  1204. \def\thebibliography#1{%
  1205. \ifnum\addauflag=0\addauthorsection\global\addauflag=1\fi
  1206. \section[References]{% <=== OPTIONAL ARGUMENT ADDED HERE
  1207. {References} % was uppercased but this affects pdf bookmarks (SP/GM October 2004)
  1208. \@mkboth{{\refname}}{{\refname}}%
  1209. }%
  1210. \list{[\arabic{enumi}]}{%
  1211. \settowidth\labelwidth{[#1]}%
  1212. \leftmargin\labelwidth
  1213. \advance\leftmargin\labelsep
  1214. \advance\leftmargin\bibindent
  1215. \parsep=0pt\itemsep=1pt % GM July 2000
  1216. \itemindent -\bibindent
  1217. \listparindent \itemindent
  1218. \usecounter{enumi}
  1219. }%
  1220. \let\newblock\@empty
  1221. \raggedright % GM July 2000
  1222. \sloppy
  1223. \sfcode`\.=1000\relax
  1224. }
  1225. \gdef\balancecolumns
  1226. {\vfill\eject
  1227. \global\@colht=\textheight
  1228. \global\ht\@cclv=\textheight
  1229. }
  1230. \newcount\colcntr
  1231. \global\colcntr=0
  1232. %\newbox\savebox
  1233. \newbox\saveb@x % January 2008
  1234. \gdef \@makecol {%
  1235. \global\advance\colcntr by 1
  1236. \ifnum\colcntr>2 \global\colcntr=1\fi
  1237. \ifvoid\footins
  1238. \setbox\@outputbox \box\@cclv
  1239. \else
  1240. \setbox\@outputbox \vbox{%
  1241. \boxmaxdepth \@maxdepth
  1242. \@tempdima\dp\@cclv
  1243. \unvbox \@cclv
  1244. \vskip-\@tempdima
  1245. \vskip \skip\footins
  1246. \color@begingroup
  1247. \normalcolor
  1248. \footnoterule
  1249. \unvbox \footins
  1250. \color@endgroup
  1251. }%
  1252. \fi
  1253. \xdef\@freelist{\@freelist\@midlist}%
  1254. \global \let \@midlist \@empty
  1255. \@combinefloats
  1256. \ifvbox\@kludgeins
  1257. \@makespecialcolbox
  1258. \else
  1259. \setbox\@outputbox \vbox to\@colht {%
  1260. \@texttop
  1261. \dimen@ \dp\@outputbox
  1262. \unvbox \@outputbox
  1263. \vskip -\dimen@
  1264. \@textbottom
  1265. }%
  1266. \fi
  1267. \global \maxdepth \@maxdepth
  1268. }
  1269. \def\titlenote{\@ifnextchar[\@xtitlenote{\stepcounter\@mpfn
  1270. \global\advance\titlenotecount by 1
  1271. \ifnum\titlenotecount=1
  1272. \raisebox{9pt}{$\ast$}
  1273. \fi
  1274. \ifnum\titlenotecount=2
  1275. \raisebox{9pt}{$\dagger$}
  1276. \fi
  1277. \ifnum\titlenotecount=3
  1278. \raisebox{9pt}{$\ddagger$}
  1279. \fi
  1280. \ifnum\titlenotecount=4
  1281. \raisebox{9pt}{$\S$}
  1282. \fi
  1283. \ifnum\titlenotecount=5
  1284. \raisebox{9pt}{$\P$}
  1285. \fi
  1286. \@titlenotetext
  1287. }}
  1288. \long\def\@titlenotetext#1{\insert\footins{%
  1289. \ifnum\titlenotecount=1\global\tntoks={#1}\fi
  1290. \ifnum\titlenotecount=2\global\tntokstwo={#1}\fi
  1291. \ifnum\titlenotecount=3\global\tntoksthree={#1}\fi
  1292. \ifnum\titlenotecount=4\global\tntoksfour={#1}\fi
  1293. \ifnum\titlenotecount=5\global\tntoksfive={#1}\fi
  1294. \reset@font\footnotesize
  1295. \interlinepenalty\interfootnotelinepenalty
  1296. \splittopskip\footnotesep
  1297. \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
  1298. \hsize\columnwidth \@parboxrestore
  1299. \protected@edef\@currentlabel{%
  1300. }%
  1301. \color@begingroup
  1302. \color@endgroup}}
  1303. %%%%%%%%%%%%%%%%%%%%%%%%%
  1304. \ps@plain
  1305. \baselineskip=11pt
  1306. \let\thepage\relax % For NO page numbers - Gerry Nov. 30th. 1999
  1307. \def\setpagenumber#1{\global\setcounter{page}{#1}}
  1308. %\pagenumbering{arabic} % Arabic page numbers but commented out for NO page numbes - Gerry Nov. 30th. 1999
  1309. \twocolumn % Double column.
  1310. \flushbottom % Even bottom -- alas, does not balance columns at end of document
  1311. \pagestyle{plain}
  1312. % Need Copyright Year and Copyright Data to be user definable (in .tex file).
  1313. % Gerry Nov. 30th. 1999
  1314. \newtoks\copyrtyr
  1315. \newtoks\acmcopyr
  1316. \newtoks\boilerplate
  1317. \def\CopyrightYear#1{\global\copyrtyr{#1}}
  1318. \def\crdata#1{\global\acmcopyr{#1}}
  1319. \def\permission#1{\global\boilerplate{#1}}
  1320. %
  1321. \newtoks\copyrightetc
  1322. \global\copyrightetc{\ } % Need to have 'something' so that adequate space is left for pasting in a line if "confinfo" is supplied.
  1323. \toappear{\the\boilerplate\par
  1324. {\confname{\the\conf}} \the\confinfo\par \the\copyrightetc}
  1325. % End of ACM_PROC_ARTICLE-SP.CLS -- V3.2SP - 04/22/2009 --
  1326. % Gerry Murray -- Wednesday April 22nd. 2009
  1327. %
  1328. % The following section (i.e. 3 .sty inclusions) was added in May 2007 so as to fix the problems that many
  1329. % authors were having with accents. Sometimes accents would occur, but the letter-character would be of a different
  1330. % font. Conversely the letter-character font would be correct but, e.g. a 'bar' would appear superimposed on the
  1331. % character instead of, say, an unlaut/diaresis. Sometimes the letter-character would NOT appear at all.
  1332. % Using [T1]{fontenc} outright was not an option as this caused 99% of the authors to 'produce' a Type-3 (bitmapped)
  1333. % PDF file - useless for production.
  1334. %
  1335. % For proper (font) accenting we NEED these packages to be part of the .cls file i.e. 'ae', 'aecompl' and 'aeguil'
  1336. % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1337. %% This is file `ae.sty'
  1338. \def\fileversion{1.3}
  1339. \def\filedate{2001/02/12}
  1340. \NeedsTeXFormat{LaTeX2e}
  1341. %\ProvidesPackage{ae}[\filedate\space\fileversion\space % GM
  1342. % Almost European Computer Modern] % GM - keeping the log file clean(er)
  1343. \newif\if@ae@slides \@ae@slidesfalse
  1344. \DeclareOption{slides}{\@ae@slidestrue}
  1345. \ProcessOptions
  1346. \fontfamily{aer}
  1347. \RequirePackage[T1]{fontenc}
  1348. \if@ae@slides
  1349. \renewcommand{\sfdefault}{laess}
  1350. \renewcommand{\rmdefault}{laess} % no roman
  1351. \renewcommand{\ttdefault}{laett}
  1352. \else
  1353. \renewcommand{\sfdefault}{aess}
  1354. \renewcommand{\rmdefault}{aer}
  1355. \renewcommand{\ttdefault}{aett}
  1356. \fi
  1357. \endinput
  1358. %%
  1359. %% End of file `ae.sty'.
  1360. %
  1361. %
  1362. \def\fileversion{0.9}
  1363. \def\filedate{1998/07/23}
  1364. \NeedsTeXFormat{LaTeX2e}
  1365. %\ProvidesPackage{aecompl}[\filedate\space\fileversion\space % GM
  1366. %T1 Complements for AE fonts (D. Roegel)] % GM -- keeping the log file clean(er)
  1367. \def\@ae@compl#1{{\fontencoding{T1}\fontfamily{cmr}\selectfont\symbol{#1}}}
  1368. \def\guillemotleft{\@ae@compl{19}}
  1369. \def\guillemotright{\@ae@compl{20}}
  1370. \def\guilsinglleft{\@ae@compl{14}}
  1371. \def\guilsinglright{\@ae@compl{15}}
  1372. \def\TH{\@ae@compl{222}}
  1373. \def\NG{\@ae@compl{141}}
  1374. \def\ng{\@ae@compl{173}}
  1375. \def\th{\@ae@compl{254}}
  1376. \def\DJ{\@ae@compl{208}}
  1377. \def\dj{\@ae@compl{158}}
  1378. \def\DH{\@ae@compl{208}}
  1379. \def\dh{\@ae@compl{240}}
  1380. \def\@perthousandzero{\@ae@compl{24}}
  1381. \def\textperthousand{\%\@perthousandzero}
  1382. \def\textpertenthousand{\%\@perthousandzero\@perthousandzero}
  1383. \endinput
  1384. %
  1385. %
  1386. %% This is file `aeguill.sty'
  1387. % This file gives french guillemets (and not guillemots!)
  1388. % built with the Polish CMR fonts (default), WNCYR fonts, the LASY fonts
  1389. % or with the EC fonts.
  1390. % This is useful in conjunction with the ae package
  1391. % (this package loads the ae package in case it has not been loaded)
  1392. % and with or without the french(le) package.
  1393. %
  1394. % In order to get the guillemets, it is necessary to either type
  1395. % \guillemotleft and \guillemotright, or to use an 8 bit encoding
  1396. % (such as ISO-Latin1) which selects these two commands,
  1397. % or, if you use the french package (but not the frenchle package),
  1398. % to type << or >>.
  1399. %
  1400. % By default, you get the Polish CMR guillemets; if this package is loaded
  1401. % with the `cm' option, you get the LASY guillemets; with `ec,' you
  1402. % get the EC guillemets, and with `cyr,' you get the cyrillic guillemets.
  1403. %
  1404. % In verbatim mode, you always get the EC/TT guillemets.
  1405. %
  1406. % The default option is interesting in conjunction with PDF,
  1407. % because there is a Type 1 version of the Polish CMR fonts
  1408. % and these guillemets are very close in shape to the EC guillemets.
  1409. % There are no free Type 1 versions of the EC fonts.
  1410. %
  1411. % Support for Polish CMR guillemets was kindly provided by
  1412. % Rolf Niepraschk <[email protected]> in version 0.99 (2000/05/22).
  1413. % Bernd Raichle provided extensive simplifications to the code
  1414. % for version 1.00.
  1415. %
  1416. % This package is released under the LPPL.
  1417. %
  1418. % Changes:
  1419. % Date version
  1420. % 2001/04/12 1.01 the frenchle and french package are now distinguished.
  1421. %
  1422. \def\fileversion{1.01}
  1423. \def\filedate{2001/04/12}
  1424. \NeedsTeXFormat{LaTeX2e}
  1425. %\ProvidesPackage{aeguill}[2001/04/12 1.01 % % GM
  1426. %AE fonts with french guillemets (D. Roegel)] % GM - keeping the log file clean(er)
  1427. %\RequirePackage{ae} % GM May 2007 - already embedded here
  1428. \newcommand{\@ae@switch}[4]{#4}
  1429. \DeclareOption{ec}{\renewcommand\@ae@switch[4]{#1}}
  1430. \DeclareOption{cm}{\renewcommand\@ae@switch[4]{#2}}
  1431. \DeclareOption{cyr}{\renewcommand\@ae@switch[4]{#3}}
  1432. \DeclareOption{pl}{\renewcommand\@ae@switch[4]{#4}}
  1433. \ExecuteOptions{pl}
  1434. \ProcessOptions
  1435. %
  1436. % Load necessary packages
  1437. %
  1438. \@ae@switch{% ec
  1439. % do nothing
  1440. }{% cm
  1441. \RequirePackage{latexsym}% GM - May 2007 - already 'mentioned as required' up above
  1442. }{% cyr
  1443. \RequirePackage[OT2,T1]{fontenc}%
  1444. }{% pl
  1445. \RequirePackage[OT4,T1]{fontenc}%
  1446. }
  1447. % The following command will be compared to \frenchname,
  1448. % as defined in french.sty and frenchle.sty.
  1449. \def\aeguillfrenchdefault{french}%
  1450. \let\guill@verbatim@font\verbatim@font
  1451. \def\verbatim@font{\guill@verbatim@font\ecguills{cmtt}%
  1452. \let\guillemotleft\@oguills\let\guillemotright\@fguills}
  1453. \begingroup \catcode`\<=13 \catcode`\>=13
  1454. \def\x{\endgroup
  1455. \def\ae@lfguill{<<}%
  1456. \def\ae@rfguill{>>}%
  1457. }\x
  1458. \newcommand{\ecguills}[1]{%
  1459. \def\selectguillfont{\fontencoding{T1}\fontfamily{#1}\selectfont}%
  1460. \def\@oguills{{\selectguillfont\symbol{19}}}%
  1461. \def\@fguills{{\selectguillfont\symbol{20}}}%
  1462. }
  1463. \newcommand{\aeguills}{%
  1464. \ae@guills
  1465. % We redefine \guillemotleft and \guillemotright
  1466. % in order to catch them when they are used
  1467. % with \DeclareInputText (in latin1.def for instance)
  1468. % We use \auxWARNINGi as a safe indicator that french.sty is used.
  1469. \gdef\guillemotleft{\ifx\auxWARNINGi\undefined
  1470. \@oguills % neither french.sty nor frenchle.sty
  1471. \else
  1472. \ifx\aeguillfrenchdefault\frenchname
  1473. \ae@lfguill % french.sty
  1474. \else
  1475. \@oguills % frenchle.sty
  1476. \fi
  1477. \fi}%
  1478. \gdef\guillemotright{\ifx\auxWARNINGi\undefined
  1479. \@fguills % neither french.sty nor frenchle.sty
  1480. \else
  1481. \ifx\aeguillfrenchdefault\frenchname
  1482. \ae@rfguill % french.sty
  1483. \else
  1484. \@fguills % frenchle.sty
  1485. \fi
  1486. \fi}%
  1487. }
  1488. %
  1489. % Depending on the class option
  1490. % define the internal command \ae@guills
  1491. \@ae@switch{% ec
  1492. \newcommand{\ae@guills}{%
  1493. \ecguills{cmr}}%
  1494. }{% cm
  1495. \newcommand{\ae@guills}{%
  1496. \def\selectguillfont{\fontencoding{U}\fontfamily{lasy}%
  1497. \fontseries{m}\fontshape{n}\selectfont}%
  1498. \def\@oguills{\leavevmode\nobreak
  1499. \hbox{\selectguillfont (\kern-.20em(\kern.20em}\nobreak}%
  1500. \def\@fguills{\leavevmode\nobreak
  1501. \hbox{\selectguillfont \kern.20em)\kern-.2em)}%
  1502. \ifdim\fontdimen\@ne\font>\z@\/\fi}}%
  1503. }{% cyr
  1504. \newcommand{\ae@guills}{%
  1505. \def\selectguillfont{\fontencoding{OT2}\fontfamily{wncyr}\selectfont}%
  1506. \def\@oguills{{\selectguillfont\symbol{60}}}%
  1507. \def\@fguills{{\selectguillfont\symbol{62}}}}
  1508. }{% pl
  1509. \newcommand{\ae@guills}{%
  1510. \def\selectguillfont{\fontencoding{OT4}\fontfamily{cmr}\selectfont}%
  1511. \def\@oguills{{\selectguillfont\symbol{174}}}%
  1512. \def\@fguills{{\selectguillfont\symbol{175}}}}
  1513. }
  1514. \AtBeginDocument{%
  1515. \ifx\GOfrench\undefined
  1516. \aeguills
  1517. \else
  1518. \let\aeguill@GOfrench\GOfrench
  1519. \gdef\GOfrench{\aeguill@GOfrench \aeguills}%
  1520. \fi
  1521. }
  1522. \endinput
  1523. %