sig-alternate.cls 58 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651
  1. % SIG-ALTERNATE.CLS - VERSION 2.5
  2. % "COMPATIBLE" WITH THE "ACM_PROC_ARTICLE-SP.CLS" V3.2SP
  3. % Gerald Murray - May 23rd 2012
  4. %
  5. % ---- Start of 'updates' ----
  6. % Changed $10 fee to $15 -- May 2012 -- Gerry
  7. % Changed $5 fee to $10 -- April 2009 -- Gerry
  8. % April 22nd. 2009 - Fixed 'Natbib' incompatibility problem - Gerry
  9. % April 22nd. 2009 - Fixed 'Babel' incompatibility problem - Gerry
  10. % April 22nd. 2009 - Inserted various bug-fixes and improvements - Gerry
  11. %
  12. % To produce Type 1 fonts in the document plus allow for 'normal LaTeX accenting' in the critical areas;
  13. % title, author block, section-heads, confname, etc. etc.
  14. % i.e. the whole purpose of this version update is to NOT resort to 'inelegant accent patches'.
  15. % After much research, three extra .sty packages were added to the the tail (ae, aecompl, aeguill) to solve,
  16. % in particular, the accenting problem(s). We _could_ ask authors (via instructions/sample file) to 'include' these in
  17. % the source .tex file - in the preamble - but if everything is already provided ('behind the scenes' - embedded IN the .cls)
  18. % then this is less work for authors and also makes everything appear 'vanilla'.
  19. % NOTE: all 'patchwork accenting" has been commented out (here) and is no longer 'used' in the sample .tex file (either).
  20. % Gerry June 2007
  21. %
  22. % Patch for accenting in conference name/location. Gerry May 3rd. 2007
  23. % Rule widths changed to .5, author count (>6) fixed, roll-back for Type 3 problem. Gerry March 20th. 2007
  24. % Changes made to 'modernize' the fontnames but esp. for MikTeX users V2.4/2.5 - Nov. 30th. 2006
  25. % Updated the \email definition to allow for its use inside of 'shared affiliations' - Nov. 30th. 2006
  26. % Fixed the 'section number depth value' - Nov. 30th. 2006
  27. %
  28. % Footnotes inside table cells using \minipage (Oct. 2002)
  29. % Georgia fixed bug in sub-sub-section numbering in paragraphs (July 29th. 2002)
  30. % JS/GM fix to vertical spacing before Proofs (July 30th. 2002)
  31. %
  32. % Made the Permission Statement / Conference Info / Copyright Info
  33. % 'user definable' in the source .tex file OR automatic if
  34. % not specified.
  35. %
  36. % Allowance made to switch default fonts between those systems using
  37. % normal/modern font names and those using 'Type 1' or 'Truetype' fonts.
  38. % See LINE NUMBER 255 for details.
  39. % Also provided for enumerated/annotated Corollaries 'surrounded' by
  40. % enumerated Theorems (line 848).
  41. % Gerry November 11th. 1999
  42. %
  43. % ---- End of 'updates' ----
  44. %
  45. \def\fileversion{v2.5} % for ACM's tracking purposes
  46. \def\filedate{May 23, 2012} % Gerry Murray's tracking data
  47. \def\docdate {Wednesday 23rd. May 2012} % 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. % SIG-ALTERNATE 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. % HEAVILY MODIFIED, SUBSEQUENTLY, BY GERRY MURRAY 2000
  61. % ARTICLE DOCUMENT STYLE -- Released 16 March 1988
  62. % for LaTeX version 2.09
  63. % Copyright (C) 1988 by Leslie Lamport
  64. %
  65. %
  66. %%% sig-alternate.cls is an 'ALTERNATE' document style for producing
  67. %%% two-column camera-ready pages for ACM conferences.
  68. %%% THIS FILE DOES NOT STRICTLY ADHERE TO THE SIGS (BOARD-ENDORSED)
  69. %%% PROCEEDINGS STYLE. It has been designed to produce a 'tighter'
  70. %%% paper in response to concerns over page budgets.
  71. %%% The main features of this style are:
  72. %%%
  73. %%% 1) Two columns.
  74. %%% 2) Side and top margins of 4.5pc, bottom margin of 6pc, column gutter of
  75. %%% 2pc, hence columns are 20pc wide and 55.5pc tall. (6pc =3D 1in, approx)
  76. %%% 3) First page has title information, and an extra 6pc of space at the
  77. %%% bottom of the first column for the ACM copyright notice.
  78. %%% 4) Text is 9pt on 10pt baselines; titles (except main) are 9pt bold.
  79. %%%
  80. %%%
  81. %%% There are a few restrictions you must observe:
  82. %%%
  83. %%% 1) You cannot change the font size; ACM wants you to use 9pt.
  84. %%% 3) You must start your paper with the \maketitle command. Prior to the
  85. %%% \maketitle you must have \title and \author commands. If you have a
  86. %%% \date command it will be ignored; no date appears on the paper, since
  87. %%% the proceedings will have a date on the front cover.
  88. %%% 4) Marginal paragraphs, tables of contents, lists of figures and tables,
  89. %%% and page headings are all forbidden.
  90. %%% 5) The `figure' environment will produce a figure one column wide; if you
  91. %%% want one that is two columns wide, use `figure*'.
  92. %%%
  93. %
  94. %%% Copyright Space:
  95. %%% This style automatically reserves 1" blank space at the bottom of page 1/
  96. %%% column 1. This space can optionally be filled with some text using the
  97. %%% \toappear{...} command. If used, this command must be BEFORE the \maketitle
  98. %%% command. If this command is defined AND [preprint] is on, then the
  99. %%% space is filled with the {...} text (at the bottom); otherwise, it is
  100. %%% blank. If you use \toappearbox{...} instead of \toappear{...} then a
  101. %%% box will be drawn around the text (if [preprint] is on).
  102. %%%
  103. %%% A typical usage looks like this:
  104. %%% \toappear{To appear in the Ninth AES Conference on Medievil Lithuanian
  105. %%% Embalming Technique, June 1991, Alfaretta, Georgia.}
  106. %%% This will be included in the preprint, and left out of the conference
  107. %%% version.
  108. %%%
  109. %%% WARNING:
  110. %%% Some dvi-ps converters heuristically allow chars to drift from their
  111. %%% true positions a few pixels. This may be noticeable with the 9pt sans-serif
  112. %%% bold font used for section headers.
  113. %%% You may turn this hackery off via the -e option:
  114. %%% dvips -e 0 foo.dvi >foo.ps
  115. %%%
  116. \typeout{Document Class 'sig-alternate' <23rd. May '12>. Modified by G.K.M. Tobin/Gerry Murray}
  117. \typeout{Based in part upon document Style `acmconf' <22 May 89>. Hacked 4/91 by}
  118. \typeout{shivers@cs.cmu.edu, 4/93 by theobald@cs.mcgill.ca}
  119. \typeout{Excerpts were taken from (Journal Style) 'esub2acm.cls'.}
  120. \typeout{****** Bugs/comments/suggestions/technicalities to Gerry Murray -- murray@hq.acm.org ******}
  121. \typeout{Questions on the style, SIGS policies, etc. to Adrienne Griscti griscti@acm.org}
  122. \oddsidemargin 4.5pc
  123. \evensidemargin 4.5pc
  124. \advance\oddsidemargin by -1in % Correct for LaTeX gratuitousness
  125. \advance\evensidemargin by -1in % Correct for LaTeX gratuitousness
  126. \marginparwidth 0pt % Margin pars are not allowed.
  127. \marginparsep 11pt % Horizontal space between outer margin and
  128. % marginal note
  129. % Top of page:
  130. \topmargin 4.5pc % Nominal distance from top of page to top of
  131. % box containing running head.
  132. \advance\topmargin by -1in % Correct for LaTeX gratuitousness
  133. \headheight 0pt % Height of box containing running head.
  134. \headsep 0pt % Space between running head and text.
  135. % Bottom of page:
  136. \footskip 30pt % Distance from baseline of box containing foot
  137. % to baseline of last line of text.
  138. \@ifundefined{footheight}{\newdimen\footheight}{}% this is for LaTeX2e
  139. \footheight 12pt % Height of box containing running foot.
  140. %% Must redefine the top margin so there's room for headers and
  141. %% page numbers if you are using the preprint option. Footers
  142. %% are OK as is. Olin.
  143. \advance\topmargin by -37pt % Leave 37pt above text for headers
  144. \headheight 12pt % Height of box containing running head.
  145. \headsep 25pt % Space between running head and text.
  146. \textheight 666pt % 9 1/4 column height
  147. \textwidth 42pc % Width of text line.
  148. % For two-column mode:
  149. \columnsep 2pc % Space between columns
  150. \columnseprule 0pt % Width of rule between columns.
  151. \hfuzz 1pt % Allow some variation in column width, otherwise it's
  152. % too hard to typeset in narrow columns.
  153. \footnotesep 5.6pt % Height of strut placed at the beginning of every
  154. % footnote =3D height of normal \footnotesize strut,
  155. % so no extra space between footnotes.
  156. \skip\footins 8.1pt plus 4pt minus 2pt % Space between last line of text and
  157. % top of first footnote.
  158. \floatsep 11pt plus 2pt minus 2pt % Space between adjacent floats moved
  159. % to top or bottom of text page.
  160. \textfloatsep 18pt plus 2pt minus 4pt % Space between main text and floats
  161. % at top or bottom of page.
  162. \intextsep 11pt plus 2pt minus 2pt % Space between in-text figures and
  163. % text.
  164. \@ifundefined{@maxsep}{\newdimen\@maxsep}{}% this is for LaTeX2e
  165. \@maxsep 18pt % The maximum of \floatsep,
  166. % \textfloatsep and \intextsep (minus
  167. % the stretch and shrink).
  168. \dblfloatsep 11pt plus 2pt minus 2pt % Same as \floatsep for double-column
  169. % figures in two-column mode.
  170. \dbltextfloatsep 18pt plus 2pt minus 4pt% \textfloatsep for double-column
  171. % floats.
  172. \@ifundefined{@dblmaxsep}{\newdimen\@dblmaxsep}{}% this is for LaTeX2e
  173. \@dblmaxsep 18pt % The maximum of \dblfloatsep and
  174. % \dbltexfloatsep.
  175. \@fptop 0pt plus 1fil % Stretch at top of float page/column. (Must be
  176. % 0pt plus ...)
  177. \@fpsep 8pt plus 2fil % Space between floats on float page/column.
  178. \@fpbot 0pt plus 1fil % Stretch at bottom of float page/column. (Must be
  179. % 0pt plus ... )
  180. \@dblfptop 0pt plus 1fil % Stretch at top of float page. (Must be 0pt plus ...)
  181. \@dblfpsep 8pt plus 2fil % Space between floats on float page.
  182. \@dblfpbot 0pt plus 1fil % Stretch at bottom of float page. (Must be
  183. % 0pt plus ... )
  184. \marginparpush 5pt % Minimum vertical separation between two marginal
  185. % notes.
  186. \parskip 0pt plus 1pt % Extra vertical space between paragraphs.
  187. \parindent 9pt % GM July 2000 / was 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. %
  474. \long\def\@makecaption#1#2{
  475. \vskip \baselineskip
  476. \setbox\@tempboxa\hbox{\textbf{#1: #2}}
  477. \ifdim \wd\@tempboxa >\hsize % IF longer than one line:
  478. \textbf{#1: #2}\par % THEN set as ordinary paragraph.
  479. \else % ELSE center.
  480. \hbox to\hsize{\hfil\box\@tempboxa\hfil}\par
  481. \fi}
  482. %
  483. \long\def\@makecaption#1#2{
  484. \vskip 10pt
  485. \setbox\@tempboxa\hbox{\textbf{#1: #2}}
  486. \ifdim \wd\@tempboxa >\hsize % IF longer than one line:
  487. \textbf{#1: #2}\par % THEN set as ordinary paragraph.
  488. \else % ELSE center.
  489. \hbox to\hsize{\hfil\box\@tempboxa\hfil}
  490. \fi}
  491. \@ifundefined{figure}{\newcounter {figure}} % this is for LaTeX2e
  492. \def\fps@figure{tbp}
  493. \def\ftype@figure{1}
  494. \def\ext@figure{lof}
  495. \def\fnum@figure{Figure \thefigure}
  496. \def\figure{\@float{figure}}
  497. %\let\endfigure\end@float
  498. \def\endfigure{\end@float} % Gerry January 2008
  499. \@namedef{figure*}{\@dblfloat{figure}}
  500. \@namedef{endfigure*}{\end@dblfloat}
  501. \@ifundefined{table}{\newcounter {table}} % this is for LaTeX2e
  502. \def\fps@table{tbp}
  503. \def\ftype@table{2}
  504. \def\ext@table{lot}
  505. \def\fnum@table{Table \thetable}
  506. \def\table{\@float{table}}
  507. %\let\endtable\end@float
  508. \def\endtable{\end@float} % Gerry January 2008
  509. \@namedef{table*}{\@dblfloat{table}}
  510. \@namedef{endtable*}{\end@dblfloat}
  511. \newtoks\titleboxnotes
  512. \newcount\titleboxnoteflag
  513. \def\maketitle{\par
  514. \begingroup
  515. \def\thefootnote{\fnsymbol{footnote}}
  516. \def\@makefnmark{\hbox
  517. to 0pt{$^{\@thefnmark}$\hss}}
  518. \twocolumn[\@maketitle]
  519. \@thanks
  520. \endgroup
  521. \setcounter{footnote}{0}
  522. \let\maketitle\relax
  523. \let\@maketitle\relax
  524. \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\gdef\@subtitle{}\let\thanks\relax
  525. }
  526. %% CHANGES ON NEXT LINES
  527. \newif\if@ll % to record which version of LaTeX is in use
  528. \expandafter\ifx\csname LaTeXe\endcsname\relax % LaTeX2.09 is used
  529. \else% LaTeX2e is used, so set ll to true
  530. \global\@lltrue
  531. \fi
  532. \if@ll
  533. \NeedsTeXFormat{LaTeX2e}
  534. \ProvidesClass{sig-alternate} [2012/05/23 - V2.5 - based on acmproc.cls V1.3 <Nov. 30 '99>]
  535. \RequirePackage{latexsym}% QUERY: are these two really needed?
  536. \let\dooptions\ProcessOptions
  537. \else
  538. \let\dooptions\@options
  539. \fi
  540. %% END CHANGES
  541. \def\@height{height}
  542. \def\@width{width}
  543. \def\@minus{minus}
  544. \def\@plus{plus}
  545. \def\hb@xt@{\hbox to}
  546. \newif\if@faircopy
  547. \@faircopyfalse
  548. \def\ds@faircopy{\@faircopytrue}
  549. \def\ds@preprint{\@faircopyfalse}
  550. \@twosidetrue
  551. \@mparswitchtrue
  552. \def\ds@draft{\overfullrule 5\p@}
  553. %% CHANGE ON NEXT LINE
  554. \dooptions
  555. \lineskip \p@
  556. \normallineskip \p@
  557. \def\baselinestretch{1}
  558. \def\@ptsize{0} %needed for amssymbols.sty
  559. %% CHANGES ON NEXT LINES
  560. \if@ll% allow use of old-style font change commands in LaTeX2e
  561. \@maxdepth\maxdepth
  562. %
  563. \DeclareOldFontCommand{\rm}{\ninept\rmfamily}{\mathrm}
  564. \DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
  565. \DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
  566. \DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
  567. \DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
  568. \DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
  569. \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
  570. \DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}}
  571. \DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}}
  572. \fi
  573. %
  574. \if@ll
  575. \renewcommand{\rmdefault}{cmr} % was 'ttm'
  576. % Note! I have also found 'mvr' to work ESPECIALLY well.
  577. % Gerry - October 1999
  578. % You may need to change your LV1times.fd file so that sc is
  579. % mapped to cmcsc - -for smallcaps -- that is if you decide
  580. % to change {cmr} to {times} above. (Not recommended)
  581. \renewcommand{\@ptsize}{}
  582. \renewcommand{\normalsize}{%
  583. \@setfontsize\normalsize\@ixpt{10.5\p@}%\ninept%
  584. \abovedisplayskip 6\p@ \@plus2\p@ \@minus\p@
  585. \belowdisplayskip \abovedisplayskip
  586. \abovedisplayshortskip 6\p@ \@minus 3\p@
  587. \belowdisplayshortskip 6\p@ \@minus 3\p@
  588. \let\@listi\@listI
  589. }
  590. \else
  591. \def\@normalsize{%changed next to 9 from 10
  592. \@setsize\normalsize{9\p@}\ixpt\@ixpt
  593. \abovedisplayskip 6\p@ \@plus2\p@ \@minus\p@
  594. \belowdisplayskip \abovedisplayskip
  595. \abovedisplayshortskip 6\p@ \@minus 3\p@
  596. \belowdisplayshortskip 6\p@ \@minus 3\p@
  597. \let\@listi\@listI
  598. }%
  599. \fi
  600. \if@ll
  601. \newcommand\scriptsize{\@setfontsize\scriptsize\@viipt{8\p@}}
  602. \newcommand\tiny{\@setfontsize\tiny\@vpt{6\p@}}
  603. \newcommand\large{\@setfontsize\large\@xiipt{14\p@}}
  604. \newcommand\Large{\@setfontsize\Large\@xivpt{18\p@}}
  605. \newcommand\LARGE{\@setfontsize\LARGE\@xviipt{20\p@}}
  606. \newcommand\huge{\@setfontsize\huge\@xxpt{25\p@}}
  607. \newcommand\Huge{\@setfontsize\Huge\@xxvpt{30\p@}}
  608. \else
  609. \def\scriptsize{\@setsize\scriptsize{8\p@}\viipt\@viipt}
  610. \def\tiny{\@setsize\tiny{6\p@}\vpt\@vpt}
  611. \def\large{\@setsize\large{14\p@}\xiipt\@xiipt}
  612. \def\Large{\@setsize\Large{18\p@}\xivpt\@xivpt}
  613. \def\LARGE{\@setsize\LARGE{20\p@}\xviipt\@xviipt}
  614. \def\huge{\@setsize\huge{25\p@}\xxpt\@xxpt}
  615. \def\Huge{\@setsize\Huge{30\p@}\xxvpt\@xxvpt}
  616. \fi
  617. \normalsize
  618. % make aubox hsize/number of authors up to 3, less gutter
  619. % then showbox gutter showbox gutter showbox -- GKMT Aug 99
  620. \newbox\@acmtitlebox
  621. \def\@maketitle{\newpage
  622. \null
  623. \setbox\@acmtitlebox\vbox{%
  624. \baselineskip 20pt
  625. \vskip 2em % Vertical space above title.
  626. \begin{center}
  627. {\ttlfnt \@title\par} % Title set in 18pt Helvetica (Arial) bold size.
  628. \vskip 1.5em % Vertical space after title.
  629. %This should be the subtitle.
  630. {\subttlfnt \the\subtitletext\par}\vskip 1.25em%\fi
  631. {\baselineskip 16pt\aufnt % each author set in \12 pt Arial, in a
  632. \lineskip .5em % tabular environment
  633. \begin{tabular}[t]{c}\@author
  634. \end{tabular}\par}
  635. \vskip 1.5em % Vertical space after author.
  636. \end{center}}
  637. \dimen0=\ht\@acmtitlebox
  638. \advance\dimen0 by -12.75pc\relax % Increased space for title box -- KBT
  639. \unvbox\@acmtitlebox
  640. \ifdim\dimen0<0.0pt\relax\vskip-\dimen0\fi}
  641. \newcount\titlenotecount
  642. \global\titlenotecount=0
  643. \newtoks\tntoks
  644. \newtoks\tntokstwo
  645. \newtoks\tntoksthree
  646. \newtoks\tntoksfour
  647. \newtoks\tntoksfive
  648. \def\abstract{
  649. \ifnum\titlenotecount>0 % was =1
  650. \insert\footins{%
  651. \reset@font\footnotesize
  652. \interlinepenalty\interfootnotelinepenalty
  653. \splittopskip\footnotesep
  654. \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
  655. \hsize\columnwidth \@parboxrestore
  656. \protected@edef\@currentlabel{%
  657. }%
  658. \color@begingroup
  659. \ifnum\titlenotecount=1
  660. \@maketntext{%
  661. \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\@finalstrut\strutbox}%
  662. \fi
  663. \ifnum\titlenotecount=2
  664. \@maketntext{%
  665. \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}%
  666. \@maketntext{%
  667. \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\@finalstrut\strutbox}%
  668. \fi
  669. \ifnum\titlenotecount=3
  670. \@maketntext{%
  671. \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}%
  672. \@maketntext{%
  673. \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\par\@finalstrut\strutbox}%
  674. \@maketntext{%
  675. \raisebox{4pt}{$\ddagger$}\rule\z@\footnotesep\ignorespaces\the\tntoksthree\@finalstrut\strutbox}%
  676. \fi
  677. \ifnum\titlenotecount=4
  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\@finalstrut\strutbox}%
  686. \fi
  687. \ifnum\titlenotecount=5
  688. \@maketntext{%
  689. \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}%
  690. \@maketntext{%
  691. \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\par\@finalstrut\strutbox}%
  692. \@maketntext{%
  693. \raisebox{4pt}{$\ddagger$}\rule\z@\footnotesep\ignorespaces\the\tntoksthree\par\@finalstrut\strutbox}%
  694. \@maketntext{%
  695. \raisebox{4pt}{$\S$}\rule\z@\footnotesep\ignorespaces\the\tntoksfour\par\@finalstrut\strutbox}%
  696. \@maketntext{%
  697. \raisebox{4pt}{$\P$}\rule\z@\footnotesep\ignorespaces\the\tntoksfive\@finalstrut\strutbox}%
  698. \fi
  699. \color@endgroup} %g}
  700. \fi
  701. \setcounter{footnote}{0}
  702. \section*{ABSTRACT}\normalsize%\ninept
  703. }
  704. \def\endabstract{\if@twocolumn\else\endquotation\fi}
  705. \def\keywords{\if@twocolumn
  706. \section*{Keywords}
  707. \else \small
  708. \quotation
  709. \fi}
  710. \def\terms{\if@twocolumn
  711. \section*{General Terms}
  712. \else \small
  713. \quotation
  714. \fi}
  715. % -- Classification needs to be a bit smart due to optionals - Gerry/Georgia November 2nd. 1999
  716. \newcount\catcount
  717. \global\catcount=1
  718. \def\category#1#2#3{%
  719. \ifnum\catcount=1
  720. \section*{Categories and Subject Descriptors}
  721. \advance\catcount by 1\else{\unskip; }\fi
  722. \@ifnextchar [{\@category{#1}{#2}{#3}}{\@category{#1}{#2}{#3}[]}%
  723. }
  724. \def\@category#1#2#3[#4]{%
  725. \begingroup
  726. \let\and\relax
  727. #1 [\textbf{#2}]%
  728. \if!#4!%
  729. \if!#3!\else : #3\fi
  730. \else
  731. :\space
  732. \if!#3!\else #3\kern\z@---\hskip\z@\fi
  733. \textit{#4}%
  734. \fi
  735. \endgroup
  736. }
  737. %
  738. %%% This section (written by KBT) handles the 1" box in the lower left
  739. %%% corner of the left column of the first page by creating a picture,
  740. %%% and inserting the predefined string at the bottom (with a negative
  741. %%% displacement to offset the space allocated for a non-existent
  742. %%% caption).
  743. %%%
  744. %\newtoks\copyrightnotice
  745. %\def\ftype@copyrightbox{8}
  746. %\def\@copyrightspace{
  747. %\@float{copyrightbox}[b]
  748. %\begin{center}
  749. %\setlength{\unitlength}{1pc}
  750. %\begin{picture}(20,6) %Space for copyright notice
  751. %\put(0,-0.95){\crnotice{\@toappear}}
  752. %\end{picture}
  753. %\end{center}
  754. %\end@float}
  755. %\def\@toappear{} % Default setting blank - commands below change this.
  756. %\long\def\toappear#1{\def\@toappear{\parbox[b]{20pc}{\baselineskip 9pt#1}}}
  757. %\def\toappearbox#1{\def\@toappear{\raisebox{5pt}{\framebox[20pc]{\parbox[b]{19pc}{#1}}}}}
  758. %\newtoks\conf
  759. %\newtoks\confinfo
  760. %\def\conferenceinfo#1#2{\global\conf={#1}\global\confinfo{#2}}
  761. %\def\marginpar{\@latexerr{The \marginpar command is not allowed in the
  762. % `acmconf' document style.}\@eha}
  763. \def\marginpar{\ClassError{%
  764. \string\marginpar\space is not allowed in the `acmconf' document % January 2008
  765. style}\@eha}
  766. \mark{{}{}} % Initializes TeX's marks
  767. \def\today{\ifcase\month\or
  768. January\or February\or March\or April\or May\or June\or
  769. July\or August\or September\or October\or November\or December\fi
  770. \space\number\day, \number\year}
  771. \def\@begintheorem#1#2{%
  772. \parskip 0pt % GM July 2000 (for tighter spacing)
  773. \trivlist
  774. \item[%
  775. \hskip 10\p@
  776. \hskip \labelsep
  777. {{\sc #1}\hskip 5\p@\relax#2.}%
  778. ]
  779. \it
  780. }
  781. \def\@opargbegintheorem#1#2#3{%
  782. \parskip 0pt % GM July 2000 (for tighter spacing)
  783. \trivlist
  784. \item[%
  785. \hskip 10\p@
  786. \hskip \labelsep
  787. {\sc #1\ #2\ % This mod by Gerry to enumerate corollaries
  788. \setbox\@tempboxa\hbox{(#3)} % and bracket the 'corollary title'
  789. \ifdim \wd\@tempboxa>\z@ % and retain the correct numbering of e.g. theorems
  790. \hskip 5\p@\relax % if they occur 'around' said corollaries.
  791. \box\@tempboxa % Gerry - Nov. 1999.
  792. \fi.}%
  793. ]
  794. \it
  795. }
  796. \newif\if@qeded
  797. \global\@qededfalse
  798. % -- original
  799. %\def\proof{%
  800. % \vspace{-\parskip} % GM July 2000 (for tighter spacing)
  801. % \global\@qededfalse
  802. % \@ifnextchar[{\@xproof}{\@proof}%
  803. %}
  804. % -- end of original
  805. % (JSS) Fix for vertical spacing bug - Gerry Murray July 30th. 2002
  806. \def\proof{%
  807. \vspace{-\lastskip}\vspace{-\parsep}\penalty-51%
  808. \global\@qededfalse
  809. \@ifnextchar[{\@xproof}{\@proof}%
  810. }
  811. \def\endproof{%
  812. \if@qeded\else\qed\fi
  813. \endtrivlist
  814. }
  815. \def\@proof{%
  816. \trivlist
  817. \item[%
  818. \hskip 10\p@
  819. \hskip \labelsep
  820. {\sc Proof.}%
  821. ]
  822. \ignorespaces
  823. }
  824. \def\@xproof[#1]{%
  825. \trivlist
  826. \item[\hskip 10\p@\hskip \labelsep{\sc Proof #1.}]%
  827. \ignorespaces
  828. }
  829. \def\qed{%
  830. \unskip
  831. \kern 10\p@
  832. \begingroup
  833. \unitlength\p@
  834. \linethickness{.4\p@}%
  835. \framebox(6,6){}%
  836. \endgroup
  837. \global\@qededtrue
  838. }
  839. \def\newdef#1#2{%
  840. \expandafter\@ifdefinable\csname #1\endcsname
  841. {\@definecounter{#1}%
  842. \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}%
  843. \global\@namedef{#1}{\@defthm{#1}{#2}}%
  844. \global\@namedef{end#1}{\@endtheorem}%
  845. }%
  846. }
  847. \def\@defthm#1#2{%
  848. \refstepcounter{#1}%
  849. \@ifnextchar[{\@ydefthm{#1}{#2}}{\@xdefthm{#1}{#2}}%
  850. }
  851. \def\@xdefthm#1#2{%
  852. \@begindef{#2}{\csname the#1\endcsname}%
  853. \ignorespaces
  854. }
  855. \def\@ydefthm#1#2[#3]{%
  856. \trivlist
  857. \item[%
  858. \hskip 10\p@
  859. \hskip \labelsep
  860. {\it #2%
  861. % \savebox\@tempboxa{#3}%
  862. \saveb@x\@tempboxa{#3}% % January 2008
  863. \ifdim \wd\@tempboxa>\z@
  864. \ \box\@tempboxa
  865. \fi.%
  866. }]%
  867. \ignorespaces
  868. }
  869. \def\@begindef#1#2{%
  870. \trivlist
  871. \item[%
  872. \hskip 10\p@
  873. \hskip \labelsep
  874. {\it #1\ \rm #2.}%
  875. ]%
  876. }
  877. \def\theequation{\arabic{equation}}
  878. \newcounter{part}
  879. \newcounter{section}
  880. \newcounter{subsection}[section]
  881. \newcounter{subsubsection}[subsection]
  882. \newcounter{paragraph}[subsubsection]
  883. \def\thepart{\Roman{part}}
  884. \def\thesection{\arabic{section}}
  885. \def\thesubsection{\thesection.\arabic{subsection}}
  886. \def\thesubsubsection{\thesubsection.\arabic{subsubsection}} %removed \subsecfnt 29 July 2002 gkmt
  887. \def\theparagraph{\thesubsubsection.\arabic{paragraph}} %removed \subsecfnt 29 July 2002 gkmt
  888. \newif\if@uchead
  889. \@ucheadfalse
  890. %% CHANGES: NEW NOTE
  891. %% NOTE: OK to use old-style font commands below, since they were
  892. %% suitably redefined for LaTeX2e
  893. %% END CHANGES
  894. \setcounter{secnumdepth}{3}
  895. \def\part{%
  896. \@startsection{part}{9}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@}
  897. {4\p@}{\normalsize\@ucheadtrue}%
  898. }
  899. \def\section{%
  900. \@startsection{section}{1}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@}% GM
  901. {4\p@}{\baselineskip 14pt\secfnt\@ucheadtrue}%
  902. }
  903. \def\subsection{%
  904. \@startsection{subsection}{2}{\z@}{-8\p@ \@plus -2\p@ \@minus -\p@}
  905. {4\p@}{\secfnt}%
  906. }
  907. \def\subsubsection{%
  908. \@startsection{subsubsection}{3}{\z@}{-8\p@ \@plus -2\p@ \@minus -\p@}%
  909. {4\p@}{\subsecfnt}%
  910. }
  911. %\def\paragraph{%
  912. % \vskip 12pt\@startsection{paragraph}{3}{\z@}{6\p@ \@plus \p@}% original
  913. % {-5\p@}{\subsecfnt}%
  914. %}
  915. % If one wants sections, subsections and subsubsections numbered,
  916. % but not paragraphs, one usually sets secnumepth to 3.
  917. % For that, the "depth" of paragraphs must be given correctly
  918. % in the definition (``4'' instead of ``3'' as second argument
  919. % of @startsection):
  920. \def\paragraph{%
  921. \vskip 12pt\@startsection{paragraph}{4}{\z@}{6\p@ \@plus \p@}% % GM and Wolfgang May - 11/30/06
  922. {-5\p@}{\subsecfnt}%
  923. }
  924. \let\@period=.
  925. \def\@startsection#1#2#3#4#5#6{%
  926. \if@noskipsec %gkmt, 11 aug 99
  927. \global\let\@period\@empty
  928. \leavevmode
  929. \global\let\@period.%
  930. \fi
  931. \par %
  932. \@tempskipa #4\relax
  933. \@afterindenttrue
  934. \ifdim \@tempskipa <\z@
  935. \@tempskipa -\@tempskipa
  936. \@afterindentfalse
  937. \fi
  938. \if@nobreak
  939. \everypar{}%
  940. \else
  941. \addpenalty\@secpenalty
  942. \addvspace\@tempskipa
  943. \fi
  944. \parskip=0pt % GM July 2000 (non numbered) section heads
  945. \@ifstar
  946. {\@ssect{#3}{#4}{#5}{#6}}
  947. {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}%
  948. }
  949. \def\@sect#1#2#3#4#5#6[#7]#8{%
  950. \ifnum #2>\c@secnumdepth
  951. \let\@svsec\@empty
  952. \else
  953. \refstepcounter{#1}%
  954. \edef\@svsec{%
  955. \begingroup
  956. %\ifnum#2>2 \noexpand\rm \fi % changed to next 29 July 2002 gkmt
  957. \ifnum#2>2 \noexpand#6 \fi
  958. \csname the#1\endcsname
  959. \endgroup
  960. \ifnum #2=1\relax .\fi
  961. \hskip 1em
  962. }%
  963. \fi
  964. \@tempskipa #5\relax
  965. \ifdim \@tempskipa>\z@
  966. \begingroup
  967. #6\relax
  968. \@hangfrom{\hskip #3\relax\@svsec}%
  969. \begingroup
  970. \interlinepenalty \@M
  971. \if@uchead
  972. \uppercase{#8}%
  973. \else
  974. #8%
  975. \fi
  976. \par
  977. \endgroup
  978. \endgroup
  979. \csname #1mark\endcsname{#7}%
  980. \vskip -12pt %gkmt, 11 aug 99 and GM July 2000 (was -14) - numbered section head spacing
  981. \addcontentsline{toc}{#1}{%
  982. \ifnum #2>\c@secnumdepth \else
  983. \protect\numberline{\csname the#1\endcsname}%
  984. \fi
  985. #7%
  986. }%
  987. \else
  988. \def\@svsechd{%
  989. #6%
  990. \hskip #3\relax
  991. \@svsec
  992. \if@uchead
  993. \uppercase{#8}%
  994. \else
  995. #8%
  996. \fi
  997. \csname #1mark\endcsname{#7}%
  998. \addcontentsline{toc}{#1}{%
  999. \ifnum #2>\c@secnumdepth \else
  1000. \protect\numberline{\csname the#1\endcsname}%
  1001. \fi
  1002. #7%
  1003. }%
  1004. }%
  1005. \fi
  1006. \@xsect{#5}\hskip 1pt
  1007. \par
  1008. }
  1009. \def\@xsect#1{%
  1010. \@tempskipa #1\relax
  1011. \ifdim \@tempskipa>\z@
  1012. \par
  1013. \nobreak
  1014. \vskip \@tempskipa
  1015. \@afterheading
  1016. \else
  1017. \global\@nobreakfalse
  1018. \global\@noskipsectrue
  1019. \everypar{%
  1020. \if@noskipsec
  1021. \global\@noskipsecfalse
  1022. \clubpenalty\@M
  1023. \hskip -\parindent
  1024. \begingroup
  1025. \@svsechd
  1026. \@period
  1027. \endgroup
  1028. \unskip
  1029. \@tempskipa #1\relax
  1030. \hskip -\@tempskipa
  1031. \else
  1032. \clubpenalty \@clubpenalty
  1033. \everypar{}%
  1034. \fi
  1035. }%
  1036. \fi
  1037. \ignorespaces
  1038. }
  1039. \def\@trivlist{%
  1040. \@topsepadd\topsep
  1041. \if@noskipsec
  1042. \global\let\@period\@empty
  1043. \leavevmode
  1044. \global\let\@period.%
  1045. \fi
  1046. \ifvmode
  1047. \advance\@topsepadd\partopsep
  1048. \else
  1049. \unskip
  1050. \par
  1051. \fi
  1052. \if@inlabel
  1053. \@noparitemtrue
  1054. \@noparlisttrue
  1055. \else
  1056. \@noparlistfalse
  1057. \@topsep\@topsepadd
  1058. \fi
  1059. \advance\@topsep \parskip
  1060. \leftskip\z@skip
  1061. \rightskip\@rightskip
  1062. \parfillskip\@flushglue
  1063. \@setpar{\if@newlist\else{\@@par}\fi}
  1064. \global\@newlisttrue
  1065. \@outerparskip\parskip
  1066. }
  1067. %%% Actually, 'abbrev' works just fine as the default
  1068. %%% Bibliography style.
  1069. \typeout{Using 'Abbrev' bibliography style}
  1070. \newcommand\bibyear[2]{%
  1071. \unskip\quad\ignorespaces#1\unskip
  1072. \if#2..\quad \else \quad#2 \fi
  1073. }
  1074. \newcommand{\bibemph}[1]{{\em#1}}
  1075. \newcommand{\bibemphic}[1]{{\em#1\/}}
  1076. \newcommand{\bibsc}[1]{{\sc#1}}
  1077. \def\@normalcite{%
  1078. \def\@cite##1##2{[##1\if@tempswa , ##2\fi]}%
  1079. }
  1080. \def\@citeNB{%
  1081. \def\@cite##1##2{##1\if@tempswa , ##2\fi}%
  1082. }
  1083. \def\@citeRB{%
  1084. \def\@cite##1##2{##1\if@tempswa , ##2\fi]}%
  1085. }
  1086. \def\start@cite#1#2{%
  1087. \edef\citeauthoryear##1##2##3{%
  1088. ###1%
  1089. \ifnum#2=\z@ \else\ ###2\fi
  1090. }%
  1091. \ifnum#1=\thr@@
  1092. \let\@@cite\@citeyear
  1093. \else
  1094. \let\@@cite\@citenormal
  1095. \fi
  1096. \@ifstar{\@citeNB\@@cite}{\@normalcite\@@cite}%
  1097. }
  1098. %\def\cite{\start@cite23}
  1099. \DeclareRobustCommand\cite{\start@cite23} % January 2008
  1100. \def\citeNP{\cite*} % No Parentheses e.g. 5
  1101. %\def\citeA{\start@cite10}
  1102. \DeclareRobustCommand\citeA{\start@cite10} % January 2008
  1103. \def\citeANP{\citeA*}
  1104. %\def\shortcite{\start@cite23}
  1105. \DeclareRobustCommand\shortcite{\start@cite23} % January 2008
  1106. \def\shortciteNP{\shortcite*}
  1107. %\def\shortciteA{\start@cite20}
  1108. \DeclareRobustCommand\shortciteA{\start@cite20} % January 2008
  1109. \def\shortciteANP{\shortciteA*}
  1110. %\def\citeyear{\start@cite30}
  1111. \DeclareRobustCommand\citeyear{\start@cite30} % January 2008
  1112. \def\citeyearNP{\citeyear*}
  1113. %\def\citeN{%
  1114. \DeclareRobustCommand\citeN{% % January 2008
  1115. \@citeRB
  1116. \def\citeauthoryear##1##2##3{##1\ [##3%
  1117. \def\reserved@a{##1}%
  1118. \def\citeauthoryear####1####2####3{%
  1119. \def\reserved@b{####1}%
  1120. \ifx\reserved@a\reserved@b
  1121. ####3%
  1122. \else
  1123. \errmessage{Package acmart Error: author mismatch
  1124. in \string\citeN^^J^^J%
  1125. See the acmart package documentation for explanation}%
  1126. \fi
  1127. }%
  1128. }%
  1129. \@ifstar\@citeyear\@citeyear
  1130. }
  1131. %\def\shortciteN{%
  1132. \DeclareRobustCommand\shortciteN{% % January 2008
  1133. \@citeRB
  1134. \def\citeauthoryear##1##2##3{##2\ [##3%
  1135. \def\reserved@a{##2}%
  1136. \def\citeauthoryear####1####2####3{%
  1137. \def\reserved@b{####2}%
  1138. \ifx\reserved@a\reserved@b
  1139. ####3%
  1140. \else
  1141. \errmessage{Package acmart Error: author mismatch
  1142. in \string\shortciteN^^J^^J%
  1143. See the acmart package documentation for explanation}%
  1144. \fi
  1145. }%
  1146. }%
  1147. \@ifstar\@citeyear\@citeyear % GM July 2000
  1148. }
  1149. \def\@citenormal{%
  1150. \@ifnextchar [{\@tempswatrue\@citex;}%
  1151. % original {\@tempswafalse\@citex,[]}% was ; Gerry 2/24/00
  1152. {\@tempswafalse\@citex[]}% % GERRY FIX FOR BABEL 3/20/2009
  1153. }
  1154. \def\@citeyear{%
  1155. \@ifnextchar [{\@tempswatrue\@citex,}%
  1156. % original {\@tempswafalse\@citex,[]}%
  1157. {\@tempswafalse\@citex[]}% % GERRY FIX FOR BABEL 3/20/2009
  1158. }
  1159. \def\@citex#1[#2]#3{%
  1160. \let\@citea\@empty
  1161. \@cite{%
  1162. \@for\@citeb:=#3\do{%
  1163. \@citea
  1164. % original \def\@citea{#1 }%
  1165. \def\@citea{#1, }% % GERRY FIX FOR BABEL 3/20/2009 -- SO THAT YOU GET [1, 2] IN THE BODY TEXT
  1166. \edef\@citeb{\expandafter\@iden\@citeb}%
  1167. \if@filesw
  1168. \immediate\write\@auxout{\string\citation{\@citeb}}%
  1169. \fi
  1170. \@ifundefined{b@\@citeb}{%
  1171. {\bf ?}%
  1172. \@warning{%
  1173. Citation `\@citeb' on page \thepage\space undefined%
  1174. }%
  1175. }%
  1176. {\csname b@\@citeb\endcsname}%
  1177. }%
  1178. }{#2}%
  1179. }
  1180. %\let\@biblabel\@gobble % Dec. 2008 - Gerry
  1181. % ----
  1182. \def\@biblabelnum#1{[#1]} % Gerry's solution #1 - for Natbib -- April 2009
  1183. \let\@biblabel=\@biblabelnum % Gerry's solution #1 - for Natbib -- April 2009
  1184. \def\newblock{\relax} % Gerry Dec. 2008
  1185. % ---
  1186. \newdimen\bibindent
  1187. \setcounter{enumi}{1}
  1188. \bibindent=0em
  1189. \def\thebibliography#1{%
  1190. \ifnum\addauflag=0\addauthorsection\global\addauflag=1\fi
  1191. \section[References]{% <=== OPTIONAL ARGUMENT ADDED HERE
  1192. {References} % was uppercased but this affects pdf bookmarks (SP/GM October 2004)
  1193. {\vskip -9pt plus 1pt} % GM Nov. 2006 / GM July 2000 (for somewhat tighter spacing)
  1194. \@mkboth{{\refname}}{{\refname}}%
  1195. }%
  1196. \list{[\arabic{enumi}]}{%
  1197. \settowidth\labelwidth{[#1]}%
  1198. \leftmargin\labelwidth
  1199. \advance\leftmargin\labelsep
  1200. \advance\leftmargin\bibindent
  1201. \parsep=0pt\itemsep=1pt % GM July 2000
  1202. \itemindent -\bibindent
  1203. \listparindent \itemindent
  1204. \usecounter{enumi}
  1205. }%
  1206. \let\newblock\@empty
  1207. \raggedright % GM July 2000
  1208. \sloppy
  1209. \sfcode`\.=1000\relax
  1210. }
  1211. \gdef\balancecolumns
  1212. {\vfill\eject
  1213. \global\@colht=\textheight
  1214. \global\ht\@cclv=\textheight
  1215. }
  1216. \newcount\colcntr
  1217. \global\colcntr=0
  1218. %\newbox\savebox
  1219. \newbox\saveb@x % January 2008
  1220. \gdef \@makecol {%
  1221. \global\advance\colcntr by 1
  1222. \ifnum\colcntr>2 \global\colcntr=1\fi
  1223. \ifvoid\footins
  1224. \setbox\@outputbox \box\@cclv
  1225. \else
  1226. \setbox\@outputbox \vbox{%
  1227. \boxmaxdepth \@maxdepth
  1228. \@tempdima\dp\@cclv
  1229. \unvbox \@cclv
  1230. \vskip-\@tempdima
  1231. \vskip \skip\footins
  1232. \color@begingroup
  1233. \normalcolor
  1234. \footnoterule
  1235. \unvbox \footins
  1236. \color@endgroup
  1237. }%
  1238. \fi
  1239. \xdef\@freelist{\@freelist\@midlist}%
  1240. \global \let \@midlist \@empty
  1241. \@combinefloats
  1242. \ifvbox\@kludgeins
  1243. \@makespecialcolbox
  1244. \else
  1245. \setbox\@outputbox \vbox to\@colht {%
  1246. \@texttop
  1247. \dimen@ \dp\@outputbox
  1248. \unvbox \@outputbox
  1249. \vskip -\dimen@
  1250. \@textbottom
  1251. }%
  1252. \fi
  1253. \global \maxdepth \@maxdepth
  1254. }
  1255. \def\titlenote{\@ifnextchar[\@xtitlenote{\stepcounter\@mpfn
  1256. \global\advance\titlenotecount by 1
  1257. \ifnum\titlenotecount=1
  1258. \raisebox{9pt}{$\ast$}
  1259. \fi
  1260. \ifnum\titlenotecount=2
  1261. \raisebox{9pt}{$\dagger$}
  1262. \fi
  1263. \ifnum\titlenotecount=3
  1264. \raisebox{9pt}{$\ddagger$}
  1265. \fi
  1266. \ifnum\titlenotecount=4
  1267. \raisebox{9pt}{$\S$}
  1268. \fi
  1269. \ifnum\titlenotecount=5
  1270. \raisebox{9pt}{$\P$}
  1271. \fi
  1272. \@titlenotetext
  1273. }}
  1274. \long\def\@titlenotetext#1{\insert\footins{%
  1275. \ifnum\titlenotecount=1\global\tntoks={#1}\fi
  1276. \ifnum\titlenotecount=2\global\tntokstwo={#1}\fi
  1277. \ifnum\titlenotecount=3\global\tntoksthree={#1}\fi
  1278. \ifnum\titlenotecount=4\global\tntoksfour={#1}\fi
  1279. \ifnum\titlenotecount=5\global\tntoksfive={#1}\fi
  1280. \reset@font\footnotesize
  1281. \interlinepenalty\interfootnotelinepenalty
  1282. \splittopskip\footnotesep
  1283. \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
  1284. \hsize\columnwidth \@parboxrestore
  1285. \protected@edef\@currentlabel{%
  1286. }%
  1287. \color@begingroup
  1288. \color@endgroup}}
  1289. %%%%%%%%%%%%%%%%%%%%%%%%%
  1290. \ps@plain
  1291. \baselineskip=11pt
  1292. \let\thepage\relax % For NO page numbers - GM Nov. 30th. 1999 and July 2000
  1293. \def\setpagenumber#1{\global\setcounter{page}{#1}}
  1294. %\pagenumbering{arabic} % Arabic page numbers GM July 2000
  1295. \twocolumn % Double column.
  1296. \flushbottom % Even bottom -- alas, does not balance columns at end of document
  1297. \pagestyle{plain}
  1298. % Need Copyright Year and Copyright Data to be user definable (in .tex file).
  1299. % Gerry Nov. 30th. 1999
  1300. \newtoks\copyrtyr
  1301. \newtoks\acmcopyr
  1302. \newtoks\boilerplate
  1303. \global\acmcopyr={X-XXXXX-XX-X/XX/XX} % Default - 5/11/2001 *** Gerry
  1304. \global\copyrtyr={20XX} % Default - 3/3/2003 *** Gerry
  1305. \def\CopyrightYear#1{\global\copyrtyr{#1}}
  1306. \def\crdata#1{\global\acmcopyr{#1}}
  1307. \def\permission#1{\global\boilerplate{#1}}
  1308. % Comment this out as this is not an ACM paper
  1309. %\global\boilerplate={Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.}
  1310. %\newtoks\copyrightetc
  1311. %\global\copyrightetc{Copyright \the\copyrtyr\ ACM \the\acmcopyr\ ...\$15.00} % Gerry changed to 15 May 2012
  1312. %\toappear{\the\boilerplate\par
  1313. %{\confname{\the\conf}} \the\confinfo\par \the\copyrightetc.}
  1314. %\DeclareFixedFont{\altcrnotice}{OT1}{tmr}{m}{n}{8} % << patch needed for accenting e.g. Montreal - Gerry, May 2007
  1315. %\DeclareFixedFont{\altconfname}{OT1}{tmr}{m}{it}{8} % << patch needed for accenting in italicized confname - Gerry, May 2007
  1316. %
  1317. %{\altconfname{{\the\conf}}} {\altcrnotice\the\confinfo\par} \the\copyrightetc.} % << Gerry, May 2007
  1318. %
  1319. % The following section (i.e. 3 .sty inclusions) was added in May 2007 so as to fix the problems that many
  1320. % authors were having with accents. Sometimes accents would occur, but the letter-character would be of a different
  1321. % font. Conversely the letter-character font would be correct but, e.g. a 'bar' would appear superimposed on the
  1322. % character instead of, say, an unlaut/diaresis. Sometimes the letter-character would NOT appear at all.
  1323. % Using [T1]{fontenc} outright was not an option as this caused 99% of the authors to 'produce' a Type-3 (bitmapped)
  1324. % PDF file - useless for production.
  1325. %
  1326. % For proper (font) accenting we NEED these packages to be part of the .cls file i.e. 'ae', 'aecompl' and 'aeguil'
  1327. % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1328. %% This is file `ae.sty'
  1329. \def\fileversion{1.3}
  1330. \def\filedate{2001/02/12}
  1331. \NeedsTeXFormat{LaTeX2e}
  1332. %\ProvidesPackage{ae}[\filedate\space\fileversion\space % GM
  1333. % Almost European Computer Modern] % GM - keeping the log file clean(er)
  1334. \newif\if@ae@slides \@ae@slidesfalse
  1335. \DeclareOption{slides}{\@ae@slidestrue}
  1336. \ProcessOptions
  1337. \fontfamily{aer}
  1338. \RequirePackage[T1]{fontenc}
  1339. \if@ae@slides
  1340. \renewcommand{\sfdefault}{laess}
  1341. \renewcommand{\rmdefault}{laess} % no roman
  1342. \renewcommand{\ttdefault}{laett}
  1343. \else
  1344. \renewcommand{\sfdefault}{aess}
  1345. \renewcommand{\rmdefault}{aer}
  1346. \renewcommand{\ttdefault}{aett}
  1347. \fi
  1348. \endinput
  1349. %%
  1350. %% End of file `ae.sty'.
  1351. %
  1352. %
  1353. \def\fileversion{0.9}
  1354. \def\filedate{1998/07/23}
  1355. \NeedsTeXFormat{LaTeX2e}
  1356. %\ProvidesPackage{aecompl}[\filedate\space\fileversion\space % GM
  1357. %T1 Complements for AE fonts (D. Roegel)] % GM -- keeping the log file clean(er)
  1358. \def\@ae@compl#1{{\fontencoding{T1}\fontfamily{cmr}\selectfont\symbol{#1}}}
  1359. \def\guillemotleft{\@ae@compl{19}}
  1360. \def\guillemotright{\@ae@compl{20}}
  1361. \def\guilsinglleft{\@ae@compl{14}}
  1362. \def\guilsinglright{\@ae@compl{15}}
  1363. \def\TH{\@ae@compl{222}}
  1364. \def\NG{\@ae@compl{141}}
  1365. \def\ng{\@ae@compl{173}}
  1366. \def\th{\@ae@compl{254}}
  1367. \def\DJ{\@ae@compl{208}}
  1368. \def\dj{\@ae@compl{158}}
  1369. \def\DH{\@ae@compl{208}}
  1370. \def\dh{\@ae@compl{240}}
  1371. \def\@perthousandzero{\@ae@compl{24}}
  1372. \def\textperthousand{\%\@perthousandzero}
  1373. \def\textpertenthousand{\%\@perthousandzero\@perthousandzero}
  1374. \endinput
  1375. %
  1376. %
  1377. %% This is file `aeguill.sty'
  1378. % This file gives french guillemets (and not guillemots!)
  1379. % built with the Polish CMR fonts (default), WNCYR fonts, the LASY fonts
  1380. % or with the EC fonts.
  1381. % This is useful in conjunction with the ae package
  1382. % (this package loads the ae package in case it has not been loaded)
  1383. % and with or without the french(le) package.
  1384. %
  1385. % In order to get the guillemets, it is necessary to either type
  1386. % \guillemotleft and \guillemotright, or to use an 8 bit encoding
  1387. % (such as ISO-Latin1) which selects these two commands,
  1388. % or, if you use the french package (but not the frenchle package),
  1389. % to type << or >>.
  1390. %
  1391. % By default, you get the Polish CMR guillemets; if this package is loaded
  1392. % with the `cm' option, you get the LASY guillemets; with `ec,' you
  1393. % get the EC guillemets, and with `cyr,' you get the cyrillic guillemets.
  1394. %
  1395. % In verbatim mode, you always get the EC/TT guillemets.
  1396. %
  1397. % The default option is interesting in conjunction with PDF,
  1398. % because there is a Type 1 version of the Polish CMR fonts
  1399. % and these guillemets are very close in shape to the EC guillemets.
  1400. % There are no free Type 1 versions of the EC fonts.
  1401. %
  1402. % Support for Polish CMR guillemets was kindly provided by
  1403. % Rolf Niepraschk <niepraschk@ptb.de> in version 0.99 (2000/05/22).
  1404. % Bernd Raichle provided extensive simplifications to the code
  1405. % for version 1.00.
  1406. %
  1407. % This package is released under the LPPL.
  1408. %
  1409. % Changes:
  1410. % Date version
  1411. % 2001/04/12 1.01 the frenchle and french package are now distinguished.
  1412. %
  1413. \def\fileversion{1.01}
  1414. \def\filedate{2001/04/12}
  1415. \NeedsTeXFormat{LaTeX2e}
  1416. %\ProvidesPackage{aeguill}[2001/04/12 1.01 % % GM
  1417. %AE fonts with french guillemets (D. Roegel)] % GM - keeping the log file clean(er)
  1418. %\RequirePackage{ae} % GM May 2007 - already embedded here
  1419. \newcommand{\@ae@switch}[4]{#4}
  1420. \DeclareOption{ec}{\renewcommand\@ae@switch[4]{#1}}
  1421. \DeclareOption{cm}{\renewcommand\@ae@switch[4]{#2}}
  1422. \DeclareOption{cyr}{\renewcommand\@ae@switch[4]{#3}}
  1423. \DeclareOption{pl}{\renewcommand\@ae@switch[4]{#4}}
  1424. \ExecuteOptions{pl}
  1425. \ProcessOptions
  1426. %
  1427. % Load necessary packages
  1428. %
  1429. \@ae@switch{% ec
  1430. % do nothing
  1431. }{% cm
  1432. \RequirePackage{latexsym}% GM - May 2007 - already 'mentioned as required' up above
  1433. }{% cyr
  1434. \RequirePackage[OT2,T1]{fontenc}%
  1435. }{% pl
  1436. \RequirePackage[OT4,T1]{fontenc}%
  1437. }
  1438. % The following command will be compared to \frenchname,
  1439. % as defined in french.sty and frenchle.sty.
  1440. \def\aeguillfrenchdefault{french}%
  1441. \let\guill@verbatim@font\verbatim@font
  1442. \def\verbatim@font{\guill@verbatim@font\ecguills{cmtt}%
  1443. \let\guillemotleft\@oguills\let\guillemotright\@fguills}
  1444. \begingroup \catcode`\<=13 \catcode`\>=13
  1445. \def\x{\endgroup
  1446. \def\ae@lfguill{<<}%
  1447. \def\ae@rfguill{>>}%
  1448. }\x
  1449. \newcommand{\ecguills}[1]{%
  1450. \def\selectguillfont{\fontencoding{T1}\fontfamily{#1}\selectfont}%
  1451. \def\@oguills{{\selectguillfont\symbol{19}}}%
  1452. \def\@fguills{{\selectguillfont\symbol{20}}}%
  1453. }
  1454. \newcommand{\aeguills}{%
  1455. \ae@guills
  1456. % We redefine \guillemotleft and \guillemotright
  1457. % in order to catch them when they are used
  1458. % with \DeclareInputText (in latin1.def for instance)
  1459. % We use \auxWARNINGi as a safe indicator that french.sty is used.
  1460. \gdef\guillemotleft{\ifx\auxWARNINGi\undefined
  1461. \@oguills % neither french.sty nor frenchle.sty
  1462. \else
  1463. \ifx\aeguillfrenchdefault\frenchname
  1464. \ae@lfguill % french.sty
  1465. \else
  1466. \@oguills % frenchle.sty
  1467. \fi
  1468. \fi}%
  1469. \gdef\guillemotright{\ifx\auxWARNINGi\undefined
  1470. \@fguills % neither french.sty nor frenchle.sty
  1471. \else
  1472. \ifx\aeguillfrenchdefault\frenchname
  1473. \ae@rfguill % french.sty
  1474. \else
  1475. \@fguills % frenchle.sty
  1476. \fi
  1477. \fi}%
  1478. }
  1479. %
  1480. % Depending on the class option
  1481. % define the internal command \ae@guills
  1482. \@ae@switch{% ec
  1483. \newcommand{\ae@guills}{%
  1484. \ecguills{cmr}}%
  1485. }{% cm
  1486. \newcommand{\ae@guills}{%
  1487. \def\selectguillfont{\fontencoding{U}\fontfamily{lasy}%
  1488. \fontseries{m}\fontshape{n}\selectfont}%
  1489. \def\@oguills{\leavevmode\nobreak
  1490. \hbox{\selectguillfont (\kern-.20em(\kern.20em}\nobreak}%
  1491. \def\@fguills{\leavevmode\nobreak
  1492. \hbox{\selectguillfont \kern.20em)\kern-.2em)}%
  1493. \ifdim\fontdimen\@ne\font>\z@\/\fi}}%
  1494. }{% cyr
  1495. \newcommand{\ae@guills}{%
  1496. \def\selectguillfont{\fontencoding{OT2}\fontfamily{wncyr}\selectfont}%
  1497. \def\@oguills{{\selectguillfont\symbol{60}}}%
  1498. \def\@fguills{{\selectguillfont\symbol{62}}}}
  1499. }{% pl
  1500. \newcommand{\ae@guills}{%
  1501. \def\selectguillfont{\fontencoding{OT4}\fontfamily{cmr}\selectfont}%
  1502. \def\@oguills{{\selectguillfont\symbol{174}}}%
  1503. \def\@fguills{{\selectguillfont\symbol{175}}}}
  1504. }
  1505. \AtBeginDocument{%
  1506. \ifx\GOfrench\undefined
  1507. \aeguills
  1508. \else
  1509. \let\aeguill@GOfrench\GOfrench
  1510. \gdef\GOfrench{\aeguill@GOfrench \aeguills}%
  1511. \fi
  1512. }
  1513. \endinput
  1514. %