sensys-abstract.cls 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704
  1. \NeedsTeXFormat{LaTeX2e}[1995/12/01]
  2. \ProvidesClass{sensys-abstract}
  3. [2002/06/21 v1.4
  4. Document Class]
  5. %\ProvidesClass{sigplan-proc-varsize}
  6. % This file has a long and troubled history:
  7. % The original (LaTeX 2.09) document style for this purpose was by
  8. % Olin Shivers (1991).
  9. % Ken Traub and Kevin Theobald added some new features in 1993.
  10. % Back then, it was called acmconf.sty.
  11. % Mike Sperber converted it to an LaTeX2e document class called
  12. % acmconf.cls in 1994.
  13. % From 1999 on, G.K.M. Tobin and Gerry Murray took Traub's style,
  14. % and modified it extensively.
  15. % This version was called acm_proc_article-sp.cls, V2.01SP
  16. % In 2002, Mike Sperber <[email protected]>
  17. % wrote this file, intended to be compatible with
  18. % acm_proc_article-sp.cls V2.01SP, but with layout parameters
  19. % matching ACM's guidelines at
  20. % http://www.acm.org/sig_volunteer_info/conference_manual/6-5PROC.HTM
  21. % It contains code from all previous versions, but is much shortened
  22. % to avoid redundancies with the standard LaTeX2e styles.
  23. % Here are the main changes to acm_proc_article-sp.cls, as far as the
  24. % interface is concerned:
  25. % It doesn't load any of the utility packages, specifically, it
  26. % doesn't load epsfig, amssymb, amsmath, and amsfont.
  27. % It depends on David Carlisle's pslatex package, found on any CTAN
  28. % host, say at
  29. % ftp://ftp.dante.de/tex-archive/macros/latex/contrib/supported/pslatex/
  30. % There's once again a preprint document-class option. (Just like in
  31. % Olin's original style file.) Unlike Olin's style, it has no
  32. % influence whether the \toappear information is printed. It only
  33. % switches off explicitly doing \pagestyle{empty}, allowing you to
  34. % have page numbers, for example.
  35. % There's also a nocopyrightspace document-class option which prevents
  36. % the reservation of space at the bottom left of the title page for
  37. % the copyright notice.
  38. % It conforms to LaTeX2e's NFSS2, so there aren't any silly
  39. % font-changing commands specific to section headers, like \secit{}
  40. % etc.
  41. %
  42. % hacked 31-Mar-05 by [email protected] to 10pt-ness.
  43. % (renamed sigplan-proc-varsize.cls)
  44. % original from http://www.cs.indiana.edu/icfp04/sigplan-proc.cls
  45. % options:
  46. % 9pt or 10pt
  47. % indentedparagraphs or noindentedparagraphs
  48. %
  49. % hacked 18-Aug-07 by [email protected] to reduce space for copyright
  50. % notice and to remove the word ``copyright'' on the front page for
  51. % ACM SenSys poster and demo abstracts for which copyright
  52. % is retained by the author. Renamed to sensys-abstract.cls
  53. \DeclareOption{a5paper}
  54. {\ClassError{proc}{Option `a5paper' not supported}{}}
  55. \DeclareOption{b5paper}
  56. {\ClassError{proc}{Option `b5paper' not supported}{}}
  57. % johnh
  58. %\DeclareOption{9pt}
  59. % {\ClassError{proc}{Option `9pt' not supported}{}}
  60. %\DeclareOption{10pt}
  61. % {\ClassError{proc}{Option `10pt' not supported}{}}
  62. \newif\ifissizeixpt \issizeixpttrue % default
  63. \newif\ifissizexpt \issizexptfalse
  64. \DeclareOption{9pt}{\issizeixpttrue \issizexptfalse }
  65. \DeclareOption{10pt}{\issizexpttrue \issizeixptfalse }
  66. \newif\ifindentedparagraphs \indentedparagraphstrue
  67. \DeclareOption{indentedparagraphs}{\indentedparagraphstrue }
  68. \DeclareOption{noindentedparagraphs}{\indentedparagraphsfalse }
  69. \DeclareOption{12pt}
  70. {\ClassError{proc}{Option `12pt' not supported}{}}
  71. \DeclareOption{onecolumn}%
  72. {\ClassError{proc}{Option `onecolumn' not supported}{}}
  73. \DeclareOption{titlepage}%
  74. {\ClassError{proc}{Option `titlepage' not supported}{}}
  75. \newif\ifpreprint
  76. \preprintfalse
  77. \DeclareOption{preprint}{\preprinttrue}
  78. \newif\ifnocopyrightspace
  79. \nocopyrightspacefalse
  80. \DeclareOption{nocopyrightspace}{\nocopyrightspacetrue}
  81. \PassOptionsToClass{twocolumn}{article}
  82. \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
  83. \ProcessOptions
  84. \LoadClass{article}
  85. \def\tableofcontents{\@latexerr{\tableofcontents: Tables of contents are not
  86. allowed in the `sigplan-proc-varsize' document style.}\@eha}
  87. \RequirePackage{pslatex}
  88. % Page parameters
  89. % ===============
  90. \setlength{\marginparwidth}{0pt}
  91. \setlength{\marginparsep}{11pt}
  92. \setlength{\marginparpush}{5pt}
  93. \setlength{\topmargin}{0pt}
  94. \addtolength{\topmargin}{-\headsep}
  95. \addtolength{\topmargin}{-\headheight}
  96. \setlength{\textheight}{9in}
  97. \setlength{\textwidth}{7in}
  98. \setlength{\columnsep}{.33in}
  99. \setlength{\hoffset}{0pt}
  100. % 1 inch gets added by LaTeX
  101. \setlength{\evensidemargin}{-0.25in}
  102. \setlength{\oddsidemargin}{-0.25in}
  103. % Utility macro from original Sheridan class
  104. \newcommand{\balancecolumns}{%
  105. \vfill\eject
  106. \global\@colht=\textheight
  107. \global\ht\@cclv=\textheight}
  108. % johnh hack for use indented paragraphs rather than blank lines
  109. \ifindentedparagraphs
  110. % xxx: bug: this doesn't correctly do \noindent at the beginning
  111. % of \section (etc.). It's not obvious how article.cls does that! -johnh
  112. \setlength{\parskip}{0pt plus 1pt}
  113. \setlength{\parindent}{12pt}
  114. \else
  115. \setlength{\parskip}{10pt}
  116. \setlength{\parindent}{0pt}
  117. \fi
  118. \setlength{\topsep}{-0.5ex}
  119. \setlength{\parsep}{1ex}
  120. \setlength{\itemsep}{0pt}
  121. \setlength{\footnotesep}{5.6pt}
  122. \setlength{\skip\footins}{8.1pt plus 4pt minus 2pt}
  123. % Page Style
  124. % ==========
  125. \ifpreprint
  126. \if@twoside
  127. \def\ps@headings{
  128. \def\@oddfoot{}
  129. \def\@evenfoot{}
  130. \def\@evenhead{\textnormal{\thepage}\hfil \textnormal{\textsl{\leftmark}}}
  131. \def\@oddhead{\hbox{}\textnormal{\textsl{\rightmark}}
  132. \hfil
  133. \textnormal\textrm{\thepage}}
  134. \def\sectionmark##1{\markboth {\uppercase{\ifnum\c@secnumdepth>\z@
  135. \thesection \hskip 1em\relax \fi ##1}}{}}
  136. \def\subsectionmark##1
  137. {\markright {\ifnum \c@secnumdepth >\@ne \thesubsection
  138. \hskip 1em\relax \fi ##1}}}
  139. \else
  140. \def\ps@headings{
  141. \def\@oddfoot{}
  142. \def\@evenfoot{}
  143. \def\@oddhead{\hbox{}\textnormal{\textsl{\rightmark}}
  144. \hfil
  145. \textnormal{\textrm{\thepage}}}
  146. \def\sectionmark##1{\markright{\uppercase{\ifnum \c@secnumdepth >\z@
  147. \thesection\hskip 1em\relax \fi ##1}}}}
  148. \fi
  149. \def\ps@myheadings{\def\@oddhead{\hbox{}\textnormal{\textsl{\rightmark}}
  150. \hfil
  151. \textnormal{\textrm{\thepage}}}%
  152. \def \@evenhead{\textnormal{\textrm{\thepage}}
  153. \hfil
  154. \textnormal{\textsl{\leftmark}}\hbox{}}%
  155. \def\@oddfoot{}%
  156. \def\@evenfoot{}%
  157. \def\sectionmark##1{}%
  158. \def\subsectionmark##1{}}
  159. \else % preprint off -- all \pagestyle commands ==> \pagestyle{empty}.
  160. \let\ps@plain\ps@empty
  161. \let\ps@headings\ps@empty
  162. \let\ps@myheadings\ps@empty
  163. \ps@empty
  164. \fi
  165. % Text Body
  166. % =========
  167. % We need to redefine those because the LaTeX versions
  168. % set the various \*sep's to fixed values.
  169. \def\@listi{\leftmargin\leftmargini}
  170. \let\@listI=\@listi
  171. \def\@listii {\leftmargin\leftmarginii
  172. \labelwidth\leftmarginii
  173. \advance\labelwidth-\labelsep}
  174. \def\@listiii{\leftmargin\leftmarginiii
  175. \labelwidth\leftmarginiii
  176. \advance\labelwidth-\labelsep}
  177. \def\@listiv {\leftmargin\leftmarginiv
  178. \labelwidth\leftmarginiv
  179. \advance\labelwidth-\labelsep}
  180. \def\@listv {\leftmargin\leftmarginv
  181. \labelwidth\leftmarginv
  182. \advance\labelwidth-\labelsep}
  183. \def\@listvi {\leftmargin\leftmarginvi
  184. \labelwidth\leftmarginvi
  185. \advance\labelwidth-\labelsep}
  186. % Fonts and Sizes
  187. % ===============
  188. \renewcommand{\normalsize}{%
  189. % johnh hack to 10pt
  190. \ifissizeixpt
  191. \@setfontsize\normalsize\@ixpt{10\p@}
  192. \else
  193. \ifissizexpt
  194. \@setfontsize\normalsize\@xpt{11\p@}
  195. \else
  196. \typeout{error, no point size specified}
  197. \fi
  198. \fi
  199. \abovedisplayskip 6\p@ \@plus2\p@ \@minus\p@
  200. \belowdisplayskip \abovedisplayskip
  201. \abovedisplayshortskip 6\p@ \@minus 3\p@
  202. \belowdisplayshortskip 6\p@ \@minus 3\p@
  203. }
  204. \renewcommand{\scriptsize}{\@setfontsize\scriptsize\@viipt{8\p@}}
  205. \renewcommand{\tiny}{\@setfontsize\tiny\@vpt{6\p@}}
  206. \renewcommand{\large}{\@setfontsize\large\@xiipt{14\p@}}
  207. \renewcommand{\Large}{\@setfontsize\Large\@xivpt{18\p@}}
  208. \renewcommand{\LARGE}{\@setfontsize\LARGE\@xviipt{20\p@}}
  209. \renewcommand{\huge}{\@setfontsize\huge\@xxpt{25\p@}}
  210. \renewcommand{\Huge}{\@setfontsize\Huge\@xxvpt{30\p@}}
  211. \def\small{\@setsize\small{9pt}\viiipt\@viiipt
  212. \abovedisplayskip 7.6pt plus 3pt minus 4pt%
  213. \belowdisplayskip \abovedisplayskip
  214. \abovedisplayshortskip \z@ plus2pt%
  215. \belowdisplayshortskip 3.6pt plus2pt minus 2pt}
  216. \def\footnotesize{\@setsize\footnotesize{10pt}\ixpt\@ixpt
  217. \abovedisplayskip 6.4pt plus 2pt minus 4pt%
  218. \belowdisplayskip \abovedisplayskip
  219. \abovedisplayshortskip \z@ plus 1pt%
  220. \belowdisplayshortskip 2.7pt plus 1pt minus 2pt}
  221. % Section Headers
  222. % ===============
  223. \setcounter{secnumdepth}{4}
  224. \renewcommand{\section}{\@startsection%
  225. {section}%
  226. {1}%
  227. {\z@}%
  228. {2\p@ \@plus 4\p@}%
  229. {1pt}%
  230. {\normalfont\fontsize{12\p@}{12\p@}\bfseries\selectfont}%
  231. }
  232. \renewcommand{\subsection}{\@startsection%
  233. {subsection}%
  234. {2}%
  235. {\z@}%
  236. {1\p@ \@plus 4\p@}%
  237. {0.1pt}%
  238. {\normalfont\fontsize{12\p@}{12\p@}\bfseries\selectfont}%
  239. }
  240. \renewcommand{\subsubsection}{\@startsection%
  241. {subsubsection}%
  242. {3}%
  243. {\z@}%
  244. {1\p@ \@plus 4\p@}%
  245. {0.1pt}%
  246. {\normalfont\fontsize{11\p@}{11\p@}\itshape\selectfont}%
  247. }
  248. \renewcommand{\paragraph}{\@startsection%
  249. {paragraph}%
  250. {4}%
  251. {\z@}%
  252. {1\p@ \@plus 4\p@}%
  253. {0.1pt}%
  254. {\normalfont\fontsize{11\p@}{11\p@}\itshape\selectfont}%
  255. }
  256. % Captions
  257. % ========
  258. \long\def\@makecaption#1#2{
  259. \setbox\@tempboxa\hbox{\textbf{#1. #2}}
  260. \ifdim \wd\@tempboxa >\hsize % IF longer than one line:
  261. \textbf{#1. #2}\par % THEN set as ordinary paragraph.
  262. \else % ELSE center.
  263. \hbox to\hsize{\hfil\box\@tempboxa\hfil}\par
  264. \fi}
  265. % Title Page
  266. % ==========
  267. \newcount\aucount
  268. \newcount\originalaucount
  269. \newdimen\auwidth
  270. \auwidth=\textwidth
  271. \newdimen\auskip
  272. \newcount\auskipcount
  273. \newdimen\auskip
  274. \global\auskip=1pc
  275. \newdimen\allauboxes
  276. \allauboxes=\auwidth
  277. \newtoks\addauthors
  278. \newcount\addauflag
  279. \global\addauflag=0 %Haven't shown additional authors yet
  280. \newtoks\subtitletext
  281. \gdef\subtitle#1{\subtitletext={#1}}
  282. \gdef\additionalauthors#1{\addauthors={#1}}
  283. \gdef\numberofauthors#1{\global\aucount=#1
  284. \ifnum\aucount>3\global\originalaucount=\aucount \global\aucount=3\fi
  285. \global\auskipcount=\aucount\global\advance\auskipcount by 1
  286. \global\multiply\auskipcount by 2
  287. \global\multiply\auskip by \auskipcount
  288. \global\advance\auwidth by -\auskip
  289. \global\divide\auwidth by \aucount}
  290. % \and was modified to count the number of authors. GKMT 12 Aug 1999
  291. \def\alignauthor{% % \begin{tabular}
  292. \end{tabular}%
  293. \begin{tabular}[t]{p{\auwidth}}\centering}%
  294. \newcommand{\email}[1]{{\vspace{4pt}\sffamily\fontsize{12\p@}{12\p@}\selectfont #1}}
  295. \newcommand{\affaddr}{\normalfont\sffamily\fontsize{10\p@}{10\p@}\selectfont}
  296. \def\addauthorsection{\ifnum\originalaucount>3
  297. \section{Additional Authors}\the\addauthors
  298. \fi}
  299. \newtoks\titleboxnotes
  300. \newcount\titleboxnoteflag
  301. \def\maketitle{\par
  302. \begingroup
  303. \def\thefootnote{\fnsymbol{footnote}}
  304. \def\@makefnmark{\hbox
  305. to 0pt{$^{\@thefnmark}$\hss}}
  306. \twocolumn[\@maketitle]
  307. \@thanks
  308. \endgroup
  309. \setcounter{footnote}{0}
  310. \let\maketitle\relax
  311. \let\@maketitle\relax
  312. \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\gdef\@subtitle{}\let\thanks\relax
  313. \ifnocopyrightspace\else\@copyrightspace\fi
  314. }
  315. % make aubox hsize/number of authors up to 3, less gutter
  316. % then showbox gutter showbox gutter showbox -- GKMT Aug 99
  317. \newbox\@acmtitlebox
  318. \def\@maketitle{\newpage
  319. \null
  320. \setbox\@acmtitlebox\vbox{%
  321. \baselineskip 20pt
  322. \vskip 2em % Vertical space above title.
  323. \begin{center}
  324. {\normalfont\sffamily\bfseries\fontsize{18\p@}{18\p@}\selectfont
  325. \@title\par} % Title set in 18pt Helvetica (Arial) bold size.
  326. \vskip 1.5em % Vertical space after title.
  327. {\normalfont\sffamily\fontsize{14\p@}{14\p@}\selectfont
  328. \the\subtitletext\par}\vskip 1.25em%\fi
  329. { \normalfont\sffamily\fontsize{12\p@}{12\p@}\selectfont
  330. \lineskip .5em % tabular environment
  331. \begin{tabular}[t]{c}
  332. \@author
  333. \end{tabular}
  334. \par}
  335. \vskip 1.5em % Vertical space after author.
  336. \end{center}}
  337. \dimen0=\ht\@acmtitlebox
  338. \advance\dimen0 by -12.75pc\relax % Increased space for title box -- KBT
  339. \unvbox\@acmtitlebox
  340. \ifdim\dimen0<0.0pt\relax\vskip-\dimen0\fi}
  341. \long\def\@maketntext#1{\noindent #1}
  342. \long\def\@maketitlenotetext#1#2{\noindent
  343. \hbox to 1.8em{\hss$^{#1}$}#2}
  344. \newcount\titlenotecount
  345. \global\titlenotecount=0
  346. \newtoks\tntoks
  347. \newtoks\tntokstwo
  348. \newtoks\tntoksthree
  349. \newtoks\tntoksfour
  350. \newtoks\tntoksfive
  351. \def\titlenote{\@ifnextchar[\@xtitlenote{\stepcounter\@mpfn
  352. \global\advance\titlenotecount by 1
  353. \ifnum\titlenotecount=1
  354. \raisebox{9pt}{$\ast$}
  355. \fi
  356. \ifnum\titlenotecount=2
  357. \raisebox{9pt}{$\dagger$}
  358. \fi
  359. \ifnum\titlenotecount=3
  360. \raisebox{9pt}{$\ddagger$}
  361. \fi
  362. \ifnum\titlenotecount=4
  363. \raisebox{9pt}{$\S$}
  364. \fi
  365. \ifnum\titlenotecount=5
  366. \raisebox{9pt}{$\P$}
  367. \fi
  368. \@titlenotetext
  369. }}
  370. \long\def\@titlenotetext#1{\insert\footins{%
  371. \ifnum\titlenotecount=1\global\tntoks={#1}\fi
  372. \ifnum\titlenotecount=2\global\tntokstwo={#1}\fi
  373. \ifnum\titlenotecount=3\global\tntoksthree={#1}\fi
  374. \ifnum\titlenotecount=4\global\tntoksfour={#1}\fi
  375. \ifnum\titlenotecount=5\global\tntoksfive={#1}\fi
  376. \reset@font\footnotesize
  377. \interlinepenalty\interfootnotelinepenalty
  378. \splittopskip\footnotesep
  379. \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
  380. \hsize\columnwidth \@parboxrestore
  381. \protected@edef\@currentlabel{%
  382. }%
  383. \color@begingroup
  384. \color@endgroup}}
  385. \renewenvironment{abstract}{
  386. \ifnum\titlenotecount>0 % was =1
  387. \insert\footins{%
  388. \reset@font\footnotesize
  389. \interlinepenalty\interfootnotelinepenalty
  390. \splittopskip\footnotesep
  391. \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
  392. \hsize\columnwidth \@parboxrestore
  393. \protected@edef\@currentlabel{%
  394. }%
  395. \color@begingroup
  396. \ifnum\titlenotecount=1
  397. \@maketntext{%
  398. \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\@finalstrut\strutbox}%
  399. \fi
  400. \ifnum\titlenotecount=2
  401. \@maketntext{%
  402. \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}%
  403. \@maketntext{%
  404. \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\@finalstrut\strutbox}%
  405. \fi
  406. \ifnum\titlenotecount=3
  407. \@maketntext{%
  408. \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}%
  409. \@maketntext{%
  410. \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\par\@finalstrut\strutbox}%
  411. \@maketntext{%
  412. \raisebox{4pt}{$\ddagger$}\rule\z@\footnotesep\ignorespaces\the\tntoksthree\@finalstrut\strutbox}%
  413. \fi
  414. \ifnum\titlenotecount=4
  415. \@maketntext{%
  416. \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}%
  417. \@maketntext{%
  418. \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\par\@finalstrut\strutbox}%
  419. \@maketntext{%
  420. \raisebox{4pt}{$\ddagger$}\rule\z@\footnotesep\ignorespaces\the\tntoksthree\par\@finalstrut\strutbox}%
  421. \@maketntext{%
  422. \raisebox{4pt}{$\S$}\rule\z@\footnotesep\ignorespaces\the\tntoksfour\@finalstrut\strutbox}%
  423. \fi
  424. \ifnum\titlenotecount=5
  425. \@maketntext{%
  426. \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}%
  427. \@maketntext{%
  428. \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\par\@finalstrut\strutbox}%
  429. \@maketntext{%
  430. \raisebox{4pt}{$\ddagger$}\rule\z@\footnotesep\ignorespaces\the\tntoksthree\par\@finalstrut\strutbox}%
  431. \@maketntext{%
  432. \raisebox{4pt}{$\S$}\rule\z@\footnotesep\ignorespaces\the\tntoksfour\par\@finalstrut\strutbox}%
  433. \@maketntext{%
  434. \raisebox{4pt}{$\P$}\rule\z@\footnotesep\ignorespaces\the\tntoksfive\@finalstrut\strutbox}%
  435. \fi
  436. \color@endgroup}
  437. \fi
  438. \setcounter{footnote}{0}
  439. \section*{Abstract}\normalsize
  440. }{}
  441. \newcommand{\keywords}{\section*{Keywords}}
  442. \newcommand{\terms}{\section*{General Terms}}
  443. \newcount\catcount
  444. \global\catcount=1
  445. \newcommand{\category}[3]{%
  446. \ifnum\catcount=1
  447. \section*{Categories and Subject Descriptors}
  448. \advance\catcount by 1\else{\unskip; }\fi
  449. \@ifnextchar [{\@category{#1}{#2}{#3}}{\@category{#1}{#2}{#3}[]}%
  450. }
  451. \def\@category#1#2#3[#4]{%
  452. \begingroup
  453. \let\and\relax
  454. #1 [\textbf{#2}]%
  455. \if!#4!%
  456. \if!#3!\else : #3\fi
  457. \else
  458. :\space
  459. \if!#3!\else #3\kern\z@---\hskip\z@\fi
  460. \textit{#4}%
  461. \fi
  462. \endgroup
  463. }
  464. % Copyright space on title page
  465. % =============================
  466. %%% This section (written by KBT) handles the 1'' box in the lower left
  467. %%% corner of the left column of the first page by creating a picture,
  468. %%% and inserting the predefined string at the bottom (with a negative
  469. %%% displacement to offset the space allocated for a non-existent
  470. %%% caption).
  471. %%%
  472. \newtoks\copyrightnotice
  473. \def\ftype@copyrightbox{8}
  474. \def\@copyrightspace{
  475. \@float{copyrightbox}[b]
  476. \begin{center}
  477. \setlength{\unitlength}{1in}
  478. \begin{picture}(3.33,0.25) % Space for copyright notice
  479. \put(0,0){\normalfont\fontsize{8\p@}{8\p@}\selectfont%
  480. {\@toappear}}
  481. \end{picture}
  482. \end{center}
  483. \end@float}
  484. \def\@toappear{} % Default setting blank - commands below change this.
  485. \long\def\toappear#1{\def\@toappear{\parbox[b]{20pc}{\baselineskip 9pt#1}}}
  486. \def\toappearbox#1{\def\@toappear{\raisebox{5pt}{\framebox[20pc]{\parbox[b]{19pc}{#1}}}}}
  487. \def\conferenceinfo#1#2{\gdef\@conferencename{#1}\gdef\@conferenceinfo{#2}}
  488. \def\@conferencename{}
  489. \def\@conferenceinfo{}
  490. \def\CopyrightYear#1{\gdef\@CopyrightYear{#1}}
  491. \def\@CopyrightYear{}
  492. \def\@yourmail{}
  493. \def\crdata#1{\gdef\@crdata{#1}}
  494. \def\@crdata{}
  495. \def\permission#1{\gdef\@permission{#1}}
  496. \def\@permission{Permission to make digital or hard copies of all or
  497. part of this work for personal or classroom use is granted without
  498. fee provided that copies are not made or distributed for profit or
  499. commercial advantage and that copies bear this notice and the full
  500. citation on the first page. To copy otherwise, to republish, to
  501. post on servers or to redistribute to lists, requires prior specific
  502. permission and/or a fee.}
  503. \def\crdata#1{\gdef\@crdata{#1}}
  504. \def\@crdata{}
  505. \def\@copyrightinfo{%
  506. \ifx\@CopyrightYear\@empty
  507. \else
  508. ACM \@crdata\
  509. \fi}
  510. \toappear{\scriptsize\@permission\par
  511. \textsl{\@conferencename} \@conferenceinfo\par\@copyrightinfo}
  512. % Theorems
  513. % ========
  514. \def\@begintheorem#1#2{%
  515. \trivlist
  516. \item[\hskip\labelsep\textsc{#1\hskip 5\p@\relax#2.}]
  517. \itshape\selectfont
  518. }
  519. \def\@opargbegintheorem#1#2#3{%
  520. \trivlist
  521. \item[%
  522. \hskip\labelsep
  523. \textsc{#1\ #2\ % This mod by Gerry to enumerate corollaries
  524. \setbox\@tempboxa\hbox{(#3)} % and bracket the 'corollary title'
  525. \ifdim \wd\@tempboxa>\z@ % and retain the correct numbering of e.g. theorems
  526. \hskip 5\p@\relax % if they occur 'around' said corollaries.
  527. \box\@tempboxa % Gerry - Nov. 1999.
  528. \fi.}%
  529. ]
  530. \itshape\selectfont
  531. }
  532. \newif\if@qeded
  533. \global\@qededfalse
  534. \def\proof{%
  535. \global\@qededfalse
  536. \@ifnextchar[{\@xproof}{\@proof}%
  537. }
  538. \def\endproof{%
  539. \if@qeded\else\qed\fi
  540. \endtrivlist
  541. }
  542. \def\@proof{%
  543. \trivlist
  544. \item[\hskip\labelsep\textsc{Proof.}]
  545. \ignorespaces
  546. }
  547. \def\@xproof[#1]{%
  548. \trivlist
  549. \item[\hskip\labelsep\textsc{Proof #1.}]%
  550. \ignorespaces
  551. }
  552. \def\qed{%
  553. \unskip
  554. \kern 10\p@
  555. \begingroup
  556. \unitlength\p@
  557. \linethickness{.4\p@}%
  558. \framebox(6,6){}%
  559. \endgroup
  560. \global\@qededtrue
  561. }
  562. \def\newdef#1#2{%
  563. \expandafter\@ifdefinable\csname #1\endcsname
  564. {\@definecounter{#1}%
  565. \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}%
  566. \global\@namedef{#1}{\@defthm{#1}{#2}}%
  567. \global\@namedef{end#1}{\@endtheorem}%
  568. }%
  569. }
  570. \def\@defthm#1#2{%
  571. \refstepcounter{#1}%
  572. \@ifnextchar[{\@ydefthm{#1}{#2}}{\@xdefthm{#1}{#2}}%
  573. }
  574. \def\@xdefthm#1#2{%
  575. \@begindef{#2}{\csname the#1\endcsname}%
  576. \ignorespaces
  577. }
  578. \def\@ydefthm#1#2[#3]{%
  579. \trivlist
  580. \item[%
  581. \hskip\labelsep
  582. \itshape{#2%
  583. \savebox\@tempboxa{#3}%
  584. \ifdim \wd\@tempboxa>\z@
  585. \ \box\@tempboxa
  586. \fi.%
  587. }]%
  588. \ignorespaces
  589. }
  590. \def\@begindef#1#2{%
  591. \trivlist
  592. \item[\hskip\labelsep\textit{#1\ #2.}]%
  593. }
  594. \def\theequation{\arabic{equation}}
  595. % Bibliography
  596. % ============
  597. % This is identical to the code in article.cls except for the first
  598. % line and \section instead of \section*.
  599. \renewenvironment{thebibliography}[1]
  600. {\ifnum\addauflag=0\addauthorsection\global\addauflag=1\fi
  601. \section{\refname
  602. \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}}%
  603. \list{\@biblabel{\@arabic\c@enumiv}}%
  604. {\settowidth\labelwidth{\@biblabel{#1}}%
  605. \leftmargin\labelwidth
  606. \advance\leftmargin\labelsep
  607. \@openbib@code
  608. \usecounter{enumiv}%
  609. \let\p@enumiv\@empty
  610. \renewcommand\theenumiv{\@arabic\c@enumiv}}%
  611. \sloppy
  612. \clubpenalty4000
  613. \@clubpenalty \clubpenalty
  614. \widowpenalty4000%
  615. \sfcode`\.\@m}
  616. {\def\@noitemerr
  617. {\@latex@warning{Empty `thebibliography' environment}}%
  618. \endlist}
  619. \endinput
  620. %%
  621. %% End of file `sigplan-proc-varsize.cls'.