├── .gitignore ├── ACM-template.org ├── README.org ├── acm_proc_article-sp.cls ├── flies.eps ├── fly.eps ├── sigproc-sp-org-new.org ├── sigproc-sp.tex └── sigproc.bib /.gitignore: -------------------------------------------------------------------------------- 1 | *.aux 2 | *.bbl 3 | *.blg 4 | *.log 5 | *.out 6 | 20*rev*.pdf 7 | *.synctex.gz 8 | auto/* 9 | main.pdf 10 | LKFS 11 | hawaii-colonization 12 | -------------------------------------------------------------------------------- /ACM-template.org: -------------------------------------------------------------------------------- 1 | #+TITLE: 2 | #+LANGUAGE: en 3 | #+OPTIONS: H:5 author:nil email:nil creator:nil timestamp:nil skip:nil toc:nil 4 | #+EXPORT_SELECT_TAGS: export 5 | #+EXPORT_EXCLUDE_TAGS: noexport 6 | #+LaTeX_CLASS: acm-proc-article-sp 7 | * This headline needed for old exporter, delete just the headline with new exporter 8 | 9 | # Replace the title and subtitle with your own 10 | #+BEGIN_LaTeX 11 | \title{A Sample {\ttlit ACM} SIG Proceedings Paper in Org-mode Format\titlenote{(Does NOT produce the permission block, copyright information nor page numbering). For use with ACM\_PROC\_ARTICLE-SP.CLS. Supported by ACM.}} 12 | \subtitle{[Extended Abstract]\titlenote{A full version of this paper is available as 13 | \textit{Author's Guide to Preparing ACM SIG Proceedings Using 14 | \LaTeX$2_\epsilon$\ and BibTeX} at 15 | \texttt{www.acm.org/eaddress.htm}}} 16 | #+END_LaTeX 17 | 18 | # Note that add-author-record isn't fully correct. It formats a comma 19 | # separated list, when it should return a list with the final element 20 | # separated by "and". 21 | 22 | #+name: author-list 23 | #+header: :var authors=authorlist 24 | #+header: :var add-authors=additional-authors 25 | #+header: :results latex 26 | #+header: :exports results 27 | #+BEGIN_SRC emacs-lisp 28 | (defun author-record (r) 29 | (if (> (length (first r)) 0) 30 | (format "\\alignauthor\n%s\\titlenote{%s}\\\\ 31 | \\affaddr{%s}\\\\ 32 | \\affaddr{%s}\\\\ 33 | \\affaddr{%s}\\\\ 34 | \\email{%s}" (first r) (second r) (third r) (fourth r) (fifth r) 35 | (sixth r)) 36 | "\\and") 37 | ) 38 | 39 | (defun non-empty (list) 40 | (let ( (i 0)) 41 | (mapcar #'(lambda (elem) 42 | (if (> (length (first elem)) 0) 43 | (incf i))) 44 | list) 45 | i) 46 | ) 47 | 48 | (defun add-author-record (r) 49 | (format "%s (%s, email: 50 | {\\texttt{%s}})" 51 | (first r) (second r) (third r))) 52 | 53 | (let ( (i (+ (non-empty (cdr (cdr authors))) (- (length add-authors) 2) )) 54 | (a (mapcar (lambda (row) 55 | (author-record row)) 56 | (cdr (cdr authors)))) 57 | (b (mapcar (lambda (row) 58 | (add-author-record row)) 59 | (cdr (cdr add-authors)))) 60 | ) 61 | (concat 62 | (format "\\numberofauthors{%s}\n\\author{\n" i) 63 | (mapconcat 'identity a "\n") 64 | "}" 65 | (if (> (length add-authors) 0) 66 | (concat "\n\\additionalauthors{Additional authors: " 67 | (mapconcat 'identity b ", ") 68 | ".}") 69 | ()))) 70 | 71 | #+END_SRC 72 | 73 | \maketitle 74 | 75 | #+BEGIN_abstract 76 | #+END_abstract 77 | 78 | #+name: ACM-categories 79 | #+header: :var c=categories 80 | #+header: :results latex 81 | #+header: :exports results 82 | #+BEGIN_SRC emacs-lisp 83 | (defun category-record (r) 84 | (format "\\category{%s}{%s}{%s}[%s]" 85 | (first r) (second r) (third r) (fourth r))) 86 | (let ( (i (mapcar (lambda (row) 87 | (category-record row)) 88 | (cdr (cdr c))))) 89 | (mapconcat 'identity i "\n") 90 | ) 91 | #+END_SRC 92 | 93 | 94 | #+CALL: list-to-cs-string(in-command="terms", in-list=term-list) :results latex :exports results 95 | 96 | #+CALL: list-to-cs-string(in-command="keywords", in-list=keyword-list) :results latex :exports results 97 | 98 | * First real headline, replace with your first headline 99 | 100 | # Additional headlines and content here 101 | 102 | \bibliographystyle{abbrv} 103 | # change bibliography name to suit 104 | \bibliography{sigproc} 105 | 106 | \balancecolumns 107 | 108 | * Instructions for use :noexport: 109 | 110 | This file provides a template for producing an ACM-SIG proceedings 111 | article from an Org-mode file. Many of the LaTeX commands defined by 112 | the ACM-SIG class are generated on export by emacs-lisp source code 113 | blocks that use content read from Org-mode tables. Authors, 114 | additional authors, terms, categories, and keywords are all handled 115 | this way. Citations and italicized words in section heads are both 116 | handled with new Org-mode link types. 117 | 118 | Detailed instructions on how to use this template follow. 119 | - Copy this file, preferably to an empty directory, and rename the 120 | file appropriately. 121 | - Ensure that the file =acm-proc-article-sp.cls= is either in the 122 | same directory as the copied and renamed file, or that it is 123 | installed somewhere your LaTeX installation can find. 124 | - Tangle the initialization files, by entering C-c C-v t with the 125 | cursor anywhere in this buffer. This will tangle two 126 | files, =init-old.el= and =init-new.el=, one for the old exporter 127 | and one for the new exporter. 128 | - Generate the [[Configure%20makefile][Makefile]], by placing the cursor in the source code 129 | block and entering C-c C-c. Depending on the values assigned to 130 | its variables, this code will generate a Makefile suited for the 131 | old exporter or the new exporter. 132 | - Add author, additional author, keyword, term, and categories 133 | information in the appropriate Org-mode tables. 134 | - Write an abstract in the empty =#+BEGIN_abstract 135 | ... #+END_abstract= block above. 136 | - Write the ACM-SIG paper as an Org-mode file. First level 137 | headlines will be section heads, second level subsection heads, etc. 138 | - In a terminal, change to the project directory and run =make=. 139 | This will launch a new instance of emacs, initialize Org-mode, 140 | export this file and create a pdf file in ACM-SIG format. 141 | 142 | * Setup :noexport: 143 | ** Initialization files 144 | *** Initialization file for new exporter 145 | 146 | 147 | This source code block tangles the initialization file that configures 148 | the old Org-mode LaTeX exporter. 149 | 150 | You might need to change this for your system: 151 | - Check =load-path= settings 152 | - Make sure the languages used in your source code blocks have been 153 | loaded with =org-babel-load-languages= 154 | 155 | An org-entity, =\space=, has been added, which can be used after a 156 | period that doesn't end a sentence, e.g., "Dr.\space Martin Luther King" 157 | 158 | A link type, =cite=, is defined for citations. See the text for how 159 | to insert a citation. Note that AucTeX and ebib can be configured to 160 | insert the citation correctly. 161 | 162 | A link type, =acm=, is defined to insert ACM-specific commands used to 163 | italicize words in section headings. See the text for examples of its 164 | use. 165 | 166 | #+name: initialize-new-exporter 167 | #+header: :tangle init-new.el 168 | #+header: :results silent 169 | #+header: :exports none 170 | #+begin_src emacs-lisp 171 | (add-to-list 'load-path "~/.emacs.d/src/org/contrib/lisp") ;; <- adjust 172 | (add-to-list 'load-path "~/.emacs.d/src/org/lisp") ;; <- adjust 173 | (add-to-list 'load-path "~/.emacs.d/src/org") ;; <- adjust 174 | 175 | (require 'org-install) 176 | (require 'org-export) 177 | (require 'org-e-latex) 178 | 179 | ;; this line only required until the upcomming Org-mode/Emacs24 sync 180 | (load "~/.emacs.d/src/org/lisp/org-exp-blocks.el") 181 | 182 | 183 | ;; Configure Babel to support all languages included in the manuscript 184 | (org-babel-do-load-languages 185 | 'org-babel-load-languages 186 | '((emacs-lisp . t) 187 | (org . t))) 188 | (setq org-confirm-babel-evaluate nil) 189 | (setq toggle-debug-on-error t) 190 | 191 | ;; Configure Org-mode 192 | (setq org-export-latex-hyperref-format "\\ref{%s}") 193 | (setq org-entities-user nil) 194 | (add-to-list 'org-entities-user '("space" "\\ " nil " " " " " " " ")) 195 | (setq org-e-latex-pdf-process '("texi2dvi --clean --verbose --batch %f")) 196 | (setq org-export-latex-packages-alist nil) 197 | (add-to-list 'org-export-latex-packages-alist '("" "hyperref")) 198 | (add-to-list 'org-export-latex-packages-alist '("" "graphicx")) 199 | 200 | (require 'org-special-blocks) 201 | 202 | (org-add-link-type 203 | "cite" nil 204 | (lambda (path desc format) 205 | (cond 206 | ((eq format 'latex) 207 | (format "\\cite{%s}" path))))) 208 | 209 | (org-add-link-type 210 | "acm" nil 211 | (lambda (path desc format) 212 | (cond 213 | ((eq format 'latex) 214 | (format "{\\%s{%s}}" path desc))))) 215 | 216 | (add-to-list 'org-e-latex-classes 217 | '("acm-proc-article-sp" 218 | "\\documentclass{acm_proc_article-sp} 219 | [NO-DEFAULT-PACKAGES] 220 | [PACKAGES] 221 | [EXTRA]" 222 | ("\\section{%s}" . "\\section*{%s}") 223 | ("\\subsection{%s}" . "\\subsection*{%s}") 224 | ("\\subsubsection{%s}" . "\\subsubsection*{%s}") 225 | ("\\paragraph{%s}" . "\\paragraph*{%s}") 226 | ("\\subparagraph{%s}" . "\\subparagraph*{%s}"))) 227 | #+end_src 228 | 229 | *** Initialization file for old exporter 230 | 231 | 232 | This source code block tangles the initialization file that configures 233 | the old Org-mode LaTeX exporter. 234 | 235 | You might need to change this for your system: 236 | - Check =load-path= settings 237 | - Make sure the languages used in your source code blocks have been 238 | loaded with =org-babel-load-languages= 239 | 240 | An org-entity, =\space=, has been added, which can be used after a 241 | period that doesn't end a sentence, e.g., "Dr.\space Martin Luther King" 242 | 243 | A link type, =cite=, is defined for citations. See the text for how 244 | to insert a citation. Note that AucTeX and ebib can be configured to 245 | insert the citation correctly. 246 | 247 | A link type, =acm=, is defined to insert ACM-specific commands used to 248 | italicize words in section headings. See the text for examples of its 249 | use. 250 | 251 | #+name: initialize-old-exporter 252 | #+header: :tangle init-old.el 253 | #+header: :results silent 254 | #+header: :exports none 255 | #+begin_src emacs-lisp 256 | (add-to-list 'load-path "~/.emacs.d/src/org/lisp") ;; <- adjust 257 | (add-to-list 'load-path "~/.emacs.d/src/org") ;; <- adjust 258 | 259 | (require 'org-install) 260 | (require 'org-latex) 261 | 262 | ;; this line only required until the upcomming Org-mode/Emacs24 sync 263 | (load "~/.emacs.d/src/org/lisp/org-exp-blocks.el") 264 | 265 | 266 | ;; Configure Babel to support all languages included in the manuscript 267 | (org-babel-do-load-languages 268 | 'org-babel-load-languages 269 | '((emacs-lisp . t) 270 | (org . t))) 271 | (setq org-confirm-babel-evaluate nil) 272 | 273 | ;; Configure Org-mode 274 | (setq org-export-latex-hyperref-format "\\ref{%s}") 275 | (setq org-entities-user '(("space" "\\ " nil " " " " " " " "))) 276 | (setq org-latex-to-pdf-process '("texi2dvi --clean --verbose --batch %f")) 277 | 278 | (require 'org-special-blocks) 279 | (defun org-export-latex-no-toc (depth) 280 | (when depth 281 | (format "%% Org-mode is exporting headings to %s levels.\n" 282 | depth))) 283 | (setq org-export-latex-format-toc-function 'org-export-latex-no-toc) 284 | (setq org-export-pdf-remove-logfiles nil) 285 | 286 | (org-add-link-type 287 | "cite" nil 288 | (lambda (path desc format) 289 | (cond 290 | ((eq format 'latex) 291 | (format "\\cite{%s}" path))))) 292 | 293 | (org-add-link-type 294 | "acm" nil 295 | (lambda (path desc format) 296 | (cond 297 | ((eq format 'latex) 298 | (format "{\\%s{%s}}" path desc))))) 299 | 300 | (add-to-list 'org-export-latex-classes 301 | '("acm-proc-article-sp" 302 | "\\documentclass{acm_proc_article-sp} 303 | [NO-DEFAULT-PACKAGES] 304 | [EXTRA] 305 | \\usepackage{graphicx} 306 | \\usepackage{hyperref}" 307 | ("\\section{%s}" . "\\section*{%s}") 308 | ("\\subsection{%s}" . "\\subsection*{%s}") 309 | ("\\subsubsection{%s}" . "\\subsubsection*{%s}") 310 | ("\\paragraph{%s}" . "\\paragraph*{%s}") 311 | ("\\subparagraph{%s}" . "\\subparagraph*{%s}"))) 312 | #+end_src 313 | 314 | ** Configure Makefile 315 | 316 | Configure the Makefile by supplying the correct string for your emacs 317 | application and the name of the initialization file. Currently, this 318 | is setup to use the old exporter. It will need to be modified to run 319 | the new exporter. 320 | 321 | Once this is done, evaluate the code block with C-c C-c to create a 322 | Makefile. 323 | 324 | #+name: configure-makefile 325 | #+header: :file Makefile 326 | #+header: :var emacs="/Applications/Emacs-23-4.app/Contents/MacOS/Emacs" 327 | #+header: :var init-file="init-new.el" 328 | #+header: :var exporter="new" 329 | #+header: :eval noexport 330 | #+BEGIN_SRC emacs-lisp 331 | (let ((f (file-name-sans-extension (file-name-nondirectory 332 | (buffer-file-name)))) 333 | (g (if (string= exporter "old") "org-export-as-latex" "org-e-latex-export-to-latex"))) 334 | (format "CC=gcc 335 | EMACS=%s 336 | BATCH_EMACS=$(EMACS) --batch -Q -l %s %s 337 | 338 | all: %s.pdf 339 | 340 | %s.tex: %s.org\n\t$(BATCH_EMACS) -f %s 341 | 342 | %s.pdf: %s.tex\n\trm -f %s.aux\n\tif pdflatex %s.tex (length the-list) 0) 417 | (if (> (length return-string) 0) 418 | (setq return-string (concat return-string ", " (car (car the-list)))) 419 | (setq return-string (car (car the-list))) ;; else 420 | ) 421 | (setq the-list (cdr the-list)) 422 | ) ;; end of "while" 423 | return-string 424 | ) ;; end of "let" 425 | ) 426 | (let ( 427 | (a (cdr (cdr in-list))) 428 | ) 429 | (concat (format "\\%s{" in-command) (list-to-comma a) "}") 430 | ) 431 | #+END_SRC 432 | 433 | #+RESULTS: list-to-cs-string 434 | #+BEGIN_LaTeX 435 | \terms{Theory} 436 | #+END_LaTeX 437 | 438 | -------------------------------------------------------------------------------- /README.org: -------------------------------------------------------------------------------- 1 | * Migrating ACM LaTeX template to Org-mode 2 | 3 | ** Purpose 4 | 5 | Whenever someone wants to hand in a white paper for a 6 | conference which requires using ACM LaTeX template, I want to use an 7 | Org-mode file instead. With the Org-mode LaTeX exporter (the current 8 | one and/or the new one) is should be possible to generate compatible 9 | TeX and PDF output. 10 | 11 | ** Template Source 12 | 13 | http://www.acm.org/sigs/publications/proceedings-templates 14 | 15 | ** Additional requirements 16 | 17 | The template should be as much self-containing as possible. So no 18 | special settings required in ~$HOME/.emacs~ 19 | 20 | The file =ACM-template.org= contains everything needed to produce the 21 | ACM paper from an Org-mode file. It tangles initialization files for 22 | the new exporter and the old exporter. It writes a Makefile that: 23 | - launches a fresh instance of Emacs, 24 | - loads the selected initialization file, 25 | - then processes the Org-mode file that generated it. 26 | 27 | The file =sigproc-sp-org-new.org= contains the ACM-SIG LaTeX sample in 28 | Org-mode. The LaTeX output from Org-mode comes close to reproducing 29 | the original, but with a few deviations. The new exporter looks like 30 | it will be capable of generating a LaTeX file that doesn't need to be 31 | tweaked. 32 | 33 | * Files 34 | - =ACM-template.org= is the template you'll use to start a new paper 35 | - =README.org= is this file 36 | - =acm_proc_article-sp.cls= is the ACM-SIG LaTeX class file 37 | - =flies.eps= is a graphic used by =sigproc-sp-org-new.org= and =sigproc-sp.tex= 38 | - =fly.eps= is a graphic used by =sigproc-sp-org-new.org= and =sigproc-sp.tex= 39 | - =sigproc-sp-org-new.org= is the ACM-SIG example file translated 40 | into Org-mode 41 | - =sigproc-sp.tex= is the ACM-SIG example file 42 | - =sigproc.bib= is the bibliography file used by =sigproc-sp-org-new.org= and =sigproc-sp.tex= 43 | * Issues 44 | 45 | - Karl 2012-04-25: new Org-mode export does nothing but writing 46 | "org-splice-latex-header: Wrong type argument: stringp, nil" 47 | 48 | - Tom 2012-05-06: this is fixed now 49 | 50 | - Tom 2012-05-06: old exporter requires a headline before the first 51 | source code block. 52 | 53 | - Tom 2012-05-06: new exporter has a known bug that inserts source 54 | code header information after the source code block disappears, as 55 | it does with :exports results 56 | 57 | - Tom 2012-05-06: the list of additional authors doesn't separate the 58 | last author in the list with "and" 59 | 60 | - Tom 2012-05-06: the ACM latex class command \titlenote{} doesn't 61 | appear to work 62 | 63 | -------------------------------------------------------------------------------- /acm_proc_article-sp.cls: -------------------------------------------------------------------------------- 1 | % ACM_PROC_ARTICLE-SP.CLS - VERSION 3.2SP 2 | % COMPATIBLE WITH THE "SIG-ALTERNATE" V2.4 3 | % Gerald Murray - April 22nd. 2009 4 | % 5 | % ---- Start of 'updates' ---- 6 | % 7 | % April 22nd. 2009 - Fixed 'Natbib' incompatibility problem - Gerry 8 | % April 22nd. 2009 - Fixed 'Babel' incompatibility problem - Gerry 9 | % April 22nd. 2009 - Inserted various bug-fixes and improvements - Gerry 10 | % 11 | % To produce Type 1 fonts in the document plus allow for 'normal LaTeX accenting' in the critical areas; 12 | % title, author block, section-heads, etc. etc. 13 | % i.e. the whole purpose of this version update is to NOT resort to 'inelegant accent patches'. 14 | % After much research, three extra .sty packages were added to the the tail (ae, aecompl, aeguill) to solve, 15 | % in particular, the accenting problem(s). We _could_ ask authors (via instructions/sample file) to 'include' these in 16 | % the source .tex file - in the preamble - but if everything is already provided ('behind the scenes' - embedded IN the .cls) 17 | % then this is less work for authors and also makes everything appear 'vanilla'. 18 | % NOTE: all 'patchwork accenting" has been commented out (here) and is no longer 'used' in the sample .tex file (either). 19 | % Gerry June 2007 20 | % 21 | % Rule widths changed to .5, author count (>6) fixed, roll-back for Type 3 problem. Gerry March 20th. 2007 22 | % Changes made to 'modernize' the fontnames but esp. for MikTeX users V2.4/2.5 - Nov. 30th. 2006 23 | % Updated the \email definition to allow for its use inside of 'shared affiliations' - Nov. 30th. 2006 24 | % Fixed the 'section number depth value' - Nov. 30th. 2006 25 | % 26 | % Footnotes inside table cells using \minipage (Oct. 2002) 27 | % Georgia fixed bug in sub-sub-section numbering in paragraphs (July 29th. 2002) 28 | % JS/GM fix to vertical spacing before Proofs (July 30th. 2002) 29 | % 30 | % Allowance made to switch default fonts between those systems using 31 | % normal/modern font names and those using 'Type 1' or 'Truetype' fonts. 32 | % See LINE NUMBER 269 for details. 33 | % Also provided for enumerated/annotated Corollaries 'surrounded' by 34 | % enumerated Theorems (line 844). 35 | % Gerry November 11th. 1999 36 | % 37 | % This 'sp' version does NOT produce the permission block. 38 | % 39 | % Major change in January 2000 was to include a "blank line" in between 40 | % new paragraphs. This involved major changes to the, then, acmproc-sp.cls 1.0SP 41 | % file, precipitating a 'new' name: "acm_proc_article-sp.cls" V2.01SP. 42 | % 43 | % ---- End of 'updates' ---- 44 | % 45 | \def\fileversion{V3.2SP} % for ACM's tracking purposes 46 | \def\filedate{April 22, 2009} % Gerry Murray's tracking data 47 | \def\docdate {Wednesday 22nd. April 2009} % Gerry Murray (with deltas to doc} 48 | % \usepackage{epsfig} 49 | \usepackage{amssymb} 50 | \usepackage{amsmath} 51 | \usepackage{amsfonts} 52 | % Need this for accents in Arial/Helvetica 53 | %\usepackage[T1]{fontenc} % Gerry March 12, 2007 - causes Type 3 problems (body text) 54 | %\usepackage{textcomp} 55 | % 56 | % ACM_PROC_ARTICLE-SP DOCUMENT STYLE 57 | % G.K.M. Tobin August-October 1999 58 | % adapted from ARTICLE document style by Ken Traub, Olin Shivers 59 | % also using elements of esub2acm.cls 60 | % LATEST REVISION V3.2SP - APRIL 2009 61 | % ARTICLE DOCUMENT STYLE -- Released 16 March 1988 62 | % for LaTeX version 2.09 63 | % Copyright (C) 1988 by Leslie Lamport 64 | % 65 | % 66 | %%% ACM_PROC_ARTICLE-SP is a document style for producing two-column camera-ready pages for 67 | %%% ACM conferences, according to ACM specifications. The main features of 68 | %%% this style are: 69 | %%% 70 | %%% 1) Two columns. 71 | %%% 2) Side and top margins of 4.5pc, bottom margin of 6pc, column gutter of 72 | %%% 2pc, hence columns are 20pc wide and 55.5pc tall. (6pc =3D 1in, approx) 73 | %%% 3) First page has title information, and an extra 6pc of space at the 74 | %%% bottom of the first column for the ACM copyright notice. 75 | %%% 4) Text is 9pt on 10pt baselines; titles (except main) are 9pt bold. 76 | %%% 77 | %%% 78 | %%% There are a few restrictions you must observe: 79 | %%% 80 | %%% 1) You cannot change the font size; ACM wants you to use 9pt. 81 | %%% 3) You must start your paper with the \maketitle command. Prior to the 82 | %%% \maketitle you must have \title and \author commands. If you have a 83 | %%% \date command it will be ignored; no date appears on the paper, since 84 | %%% the proceedings will have a date on the front cover. 85 | %%% 4) Marginal paragraphs, tables of contents, lists of figures and tables, 86 | %%% and page headings are all forbidden. 87 | %%% 5) The `figure' environment will produce a figure one column wide; if you 88 | %%% want one that is two columns wide, use `figure*'. 89 | %%% 90 | % 91 | %%% Copyright Space: 92 | %%% This style automatically leaves 1" blank space at the bottom of page 1/ 93 | %%% column 1. This space can optionally be filled with some text using the 94 | %%% \toappear{...} command. If used, this command must be BEFORE the \maketitle 95 | %%% command. If this command is defined AND [preprint] is on, then the 96 | %%% space is filled with the {...} text (at the bottom); otherwise, it is 97 | %%% blank. If you use \toappearbox{...} instead of \toappear{...} then a 98 | %%% box will be drawn around the text (if [preprint] is on). 99 | %%% 100 | %%% A typical usage looks like this: 101 | %%% \toappear{To appear in the Ninth AES Conference on Medievil Lithuanian 102 | %%% Embalming Technique, June 1991, Alfaretta, Georgia.} 103 | %%% This will be included in the preprint, and left out of the conference 104 | %%% version. 105 | %%% 106 | %%% WARNING: 107 | %%% Some dvi-ps converters heuristically allow chars to drift from their 108 | %%% true positions a few pixels. This may be noticeable with the 9pt sans-serif 109 | %%% bold font used for section headers. 110 | %%% You may turn this hackery off via the -e option: 111 | %%% dvips -e 0 foo.dvi >foo.ps 112 | %%% 113 | \typeout{Document Class 'acm_proc_article-sp' <22nd. April '09>. Modified by G.K.M. Tobin} 114 | \typeout{Based in part upon document Style `acmconf' <22 May 89>. Hacked 4/91 by} 115 | \typeout{shivers@cs.cmu.edu, 4/93 by theobald@cs.mcgill.ca} 116 | \typeout{Excerpts were taken from (Journal Style) 'esub2acm.cls'.} 117 | \typeout{****** Bugs/comments/suggestions to Gerry Murray -- murray@hq.acm.org ******} 118 | 119 | \oddsidemargin 4.5pc 120 | \evensidemargin 4.5pc 121 | \advance\oddsidemargin by -1in % Correct for LaTeX gratuitousness 122 | \advance\evensidemargin by -1in % Correct for LaTeX gratuitousness 123 | \marginparwidth 0pt % Margin pars are not allowed. 124 | \marginparsep 11pt % Horizontal space between outer margin and 125 | % marginal note 126 | 127 | % Top of page: 128 | \topmargin 4.5pc % Nominal distance from top of page to top of 129 | % box containing running head. 130 | \advance\topmargin by -1in % Correct for LaTeX gratuitousness 131 | \headheight 0pt % Height of box containing running head. 132 | \headsep 0pt % Space between running head and text. 133 | % Bottom of page: 134 | \footskip 30pt % Distance from baseline of box containing foot 135 | % to baseline of last line of text. 136 | \@ifundefined{footheight}{\newdimen\footheight}{}% this is for LaTeX2e 137 | \footheight 12pt % Height of box containing running foot. 138 | 139 | 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 | 147 | \textheight 666pt % 9 1/4 column height 148 | \textwidth 42pc % Width of text line. 149 | % For two-column mode: 150 | \columnsep 2pc % Space between columns 151 | \columnseprule 0pt % Width of rule between columns. 152 | \hfuzz 1pt % Allow some variation in column width, otherwise it's 153 | % too hard to typeset in narrow columns. 154 | 155 | \footnotesep 5.6pt % Height of strut placed at the beginning of every 156 | % footnote =3D height of normal \footnotesize strut, 157 | % so no extra space between footnotes. 158 | 159 | \skip\footins 8.1pt plus 4pt minus 2pt % Space between last line of text and 160 | % top of first footnote. 161 | \floatsep 11pt plus 2pt minus 2pt % Space between adjacent floats moved 162 | % to top or bottom of text page. 163 | \textfloatsep 18pt plus 2pt minus 4pt % Space between main text and floats 164 | % at top or bottom of page. 165 | \intextsep 11pt plus 2pt minus 2pt % Space between in-text figures and 166 | % text. 167 | \@ifundefined{@maxsep}{\newdimen\@maxsep}{}% this is for LaTeX2e 168 | \@maxsep 18pt % The maximum of \floatsep, 169 | % \textfloatsep and \intextsep (minus 170 | % the stretch and shrink). 171 | \dblfloatsep 11pt plus 2pt minus 2pt % Same as \floatsep for double-column 172 | % figures in two-column mode. 173 | \dbltextfloatsep 18pt plus 2pt minus 4pt% \textfloatsep for double-column 174 | % floats. 175 | \@ifundefined{@dblmaxsep}{\newdimen\@dblmaxsep}{}% this is for LaTeX2e 176 | \@dblmaxsep 18pt % The maximum of \dblfloatsep and 177 | % \dbltexfloatsep. 178 | \@fptop 0pt plus 1fil % Stretch at top of float page/column. (Must be 179 | % 0pt plus ...) 180 | \@fpsep 8pt plus 2fil % Space between floats on float page/column. 181 | \@fpbot 0pt plus 1fil % Stretch at bottom of float page/column. (Must be 182 | % 0pt plus ... ) 183 | \@dblfptop 0pt plus 1fil % Stretch at top of float page. (Must be 0pt plus ...) 184 | \@dblfpsep 8pt plus 2fil % Space between floats on float page. 185 | \@dblfpbot 0pt plus 1fil % Stretch at bottom of float page. (Must be 186 | % 0pt plus ... ) 187 | \marginparpush 5pt % Minimum vertical separation between two marginal 188 | % notes. 189 | 190 | \parskip 0pt % Extra vertical space between paragraphs. 191 | % Set to 0pt outside sections, to keep section heads 192 | % uniformly spaced. The value of parskip is set 193 | % to leading value _within_ sections. 194 | % 12 Jan 2000 gkmt 195 | \parindent 0pt % Width of paragraph indentation. 196 | \partopsep 2pt plus 1pt minus 1pt% Extra vertical space, in addition to 197 | % \parskip and \topsep, added when user 198 | % leaves blank line before environment. 199 | 200 | \@lowpenalty 51 % Produced by \nopagebreak[1] or \nolinebreak[1] 201 | \@medpenalty 151 % Produced by \nopagebreak[2] or \nolinebreak[2] 202 | \@highpenalty 301 % Produced by \nopagebreak[3] or \nolinebreak[3] 203 | 204 | \@beginparpenalty -\@lowpenalty % Before a list or paragraph environment. 205 | \@endparpenalty -\@lowpenalty % After a list or paragraph environment. 206 | \@itempenalty -\@lowpenalty % Between list items. 207 | 208 | %\@namedef{ds@10pt}{\@latexerr{The `10pt' option is not allowed in the `acmconf' 209 | \@namedef{ds@10pt}{\ClassError{The `10pt' option is not allowed in the `acmconf' % January 2008 210 | document style.}\@eha} 211 | %\@namedef{ds@11pt}{\@latexerr{The `11pt' option is not allowed in the `acmconf' 212 | \@namedef{ds@11pt}{\ClassError{The `11pt' option is not allowed in the `acmconf' % January 2008 213 | document style.}\@eha} 214 | %\@namedef{ds@12pt}{\@latexerr{The `12pt' option is not allowed in the `acmconf' 215 | \@namedef{ds@12pt}{\ClassError{The `12pt' option is not allowed in the `acmconf' % January 2008 216 | document style.}\@eha} 217 | 218 | \@options 219 | 220 | \lineskip 2pt % \lineskip is 1pt for all font sizes. 221 | \normallineskip 2pt 222 | \def\baselinestretch{1} 223 | 224 | \abovedisplayskip 9pt plus2pt minus4.5pt% 225 | \belowdisplayskip \abovedisplayskip 226 | \abovedisplayshortskip \z@ plus3pt% 227 | \belowdisplayshortskip 5.4pt plus3pt minus3pt% 228 | \let\@listi\@listI % Setting of \@listi added 9 Jun 87 229 | 230 | \def\small{\@setsize\small{9pt}\viiipt\@viiipt 231 | \abovedisplayskip 7.6pt plus 3pt minus 4pt% 232 | \belowdisplayskip \abovedisplayskip 233 | \abovedisplayshortskip \z@ plus2pt% 234 | \belowdisplayshortskip 3.6pt plus2pt minus 2pt 235 | \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87 236 | \topsep 4pt plus 2pt minus 2pt\parsep 2pt plus 1pt minus 1pt 237 | \itemsep \parsep}} 238 | 239 | \def\footnotesize{\@setsize\footnotesize{9pt}\ixpt\@ixpt 240 | \abovedisplayskip 6.4pt plus 2pt minus 4pt% 241 | \belowdisplayskip \abovedisplayskip 242 | \abovedisplayshortskip \z@ plus 1pt% 243 | \belowdisplayshortskip 2.7pt plus 1pt minus 2pt 244 | \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87 245 | \topsep 3pt plus 1pt minus 1pt\parsep 2pt plus 1pt minus 1pt 246 | \itemsep \parsep}} 247 | 248 | \newcount\aucount 249 | \newcount\originalaucount 250 | \newdimen\auwidth 251 | \auwidth=\textwidth 252 | \newdimen\auskip 253 | \newcount\auskipcount 254 | \newdimen\auskip 255 | \global\auskip=1pc 256 | \newdimen\allauboxes 257 | \allauboxes=\auwidth 258 | \newtoks\addauthors 259 | \newcount\addauflag 260 | \global\addauflag=0 %Haven't shown additional authors yet 261 | 262 | \newtoks\subtitletext 263 | \gdef\subtitle#1{\subtitletext={#1}} 264 | 265 | \gdef\additionalauthors#1{\addauthors={#1}} 266 | 267 | \gdef\numberofauthors#1{\global\aucount=#1 268 | \ifnum\aucount>3\global\originalaucount=\aucount \global\aucount=3\fi %g} % 3 OK - Gerry March 2007 269 | \global\auskipcount=\aucount\global\advance\auskipcount by 1 270 | \global\multiply\auskipcount by 2 271 | \global\multiply\auskip by \auskipcount 272 | \global\advance\auwidth by -\auskip 273 | \global\divide\auwidth by \aucount} 274 | 275 | % \and was modified to count the number of authors. GKMT 12 Aug 1999 276 | \def\alignauthor{% % \begin{tabular} 277 | \end{tabular}% 278 | \begin{tabular}[t]{p{\auwidth}}\centering}% 279 | 280 | 281 | % *** NOTE *** NOTE *** NOTE *** NOTE *** 282 | % If you have 'font problems' then you may need 283 | % to change these, e.g. 'arialb' instead of "arialbd". 284 | % Gerry Murray 11/11/1999 285 | % *** OR ** comment out block A and activate block B or vice versa. 286 | % ********************************************** 287 | % 288 | % -- Start of block A -- (Type 1 or Truetype fonts) 289 | %\newfont{\secfnt}{timesbd at 12pt} % was timenrb originally - now is timesbd 290 | %\newfont{\secit}{timesbi at 12pt} %13 Jan 00 gkmt 291 | %\newfont{\subsecfnt}{timesi at 11pt} % was timenrri originally - now is timesi 292 | %\newfont{\subsecit}{timesbi at 11pt} % 13 Jan 00 gkmt -- was times changed to timesbi gm 2/4/2000 293 | % % because "normal" is italic, "italic" is Roman 294 | %\newfont{\ttlfnt}{arialbd at 18pt} % was arialb originally - now is arialbd 295 | %\newfont{\ttlit}{arialbi at 18pt} % 13 Jan 00 gkmt 296 | %\newfont{\subttlfnt}{arial at 14pt} % was arialr originally - now is arial 297 | %\newfont{\subttlit}{ariali at 14pt} % 13 Jan 00 gkmt 298 | %\newfont{\subttlbf}{arialbd at 14pt} % 13 Jan 00 gkmt 299 | %\newfont{\aufnt}{arial at 12pt} % was arialr originally - now is arial 300 | %\newfont{\auit}{ariali at 12pt} % 13 Jan 00 gkmt 301 | %\newfont{\affaddr}{arial at 10pt} % was arialr originally - now is arial 302 | %\newfont{\affaddrit}{ariali at 10pt} %13 Jan 00 gkmt 303 | %\newfont{\eaddfnt}{arial at 12pt} % was arialr originally - now is arial 304 | %\newfont{\ixpt}{times at 9pt} % was timenrr originally - now is times 305 | %\newfont{\confname}{timesi at 8pt} % was timenrri - now is timesi 306 | %\newfont{\crnotice}{times at 8pt} % was timenrr originally - now is times 307 | %\newfont{\ninept}{times at 9pt} % was timenrr originally - now is times 308 | % ********************************************* 309 | % -- End of block A -- 310 | % 311 | % 312 | % -- Start of block B -- UPDATED FONT NAMES 313 | % ********************************************* 314 | % Gerry Murray 11/30/2006 315 | % ********************************************* 316 | \newfont{\secfnt}{ptmb8t at 12pt} 317 | \newfont{\secit}{ptmbi8t at 12pt} %13 Jan 00 gkmt 318 | \newfont{\subsecfnt}{ptmri8t at 11pt} 319 | \newfont{\subsecit}{ptmbi8t at 11pt} % 320 | \newfont{\ttlfnt}{phvb8t at 18pt} 321 | \newfont{\ttlit}{phvbo8t at 18pt} % GM 2/4/2000 322 | \newfont{\subttlfnt}{phvr8t at 14pt} 323 | \newfont{\subttlit}{phvro8t at 14pt} % GM 2/4/2000 324 | \newfont{\subttlbf}{phvb8t at 14pt} % 13 Jan 00 gkmt 325 | \newfont{\aufnt}{phvr8t at 12pt} 326 | \newfont{\auit}{phvro8t at 12pt} % GM 2/4/2000 327 | \newfont{\affaddr}{phvr8t at 10pt} 328 | \newfont{\affaddrit}{phvro8t at 10pt} % GM 2/4/2000 329 | \newfont{\eaddfnt}{phvr8t at 12pt} 330 | \newfont{\ixpt}{ptmr8t at 9pt} 331 | \newfont{\confname}{ptmri8t at 8pt} 332 | \newfont{\crnotice}{ptmr8t at 8pt} 333 | \newfont{\ninept}{ptmr8t at 9pt} 334 | % +++++++++++++++++++++++++++++++++++++++++++++ 335 | % -- End of block B -- 336 | 337 | %\def\email#1{{{\eaddfnt{\vskip 4pt#1}}}} 338 | % If we have an email, inside a "shared affiliation" then we need the following instead 339 | \def\email#1{{{\eaddfnt{\par #1}}}} % revised - GM - 11/30/2006 340 | 341 | \def\addauthorsection{\ifnum\originalaucount>6 % was 3 - Gerry March 2007 342 | \section{Additional Authors}\the\addauthors 343 | \fi} 344 | 345 | \newcount\savesection 346 | \newcount\sectioncntr 347 | \global\sectioncntr=1 348 | 349 | \setcounter{secnumdepth}{3} 350 | 351 | \def\appendix{\par 352 | \section*{APPENDIX} 353 | \setcounter{section}{0} 354 | \setcounter{subsection}{0} 355 | \def\thesection{\Alph{section}} } 356 | 357 | 358 | \leftmargini 22.5pt 359 | \leftmarginii 19.8pt % > \labelsep + width of '(m)' 360 | \leftmarginiii 16.8pt % > \labelsep + width of 'vii.' 361 | \leftmarginiv 15.3pt % > \labelsep + width of 'M.' 362 | \leftmarginv 9pt 363 | \leftmarginvi 9pt 364 | 365 | \leftmargin\leftmargini 366 | \labelsep 4.5pt 367 | \labelwidth\leftmargini\advance\labelwidth-\labelsep 368 | 369 | \def\@listI{\leftmargin\leftmargini \parsep 3.6pt plus 2pt minus 1pt% 370 | \topsep 7.2pt plus 2pt minus 4pt% 371 | \itemsep 3.6pt plus 2pt minus 1pt} 372 | 373 | \let\@listi\@listI 374 | \@listi 375 | 376 | \def\@listii{\leftmargin\leftmarginii 377 | \labelwidth\leftmarginii\advance\labelwidth-\labelsep 378 | \topsep 3.6pt plus 2pt minus 1pt 379 | \parsep 1.8pt plus 0.9pt minus 0.9pt 380 | \itemsep \parsep} 381 | 382 | \def\@listiii{\leftmargin\leftmarginiii 383 | \labelwidth\leftmarginiii\advance\labelwidth-\labelsep 384 | \topsep 1.8pt plus 0.9pt minus 0.9pt 385 | \parsep \z@ \partopsep 1pt plus 0pt minus 1pt 386 | \itemsep \topsep} 387 | 388 | \def\@listiv{\leftmargin\leftmarginiv 389 | \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} 390 | 391 | \def\@listv{\leftmargin\leftmarginv 392 | \labelwidth\leftmarginv\advance\labelwidth-\labelsep} 393 | 394 | \def\@listvi{\leftmargin\leftmarginvi 395 | \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} 396 | 397 | \def\labelenumi{\theenumi.} 398 | \def\theenumi{\arabic{enumi}} 399 | 400 | \def\labelenumii{(\theenumii)} 401 | \def\theenumii{\alph{enumii}} 402 | \def\p@enumii{\theenumi} 403 | 404 | \def\labelenumiii{\theenumiii.} 405 | \def\theenumiii{\roman{enumiii}} 406 | \def\p@enumiii{\theenumi(\theenumii)} 407 | 408 | \def\labelenumiv{\theenumiv.} 409 | \def\theenumiv{\Alph{enumiv}} 410 | \def\p@enumiv{\p@enumiii\theenumiii} 411 | 412 | \def\labelitemi{$\bullet$} 413 | \def\labelitemii{\bf --} 414 | \def\labelitemiii{$\ast$} 415 | \def\labelitemiv{$\cdot$} 416 | 417 | \def\verse{\let\\=\@centercr 418 | \list{}{\itemsep\z@ \itemindent -1.5em\listparindent \itemindent 419 | \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]} 420 | \let\endverse\endlist 421 | 422 | \def\quotation{\list{}{\listparindent 1.5em 423 | \itemindent\listparindent 424 | \rightmargin\leftmargin \parsep 0pt plus 1pt}\item[]} 425 | \let\endquotation=\endlist 426 | 427 | \def\quote{\list{}{\rightmargin\leftmargin}\item[]} 428 | \let\endquote=\endlist 429 | 430 | \def\descriptionlabel#1{\hspace\labelsep \bf #1} 431 | \def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin 432 | \let\makelabel\descriptionlabel}} 433 | 434 | \let\enddescription\endlist 435 | 436 | \def\theequation{\arabic{equation}} 437 | 438 | \arraycolsep 4.5pt % Half the space between columns in an array environment. 439 | \tabcolsep 5.4pt % Half the space between columns in a tabular environment. 440 | \arrayrulewidth .5pt % Width of rules in array and tabular environment. % (was .4) updated Gerry March 20 2007 441 | \doublerulesep 1.8pt % Space between adjacent rules in array or tabular env. 442 | 443 | \tabbingsep \labelsep % Space used by the \' command. (See LaTeX manual.) 444 | 445 | \skip\@mpfootins =\skip\footins 446 | 447 | \fboxsep =2.7pt % Space left between box and text by \fbox and \framebox. 448 | \fboxrule =.5pt % Width of rules in box made by \fbox and \framebox. % (was .4) updated Gerry March 20 2007 449 | 450 | \def\thepart{\Roman{part}} % Roman numeral part numbers. 451 | \def\thesection {\arabic{section}} 452 | \def\thesubsection {\thesection.\arabic{subsection}} 453 | %\def\thesubsubsection {\thesubsection.\arabic{subsubsection}} % GM 7/30/2002 454 | %\def\theparagraph {\thesubsubsection.\arabic{paragraph}} % GM 7/30/2002 455 | \def\thesubparagraph {\theparagraph.\arabic{subparagraph}} 456 | 457 | \def\@pnumwidth{1.55em} 458 | \def\@tocrmarg {2.55em} 459 | \def\@dotsep{4.5} 460 | \setcounter{tocdepth}{3} 461 | 462 | %\def\tableofcontents{\@latexerr{\tableofcontents: Tables of contents are not 463 | % allowed in the `acmconf' document style.}\@eha} 464 | 465 | \def\tableofcontents{\ClassError{% 466 | \string\tableofcontents\space is not allowed in the `acmconf' document % January 2008 467 | style}\@eha} 468 | 469 | \def\l@part#1#2{\addpenalty{\@secpenalty} 470 | \addvspace{2.25em plus 1pt} % space above part line 471 | \begingroup 472 | \@tempdima 3em % width of box holding part number, used by 473 | \parindent \z@ \rightskip \@pnumwidth %% \numberline 474 | \parfillskip -\@pnumwidth 475 | {\large \bf % set line in \large boldface 476 | \leavevmode % TeX command to enter horizontal mode. 477 | #1\hfil \hbox to\@pnumwidth{\hss #2}}\par 478 | \nobreak % Never break after part entry 479 | \endgroup} 480 | 481 | \def\l@section#1#2{\addpenalty{\@secpenalty} % good place for page break 482 | \addvspace{1.0em plus 1pt} % space above toc entry 483 | \@tempdima 1.5em % width of box holding section number 484 | \begingroup 485 | \parindent \z@ \rightskip \@pnumwidth 486 | \parfillskip -\@pnumwidth 487 | \bf % Boldface. 488 | \leavevmode % TeX command to enter horizontal mode. 489 | \advance\leftskip\@tempdima %% added 5 Feb 88 to conform to 490 | \hskip -\leftskip %% 25 Jan 88 change to \numberline 491 | #1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par 492 | \endgroup} 493 | 494 | 495 | \def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}} 496 | \def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}} 497 | \def\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}} 498 | \def\l@subparagraph{\@dottedtocline{5}{10em}{5em}} 499 | 500 | %\def\listoffigures{\@latexerr{\listoffigures: Lists of figures are not 501 | % allowed in the `acmconf' document style.}\@eha} 502 | 503 | \def\listoffigures{\ClassError{% 504 | \string\listoffigures\space is not allowed in the `acmconf' document % January 2008 505 | style}\@eha} 506 | 507 | \def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} 508 | 509 | %\def\listoftables{\@latexerr{\listoftables: Lists of tables are not 510 | % allowed in the `acmconf' document style.}\@eha} 511 | %\let\l@table\l@figure 512 | 513 | \def\listoftables{\ClassError{% 514 | \string\listoftables\space is not allowed in the `acmconf' document % January 2008 515 | style}\@eha} 516 | \let\l@table\l@figure 517 | 518 | \def\footnoterule{\kern-3\p@ 519 | \hrule width .5\columnwidth % (was .4) updated Gerry March 20 2007 520 | \kern 2.6\p@} % The \hrule has default height of .4pt % (was .4) updated Gerry March 20 2007 521 | % ------ 522 | \long\def\@makefntext#1{\noindent 523 | %\hbox to .5em{\hss$^{\@thefnmark}$}#1} % original 524 | \hbox to .5em{\hss\textsuperscript{\@thefnmark}}#1} % C. Clifton / GM Oct. 2nd. 2002 525 | % ------- 526 | 527 | \long\def\@maketntext#1{\noindent 528 | #1} 529 | 530 | \long\def\@maketitlenotetext#1#2{\noindent 531 | \hbox to 1.8em{\hss$^{#1}$}#2} 532 | 533 | \setcounter{topnumber}{2} 534 | \def\topfraction{.7} 535 | \setcounter{bottomnumber}{1} 536 | \def\bottomfraction{.3} 537 | \setcounter{totalnumber}{3} 538 | \def\textfraction{.2} 539 | \def\floatpagefraction{.5} 540 | \setcounter{dbltopnumber}{2} 541 | \def\dbltopfraction{.7} 542 | \def\dblfloatpagefraction{.5} 543 | 544 | \long\def\@makecaption#1#2{ 545 | \vskip \baselineskip 546 | \setbox\@tempboxa\hbox{\textbf{#1: #2}} 547 | \ifdim \wd\@tempboxa >\hsize % IF longer than one line: 548 | \textbf{#1: #2}\par % THEN set as ordinary paragraph. 549 | \else % ELSE center. 550 | \hbox to\hsize{\hfil\box\@tempboxa\hfil}\par 551 | \fi} 552 | 553 | \@ifundefined{figure}{\newcounter {figure}} % this is for LaTeX2e 554 | 555 | \def\fps@figure{tbp} 556 | \def\ftype@figure{1} 557 | \def\ext@figure{lof} 558 | \def\fnum@figure{Figure \thefigure} 559 | \def\figure{\@float{figure}} 560 | %\let\endfigure\end@float 561 | \def\endfigure{\end@float} % Gerry January 2008 562 | \@namedef{figure*}{\@dblfloat{figure}} 563 | \@namedef{endfigure*}{\end@dblfloat} 564 | 565 | \@ifundefined{table}{\newcounter {table}} % this is for LaTeX2e 566 | 567 | \def\fps@table{tbp} 568 | \def\ftype@table{2} 569 | \def\ext@table{lot} 570 | \def\fnum@table{Table \thetable} 571 | \def\table{\@float{table}} 572 | %\let\endtable\end@float 573 | \def\endtable{\end@float} % Gerry January 2008 574 | \@namedef{table*}{\@dblfloat{table}} 575 | \@namedef{endtable*}{\end@dblfloat} 576 | 577 | \newtoks\titleboxnotes 578 | \newcount\titleboxnoteflag 579 | 580 | \def\maketitle{\par 581 | \begingroup 582 | \def\thefootnote{\fnsymbol{footnote}} 583 | \def\@makefnmark{\hbox 584 | to 0pt{$^{\@thefnmark}$\hss}} 585 | \twocolumn[\@maketitle] 586 | \@thanks 587 | \endgroup 588 | \setcounter{footnote}{0} 589 | \let\maketitle\relax 590 | \let\@maketitle\relax 591 | \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\gdef\@subtitle{}\let\thanks\relax 592 | \@copyrightspace} 593 | 594 | %% CHANGES ON NEXT LINES 595 | \newif\if@ll % to record which version of LaTeX is in use 596 | 597 | \expandafter\ifx\csname LaTeXe\endcsname\relax % LaTeX2.09 is used 598 | \else% LaTeX2e is used, so set ll to true 599 | \global\@lltrue 600 | \fi 601 | 602 | \if@ll 603 | \NeedsTeXFormat{LaTeX2e} 604 | \ProvidesClass{acm_proc_article-sp} [2009/04/22 - V3.2SP - based on esub2acm.sty <23 April 96>] 605 | \RequirePackage{latexsym}% QUERY: are these two really needed? 606 | \let\dooptions\ProcessOptions 607 | \else 608 | \let\dooptions\@options 609 | \fi 610 | %% END CHANGES 611 | 612 | \def\@height{height} 613 | \def\@width{width} 614 | \def\@minus{minus} 615 | \def\@plus{plus} 616 | \def\hb@xt@{\hbox to} 617 | \newif\if@faircopy 618 | \@faircopyfalse 619 | \def\ds@faircopy{\@faircopytrue} 620 | 621 | \def\ds@preprint{\@faircopyfalse} 622 | 623 | \@twosidetrue 624 | \@mparswitchtrue 625 | \def\ds@draft{\overfullrule 5\p@} 626 | %% CHANGE ON NEXT LINE 627 | \dooptions 628 | 629 | \lineskip \p@ 630 | \normallineskip \p@ 631 | \def\baselinestretch{1} 632 | \def\@ptsize{0} %needed for amssymbols.sty 633 | 634 | %% CHANGES ON NEXT LINES 635 | \if@ll% allow use of old-style font change commands in LaTeX2e 636 | \@maxdepth\maxdepth 637 | % 638 | \DeclareOldFontCommand{\rm}{\ninept\rmfamily}{\mathrm} 639 | \DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} 640 | \DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} 641 | \DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} 642 | \DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} 643 | \DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} 644 | \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} 645 | \DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}} 646 | \DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}} 647 | \fi 648 | % 649 | \if@ll 650 | \renewcommand{\rmdefault}{cmr} % was 'ttm' 651 | % Note! I have also found 'mvr' to work ESPECIALLY well. 652 | % Gerry - October 1999 653 | % You may need to change your LV1times.fd file so that sc is 654 | % mapped to cmcsc - -for smallcaps -- that is if you decide 655 | % to change {cmr} to {times} above. (Not recommended) 656 | \renewcommand{\@ptsize}{} 657 | \renewcommand{\normalsize}{% 658 | \@setfontsize\normalsize\@ixpt{10.5\p@}%\ninept% 659 | \abovedisplayskip 6\p@ \@plus2\p@ \@minus\p@ 660 | \belowdisplayskip \abovedisplayskip 661 | \abovedisplayshortskip 6\p@ \@minus 3\p@ 662 | \belowdisplayshortskip 6\p@ \@minus 3\p@ 663 | \let\@listi\@listI 664 | } 665 | \else 666 | \def\@normalsize{%changed next to 9 from 10 667 | \@setsize\normalsize{9\p@}\ixpt\@ixpt 668 | \abovedisplayskip 6\p@ \@plus2\p@ \@minus\p@ 669 | \belowdisplayskip \abovedisplayskip 670 | \abovedisplayshortskip 6\p@ \@minus 3\p@ 671 | \belowdisplayshortskip 6\p@ \@minus 3\p@ 672 | \let\@listi\@listI 673 | }% 674 | \fi 675 | \if@ll 676 | \newcommand\scriptsize{\@setfontsize\scriptsize\@viipt{8\p@}} 677 | \newcommand\tiny{\@setfontsize\tiny\@vpt{6\p@}} 678 | \newcommand\large{\@setfontsize\large\@xiipt{14\p@}} 679 | \newcommand\Large{\@setfontsize\Large\@xivpt{18\p@}} 680 | \newcommand\LARGE{\@setfontsize\LARGE\@xviipt{20\p@}} 681 | \newcommand\huge{\@setfontsize\huge\@xxpt{25\p@}} 682 | \newcommand\Huge{\@setfontsize\Huge\@xxvpt{30\p@}} 683 | \else 684 | \def\scriptsize{\@setsize\scriptsize{8\p@}\viipt\@viipt} 685 | \def\tiny{\@setsize\tiny{6\p@}\vpt\@vpt} 686 | \def\large{\@setsize\large{14\p@}\xiipt\@xiipt} 687 | \def\Large{\@setsize\Large{18\p@}\xivpt\@xivpt} 688 | \def\LARGE{\@setsize\LARGE{20\p@}\xviipt\@xviipt} 689 | \def\huge{\@setsize\huge{25\p@}\xxpt\@xxpt} 690 | \def\Huge{\@setsize\Huge{30\p@}\xxvpt\@xxvpt} 691 | \fi 692 | \normalsize 693 | 694 | % make aubox hsize/number of authors up to 3, less gutter 695 | % then showbox gutter showbox gutter showbox -- GKMT Aug 99 696 | \newbox\@acmtitlebox 697 | \def\@maketitle{\newpage 698 | \null 699 | \setbox\@acmtitlebox\vbox{% 700 | \baselineskip 20pt 701 | \vskip 2em % Vertical space above title. 702 | \begin{center} 703 | {\ttlfnt \@title\par} % Title set in 18pt Helvetica (Arial) bold size. 704 | \vskip 1.5em % Vertical space after title. 705 | %This should be the subtitle. 706 | {\subttlfnt \the\subtitletext\par}\vskip 1.25em%\fi 707 | {\baselineskip 16pt\aufnt % each author set in \12 pt Arial, in a 708 | \lineskip .5em % tabular environment 709 | \begin{tabular}[t]{c}\@author 710 | \end{tabular}\par} 711 | \vskip 1.5em % Vertical space after author. 712 | \end{center}} 713 | \dimen0=\ht\@acmtitlebox 714 | \advance\dimen0 by -12.75pc\relax % Increased space for title box -- KBT 715 | \unvbox\@acmtitlebox 716 | \ifdim\dimen0<0.0pt\relax\vskip-\dimen0\fi} 717 | 718 | 719 | \newcount\titlenotecount 720 | \global\titlenotecount=0 721 | \newtoks\tntoks 722 | \newtoks\tntokstwo 723 | \newtoks\tntoksthree 724 | \newtoks\tntoksfour 725 | \newtoks\tntoksfive 726 | 727 | \def\abstract{ 728 | \ifnum\titlenotecount>0 % was =1 729 | \insert\footins{% 730 | \reset@font\footnotesize 731 | \interlinepenalty\interfootnotelinepenalty 732 | \splittopskip\footnotesep 733 | \splitmaxdepth \dp\strutbox \floatingpenalty \@MM 734 | \hsize\columnwidth \@parboxrestore 735 | \protected@edef\@currentlabel{% 736 | }% 737 | \color@begingroup 738 | \ifnum\titlenotecount=1 739 | \@maketntext{% 740 | \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\@finalstrut\strutbox}% 741 | \fi 742 | \ifnum\titlenotecount=2 743 | \@maketntext{% 744 | \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}% 745 | \@maketntext{% 746 | \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\@finalstrut\strutbox}% 747 | \fi 748 | \ifnum\titlenotecount=3 749 | \@maketntext{% 750 | \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}% 751 | \@maketntext{% 752 | \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\par\@finalstrut\strutbox}% 753 | \@maketntext{% 754 | \raisebox{4pt}{$\ddagger$}\rule\z@\footnotesep\ignorespaces\the\tntoksthree\@finalstrut\strutbox}% 755 | \fi 756 | \ifnum\titlenotecount=4 757 | \@maketntext{% 758 | \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}% 759 | \@maketntext{% 760 | \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\par\@finalstrut\strutbox}% 761 | \@maketntext{% 762 | \raisebox{4pt}{$\ddagger$}\rule\z@\footnotesep\ignorespaces\the\tntoksthree\par\@finalstrut\strutbox}% 763 | \@maketntext{% 764 | \raisebox{4pt}{$\S$}\rule\z@\footnotesep\ignorespaces\the\tntoksfour\@finalstrut\strutbox}% 765 | \fi 766 | \ifnum\titlenotecount=5 767 | \@maketntext{% 768 | \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}% 769 | \@maketntext{% 770 | \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\par\@finalstrut\strutbox}% 771 | \@maketntext{% 772 | \raisebox{4pt}{$\ddagger$}\rule\z@\footnotesep\ignorespaces\the\tntoksthree\par\@finalstrut\strutbox}% 773 | \@maketntext{% 774 | \raisebox{4pt}{$\S$}\rule\z@\footnotesep\ignorespaces\the\tntoksfour\par\@finalstrut\strutbox}% 775 | \@maketntext{% 776 | \raisebox{4pt}{$\P$}\rule\z@\footnotesep\ignorespaces\the\tntoksfive\@finalstrut\strutbox}% 777 | \fi 778 | \color@endgroup} %g} 779 | \fi 780 | \setcounter{footnote}{0} 781 | \section*{ABSTRACT}\normalsize %\the\parskip \the\baselineskip%\ninept 782 | } 783 | 784 | \def\endabstract{\if@twocolumn\else\endquotation\fi} 785 | 786 | \def\keywords{\if@twocolumn 787 | \section*{Keywords} 788 | \else \small 789 | \quotation 790 | \fi} 791 | 792 | % I've pulled the check for 2 cols, since proceedings are _always_ 793 | % two-column 11 Jan 2000 gkmt 794 | \def\terms{%\if@twocolumn 795 | \section*{General Terms} 796 | %\else \small 797 | %\quotation\the\parskip 798 | %\fi} 799 | } 800 | 801 | % -- Classification needs to be a bit smart due to optionals - Gerry/Georgia November 2nd. 1999 802 | \newcount\catcount 803 | \global\catcount=1 804 | 805 | \def\category#1#2#3{% 806 | \ifnum\catcount=1 807 | \section*{Categories and Subject Descriptors} 808 | \advance\catcount by 1\else{\unskip; }\fi 809 | \@ifnextchar [{\@category{#1}{#2}{#3}}{\@category{#1}{#2}{#3}[]}% 810 | } 811 | 812 | \def\@category#1#2#3[#4]{% 813 | \begingroup 814 | \let\and\relax 815 | #1 [\textbf{#2}]% 816 | \if!#4!% 817 | \if!#3!\else : #3\fi 818 | \else 819 | :\space 820 | \if!#3!\else #3\kern\z@---\hskip\z@\fi 821 | \textit{#4}% 822 | \fi 823 | \endgroup 824 | } 825 | % 826 | 827 | %%% This section (written by KBT) handles the 1" box in the lower left 828 | %%% corner of the left column of the first page by creating a picture, 829 | %%% and inserting the predefined string at the bottom (with a negative 830 | %%% displacement to offset the space allocated for a non-existent 831 | %%% caption). 832 | %%% 833 | \newtoks\copyrightnotice 834 | \def\ftype@copyrightbox{8} 835 | \def\@copyrightspace{ 836 | \@float{copyrightbox}[b] 837 | \begin{center} 838 | \setlength{\unitlength}{1pc} 839 | \begin{picture}(20,6) %Space for copyright notice 840 | \put(0,-0.95){\crnotice{\@toappear}} 841 | \end{picture} 842 | \end{center} 843 | \end@float} 844 | 845 | \def\@toappear{} % Default setting blank - commands below change this. 846 | \long\def\toappear#1{\def\@toappear{\parbox[b]{20pc}{\baselineskip 9pt#1}}} 847 | \def\toappearbox#1{\def\@toappear{\raisebox{5pt}{\framebox[20pc]{\parbox[b]{19pc}{#1}}}}} 848 | 849 | \newtoks\conf 850 | \newtoks\confinfo 851 | \def\conferenceinfo#1#2{\global\conf={#1}\global\confinfo{#2}} 852 | 853 | 854 | %\def\marginpar{\@latexerr{The \marginpar command is not allowed in the 855 | % `acmconf' document style.}\@eha} 856 | 857 | \def\marginpar{\ClassError{% 858 | \string\marginpar\space is not allowed in the `acmconf' document % January 2008 859 | style}\@eha} 860 | 861 | \mark{{}{}} % Initializes TeX's marks 862 | 863 | \def\today{\ifcase\month\or 864 | January\or February\or March\or April\or May\or June\or 865 | July\or August\or September\or October\or November\or December\fi 866 | \space\number\day, \number\year} 867 | 868 | \def\@begintheorem#1#2{% 869 | \trivlist 870 | \item[% 871 | \hskip 10\p@ 872 | \hskip \labelsep 873 | {{\sc #1}\hskip 5\p@\relax#2.}% 874 | ] 875 | \it 876 | } 877 | \def\@opargbegintheorem#1#2#3{% 878 | \trivlist 879 | \item[% 880 | \hskip 10\p@ 881 | \hskip \labelsep 882 | {\sc #1\ #2\ % This mod by Gerry to enumerate corollaries 883 | \setbox\@tempboxa\hbox{(#3)} % and bracket the 'corollary title' 884 | \ifdim \wd\@tempboxa>\z@ % and retain the correct numbering of e.g. theorems 885 | \hskip 5\p@\relax % if they occur 'around' said corollaries. 886 | \box\@tempboxa % Gerry - Nov. 1999. 887 | \fi.}% 888 | ] 889 | \it 890 | } 891 | \newif\if@qeded 892 | \global\@qededfalse 893 | 894 | % -- original 895 | %\def\proof{% 896 | % \vspace{-\parskip} % GM July 2000 (for tighter spacing) 897 | % \global\@qededfalse 898 | % \@ifnextchar[{\@xproof}{\@proof}% 899 | %} 900 | % -- end of original 901 | 902 | % (JSS) Fix for vertical spacing bug - Gerry Murray July 30th. 2002 903 | \def\proof{% 904 | \vspace{-\lastskip}\vspace{-\parsep}\penalty-51% 905 | \global\@qededfalse 906 | \@ifnextchar[{\@xproof}{\@proof}% 907 | } 908 | 909 | \def\endproof{% 910 | \if@qeded\else\qed\fi 911 | \endtrivlist 912 | } 913 | \def\@proof{% 914 | \trivlist 915 | \item[% 916 | \hskip 10\p@ 917 | \hskip \labelsep 918 | {\sc Proof.}% 919 | ] 920 | \ignorespaces 921 | } 922 | \def\@xproof[#1]{% 923 | \trivlist 924 | \item[\hskip 10\p@\hskip \labelsep{\sc Proof #1.}]% 925 | \ignorespaces 926 | } 927 | \def\qed{% 928 | \unskip 929 | \kern 10\p@ 930 | \begingroup 931 | \unitlength\p@ 932 | \linethickness{.4\p@}% 933 | \framebox(6,6){}% 934 | \endgroup 935 | \global\@qededtrue 936 | } 937 | 938 | \def\newdef#1#2{% 939 | \expandafter\@ifdefinable\csname #1\endcsname 940 | {\@definecounter{#1}% 941 | \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}% 942 | \global\@namedef{#1}{\@defthm{#1}{#2}}% 943 | \global\@namedef{end#1}{\@endtheorem}% 944 | }% 945 | } 946 | \def\@defthm#1#2{% 947 | \refstepcounter{#1}% 948 | \@ifnextchar[{\@ydefthm{#1}{#2}}{\@xdefthm{#1}{#2}}% 949 | } 950 | \def\@xdefthm#1#2{% 951 | \@begindef{#2}{\csname the#1\endcsname}% 952 | \ignorespaces 953 | } 954 | \def\@ydefthm#1#2[#3]{% 955 | \trivlist 956 | \item[% 957 | \hskip 10\p@ 958 | \hskip \labelsep 959 | {\it #2% 960 | % \savebox\@tempboxa{#3}% 961 | \saveb@x\@tempboxa{#3}% % January 2008 962 | \ifdim \wd\@tempboxa>\z@ 963 | \ \box\@tempboxa 964 | \fi.% 965 | }]% 966 | \ignorespaces 967 | } 968 | \def\@begindef#1#2{% 969 | \trivlist 970 | \item[% 971 | \hskip 10\p@ 972 | \hskip \labelsep 973 | {\it #1\ \rm #2.}% 974 | ]% 975 | } 976 | \def\theequation{\arabic{equation}} 977 | 978 | \newcounter{part} 979 | \newcounter{section} 980 | \newcounter{subsection}[section] 981 | \newcounter{subsubsection}[subsection] 982 | \newcounter{paragraph}[subsubsection] 983 | \def\thepart{\Roman{part}} 984 | \def\thesection{\arabic{section}} 985 | \def\thesubsection{\thesection.\arabic{subsection}} 986 | \def\thesubsubsection{\thesubsection.\arabic{subsubsection}} %removed \subsecfnt 29 July 2002 gkmt 987 | \def\theparagraph{\thesubsubsection.\arabic{paragraph}} %removed \subsecfnt 29 July 2002 gkmt 988 | 989 | \newif\if@uchead 990 | \@ucheadfalse 991 | 992 | %% CHANGES: NEW NOTE 993 | %% NOTE: OK to use old-style font commands below, since they were 994 | %% suitably redefined for LaTeX2e 995 | %% END CHANGES 996 | \setcounter{secnumdepth}{3} 997 | \def\part{% 998 | \@startsection{part}{9}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@} 999 | {4\p@}{\normalsize\@ucheadtrue}% 1000 | } 1001 | 1002 | % Rationale for changes made in next four definitions: 1003 | % "Before skip" is made elastic to provide some give in setting columns (vs. 1004 | % parskip, which is non-elastic to keep section headers "anchored" to their 1005 | % subsequent text. 1006 | % 1007 | % "After skip" is minimized -- BUT setting it to 0pt resulted in run-in heads, despite 1008 | % the documentation asserted only after-skip < 0pt would have result. 1009 | % 1010 | % Baselineskip added to style to ensure multi-line section titles, and section heads 1011 | % followed by another section head rather than text, are decently spaced vertically. 1012 | % 12 Jan 2000 gkmt 1013 | \def\section{% 1014 | \@startsection{section}{1}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@}% 1015 | {0.5pt}{\baselineskip=14pt\secfnt\@ucheadtrue}% 1016 | } 1017 | 1018 | \def\subsection{% 1019 | \@startsection{subsection}{2}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@} 1020 | {0.5pt}{\baselineskip=14pt\secfnt}% 1021 | } 1022 | \def\subsubsection{% 1023 | \@startsection{subsubsection}{3}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@}% 1024 | {0.5pt}{\baselineskip=14pt\subsecfnt}% 1025 | } 1026 | 1027 | %\def\paragraph{% 1028 | % \vskip 12pt\@startsection{paragraph}{3}{\z@}{6\p@ \@plus \p@}% original 1029 | % {-5\p@}{\subsecfnt}% 1030 | %} 1031 | % If one wants sections, subsections and subsubsections numbered, 1032 | % but not paragraphs, one usually sets secnumepth to 3. 1033 | % For that, the "depth" of paragraphs must be given correctly 1034 | % in the definition (``4'' instead of ``3'' as second argument 1035 | % of @startsection): 1036 | \def\paragraph{% 1037 | \vskip 12pt\@startsection{paragraph}{4}{\z@}{6\p@ \@plus \p@}% % GM and Wolfgang May - 11/30/06 1038 | {-5\p@}{\subsecfnt}% 1039 | } 1040 | 1041 | \let\@period=. 1042 | \def\@startsection#1#2#3#4#5#6{% 1043 | \if@noskipsec %gkmt, 11 aug 99 1044 | \global\let\@period\@empty 1045 | \leavevmode 1046 | \global\let\@period.% 1047 | \fi 1048 | \par 1049 | \@tempskipa #4\relax 1050 | \@afterindenttrue 1051 | \ifdim \@tempskipa <\z@ 1052 | \@tempskipa -\@tempskipa 1053 | \@afterindentfalse 1054 | \fi 1055 | %\if@nobreak 11 Jan 00 gkmt 1056 | %\everypar{} 1057 | %\else 1058 | \addpenalty\@secpenalty 1059 | \addvspace\@tempskipa 1060 | %\fi 1061 | \parskip=0pt 1062 | \@ifstar 1063 | {\@ssect{#3}{#4}{#5}{#6}} 1064 | {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}% 1065 | } 1066 | 1067 | 1068 | \def\@ssect#1#2#3#4#5{% 1069 | \@tempskipa #3\relax 1070 | \ifdim \@tempskipa>\z@ 1071 | \begingroup 1072 | #4{% 1073 | \@hangfrom{\hskip #1}% 1074 | \interlinepenalty \@M #5\@@par}% 1075 | \endgroup 1076 | \else 1077 | \def\@svsechd{#4{\hskip #1\relax #5}}% 1078 | \fi 1079 | \vskip -10.5pt %gkmt, 7 jan 00 -- had been -14pt, now set to parskip 1080 | \@xsect{#3}\parskip=10.5pt} % within the starred section, parskip = leading 12 Jan 2000 gkmt 1081 | 1082 | 1083 | \def\@sect#1#2#3#4#5#6[#7]#8{% 1084 | \ifnum #2>\c@secnumdepth 1085 | \let\@svsec\@empty 1086 | \else 1087 | \refstepcounter{#1}% 1088 | \edef\@svsec{% 1089 | \begingroup 1090 | %\ifnum#2>2 \noexpand\rm \fi % changed to next 29 July 2002 gkmt 1091 | \ifnum#2>2 \noexpand#6 \fi 1092 | \csname the#1\endcsname 1093 | \endgroup 1094 | \ifnum #2=1\relax .\fi 1095 | \hskip 1em 1096 | }% 1097 | \fi 1098 | \@tempskipa #5\relax 1099 | \ifdim \@tempskipa>\z@ 1100 | \begingroup 1101 | #6\relax 1102 | \@hangfrom{\hskip #3\relax\@svsec}% 1103 | \begingroup 1104 | \interlinepenalty \@M 1105 | \if@uchead 1106 | \uppercase{#8}% 1107 | \else 1108 | #8% 1109 | \fi 1110 | \par 1111 | \endgroup 1112 | \endgroup 1113 | \csname #1mark\endcsname{#7}% 1114 | \vskip -10.5pt % -14pt gkmt, 11 aug 99 -- changed to -\parskip 11 Jan 2000 1115 | \addcontentsline{toc}{#1}{% 1116 | \ifnum #2>\c@secnumdepth \else 1117 | \protect\numberline{\csname the#1\endcsname}% 1118 | \fi 1119 | #7% 1120 | }% 1121 | \else 1122 | \def\@svsechd{% 1123 | #6% 1124 | \hskip #3\relax 1125 | \@svsec 1126 | \if@uchead 1127 | \uppercase{#8}% 1128 | \else 1129 | #8% 1130 | \fi 1131 | \csname #1mark\endcsname{#7}% 1132 | \addcontentsline{toc}{#1}{% 1133 | \ifnum #2>\c@secnumdepth \else 1134 | \protect\numberline{\csname the#1\endcsname}% 1135 | \fi 1136 | #7% 1137 | }% 1138 | }% 1139 | \fi 1140 | \@xsect{#5}\parskip=10.5pt% within the section, parskip = leading 12 Jan 2000 gkmt 1141 | } 1142 | \def\@xsect#1{% 1143 | \@tempskipa #1\relax 1144 | \ifdim \@tempskipa>\z@ 1145 | \par 1146 | \nobreak 1147 | \vskip \@tempskipa 1148 | \@afterheading 1149 | \else 1150 | \global\@nobreakfalse 1151 | \global\@noskipsectrue 1152 | \everypar{% 1153 | \if@noskipsec 1154 | \global\@noskipsecfalse 1155 | \clubpenalty\@M 1156 | \hskip -\parindent 1157 | \begingroup 1158 | \@svsechd 1159 | \@period 1160 | \endgroup 1161 | \unskip 1162 | \@tempskipa #1\relax 1163 | \hskip -\@tempskipa 1164 | \else 1165 | \clubpenalty \@clubpenalty 1166 | \everypar{}% 1167 | \fi 1168 | }% 1169 | \fi 1170 | \ignorespaces 1171 | } 1172 | 1173 | \def\@trivlist{% 1174 | \@topsepadd\topsep 1175 | \if@noskipsec 1176 | \global\let\@period\@empty 1177 | \leavevmode 1178 | \global\let\@period.% 1179 | \fi 1180 | \ifvmode 1181 | \advance\@topsepadd\partopsep 1182 | \else 1183 | \unskip 1184 | \par 1185 | \fi 1186 | \if@inlabel 1187 | \@noparitemtrue 1188 | \@noparlisttrue 1189 | \else 1190 | \@noparlistfalse 1191 | \@topsep\@topsepadd 1192 | \fi 1193 | \advance\@topsep \parskip 1194 | \leftskip\z@skip 1195 | \rightskip\@rightskip 1196 | \parfillskip\@flushglue 1197 | \@setpar{\if@newlist\else{\@@par}\fi} 1198 | \global\@newlisttrue 1199 | \@outerparskip\parskip 1200 | } 1201 | 1202 | %%% Actually, 'abbrev' works just fine as the default - Gerry Feb. 2000 1203 | %%% Bibliography style. 1204 | 1205 | \parindent 0pt 1206 | \typeout{Using 'Abbrev' bibliography style} 1207 | \newcommand\bibyear[2]{% 1208 | \unskip\quad\ignorespaces#1\unskip 1209 | \if#2..\quad \else \quad#2 \fi 1210 | } 1211 | \newcommand{\bibemph}[1]{{\em#1}} 1212 | \newcommand{\bibemphic}[1]{{\em#1\/}} 1213 | \newcommand{\bibsc}[1]{{\sc#1}} 1214 | \def\@normalcite{% 1215 | \def\@cite##1##2{[##1\if@tempswa , ##2\fi]}% 1216 | } 1217 | \def\@citeNB{% 1218 | \def\@cite##1##2{##1\if@tempswa , ##2\fi}% 1219 | } 1220 | \def\@citeRB{% 1221 | \def\@cite##1##2{##1\if@tempswa , ##2\fi]}% 1222 | } 1223 | \def\start@cite#1#2{% 1224 | \edef\citeauthoryear##1##2##3{% 1225 | ###1% 1226 | \ifnum#2=\z@ \else\ ###2\fi 1227 | }% 1228 | \ifnum#1=\thr@@ 1229 | \let\@@cite\@citeyear 1230 | \else 1231 | \let\@@cite\@citenormal 1232 | \fi 1233 | \@ifstar{\@citeNB\@@cite}{\@normalcite\@@cite}% 1234 | } 1235 | %\def\cite{\start@cite23} 1236 | \DeclareRobustCommand\cite{\start@cite23} % January 2008 1237 | \def\citeNP{\cite*} % No Parentheses e.g. 5 1238 | %\def\citeA{\start@cite10} 1239 | \DeclareRobustCommand\citeA{\start@cite10} % January 2008 1240 | \def\citeANP{\citeA*} 1241 | %\def\shortcite{\start@cite23} 1242 | \DeclareRobustCommand\shortcite{\start@cite23} % January 2008 1243 | \def\shortciteNP{\shortcite*} 1244 | %\def\shortciteA{\start@cite20} 1245 | \DeclareRobustCommand\shortciteA{\start@cite20} % January 2008 1246 | \def\shortciteANP{\shortciteA*} 1247 | %\def\citeyear{\start@cite30} 1248 | \DeclareRobustCommand\citeyear{\start@cite30} % January 2008 1249 | \def\citeyearNP{\citeyear*} 1250 | %\def\citeN{% 1251 | \DeclareRobustCommand\citeN{% % January 2008 1252 | \@citeRB 1253 | \def\citeauthoryear##1##2##3{##1\ [##3% 1254 | \def\reserved@a{##1}% 1255 | \def\citeauthoryear####1####2####3{% 1256 | \def\reserved@b{####1}% 1257 | \ifx\reserved@a\reserved@b 1258 | ####3% 1259 | \else 1260 | \errmessage{Package acmart Error: author mismatch 1261 | in \string\citeN^^J^^J% 1262 | See the acmart package documentation for explanation}% 1263 | \fi 1264 | }% 1265 | }% 1266 | \@ifstar\@citeyear\@citeyear 1267 | } 1268 | %\def\shortciteN{% 1269 | \DeclareRobustCommand\shortciteN{% % January 2008 1270 | \@citeRB 1271 | \def\citeauthoryear##1##2##3{##2\ [##3% 1272 | \def\reserved@a{##2}% 1273 | \def\citeauthoryear####1####2####3{% 1274 | \def\reserved@b{####2}% 1275 | \ifx\reserved@a\reserved@b 1276 | ####3% 1277 | \else 1278 | \errmessage{Package acmart Error: author mismatch 1279 | in \string\shortciteN^^J^^J% 1280 | See the acmart package documentation for explanation}% 1281 | \fi 1282 | }% 1283 | }% 1284 | \@ifstar\@citeyear\@citeyear % changed from "\@ifstart" 12 Jan 2000 gkmt 1285 | } 1286 | 1287 | \def\@citenormal{% 1288 | \@ifnextchar [{\@tempswatrue\@citex;}% 1289 | % original {\@tempswafalse\@citex,[]}% was ; Gerry 2/24/00 1290 | {\@tempswafalse\@citex[]}% % GERRY FIX FOR BABEL 3/20/2009 1291 | } 1292 | 1293 | \def\@citeyear{% 1294 | \@ifnextchar [{\@tempswatrue\@citex,}% 1295 | % original {\@tempswafalse\@citex,[]}% 1296 | {\@tempswafalse\@citex[]}% % GERRY FIX FOR BABEL 3/20/2009 1297 | } 1298 | 1299 | \def\@citex#1[#2]#3{% 1300 | \let\@citea\@empty 1301 | \@cite{% 1302 | \@for\@citeb:=#3\do{% 1303 | \@citea 1304 | % original \def\@citea{#1 }% 1305 | \def\@citea{#1, }% % GERRY FIX FOR BABEL 3/20/2009 -- SO THAT YOU GET [1, 2] IN THE BODY TEXT 1306 | \edef\@citeb{\expandafter\@iden\@citeb}% 1307 | \if@filesw 1308 | \immediate\write\@auxout{\string\citation{\@citeb}}% 1309 | \fi 1310 | \@ifundefined{b@\@citeb}{% 1311 | {\bf ?}% 1312 | \@warning{% 1313 | Citation `\@citeb' on page \thepage\space undefined% 1314 | }% 1315 | }% 1316 | {\csname b@\@citeb\endcsname}% 1317 | }% 1318 | }{#2}% 1319 | } 1320 | %\let\@biblabel\@gobble % Dec. 2008 - Gerry 1321 | % ---- 1322 | \def\@biblabelnum#1{[#1]} % Gerry's solution #1 - for Natbib 1323 | \let\@biblabel=\@biblabelnum % Gerry's solution #1 - for Natbib 1324 | \def\newblock{\relax} % Gerry Dec. 2008 1325 | % --- 1326 | \newdimen\bibindent 1327 | \setcounter{enumi}{1} 1328 | \bibindent=0em 1329 | \def\thebibliography#1{% 1330 | \ifnum\addauflag=0\addauthorsection\global\addauflag=1\fi 1331 | \section[References]{% <=== OPTIONAL ARGUMENT ADDED HERE 1332 | {References} % was uppercased but this affects pdf bookmarks (SP/GM October 2004) 1333 | \@mkboth{{\refname}}{{\refname}}% 1334 | }% 1335 | \list{[\arabic{enumi}]}{% 1336 | \settowidth\labelwidth{[#1]}% 1337 | \leftmargin\labelwidth 1338 | \advance\leftmargin\labelsep 1339 | \advance\leftmargin\bibindent 1340 | \parsep=0pt\itemsep=1pt % GM July 2000 1341 | \itemindent -\bibindent 1342 | \listparindent \itemindent 1343 | \usecounter{enumi} 1344 | }% 1345 | \let\newblock\@empty 1346 | \raggedright % GM July 2000 1347 | \sloppy 1348 | \sfcode`\.=1000\relax 1349 | } 1350 | 1351 | 1352 | \gdef\balancecolumns 1353 | {\vfill\eject 1354 | \global\@colht=\textheight 1355 | \global\ht\@cclv=\textheight 1356 | } 1357 | 1358 | \newcount\colcntr 1359 | \global\colcntr=0 1360 | %\newbox\savebox 1361 | \newbox\saveb@x % January 2008 1362 | 1363 | \gdef \@makecol {% 1364 | \global\advance\colcntr by 1 1365 | \ifnum\colcntr>2 \global\colcntr=1\fi 1366 | \ifvoid\footins 1367 | \setbox\@outputbox \box\@cclv 1368 | \else 1369 | \setbox\@outputbox \vbox{% 1370 | \boxmaxdepth \@maxdepth 1371 | \@tempdima\dp\@cclv 1372 | \unvbox \@cclv 1373 | \vskip-\@tempdima 1374 | \vskip \skip\footins 1375 | \color@begingroup 1376 | \normalcolor 1377 | \footnoterule 1378 | \unvbox \footins 1379 | \color@endgroup 1380 | }% 1381 | \fi 1382 | \xdef\@freelist{\@freelist\@midlist}% 1383 | \global \let \@midlist \@empty 1384 | \@combinefloats 1385 | \ifvbox\@kludgeins 1386 | \@makespecialcolbox 1387 | \else 1388 | \setbox\@outputbox \vbox to\@colht {% 1389 | \@texttop 1390 | \dimen@ \dp\@outputbox 1391 | \unvbox \@outputbox 1392 | \vskip -\dimen@ 1393 | \@textbottom 1394 | }% 1395 | \fi 1396 | \global \maxdepth \@maxdepth 1397 | } 1398 | \def\titlenote{\@ifnextchar[\@xtitlenote{\stepcounter\@mpfn 1399 | \global\advance\titlenotecount by 1 1400 | \ifnum\titlenotecount=1 1401 | \raisebox{9pt}{$\ast$} 1402 | \fi 1403 | \ifnum\titlenotecount=2 1404 | \raisebox{9pt}{$\dagger$} 1405 | \fi 1406 | \ifnum\titlenotecount=3 1407 | \raisebox{9pt}{$\ddagger$} 1408 | \fi 1409 | \ifnum\titlenotecount=4 1410 | \raisebox{9pt}{$\S$} 1411 | \fi 1412 | \ifnum\titlenotecount=5 1413 | \raisebox{9pt}{$\P$} 1414 | \fi 1415 | \@titlenotetext 1416 | }} 1417 | 1418 | \long\def\@titlenotetext#1{\insert\footins{% 1419 | \ifnum\titlenotecount=1\global\tntoks={#1}\fi 1420 | \ifnum\titlenotecount=2\global\tntokstwo={#1}\fi 1421 | \ifnum\titlenotecount=3\global\tntoksthree={#1}\fi 1422 | \ifnum\titlenotecount=4\global\tntoksfour={#1}\fi 1423 | \ifnum\titlenotecount=5\global\tntoksfive={#1}\fi 1424 | \reset@font\footnotesize 1425 | \interlinepenalty\interfootnotelinepenalty 1426 | \splittopskip\footnotesep 1427 | \splitmaxdepth \dp\strutbox \floatingpenalty \@MM 1428 | \hsize\columnwidth \@parboxrestore 1429 | \protected@edef\@currentlabel{% 1430 | }% 1431 | \color@begingroup 1432 | \color@endgroup}} 1433 | 1434 | %%%%%%%%%%%%%%%%%%%%%%%%% 1435 | \ps@plain 1436 | \baselineskip=11pt 1437 | \let\thepage\relax % For NO page numbers - Gerry Nov. 30th. 1999 1438 | \def\setpagenumber#1{\global\setcounter{page}{#1}} 1439 | %\pagenumbering{arabic} % Arabic page numbers but commented out for NO page numbes - Gerry Nov. 30th. 1999 1440 | \twocolumn % Double column. 1441 | \flushbottom % Even bottom -- alas, does not balance columns at end of document 1442 | \pagestyle{plain} 1443 | 1444 | % Need Copyright Year and Copyright Data to be user definable (in .tex file). 1445 | % Gerry Nov. 30th. 1999 1446 | \newtoks\copyrtyr 1447 | \newtoks\acmcopyr 1448 | \newtoks\boilerplate 1449 | \def\CopyrightYear#1{\global\copyrtyr{#1}} 1450 | \def\crdata#1{\global\acmcopyr{#1}} 1451 | \def\permission#1{\global\boilerplate{#1}} 1452 | % 1453 | \newtoks\copyrightetc 1454 | \global\copyrightetc{\ } % Need to have 'something' so that adequate space is left for pasting in a line if "confinfo" is supplied. 1455 | 1456 | \toappear{\the\boilerplate\par 1457 | {\confname{\the\conf}} \the\confinfo\par \the\copyrightetc} 1458 | % End of ACM_PROC_ARTICLE-SP.CLS -- V3.2SP - 04/22/2009 -- 1459 | % Gerry Murray -- Wednesday April 22nd. 2009 1460 | % 1461 | % The following section (i.e. 3 .sty inclusions) was added in May 2007 so as to fix the problems that many 1462 | % authors were having with accents. Sometimes accents would occur, but the letter-character would be of a different 1463 | % font. Conversely the letter-character font would be correct but, e.g. a 'bar' would appear superimposed on the 1464 | % character instead of, say, an unlaut/diaresis. Sometimes the letter-character would NOT appear at all. 1465 | % Using [T1]{fontenc} outright was not an option as this caused 99% of the authors to 'produce' a Type-3 (bitmapped) 1466 | % PDF file - useless for production. 1467 | % 1468 | % For proper (font) accenting we NEED these packages to be part of the .cls file i.e. 'ae', 'aecompl' and 'aeguil' 1469 | % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1470 | %% This is file `ae.sty' 1471 | \def\fileversion{1.3} 1472 | \def\filedate{2001/02/12} 1473 | \NeedsTeXFormat{LaTeX2e} 1474 | %\ProvidesPackage{ae}[\filedate\space\fileversion\space % GM 1475 | % Almost European Computer Modern] % GM - keeping the log file clean(er) 1476 | \newif\if@ae@slides \@ae@slidesfalse 1477 | \DeclareOption{slides}{\@ae@slidestrue} 1478 | \ProcessOptions 1479 | \fontfamily{aer} 1480 | \RequirePackage[T1]{fontenc} 1481 | \if@ae@slides 1482 | \renewcommand{\sfdefault}{laess} 1483 | \renewcommand{\rmdefault}{laess} % no roman 1484 | \renewcommand{\ttdefault}{laett} 1485 | \else 1486 | \renewcommand{\sfdefault}{aess} 1487 | \renewcommand{\rmdefault}{aer} 1488 | \renewcommand{\ttdefault}{aett} 1489 | \fi 1490 | \endinput 1491 | %% 1492 | %% End of file `ae.sty'. 1493 | % 1494 | % 1495 | \def\fileversion{0.9} 1496 | \def\filedate{1998/07/23} 1497 | \NeedsTeXFormat{LaTeX2e} 1498 | %\ProvidesPackage{aecompl}[\filedate\space\fileversion\space % GM 1499 | %T1 Complements for AE fonts (D. Roegel)] % GM -- keeping the log file clean(er) 1500 | 1501 | \def\@ae@compl#1{{\fontencoding{T1}\fontfamily{cmr}\selectfont\symbol{#1}}} 1502 | \def\guillemotleft{\@ae@compl{19}} 1503 | \def\guillemotright{\@ae@compl{20}} 1504 | \def\guilsinglleft{\@ae@compl{14}} 1505 | \def\guilsinglright{\@ae@compl{15}} 1506 | \def\TH{\@ae@compl{222}} 1507 | \def\NG{\@ae@compl{141}} 1508 | \def\ng{\@ae@compl{173}} 1509 | \def\th{\@ae@compl{254}} 1510 | \def\DJ{\@ae@compl{208}} 1511 | \def\dj{\@ae@compl{158}} 1512 | \def\DH{\@ae@compl{208}} 1513 | \def\dh{\@ae@compl{240}} 1514 | \def\@perthousandzero{\@ae@compl{24}} 1515 | \def\textperthousand{\%\@perthousandzero} 1516 | \def\textpertenthousand{\%\@perthousandzero\@perthousandzero} 1517 | \endinput 1518 | % 1519 | % 1520 | %% This is file `aeguill.sty' 1521 | % This file gives french guillemets (and not guillemots!) 1522 | % built with the Polish CMR fonts (default), WNCYR fonts, the LASY fonts 1523 | % or with the EC fonts. 1524 | % This is useful in conjunction with the ae package 1525 | % (this package loads the ae package in case it has not been loaded) 1526 | % and with or without the french(le) package. 1527 | % 1528 | % In order to get the guillemets, it is necessary to either type 1529 | % \guillemotleft and \guillemotright, or to use an 8 bit encoding 1530 | % (such as ISO-Latin1) which selects these two commands, 1531 | % or, if you use the french package (but not the frenchle package), 1532 | % to type << or >>. 1533 | % 1534 | % By default, you get the Polish CMR guillemets; if this package is loaded 1535 | % with the `cm' option, you get the LASY guillemets; with `ec,' you 1536 | % get the EC guillemets, and with `cyr,' you get the cyrillic guillemets. 1537 | % 1538 | % In verbatim mode, you always get the EC/TT guillemets. 1539 | % 1540 | % The default option is interesting in conjunction with PDF, 1541 | % because there is a Type 1 version of the Polish CMR fonts 1542 | % and these guillemets are very close in shape to the EC guillemets. 1543 | % There are no free Type 1 versions of the EC fonts. 1544 | % 1545 | % Support for Polish CMR guillemets was kindly provided by 1546 | % Rolf Niepraschk in version 0.99 (2000/05/22). 1547 | % Bernd Raichle provided extensive simplifications to the code 1548 | % for version 1.00. 1549 | % 1550 | % This package is released under the LPPL. 1551 | % 1552 | % Changes: 1553 | % Date version 1554 | % 2001/04/12 1.01 the frenchle and french package are now distinguished. 1555 | % 1556 | \def\fileversion{1.01} 1557 | \def\filedate{2001/04/12} 1558 | \NeedsTeXFormat{LaTeX2e} 1559 | %\ProvidesPackage{aeguill}[2001/04/12 1.01 % % GM 1560 | %AE fonts with french guillemets (D. Roegel)] % GM - keeping the log file clean(er) 1561 | %\RequirePackage{ae} % GM May 2007 - already embedded here 1562 | 1563 | \newcommand{\@ae@switch}[4]{#4} 1564 | \DeclareOption{ec}{\renewcommand\@ae@switch[4]{#1}} 1565 | \DeclareOption{cm}{\renewcommand\@ae@switch[4]{#2}} 1566 | \DeclareOption{cyr}{\renewcommand\@ae@switch[4]{#3}} 1567 | \DeclareOption{pl}{\renewcommand\@ae@switch[4]{#4}} 1568 | \ExecuteOptions{pl} 1569 | \ProcessOptions 1570 | 1571 | % 1572 | % Load necessary packages 1573 | % 1574 | \@ae@switch{% ec 1575 | % do nothing 1576 | }{% cm 1577 | \RequirePackage{latexsym}% GM - May 2007 - already 'mentioned as required' up above 1578 | }{% cyr 1579 | \RequirePackage[OT2,T1]{fontenc}% 1580 | }{% pl 1581 | \RequirePackage[OT4,T1]{fontenc}% 1582 | } 1583 | 1584 | % The following command will be compared to \frenchname, 1585 | % as defined in french.sty and frenchle.sty. 1586 | \def\aeguillfrenchdefault{french}% 1587 | 1588 | \let\guill@verbatim@font\verbatim@font 1589 | \def\verbatim@font{\guill@verbatim@font\ecguills{cmtt}% 1590 | \let\guillemotleft\@oguills\let\guillemotright\@fguills} 1591 | 1592 | \begingroup \catcode`\<=13 \catcode`\>=13 1593 | \def\x{\endgroup 1594 | \def\ae@lfguill{<<}% 1595 | \def\ae@rfguill{>>}% 1596 | }\x 1597 | 1598 | \newcommand{\ecguills}[1]{% 1599 | \def\selectguillfont{\fontencoding{T1}\fontfamily{#1}\selectfont}% 1600 | \def\@oguills{{\selectguillfont\symbol{19}}}% 1601 | \def\@fguills{{\selectguillfont\symbol{20}}}% 1602 | } 1603 | 1604 | \newcommand{\aeguills}{% 1605 | \ae@guills 1606 | % We redefine \guillemotleft and \guillemotright 1607 | % in order to catch them when they are used 1608 | % with \DeclareInputText (in latin1.def for instance) 1609 | % We use \auxWARNINGi as a safe indicator that french.sty is used. 1610 | \gdef\guillemotleft{\ifx\auxWARNINGi\undefined 1611 | \@oguills % neither french.sty nor frenchle.sty 1612 | \else 1613 | \ifx\aeguillfrenchdefault\frenchname 1614 | \ae@lfguill % french.sty 1615 | \else 1616 | \@oguills % frenchle.sty 1617 | \fi 1618 | \fi}% 1619 | \gdef\guillemotright{\ifx\auxWARNINGi\undefined 1620 | \@fguills % neither french.sty nor frenchle.sty 1621 | \else 1622 | \ifx\aeguillfrenchdefault\frenchname 1623 | \ae@rfguill % french.sty 1624 | \else 1625 | \@fguills % frenchle.sty 1626 | \fi 1627 | \fi}% 1628 | } 1629 | 1630 | % 1631 | % Depending on the class option 1632 | % define the internal command \ae@guills 1633 | \@ae@switch{% ec 1634 | \newcommand{\ae@guills}{% 1635 | \ecguills{cmr}}% 1636 | }{% cm 1637 | \newcommand{\ae@guills}{% 1638 | \def\selectguillfont{\fontencoding{U}\fontfamily{lasy}% 1639 | \fontseries{m}\fontshape{n}\selectfont}% 1640 | \def\@oguills{\leavevmode\nobreak 1641 | \hbox{\selectguillfont (\kern-.20em(\kern.20em}\nobreak}% 1642 | \def\@fguills{\leavevmode\nobreak 1643 | \hbox{\selectguillfont \kern.20em)\kern-.2em)}% 1644 | \ifdim\fontdimen\@ne\font>\z@\/\fi}}% 1645 | }{% cyr 1646 | \newcommand{\ae@guills}{% 1647 | \def\selectguillfont{\fontencoding{OT2}\fontfamily{wncyr}\selectfont}% 1648 | \def\@oguills{{\selectguillfont\symbol{60}}}% 1649 | \def\@fguills{{\selectguillfont\symbol{62}}}} 1650 | }{% pl 1651 | \newcommand{\ae@guills}{% 1652 | \def\selectguillfont{\fontencoding{OT4}\fontfamily{cmr}\selectfont}% 1653 | \def\@oguills{{\selectguillfont\symbol{174}}}% 1654 | \def\@fguills{{\selectguillfont\symbol{175}}}} 1655 | } 1656 | 1657 | 1658 | \AtBeginDocument{% 1659 | \ifx\GOfrench\undefined 1660 | \aeguills 1661 | \else 1662 | \let\aeguill@GOfrench\GOfrench 1663 | \gdef\GOfrench{\aeguill@GOfrench \aeguills}% 1664 | \fi 1665 | } 1666 | 1667 | \endinput 1668 | % 1669 | 1670 | 1671 | -------------------------------------------------------------------------------- /sigproc-sp-org-new.org: -------------------------------------------------------------------------------- 1 | #+TITLE: 2 | #+KEYWORDS: Open Science, Reproducible Research 3 | #+LANGUAGE: en 4 | #+OPTIONS: H:5 author:nil email:nil creator:nil timestamp:nil skip:nil toc:nil 5 | #+EXPORT_SELECT_TAGS: export 6 | #+EXPORT_EXCLUDE_TAGS: noexport 7 | #+STARTUP: overview 8 | #+FILETAGS: RESEARCH 9 | 10 | # THIS IS SIGPROC-SP.TEX - VERSION 3.1 11 | # WORKS WITH V3.2SP OF ACM_PROC_ARTICLE-SP.CLS 12 | # APRIL 2009 13 | # 14 | # It is an example file showing how to use the 'acm_proc_article-sp.cls' V3.2SP 15 | # LaTeX2e document class file for Conference Proceedings submissions. 16 | # ---------------------------------------------------------------------------------------------------------------- 17 | # This .tex file (and associated .cls V3.2SP) *DOES NOT* produce: 18 | # 1) The Permission Statement 19 | # 2) The Conference (location) Info information 20 | # 3) The Copyright Line with ACM data 21 | # 4) Page numbering 22 | # --------------------------------------------------------------------------------------------------------------- 23 | # It is an example which *does* use the .bib file (from which the .bbl file 24 | # is produced). 25 | # REMEMBER HOWEVER: After having produced the .bbl file, 26 | # and prior to final submission, 27 | # you need to 'insert' your .bbl file into your source .tex file so as to provide 28 | # ONE 'self-contained' source file. 29 | # 30 | # Questions regarding SIGS should be sent to 31 | # Adrienne Griscti ---> griscti@acm.org 32 | # Questions/suggestions regarding the guidelines, .tex and .cls files, etc. to 33 | # 34 | # Gerald Murray ---> murray@hq.acm.org 35 | # 36 | # For tracking purposes - this is V3.1SP - APRIL 2009 37 | 38 | #+LaTeX_CLASS: acm-proc-article-sp 39 | 40 | 41 | #+BEGIN_LaTeX 42 | \title{A Sample {\ttlit ACM} SIG Proceedings Paper in Org-mode Format\titlenote{(Does NOT produce the permission block, copyright information nor page numbering). For use with ACM\_PROC\_ARTICLE-SP.CLS. Supported by ACM.}} 43 | \subtitle{[Extended Abstract]\titlenote{A full version of this paper is available as 44 | \textit{Author's Guide to Preparing ACM SIG Proceedings Using 45 | \LaTeX$2_\epsilon$\ and BibTeX} at 46 | \texttt{www.acm.org/eaddress.htm}}} 47 | #+END_LaTeX 48 | 49 | # Note that add-author-record isn't fully correct. It formats a comma 50 | # separated list, when it should return a list with the final element 51 | # separated by "and". 52 | 53 | #+name: author-list 54 | #+header: :var authors=authorlist 55 | #+header: :var add-authors=additional-authors 56 | #+header: :results latex 57 | #+header: :exports results 58 | #+BEGIN_SRC emacs-lisp 59 | (defun author-record (r) 60 | (if (> (length (first r)) 0) 61 | (format "\\alignauthor\n%s\\titlenote{%s}\\\\ 62 | \\affaddr{%s}\\\\ 63 | \\affaddr{%s}\\\\ 64 | \\affaddr{%s}\\\\ 65 | \\email{%s}" (first r) (second r) (third r) (fourth r) (fifth r) 66 | (sixth r)) 67 | "\\and") 68 | ) 69 | 70 | (defun non-empty (list) 71 | (let ( (i 0)) 72 | (mapcar #'(lambda (elem) 73 | (if (> (length (first elem)) 0) 74 | (incf i))) 75 | list) 76 | i) 77 | ) 78 | 79 | (defun add-author-record (r) 80 | (format "%s (%s, email: 81 | {\\texttt{%s}})" 82 | (first r) (second r) (third r))) 83 | 84 | (let ( (i (+ (non-empty (cdr (cdr authors))) (- (length add-authors) 2) )) 85 | (a (mapcar (lambda (row) 86 | (author-record row)) 87 | (cdr (cdr authors)))) 88 | (b (mapcar (lambda (row) 89 | (add-author-record row)) 90 | (cdr (cdr add-authors)))) 91 | ) 92 | (concat 93 | (format "\\numberofauthors{%s}\n\\author{\n" i) 94 | (mapconcat 'identity a "\n") 95 | "}" 96 | (if (> (length add-authors) 0) 97 | (concat "\n\\additionalauthors{Additional authors: " 98 | (mapconcat 'identity b ", ") 99 | ".}") 100 | ()))) 101 | 102 | #+END_SRC 103 | 104 | #+RESULTS: author-list 105 | #+BEGIN_LaTeX 106 | \numberofauthors{8} 107 | \author{ 108 | \alignauthor 109 | Ben Trovato\titlenote{Dr.~Trovato insisted his name be first.}\\ 110 | \affaddr{Institute for Clarity in Documentation}\\ 111 | \affaddr{1932 Wallamaloo Lane}\\ 112 | \affaddr{Wallamaloo, New Zealand}\\ 113 | \email{trovato@corporation.com} 114 | \alignauthor 115 | G.K.M. Tobin\titlenote{The secretary disavows any knowledge of this author's actions.}\\ 116 | \affaddr{Institute for Clarity in Documentation}\\ 117 | \affaddr{P.O. Box 1212}\\ 118 | \affaddr{Dublin, Ohio 43017-6221}\\ 119 | \email{webmaster@marysville-ohio.com} 120 | \alignauthor 121 | Lars Th{\o}rv{\"a}ld\titlenote{This author is the one who did all the really hard work.}\\ 122 | \affaddr{The Th{\o}rv{\"a}ld Group}\\ 123 | \affaddr{1 Th{\o}rv{\"a}ld Circle}\\ 124 | \affaddr{Hekla, Iceland}\\ 125 | \email{larst@affiliation.org} 126 | \and 127 | \alignauthor 128 | Lawrence P. Leipuner\titlenote{}\\ 129 | \affaddr{Brookhaven Laboratories}\\ 130 | \affaddr{Brookhaven National Lab}\\ 131 | \affaddr{P.O. Box 5000}\\ 132 | \email{lleipuner@reasearchlabs.org} 133 | \alignauthor 134 | Sean Fogarty\titlenote{}\\ 135 | \affaddr{NASA Ames Research Center}\\ 136 | \affaddr{Moffett Field}\\ 137 | \affaddr{California 94035}\\ 138 | \email{fogarty@amesres.org} 139 | \alignauthor 140 | Charles Palmer\titlenote{}\\ 141 | \affaddr{Palmer Research Laboratories}\\ 142 | \affaddr{8600 Datapoint Drive}\\ 143 | \affaddr{San Antonio, Texas 78229}\\ 144 | \email{cpalmer@prl.com}} 145 | \additionalauthors{Additional authors: John Smith (The Th{\o}rv{\"a}ld Group, email: 146 | {\texttt{jsmith@affiliation.org}}), Julius P. Kumquat (The Kumquat Consortium, email: 147 | {\texttt{jpkumquat@consortium}}).} 148 | #+END_LaTeX 149 | 150 | \maketitle 151 | 152 | #+BEGIN_abstract 153 | This paper provides a sample of a LaTeX document which resembles the 154 | style of original ACM LaTeX template ``Option 1: LaTeX2e - Strict 155 | Adherence to SIGS style''. The focus on this template is the usage 156 | with Emacs Org-mode. Therefore the content is reduced to a minimum. 157 | #+END_abstract 158 | 159 | #+name: ACM-categories 160 | #+header: :var c=categories 161 | #+header: :results latex 162 | #+header: :exports results 163 | #+BEGIN_SRC emacs-lisp 164 | (defun category-record (r) 165 | (format "\\category{%s}{%s}{%s}[%s]" 166 | (first r) (second r) (third r) (fourth r))) 167 | (let ( (i (mapcar (lambda (row) 168 | (category-record row)) 169 | (cdr (cdr c))))) 170 | (mapconcat 'identity i "\n") 171 | ) 172 | #+END_SRC 173 | 174 | #+RESULTS: ACM-categories 175 | #+BEGIN_LaTeX 176 | \category{H.4}{Information Systems Applications}{Miscellaneous}[] 177 | \category{D.2.8}{Software Engineering}{Metrics}[complexity measures, performance measures] 178 | #+END_LaTeX 179 | 180 | #+CALL: list-to-cs-string(in-command="terms", in-list=term-list) :results latex :exports results 181 | 182 | #+RESULTS: list-to-cs-string(in-command="terms", in-list=term-list):results latex :exports results 183 | #+BEGIN_LaTeX 184 | \terms{Theory} 185 | #+END_LaTeX 186 | 187 | #+CALL: list-to-cs-string(in-command="keywords", in-list=keyword-list) :results latex :exports results 188 | 189 | #+RESULTS: list-to-cs-string(in-command="keywords", in-list=keyword-list):results latex :exports results 190 | #+BEGIN_LaTeX 191 | \keywords{ACM Proceedings, \LaTeX, text tagging} 192 | #+END_LaTeX 193 | 194 | 195 | * Introduction 196 | 197 | The /proceedings/ are the records of a conference. 198 | ACM seeks to give these conference by-products a uniform, 199 | high-quality appearance. To do this, ACM has some rigid 200 | requirements for the format of the proceedings documents: there 201 | is a specified format (balanced double columns), a specified 202 | set of fonts (Arial or Helvetica and Times Roman) in 203 | certain specified sizes (for instance, 9 point for body copy), 204 | a specified live area (18 $\times$ 23.5 cm [7" $\times$ 9.25"]) centered on 205 | the page, specified size of margins (1.9 cm [0.75"]) top, (2.54 cm [1"]) bottom 206 | and (1.9 cm [.75"]) left and right; specified column width 207 | (8.45 cm [3.33"]) and gutter size (.83 cm [.33"]). 208 | 209 | The good news is, with only a handful of manual settings[fn:1], the 210 | LaTeX document class file handles all of this for you. 211 | 212 | The remainder of this document is concerned with showing, in 213 | the context of an "actual" document, the LaTeX commands 214 | specifically available for denoting the structure of a 215 | proceedings paper, rather than with giving rigorous descriptions 216 | or explanations of such commands. 217 | * The [[acm:secit][Body]] of The Paper 218 | 219 | Typically, the body of a paper is organized into a hierarchical 220 | structure, with numbered or unnumbered headings for sections, 221 | subsections, sub-subsections, and even smaller sections. The command 222 | =\section= that precedes this paragraph is part of such a 223 | hierarchy.[fn:2] LaTeX handles the numbering and placement of these 224 | headings for you, when you use the appropriate heading commands around 225 | the titles of the headings. If you want a sub-subsection or smaller 226 | part to be unnumbered in your output, simply append an asterisk to the 227 | command name. Examples of both numbered and unnumbered headings will 228 | appear throughout the balance of this sample document. 229 | 230 | Because the entire article is contained in the *document* environment, 231 | you can indicate the start of a new paragraph with a blank line in 232 | your input file; that is why this sentence forms a separate paragraph. 233 | 234 | ** Type Changes and [[acm:subsecit][Special]] Characters 235 | 236 | We have already seen several typeface changes in this sample. You can 237 | indicate italicized words or phrases in your text with the command 238 | /italics/; emboldening with the command *bold* and typewriter-style 239 | (for instance, for computer code) with =typewriter style=. But 240 | remember, you do not have to indicate typestyle changes when such 241 | changes are part of the /structural/ elements of your article; for 242 | instance, the heading of this subsection will be in a sans serif[fn:3] 243 | typeface, but that is handled by the document class file. Take care 244 | with the use of[fn:4] the curly braces in typeface changes; they mark 245 | the beginning and end of the text that is to be in the different 246 | typeface. 247 | 248 | You can use whatever symbols, accented characters, or non-English 249 | characters you need anywhere in your document; you can find a complete 250 | list of what is available in the /LaTeX User's Guide/ [[cite:Lamport:LaTeX][(Lamport LaTeX)]]. 251 | 252 | 253 | ** Math Equations 254 | You may want to display math equations in three distinct styles: 255 | inline, numbered or non-numbered display. Each of 256 | the three are discussed in the next sections. 257 | *** Inline (In-text) Equations 258 | A formula that appears in the running text is called an inline or 259 | in-text formula. It is produced by the *math* environment, which can 260 | be invoked with the usual =\begin. . .\end= construction or with the 261 | short form =\(. . .\)=. You can use any of the symbols and structures, 262 | from $\alpha$ to $\omega$, available in LaTeX[[cite:Lamport:LaTeX][(Lamport LaTeX)]]; this 263 | section will simply show a few examples of in-text equations in 264 | context. Notice how this equation: \( \lim_{n\rightarrow \infty}x=0 \), set here in in-line math style, looks slightly different when set 265 | in display style. (See next section). 266 | *** Display Equations 267 | A numbered display equation -- one set off by vertical space from the 268 | text and centered horizontally -- is produced by the *equation* 269 | environment. An unnumbered display equation is produced by the 270 | *displaymath* environment. 271 | 272 | Again, in either environment, you can use any of the symbols 273 | and structures available in LaTeX; this section will just 274 | give a couple of examples of display equations in context. 275 | First, consider the equation, shown as an inline equation above: 276 | # \begin{equation}\lim_{n\rightarrow \infty}x=0\end{equation} 277 | Notice how it is formatted somewhat differently in 278 | the *displaymath* 279 | environment. Now, we'll enter an unnumbered equation: 280 | \begin{displaymath} 281 | \sum_{i=0}^{\infty} x + 1 282 | \end{displaymath} 283 | and follow it with another numbered equation: 284 | \begin{equation} 285 | \sum_{i=0}^{\infty}x_i=\int_{0}^{\pi+2} f 286 | \end{equation} 287 | just to demonstrate \LaTeX's able handling of numbering. 288 | 289 | ** Citations 290 | Citations to articles [[cite:bowman:reasoning, clark:pct, braams:babel, herlihy:methodology][(Long list)]], conference proceedings [[cite:clark:pct][(Clark)]] or 291 | books [[cite:salas:calculus, Lamport:LaTeX][(Book citations)]] listed in the Bibliography section of your 292 | article will occur throughout the text of your article. You should 293 | use BibTeX to automatically produce this bibliography; you simply need 294 | to insert one of several citation commands with a key of the item 295 | cited in the proper location in the =.tex= file [[cite:Lamport:LaTeX][(Lapmport LaTeX)]]. The 296 | key is a short reference you invent to uniquely identify each work; in 297 | this sample document, the key is the first author's surname and a word 298 | from the title. This identifying key is included with each item in 299 | the =.bib= file for your article. 300 | 301 | The details of the construction of the =.bib= file are beyond the 302 | scope of this sample document, but more information can be found in 303 | the /Author's Guide/, and exhaustive details in the /LaTeX User's 304 | Guide/ [[cite:Lamport:LaTeX][(Lamport LaTeX)]]. 305 | 306 | This article shows only the plainest form of the citation command, 307 | using =\cite=. This is what is stipulated in the SIGS style 308 | specifications. No other citation format is endorsed. 309 | 310 | ** Tables 311 | Because tables cannot be split across pages, the best placement for 312 | them is typically the top of the page nearest their initial cite. To 313 | ensure this proper "floating" placement of tables, use the 314 | environment *table* to enclose the table's contents and the table 315 | caption. The contents of the table itself must go in the *tabular* 316 | environment, to be aligned properly in rows and columns, with the 317 | desired horizontal and vertical rules. Again, detailed instructions 318 | on *tabular* material is found in the /LaTeX User's Guide/. 319 | 320 | Immediately following this sentence is the point at which Table 1 is 321 | included in the input file; compare the placement of the table here 322 | with the table in the printed dvi output of this document. 323 | 324 | # \begin{table} 325 | # \centering 326 | # \caption{Frequency of Special Characters} 327 | # \begin{tabular}{|c|c|l|} \hline 328 | # Non-English or Math&Frequency&Comments\\ \hline 329 | # \O & 1 in 1,000& For Swedish names\\ \hline 330 | # $\pi$ & 1 in 5& Common in math\\ \hline 331 | # \$ & 4 in 5 & Used in business\\ \hline 332 | # $\Psi^2_1$ & 1 in 40,000& Unexplained usage\\ 333 | # \hline\end{tabular} 334 | # \end{table} 335 | 336 | # Note that there can be no space between these attribute lines or 337 | # between the attribute lines and the following table. 338 | 339 | #+CAPTION: Frequency of Special Characters 340 | #+ATTR_LaTeX: align=|c|c|l| 341 | |---------------------+-------------+-------------------| 342 | | Non-English or Math | Frequency | Comments | 343 | |---------------------+-------------+-------------------| 344 | | \O | 1 in 1,000 | For Swedish names | 345 | |---------------------+-------------+-------------------| 346 | | $\pi$ | 1 in 5 | Common in math | 347 | |---------------------+-------------+-------------------| 348 | | \$ | 4 in 5 | Used in business | 349 | |---------------------+-------------+-------------------| 350 | | $\Psi^2_1$ | 1 in 40,000 | Unexplained usage | 351 | |---------------------+-------------+-------------------| 352 | 353 | To set a wider table, which takes up the whole width of the page's 354 | live area, use the environment *table\** to enclose the table's 355 | contents and the table caption. As with a single-column table, this 356 | wide table will "float" to a location deemed more desirable. 357 | Immediately following this sentence is the point at which Table 2 is 358 | included in the input file; again, it is instructive to compare the 359 | placement of the table here with the table in the printed dvi output 360 | of this document. 361 | 362 | 363 | # \begin{table*} 364 | # \centering 365 | # \caption{Some Typical Commands} 366 | # \begin{tabular}{|c|c|l|} \hline 367 | # Command&A Number&Comments\\ \hline 368 | # \texttt{{\char'134}alignauthor} & 100& Author alignment\\ \hline 369 | # \texttt{{\char'134}numberofauthors}& 200& Author enumeration\\ \hline 370 | # \texttt{{\char'134}table}& 300 & For tables\\ \hline 371 | # \texttt{{\char'134}table*}& 400& For wider tables\\ \hline\end{tabular} 372 | # \end{table*} 373 | # end the environment with {table*}, NOTE not {table}! 374 | 375 | #+CAPTION: Some Typical Commands 376 | #+ATTR_LaTeX: table* align=|c|c|l| 377 | |--------------------+----------+--------------------| 378 | | Command | A Number | Comments | 379 | |--------------------+----------+--------------------| 380 | | =\alignauthor= | 100 | Author alignment | 381 | |--------------------+----------+--------------------| 382 | | =\numberofauthors= | 200 | Author enumeration | 383 | |--------------------+----------+--------------------| 384 | | =\table= | 300 | For tables | 385 | |--------------------+----------+--------------------| 386 | | =\table*= | 400 | For wider tables | 387 | |--------------------+----------+--------------------| 388 | 389 | ** Figures 390 | 391 | Like tables, figures cannot be split across pages; the best placement 392 | for them is typically the top or the bottom of the page nearest their 393 | initial cite. To ensure this proper "floating" placement of figures, 394 | use the environment *figure* to enclose the figure and its caption. 395 | 396 | This sample document contains examples of *.eps* 397 | and *.ps* files to be displayable with LaTeX. More 398 | details on each of these is found in the /Author's Guide/. 399 | 400 | #+CAPTION: A sample black and white graphic (.eps format). 401 | #+ATTR_LaTeX: width=\linewidth 402 | [[file:fly.eps]] 403 | 404 | #+CAPTION: A sample black and white graphic (.eps format) that has been resized. 405 | #+ATTR_LaTeX: width=1in 406 | [[file:flies.eps]] 407 | 408 | #+BEGIN_COMMENT 409 | \begin{figure} 410 | \centering 411 | \epsfig{file=fly.eps} 412 | \caption{A sample black and white graphic (.eps format).} 413 | \end{figure} 414 | 415 | \begin{figure} 416 | \centering 417 | \epsfig{file=fly.eps, height=1in, width=1in} 418 | \caption{A sample black and white graphic (.eps format) 419 | that has been resized with the \texttt{epsfig} command.} 420 | \end{figure} 421 | #+END_COMMENT 422 | 423 | As was the case with tables, you may want a figure 424 | that spans two columns. To do this, and still to 425 | ensure proper ``floating'' placement of tables, use the environment 426 | *figure\** to enclose the figure and its caption. 427 | 428 | Note that either *.ps* or *.eps* formats are used; use the =\epsfig= 429 | or =\psfig= commands as appropriate for the different file types. 430 | 431 | ** Theorem-like Constructs 432 | Other common constructs that may occur in your article are the forms 433 | for logical constructs like theorems, axioms, corollaries and proofs. 434 | There are two forms, one produced by the command =\newtheorem= and the 435 | other by the command =\newdef=; perhaps the clearest and easiest way 436 | to distinguish them is to compare the two in the output of this sample 437 | document: 438 | 439 | This uses the *theorem* environment, created by the =\newtheorem= command: 440 | \newtheorem{theorem}{Theorem} 441 | \begin{theorem} 442 | Let $f$ be continuous on $[a,b]$. If $G$ is 443 | an antiderivative for $f$ on $[a,b]$, then 444 | \begin{displaymath}\int^b_af(t)dt = G(b) - G(a).\end{displaymath} 445 | \end{theorem} 446 | 447 | 448 | The other uses the *definition* environment, created 449 | by the =\newdef= command: 450 | \newdef{definition}{Definition} 451 | \begin{definition} 452 | If $z$ is irrational, then by $e^z$ we mean the 453 | unique number which has 454 | logarithm $z$: \begin{displaymath}{\log e^z = z}\end{displaymath} 455 | \end{definition} 456 | 457 | #+CAPTION: A sample black and white graphic (.eps format) that needs to span two columns of text. 458 | #+ATTR_LaTeX: multicolumn 459 | [[file:flies.eps]] 460 | 461 | 462 | #+BEGIN_COMMENT 463 | 464 | \begin{figure} 465 | \centering 466 | \psfig{file=rosette.ps, height=1in, width=1in,} 467 | \caption{A sample black and white graphic (.ps format) that has 468 | been resized with the \texttt{psfig} command.} 469 | \end{figure} 470 | 471 | Two lists of constructs that use one of these 472 | forms is given in the 473 | /Author's Guidelines/. 474 | 475 | \begin{figure*} 476 | \centering 477 | \epsfig{file=flies.eps} 478 | \caption{A sample black and white graphic (.eps format) 479 | that needs to span two columns of text.} 480 | \end{figure*} 481 | and don't forget to end the environment with 482 | {figure*}, not {figure}! 483 | 484 | #+END_COMMENT 485 | 486 | There is one other similar construct environment, which is already set 487 | up for you; i.e. you must /not/ use a =newdef= command to create it: 488 | the *proof* environment. Here is a example of its use: 489 | #+BEGIN_proof 490 | Suppose on the contrary there exists a real number $L$ such that 491 | \begin{displaymath} 492 | \lim_{x\rightarrow\infty} \frac{f(x)}{g(x)} = L. 493 | \end{displaymath} 494 | Then 495 | \begin{displaymath} 496 | l=\lim_{x\rightarrow c} f(x) 497 | = \lim_{x\rightarrow c} 498 | \left[ g{x} \cdot \frac{f(x)}{g(x)} \right ] 499 | = \lim_{x\rightarrow c} g(x) \cdot \lim_{x\rightarrow c} 500 | \frac{f(x)}{g(x)} = 0\cdot L = 0, 501 | \end{displaymath} 502 | which contradicts our assumption that $l\neq 0$. 503 | #+END_proof 504 | 505 | Complete rules about using these environments and using the two 506 | different creation commands are in the /Author's Guide/; please 507 | consult it for more detailed instructions. If you need to use another 508 | construct, not listed therein, which you want to have the same 509 | formatting as the Theorem or the Definition[[cite:salas:calculus][(Salas Calculus)]] shown 510 | above, use the =\newtheorem= or the =\newdef= command, respectively, 511 | to create it. 512 | ** A [[acm:secit][Caveat]] for the TeX Expert 513 | #+COMMENT: This should be \subsection*. 514 | Because you have just been given permission to use the =newdef= 515 | command to create a new form, you might think you can use \TeX's 516 | =def= to create a new command: /Please refrain from doing this!/ 517 | Remember that your LaTeX source code is primarily intended to create 518 | camera-ready copy, but may be converted to other forms -- 519 | e.g. HTML. If you inadvertently omit some or all of the =\def= s 520 | recompilation will be, to say the least, problematic. 521 | 522 | * Conclusions 523 | This paragraph will end the body of this sample document. 524 | Remember that you might still have Acknowledgments or 525 | Appendices; brief samples of these 526 | follow. There is still the Bibliography to deal with; and 527 | we will make a disclaimer about that here: with the exception 528 | of the reference to the LaTeX book, the citations in 529 | this paper are to articles which have nothing to 530 | do with the present subject and are used as 531 | examples only. 532 | 533 | * Acknowledgments 534 | This section is optional; it is a location for you to acknowledge 535 | grants, funding, editing assistance and what have you. In the present 536 | case, for example, the authors would like to thank Gerald Murray of 537 | ACM for his help in codifying this /Author's Guide/ and the *.cls* and 538 | *.tex* files that it describes. 539 | 540 | 541 | \bibliographystyle{abbrv} 542 | \bibliography{sigproc} 543 | 544 | \appendix 545 | 546 | * Headings in Appendices 547 | The rules about hierarchical headings discussed above for the body of 548 | the article are different in the appendices. In the *appendix* 549 | environment, the command *section* is used to indicate the start of 550 | each Appendix, with alphabetic order designation (i.e. the first is A, 551 | the second B, etc.) and a title (if you include one). So, if you need 552 | hierarchical structure /within/ an Appendix, start with *subsection* 553 | as the highest level. Here is an outline of the body of this document 554 | in Appendix-appropriate form: 555 | ** Introduction 556 | ** The Body of the Paper 557 | *** Type Changes and Special Characters 558 | *** Math Equations 559 | **** Inline (In-text) Equations 560 | **** Display Equations 561 | *** Citations 562 | *** Tables 563 | *** Figures 564 | *** Theorem-like Constructs 565 | *** A Caveat for the TeX Expert 566 | #+COMMENT: Should be \subsubsection* 567 | ** Conclusions 568 | ** Acknowledgements 569 | ** Additional Authors 570 | This section is inserted by LaTeX; you do not insert it. 571 | You just add the names and information in the 572 | =\additionalauthors= command at the start 573 | of the document. 574 | ** References 575 | Generated by bibtex from your ~.bib file. Run latex, then bibtex, 576 | then latex twice (to resolve references) to create the ~.bbl file. 577 | Insert that ~.bbl file into the .tex source file and comment out the 578 | command =\thebibliography=. 579 | * More Help for the Hardy 580 | The acm\_proc\_article-sp document class file itself is chock-full of 581 | succinct and helpful comments. If you consider yourself a moderately 582 | experienced to expert user of LaTeX, you may find reading it useful 583 | but please remember not to change it. 584 | 585 | \balancecolumns 586 | * Setup :noexport: 587 | 588 | ** Instructions for use 589 | - Tangle initialization files, by entering C-c C-v t with the 590 | cursor anywhere in this buffer. This will tangle two 591 | files, =init-old.el= and =init-new.el=, one for the old exporter 592 | and one for the new exporter. 593 | - Generate the [[Configure%20makefile][Makefile]], by placing the cursor in the source code 594 | block and entering C-c C-c. Depending on the values assigned to 595 | its variables, this code will generate a Makefile suited for the 596 | old exporter or the new exporter. 597 | - In a terminal, change to the project directory and run =make=. 598 | This will launch a new instance of emacs, initialize Org-mode, 599 | export this file and create a pdf file in ACM-SIG format. 600 | 601 | ** Initialization file for new exporter 602 | 603 | 604 | This source code block tangles the initialization file that configures 605 | the old Org-mode LaTeX exporter. 606 | 607 | You might need to change this for your system: 608 | - Check =load-path= settings 609 | - Make sure the languages used in your source code blocks have been 610 | loaded with =org-babel-load-languages= 611 | 612 | An org-entity, =\space=, has been added, which can be used after a 613 | period that doesn't end a sentence, e.g., "Dr.\space Martin Luther King" 614 | 615 | A link type, =cite=, is defined for citations. See the text for how 616 | to insert a citation. Note that AucTeX and ebib can be configured to 617 | insert the citation correctly. 618 | 619 | A link type, =acm=, is defined to insert ACM-specific commands used to 620 | italicize words in section headings. See the text for examples of its 621 | use. 622 | 623 | #+name: initialize-new-exporter 624 | #+header: :tangle init-new.el 625 | #+header: :results silent 626 | #+header: :exports none 627 | #+begin_src emacs-lisp 628 | (add-to-list 'load-path "~/.emacs.d/src/org/contrib/lisp") ;; <- adjust 629 | (add-to-list 'load-path "~/.emacs.d/src/org/lisp") ;; <- adjust 630 | (add-to-list 'load-path "~/.emacs.d/src/org") ;; <- adjust 631 | 632 | (require 'org-install) 633 | (require 'org-export) 634 | (require 'org-e-latex) 635 | 636 | ;; this line only required until the upcomming Org-mode/Emacs24 sync 637 | (load "~/.emacs.d/src/org/lisp/org-exp-blocks.el") 638 | 639 | 640 | ;; Configure Babel to support all languages included in the manuscript 641 | (org-babel-do-load-languages 642 | 'org-babel-load-languages 643 | '((emacs-lisp . t) 644 | (org . t))) 645 | (setq org-confirm-babel-evaluate nil) 646 | 647 | ;; Configure Org-mode 648 | (setq org-export-latex-hyperref-format "\\ref{%s}") 649 | (setq org-entities-user nil) 650 | (add-to-list 'org-entities-user '("space" "\\ " nil " " " " " " " ")) 651 | (setq org-e-latex-pdf-process '("texi2dvi --clean --verbose --batch %f")) 652 | (setq org-export-latex-packages-alist nil) 653 | (add-to-list 'org-export-latex-packages-alist '("" "hyperref")) 654 | (add-to-list 'org-export-latex-packages-alist '("" "graphicx")) 655 | 656 | (require 'org-special-blocks) 657 | 658 | (org-add-link-type 659 | "cite" nil 660 | (lambda (path desc format) 661 | (cond 662 | ((eq format 'latex) 663 | (format "\\cite{%s}" path))))) 664 | 665 | (org-add-link-type 666 | "acm" nil 667 | (lambda (path desc format) 668 | (cond 669 | ((eq format 'latex) 670 | (format "{\\%s{%s}}" path desc))))) 671 | 672 | (add-to-list 'org-e-latex-classes 673 | '("acm-proc-article-sp" 674 | "\\documentclass{acm_proc_article-sp} 675 | [NO-DEFAULT-PACKAGES] 676 | [PACKAGES] 677 | [EXTRA]" 678 | ("\\section{%s}" . "\\section*{%s}") 679 | ("\\subsection{%s}" . "\\subsection*{%s}") 680 | ("\\subsubsection{%s}" . "\\subsubsection*{%s}") 681 | ("\\paragraph{%s}" . "\\paragraph*{%s}") 682 | ("\\subparagraph{%s}" . "\\subparagraph*{%s}"))) 683 | #+end_src 684 | 685 | ** Initialization file for old exporter 686 | 687 | 688 | This source code block tangles the initialization file that configures 689 | the old Org-mode LaTeX exporter. 690 | 691 | You might need to change this for your system: 692 | - Check =load-path= settings 693 | - Make sure the languages used in your source code blocks have been 694 | loaded with =org-babel-load-languages= 695 | 696 | An org-entity, =\space=, has been added, which can be used after a 697 | period that doesn't end a sentence, e.g., "Dr.\space Martin Luther King" 698 | 699 | A link type, =cite=, is defined for citations. See the text for how 700 | to insert a citation. Note that AucTeX and ebib can be configured to 701 | insert the citation correctly. 702 | 703 | A link type, =acm=, is defined to insert ACM-specific commands used to 704 | italicize words in section headings. See the text for examples of its 705 | use. 706 | 707 | #+name: initialize-old-exporter 708 | #+header: :tangle init-old.el 709 | #+header: :results silent 710 | #+header: :exports none 711 | #+begin_src emacs-lisp 712 | (add-to-list 'load-path "~/.emacs.d/src/org/lisp") ;; <- adjust 713 | (add-to-list 'load-path "~/.emacs.d/src/org") ;; <- adjust 714 | 715 | (require 'org-install) 716 | (require 'org-latex) 717 | 718 | ;; this line only required until the upcomming Org-mode/Emacs24 sync 719 | (load "~/.emacs.d/src/org/lisp/org-exp-blocks.el") 720 | 721 | 722 | ;; Configure Babel to support all languages included in the manuscript 723 | (org-babel-do-load-languages 724 | 'org-babel-load-languages 725 | '((emacs-lisp . t) 726 | (org . t))) 727 | (setq org-confirm-babel-evaluate nil) 728 | 729 | ;; Configure Org-mode 730 | (setq org-export-latex-hyperref-format "\\ref{%s}") 731 | (setq org-entities-user '(("space" "\\ " nil " " " " " " " "))) 732 | (setq org-latex-to-pdf-process '("texi2dvi --clean --verbose --batch %f")) 733 | 734 | (require 'org-special-blocks) 735 | (defun org-export-latex-no-toc (depth) 736 | (when depth 737 | (format "%% Org-mode is exporting headings to %s levels.\n" 738 | depth))) 739 | (setq org-export-latex-format-toc-function 'org-export-latex-no-toc) 740 | (setq org-export-pdf-remove-logfiles nil) 741 | 742 | (org-add-link-type 743 | "cite" nil 744 | (lambda (path desc format) 745 | (cond 746 | ((eq format 'latex) 747 | (format "\\cite{%s}" path))))) 748 | 749 | (org-add-link-type 750 | "acm" nil 751 | (lambda (path desc format) 752 | (cond 753 | ((eq format 'latex) 754 | (format "{\\%s{%s}}" path desc))))) 755 | 756 | (add-to-list 'org-export-latex-classes 757 | '("acm-proc-article-sp" 758 | "\\documentclass{acm_proc_article-sp} 759 | [NO-DEFAULT-PACKAGES] 760 | [EXTRA] 761 | \\usepackage{graphicx} 762 | \\usepackage{hyperref}" 763 | ("\\section{%s}" . "\\section*{%s}") 764 | ("\\subsection{%s}" . "\\subsection*{%s}") 765 | ("\\subsubsection{%s}" . "\\subsubsection*{%s}") 766 | ("\\paragraph{%s}" . "\\paragraph*{%s}") 767 | ("\\subparagraph{%s}" . "\\subparagraph*{%s}"))) 768 | #+end_src 769 | 770 | ** Configure makefile 771 | 772 | Configure the Makefile by supplying the correct string for your emacs 773 | application and the name of the initialization file. Currently, this 774 | is setup to use the old exporter. It will need to be modified to run 775 | the new exporter. 776 | 777 | Once this is done, evaluate the code block with C-c C-c to create a 778 | Makefile. 779 | 780 | #+name: configure-makefile 781 | #+header: :file Makefile 782 | #+header: :var emacs="/Applications/Emacs-23-4.app/Contents/MacOS/Emacs" 783 | #+header: :var init-file="init-new.el" 784 | #+header: :var exporter="new" 785 | #+header: :eval noexport 786 | #+BEGIN_SRC emacs-lisp 787 | (let ((f (file-name-sans-extension (file-name-nondirectory 788 | (buffer-file-name)))) 789 | (g (if (string= exporter "old") "org-export-as-latex" "org-e-latex-export-to-latex"))) 790 | (format "CC=gcc 791 | EMACS=%s 792 | BATCH_EMACS=$(EMACS) --batch -Q -l %s %s 793 | 794 | all: %s.pdf 795 | 796 | %s.tex: %s.org\n\t$(BATCH_EMACS) -f %s 797 | 798 | %s.pdf: %s.tex\n\trm -f %s.aux\n\tif pdflatex %s.tex (length the-list) 0) 835 | (if (> (length return-string) 0) 836 | (setq return-string (concat return-string ", " (car (car the-list)))) 837 | (setq return-string (car (car the-list))) ;; else 838 | ) 839 | (setq the-list (cdr the-list)) 840 | ) ;; end of "while" 841 | return-string 842 | ) ;; end of "let" 843 | ) 844 | (let ( 845 | (a (cdr (cdr in-list))) 846 | ) 847 | (concat (format "\\%s{" in-command) (list-to-comma a) "}") 848 | ) 849 | #+END_SRC 850 | 851 | #+RESULTS: list-to-cs-string 852 | #+BEGIN_LaTeX 853 | \terms{Theory} 854 | #+END_LaTeX 855 | 856 | ** Author list 857 | In this sample file, there are a *total* of EIGHT authors. SIX appear 858 | on the 'first-page' (for formatting reasons) and the remaining two 859 | appear in the \additionalauthors section. 860 | 861 | The following table holds information about the author(s) of the 862 | document. You can separate groups of authors with a blank line to 863 | change the layout. 864 | 865 | #+name: authorlist 866 | | author | note | institute | addr1 | addr2 | email | 867 | |----------------------+----------------------------------------------------------------+----------------------------------------+--------------------------+--------------------------+-------------------------------| 868 | | Ben Trovato | Dr.~Trovato insisted his name be first. | Institute for Clarity in Documentation | 1932 Wallamaloo Lane | Wallamaloo, New Zealand | trovato@corporation.com | 869 | | G.K.M. Tobin | The secretary disavows any knowledge of this author's actions. | Institute for Clarity in Documentation | P.O. Box 1212 | Dublin, Ohio 43017-6221 | webmaster@marysville-ohio.com | 870 | | Lars Th{\o}rv{\"a}ld | This author is the one who did all the really hard work. | The Th{\o}rv{\"a}ld Group | 1 Th{\o}rv{\"a}ld Circle | Hekla, Iceland | larst@affiliation.org | 871 | | | | | | | | 872 | | Lawrence P. Leipuner | | Brookhaven Laboratories | Brookhaven National Lab | P.O. Box 5000 | lleipuner@reasearchlabs.org | 873 | | Sean Fogarty | | NASA Ames Research Center | Moffett Field | California 94035 | fogarty@amesres.org | 874 | | Charles Palmer | | Palmer Research Laboratories | 8600 Datapoint Drive | San Antonio, Texas 78229 | cpalmer@prl.com | 875 | 876 | #+name: additional-authors 877 | | author | institute | email | 878 | |-------------------+---------------------------+------------------------| 879 | | John Smith | The Th{\o}rv{\"a}ld Group | jsmith@affiliation.org | 880 | | Julius P. Kumquat | The Kumquat Consortium | jpkumquat@consortium | 881 | 882 | ** Category list 883 | 884 | The following table holds information about ACM categories. 885 | 886 | #+name: categories 887 | | code | description | category | optional | 888 | |-------+----------------------------------+---------------+-------------------------------------------| 889 | | H.4 | Information Systems Applications | Miscellaneous | | 890 | | D.2.8 | Software Engineering | Metrics | complexity measures, performance measures | 891 | 892 | ** Term list 893 | 894 | This table is used as input to =list-to-cs-string= with the =theory= command. 895 | 896 | #+name: term-list 897 | | Term | 898 | |----------| 899 | | Theory | 900 | 901 | ** Keyword list 902 | 903 | This table is used as input to =list-to-cs-string= with the =keyword= command. 904 | 905 | #+name: keyword-list 906 | | Keyword | 907 | |-----------------| 908 | | ACM Proceedings | 909 | | \LaTeX | 910 | | text tagging | 911 | 912 | * Footnotes 913 | 914 | [fn:1] Two of these, the =\numberofauthors= 915 | and =\alignauthor= commands, you have 916 | already used; another, =\balancecolumns=, will 917 | be used in your very last run of LaTeX to ensure 918 | balanced column heights on the last page. 919 | 920 | [fn:2] This is the second footnote. It 921 | starts a series of three footnotes that add nothing 922 | informational, but just give an idea of how footnotes work 923 | and look. It is a wordy one, just so you see 924 | how a longish one plays out. 925 | 926 | [fn:3] A third footnote, here. Let's make this a rather short 927 | one to see how it looks. 928 | 929 | [fn:4] A fourth, and 930 | last, footnote. 931 | 932 | -------------------------------------------------------------------------------- /sigproc-sp.tex: -------------------------------------------------------------------------------- 1 | % THIS IS SIGPROC-SP.TEX - VERSION 3.1 2 | % WORKS WITH V3.2SP OF ACM_PROC_ARTICLE-SP.CLS 3 | % APRIL 2009 4 | % 5 | % It is an example file showing how to use the 'acm_proc_article-sp.cls' V3.2SP 6 | % LaTeX2e document class file for Conference Proceedings submissions. 7 | % ---------------------------------------------------------------------------------------------------------------- 8 | % This .tex file (and associated .cls V3.2SP) *DOES NOT* produce: 9 | % 1) The Permission Statement 10 | % 2) The Conference (location) Info information 11 | % 3) The Copyright Line with ACM data 12 | % 4) Page numbering 13 | % --------------------------------------------------------------------------------------------------------------- 14 | % It is an example which *does* use the .bib file (from which the .bbl file 15 | % is produced). 16 | % REMEMBER HOWEVER: After having produced the .bbl file, 17 | % and prior to final submission, 18 | % you need to 'insert' your .bbl file into your source .tex file so as to provide 19 | % ONE 'self-contained' source file. 20 | % 21 | % Questions regarding SIGS should be sent to 22 | % Adrienne Griscti ---> griscti@acm.org 23 | % 24 | % Questions/suggestions regarding the guidelines, .tex and .cls files, etc. to 25 | % Gerald Murray ---> murray@hq.acm.org 26 | % 27 | % For tracking purposes - this is V3.1SP - APRIL 2009 28 | 29 | \documentclass{acm_proc_article-sp} 30 | 31 | \begin{document} 32 | 33 | \title{A Sample {\ttlit ACM} SIG Proceedings Paper in LaTeX 34 | Format\titlenote{(Does NOT produce the permission block, copyright information nor page numbering). For use with ACM\_PROC\_ARTICLE-SP.CLS. Supported by ACM.}} 35 | \Subtitle{[Extended Abstract] 36 | \titlenote{A full version of this paper is available as 37 | \textit{Author's Guide to Preparing ACM SIG Proceedings Using 38 | \LaTeX$2_\epsilon$\ and BibTeX} at 39 | \texttt{www.acm.org/eaddress.htm}}} 40 | % 41 | % You need the command \numberofauthors to handle the 'placement 42 | % and alignment' of the authors beneath the title. 43 | % 44 | % For aesthetic reasons, we recommend 'three authors at a time' 45 | % i.e. three 'name/affiliation blocks' be placed beneath the title. 46 | % 47 | % NOTE: You are NOT restricted in how many 'rows' of 48 | % "name/affiliations" may appear. We just ask that you restrict 49 | % the number of 'columns' to three. 50 | % 51 | % Because of the available 'opening page real-estate' 52 | % we ask you to refrain from putting more than six authors 53 | % (two rows with three columns) beneath the article title. 54 | % More than six makes the first-page appear very cluttered indeed. 55 | % 56 | % Use the \alignauthor commands to handle the names 57 | % and affiliations for an 'aesthetic maximum' of six authors. 58 | % Add names, affiliations, addresses for 59 | % the seventh etc. author(s) as the argument for the 60 | % \additionalauthors command. 61 | % These 'additional authors' will be output/set for you 62 | % without further effort on your part as the last section in 63 | % the body of your article BEFORE References or any Appendices. 64 | 65 | \numberofauthors{8} % in this sample file, there are a *total* 66 | % of EIGHT authors. SIX appear on the 'first-page' (for formatting 67 | % reasons) and the remaining two appear in the \additionalauthors section. 68 | % 69 | \author{ 70 | % You can go ahead and credit any number of authors here, 71 | % e.g. one 'row of three' or two rows (consisting of one row of three 72 | % and a second row of one, two or three). 73 | % 74 | % The command \alignauthor (no curly braces needed) should 75 | % precede each author name, affiliation/snail-mail address and 76 | % e-mail address. Additionally, tag each line of 77 | % affiliation/address with \affaddr, and tag the 78 | % e-mail address with \email. 79 | % 80 | % 1st. author 81 | \alignauthor 82 | Ben Trovato\titlenote{Dr.~Trovato insisted his name be first.}\\ 83 | \affaddr{Institute for Clarity in Documentation}\\ 84 | \affaddr{1932 Wallamaloo Lane}\\ 85 | \affaddr{Wallamaloo, New Zealand}\\ 86 | \email{trovato@corporation.com} 87 | % 2nd. author 88 | \alignauthor 89 | G.K.M. Tobin\titlenote{The secretary disavows 90 | any knowledge of this author's actions.}\\ 91 | \affaddr{Institute for Clarity in Documentation}\\ 92 | \affaddr{P.O. Box 1212}\\ 93 | \affaddr{Dublin, Ohio 43017-6221}\\ 94 | \email{webmaster@marysville-ohio.com} 95 | % 3rd. author 96 | \alignauthor Lars Th{\o}rv{\"a}ld\titlenote{This author is the 97 | one who did all the really hard work.}\\ 98 | \affaddr{The Th{\o}rv{\"a}ld Group}\\ 99 | \affaddr{1 Th{\o}rv{\"a}ld Circle}\\ 100 | \affaddr{Hekla, Iceland}\\ 101 | \email{larst@affiliation.org} 102 | \and % use '\and' if you need 'another row' of author names 103 | % 4th. author 104 | \alignauthor Lawrence P. Leipuner\\ 105 | \affaddr{Brookhaven Laboratories}\\ 106 | \affaddr{Brookhaven National Lab}\\ 107 | \affaddr{P.O. Box 5000}\\ 108 | \email{lleipuner@researchlabs.org} 109 | % 5th. author 110 | \alignauthor Sean Fogarty\\ 111 | \affaddr{NASA Ames Research Center}\\ 112 | \affaddr{Moffett Field}\\ 113 | \affaddr{California 94035}\\ 114 | \email{fogartys@amesres.org} 115 | % 6th. author 116 | \alignauthor Charles Palmer\\ 117 | \affaddr{Palmer Research Laboratories}\\ 118 | \affaddr{8600 Datapoint Drive}\\ 119 | \affaddr{San Antonio, Texas 78229}\\ 120 | \email{cpalmer@prl.com} 121 | } 122 | % There's nothing stopping you putting the seventh, eighth, etc. 123 | % author on the opening page (as the 'third row') but we ask, 124 | % for aesthetic reasons that you place these 'additional authors' 125 | % in the \additional authors block, viz. 126 | \additionalauthors{Additional authors: John Smith (The Th{\o}rv{\"a}ld Group, 127 | email: {\texttt{jsmith@affiliation.org}}) and Julius P.~Kumquat 128 | (The Kumquat Consortium, email: {\texttt{jpkumquat@consortium.net}}).} 129 | \date{30 July 1999} 130 | % Just remember to make sure that the TOTAL number of authors 131 | % is the number that will appear on the first page PLUS the 132 | % number that will appear in the \additionalauthors section. 133 | 134 | \maketitle 135 | \begin{abstract} 136 | This paper provides a sample of a \LaTeX\ document which conforms to 137 | the formatting guidelines for ACM SIG Proceedings. 138 | It complements the document \textit{Author's Guide to Preparing 139 | ACM SIG Proceedings Using \LaTeX$2_\epsilon$\ and Bib\TeX}. This 140 | source file has been written with the intention of being 141 | compiled under \LaTeX$2_\epsilon$\ and BibTeX. 142 | 143 | The developers have tried to include every imaginable sort 144 | of ``bells and whistles", such as a subtitle, footnotes on 145 | title, subtitle and authors, as well as in the text, and 146 | every optional component (e.g. Acknowledgments, Additional 147 | Authors, Appendices), not to mention examples of 148 | equations, theorems, tables and figures. 149 | 150 | To make best use of this sample document, run it through \LaTeX\ 151 | and BibTeX, and compare this source code with the printed 152 | output produced by the dvi file. 153 | \end{abstract} 154 | 155 | % A category with the (minimum) three required fields 156 | \category{H.4}{Information Systems Applications}{Miscellaneous} 157 | %A category including the fourth, optional field follows... 158 | \category{D.2.8}{Software Engineering}{Metrics}[complexity measures, performance measures] 159 | 160 | \terms{Theory} 161 | 162 | \keywords{ACM proceedings, \LaTeX, text tagging} % NOT required for Proceedings 163 | 164 | \section{Introduction} 165 | The \textit{proceedings} are the records of a conference. 166 | ACM seeks to give these conference by-products a uniform, 167 | high-quality appearance. To do this, ACM has some rigid 168 | requirements for the format of the proceedings documents: there 169 | is a specified format (balanced double columns), a specified 170 | set of fonts (Arial or Helvetica and Times Roman) in 171 | certain specified sizes (for instance, 9 point for body copy), 172 | a specified live area (18 $\times$ 23.5 cm [7" $\times$ 9.25"]) centered on 173 | the page, specified size of margins (1.9 cm [0.75"]) top, (2.54 cm [1"]) bottom 174 | and (1.9 cm [.75"]) left and right; specified column width 175 | (8.45 cm [3.33"]) and gutter size (.83 cm [.33"]). 176 | 177 | The good news is, with only a handful of manual 178 | settings\footnote{Two of these, the {\texttt{\char'134 numberofauthors}} 179 | and {\texttt{\char'134 alignauthor}} commands, you have 180 | already used; another, {\texttt{\char'134 balancecolumns}}, will 181 | be used in your very last run of \LaTeX\ to ensure 182 | balanced column heights on the last page.}, the \LaTeX\ document 183 | class file handles all of this for you. 184 | 185 | The remainder of this document is concerned with showing, in 186 | the context of an ``actual'' document, the \LaTeX\ commands 187 | specifically available for denoting the structure of a 188 | proceedings paper, rather than with giving rigorous descriptions 189 | or explanations of such commands. 190 | 191 | \section{The {\secit Body} of The Paper} 192 | Typically, the body of a paper is organized 193 | into a hierarchical structure, with numbered or unnumbered 194 | headings for sections, subsections, sub-subsections, and even 195 | smaller sections. The command \texttt{{\char'134}section} that 196 | precedes this paragraph is part of such a 197 | hierarchy.\footnote{This is the second footnote. It 198 | starts a series of three footnotes that add nothing 199 | informational, but just give an idea of how footnotes work 200 | and look. It is a wordy one, just so you see 201 | how a longish one plays out.} \LaTeX\ handles the numbering 202 | and placement of these headings for you, when you use 203 | the appropriate heading commands around the titles 204 | of the headings. If you want a sub-subsection or 205 | smaller part to be unnumbered in your output, simply append an 206 | asterisk to the command name. Examples of both 207 | numbered and unnumbered headings will appear throughout the 208 | balance of this sample document. 209 | 210 | Because the entire article is contained in 211 | the \textbf{document} environment, you can indicate the 212 | start of a new paragraph with a blank line in your 213 | input file; that is why this sentence forms a separate paragraph. 214 | 215 | \subsection{Type Changes and {\subsecit Special} Characters} 216 | We have already seen several typeface changes in this sample. You 217 | can indicate italicized words or phrases in your text with 218 | the command \texttt{{\char'134}textit}; emboldening with the 219 | command \texttt{{\char'134}textbf} 220 | and typewriter-style (for instance, for computer code) with 221 | \texttt{{\char'134}texttt}. But remember, you do not 222 | have to indicate typestyle changes when such changes are 223 | part of the \textit{structural} elements of your 224 | article; for instance, the heading of this subsection will 225 | be in a sans serif\footnote{A third footnote, here. 226 | Let's make this a rather short one to 227 | see how it looks.} typeface, but that is handled by the 228 | document class file. Take care with the use 229 | of\footnote{A fourth, and last, footnote.} 230 | the curly braces in typeface changes; they mark 231 | the beginning and end of 232 | the text that is to be in the different typeface. 233 | 234 | You can use whatever symbols, accented characters, or 235 | non-English characters you need anywhere in your document; 236 | you can find a complete list of what is 237 | available in the \textit{\LaTeX\ 238 | User's Guide}\cite{Lamport:LaTeX}. 239 | 240 | \subsection{Math Equations} 241 | You may want to display math equations in three distinct styles: 242 | inline, numbered or non-numbered display. Each of 243 | the three are discussed in the next sections. 244 | 245 | \subsubsection{Inline (In-text) Equations} 246 | A formula that appears in the running text is called an 247 | inline or in-text formula. It is produced by the 248 | \textbf{math} environment, which can be 249 | invoked with the usual \texttt{{\char'134}begin. . .{\char'134}end} 250 | construction or with the short form \texttt{\$. . .\$}. You 251 | can use any of the symbols and structures, 252 | from $\alpha$ to $\omega$, available in 253 | \LaTeX\cite{Lamport:LaTeX}; this section will simply show a 254 | few examples of in-text equations in context. Notice how 255 | this equation: \begin{math}\lim_{n\rightarrow \infty}x=0\end{math}, 256 | set here in in-line math style, looks slightly different when 257 | set in display style. (See next section). 258 | 259 | \subsubsection{Display Equations} 260 | A numbered display equation -- one set off by vertical space 261 | from the text and centered horizontally -- is produced 262 | by the \textbf{equation} environment. An unnumbered display 263 | equation is produced by the \textbf{displaymath} environment. 264 | 265 | Again, in either environment, you can use any of the symbols 266 | and structures available in \LaTeX; this section will just 267 | give a couple of examples of display equations in context. 268 | First, consider the equation, shown as an inline equation above: 269 | \begin{equation}\lim_{n\rightarrow \infty}x=0\end{equation} 270 | Notice how it is formatted somewhat differently in 271 | the \textbf{displaymath} 272 | environment. Now, we'll enter an unnumbered equation: 273 | \begin{displaymath}\sum_{i=0}^{\infty} x + 1\end{displaymath} 274 | and follow it with another numbered equation: 275 | \begin{equation}\sum_{i=0}^{\infty}x_i=\int_{0}^{\pi+2} f\end{equation} 276 | just to demonstrate \LaTeX's able handling of numbering. 277 | 278 | \subsection{Citations} 279 | Citations to articles \cite{bowman:reasoning, clark:pct, braams:babel, herlihy:methodology}, 280 | conference 281 | proceedings \cite{clark:pct} or books \cite{salas:calculus, Lamport:LaTeX} listed 282 | in the Bibliography section of your 283 | article will occur throughout the text of your article. 284 | You should use BibTeX to automatically produce this bibliography; 285 | you simply need to insert one of several citation commands with 286 | a key of the item cited in the proper location in 287 | the \texttt{.tex} file \cite{Lamport:LaTeX}. 288 | The key is a short reference you invent to uniquely 289 | identify each work; in this sample document, the key is 290 | the first author's surname and a 291 | word from the title. This identifying key is included 292 | with each item in the \texttt{.bib} file for your article. 293 | 294 | The details of the construction of the \texttt{.bib} file 295 | are beyond the scope of this sample document, but more 296 | information can be found in the \textit{Author's Guide}, 297 | and exhaustive details in the \textit{\LaTeX\ User's 298 | Guide}\cite{Lamport:LaTeX}. 299 | 300 | This article shows only the plainest form 301 | of the citation command, using \texttt{{\char'134}cite}. 302 | This is what is stipulated in the SIGS style specifications. 303 | No other citation format is endorsed. 304 | 305 | \subsection{Tables} 306 | Because tables cannot be split across pages, the best 307 | placement for them is typically the top of the page 308 | nearest their initial cite. To 309 | ensure this proper ``floating'' placement of tables, use the 310 | environment \textbf{table} to enclose the table's contents and 311 | the table caption. The contents of the table itself must go 312 | in the \textbf{tabular} environment, to 313 | be aligned properly in rows and columns, with the desired 314 | horizontal and vertical rules. Again, detailed instructions 315 | on \textbf{tabular} material 316 | is found in the \textit{\LaTeX\ User's Guide}. 317 | 318 | Immediately following this sentence is the point at which 319 | Table 1 is included in the input file; compare the 320 | placement of the table here with the table in the printed 321 | dvi output of this document. 322 | 323 | \begin{table} 324 | \centering 325 | \caption{Frequency of Special Characters} 326 | \begin{tabular}{|c|c|l|} \hline 327 | Non-English or Math&Frequency&Comments\\ \hline 328 | \O & 1 in 1,000& For Swedish names\\ \hline 329 | $\pi$ & 1 in 5& Common in math\\ \hline 330 | \$ & 4 in 5 & Used in business\\ \hline 331 | $\Psi^2_1$ & 1 in 40,000& Unexplained usage\\ 332 | \hline\end{tabular} 333 | \end{table} 334 | 335 | To set a wider table, which takes up the whole width of 336 | the page's live area, use the environment 337 | \textbf{table*} to enclose the table's contents and 338 | the table caption. As with a single-column table, this wide 339 | table will ``float" to a location deemed more desirable. 340 | Immediately following this sentence is the point at which 341 | Table 2 is included in the input file; again, it is 342 | instructive to compare the placement of the 343 | table here with the table in the printed dvi 344 | output of this document. 345 | 346 | 347 | \begin{table*} 348 | \centering 349 | \caption{Some Typical Commands} 350 | \begin{tabular}{|c|c|l|} \hline 351 | Command&A Number&Comments\\ \hline 352 | \texttt{{\char'134}alignauthor} & 100& Author alignment\\ \hline 353 | \texttt{{\char'134}numberofauthors}& 200& Author enumeration\\ \hline 354 | \texttt{{\char'134}table}& 300 & For tables\\ \hline 355 | \texttt{{\char'134}table*}& 400& For wider tables\\ \hline\end{tabular} 356 | \end{table*} 357 | % end the environment with {table*}, NOTE not {table}! 358 | 359 | \subsection{Figures} 360 | Like tables, figures cannot be split across pages; the 361 | best placement for them 362 | is typically the top or the bottom of the page nearest 363 | their initial cite. To ensure this proper ``floating'' placement 364 | of figures, use the environment 365 | \textbf{figure} to enclose the figure and its caption. 366 | 367 | This sample document contains examples of \textbf{.eps} 368 | and \textbf{.ps} files to be displayable with \LaTeX. More 369 | details on each of these is found in the \textit{Author's Guide}. 370 | 371 | \begin{figure} 372 | \centering 373 | \epsfig{file=fly.eps} 374 | \caption{A sample black and white graphic (.eps format).} 375 | \end{figure} 376 | 377 | \begin{figure} 378 | \centering 379 | \epsfig{file=fly.eps, height=1in, width=1in} 380 | \caption{A sample black and white graphic (.eps format) 381 | that has been resized with the \texttt{epsfig} command.} 382 | \end{figure} 383 | 384 | 385 | As was the case with tables, you may want a figure 386 | that spans two columns. To do this, and still to 387 | ensure proper ``floating'' placement of tables, use the environment 388 | \textbf{figure*} to enclose the figure and its caption. 389 | 390 | Note that either {\textbf{.ps}} or {\textbf{.eps}} formats are 391 | used; use 392 | the \texttt{{\char'134}epsfig} or \texttt{{\char'134}psfig} 393 | commands as appropriate for the different file types. 394 | 395 | \subsection{Theorem-like Constructs} 396 | Other common constructs that may occur in your article are 397 | the forms for logical constructs like theorems, axioms, 398 | corollaries and proofs. There are 399 | two forms, one produced by the 400 | command \texttt{{\char'134}newtheorem} and the 401 | other by the command \texttt{{\char'134}newdef}; perhaps 402 | the clearest and easiest way to distinguish them is 403 | to compare the two in the output of this sample document: 404 | 405 | This uses the \textbf{theorem} environment, created by 406 | the\linebreak\texttt{{\char'134}newtheorem} command: 407 | \newtheorem{theorem}{Theorem} 408 | \begin{theorem} 409 | Let $f$ be continuous on $[a,b]$. If $G$ is 410 | an antiderivative for $f$ on $[a,b]$, then 411 | \begin{displaymath}\int^b_af(t)dt = G(b) - G(a).\end{displaymath} 412 | \end{theorem} 413 | 414 | The other uses the \textbf{definition} environment, created 415 | by the \texttt{{\char'134}newdef} command: 416 | \newdef{definition}{Definition} 417 | \begin{definition} 418 | If $z$ is irrational, then by $e^z$ we mean the 419 | unique number which has 420 | logarithm $z$: \begin{displaymath}{\log e^z = z}\end{displaymath} 421 | \end{definition} 422 | 423 | \begin{figure} 424 | \centering 425 | \psfig{file=rosette.ps, height=1in, width=1in,} 426 | \caption{A sample black and white graphic (.ps format) that has 427 | been resized with the \texttt{psfig} command.} 428 | \end{figure} 429 | 430 | Two lists of constructs that use one of these 431 | forms is given in the 432 | \textit{Author's Guidelines}. 433 | 434 | \begin{figure*} 435 | \centering 436 | \epsfig{file=flies.eps} 437 | \caption{A sample black and white graphic (.eps format) 438 | that needs to span two columns of text.} 439 | \end{figure*} 440 | and don't forget to end the environment with 441 | {figure*}, not {figure}! 442 | 443 | There is one other similar construct environment, which is 444 | already set up 445 | for you; i.e. you must \textit{not} use 446 | a \texttt{{\char'134}newdef} command to 447 | create it: the \textbf{proof} environment. Here 448 | is a example of its use: 449 | \begin{proof} 450 | Suppose on the contrary there exists a real number $L$ such that 451 | \begin{displaymath} 452 | \lim_{x\rightarrow\infty} \frac{f(x)}{g(x)} = L. 453 | \end{displaymath} 454 | Then 455 | \begin{displaymath} 456 | l=\lim_{x\rightarrow c} f(x) 457 | = \lim_{x\rightarrow c} 458 | \left[ g{x} \cdot \frac{f(x)}{g(x)} \right ] 459 | = \lim_{x\rightarrow c} g(x) \cdot \lim_{x\rightarrow c} 460 | \frac{f(x)}{g(x)} = 0\cdot L = 0, 461 | \end{displaymath} 462 | which contradicts our assumption that $l\neq 0$. 463 | \end{proof} 464 | 465 | Complete rules about using these environments and using the 466 | two different creation commands are in the 467 | \textit{Author's Guide}; please consult it for more 468 | detailed instructions. If you need to use another construct, 469 | not listed therein, which you want to have the same 470 | formatting as the Theorem 471 | or the Definition\cite{salas:calculus} shown above, 472 | use the \texttt{{\char'134}newtheorem} or the 473 | \texttt{{\char'134}newdef} command, 474 | respectively, to create it. 475 | 476 | \subsection*{A {\secit Caveat} for the \TeX\ Expert} 477 | Because you have just been given permission to 478 | use the \texttt{{\char'134}newdef} command to create a 479 | new form, you might think you can 480 | use \TeX's \texttt{{\char'134}def} to create a 481 | new command: \textit{Please refrain from doing this!} 482 | Remember that your \LaTeX\ source code is primarily intended 483 | to create camera-ready copy, but may be converted 484 | to other forms -- e.g. HTML. If you inadvertently omit 485 | some or all of the \texttt{{\char'134}def}s recompilation will 486 | be, to say the least, problematic. 487 | 488 | \section{Conclusions} 489 | This paragraph will end the body of this sample document. 490 | Remember that you might still have Acknowledgments or 491 | Appendices; brief samples of these 492 | follow. There is still the Bibliography to deal with; and 493 | we will make a disclaimer about that here: with the exception 494 | of the reference to the \LaTeX\ book, the citations in 495 | this paper are to articles which have nothing to 496 | do with the present subject and are used as 497 | examples only. 498 | %\end{document} % This is where a 'short' article might terminate 499 | 500 | %ACKNOWLEDGMENTS are optional 501 | \section{Acknowledgments} 502 | This section is optional; it is a location for you 503 | to acknowledge grants, funding, editing assistance and 504 | what have you. In the present case, for example, the 505 | authors would like to thank Gerald Murray of ACM for 506 | his help in codifying this \textit{Author's Guide} 507 | and the \textbf{.cls} and \textbf{.tex} files that it describes. 508 | 509 | % 510 | % The following two commands are all you need in the 511 | % initial runs of your .tex file to 512 | % produce the bibliography for the citations in your paper. 513 | \bibliographystyle{abbrv} 514 | \bibliography{sigproc} % sigproc.bib is the name of the Bibliography in this case 515 | % You must have a proper ".bib" file 516 | % and remember to run: 517 | % latex bibtex latex latex 518 | % to resolve all references 519 | % 520 | % ACM needs 'a single self-contained file'! 521 | % 522 | %APPENDICES are optional 523 | %\balancecolumns 524 | \appendix 525 | %Appendix A 526 | \section{Headings in Appendices} 527 | The rules about hierarchical headings discussed above for 528 | the body of the article are different in the appendices. 529 | In the \textbf{appendix} environment, the command 530 | \textbf{section} is used to 531 | indicate the start of each Appendix, with alphabetic order 532 | designation (i.e. the first is A, the second B, etc.) and 533 | a title (if you include one). So, if you need 534 | hierarchical structure 535 | \textit{within} an Appendix, start with \textbf{subsection} as the 536 | highest level. Here is an outline of the body of this 537 | document in Appendix-appropriate form: 538 | \subsection{Introduction} 539 | \subsection{The Body of the Paper} 540 | \subsubsection{Type Changes and Special Characters} 541 | \subsubsection{Math Equations} 542 | \paragraph{Inline (In-text) Equations} 543 | \paragraph{Display Equations} 544 | \subsubsection{Citations} 545 | \subsubsection{Tables} 546 | \subsubsection{Figures} 547 | \subsubsection{Theorem-like Constructs} 548 | \subsubsection*{A Caveat for the \TeX\ Expert} 549 | \subsection{Conclusions} 550 | \subsection{Acknowledgments} 551 | \subsection{Additional Authors} 552 | This section is inserted by \LaTeX; you do not insert it. 553 | You just add the names and information in the 554 | \texttt{{\char'134}additionalauthors} command at the start 555 | of the document. 556 | \subsection{References} 557 | Generated by bibtex from your ~.bib file. Run latex, 558 | then bibtex, then latex twice (to resolve references) 559 | to create the ~.bbl file. Insert that ~.bbl file into 560 | the .tex source file and comment out 561 | the command \texttt{{\char'134}thebibliography}. 562 | % This next section command marks the start of 563 | % Appendix B, and does not continue the present hierarchy 564 | \section{More Help for the Hardy} 565 | The acm\_proc\_article-sp document class file itself is chock-full of succinct 566 | and helpful comments. If you consider yourself a moderately 567 | experienced to expert user of \LaTeX, you may find reading 568 | it useful but please remember not to change it. 569 | \balancecolumns 570 | % That's all folks! 571 | \end{document} 572 | -------------------------------------------------------------------------------- /sigproc.bib: -------------------------------------------------------------------------------- 1 | @ARTICLE{bowman:reasoning, 2 | AUTHOR = "Mic Bowman and Saumya K. Debray and Larry L. Peterson", 3 | TITLE = "Reasoning About Naming Systems", 4 | JOURNAL = "ACM Trans. Program. Lang. Syst.", 5 | VOLUME = {15}, 6 | NUMBER = {5}, 7 | PAGES = {795-825}, 8 | MONTH = "November", 9 | YEAR = {1993} } 10 | 11 | @ARTICLE{braams:babel, 12 | AUTHOR = "Johannes Braams", 13 | TITLE = "Babel, a Multilingual Style-Option System for Use with LaTeX's Standard Document Styles", 14 | JOURNAL = {TUGboat}, 15 | VOLUME = {12}, 16 | NUMBER = {2}, 17 | PAGES = {291-301}, 18 | MONTH = "June", 19 | YEAR = {1991} } 20 | 21 | @INPROCEEDINGS{clark:pct, 22 | AUTHOR = "Malcolm Clark", 23 | TITLE = "Post Congress Tristesse", 24 | BOOKTITLE = "TeX90 Conference Proceedings", 25 | PAGES = "84-89", 26 | ORGANIZATION = "TeX Users Group", 27 | MONTH = "March", 28 | YEAR = {1991} } 29 | 30 | @ARTICLE{herlihy:methodology, 31 | AUTHOR = "Maurice Herlihy", 32 | TITLE = "A Methodology for Implementing Highly Concurrent 33 | Data Objects", 34 | JOURNAL = {ACM Trans. Program. Lang. Syst.}, 35 | VOLUME = {15}, 36 | NUMBER = {5}, 37 | PAGES = {745-770}, 38 | MONTH = "November", 39 | YEAR = {1993} } 40 | 41 | @BOOK{Lamport:LaTeX, 42 | AUTHOR = "Leslie Lamport", 43 | TITLE = "LaTeX User's Guide and Document Reference Manual", 44 | PUBLISHER = "Addison-Wesley Publishing Company", 45 | ADDRESS = "Reading, Massachusetts", 46 | YEAR = "1986" } 47 | 48 | @BOOK{salas:calculus, 49 | AUTHOR = "S.L. Salas and Einar Hille", 50 | TITLE = "Calculus: One and Several Variable", 51 | PUBLISHER = "John Wiley and Sons", 52 | ADDRESS = "New York", 53 | YEAR = "1978" } 54 | 55 | 56 | 57 | 58 | 59 | 60 | --------------------------------------------------------------------------------