bkyk8rc3zvpnsf5inmcqq4n3k98cv6hj-my-site-hyper-literate-git.test.suzanne.soy-0.0.1

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

sigplanconf.cls (38664B)


      1 %-----------------------------------------------------------------------------
      2 %
      3 %               LaTeX Class/Style File
      4 %
      5 % Name:         sigplanconf.cls
      6 %
      7 % Purpose:      A LaTeX 2e class file for SIGPLAN conference proceedings.
      8 %               This class file supercedes acm_proc_article-sp,
      9 %               sig-alternate, and sigplan-proc.
     10 %
     11 % Author:       Paul C. Anagnostopoulos
     12 %               Windfall Software
     13 %               978 371-2316
     14 %               paul [atsign] windfall.com
     15 %
     16 % Created:      12 September 2004
     17 %
     18 % Revisions:    See end of file.
     19 %
     20 % This work is licensed under the Creative Commons Attribution License.
     21 % To view a copy of this license, visit
     22 %   http://creativecommons.org/licenses/by/3.0/
     23 % or send a letter to Creative Commons, 171 2nd Street, Suite 300,
     24 % San Francisco, California, 94105, U.S.A.
     25 %
     26 %-----------------------------------------------------------------------------
     27 
     28 
     29 \NeedsTeXFormat{LaTeX2e}[1995/12/01]
     30 \ProvidesClass{sigplanconf}[2013/07/02 v2.8 ACM SIGPLAN Proceedings]
     31 
     32 % The following few pages contain LaTeX programming extensions adapted
     33 % from the ZzTeX macro package.
     34 
     35 %                       Token Hackery
     36 %                       ----- -------
     37 
     38 
     39 \def \@expandaftertwice {\expandafter\expandafter\expandafter}
     40 \def \@expandafterthrice {\expandafter\expandafter\expandafter\expandafter
     41                           \expandafter\expandafter\expandafter}
     42 
     43 % This macro discards the next token.
     44 
     45 \def \@discardtok #1{}%                                  token
     46 
     47 % This macro removes the `pt' following a dimension.
     48 
     49 {\catcode `\p = 12 \catcode `\t = 12
     50 
     51 \gdef \@remover #1pt{#1}
     52 
     53 } % \catcode
     54 
     55 % This macro extracts the contents of a macro and returns it as plain text.
     56 % Usage: \expandafter\@defof \meaning\macro\@mark
     57 
     58 \def \@defof #1:->#2\@mark{#2}
     59 
     60 %                       Control Sequence Names
     61 %                       ------- -------- -----
     62 
     63 
     64 \def \@name #1{%                                        {\tokens}
     65   \csname \expandafter\@discardtok \string#1\endcsname}
     66 
     67 \def \@withname #1#2{%                                  {\command}{\tokens}
     68   \expandafter#1\csname \expandafter\@discardtok \string#2\endcsname}
     69 
     70 %                       Flags (Booleans)
     71 %                       ----- ----------
     72 
     73 % The boolean literals \@true and \@false are appropriate for use with
     74 % the \if command, which tests the codes of the next two characters.
     75 
     76 \def \@true {TT}
     77 \def \@false {FL}
     78 
     79 \def \@setflag #1=#2{\edef #1{#2}}%              \flag = boolean
     80 
     81 %                       IF and Predicates
     82 %                       -- --- ----------
     83 
     84 % A "predicate" is a macro that returns \@true or \@false as its value.
     85 % Such values are suitable for use with the \if conditional.  For example:
     86 %
     87 %   \if \@oddp{\x} <then-clause> \else <else-clause> \fi
     88 
     89 % A predicate can be used with \@setflag as follows:
     90 %
     91 %   \@setflag \flag = {<predicate>}
     92 
     93 % Here are the predicates for TeX's repertoire of conditional
     94 % commands.  These might be more appropriately interspersed with
     95 % other definitions in this module, but what the heck.
     96 % Some additional "obvious" predicates are defined.
     97 
     98 \def \@eqlp   #1#2{\ifnum #1 = #2\@true \else \@false \fi}
     99 \def \@neqlp  #1#2{\ifnum #1 = #2\@false \else \@true \fi}
    100 \def \@lssp   #1#2{\ifnum #1 < #2\@true \else \@false \fi}
    101 \def \@gtrp   #1#2{\ifnum #1 > #2\@true \else \@false \fi}
    102 \def \@zerop  #1{\ifnum #1 = 0\@true \else \@false \fi}
    103 \def \@onep   #1{\ifnum #1 = 1\@true \else \@false \fi}
    104 \def \@posp   #1{\ifnum #1 > 0\@true \else \@false \fi}
    105 \def \@negp   #1{\ifnum #1 < 0\@true \else \@false \fi}
    106 \def \@oddp   #1{\ifodd #1\@true \else \@false \fi}
    107 \def \@evenp  #1{\ifodd #1\@false \else \@true \fi}
    108 \def \@rangep #1#2#3{\if \@orp{\@lssp{#1}{#2}}{\@gtrp{#1}{#3}}\@false \else
    109                                                           \@true \fi}
    110 \def \@tensp  #1{\@rangep{#1}{10}{19}}
    111 
    112 \def \@dimeqlp   #1#2{\ifdim #1 = #2\@true \else \@false \fi}
    113 \def \@dimneqlp  #1#2{\ifdim #1 = #2\@false \else \@true \fi}
    114 \def \@dimlssp   #1#2{\ifdim #1 < #2\@true \else \@false \fi}
    115 \def \@dimgtrp   #1#2{\ifdim #1 > #2\@true \else \@false \fi}
    116 \def \@dimzerop  #1{\ifdim #1 = 0pt\@true \else \@false \fi}
    117 \def \@dimposp   #1{\ifdim #1 > 0pt\@true \else \@false \fi}
    118 \def \@dimnegp   #1{\ifdim #1 < 0pt\@true \else \@false \fi}
    119 
    120 \def \@vmodep     {\ifvmode \@true \else \@false \fi}
    121 \def \@hmodep     {\ifhmode \@true \else \@false \fi}
    122 \def \@mathmodep  {\ifmmode \@true \else \@false \fi}
    123 \def \@textmodep  {\ifmmode \@false \else \@true \fi}
    124 \def \@innermodep {\ifinner \@true \else \@false \fi}
    125 
    126 \long\def \@codeeqlp #1#2{\if #1#2\@true \else \@false \fi}
    127 
    128 \long\def \@cateqlp #1#2{\ifcat #1#2\@true \else \@false \fi}
    129 
    130 \long\def \@tokeqlp  #1#2{\ifx #1#2\@true \else \@false \fi}
    131 \long\def \@xtokeqlp #1#2{\expandafter\ifx #1#2\@true \else \@false \fi}
    132 
    133 \long\def \@definedp #1{%
    134   \expandafter\ifx \csname \expandafter\@discardtok \string#1\endcsname
    135                    \relax \@false \else \@true \fi}
    136 
    137 \long\def \@undefinedp #1{%
    138   \expandafter\ifx \csname \expandafter\@discardtok \string#1\endcsname
    139                    \relax \@true \else \@false \fi}
    140 
    141 \def \@emptydefp #1{\ifx #1\@empty \@true \else \@false \fi}%       {\name}
    142 
    143 \let \@emptylistp = \@emptydefp
    144 
    145 \long\def \@emptyargp #1{%                               {#n}
    146   \@empargp #1\@empargq\@mark}
    147 \long\def \@empargp #1#2\@mark{%
    148   \ifx #1\@empargq \@true \else \@false \fi}
    149 \def \@empargq {\@empargq}
    150 
    151 \def \@emptytoksp #1{%                                   {\tokenreg}
    152   \expandafter\@emptoksp \the#1\@mark}
    153 
    154 \long\def \@emptoksp #1\@mark{\@emptyargp{#1}}
    155 
    156 \def \@voidboxp #1{\ifvoid #1\@true \else \@false \fi}
    157 \def \@hboxp #1{\ifhbox #1\@true \else \@false \fi}
    158 \def \@vboxp #1{\ifvbox #1\@true \else \@false \fi}
    159 
    160 \def \@eofp #1{\ifeof #1\@true \else \@false \fi}
    161 
    162 
    163 % Flags can also be used as predicates, as in:
    164 %
    165 %   \if \flaga <then-clause> \else <else-clause> \fi
    166 
    167 
    168 % Now here we have predicates for the common logical operators.
    169 
    170 \def \@notp #1{\if #1\@false \else \@true \fi}
    171 
    172 \def \@andp #1#2{\if #1%
    173                   \if #2\@true \else \@false \fi
    174                 \else
    175                   \@false
    176                 \fi}
    177 
    178 \def \@orp #1#2{\if #1%
    179                  \@true
    180                \else
    181                  \if #2\@true \else \@false \fi
    182                \fi}
    183 
    184 \def \@xorp #1#2{\if #1%
    185                   \if #2\@false \else \@true \fi
    186                 \else
    187                   \if #2\@true \else \@false \fi
    188                 \fi}
    189 
    190 %                       Arithmetic
    191 %                       ----------
    192 
    193 \def \@increment #1{\advance #1 by 1\relax}%             {\count}
    194 
    195 \def \@decrement #1{\advance #1 by -1\relax}%            {\count}
    196 
    197 %                       Options
    198 %                       -------
    199 
    200 
    201 \@setflag \@authoryear = \@false
    202 \@setflag \@blockstyle = \@false
    203 \@setflag \@copyrightwanted = \@true
    204 \@setflag \@explicitsize = \@false
    205 \@setflag \@mathtime = \@false
    206 \@setflag \@natbib = \@true
    207 \@setflag \@ninepoint = \@true
    208 \newcount{\@numheaddepth} \@numheaddepth = 3
    209 \@setflag \@onecolumn = \@false
    210 \@setflag \@preprint = \@false
    211 \@setflag \@reprint = \@false
    212 \@setflag \@tenpoint = \@false
    213 \@setflag \@times = \@false
    214 
    215 % Note that all the dangerous article class options are trapped.
    216 
    217 \DeclareOption{9pt}{\@setflag \@ninepoint = \@true
    218                     \@setflag \@explicitsize = \@true}
    219 
    220 \DeclareOption{10pt}{\PassOptionsToClass{10pt}{article}%
    221                      \@setflag \@ninepoint = \@false
    222                      \@setflag \@tenpoint = \@true
    223                      \@setflag \@explicitsize = \@true}
    224 
    225 \DeclareOption{11pt}{\PassOptionsToClass{11pt}{article}%
    226                      \@setflag \@ninepoint = \@false
    227                      \@setflag \@explicitsize = \@true}
    228 
    229 \DeclareOption{12pt}{\@unsupportedoption{12pt}}
    230 
    231 \DeclareOption{a4paper}{\@unsupportedoption{a4paper}}
    232 
    233 \DeclareOption{a5paper}{\@unsupportedoption{a5paper}}
    234 
    235 \DeclareOption{authoryear}{\@setflag \@authoryear = \@true}
    236 
    237 \DeclareOption{b5paper}{\@unsupportedoption{b5paper}}
    238 
    239 \DeclareOption{blockstyle}{\@setflag \@blockstyle = \@true}
    240 
    241 \DeclareOption{cm}{\@setflag \@times = \@false}
    242 
    243 \DeclareOption{computermodern}{\@setflag \@times = \@false}
    244 
    245 \DeclareOption{executivepaper}{\@unsupportedoption{executivepaper}}
    246 
    247 \DeclareOption{indentedstyle}{\@setflag \@blockstyle = \@false}
    248 
    249 \DeclareOption{landscape}{\@unsupportedoption{landscape}}
    250 
    251 \DeclareOption{legalpaper}{\@unsupportedoption{legalpaper}}
    252 
    253 \DeclareOption{letterpaper}{\@unsupportedoption{letterpaper}}
    254 
    255 \DeclareOption{mathtime}{\@setflag \@mathtime = \@true}
    256 
    257 \DeclareOption{natbib}{\@setflag \@natbib = \@true}
    258 
    259 \DeclareOption{nonatbib}{\@setflag \@natbib = \@false}
    260 
    261 \DeclareOption{nocopyrightspace}{\@setflag \@copyrightwanted = \@false}
    262 
    263 \DeclareOption{notitlepage}{\@unsupportedoption{notitlepage}}
    264 
    265 \DeclareOption{numberedpars}{\@numheaddepth = 4}
    266 
    267 \DeclareOption{numbers}{\@setflag \@authoryear = \@false}
    268 
    269 %%%\DeclareOption{onecolumn}{\@setflag \@onecolumn = \@true}
    270 
    271 \DeclareOption{preprint}{\@setflag \@preprint = \@true}
    272 
    273 \DeclareOption{reprint}{\@setflag \@reprint = \@true}
    274 
    275 \DeclareOption{times}{\@setflag \@times = \@true}
    276 
    277 \DeclareOption{titlepage}{\@unsupportedoption{titlepage}}
    278 
    279 \DeclareOption{twocolumn}{\@setflag \@onecolumn = \@false}
    280 
    281 \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
    282 
    283 \ExecuteOptions{9pt,indentedstyle,times}
    284 \@setflag \@explicitsize = \@false
    285 \ProcessOptions
    286 
    287 \if \@onecolumn
    288   \if \@notp{\@explicitsize}%
    289     \@setflag \@ninepoint = \@false
    290     \PassOptionsToClass{11pt}{article}%
    291   \fi
    292   \PassOptionsToClass{twoside,onecolumn}{article}
    293 \else
    294   \PassOptionsToClass{twoside,twocolumn}{article}
    295 \fi
    296 \LoadClass{article}
    297 
    298 \def \@unsupportedoption #1{%
    299   \ClassError{proc}{The standard '#1' option is not supported.}}
    300 
    301 % This can be used with the 'reprint' option to get the final folios.
    302 
    303 \def \setpagenumber #1{%
    304   \setcounter{page}{#1}}
    305 
    306 \AtEndDocument{\label{sigplanconf@finalpage}}
    307 
    308 %                       Utilities
    309 %                       ---------
    310 
    311 
    312 \newcommand{\setvspace}[2]{%
    313   #1 = #2
    314   \advance #1 by -1\parskip}
    315 
    316 %                       Document Parameters
    317 %                       -------- ----------
    318 
    319 
    320 % Page:
    321 
    322 \setlength{\hoffset}{-1in}
    323 \setlength{\voffset}{-1in}
    324 
    325 \setlength{\topmargin}{1in}
    326 \setlength{\headheight}{0pt}
    327 \setlength{\headsep}{0pt}
    328 
    329 \if \@onecolumn
    330   \setlength{\evensidemargin}{.75in}
    331   \setlength{\oddsidemargin}{.75in}
    332 \else
    333   \setlength{\evensidemargin}{.75in}
    334   \setlength{\oddsidemargin}{.75in}
    335 \fi
    336 
    337 % Text area:
    338 
    339 \newdimen{\standardtextwidth}
    340 \setlength{\standardtextwidth}{42pc}
    341 
    342 \if \@onecolumn
    343   \setlength{\textwidth}{40.5pc}
    344 \else
    345   \setlength{\textwidth}{\standardtextwidth}
    346 \fi
    347 
    348 \setlength{\topskip}{8pt}
    349 \setlength{\columnsep}{2pc}
    350 \setlength{\textheight}{54.5pc}
    351 
    352 % Running foot:
    353 
    354 \setlength{\footskip}{30pt}
    355 
    356 % Paragraphs:
    357 
    358 \if \@blockstyle
    359   \setlength{\parskip}{5pt plus .1pt minus .5pt}
    360   \setlength{\parindent}{0pt}
    361 \else
    362   \setlength{\parskip}{0pt}
    363   \setlength{\parindent}{12pt}
    364 \fi
    365 
    366 \setlength{\lineskip}{.5pt}
    367 \setlength{\lineskiplimit}{\lineskip}
    368 
    369 \frenchspacing
    370 \pretolerance = 400
    371 \tolerance = \pretolerance
    372 \setlength{\emergencystretch}{5pt}
    373 \clubpenalty = 10000
    374 \widowpenalty = 10000
    375 \setlength{\hfuzz}{.5pt}
    376 
    377 % Standard vertical spaces:
    378 
    379 \newskip{\standardvspace}
    380 \setvspace{\standardvspace}{5pt plus 1pt minus .5pt}
    381 
    382 % Margin paragraphs:
    383 
    384 \setlength{\marginparwidth}{36pt}
    385 \setlength{\marginparsep}{2pt}
    386 \setlength{\marginparpush}{8pt}
    387 
    388 
    389 \setlength{\skip\footins}{8pt plus 3pt minus 1pt}
    390 \setlength{\footnotesep}{9pt}
    391 
    392 \renewcommand{\footnoterule}{%
    393   \hrule width .5\columnwidth height .33pt depth 0pt}
    394 
    395 \renewcommand{\@makefntext}[1]{%
    396   \noindent \@makefnmark \hspace{1pt}#1}
    397 
    398 % Floats:
    399 
    400 \setcounter{topnumber}{4}
    401 \setcounter{bottomnumber}{1}
    402 \setcounter{totalnumber}{4}
    403 
    404 \renewcommand{\fps@figure}{tp}
    405 \renewcommand{\fps@table}{tp}
    406 \renewcommand{\topfraction}{0.90}
    407 \renewcommand{\bottomfraction}{0.30}
    408 \renewcommand{\textfraction}{0.10}
    409 \renewcommand{\floatpagefraction}{0.75}
    410 
    411 \setcounter{dbltopnumber}{4}
    412 
    413 \renewcommand{\dbltopfraction}{\topfraction}
    414 \renewcommand{\dblfloatpagefraction}{\floatpagefraction}
    415 
    416 \setlength{\floatsep}{18pt plus 4pt minus 2pt}
    417 \setlength{\textfloatsep}{18pt plus 4pt minus 3pt}
    418 \setlength{\intextsep}{10pt plus 4pt minus 3pt}
    419 
    420 \setlength{\dblfloatsep}{18pt plus 4pt minus 2pt}
    421 \setlength{\dbltextfloatsep}{20pt plus 4pt minus 3pt}
    422 
    423 % Miscellaneous:
    424 
    425 \errorcontextlines = 5
    426 
    427 %                       Fonts
    428 %                       -----
    429 
    430 
    431 \if \@times
    432   \renewcommand{\rmdefault}{ptm}%
    433   \if \@mathtime
    434     \usepackage[mtbold,noTS1]{mathtime}%
    435   \else
    436 %%%    \usepackage{mathptm}%
    437   \fi
    438 \else
    439   \relax
    440 \fi
    441 
    442 \if \@ninepoint
    443 
    444 \renewcommand{\normalsize}{%
    445   \@setfontsize{\normalsize}{9pt}{10pt}%
    446   \setlength{\abovedisplayskip}{5pt plus 1pt minus .5pt}%
    447   \setlength{\belowdisplayskip}{\abovedisplayskip}%
    448   \setlength{\abovedisplayshortskip}{3pt plus 1pt minus 2pt}%
    449   \setlength{\belowdisplayshortskip}{\abovedisplayshortskip}}
    450 
    451 \renewcommand{\tiny}{\@setfontsize{\tiny}{5pt}{6pt}}
    452 
    453 \renewcommand{\scriptsize}{\@setfontsize{\scriptsize}{7pt}{8pt}}
    454 
    455 \renewcommand{\small}{%
    456   \@setfontsize{\small}{8pt}{9pt}%
    457   \setlength{\abovedisplayskip}{4pt plus 1pt minus 1pt}%
    458   \setlength{\belowdisplayskip}{\abovedisplayskip}%
    459   \setlength{\abovedisplayshortskip}{2pt plus 1pt}%
    460   \setlength{\belowdisplayshortskip}{\abovedisplayshortskip}}
    461 
    462 \renewcommand{\footnotesize}{%
    463   \@setfontsize{\footnotesize}{8pt}{9pt}%
    464   \setlength{\abovedisplayskip}{4pt plus 1pt minus .5pt}%
    465   \setlength{\belowdisplayskip}{\abovedisplayskip}%
    466   \setlength{\abovedisplayshortskip}{2pt plus 1pt}%
    467   \setlength{\belowdisplayshortskip}{\abovedisplayshortskip}}
    468 
    469 \renewcommand{\large}{\@setfontsize{\large}{11pt}{13pt}}
    470 
    471 \renewcommand{\Large}{\@setfontsize{\Large}{14pt}{18pt}}
    472 
    473 \renewcommand{\LARGE}{\@setfontsize{\LARGE}{18pt}{20pt}}
    474 
    475 \renewcommand{\huge}{\@setfontsize{\huge}{20pt}{25pt}}
    476 
    477 \renewcommand{\Huge}{\@setfontsize{\Huge}{25pt}{30pt}}
    478 
    479 \else\if \@tenpoint
    480 
    481 \relax
    482 
    483 \else
    484 
    485 \relax
    486 
    487 \fi\fi
    488 
    489 %                       Abstract
    490 %                       --------
    491 
    492 
    493 \renewenvironment{abstract}{%
    494   \section*{Abstract}%
    495   \normalsize}{%
    496   }
    497 
    498 %                       Bibliography
    499 %                       ------------
    500 
    501 
    502 \renewenvironment{thebibliography}[1]
    503      {\section*{\refname
    504         \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}}%
    505       \list{\@biblabel{\@arabic\c@enumiv}}%
    506            {\settowidth\labelwidth{\@biblabel{#1}}%
    507             \leftmargin\labelwidth
    508             \advance\leftmargin\labelsep
    509             \@openbib@code
    510             \usecounter{enumiv}%
    511             \let\p@enumiv\@empty
    512             \renewcommand\theenumiv{\@arabic\c@enumiv}}%
    513       \bibfont
    514       \clubpenalty4000
    515       \@clubpenalty \clubpenalty
    516       \widowpenalty4000%
    517       \sfcode`\.\@m}
    518      {\def\@noitemerr
    519        {\@latex@warning{Empty `thebibliography' environment}}%
    520       \endlist}
    521 
    522 \if \@natbib
    523 
    524 \if \@authoryear
    525   \typeout{Using natbib package with 'authoryear' citation style.}
    526   \usepackage[authoryear,square]{natbib}
    527   \bibpunct{(}{)}{;}{a}{}{,}    % Change fences to parentheses;
    528                                 % citation separator to semicolon;
    529                                 % eliminate comma between author and year.
    530   \let \cite = \citep
    531 \else
    532   \typeout{Using natbib package with 'numbers' citation style.}
    533   \usepackage[numbers,sort&compress,square]{natbib}
    534 \fi
    535 \setlength{\bibsep}{3pt plus .5pt minus .25pt}
    536 
    537 \fi
    538 
    539 \def \bibfont {\small}
    540 
    541 %                       Categories
    542 %                       ----------
    543 
    544 
    545 \@setflag \@firstcategory = \@true
    546 
    547 \newcommand{\category}[3]{%
    548   \if \@firstcategory
    549     \paragraph*{Categories and Subject Descriptors}%
    550     \@setflag \@firstcategory = \@false
    551   \else
    552     \unskip ;\hspace{.75em}%
    553   \fi
    554   \@ifnextchar [{\@category{#1}{#2}{#3}}{\@category{#1}{#2}{#3}[]}}
    555 
    556 \def \@category #1#2#3[#4]{%
    557   {\let \and = \relax
    558    #1 [\textit{#2}]%
    559    \if \@emptyargp{#4}%
    560      \if \@notp{\@emptyargp{#3}}: #3\fi
    561    \else
    562      :\space
    563      \if \@notp{\@emptyargp{#3}}#3---\fi
    564      \textrm{#4}%
    565    \fi}}
    566 
    567 %                       Copyright Notice
    568 %                       --------- ------
    569 
    570 
    571 \def \ftype@copyrightbox {8}
    572 \def \@toappear {}
    573 \def \@permission {}
    574 \def \@reprintprice {}
    575 
    576 \def \@copyrightspace {%
    577   \@float{copyrightbox}[b]%
    578   \vbox to 1.2in{%
    579     \vfill
    580     \parbox[b]{20pc}{%
    581       \scriptsize
    582       \if \@preprint
    583         [Copyright notice will appear here
    584          once 'preprint' option is removed.]\par
    585       \else
    586         \@toappear
    587       \fi
    588       \if \@reprint
    589         \noindent Reprinted from \@conferencename,
    590         \@proceedings,
    591         \@conferenceinfo,
    592         pp.~\number\thepage--\pageref{sigplanconf@finalpage}.\par
    593       \fi}}%
    594   \end@float}
    595 
    596 \newcommand{\reprintprice}[1]{%
    597   \gdef \@reprintprice {#1}}
    598 
    599 \reprintprice{\$15.00}
    600 
    601 \long\def \toappear #1{%
    602   \def \@toappear {#1}}
    603 
    604 \toappear{%
    605   \noindent \@permission \par
    606   \vspace{2pt}
    607   \noindent \textsl{\@conferencename}, \quad \@conferenceinfo. \par
    608   \noindent Copyright \copyright\ \@copyrightyear\ ACM \@copyrightdata
    609     \dots \@reprintprice.\par
    610   \noindent http://dx.doi.org/10.1145/\@doi }
    611 
    612 \newcommand{\permission}[1]{%
    613   \gdef \@permission {#1}}
    614 
    615 \permission{%
    616   Permission to make digital or hard copies of all or part of this work for
    617   personal or classroom use is granted without fee provided that copies are
    618   not made or distributed for profit or commercial advantage and that copies
    619   bear this notice and the full citation on the first page. Copyrights for
    620   components of this work owned by others than ACM must be honored.
    621   Abstracting with credit is permitted. To copy otherwise, or republish, to
    622   post on servers or to redistribute to lists, requires prior specific
    623   permission and/or a fee. Request permissions from permissions@acm.org.}
    624 
    625 % These are two new rights management and bibstrip text blocks.
    626 
    627 \newcommand{\exclusivelicense}{%
    628   \permission{%
    629     Permission to make digital or hard copies of all or part of this work for
    630     personal or classroom use is granted without fee provided that copies are
    631     not made or distributed for profit or commercial advantage and that copies
    632     bear this notice and the full citation on the first page. Copyrights for
    633     components of this work owned by others than the author(s) must be honored.
    634     Abstracting with credit is permitted. To copy otherwise, or republish, to
    635     post on servers or to redistribute to lists, requires prior specific
    636     permission and/or a fee. Request permissions from permissions@acm.org.}
    637   \toappear{%
    638     \noindent \@permission \par
    639     \vspace{2pt}
    640     \noindent \textsl{\@conferencename}, \quad \@conferenceinfo. \par
    641     \noindent Copyright is held by the owner/author(s). Publication rights licensed to ACM. \par
    642     \noindent ACM \@copyrightdata \dots \@reprintprice.\par
    643     \noindent http://dx.doi.org/10.1145/\@doi}}
    644 
    645 \newcommand{\permissiontopublish}{%
    646   \permission{%
    647     Permission to make digital or hard copies of part or all of this work for
    648     personal or classroom use is granted without fee provided that copies are
    649     not made or distributed for profit or commercial advantage and that copies
    650     bear this notice and the full citation on the first page. Copyrights for
    651     third-party components of this work must be honored. 
    652     For all other uses, contact the owner/author(s).}%
    653   \toappear{%
    654     \noindent \@permission \par
    655     \vspace{2pt}
    656     \noindent \textsl{\@conferencename}, \quad \@conferenceinfo. \par
    657     \noindent Copyright is held by the owner/author(s). \par
    658     \noindent ACM \@copyrightdata.\par
    659     \noindent http://dx.doi.org/10.1145/\@doi}}
    660 
    661 % The following permission notices are
    662 % for the traditional copyright transfer agreement option.
    663 
    664 % Exclusive license and permission-to-publish 
    665 % give more complicated permission notices.
    666 % These are not covered here.
    667 
    668 \newcommand{\ACMCanadapermission}{%
    669   \permission{%
    670     ACM acknowledges that this contribution was authored or
    671     co-authored by an affiliate of the Canadian National
    672     Government. As such, the Crown in Right of Canada retains an equal
    673     interest in the copyright. Reprint requests should be forwarded to
    674     ACM.}}
    675 
    676 \newcommand{\ACMUSpermission}{%
    677   \permission{%
    678     ACM acknowledges that this contribution was authored or
    679     co-authored by a contractor or affiliate of the United States
    680     Government. As such, the United States Government retains a
    681     nonexclusive, royalty-free right to publish or reproduce this
    682     article, or to allow others to do so, for Government purposes
    683     only.}}
    684 
    685 \newcommand{\USpublicpermission}{%
    686   \permission{%
    687     This paper is authored by an employee(s) of the United States
    688     Government and is in the public domain. Non-exclusive copying or
    689     redistribution is allowed, provided that the article citation is
    690     given and the authors and the agency are clearly identified as its
    691     source.}%
    692   \toappear{%
    693     \noindent \@permission \par
    694     \vspace{2pt}
    695     \noindent \textsl{\@conferencename}, \quad \@conferenceinfo. \par
    696     \noindent ACM \@copyrightdata.\par
    697     \noindent http://dx.doi.org/10.1145/\@doi}}
    698 
    699 \newcommand{\authorversion}[4]{%
    700   \permission{%
    701   Copyright \copyright\ ACM, #1. This is the author's version of the work.
    702   It is posted here by permission of ACM for your personal use.
    703   Not for redistribution. The definitive version was published in
    704   #2, #3, http://dx.doi.org/10.1145/#4.}}
    705 
    706 %                       Enunciations
    707 %                       ------------
    708 
    709 
    710 \def \@begintheorem #1#2{%                      {name}{number}
    711   \trivlist
    712   \item[\hskip \labelsep \textsc{#1 #2.}]%
    713   \itshape\selectfont
    714   \ignorespaces}
    715 
    716 \def \@opargbegintheorem #1#2#3{%               {name}{number}{title}
    717   \trivlist
    718   \item[%
    719     \hskip\labelsep \textsc{#1\ #2}%
    720     \if \@notp{\@emptyargp{#3}}\nut (#3).\fi]%
    721   \itshape\selectfont
    722   \ignorespaces}
    723 
    724 %                       Figures
    725 %                       -------
    726 
    727 
    728 \@setflag \@caprule = \@true
    729 
    730 \long\def \@makecaption #1#2{%
    731   \addvspace{4pt}
    732   \if \@caprule
    733     \hrule width \hsize height .33pt
    734     \vspace{4pt}
    735   \fi
    736   \setbox \@tempboxa = \hbox{\@setfigurenumber{#1.}\nut #2}%
    737   \if \@dimgtrp{\wd\@tempboxa}{\hsize}%
    738     \noindent \@setfigurenumber{#1.}\nut #2\par
    739   \else
    740     \centerline{\box\@tempboxa}%
    741   \fi}
    742 
    743 \newcommand{\nocaptionrule}{%
    744   \@setflag \@caprule = \@false}
    745 
    746 \def \@setfigurenumber #1{%
    747   {\rmfamily \bfseries \selectfont #1}}
    748 
    749 %                       Hierarchy
    750 %                       ---------
    751 
    752 
    753 \setcounter{secnumdepth}{\@numheaddepth}
    754 
    755 \newskip{\@sectionaboveskip}
    756 \setvspace{\@sectionaboveskip}{10pt plus 3pt minus 2pt}
    757 
    758 \newskip{\@sectionbelowskip}
    759 \if \@blockstyle
    760   \setlength{\@sectionbelowskip}{0.1pt}%
    761 \else
    762   \setlength{\@sectionbelowskip}{4pt}%
    763 \fi
    764 
    765 \renewcommand{\section}{%
    766   \@startsection
    767     {section}%
    768     {1}%
    769     {0pt}%
    770     {-\@sectionaboveskip}%
    771     {\@sectionbelowskip}%
    772     {\large \bfseries \raggedright}}
    773 
    774 \newskip{\@subsectionaboveskip}
    775 \setvspace{\@subsectionaboveskip}{8pt plus 2pt minus 2pt}
    776 
    777 \newskip{\@subsectionbelowskip}
    778 \if \@blockstyle
    779   \setlength{\@subsectionbelowskip}{0.1pt}%
    780 \else
    781   \setlength{\@subsectionbelowskip}{4pt}%
    782 \fi
    783 
    784 \renewcommand{\subsection}{%
    785   \@startsection%
    786     {subsection}%
    787     {2}%
    788     {0pt}%
    789     {-\@subsectionaboveskip}%
    790     {\@subsectionbelowskip}%
    791     {\normalsize \bfseries \raggedright}}
    792 
    793 \renewcommand{\subsubsection}{%
    794   \@startsection%
    795     {subsubsection}%
    796     {3}%
    797     {0pt}%
    798     {-\@subsectionaboveskip}
    799     {\@subsectionbelowskip}%
    800     {\normalsize \bfseries \raggedright}}
    801 
    802 \newskip{\@paragraphaboveskip}
    803 \setvspace{\@paragraphaboveskip}{6pt plus 2pt minus 2pt}
    804 
    805 \renewcommand{\paragraph}{%
    806   \@startsection%
    807     {paragraph}%
    808     {4}%
    809     {0pt}%
    810     {\@paragraphaboveskip}
    811     {-1em}%
    812     {\normalsize \bfseries \if \@times \itshape \fi}}
    813 
    814 \renewcommand{\subparagraph}{%
    815   \@startsection%
    816     {subparagraph}%
    817     {4}%
    818     {0pt}%
    819     {\@paragraphaboveskip}
    820     {-1em}%
    821     {\normalsize \itshape}}
    822 
    823 % Standard headings:
    824 
    825 \newcommand{\acks}{\section*{Acknowledgments}}
    826 
    827 \newcommand{\keywords}{\paragraph*{Keywords}}
    828 
    829 \newcommand{\terms}{\paragraph*{General Terms}}
    830 
    831 %                       Identification
    832 %                       --------------
    833 
    834 
    835 \def \@conferencename {}
    836 \def \@conferenceinfo {}
    837 \def \@copyrightyear {}
    838 \def \@copyrightdata {[to be supplied]}
    839 \def \@proceedings {[Unknown Proceedings]}
    840 
    841 
    842 \newcommand{\conferenceinfo}[2]{%
    843   \gdef \@conferencename {#1}%
    844   \gdef \@conferenceinfo {#2}}
    845 
    846 \newcommand{\copyrightyear}[1]{%
    847   \gdef \@copyrightyear {#1}}
    848 
    849 \let \CopyrightYear = \copyrightyear
    850 
    851 \newcommand{\copyrightdata}[1]{%
    852   \gdef \@copyrightdata {#1}}
    853 
    854 \let \crdata = \copyrightdata
    855 
    856 \newcommand{\doi}[1]{%
    857   \gdef \@doi {#1}}
    858 
    859 \newcommand{\proceedings}[1]{%
    860   \gdef \@proceedings {#1}}
    861 
    862 %                       Lists
    863 %                       -----
    864 
    865 
    866 \setlength{\leftmargini}{13pt}
    867 \setlength\leftmarginii{13pt}
    868 \setlength\leftmarginiii{13pt}
    869 \setlength\leftmarginiv{13pt}
    870 \setlength{\labelsep}{3.5pt}
    871 
    872 \setlength{\topsep}{\standardvspace}
    873 \if \@blockstyle
    874   \setlength{\itemsep}{1pt}
    875   \setlength{\parsep}{3pt}
    876 \else
    877   \setlength{\itemsep}{1pt}
    878   \setlength{\parsep}{3pt}
    879 \fi
    880 
    881 \renewcommand{\labelitemi}{{\small \centeroncapheight{\textbullet}}}
    882 \renewcommand{\labelitemii}{\centeroncapheight{\rule{2.5pt}{2.5pt}}}
    883 \renewcommand{\labelitemiii}{$-$}
    884 \renewcommand{\labelitemiv}{{\Large \textperiodcentered}}
    885 
    886 \renewcommand{\@listi}{%
    887   \leftmargin = \leftmargini
    888   \listparindent = 0pt}
    889 %%%  \itemsep = 1pt
    890 %%%  \parsep = 3pt}
    891 %%%  \listparindent = \parindent}
    892 
    893 \let \@listI = \@listi
    894 
    895 \renewcommand{\@listii}{%
    896   \leftmargin = \leftmarginii
    897   \topsep = 1pt
    898   \labelwidth = \leftmarginii
    899   \advance \labelwidth by -\labelsep
    900   \listparindent = \parindent}
    901 
    902 \renewcommand{\@listiii}{%
    903   \leftmargin = \leftmarginiii
    904   \labelwidth = \leftmarginiii
    905   \advance \labelwidth by -\labelsep
    906   \listparindent = \parindent}
    907 
    908 \renewcommand{\@listiv}{%
    909   \leftmargin = \leftmarginiv
    910   \labelwidth = \leftmarginiv
    911   \advance \labelwidth by -\labelsep
    912   \listparindent = \parindent}
    913 
    914 %                       Mathematics
    915 %                       -----------
    916 
    917 
    918 \def \theequation {\arabic{equation}}
    919 
    920 %                       Miscellaneous
    921 %                       -------------
    922 
    923 
    924 \newcommand{\balancecolumns}{%
    925   \vfill\eject
    926   \global\@colht = \textheight
    927   \global\ht\@cclv = \textheight}
    928 
    929 \newcommand{\nut}{\hspace{.5em}}
    930 
    931 \newcommand{\softraggedright}{%
    932   \let \\ = \@centercr
    933   \leftskip = 0pt
    934   \rightskip = 0pt plus 10pt}
    935 
    936 %                       Program Code
    937 %                       ------- ----
    938 
    939 
    940 \newcommand{\mono}[1]{%
    941   {\@tempdima = \fontdimen2\font
    942    \texttt{\spaceskip = 1.1\@tempdima #1}}}
    943 
    944 %                       Running Heads and Feet
    945 %                       ------- ----- --- ----
    946 
    947 
    948 \def \@preprintfooter {}
    949 
    950 \newcommand{\preprintfooter}[1]{%
    951   \gdef \@preprintfooter {#1}}
    952 
    953 \if \@preprint
    954 
    955 \def \ps@plain {%
    956   \let \@mkboth = \@gobbletwo
    957   \let \@evenhead = \@empty
    958   \def \@evenfoot {\scriptsize
    959                    \rlap{\textit{\@preprintfooter}}\hfil
    960                    \thepage \hfil
    961                    \llap{\textit{\@formatyear}}}%
    962   \let \@oddhead = \@empty
    963   \let \@oddfoot = \@evenfoot}
    964 
    965 \else\if \@reprint
    966 
    967 \def \ps@plain {%
    968   \let \@mkboth = \@gobbletwo
    969   \let \@evenhead = \@empty
    970   \def \@evenfoot {\scriptsize \hfil \thepage \hfil}%
    971   \let \@oddhead = \@empty
    972   \let \@oddfoot = \@evenfoot}
    973 
    974 \else
    975 
    976 \let \ps@plain = \ps@empty
    977 \let \ps@headings = \ps@empty
    978 \let \ps@myheadings = \ps@empty
    979 
    980 \fi\fi
    981 
    982 \def \@formatyear {%
    983   \number\year/\number\month/\number\day}
    984 
    985 %                       Special Characters
    986 %                       ------- ----------
    987 
    988 
    989 \DeclareRobustCommand{\euro}{%
    990   \protect{\rlap{=}}{\sf \kern .1em C}}
    991 
    992 %                       Title Page
    993 %                       ----- ----
    994 
    995 
    996 \@setflag \@addauthorsdone = \@false
    997 
    998 \def \@titletext {\@latex@error{No title was provided}{}}
    999 \def \@subtitletext {}
   1000 
   1001 \newcount{\@authorcount}
   1002 
   1003 \newcount{\@titlenotecount}
   1004 \newtoks{\@titlenotetext}
   1005 
   1006 \def \@titlebanner {}
   1007 
   1008 \renewcommand{\title}[1]{%
   1009   \gdef \@titletext {#1}}
   1010 
   1011 \newcommand{\subtitle}[1]{%
   1012   \gdef \@subtitletext {#1}}
   1013 
   1014 \newcommand{\authorinfo}[3]{%           {names}{affiliation}{email/URL}
   1015   \global\@increment \@authorcount
   1016   \@withname\gdef {\@authorname\romannumeral\@authorcount}{#1}%
   1017   \@withname\gdef {\@authoraffil\romannumeral\@authorcount}{#2}%
   1018   \@withname\gdef {\@authoremail\romannumeral\@authorcount}{#3}}
   1019 
   1020 \renewcommand{\author}[1]{%
   1021   \@latex@error{The \string\author\space command is obsolete;
   1022                 use \string\authorinfo}{}}
   1023 
   1024 \newcommand{\titlebanner}[1]{%
   1025   \gdef \@titlebanner {#1}}
   1026 
   1027 \renewcommand{\maketitle}{%
   1028   \pagestyle{plain}%
   1029   \if \@onecolumn
   1030     {\hsize = \standardtextwidth
   1031      \@maketitle}%
   1032   \else
   1033     \twocolumn[\@maketitle]%
   1034   \fi
   1035   \@placetitlenotes
   1036   \if \@copyrightwanted \@copyrightspace \fi}
   1037 
   1038 \def \@maketitle {%
   1039   \begin{center}
   1040   \@settitlebanner
   1041   \let \thanks = \titlenote
   1042   {\leftskip = 0pt plus 0.25\linewidth
   1043    \rightskip = 0pt plus 0.25 \linewidth
   1044    \parfillskip = 0pt
   1045    \spaceskip = .7em
   1046    \noindent \LARGE \bfseries \@titletext \par}
   1047   \vskip 6pt
   1048   \noindent \Large \@subtitletext \par
   1049   \vskip 12pt
   1050   \ifcase \@authorcount
   1051     \@latex@error{No authors were specified for this paper}{}\or
   1052     \@titleauthors{i}{}{}\or
   1053     \@titleauthors{i}{ii}{}\or
   1054     \@titleauthors{i}{ii}{iii}\or
   1055     \@titleauthors{i}{ii}{iii}\@titleauthors{iv}{}{}\or
   1056     \@titleauthors{i}{ii}{iii}\@titleauthors{iv}{v}{}\or
   1057     \@titleauthors{i}{ii}{iii}\@titleauthors{iv}{v}{vi}\or
   1058     \@titleauthors{i}{ii}{iii}\@titleauthors{iv}{v}{vi}%
   1059                   \@titleauthors{vii}{}{}\or
   1060     \@titleauthors{i}{ii}{iii}\@titleauthors{iv}{v}{vi}%
   1061                   \@titleauthors{vii}{viii}{}\or
   1062     \@titleauthors{i}{ii}{iii}\@titleauthors{iv}{v}{vi}%
   1063                   \@titleauthors{vii}{viii}{ix}\or
   1064     \@titleauthors{i}{ii}{iii}\@titleauthors{iv}{v}{vi}%
   1065                   \@titleauthors{vii}{viii}{ix}\@titleauthors{x}{}{}\or
   1066     \@titleauthors{i}{ii}{iii}\@titleauthors{iv}{v}{vi}%
   1067                   \@titleauthors{vii}{viii}{ix}\@titleauthors{x}{xi}{}\or
   1068     \@titleauthors{i}{ii}{iii}\@titleauthors{iv}{v}{vi}%
   1069                   \@titleauthors{vii}{viii}{ix}\@titleauthors{x}{xi}{xii}%
   1070   \else
   1071     \@latex@error{Cannot handle more than 12 authors}{}%
   1072   \fi
   1073   \vspace{1.75pc}
   1074   \end{center}}
   1075 
   1076 \def \@settitlebanner {%
   1077   \if \@andp{\@preprint}{\@notp{\@emptydefp{\@titlebanner}}}%
   1078     \vbox to 0pt{%
   1079       \vskip -32pt
   1080       \noindent \textbf{\@titlebanner}\par
   1081       \vss}%
   1082     \nointerlineskip
   1083   \fi}
   1084 
   1085 \def \@titleauthors #1#2#3{%
   1086   \if \@andp{\@emptyargp{#2}}{\@emptyargp{#3}}%
   1087     \noindent \@setauthor{40pc}{#1}{\@false}\par
   1088   \else\if \@emptyargp{#3}%
   1089     \noindent \@setauthor{17pc}{#1}{\@false}\hspace{3pc}%
   1090               \@setauthor{17pc}{#2}{\@false}\par
   1091   \else
   1092     \noindent \@setauthor{12.5pc}{#1}{\@false}\hspace{2pc}%
   1093               \@setauthor{12.5pc}{#2}{\@false}\hspace{2pc}%
   1094               \@setauthor{12.5pc}{#3}{\@true}\par
   1095     \relax
   1096   \fi\fi
   1097   \vspace{20pt}}
   1098 
   1099 \def \@setauthor #1#2#3{%                       {width}{text}{unused}
   1100   \vtop{%
   1101     \def \and {%
   1102       \hspace{16pt}}
   1103     \hsize = #1
   1104     \normalfont
   1105     \centering
   1106     \large \@name{\@authorname#2}\par
   1107     \vspace{5pt}
   1108     \normalsize \@name{\@authoraffil#2}\par
   1109     \vspace{2pt}
   1110     \textsf{\@name{\@authoremail#2}}\par}}
   1111 
   1112 \def \@maybetitlenote #1{%
   1113   \if \@andp{#1}{\@gtrp{\@authorcount}{3}}%
   1114     \titlenote{See page~\pageref{@addauthors} for additional authors.}%
   1115   \fi}
   1116 
   1117 \newtoks{\@fnmark}
   1118 
   1119 \newcommand{\titlenote}[1]{%
   1120   \global\@increment \@titlenotecount
   1121   \ifcase \@titlenotecount \relax \or
   1122     \@fnmark = {\ast}\or
   1123     \@fnmark = {\dagger}\or
   1124     \@fnmark = {\ddagger}\or
   1125     \@fnmark = {\S}\or
   1126     \@fnmark = {\P}\or
   1127     \@fnmark = {\ast\ast}%
   1128   \fi
   1129   \,$^{\the\@fnmark}$%
   1130   \edef \reserved@a {\noexpand\@appendtotext{%
   1131                        \noexpand\@titlefootnote{\the\@fnmark}}}%
   1132   \reserved@a{#1}}
   1133 
   1134 \def \@appendtotext #1#2{%
   1135   \global\@titlenotetext = \expandafter{\the\@titlenotetext #1{#2}}}
   1136 
   1137 \newcount{\@authori}
   1138 
   1139 \iffalse
   1140 \def \additionalauthors {%
   1141   \if \@gtrp{\@authorcount}{3}%
   1142     \section{Additional Authors}%
   1143     \label{@addauthors}%
   1144     \noindent
   1145     \@authori = 4
   1146     {\let \\ = ,%
   1147      \loop 
   1148        \textbf{\@name{\@authorname\romannumeral\@authori}},
   1149        \@name{\@authoraffil\romannumeral\@authori},
   1150        email: \@name{\@authoremail\romannumeral\@authori}.%
   1151        \@increment \@authori
   1152      \if \@notp{\@gtrp{\@authori}{\@authorcount}} \repeat}%
   1153     \par
   1154   \fi
   1155   \global\@setflag \@addauthorsdone = \@true}
   1156 \fi
   1157 
   1158 \let \addauthorsection = \additionalauthors
   1159 
   1160 \def \@placetitlenotes {
   1161   \the\@titlenotetext}
   1162 
   1163 %                       Utilities
   1164 %                       ---------
   1165 
   1166 
   1167 \newcommand{\centeroncapheight}[1]{%
   1168   {\setbox\@tempboxa = \hbox{#1}%
   1169    \@measurecapheight{\@tempdima}%         % Calculate ht(CAP) - ht(text)
   1170    \advance \@tempdima by -\ht\@tempboxa   %           ------------------
   1171    \divide \@tempdima by 2                 %                   2
   1172    \raise \@tempdima \box\@tempboxa}}
   1173 
   1174 \newbox{\@measbox}
   1175 
   1176 \def \@measurecapheight #1{%                            {\dimen}
   1177   \setbox\@measbox = \hbox{ABCDEFGHIJKLMNOPQRSTUVWXYZ}%
   1178   #1 = \ht\@measbox}
   1179 
   1180 \long\def \@titlefootnote #1#2{%
   1181   \insert\footins{%
   1182     \reset@font\footnotesize
   1183     \interlinepenalty\interfootnotelinepenalty
   1184     \splittopskip\footnotesep
   1185     \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
   1186     \hsize\columnwidth \@parboxrestore
   1187 %%%    \protected@edef\@currentlabel{%
   1188 %%%       \csname p@footnote\endcsname\@thefnmark}%
   1189     \color@begingroup
   1190       \def \@makefnmark {$^{#1}$}%
   1191       \@makefntext{%
   1192         \rule\z@\footnotesep\ignorespaces#2\@finalstrut\strutbox}%
   1193     \color@endgroup}}
   1194 
   1195 %                       LaTeX Modifications
   1196 %                       ----- -------------
   1197 
   1198 \def \@seccntformat #1{%
   1199   \@name{\the#1}%
   1200   \@expandaftertwice\@seccntformata \csname the#1\endcsname.\@mark
   1201   \quad}
   1202 
   1203 \def \@seccntformata #1.#2\@mark{%
   1204   \if \@emptyargp{#2}.\fi}
   1205 
   1206 %                       Revision History
   1207 %                       -------- -------
   1208 
   1209 
   1210 %  Date         Person  Ver.    Change
   1211 %  ----         ------  ----    ------
   1212 
   1213 %  2004.09.12   PCA     0.1--4  Preliminary development.
   1214 
   1215 %  2004.11.18   PCA     0.5     Start beta testing.
   1216 
   1217 %  2004.11.19   PCA     0.6     Obsolete \author and replace with
   1218 %                               \authorinfo.
   1219 %                               Add 'nocopyrightspace' option.
   1220 %                               Compress article opener spacing.
   1221 %                               Add 'mathtime' option.
   1222 %                               Increase text height by 6 points.
   1223 
   1224 %  2004.11.28   PCA     0.7     Add 'cm/computermodern' options.
   1225 %                               Change default to Times text.
   1226 
   1227 %  2004.12.14   PCA     0.8     Remove use of mathptm.sty; it cannot
   1228 %                               coexist with latexsym or amssymb.
   1229 
   1230 %  2005.01.20   PCA     0.9     Rename class file to sigplanconf.cls.
   1231 
   1232 %  2005.03.05   PCA     0.91    Change default copyright data.
   1233 
   1234 %  2005.03.06   PCA     0.92    Add at-signs to some macro names.
   1235 
   1236 %  2005.03.07   PCA     0.93    The 'onecolumn' option defaults to '11pt',
   1237 %                               and it uses the full type width.
   1238 
   1239 %  2005.03.15   PCA     0.94    Add at-signs to more macro names.
   1240 %                               Allow margin paragraphs during review.
   1241 
   1242 %  2005.03.22   PCA     0.95    Implement \euro.
   1243 %                               Remove proof and newdef environments.
   1244 
   1245 %  2005.05.06   PCA     1.0     Eliminate 'onecolumn' option.
   1246 %                               Change footer to small italic and eliminate
   1247 %                               left portion if no \preprintfooter.
   1248 %                               Eliminate copyright notice if preprint.
   1249 %                               Clean up and shrink copyright box.
   1250 
   1251 %  2005.05.30   PCA     1.1     Add alternate permission statements.
   1252 
   1253 %  2005.06.29   PCA     1.1     Publish final first edition of guide.
   1254 
   1255 %  2005.07.14   PCA     1.2     Add \subparagraph.
   1256 %                               Use block paragraphs in lists, and adjust
   1257 %                               spacing between items and paragraphs.
   1258 
   1259 %  2006.06.22   PCA     1.3     Add 'reprint' option and associated
   1260 %                               commands.
   1261 
   1262 %  2006.08.24   PCA     1.4     Fix bug in \maketitle case command.
   1263 
   1264 %  2007.03.13   PCA     1.5     The title banner only displays with the
   1265 %                               'preprint' option.
   1266 
   1267 %  2007.06.06   PCA     1.6     Use \bibfont in \thebibliography.
   1268 %                               Add 'natbib' option to load and configure
   1269 %                                 the natbib package.
   1270 
   1271 %  2007.11.20   PCA     1.7     Balance line lengths in centered article
   1272 %                                 title (thanks to Norman Ramsey).
   1273 
   1274 %  2009.01.26   PCA     1.8     Change natbib \bibpunct values.
   1275 
   1276 %  2009.03.24   PCA     1.9     Change natbib to use the 'numbers' option.
   1277 %                               Change templates to use 'natbib' option.
   1278 
   1279 %  2009.09.01   PCA     2.0     Add \reprintprice command (suggested by
   1280 %                                 Stephen Chong).
   1281 
   1282 %  2009.09.08   PCA     2.1     Make 'natbib' the default; add 'nonatbib'.
   1283 %               SB              Add 'authoryear' and 'numbers' (default) to
   1284 %                               control citation style when using natbib.
   1285 %                               Add \bibpunct to change punctuation for
   1286 %                               'authoryear' style.
   1287 
   1288 %  2009.09.21   PCA     2.2     Add \softraggedright to the thebibliography
   1289 %                               environment. Also add to template so it will
   1290 %                               happen with natbib.
   1291 
   1292 %  2009.09.30   PCA     2.3     Remove \softraggedright from thebibliography.  
   1293 %                               Just include in the template.
   1294 
   1295 %  2010.05.24   PCA     2.4     Obfuscate class author's email address.
   1296 
   1297 %  2011.11.08   PCA     2.5     Add copyright notice to this file.
   1298 %                               Remove 'sort' option from natbib when using
   1299 %                                 'authoryear' style.
   1300 %                               Add the \authorversion command.
   1301 
   1302 %  2013.02.22   PCA     2.6     Change natbib fences to parentheses when
   1303 %                                 using 'authoryear' style.
   1304 
   1305 %  2013.05.17   PCA     2.7     Change standard and author copyright text.
   1306 
   1307 %  2013.07.02   TU      2.8     More changes to permission/copyright notes.
   1308 %                               Replaced ambiguous \authorpermission with
   1309 %                               \exclusivelicense and \permissiontopublish
   1310  
   1311