From b97de83531a0d2034b7b62cca7403b7955d038c7 Mon Sep 17 00:00:00 2001 From: Thibaut Horel Date: Sun, 10 Feb 2013 10:41:59 -0800 Subject: Forgot acmsmall files --- acmsmall.bst | 1865 ++++++++++++++++++++++++++++ ec-acmsmall.cls | 3728 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 5593 insertions(+) create mode 100644 acmsmall.bst create mode 100644 ec-acmsmall.cls diff --git a/acmsmall.bst b/acmsmall.bst new file mode 100644 index 0000000..255895f --- /dev/null +++ b/acmsmall.bst @@ -0,0 +1,1865 @@ +% "ACM Transactions" BibTeX style, acmsmall.bst => created from acmtrans.bst +% for BibTeX version 0.99c, LaTeX version 3.141 +% Revised 28-MARCH-1996 +% Revised 30-JUNE-1995 +% Revised 15-JAN-1996 +% Revised 28-JUNE-2010 +% Revised 12-DECEMBER-2010 +% $Header: acmtrans.bst,v 1.2 96/01/17 09:05:38 boyland Exp $ +% +% Hacked by John T. Boyland at University of California, Berkeley +% (with assistance by John R. Hauser) +% Hacked by Andrew W. Appel and Rebecca L. Davies at Princeton University, +% based on a "chicago.bst" by Glenn Paulley at U. Waterloo, +% which was based on "newapa.bst" found at ymir.claremont.edu. +% +% Citation format: [author-last-name year] +% [author-last-name and author-last-name year] +% [author-last-name, author-last-name, and author-last-name year] +% [author-last-name et al. year] +% [author-last-name] +% author-last-name [year] +% [author-last-name and author-last-name] +% [author-last-name et al.] +% [year] or [year,year] +% year or year,year +% +% Reference list ordering: alphabetical by author or whatever passes +% for author in the absence of one. +% +% This BibTeX style has support for abbreviated author lists and for +% year-only citations. This is done by having the citations +% actually look like +% +% \citeauthoryear{full-author-info}{abbrev-author-info}{year} +% +% The LaTeX style has to have the following (or similar) +% +% \let\@internalcite\cite +% \def\fullcite{\def\citeauthoryear##1##2##3{##1, ##3}\@internalcite} +% \def\fullciteA{\def\citeauthoryear##1##2##3{##1}\@internalcite} +% \def\shortcite{\def\citeauthoryear##1##2##3{##2, ##3}\@internalcite} +% \def\shortciteA{\def\citeauthoryear##1##2##3{##2}\@internalcite} +% \def\citeyear{\def\citeauthoryear##1##2##3{##3}\@internalcite} +% +% These TeX macro definitions are found in acmtrans.sty. Additional +% commands to manipulate different components of a citation can be defined +% so that, for example, you can list author's names without parentheses +% if using a citation as a noun or object in a sentence. +% +% Features of acmtrans.bst: +% ======================== +% +% - all authors appear last name first. +% - all pages are listed xx-xx, (no pp.) and are at the end of the reference +% - publishers are identified as publisher, address +% - conferences papers (inproceedings) may give city of conference, +% date of conference, and journal that the proceedings appear in. +% - months abbreviated to max four letters (eg. Mar.) +% - volume of a series indicated after the title of the series +% - editors appear after edited title and are identified by a trailing "Eds." +% not in parentheses. Editor names are not given in small caps. +% (unless there is no author line) +% - names terminated with a period even if there is no first name. +% - editions are indicated trailing after the work, not in parentheses. +% - "et al." citations have a protected period to avoid bad spacing (jrh) +% - "address" required when publisher given +% - series (roman) and volume are in a sentence separate from (book-)title +% +% +% Features of chicago.bst: +% ======================= +% +% - full names used in citations, but abbreviated citations are available +% (see above) +% - if an entry has a "month", then the month and year are also printed +% as part of that bibitem. +% - all conjunctions use "and" instead of "\&" +% - major modification from Chicago Manual of Style (13th ed.) is that +% only the first author in a reference appears last name first- +% additional authors appear as J. Q. Public. +% - pages are listed as "pp. xx-xx" in all entry types except +% article entries. +% - book, inbook, and manual use "location: publisher" (or organization) +% for address and publisher. All other types list publishers separately. +% - "pp." are used to identify page numbers for all entry types except +% articles. +% - organization is used as a citation label if neither author nor editor +% is present (for manuals). +% - "et al." is used for long author and editor lists, or when "others" +% is used. +% +% Modifications and bug fixes from newapa.bst: +% =========================================== +% +% - added month, year to bib entries if month is present +% - fixed bug with In proceedings, added necessary comma after title +% - all conjunctions changed to "and" from "\&" +% - fixed bug with author labels in my.full.label: "et al." now is +% generated when "others" is an author name +% - major modification from Chicago Manual of Style (13th ed.) is that +% only the first author in a reference appears last name first- +% additional authors appear as J. Q. Public. +% - pages are listed as "pp. xx-xx" in all entry types except +% article entries. Unnecessary (IMHO) "()" around page numbers +% were removed, and page numbers now don't end with a period. +% - created chicago.sty for use with this bibstyle (required). +% - fixed bugs in FUNCTION {format.vol.num.pages} for missing volume, +% number, and /or pages. Renamed to format.jour.vol. +% - fixed bug in formatting booktitles: additional period an error if +% book has a volume. +% - fixed bug: editors usually given redundant period before next clause +% (format.editors.dot) removed. +% - added label support for organizations, if both author and editor +% are missing (from alpha.bst). If organization is too long, then +% the key field is used for abbreviated citations. +% - In proceedings or books of several volumes, no comma was written +% between the "Volume x" and the page numbers (this was intentional +% in newapa.bst). Fixed. +% - Some journals may not have volumes/numbers, only month/year (eg. +% IEEE Computer). Fixed bug in article style that assumed volume/number +% was always present. +% - Modified calc.label function to generate proper labels with years in +% case of three and more authors (for et al. cases), when the first author +% is same. Renamed the old function of calc.label to calc.label.new to +% retain proper writing: (acmtexsupport@aptaracorp.com, dated 30/12/2010) +% +% Original documentation for newapa.sty: +% ===================================== +% +% This version was made by modifying the master file made by +% Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU), and the 'named' BibTeX +% style of Peter F. Patel-Schneider. +% +% Copyright (C) 1985, all rights reserved. +% Copying of this file is authorized only if either +% (1) you make absolutely no changes to your copy, including name, or +% (2) if you do make changes, you name it something other than 'newapa.bst'. +% There are undoubtably bugs in this style. If you make bug fixes, +% improvements, etc. please let me know. My e-mail address is: +% spencer@cgrg.ohio.state.edu or 71160.3141@compuserve.com +% +% This style was made from 'plain.bst', 'named.bst', and 'apalike.bst', +% with lots of tweaking to make it look like APA style, along with tips +% from Young Ryu and Brian Reiser's modifications of 'apalike.bst'. + +ENTRY + { address + author + booktitle + chapter + city % jtb: added + date % jtb: added + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label.year extra.label sort.year sort.label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +STRINGS { s t u } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +% Use a colon to separate output. Used only for address/publisher +% combination in book/inbook types, address/institution for manuals, +% and organization:publisher for proceedings (inproceedings). +% +FUNCTION {output.nonnull.colon} +{ 's := + output.state mid.sentence = + { ": " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.colon} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull.colon + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {output.check.colon} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull.colon + if$ +} + +FUNCTION {output.year.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { write$ + " " year * extra.label * + mid.sentence 'output.state := + } + if$ +} + + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +% +% Emphasize the top string on the stack. +% +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +% +% Emphasize the top string on the stack, but add a trailing space. +% +FUNCTION {emphasize.space} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "\/}" * } + if$ +} + +% +% Emphasize the top string on stack, add a trailing comma and space. +% +FUNCTION {emphasize.comma} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * ",\/}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } +% +% Format bibliographical entries with the first author last name first, +% and subsequent authors with initials followed by last name. +% All names are formatted in this routine. +% + +FUNCTION {format.names} +{ 's := + #1 'nameptr := % nameptr = 1; + s num.names$ 'numnames := % numnames = num.name$(s); + numnames 'namesleft := + { namesleft #0 > } + + { nameptr #1 = + {"{\sc " s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ * "}" * 't := } + {"{\sc " s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ * "}" * 't := } + if$ + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "{\sc others}" = + { " {\sc et~al\mbox{.}}" * } % jrh: avoid spacing problems + { " {\sc and} " * t * } % from Chicago Manual of Style + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := % nameptr += 1; + namesleft #1 - 'namesleft := % namesleft =- 1; + } + while$ +} + +FUNCTION {my.full.label} +{ 's := + #1 'nameptr := % nameptr = 1; + s num.names$ 'numnames := % numnames = num.name$(s); + numnames 'namesleft := + { namesleft #0 > } + + { s nameptr "{vv~}{ll}" format.name$ 't := % get the next name + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al\mbox{.}" * } % jrh: avoid spacing problems + { " and " * t * } % from Chicago Manual of Style + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := % nameptr += 1; + namesleft #1 - 'namesleft := % namesleft =- 1; + } + while$ + +} + +FUNCTION {format.names.fml} +% +% Format names in "familiar" format, with first initial followed by +% last name. Like format.names, ALL names are formatted. +% jtb: The names are NOT put in small caps +% +{ 's := + #1 'nameptr := % nameptr = 1; + s num.names$ 'numnames := % numnames = num.name$(s); + numnames 'namesleft := + { namesleft #0 > } + + { "{" s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ * "}" * 't := + + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "{others}" = + { " {et~al\mbox{.}}" * } + { " {and} " * t * } +% { " {\&} " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := % nameptr += 1; + namesleft #1 - 'namesleft := % namesleft =- 1; + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names add.period$} % jtb: add period if none before + if$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +% +% Format editor names for use in the "in" types: inbook, incollection, +% inproceedings: first initial, then last names. When editors are the +% LABEL for an entry, then format.editor is used which lists editors +% by last name first. +% +FUNCTION {format.editors.fml} +{ editor empty$ + { "" } + { editor format.names.fml + editor num.names$ #1 > + { ", Eds." * } % jtb: removed parentheses + { ", Ed." * } % jtb: removed parentheses + if$ + } + if$ +} + +% +% Format editor names for use in labels, last names first. +% +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", Eds." * } % jtb: removed parentheses + { ", Ed." * } % jtb: removed parentheses + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +% Note that the APA style requres case changes +% in article titles. The following does not +% change cases. If you perfer it, uncomment the +% following and comment out the above. + +%FUNCTION {format.title} +%{ title empty$ +% { "" } +% { title } +% if$ +%} + +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {format.btitle} +{ edition empty$ + { title emphasize } + { title empty$ + { title emphasize } % jtb: what is this supposed to do ?!? + { "{\em " title * "\/} " * edition * " Ed." * } % aptara: no comma and capial case for ed. + if$ + } + if$ +} + +FUNCTION {format.emphasize.booktitle} +{ edition empty$ + { booktitle emphasize } + { booktitle empty$ + { booktitle emphasize } % jtb: what is this supposed to do ?!? + { "{\em " booktitle * "\/} " * edition * " Ed." * } % aptara: no comma and capial case for ed. + if$ + } + if$ + } + +% jtb: if the preceding string (the title of the conference) is non-empty, +% jtb: append the location, otherwise leave empty (so as to trigger the +% jtb: error message in output.check +FUNCTION {format.city} +{ duplicate$ empty$ + { } + { city empty$ + { date empty$ + { } + { " (" * date * ")" * } + if$ + } + { date empty$ + { " (" * city * ")" * } + { " (" * city * ", " * date * ")" * } + if$ + } + if$ + } + if$ +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +% jtb: If there is a series, this is added and the volume trails after it. +% jtb: Otherwise, "Vol" is Capitalized. +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { series empty$ + { "Vol." volume tie.or.space.connect} + { series " Series, " * "vol." volume tie.or.space.connect *} % aptara: added "Series" term + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "Number" } % gnp - changed to mixed case always + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { pages n.dashify } % gnp - removed () % jtb: removed pp. + { pages } + if$ + } + if$ +} + +% By Young (and Spencer) +% GNP - fixed bugs with missing volume, number, and/or pages +% +% Format journal, volume, number, pages for article types. +% +FUNCTION {format.jour.vol} +{ journal empty$ + { "no journal in " cite$ * warning$ + "" } + { journal emphasize.space } + if$ + number empty$ + { volume empty$ + { "no number and no volume in " cite$ * warning$ + "" * } + { "~{\em " * Volume * "}" * } + if$ + } + { volume empty$ + {"no volume for " cite$ * warning$ + "~" * number * } + { "~" * + volume emphasize.comma + "~" * number * * } + if$ + } + if$ + pages empty$ + {"page numbers missing in " cite$ * warning$ + "" * } % gnp - place a null string on the stack for output + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } % gnp - removed pp. for articles + if$ + } + if$ +} + +FUNCTION {format.jour.vol.mon} +{ journal empty$ + { "no journal in " cite$ * warning$ + "" } + { journal emphasize.space } + if$ + number empty$ + { volume empty$ + { "no number and no volume in " cite$ * warning$ + "" * } + { "~{\em " * Volume * "}" * } + if$ + } + { volume empty$ + {"no volume for " cite$ * warning$ + "~" * number * } + { "~" * + volume emphasize.comma + "~" * number * * } + if$ + month empty$ + {} + {" (" * month * ")" *} + if$ + } + if$ + pages empty$ + {"page numbers missing in " cite$ * warning$ + "" * } % gnp - place a null string on the stack for output + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } % gnp - removed pp. for articles + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "Chapter" } % gnp - changed to mixed case + { type "t" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + {"page numbers missing in " cite$ * warning$} % gnp - added check + { ", " * format.pages * } + if$ + } + if$ +} + +% jtb: format for collections or proceedings not appearing in a journal +FUNCTION {format.in.emphasize.booktitle} +{ booktitle empty$ + { "" } + { "In " format.emphasize.booktitle * } + if$ +} + +% jtb: format for proceedings appearing in a journal +FUNCTION {format.in.booktitle} +{ booktitle empty$ + { "" } + { "In " booktitle * } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " format.emphasize.booktitle * } + % jtb: swapped editor location + { "In " format.emphasize.booktitle * ", " * format.editors.fml * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ +% {pop$ + {{ "" } + type "t" change.case$} + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Tech. Rep." } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ "See" + "\citeN{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al\mbox{.}" * } % jrh: avoid spacing problems + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al\mbox{.}" * } % jrh: avoid spacing problems + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect % gnp - changed to mixed case + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \citeN{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ "See" + " \citeN{" * crossref * "}" * +} + +% format.lab.names: +% +% determines "short" names for the abbreviated author information. +% "Long" labels are created in calc.label, using the routine my.full.label +% to format author and editor fields. +% +% There are 4 cases for labels. (n=3 in the example) +% a) one author Foo +% b) one to n Foo, Bar and Baz +% c) use of "and others" Foo, Bar et al. +% d) more than n Foo et al. +% +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #2 > % change number to number of others allowed before + % forcing "et al". + { s #1 "{vv~}{ll}" format.name$ " et~al\mbox{.}" * } % jrh: \mbox{} added + { + numnames #1 - 'namesleft := + #2 'nameptr := + s #1 "{vv~}{ll}" format.name$ + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al\mbox{.}" * } % jrh: avoid spacing problems + { " and " * s nameptr "{vv~}{ll}" format.name$ * } + if$ + } + { ", " * s nameptr "{vv~}{ll}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { "no key, author in " cite$ * warning$ + cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { "no key, editor in " cite$ * warning$ + cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +% +% added - gnp. Provide label formatting by organization if author is null. +% +{ author empty$ + { organization empty$ + { key empty$ + { "no key, author or organization in " cite$ * warning$ + cite$ #1 #3 substring$ } + 'key + if$ + } + { organization } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +% +% added - gnp. Provide label formatting by organization if editor is null. +% +{ editor empty$ + { organization empty$ + { key empty$ + { "no key, editor or organization in " cite$ * warning$ + cite$ #1 #3 substring$ } + 'key + if$ + } + { organization } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { "no key, author, or editor in " cite$ * warning$ + cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {calc.label} +% +% Changed - GNP. See also author.organization.sort, editor.organization.sort +% Form label for BibTeX entry. The classification of which fields are used +% for which type of entry (book, inbook, etc.) are taken from alpha.bst. +% The change here from newapa is to also include organization as a +% citation label if author or editor is missing. +% +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + author empty$ % generate the full label citation information. + { editor empty$ + { organization empty$ + { type$ "misc" = + { "" } + { "no author, editor, or organization in " cite$ * warning$ + "??" + } + if$ + } + { organization } + if$ + } + { editor my.full.label } + if$ + } + { author.key.label } + if$ + +% leave label on the stack, to be popped when required. + + "}{" * swap$ * "}{" * +% year field.or.null purify$ #-1 #4 substring$ * +% +% save the year for sort processing afterwards (adding a, b, c, etc.) +% + year field.or.null purify$ #-1 #4 substring$ + 'label.year := +} + +FUNCTION {calc.label.new} +% +% Changed - GNP. See also author.organization.sort, editor.organization.sort +% Form label for BibTeX entry. The classification of which fields are used +% for which type of entry (book, inbook, etc.) are taken from alpha.bst. +% The change here from newapa is to also include organization as a +% citation label if author or editor is missing. +% +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + author empty$ % generate the full label citation information. + { editor empty$ + { organization empty$ + { type$ "misc" = + { "" } + { "no author, editor, or organization in " cite$ * warning$ + "??" + } + if$ + } + { organization } + if$ + } + { editor my.full.label } + if$ + } + { author my.full.label } + if$ + +% leave label on the stack, to be popped when required. + + "}{" * swap$ * "}{" * +% year field.or.null purify$ #-1 #4 substring$ * +% +% save the year for sort processing afterwards (adding a, b, c, etc.) +% + year field.or.null purify$ #-1 #4 substring$ + 'label.year := +} + +FUNCTION {output.bibitem} +{ newline$ + + "\bibitem[\protect\citeauthoryear{" write$ + calc.label.new write$ + sort.year write$ + "}]{" write$ + + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {article} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + crossref missing$ + { format.jour.vol output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors + "author and editor" output.check } + { format.authors + output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + output.year.check % added + new.block + format.btitle + "title" output.check + crossref missing$ + { new.sentence % jtb: start a new sentence for series/volume + format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address "address" output.check % jtb: require address + } + { new.block + format.book.crossref output.nonnull + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + howpublished output + address output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors + "author and editor" output.check + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + output.year.check % added + new.block + format.btitle + "title" output.check + crossref missing$ + { new.sentence % jtb: start a new sentence for series/volume + format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address "address" output.check % jtb: require address + format.chapter.pages + "chapter and pages" output.check % jtb: moved from before publisher + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle + "booktitle" output.check + new.sentence % jtb: start a new sentence for series/volume + format.bvolume output + format.number.series output + new.sentence + publisher "publisher" output.check + address "address" output.check % jtb: require address + format.chapter.pages output % gnp - was special.output.nonnull +% left out comma before page numbers + % jtb: moved from before publisher + } + { format.incoll.inproc.crossref + output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + crossref missing$ + { journal missing$ % jtb: proceedings appearing in journals + { format.in.emphasize.booktitle format.city "booktitle" output.check + format.editors.fml output + new.sentence % jtb: start a new sentence for series/volume + format.bvolume output + format.number.series output + new.sentence + organization output + publisher "publisher" output.check % jtb: require publisher (?) + address "address" output.check % jtb: require address + format.pages output % jtb: moved from before publisher + } + % jtb: new: + { format.in.booktitle format.city "booktitle" output.check + format.editors.fml output + new.sentence + format.jour.vol.mon output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { editor empty$ + { organization "organization" output.check + organization format.key output } % if all else fails, use key + { format.editors "author and editor" output.check } + if$ + } + { format.authors output.nonnull } + if$ + output.year.check % added + new.block + format.btitle + "title" output.check + organization address new.block.checkb + % jtb: back to normal style: organization, address + organization "organization" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + "M.S.\ thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output % added + output.year.check % added + title howpublished new.block.checkb + format.title output + new.block + howpublished output + new.block + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + format.thesis.type "Ph.D. thesis" output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output + organization format.key output } % gnp - changed from author format.key + { format.editors output.nonnull } + if$ +% author format.key output % gnp - removed (should be either +% editor or organization + output.year.check % added (newapa) + new.block + format.btitle format.city "title" output.check % jtb: added city + new.sentence + format.bvolume output + format.number.series output + new.sentence + organization output + % jtb: normal order: publisher, address + publisher output + address output + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + format.tr.number output % jtb: moved month ... + institution "institution" output.check + address output + new.sentence + month output % jtb: ... to here (no parens) + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} % jtb: corrected: was "March" + +MACRO {apr} {"Apr."} % jtb: corrected: was "April" + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +MACRO {acmcs} {"ACM Comput. Surv."} + +MACRO {acmlett} {"ACM Lett. Program. Lang. Syst."} + +MACRO {acta} {"Acta Inf."} + +MACRO {ai} {"Artificial Intelligence"} + +MACRO {al} {"Ada Lett."} + +MACRO {acr} {"Adv. Comput. Res."} + +MACRO {bit} {"Bit"} + +MACRO {cacm} {"Commun. ACM"} + +MACRO {cj} {"Comput. J."} + +MACRO {cn} {"Comput. Netw."} + +MACRO {cl} {"Comput. Lang."} + +MACRO {ibmjrd} {"IBM J. Res. and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ict} {"Inf. Contr."} + +MACRO {ieebcs} {"IEE/BCS Softw. Eng. J."} + +MACRO {ieees} {"IEEE Softw."} + +MACRO {ieeese} {"IEEE Trans. Softw. Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ieeetpds} {"IEEE Trans. Parall. Distrib. Syst."} + +MACRO {ieeetit} {"IEEE Trans. Inf. Theory"} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {icp} {"Inf. Comput."} + +MACRO {ist} {"Inf. Softw. Tech."} + +MACRO {ijsa} {"Int. J. Supercomput. Appl."} + +MACRO {ijpp} {"Int. J. Parallel Program."} + +MACRO {jlp} {"J. Logic Program."} + +MACRO {jfp} {"J. Funct. Program."} + +MACRO {jcss} {"J. Comput. Syst. Sci."} + +MACRO {jsmrp} {"J. Softw. Maint. Res. Pract."} + +MACRO {jss} {"J. Syst. Softw."} + +MACRO {jlc} {"J. Logic and Comput."} + +MACRO {jlsc} {"J. Lisp Symb. Comput."} + +MACRO {lpls} {"Lett. Program. Lang. Syst."} + +MACRO {mor} {"Math. Oper. Res."} + +MACRO {mscs} {"Math. Struct. Comput. Sci."} + +MACRO {mst} {"Math. Syst. Theor."} % jtb: was Math. Syst. Theory + % jtb: (if you ask me, I prefer the old way) +MACRO {ngc} {"New Gen. Comput."} + +MACRO {scp} {"Sci. Comput. Program."} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {spe} {"Softw. Pract. Exper."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Graphics"} + +MACRO {toms} {"ACM Trans. Math. Softw."} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Program. Lang. Syst."} + +MACRO {tocl} {"ACM Trans. On Comp. Logic"} + +MACRO {tcs} {"Theor. Comput. Sci."} % jtb: was Theor. Comp. Sci. + +MACRO {tr} {"Tech. Rep."} + +READ + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + + + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { " et~al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {author.editor.sort} +{ author empty$ + { "missing author in " cite$ * warning$ + editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.organization.sort} +% +% added - GNP. Stack author or organization for sorting (from alpha.bst). +% Unlike alpha.bst, we need entire names, not abbreviations +% +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { organization sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +% +% added - GNP. Stack editor or organization for sorting (from alpha.bst). +% Unlike alpha.bst, we need entire names, not abbreviations +% +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { organization sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +% +% Presort creates the bibentry's label via a call to calc.label, and then +% sorts the entries based on entry type. Chicago.bst adds support for +% including organizations as the sort key; the following is stolen from +% alpha.bst. +% +{ calc.label sortify % recalculate bibitem label + year field.or.null purify$ #-1 #4 substring$ * % add year + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + #1 entry.max$ substring$ % added for newapa + 'sort.label := % added for newapa + sort.label % added for newapa + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT % by label, year, author/editor, title + +STRINGS { last.label next.extra } + +INTEGERS { last.extra.num } + +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +% +% Pass through all entries, comparing current entry to last one. +% Need to concatenate year to the stack (done by calc.label) to determine +% if two entries are the same (see presort) +% +{ last.label + calc.label year field.or.null purify$ #-1 #4 substring$ * % add year + #1 entry.max$ substring$ = % are they equal? + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + calc.label year field.or.null purify$ #-1 #4 substring$ * % add year + #1 entry.max$ substring$ 'last.label := % assign to last.label + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label.year extra.label * 'sort.year := + extra.label 'next.extra := +} + +EXECUTE {initialize.extra.label.stuff} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {bib.sort.order} + +SORT % by sort.label, year, title --- giving final bib. order. + +FUNCTION {begin.bib} + +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" write$ newline$ +} + + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + + + + + + + + + + + + + + diff --git a/ec-acmsmall.cls b/ec-acmsmall.cls new file mode 100644 index 0000000..d68e9ef --- /dev/null +++ b/ec-acmsmall.cls @@ -0,0 +1,3728 @@ +%% acmsmall.cls - version 1.4 (with ACM Reference Format) +%% Aptara Inc., dated 9 July 2012 +%% (c) 2011 Association for Computing Machinery (ACM) +%% For small trim journals +%% +%% Based on ESUB2ACM.CLS V1.2 - November 10th. 1999 +%% +%% If you face any problem while working with this class file or have any feedback/suggestion, +%% please contact ACM Support helpline at: "acmtexsupport@aptaracorp.com". +%% Users can also go through the FAQs available on the journal's submission webpage. +%% +%% Version 1.4 (History) +%% --------------------- +%% 1) All citation formats are also redefined after +%% checking the loading condition of natbib.sty +%% 2) Added an option called 'prodmode', which uses New Century School Book +%% and Helvetica as base and second font respectively after +%% feedback from Joanne (Dated 28/06/2010) to simulate print output. +%% 3) Changed running head style (Joanne 02/07/2010) +%% 4) Added three new transactions (Jono 14/07/2010) +%% 5) Added four new transactions/journals (Joanne 04/11/2011) +%% 6) Added newtheorem definition for 'conjecture' +%% 7) Trimmed the 'double outputting' of the DOI/URL beneath ACM Reference Format (before 1. INTRODUCTION) +%% and also beneath the Permission Statement/copyright line. Also inserted the "http://dx.doi.org" stem. (Gerry Murray, March 2012) +%% 8) Changed the price charged/article information from $10.00 to $15.00 (Gerry 24/05/2012) +%% 9) Added 'TEAC' - July 9th. 2012 +%% +%% Steps to compile: latex, bibtex, latex latex +%% +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +%% Bibliographic cite forms needed: +%% +%% \cite{key} +%% which produces citations with author list and year. +%% eg. [Brown 1978; Jarke, et al. 1985] +%% \citeA{key} +%% which produces citations with only the author list. +%% eg. [Brown; Jarke, et al.] +%% \citeN{key} +%% which produces citations with the author list and year, but +%% can be used as nouns in a sentence; no brackets appear around +%% the author names, but only around the year. +%% eg. Shneiderman [1978] states that...... +%% \citeN should only be used for a single citation. +%% \citeNN{refkey1,refkey2} for author [ref1year; ref2year] +%% \citeyear{key} +%% which produces the year information only, within brackets. +%% +%% Abbreviated author lists use the ``et al.'' construct. +%% +%% The above are examples of required ACM bibliographic cite formats needed. +%% ******************* +%% Here is the complete list of cite forms from the chicago bibliographic style +%% +%% \cite{key} +%% which produces citations with abbreviated author list and year. +%% \citeNP{key} +%% which produces citations with abbreviated author list and year. +%% \citeA{key} +%% which produces only the abbreviated author list. +%% \citeANP{key} +%% which produces only the abbreviated author list. +%% \citeN{key} +%% which produces the abbreviated author list and year, with only the +%% year in parentheses. Use with only one citation. +%% \citeyear{key} +%% which produces the year information only, within parentheses. +%% \citeyearNP{key} +%% which produces the year information only. +%% +%% Abbreviated author lists use the ``et al.'' construct. +%% +%% `NP' means `no parentheses' +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{ec-acmsmall}[2012/03/05, fonts included on 28 June 2010] + +\def\fileversion{v1.4} +\def\filedate{July 09, 2012} + +% Metadata Information +\def\@acmVolume{V} %the volume +\def\@acmNumber{N} %the number +\def\@acmArticle{A} %article number +\def\@articleSeq{1} %article Sequence +\def\@acmPrice{15.00} %article price % Changed to 15 - June 2012 - Gerry +\def\@acmYear{YYYY} %the last two digits of the year, +\def\@acmMonth{1} %the month +\def\@journalName{ACM Journal Name} %the name of the ACM journal +\def\@journalNameShort{ACM} %the acronym of the ACM journal +\def\@journalCode{jn} %the code of the ACM journal +\def\@permissionCodeOne{0000-0000} %the permission code of the ACM journal +\def\@doi{0000000.0000000} % These 'default' '0' values are over-ridden, during production, with 'correct' numbers entered via source .tex file - Gerry March 2012 + +% ---------------- +% Gerry - April 2011 - To assist in the formatting of the NEW ACM Reference format - 'DOI' in tt font, and url string in default +\usepackage{url} +\def\UrlFont{} +\newcommand{\BIBand}{\&} +\def\showDOI#1{\mbox{{\tt DOI:}{#1}}} % Gerry April 2011 - forces the DOI: to 'stay' with the 'url-(string)link' (no need for space at end either) +% ---------------- + +\if@compatibility\else +\DeclareOption{letterpaper} + {\setlength\paperheight {11in}% + \setlength\paperwidth {8.5in}% + \setlength\voffset {-38.2pt}% + \setlength\hoffset {-8.25pt}% + \def\special@paper{8.5in,11in} + % Needed to set PDF page size + \special{papersize=8.5in,11in}} +\DeclareOption{landscape} + {\setlength\@tempdima {\paperheight}% + \setlength\paperheight {\paperwidth}% + \setlength\paperwidth {\@tempdima}} +\fi + +\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse} +\DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue} + +\DeclareOption{final}{\setlength\overfullrule{0pt}} + +\DeclareOption{10pt}{\def\@ptsize{0}} %needed for amssymbols.sty +\DeclareOption{11pt}{\ClassError{acmsmall}{11pt style not supported} + {ACM transactions/journals documents can be set in 10pt only}} +\DeclareOption{12pt}{\ClassError{acmtrans}{12pt style not supported} + {ACM transactions/journals documents can be set in 10pt only}} + +\newif\ifprod@mode\prod@modefalse +\DeclareOption{prodmode}{\global\prod@modetrue +\typeout{ACM, Production Font style: 2010/06/28 by Aptara}} + +\newif\if@acmec +\newif\if@acmjacm +\newif\if@acmtissec +\newif\if@acmtocl +\newif\if@acmtocs +\newif\if@acmtochi +\newif\if@acmtodaes +\newif\if@acmtods +\newif\if@acmtois +\newif\if@acmtomacs +\newif\if@acmtoms +\newif\if@acmtoplas +\newif\if@acmtosem +\newif\if@acmtoit +\newif\if@acmtecs +\newif\if@acmtalip +\newif\if@acmjeric +\newif\if@acmtaco +\newif\if@acmjea +\newif\if@acmtslp +\newif\if@acmcie +\newif\if@acmtos +\newif\if@acmcsur +\newif\if@acmjetc +\newif\if@acmtosn +\newif\if@acmtalg +\newif\if@acmtaas +\newif\if@acmtweb +\newif\if@acmtkdd +\newif\if@acmtrets +\newif\if@acmtmis +\newif\if@acmtiis +\newif\if@acmtist +\newif\if@acmtoct +\newif\if@acmjdiq +\newif\if@acmtaccess +\newif\if@acmtoce +\newif\if@acmteac + + + + +% ACM EC Option +\DeclareOption{acmec}{ + \typeout{} + \typeout{Using ACM EC option: 2013/01/05 by David Parkes} + \typeout{} + \global\@acmectrue + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse +\def\@journalName{{\em EC'13}, June 16--20, 2013, Philadelphia, PA} +} + + +% Journal Options +\DeclareOption{acmjacm}{ + \typeout{} + \typeout{Using ACM, JACM's option: 2010/05/04 by Aptara} + \typeout{} + \global\@acmjacmtrue + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{Journal of the ACM} + \def\@journalNameShort{J. ACM} + \def\@journalCode{jacm} + \def\@permissionCodeOne{0004-5411} +} + +\DeclareOption{acmtissec}{ + \typeout{} + \typeout{Using ACM, TISSEC's option: 2010/05/04 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissectrue + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Transactions on Information and System Security} + \def\@journalNameShort{ACM Trans. Info. Syst. Sec.} + \def\@journalCode{tissec} + \def\@permissionCodeOne{1094-9224} +} + +\DeclareOption{acmtocl}{ + \typeout{} + \typeout{Using ACM, TOCL's option: 2010/05/04 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtocltrue + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Transactions on Computational Logic} + \def\@journalNameShort{ACM Trans. Comput. Logic} + \def\@journalCode{tocl} + \def\@permissionCodeOne{1529-3785} +} + +\DeclareOption{acmtocs}{ + \typeout{} + \typeout{Using ACM, TOCS's option: 2010/05/04 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocstrue + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Transactions on Computer Systems} + \def\@journalNameShort{ACM Trans. Comput. Syst.} + \def\@journalCode{tocs} + \def\@permissionCodeOne{0734-2071} +} + +\DeclareOption{acmtochi}{ + \typeout{} + \typeout{Using ACM, TOCHI's option: 2010/05/04 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochitrue + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Transactions on Computer-Human Interaction} + \def\@journalNameShort{ACM Trans. Comput.-Hum. Interact.} + \def\@journalCode{tochi} + \def\@permissionCodeOne{1073-0516} +} + +\DeclareOption{acmtodaes}{ + \typeout{} + \typeout{Using ACM, TODAES option: 2010/05/04 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaestrue + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Transactions on Design Automation of Electronic Systems} + \def\@journalNameShort{ACM Trans. Des. Autom. Electron. Syst.} + \def\@journalCode{todaes} + \def\@permissionCodeOne{1084-4309} +} + +\DeclareOption{acmtods}{ + \typeout{} + \typeout{Using ACM, TODS's option: 2010/05/04 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodstrue + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Transactions on Database Systems} + \def\@journalNameShort{ACM Trans. Datab. Syst.} + \def\@journalCode{tods} + \def\@permissionCodeOne{0362-5915} +} + +\DeclareOption{acmtois}{ + \typeout{} + \typeout{Using ACM, TOIS's option: 2010/05/04 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoistrue + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Transactions on Information Systems} + \def\@journalNameShort{ACM Trans. Inf. Syst.} + \def\@journalCode{tois} + \def\@permissionCodeOne{1046-8188} +} + +\DeclareOption{acmtomacs}{ + \typeout{} + \typeout{Using ACM, TOMACS's option: 2010/05/04 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacstrue + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Transactions on Modeling and Computer Simulation} + \def\@journalNameShort{ACM Trans. Model. Comput. Simul.} + \def\@journalCode{tomacs} + \def\@permissionCodeOne{1049-3301} +} + +\DeclareOption{acmtoms}{ + \typeout{} + \typeout{Using ACM, TOMS's option: 2010/05/04 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomstrue + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Transactions on Mathematical Software} + \def\@journalNameShort{ACM Trans. Math. Softw.} + \def\@journalCode{toms} + \def\@permissionCodeOne{0098-3500} +} + +\DeclareOption{acmtoplas}{ + \typeout{} + \typeout{Using ACM, TOPLAS option: 2010/05/04 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplastrue + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Transactions on Programming Languages and Systems} + \def\@journalNameShort{ACM Trans. Program. Lang. Syst.} + \def\@journalCode{toplas} + \def\@permissionCodeOne{0164-0925} +} + +\DeclareOption{acmtosem}{ + \typeout{} + \typeout{Using ACM, TOSEM option: 2010/05/04 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemtrue + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Transactions on Software Engineering and Methodology} + \def\@journalNameShort{ACM Trans. Softw. Eng. Methodol.} + \def\@journalCode{tosem} + \def\@permissionCodeOne{1049-331X} +} + +\DeclareOption{acmtoit}{ + \typeout{} + \typeout{Using ACM, TOIT option: 2010/05/04 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoittrue + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Transactions on Internet Technology} + \def\@journalNameShort{ACM Trans. Internet Technol.} + \def\@journalCode{toit} + \def\@permissionCodeOne{1533-5399} +} + +\DeclareOption{acmtecs}{ + \typeout{} + \typeout{Using ACM, TECS option: 2010/05/04 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecstrue + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Transactions on Embedded Computing Systems} + \def\@journalNameShort{ACM Trans. Embedd. Comput. Syst.} + \def\@journalCode{tecs} + \def\@permissionCodeOne{1539-9087} +} + +\DeclareOption{acmtalip}{ + \typeout{} + \typeout{Using ACM, TALIP option: 2010/05/04 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtaliptrue + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Transactions on Asian Language Information Processing} + \def\@journalNameShort{ACM Trans. Asian Lang. Inform. Process.} + \def\@journalCode{talip} + \def\@permissionCodeOne{1530-0226} +} + +\DeclareOption{acmjeric}{ + \typeout{} + \typeout{Using ACM, JERIC option: 2010/05/04 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjerictrue + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Journal of Educational Resources in Computing} + \def\@journalNameShort{ACM J. Edu. Resources in Comput.} + \def\@journalCode{jeric} + \def\@permissionCodeOne{1073-0516} +} + +\DeclareOption{acmtaco}{ + \typeout{} + \typeout{Using ACM, TACO option: 2010/05/04 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacotrue + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Transactions on Architecture and Code Optimization} + \def\@journalNameShort{ACM Trans. Architec. Code Optim.} + \def\@journalCode{taco} + \def\@permissionCodeOne{1544-3566} +} + +\DeclareOption{acmjea}{ + \typeout{} + \typeout{Using ACM, JEA option: 2010/05/04 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeatrue + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Journal of Experimental Algorithmics} + \def\@journalNameShort{ACM J. Exp. Algor.} + \def\@journalCode{jea} + \def\@permissionCodeOne{1084-6654} +} + +\DeclareOption{acmtslp}{ + \typeout{} + \typeout{Using ACM, TSLP option: 2010/05/04 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslptrue + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Transactions on Speech and Language Processing} + \def\@journalNameShort{ACM Trans. Speech Lang. Process.} + \def\@journalCode{tslp} + \def\@permissionCodeOne{1550-4875} +} + +\DeclareOption{acmcie}{ + \typeout{} + \typeout{Using ACM, CIE option: 2010/05/04 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmcietrue + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Computers in Entertainment} + \def\@journalNameShort{ACM Comput. Entertain.} + \def\@journalCode{cie} + \def\@permissionCodeOne{1544-3574} +} + +\DeclareOption{acmtos}{ + \typeout{} + \typeout{Using ACM, TOS option: 2010/05/04 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtostrue + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Transactions on Storage} + \def\@journalNameShort{ACM Trans. Storage} + \def\@journalCode{tos} + \def\@permissionCodeOne{1553-3077} +} + +\DeclareOption{acmcsur}{ + \typeout{} + \typeout{Using ACM, CSUR option: 2010/05/04 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurtrue + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Computing Surveys} + \def\@journalNameShort{ACM Comput. Surv.} + \def\@journalCode{csur} + \def\@permissionCodeOne{0360-0300} +} + +\DeclareOption{acmjetc}{ + \typeout{} + \typeout{Using ACM, JETC option: 2010/05/04 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetctrue + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Journal on Emerging Technologies in Computing Systems} + \def\@journalNameShort{ACM J. Emerg. Technol. Comput. Syst.} + \def\@journalCode{jetc} + \def\@permissionCodeOne{1550-4832} +} + +\DeclareOption{acmtosn}{ + \typeout{} + \typeout{Using ACM, TOSN option: 2010/05/04 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosntrue + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Transactions on Sensor Networks} + \def\@journalNameShort{ACM Trans. Sensor Netw.} + \def\@journalCode{tosn} + \def\@permissionCodeOne{1550-4859} +} + +\DeclareOption{acmtalg}{ + \typeout{} + \typeout{Using ACM, TALG option: 2010/05/04 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgtrue + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Transactions on Algorithms} + \def\@journalNameShort{ACM Trans. Algor.} + \def\@journalCode{talg} + \def\@permissionCodeOne{1549-6325} +} + +\DeclareOption{acmtaas}{ + \typeout{} + \typeout{Using ACM, TAAS option: 2010/05/04 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaastrue + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Transactions on Autonomous and Adaptive Systems} + \def\@journalNameShort{ACM Trans. Autonom. Adapt. Syst.} + \def\@journalCode{taas} + \def\@permissionCodeOne{1556-4665} +} + +\DeclareOption{acmtweb}{ + \typeout{} + \typeout{Using ACM, TWEB option: 2010/05/04 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebtrue + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Transactions on the Web} + \def\@journalNameShort{ACM Trans. Web} + \def\@journalCode{tweb} + \def\@permissionCodeOne{1559-1131} +} + +\DeclareOption{acmtkdd}{ + \typeout{} + \typeout{Using ACM, TKDD option: 2010/05/04 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddtrue + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Transactions on Knowledge Discovery from Data} + \def\@journalNameShort{ACM Trans. Knowl. Discov. Data.} + \def\@journalCode{tkdd} + \def\@permissionCodeOne{1556-4681} +} + +\DeclareOption{acmtrets}{ + \typeout{} + \typeout{Using ACM, TRETS option: 2010/05/04 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretstrue + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Transactions on Reconfigurable Technology and Systems} + \def\@journalNameShort{ACM Trans. Reconfig. Technol. Syst.} + \def\@journalCode{trets} + \def\@permissionCodeOne{1936-7406} +} + +\DeclareOption{acmtmis}{ + \typeout{} + \typeout{Using ACM, TMIS option: 2010/07/14 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmistrue + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Transactions on Management Information Systems} + \def\@journalNameShort{ACM Trans. Manag. Inform. Syst.} + \def\@journalCode{tmis} + \def\@permissionCodeOne{2158-656X} +} + +\DeclareOption{acmtiis}{ + \typeout{} + \typeout{Using ACM, TIIS option: 2010/07/14 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiistrue + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Transactions on Interactive Intelligent Systems} + \def\@journalNameShort{ACM Trans. Interact. Intell. Syst.} + \def\@journalCode{tiis} + \def\@permissionCodeOne{2160-6455} +} + +\DeclareOption{acmtist}{ + \typeout{} + \typeout{Using ACM, TIST option: 2010/07/14 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtisttrue + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Transactions on Intelligent Systems and Technology} + \def\@journalNameShort{ACM Trans. Intell. Syst. Technol.} + \def\@journalCode{tist} + \def\@permissionCodeOne{2157-6904} +} + +\DeclareOption{acmtoct}{ + \typeout{} + \typeout{Using ACM, TOCT option: 2011/10/31 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtocttrue + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Transactions on Computation Theory} + \def\@journalNameShort{ACM Trans. Comput. Theory} + \def\@journalCode{toct} + \def\@permissionCodeOne{1942-3454} +} + +\DeclareOption{acmjdiq}{ + \typeout{} + \typeout{Using ACM, JDIQ option: 2011/10/31 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqtrue + \global\@acmtaccessfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Journal of Data and Information quality} + \def\@journalNameShort{ACM J. Data Inform. Quality} + \def\@journalCode{jdiq} + \def\@permissionCodeOne{1936-1955} +} + +\DeclareOption{acmtaccess}{ + \typeout{} + \typeout{Using ACM, TACCESS option: 2011/10/31 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccesstrue + \global\@acmtalipfalse + \global\@acmtiisfalse + \global\@acmtocefalse + \global\@acmteacfalse + \def\@journalName{ACM Transactions on Accessible Computing} + \def\@journalNameShort{ACM Trans. Access. Comput.} + \def\@journalCode{taccess} + \def\@permissionCodeOne{1936-7228} +} + +\DeclareOption{acmtoce}{ + \typeout{} + \typeout{Using ACM, TOCE option: 2011/10/31 by Aptara} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtalipfalse + \global\@acmtiisfalse + \global\@acmtocetrue + \global\@acmteacfalse + \def\@journalName{ACM Transactions on Computing Education} + \def\@journalNameShort{ACM Trans. Comput. Educ.} + \def\@journalCode{toce} + \def\@permissionCodeOne{1946-6226} +} + +\DeclareOption{acmteac}{ + \typeout{} + \typeout{Using ACM, TEAC option: 2012/07/04 by Orna Agmon Ben-Yehuda} + \typeout{} + \global\@acmjacmfalse + \global\@acmtissecfalse + \global\@acmtoclfalse + \global\@acmtocsfalse + \global\@acmtochifalse + \global\@acmtodaesfalse + \global\@acmtodsfalse + \global\@acmtoisfalse + \global\@acmtomacsfalse + \global\@acmtomsfalse + \global\@acmtoplasfalse + \global\@acmtosemfalse + \global\@acmtoitfalse + \global\@acmtecsfalse + \global\@acmtalipfalse + \global\@acmjericfalse + \global\@acmtacofalse + \global\@acmjeafalse + \global\@acmtslpfalse + \global\@acmciefalse + \global\@acmtosfalse + \global\@acmcsurfalse + \global\@acmjetcfalse + \global\@acmtosnfalse + \global\@acmtalgfalse + \global\@acmtaasfalse + \global\@acmtwebfalse + \global\@acmtkddfalse + \global\@acmtretsfalse + \global\@acmtmisfalse + \global\@acmtiisfalse + \global\@acmtistfalse + \global\@acmtoctfalse + \global\@acmjdiqfalse + \global\@acmtaccessfalse + \global\@acmtalipfalse + \global\@acmtiisfalse + \global\@acmtocefalse + \global\@acmteactrue + \def\@journalName{ACM Transactions on Economics and Computation} + \def\@journalNameShort{ACM Trans. Econ. Comp.} + \def\@journalCode{teac} + \def\@permissionCodeOne{1946-6227} +} + +\ExecuteOptions{twoside,final,10pt,letterpaper} +\ProcessOptions + +% Including fonts for Production Mode +\ifprod@mode +% New Century Schoolbook as base font +\renewcommand\rmdefault{pnc} +% Helvetica as second font +\renewcommand\sfdefault{phv} +\fi + +% Packages required +\RequirePackage{latexsym} +\RequirePackage{color} +\usepackage{graphicx} + + +\typeout{Document Class `acmsmall' Electronic Submissions +\fileversion\space <\filedate> (ACM).} + +\def\acmVolume#1{\def\@acmVolume{#1}} +\def\acmNumber#1{\def\@acmNumber{#1}} +\def\acmArticle#1{\def\@acmArticle{#1}} +\def\articleSeq#1{\def\@articleSeq{#1}} +\def\acmPrice#1{\def\@acmPrice{#1}} +\def\acmYear#1{\def\@acmYear{#1}} +\def\acmMonth#1{\def\@acmMonth{#1}} +\def\doi#1{\def\@doi{#1}} + + +%To transform the month number in its name in English +\newcommand{\monthWord}[1]{\ifcase#1\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\else Month\fi} + +\newcommand{\monthInf}[1]{\ifcase#1\or + 01\or 02\or 03\or 04\or 05\or 06\or + 07\or 08\or 09\or 10\or 11\or 12\else 00\fi} + +% First and Last page +\newcount\@firstpg +\newcount\@lastpg +\def\lastpage#1{\global\advance\@lastpg#1\relax} +\AtEndDocument{\ifelec@app\else\immediate\write\@mainaux{\string\lastpage{\the\c@page}}\fi} + +\newdimen\trimheight +\newdimen\trimwidth +\newdimen\normaltextheight +\newdimen\tempdimen +\newbox\tempbox +\newbox\tbbox +\newdimen\tabledim + +% Extra symbol +\DeclareSymbolFont{newlargesymbols}{OMX}{cmex}{m}{n} +\DeclareMathSymbol{\bigsqcup}{\mathop}{newlargesymbols}{"46} + +% Bold Math +\def\boldmath{\mathversion{bold}} +\def\bm#1{\mathchoice + {\mbox{\boldmath$\displaystyle#1$}}% + {\mbox{\boldmath$#1$}}% + {\mbox{\boldmath$\scriptstyle#1$}}% + {\mbox{\boldmath$\scriptscriptstyle#1$}}} + +% Font information +\lineskip1\p@ +\normallineskip1\p@ +\def\baselinestretch{1} +\def\@ptsize{0} % needed for amssymbols.sty + +\@maxdepth\maxdepth +\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} +\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} +\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} +\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} +\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} +\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} +\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} +\newcommand{\pcal}{\@fontswitch{\relax}{\mathcal}} +\newcommand{\mit}{\protect\pmit} +\newcommand{\pmit}{\@fontswitch{\relax}{\mathnormal}} +\def\cal{\mathcal} + +\renewcommand{\@ptsize}{} +\renewcommand{\normalsize}{% + \@setfontsize\normalsize\@xpt{11\p@}% + \abovedisplayskip .5\baselineskip \@plus2\p@ \@minus\p@ + \belowdisplayskip \abovedisplayskip + \abovedisplayshortskip 6\p@ \@minus 3\p@ + \belowdisplayshortskip 6\p@ \@minus 3\p@ + \let\@listi\@listI +} +\newcommand{\small}{% + \@setfontsize\small\@ixpt{10\p@}% + \abovedisplayskip 5\p@ \@plus 2\p@ \@minus \p@ + \belowdisplayskip \abovedisplayskip + \abovedisplayshortskip 5\p@ \@minus 2\p@ + \belowdisplayshortskip 5\p@ \@minus 2\p@ + \def\@listi{% + \leftmargin\leftmargini + \topsep 5\p@ \@plus 2\p@ \@minus .2\p@ + \parsep \z@ \@plus .7\p@ + \itemsep 1.6\p@ \@plus .8\p@}% +}% + +\newcommand{\footnotesize}{% + \@setfontsize\footnotesize\@viiipt{9\p@}% + \abovedisplayskip 4\p@ \@plus \p@ + \belowdisplayskip \abovedisplayskip + \abovedisplayshortskip 4\p@ \@minus \p@ + \belowdisplayshortskip 4\p@ \@minus \p@ + \def\@listi{% + \leftmargin\leftmargini + \topsep 4\p@ \@plus \p@ + \parsep \z@ \@plus .5\p@ + \itemsep \p@ \@plus .7\p@} +}% +\normalsize + +\newcommand\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt} +\newcommand\tiny{\@setfontsize\tiny\@vpt\@vipt} +\newcommand\large{\@setfontsize\large\@xiipt{14}} +\newcommand\Large{\@setfontsize\Large\@xivpt{18}} +\newcommand\LARGE{\@setfontsize\LARGE\@xviipt{22}} +\newcommand\huge{\@setfontsize\huge\@xxpt{25}} +\newcommand\Huge{\@setfontsize\Huge\@xxvpt{30}} + +\def\rhfont{\fontfamily{\sfdefault}\fontsize{9}{10}\selectfont} +\def\rfootfont{\fontsize{7}{8}\selectfont} +\def\foliofont{\fontfamily{\sfdefault}\fontsize{9}{10}\selectfont} + +\def\sectionfont{\fontfamily{\sfdefault}\fontsize{9}{11}\selectfont\bfseries\raggedright} +\def\refsectionfont{\fontfamily{\sfdefault}\fontsize{9}{11}\selectfont\bfseries} +\def\subsectionfont{\fontfamily{\sfdefault}\fontsize{9}{11}\selectfont\bfseries\raggedright} +\def\subsubsectionfont{\fontfamily{\sfdefault}\fontsize{9}{11}\selectfont\itshape\raggedright} +\def\paragraphfont{\fontsize{10}{11}\selectfont\itshape} + +\def\figcaptionfont{\fontsize{8}{9}\selectfont}% +\def\figcaptionnumfont{\fontfamily{\sfdefault}\fontsize{8}{9}\selectfont}% +\def\subcaptionfont{\fontsize{8}{10}\selectfont}% +\def\subcaption#1{{\centering\subcaptionfont#1\par}} + +\def\tablefont{\fontsize{8}{9}\selectfont}% +\def\intexttablefont{\fontsize{8}{9}\selectfont\centering}% +\def\tablecaptionfont{\fontfamily{\sfdefault}\fontsize{8}{9}\selectfont}% +\def\tablenumfont{\fontfamily{\sfdefault}\fontsize{8}{9}\selectfont}% +\def\tabnotefont{\fontsize{8}{9}\selectfont} +\def\ackfont{\fontsize{8}{10}\selectfont} + +\setlength\trimheight {10in} +\setlength\trimwidth {6.75in} + +\textheight 48pc +\advance\textheight-7.3pt +\setlength\normaltextheight{\textheight} + +\textwidth 33pc +\oddsidemargin .625in +\evensidemargin\trimwidth +\advance\evensidemargin-\oddsidemargin +\advance\evensidemargin-\textwidth + +\marginparwidth .5in +\marginparsep .125in +\topmargin 36pt +\headheight 6.5\p@ +\topskip6.2pt +\headsep 17.5pt +\parindent10\p@ +\newdimen\normalparindent +\normalparindent\parindent + +\newlength{\footheight}% +\footheight 10\p@ +\footskip 28\p@ + +\columnsep 12\p@ +\columnseprule 0\p@ + +\footnotesep 7\p@ +\skip\footins 15\p@ plus 4\p@ minus 3\p@ +\floatsep 1\baselineskip plus 2\p@ minus 2\p@ +\textfloatsep \floatsep +\intextsep 1pc plus 1pc + +\newlength{\@maxsep}% +\@maxsep 1pc + +\dblfloatsep 1\baselineskip plus 2\p@ minus 2\p@ +\dbltextfloatsep 20\p@ plus 2\p@ minus 4\p@ + +\newlength{\@dblmaxsep}% +\@dblmaxsep 20\p@ + +\@fptop 0\p@ plus 1fil +\@fpsep 1pc plus 2fil +\@fpbot 0\p@ plus 1fil +\@dblfptop 0\p@ plus 1fil +\@dblfpsep 8\p@ plus 2fil +\@dblfpbot 0\p@ plus 1fil + +\marginparpush 6\p@ + +\parskip0\p@ +\partopsep 0\p@ +\@lowpenalty 51 +\@medpenalty 151 +\@highpenalty 301 + +\@beginparpenalty -\@lowpenalty +\@endparpenalty -\@lowpenalty +\@itempenalty -\@lowpenalty + +\setcounter{topnumber}{3} +\def\topfraction{.99} +\setcounter{bottomnumber}{1} +\def\bottomfraction{.5} +\setcounter{totalnumber}{3} +\def\textfraction{.01} +\def\floatpagefraction{.85} +\setcounter{dbltopnumber}{2} +\def\dbltopfraction{.7} +\def\dblfloatpagefraction{.5} + +% Copyright Information +\def\cpyright#1{\gdef\@cpyright{#1}} +\cpyright{ACM\ \@permissionCodeOne/\@acmYear/\monthInf{\@acmMonth}-ART\@acmArticle} + +% Calculating total pages +\newcount\@totalpg +\def\acmPages#1{\def\@acmPages{#1}} +\acmPages{\@totalpg\@lastpg\global\advance\@totalpg-\@firstpg\global\advance\@totalpg\@ne\ifnum\the\@totalpg<\z@0\else\the\@totalpg\fi\ pages} + +% Reference Format +\gdef\formatline{{\em{\@journalNameShort\ }}\@acmVolume, \@acmNumber, Article~\@acmArticle\ (\monthWord{\@acmMonth}\ \@acmYear), \@acmPages.\\ % Need Journal Name in italics - in 'ACM Reference Format' before 1. INTRODUCTION - Gerry - March 2012 +{\tt DOI:}http://dx.doi.org/10.1145/\@doi} % Gerry March 2012 - on first page in 'ACM Reference Format' +\gdef\copyrightline{\copyright\ \@acmYear\ \@cpyright\ \$\@acmPrice} +\gdef\doiline{{\tt DOI:}http://dx.doi.org/10.1145/\@doi} % Gerry - March 2012 - beneath copyright line + +% Page Style +\mark{{}{}} + +\def\ps@headings{% + \let\@mkboth\@gobbletwo + \def\@oddhead{{\rhfont\rightmark}\hfill{\foliofont \@acmArticle:\thepage}}% + \def\@evenhead{{\foliofont \@acmArticle:\thepage}\hfill{\rhfont\leftmark}}% + \def\@evenfoot{\null\hfill{\rfootfont\@runningfoot}} + \def\@oddfoot{{\rfootfont\@runningfoot} \hfill\null}% + \let\partmark\@gobble + \let\sectionmark\@gobble + \let\subsectionmark\@gobble +} + +\def\ps@appheadings{% + \let\@mkboth\@gobbletwo + \def\@oddhead{{\rhfont\rightmark}\hfill{\foliofont \thepage}}% + \def\@evenhead{{\foliofont \thepage}\hfill{\rhfont\leftmark}}% + \def\@evenfoot{\null\hfill{\rfootfont\@runningfoot}} + \def\@oddfoot{{\rfootfont\@runningfoot} \hfill\null}% + \let\partmark\@gobble + \let\sectionmark\@gobble + \let\subsectionmark\@gobble +} + +\def\@runningfoot{} +\def\runningfoot#1{\gdef\@runningfoot{#1}} + +\if@acmtodaes + \def\pubphrase{Pub. date} +\else +\if@acmtosem + \def\pubphrase{Pub. date} +\else +\if@acmjetc + \def\pubphrase{Pub. date} +\else +\if@acmtiis + \def\pubphrase{Pub. date} +\else + \def\pubphrase{Publication date} +\fi\fi\fi\fi + +\runningfoot{\@journalName, Vol.~\@acmVolume, No.~\@acmNumber, Article~\@acmArticle,\ \pubphrase:\ \monthWord{\@acmMonth}\ \@acmYear.} + +\def\@firstfoot{} +\gdef\firstfoot{\@journalName, Vol.~\@acmVolume,\ No.~\@acmNumber,\ Article\ \@acmArticle,\ \pubphrase:\ \monthWord{\@acmMonth}\ \@acmYear.} + +\def\ps@titlepage{% + \let\@mkboth\@gobbletwo + \let\@oddhead\@empty + \def\@oddfoot{\null\hfill\fontsize{7}{8}\selectfont\firstfoot} + \let\@evenhead\@empty + \def\@evenfoot{\fontsize{7}{8}\selectfont\firstfoot\hfill\null}% +} + +\def\titlepage{% + \@restonecolfalse + \if@twocolumn + \@restonecoltrue + \onecolumn + \else + \newpage + \fi + \thispagestyle{empty}% + \c@page\z@ +} + +\def\endtitlepage{% + \if@restonecol + \twocolumn + \else + \newpage + \fi +} + +% Author and Affiliation +\def\author#1{\gdef\@author{#1}}% +\def\and{{\upshape and }} +\def\affil#1{\gdef\@affil{#1}\ifx\@affil\@empty\else{\reset@font\affilfont\unskip,\ #1\vphantom{gy}\endgraf}\fi}\affil{} + +\def\titlefont{\fontfamily{\sfdefault}\fontsize{12}{12}\selectfont\bfseries} +\def\authorfont{\fontfamily{\sfdefault}\fontsize{10}{11}\rightskip0pt plus1fill\selectfont} +\def\affilfont{\fontfamily{\rmdefault}\fontsize{8}{11}\rightskip0pt plus1fill\selectfont} +\def\abstractfont{\fontsize{8}{10}\selectfont} + +% Article Title page +\def\maketitle{% + \newpage + \thispagestyle{titlepage}% + \global\@topnum\z@ + \begingroup + \lineskip \z@ + \null + \vskip -15.4\p@\relax + \parindent\z@ + \begingroup + \raggedright + \hyphenpenalty\@M + {\titlefont\@title\par} + \global\@firstpg\the\c@page + \endgroup + \vskip 12\p@ + \begingroup + + {\addtolength{\baselineskip}{2\p@}% + {\authorfont\@author\par} + \vskip7pt + \ifx \@sponsors\@empty + \else + \hbox{\vrule height .2\p@ width \textwidth} + \@sponsors \par + \fi + } +\endgroup + \par\vskip 22\p@\box\@abstract + \par% + \ifx\@categories\@empty + \else + \abstractfont + \vskip 4\p@\relax + \def\and{\unskip{\rm;} }% + \noindent Categories and Subject Descriptors: \@categories\par + \fi + \ifx\@terms\@empty\else + \abstractfont + \vskip 4\p@ + \noindent General Terms: \ignorespaces + \@terms + \par + \fi + \ifx\@keywords\@empty\else + \abstractfont + \vskip 4\p@ + \noindent Additional Key Words and Phrases: \ignorespaces + \@keywords + \par + \fi + \ifx\@acmformat\@empty\else + \abstractfont + \vskip 4\p@ + \noindent {\bf ACM Reference Format:}\\ + \@acmformat\vskip 0.5\p@ + \par + \fi + \par + \endgroup + \let\maketitle\relax + \global\let\@sponsors\@empty + \global\let\@categories\@empty + \global\let\@terms\@empty + \global\let\@keywords\@empty + } + +% Sponsor +\def\sponsor#1{\@ifnextchar + [{\@sponsor{#1}}{\@xsponsor{#1}}} +\def\@sponsor#1[#2]{\edef\@tempa{\ifx \@sponsors\@empty + \else ; \fi}{\def\protect{\noexpand\protect + \noexpand}\def\and{\noexpand\and}\xdef\@sponsors{\@sponsors\@tempa #1 }}} +\def\@xsponsor#1{\edef\@tempa{\ifx \@sponsors\@empty \else ; +\fi}{\def\protect{\noexpand\protect\noexpand}\def\and{\noexpand + \and}\xdef\@sponsors{\@sponsors\@tempa #1}}} +\def\@sponsors{} + +% Abstract +\newbox\@abstract +\def\abstract{ +\global\setbox\@abstract=\vbox\bgroup\everypar{}% +\abstractfont\noindent\ignorespaces} +\def\endabstract{\egroup} + +% Terms +\def\terms#1{\gdef\@terms{#1}} +\let\@terms\@empty + +% Keywords +\def\keywords#1{\gdef\@keywords{#1}} +\let\@keywords\@empty + +% Reference Format +\def\acmformat#1{\gdef\@acmformat{#1 \formatline\vphantom{y}}} +\let\@acmformat\@empty + +% Category +\def\category#1#2#3{% + \@ifnextchar [{\@category{#1}{#2}{#3}}{\@category{#1}{#2}{#3}[]}} +\def\@category#1#2#3[#4]{% + \edef\@tempa{\ifx \@categories\@empty \else ; \fi}% + \begingroup + \def\protect{\noexpand\protect\noexpand}% + \let\and\relax + \xdef\@categories{% + \@categories + \@tempa + #1 [{\bf #2}]% + \if!#4!% + \if!#3!\else : #3\fi + \else + :\space + \if!#3!\else #3\kern\z@---\hskip\z@\fi + {\it #4}% + \fi + }% + \endgroup +} + +% Permission Information +\newbox\@permissionbox +\newenvironment{permission}{% + \footnotesize + \global\setbox\@permissionbox\vbox\bgroup\par\addvspace{3.1pt}\noindent\ignorespaces + }{% + \par\egroup} +% +\let\@categories\@empty +\def\bottomstuff{% + \global\@topnum\z@ + \global\@botroom \textheight + \@float{figure}[b] + \footnotesize + \parindent\z@ + \null + \vskip -\textfloatsep + \vskip 6\p@ plus2pt minus2pt + \hrule \@height .5\p@ \@width \textwidth + \vskip 6\p@ %7.5 + \ignorespaces +} +\def\endbottomstuff{\par% +Permission to make digital or hard copies of part or all of this work +for personal or classroom use is +granted without fee provided that copies are not made or distributed for profit or commercial +advantage and that copies show this notice on the first page or initial screen of a display +along with the full citation. Copyrights for components of this work owned by others than ACM +must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, +to post on servers, to redistribute to lists, or to use any component of this work in other +works requires prior specific permission and\hspace*{.5pt}/or a fee. +Permissions may be requested from Publications Dept., ACM, Inc., 2 Penn Plaza, Suite 701, +New York, NY 10121-0701 USA, fax $+$1 (212) 869-0481, +or permissions@acm.org.\par\box\@permissionbox +\copyrightline\par +\doiline +\vskip-13pt +\strut +\end@float +} + +% Heads +\newcounter{part} +\newcounter{section} +\newcounter{subsection}[section] +\newcounter{subsubsection}[subsection] +\newcounter{paragraph}[subsubsection] +\def\thepart{\Roman{part}} +\def\thesection{\arabic{section}} +\def\thesubsection{\thesection.\arabic{subsection}} +\def\thesubsubsection{\thesubsection.\arabic{subsubsection}} +\def\theparagraph{\thesubsubsection.\arabic{paragraph}} + +% for checking Uppercase heads +\newif\if@uchead\@ucheadfalse + +\setcounter{secnumdepth}{3} +\def\part{\@startsection{part}{9}{\z@}% + {-10\p@ \@plus -4\p@ \@minus -2\p@}% + {4\p@}% + {\normalsize\itshape\@ucheadtrue}} +\def\section{\@startsection{section}{1}{\z@}% + {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}% + {.25\baselineskip}% + {\sectionfont\@ucheadtrue}} +\def\refsection{\@startsection{section}{1}{\z@}% + {-1\baselineskip \@plus -2\p@ \@minus -.2\p@}% + {.5\baselineskip}% + {\refsectionfont\@ucheadtrue}} +\def\subsection{\@startsection{subsection}{2}{\z@}% + {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}% + {.25\baselineskip}% + {\subsectionfont}} +\def\subsubsection{\@startsection{subsubsection}{3}{10pt}% + {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}% + {-3.5\p@}{\subsubsectionfont}} +\def\paragraph{\@startsection{paragraph}{4}{\parindent}% + {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}% + {-3.5\p@}% + {\paragraphfont}} + +\def\@seccntformat#1{\csname the#1\endcsname.\hskip .4em} +\let\@period=. +\def\@sect#1#2#3#4#5#6[#7]#8{% + \ifnum #2>\c@secnumdepth + \let\@svsec\@empty + \else + \refstepcounter{#1}% + \edef\@svsec{\begingroup\csname the#1\endcsname\endgroup\relax .\hskip .4em}% + \protected@edef\@svsec{\@seccntformat{#1}\relax}% + \fi + \@tempskipa #5\relax + \ifdim \@tempskipa>\z@ + \begingroup + #6{% + \@hangfrom{\hskip #3\relax\@svsec}% + \interlinepenalty \@M \if@uchead\MakeUppercase{#8}\else#8\fi\@@par}% + \endgroup + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7}% + \else + \def\@svsechd{% + #6{\hskip #3\relax + \@svsec #8}% + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7}}% + \fi + \@xsect{#5}} +\def\@xsect#1{% + \@tempskipa #1\relax + \ifdim \@tempskipa>\z@ + \par + \nobreak + \vskip \@tempskipa + \@afterheading + \else + \global\@nobreakfalse + \global\@noskipsectrue + \everypar{% + \if@noskipsec + \global\@noskipsecfalse + \clubpenalty\@M + \hskip -\parindent + \begingroup + \@svsechd + \@period + \endgroup + \unskip + \@tempskipa #1\relax + \hskip -\@tempskipa + \else + \clubpenalty \@clubpenalty + \everypar{}% + \fi + }% + \fi + \ignorespaces +} + +% Lists +\def\@trivlist{% + \@topsepadd\topsep + \if@noskipsec + \global\let\@period\@empty + \leavevmode + \global\let\@period.% + \fi + \ifvmode + \advance\@topsepadd\partopsep + \else + \unskip + \par + \fi + \if@inlabel + \@noparitemtrue + \@noparlisttrue + \else + \@noparlistfalse + \@topsep\@topsepadd + \fi + \advance\@topsep \parskip + \leftskip\z@skip + \rightskip\@rightskip + \parfillskip\@flushglue + \@setpar{\if@newlist\else{\@@par}\fi} + \global\@newlisttrue + \@outerparskip\parskip +} +\labelsep 5\p@ + +\settowidth{\leftmargini}{9.} +\addtolength\leftmargini\labelsep + +\settowidth{\leftmarginii}{(b)} +\addtolength\leftmarginii\labelsep + +\leftmarginiii \leftmarginii +\leftmarginiv \leftmarginii +\leftmarginv \leftmarginii +\leftmarginvi \leftmarginii +\leftmargin \leftmargini + +\labelwidth\leftmargini +\advance\labelwidth-\labelsep +\def\@listI{% + \leftmargin\leftmargini + \parsep \z@ + \topsep .5\baselineskip \@plus 2\p@% + \itemsep\z@% +} + +\let\@listi\@listI + +\@listi +\def\@listii{% + \leftmargin\leftmarginii + \labelwidth\leftmarginii + \advance\labelwidth-\labelsep + \topsep \z@ + \parsep \z@ + \itemsep \parsep +} +\def\@listiii{% + \leftmargin\leftmarginiii + \labelwidth\leftmarginiii + \advance\labelwidth-\labelsep + \topsep \z@ \@plus \p@ + \parsep \z@ + \itemsep \parsep +} +\def\@listiv{% + \leftmargin\leftmarginiv + \labelwidth\leftmarginiv + \advance\labelwidth-\labelsep +} +\def\@listv{% + \leftmargin\leftmarginv + \labelwidth\leftmarginv + \advance\labelwidth-\labelsep +} +\def\@listvi{% + \leftmargin\leftmarginvi + \labelwidth\leftmarginvi + \advance\labelwidth-\labelsep +} +\newdimen\enumdim +\def\enummax#1{% + \setbox\tempbox\hbox{#1\hskip\labelsep}% + \enumdim\wd\tempbox + \expandafter\global\csname leftmargin\romannumeral\the\@enumdepth\endcsname + \enumdim} + +\enummax{1.} +\def\enumerate{\@ifnextchar[{\@enumerate}{\@enumerate[\csname label\@enumctr\endcsname]}}%% +\def\@enumerate[#1]{\par\abovedisplayskip .25\baselineskip \@plus2\p@ + \belowdisplayskip .25\baselineskip \@plus2\p@ + \ifnum \@enumdepth >3 \@toodeep\else + \advance\@enumdepth\@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% + \setcounter{\@enumctr}{1}\enummax{#1}% + \list + {\csname label\@enumctr\endcsname}{\usecounter{\@enumctr}% + \def\makelabel##1{\hss\llap{##1}}}\fi} +\def\endenumerate{\endlist}%% +\def\longenum{% + \leftmargin0pt + \ifnum \@enumdepth >3 + \@toodeep + \else + \advance\@enumdepth \@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% + \list{\csname label\@enumctr\endcsname}{% + \usecounter{\@enumctr}% + \labelwidth\z@\leftmargin0pt + \itemindent\parindent\advance\itemindent\labelsep + }% + \fi +} +\let\endlongenum\endlist + +\def\labelenumi{{\rm (}\arabic{enumi}\/{\rm )}} +\def\theenumi{\arabic{enumi}} +\def\labelenumii{{\rm (}\alph{enumii}\rm{)}} +\def\theenumii{\alph{enumii}} +\def\p@enumii{\theenumi} +\def\labelenumiii{\roman{enumiii}.} +\def\theenumiii{\roman{enumiii}} +\def\p@enumiii{\theenumi{\rm (}\theenumii{\rm )}} +\def\labelenumiv{\Alph{enumiv}.} +\def\theenumiv{\Alph{enumiv}} +\def\p@enumiv{\p@enumiii\theenumiii} +\newcommand\labelitemi{\texthyphen}% +\newcommand\labelitemii{\texthyphen}% +\newcommand\labelitemiii{\texthyphen}% +\newcommand\labelitemiv{\texthyphen}% +\font\lcir = lcircle10 at 8pt +\newcommand\bulls{\raise1.5pt\hbox{\lcir\char'162}} +\def\textbullet{\leavevmode\raise2pt\hbox{\bulls}} +\def\texthyphen{---} +\newif\ifhyphen\hyphenfalse + +\def\itemize{% + \ifnum \@itemdepth >3 \@toodeep\else \advance\@itemdepth \@ne + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \list{\csname\@itemitem\endcsname}% + {\advance\leftmargin-5.7pt\labelsep2pt + \def\makelabel##1{\hss\llap{##1}}}\fi}% +\let\enditemize =\endlist + +\newenvironment{hyphenlist}{% + \hyphentrue + \renewcommand\labelitemi{\texthyphen}% + \renewcommand\labelitemii{\texthyphen}% + \renewcommand\labelitemiii{\texthyphen}% + \renewcommand\labelitemiv{\texthyphen}% + \begin{itemize} +}{% + \end{itemize} + \hyphenfalse} +% +\newenvironment{bulletlist}{% +\leftmargini20pt + \renewcommand\labelitemi{\textbullet}% + \renewcommand\labelitemii{\textbullet}% + \renewcommand\labelitemiii{\textbullet}% + \renewcommand\labelitemiv{\textbullet}% + \begin{itemize} +}{% + \end{itemize}} + +\def\longitem{% + \list{---}{% + \labelwidth\z@ + \leftmargin\z@ + \itemindent\parindent + \advance\itemindent\labelsep + }% +} +\let\endlongitem\endlist +\def\verse{% + \let\\=\@centercr + \list{}{% + \leftmargin 2pc + \itemindent -1.5em + \listparindent \itemindent + \rightmargin\leftmargin + \advance\leftmargin 1.5em + }% + \item[] +} + +\let\endverse\endlist +\def\quotation{% + \list{}{% + \leftmargin 2pc + \listparindent .5em + \itemindent\listparindent + \rightmargin\leftmargin + \parsep \z@ \@plus \p@ + }% + \item[] +} + +\let\endquotation=\endlist +\def\quote{% + \list{}{% + \leftmargin 2pc + \rightmargin\leftmargin + }% + \item[] +} + +\let\endquote=\endlist +% +\def\extractfont{\fontsize{8}{10}\selectfont\leftskip8pt\rightskip8pt} +\newenvironment{extract}{\par\addvspace{7pt plus2pt} +\parindent8pt +\extractfont +\noindent\ignorespaces +}{% +\par\addvspace{6pt plus2pt}} + +\def\descriptionlabel#1{% + \hspace\labelsep \normalfont\itshape #1.% +}% +\newenvironment{description}{% + \list{}{% + \labelwidth\z@ + \let\makelabel\descriptionlabel + } +}{\endlist}% + +\def\describe#1{% + \list{}{% + \listparindent\parindent + \settowidth{\labelwidth}{#1}% + \leftmargin\labelwidth + \addtolength\leftmargin\labelsep + \def\makelabel##1{##1\hfil}% + }% +} +\let\enddescribe\endlist + +\def\program{% + \ifx\@currsize\normalsize + \small + \else + \rm + \fi + \tabbing +} +\let\endprogram\endtabbing + +% Enunciations +\newif\ifitalicenv\italicenvtrue + +\newtheorem{theorem}{Theorem}[section] +\newtheorem{conjecture}[theorem]{Conjecture} +\newtheorem{proposition}[theorem]{Proposition} +\newtheorem{lemma}[theorem]{Lemma} +\newtheorem{corollary}[theorem]{Corollary} +% +\newtheorem{exam}[theorem]{Example} +\newenvironment{example}{% +\italicenvfalse +\begin{exam}}{\end{exam}\italicenvtrue} +% +\newtheorem{defi}[theorem]{Definition} +\newenvironment{definition}{% +\italicenvfalse +\begin{defi}}{\end{defi}\italicenvtrue} + +\def\@begintheorem#1#2{% + \trivlist + \item[% + \hskip 12\p@ + \hskip \labelsep + {\ifitalicenv\sc\else\itshape\fi #1\hskip 5\p@\relax{\rm #2}.\enspace}]% + \ifitalicenv\itshape\else\upshape\fi\hskip-\labelsep% +} +\def\@opargbegintheorem#1#2#3{% + \trivlist + \item[\hskip 12pt + \hskip \labelsep + {\ifitalicenv{\sc{#1}}\else{\itshape#1}\fi% + \savebox\@tempboxa{\ifitalicenv{\scshape#3}\else{\itshape#3}\fi}% + \ifdim\wd\@tempboxa>\z@% + \ {\rm #2}\unskip\hskip5pt\relax$($\box\@tempboxa$)$% + \fi.\unskip\hskip5pt}] +\ifitalicenv\itshape\else\upshape\fi\hskip-\labelsep} + +\newif\if@qeded +\global\@qededfalse +\def\proof{% + \global\@qededfalse + \@ifnextchar[{\@xproof}{\@proof}} + +\def\endproof{% + \if@qeded\else\qed\fi + \endtrivlist +} +\def\@proof{% + \trivlist + \item[% + \hskip 12\p@ + \hskip \labelsep + {\sc Proof.\enspace}]\hskip-\labelsep% + \ignorespaces +} +\def\@xproof[#1]{% + \trivlist + \item[\hskip 12\p@\hskip \labelsep{\sc Proof #1.}]% + \ignorespaces +} +\def\qed{\unskip\kern 10pt{\unitlength1pt\linethickness{.4pt}\framebox(5,5){}} + \global\@qededtrue + }% +\def\newdef#1#2{% + \expandafter\@ifdefinable\csname #1\endcsname + {\@definecounter{#1}% + \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}% + \global\@namedef{#1}{\@defthm{#1}{#2}}% + \global\@namedef{end#1}{\@endtheorem}% + }% +} +\def\@defthm#1#2{% + \refstepcounter{#1}% + \@ifnextchar[{\@ydefthm{#1}{#2}}{\@xdefthm{#1}{#2}}% +} +\def\@xdefthm#1#2{% + \@begindef{#2}{\csname the#1\endcsname}% + \ignorespaces +} +\def\@ydefthm#1#2[#3]{% + \trivlist + \item[% + \hskip 10\p@ + \hskip \labelsep + {\it #2% + \savebox\@tempboxa{#3}% + \ifdim \wd\@tempboxa>\z@ + \ \box\@tempboxa + \fi.% + }]% + \ignorespaces +} +\def\@begindef#1#2{% + \trivlist + \item[% + \hskip 10\p@ + \hskip \labelsep + {\it #1\ \rm #2.}% + ]% +} + +% Maths +\def\theequation{\arabic{equation}} + +\def\@marrayclassiv{\@addtopreamble{$\displaystyle \@nextchar$}} +\def\@marrayclassz{\ifcase \@lastchclass \@acolampacol \or \@ampacol \or + \or \or \@addamp \or + \@acolampacol \or \@firstampfalse \@acol \fi +\edef\@preamble{\@preamble + \ifcase \@chnum + \hfil$\relax\displaystyle\@sharp$\hfil \or $\relax\displaystyle\@sharp$\hfil + \or \hfil$\relax\displaystyle\@sharp$\fi}} +\def\marray{\arraycolsep 2.5pt\let\@acol\@arrayacol \let\@classz\@marrayclassz + \let\@classiv\@marrayclassiv \let\\\@arraycr\def\@halignto{}\@tabarray} +\def\endmarray{\crcr\egroup\egroup} + +\arraycolsep 2.5\p@ +\tabcolsep 6\p@ +\arrayrulewidth .25\p@ +\doublerulesep 2\p@ +\tabbingsep \labelsep + +\skip\@mpfootins = \skip\footins +\fboxsep = 3pt \fboxrule = .4\p@ + +% Table of Contents +\def\@pnumwidth{1.55em} +\def\@tocrmarg {2.55em} +\def\@dotsep{4.5} +\setcounter{tocdepth}{3} +\def\tableofcontents{% + \section*{Contents\@mkboth{CONTENTS}{CONTENTS}} + \@starttoc{toc}% +} +\def\l@part#1#2{% + \addpenalty\@secpenalty + \addvspace{2.25em \@plus \p@}% + \begingroup + \@tempdima 3em + \parindent \z@ + \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + {\large \bf \leavevmode #1\hfil \hb@xt@\@pnumwidth{\hss #2}}\par + \nobreak + \endgroup +} +\def\l@section#1#2{% + \addpenalty\@secpenalty + \addvspace{1.0em \@plus \p@}% + \@tempdima 1.5em + \begingroup + \parindent \z@ + \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \bf \leavevmode #1\hfil \hb@xt@\@pnumwidth{\hss #2}\par + \endgroup +} +\def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}} +\def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}} + +% List of figures +\def\listoffigures{% + \section*{List of Figures\@mkboth{LIST OF FIGURES}{LIST OF FIGURES}} + \@starttoc{lof}} +\def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} + +% List of tables +\def\listoftables{% + \section*{List of Tables\@mkboth{LIST OF TABLES}{LIST OF TABLES}} + \@starttoc{lot}} +\let\l@table\l@figure + +% Index +\newif\if@restonecol +\def\theindex{% + \@restonecoltrue + \if@twocolumn \@restonecolfalse \fi + \columnseprule \z@ + \columnsep 35\p@ + \twocolumn[\section*{Index}] + \@mkboth{INDEX}{INDEX}% + \thispagestyle{plain}% + \parindent\z@ + \parskip\z@ \@plus .3\p@\relax + \let\item\@idxitem +} + +\def\endtheindex{% + \if@restonecol + \onecolumn + \else + \clearpage + \fi +} +\def\@idxitem{\par\hangindent 40\p@} +\def\subitem{\par\hangindent 40\p@ \hspace*{20\p@}} +\def\subsubitem{\par\hangindent 40\p@ \hspace*{30\p@}} +\def\indexspace{\par \vskip 10\p@ \@plus 5\p@ \@minus 3\p@\relax} + +% Footnote +\def\footnoterule{% + \kern-3\p@ + \hrule \@width 36\p@ \@height 0.25\p@ + \kern 3\p@ +} +\long\def\@makefntext#1{% + \parindent 1em + \noindent $^{\@thefnmark}$#1% +} + +% Figures and Tables +\newlength\belowcaptionskip +\newlength\abovecaptionskip +\setlength\belowcaptionskip{3.5\p@} +\setlength\abovecaptionskip{6\p@} + +\def\nocaption{\refstepcounter\@captype \par + \vskip 1pc \hbox to\hsize{\hfil \figcaptionnumfont Figure \thefigure + \hfil}} + +\def\FigName{figure}% +\long\def\@caption#1[#2]#3{\par\begingroup + \@parboxrestore + \normalsize + \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par + \endgroup} + +\long\def\@makecaption#1#2{% + \ifx\FigName\@captype\baselineskip10pt + \vskip\abovecaptionskip + \setbox\@tempboxa\hbox{\figcaptionfont{\figcaptionnumfont#1}.\hskip7.3pt\relax #2\par}% + \ifdim \wd\@tempboxa >\hsize + \figcaptionfont{\figcaptionnumfont#1}.\hskip7.3pt\relax #2\par + \else + \centerline{\box\@tempboxa}% + \fi + \else% + \setbox\tbbox=\vbox{\hsize\tempdimen\tablecaptionfont{\tablenumfont #1.\ }{#2\par}}% + \setbox\@tempboxa\hbox{\hsize\tempdimen\tablecaptionfont{\tablenumfont #1.}\ {#2\par}}% + \ifdim \wd\@tempboxa >\tempdimen + \centerline{\box\tbbox}% + \else + \centerline{\box\@tempboxa}% + \fi + \vskip\belowcaptionskip + \fi +} +% +\newcounter{figure} +\def\thefigure{\@arabic\c@figure} +\def\fps@figure{tbp} +\def\ftype@figure{1} +\def\ext@figure{lof} +% +\newif\ifcontinued +\global\continuedfalse +% +\def\continued{\global\continuedtrue} +% +\def\fnum@figure{\ifcontinued\global\continuedfalse\addtocounter{figure}{-1} Fig.~\thefigure---{\it Continued}\else Fig.~\thefigure\fi}% +\newenvironment{figure} + {\@float{figure}} + {\end@float} +\newenvironment{figure*} + {\@dblfloat{figure}} + {\end@dblfloat} +% +\newcounter{table} +\renewcommand\thetable{\Roman{table}} +\def\fps@table{tbp} +\def\ftype@table{2} +\def\ext@table{lot} +\def\tablename{Table} +\def\fnum@table{\ifcontinued\addtocounter{table}{-1} Table~\thetable---{\it Continued} \else Table~\thetable\fi} +\newenvironment{table} + {\@float{table}} + {\end@float} +\newenvironment{table*} + {\@dblfloat{table}} + {\end@dblfloat} + +\long\def\tbl#1#2{% +\setbox\tempbox\hbox{\tablefont #2}% +\tabledim\hsize\advance\tabledim by -\wd\tempbox +\tempdimen\wd\tempbox +\global\divide\tabledim\tw@ +\caption{#1\protect\vphantom{yp}} +\centerline{\box\tempbox}}% + +\newenvironment{intexttable}{\par\addvspace{1.2pt plus2pt} +\intexttablefont +}{% +\par\addvspace{7pt plus2pt}} + +\newenvironment{tabnote}{% +\par\vskip5pt +\tabnotefont +\@ifnextchar[{\@tabnote}{\@tabnote[]}}{% +\par} +\def\@tabnote[#1]{\def\@Tempa{#1}\leftskip\tabledim\rightskip\leftskip\ifx\@Tempa\@empty\else{\it #1:}\ \fi\ignorespaces} + +\def\tabnoteentry#1#2{\parindent0pt\par{#1}{#2}} +\def\Note#1#2{\parindent0pt\par{\it #1}\ #2} + +\newdimen\@narrowfig +\newbox\@nfigbox +\newbox\@nfcapbox +\newif\if@nfeven +\def\acmtable#1{% + \@narrowfig #1\relax + \let\caption\@atcap + \let\nocaption\@atnocap + \@ifnextchar[{\@ntab}{\@ntab[\fps@table]}% +} + +\def\@ntab[#1]{% + \expandafter\table\expandafter[#1]% + \setbox\@nfigbox\vbox\bgroup + \hsize \@narrowfig + \@parboxrestore +} + +\def\endacmtable{% + \hb@xt@\textwidth{% + \hfil + \vbox{% + \hsize \@narrowfig + \box\@nfcapbox{% + \baselineskip 4\p@ + \hbox{\vrule \@height .4\p@ \@width \hsize}% + + }% + \vskip -\p@ + \box\@nfigbox + \vskip -\p@ + \begingroup + \baselineskip 4\p@ + \hbox{\vrule \@height .4\p@ \@width \hsize}% + \endgroup + }% + \hfil + }% + \end@float +} +\def\@atmakecap#1#2{% + \setbox\@tempboxa\hbox{#1.\hskip 1em\relax #2}% + \ifdim \wd\@tempboxa >\hsize + \sloppy #1.\hskip 1em\relax #2 \par + \else + \centerline{\box\@tempboxa}% + \fi +} +\def\@atcap{% + \par + \egroup + \refstepcounter\@captype + \@dblarg{\@atcapx\@captype}% +} +\long\def\@atcapx#1[#2]#3{% + \addcontentsline{\csname ext@#1\endcsname}{#1}{% + \protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}% + }% + \setbox\@nfcapbox\vbox{% + \hsize \wd\@nfigbox + \@parboxrestore + \@atmakecap{\csname fnum@#1\endcsname}{\ignorespaces #3}% + \par + }% +} +\def\@atnocap{% + \egroup + \refstepcounter\@captype + \setbox\@nfcapbox\vbox{% + \hsize \wd\@nfigbox + \centerline{\footnotesize \fnum@table} + }% +} +\def\narrowfig#1{% + \@narrowfig #1\relax + \let\caption\@nfcap + \let\nocaption\@nfnocap + \@ifnextchar[{\@nfig}{\@nfig[\fps@figure]}% +} + +\def\@nfig[#1]{% + \expandafter\figure\expandafter[#1]% + \setbox\@nfigbox\vbox\bgroup + \hsize\@narrowfig + \@parboxrestore +} + +\def\endnarrowfig{% + \hb@xt@\textwidth{% + \if@nfeven + \box\@nfcapbox \hfil \box\@nfigbox + \else + \box\@nfigbox \hfil \box\@nfcapbox + \fi + }% + \endfigure +} +\def\@nfcap{% + \par + \egroup + \refstepcounter\@captype + \@dblarg{\@nfcapx\@captype}% +} +\def\@nfmakecap #1#2{% + \setbox\@tempboxa\hbox{#1.\hskip 1em\relax #2}% + \ifdim \wd\@tempboxa >\hsize + \sloppy #1.\hskip 1em\relax #2 \par + \else + \@@line{% + \if@nfeven\else\hfil\fi + \box\@tempboxa + \if@nfeven\hfil\fi + }% + \fi +} +\long\def\@nfcapx#1[#2]#3{% + \addcontentsline{\csname ext@#1\endcsname}{#1}{% + \protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}% + }% + \@seteven + \setbox\@nfcapbox\vbox to \ht\@nfigbox{% + \hsize \textwidth + \advance\hsize -2pc + \advance\hsize -\wd\@nfigbox + \@parboxrestore + \vfil + \@nfmakecap{\csname fnum@#1\endcsname}{\ignorespaces #3}% + \par + \vfil + }% +} +\def\@nfnocap{% + \egroup + \refstepcounter\@captype + \@seteven + \setbox\@nfcapbox\vbox to \ht\@nfigbox{% + \hsize \textwidth + \advance\hsize -2pc + \advance\hsize -\wd\@nfigbox + \@parboxrestore + \vfil + \@@line{% + \if@nfeven\else\hfil\fi + \footnotesize \fnum@figure + \if@nfeven\hfil\fi + }% + \vfil + }% +} + +\def\@seteven{% + \@nfeventrue + \@ifundefined{r@@nf\thefigure}{}{% + \edef\@tmpnf{\csname r@@nf\thefigure\endcsname}% + \edef\@tmpnf{\expandafter\@cdr\@tmpnf\@nil}% + \ifodd\@tmpnf\relax + \@nfevenfalse + \fi + }% + \label{@nf\thefigure}% + \edef\@tmpnfx{\if@nfeven e\else o\fi}% + \edef\@tmpnf{% + \write\@unused{% + \noexpand\ifodd \noexpand\c@page + \noexpand\if \@tmpnfx e% + \noexpand\@nfmsg{\thefigure} + \noexpand\fi + \noexpand\else + \noexpand\if \@tmpnfx o% + \noexpand\@nfmsg{\thefigure}% + \noexpand\fi + \noexpand\fi + }% + }% + \@tmpnf +} + +\def\@nfmsg#1{Bad narrowfig: Figure #1 on page \thepage} +\newbox\@nfigbox +\newbox\@nfcapbox +\newif\if@nfeven + +% Acknowledgments +\newenvironment{ack}{% +\refsection*{ACKNOWLEDGMENT} +\ackfont +}{\par} + +\newenvironment{acks}{% +\refsection*{ACKNOWLEDGMENTS} +\ackfont +}{\par} + +% History Dates +\def\received#1#2#3{\par\addvspace{14\p@}% +{\noindent\fontfamily{\sfdefault}\fontsize{8}{9}\selectfont{Received\ #1;\ revised\ #2;\ accepted\ #3}% +\par}} + +% provide both spellings of Acknowledgment(s) +\let\acknowledgments\acks +\let\endacknowledgments\endacks +\let\acknowledgment\ack +\let\endacknowledgment\endack + +\newcommand{\longpage}{\enlargethispage{\baselineskip}} +\newcommand{\shortpage}{\enlargethispage{-\baselineskip}} + +% Appendices +\newfont{\apbf}{cmbx9} +\def\@withappendix#1{App--\number #1} +\newcommand{\elecappendix}{ +} + +\def\appenheader{\global\@topnum\z@ \global\@botroom \textheight \begin{figure} +\newfont{\sc}{cmcsc10} +\parindent\z@ +\hbox{} +\vskip -\textfloatsep +\vskip 11pt +\hrule height .2pt width 30pc +\vskip 2pt\rule{0pt}{10pt}\ignorespaces} +\def\endappenheader{\end{figure}\gdef\appendixhead{}} + +\def\@appsec{} + +\def\appendix{\par + \setcounter{section}{0} + \setcounter{subsection}{0} + \def\@appsec{APPENDIX } + \def\thesection{\Alph{section}} + \def\theHsection{\Alph{section}}} + +% split electronic appendix into two parts: + +\def\appendixhead#1{\appendix +\section*{ELECTRONIC APPENDIX} +The electronic appendix for this article can be accessed in the ACM Digital Library.} + +\newif\ifelec@app\global\elec@appfalse +\long\def\elecappendix{\immediate\write\@mainaux{\string\lastpage{\the\c@page}}% +\clearpage +\makeatletter +\elec@apptrue +\pagenumbering{withappendix} +\pagestyle{appheadings} +\thispagestyle{titlepage}% +\makeatother +\appendix +{\vbox{\titlefont\parindent0pt\raggedright% +Online Appendix to:\par\@title\par{}}}\vskip 12\p@ +\vbox{\authorfont\parindent0pt\@author{}}\vskip .5em\noindent +\vskip 11pt\noindent +\hrule height .2pt +\par +\def\endbottomstuff{% +\copyrightline\par +\doiline +\vskip-13pt +\strut +\end@float +} +\bottomstuff +\endbottomstuff +} + +%-----------------------BIBLIOGRAPHY STUFF------------------------- +% this is adapted (November 1993) by Andrew Appel and Rebecca Davies from +% +%%% filename = "chicago.sty", +%%% version = "4", % MODIFIED! +%%% date = "31 August 1992", +%%% time = "09:42:44 199", +%%% author = "Glenn Paulley", +%%% address = "Data Structuring Group +%%% Department of Computer Science +%%% University of Waterloo +%%% Waterloo, Ontario, Canada +%%% N2L 3G1", +%%% telephone = "(519) 885-1211", +%%% FAX = "(519) 885-1208", +%%% email = "gnpaulle@bluebox.uwaterloo.ca", + +%%% ==================================================================== +% +% this file: Modification of chicago.sty for new ACM bibliography +% style, which is similar (but not identical) to the ``Chicago'' style. +% +% chicago.sty: Style file for use with bibtex style chicago.bst, for +% bibliographies formatted according to the 13th Edition of the Chicago +% Manual of Style. +% +% 'newapa.bst' was made from 'plain.bst', 'named.bst', and 'apalike.bst', +% with lots of tweaking to make it look like APA style, along with tips +% from Young Ryu and Brian Reiser's modifications of 'apalike.bst'. +% newapa.sty formed the basis of this style, chicago.sty. Author-date +% references in newapa.bst formed the basis for chicago.bst. Chicagoa.bst +% supports annotations. +% +% Version 4 (August, 1992): +% - fixed chicago.bst and chicagoa.bst to handle long author lists in +% sorting +% - fixed chicago.bst and chicagoa.bst so that missing page numbers in +% ``article'' entries are handled correctly +% - modified chicago.sty to format entries with 2nd and subsequent lines +% indented. +% +% Citation format: (author-last-name year) +% (author-last-name and author-last-name year) +% (author-last-name et al. year) +% (author-last-name) +% author-last-name +% author-last-name (year) +% (author-last-name and author-last-name) +% (author-last-name et al.) +% (year) or (year,year) +% year or year,year +% +% Reference list ordering: alphabetical by author or whatever passes +% for author in the absence of one. +% +% This BibTeX style has support for abbreviated author lists and for +% year-only citations. This is done by having the citations +% actually look like +% +% \citeauthoryear{full-author-info}{abbrev-author-info}{year} +% +% The LaTeX style has to have the following (or similar) +% +% \let\@internalcite\cite +% \def\fullcite{\def\citeauthoryear##1##2##3{##1, ##3}\@internalcite} +% \def\fullciteA{\def\citeauthoryear##1##2##3{##1}\@internalcite} +% \def\shortcite{\def\citeauthoryear##1##2##3{##2, ##3}\@internalcite} +% \def\shortciteA{\def\citeauthoryear##1##2##3{##2}\@internalcite} +% \def\citeyear{\def\citeauthoryear##1##2##3{##3}\@internalcite} +% +% +% ------------------------------------------------------------------------- +% +% Citation macros (compatible with natbib package). +% +\AtBeginDocument{% +\@ifpackageloaded{natbib}{% Natbib loaded +\renewcommand\bibsection{% + \refsection*{{\refname}% + \@mkboth{\uppercase{\refname}}{\uppercase{\refname}}% +}}% +\bibpunct[, ]{[}{]}{;}{a}{}{,} +\let\citeN\cite +\let\cite\citep +\let\citeANP\citeauthor +\let\citeNN\citeyearpar +\let\citeyearNP\citeyear +\let\citeyear\citeyearpar +\let\citeNP\citealt +\def\shortcite#1{\citeyear{#1}} +\DeclareRobustCommand\citeA + {\begingroup\NAT@swafalse\let\NAT@ctype\@ne\NAT@partrue\NAT@fullfalse\NAT@open\NAT@citetp} +\newcommand\newblock{} +}{% Natbib not loaded +\let\@internalcite\cite +\def\cite{\def\@citeseppen{-1000}% + \def\@cite##1##2{[##1\if@tempswa , ##2\fi]}% + \def\citeauthoryear##1##2##3{##2 ##3}\@internalcite} +\def\citeXNP#1#2{% + \def\@cite@label{#2}% + \def\@cite##1##2{##1\if@tempswa , ##2\fi}% + \def\citeauthoryear##1##2##3{\@cite@label}\@internalcite{#1}} +\def\citeNP{\def\@citeseppen{-1000}% + \def\@cite##1##2{##1\if@tempswa , ##2\fi}% + \def\citeauthoryear##1##2##3{##2 ##3}\@internalcite} +\def\citeN{\def\@citeseppen{-1000}% + \def\@cite##1##2{##1\if@tempswa , ##2]\else{]}\fi}% + \def\citeauthoryear##1##2##3{##2 [##3}\@citedata} +\def\shortcite#1{\citeyear{#1}} +\def\citeS#1{[\citeANP{#1} \citeyearNP{#1}]} +\def\citeNS#1{\citeANP{#1} \citeyear{#1}} +\def\citeNPS#1{\citeANP{#1} \citeyearNP{#1}} +%testing year,year +\def\citeNN{\def\@citeseppen{-1000}% + \def\@cite##1##2{[##1\if@tempswa , ##2\fi]}% + \def\citeauthoryear##1##2##3{##3}\@citedata} + +\def\citeA{\def\@citeseppen{-1000}% + \def\@cite##1##2{[##1\if@tempswa , ##2\fi]}% + \def\citeauthoryear##1##2##3{##2}\@internalcite} +\def\citeANP{\def\@citeseppen{-1000}% + \def\@cite##1##2{##1\if@tempswa , ##2\fi}% + \def\citeauthoryear##1##2##3{##2}\@internalcite} + +\def\citeyear{\def\@citeseppen{-1000}% + \def\@cite##1##2{[##1\if@tempswa , ##2\fi]}% + \def\citeauthoryear##1##2##3{##3}\@citedata} +\def\citeyearNP{\def\@citeseppen{-1000}% + \def\@cite##1##2{##1\if@tempswa , ##2\fi}% + \def\citeauthoryear##1##2##3{##3}\@citedata} + +% +% \@citedata and \@citedatax: +% +% Place commas in-between citations in the same \citeyear, \citeyearNP, +% or \citeN command. +% Use something like \citeN{ref1,ref2,ref3} and \citeN{ref4} for a list. +% +\def\@citedata{% + \@ifnextchar [{\@tempswatrue\@citedatax}% + {\@tempswafalse\@citedatax[]}% +} + +\def\@citedatax[#1]#2{% +\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi% + \def\@citea{}\@cite{\@for\@citeb:=#2\do% + {\@citea\def\@citea{; }\@ifundefined% by Young + {b@\@citeb}{{\bf ?}% + \@warning{Citation `\@citeb' on page \thepage \space undefined}}% +{\csname b@\@citeb\endcsname}}}{#1}}% + +% don't box citations, separate with ; and a space +% also, make the penalty between citations negative: a good place to break. +% +\def\@citex[#1]#2{% +\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi% + \def\@citea{}\@cite{\@for\@citeb:=#2\do% + {\@citea\def\@citea{; }\@ifundefined% by Young + {b@\@citeb}{{\bf ?}% + \@warning{Citation `\@citeb' on page \thepage \space undefined}}% +{\csname b@\@citeb\endcsname}}}{#1}}% + +% Fix cite so it doesn't repeat author lists in citations: + +\def\cite{\def\@citeseppen{-1000}% + \def\@cite##1##2{[##1\if@tempswa , ##2\fi]}% + \let\@lastauthor=\@noauthor + \let\citeauthoryear=\citeauthoryear@no@repeats\@internalcite} + %\def\citeauthoryear##1##2##3{##2 ##3}\@internalcite + +\def\@noauthor={\relax} +\let\@lastauthor=\@noauthor +\let\@currauthor=\@noauthor + +\def\citeauthoryear@no@repeats#1#2#3{% + \def\@currauthor{\csname @author #1\endcsname}% + \ifx\@lastauthor\@currauthor{#3}\else{#2 #3}\fi% + \let\@lastauthor=\@currauthor} +}} + +% Bibliography +\let\@biblabel\@gobble +\newdimen\bibindent +\bibindent=16pt +\newcommand\refname{REFERENCES} +\def\thebibliography#1{% + \footnotesize + \refsection*{{\refname} + \@mkboth{\uppercase{\refname}}{\uppercase{\refname}}% + } + \list{}{ + \settowidth\labelwidth{} + \leftmargin0pt + \advance\leftmargin\bibindent + \itemindent -\bibindent + \itemsep2pt + \parsep \z@ + \usecounter{enumi}% + }% + \let\newblock\@empty + \sloppy + \sfcode`\.=1000\relax +} +\let\endthebibliography=\endlist + +% Blackboard font +\DeclareFontFamily{OT1}{ams}{} +\DeclareFontShape{OT1}{ams}{m}{n}{ <-> msam10 }{} +\DeclareFontShape{OT1}{ams}{m}{it}{ <-> msam10 }{} +\DeclareFontShape{OT1}{ams}{bx}{n}{ <-> msbm10 }{} +\DeclareFontShape{OT1}{ams}{bx}{it}{ <-> msbm10 }{} + +\def\bb#1{\mathchoice + {\mbox{\fontfamily{ams}\fontsize{\tf@size}{\tf@size}\selectfont\bf#1}}% + {\mbox{\fontfamily{ams}\fontsize{\tf@size}{\tf@size}\selectfont\bf#1}}% + {\mbox{\fontfamily{ams}\fontsize{\sf@size}{\sf@size}\selectfont\bf#1}}% + {\mbox{\fontfamily{ams}\fontsize{\ssf@size}{\ssf@size}\selectfont\bf#1}}} + +\DeclareMathAlphabet{\mathbb}{OT1}{ams}{bx}{n} +\SetMathAlphabet\mathbb{normal}{OT1}{ams}{bx}{n} +\SetMathAlphabet\mathbb{bold}{OT1}{ams}{bx}{n} +\def\bb{\mathbb} + +\def\text#1{\ifmmode + \mathchoice + {\hbox{\fontsize{\tf@size}{\tf@size}\selectfont#1}}% + {\hbox{\fontsize{\tf@size}{\tf@size}\selectfont#1}}% + {\hbox{\fontsize{\sf@size}{\sf@size}\selectfont#1}}% + {\hbox{\fontsize{\ssf@size}{\ssf@size}\selectfont#1}}% + \else\hbox{\rm#1}\fi} +% +% newdef need to take the optional parameters of newtheorem +\def\newdef#1{\@ifnextchar[{\@xnewdef{#1}}{\@ynewdef{#1}}} +\def\@xnewdef#1[#2]#3{\newtheorem{italic@#1}[#2]{{\em #3}}\@newdef{#1}} +\def\@ynewdef#1#2{\@ifnextchar[{\@xynewdef{#1}{#2}}{\@yynewdef{#1}{#2}}} +\def\@xynewdef#1#2[#3]{\newtheorem{italic@#1}{{\em #2}}[#3]\@newdef{#1}} +\def\@yynewdef#1#2{\newtheorem{italic@#1}{{\em #2}}\@newdef{#1}} +% +\def\@newdef#1{\newenvironment{#1}{\@ifnextchar[{\@xstartdef{#1}}{\@ystartdef{#1}}}{\end{italic@#1}}} +% +\def\@xstartdef#1[#2]{\begin{italic@#1}[{\em #2}]\rm} +\def\@ystartdef#1{\begin{italic@#1}\rm} +% +\newdef{remark}[theorem]{Remark} + +% Page number Panel +\def\openartnum{\vbox to 1.125in{\vskip.125in\vfill\hbox to 26pt{\textcolor{white}{\fontfamily{\sfdefault}\fontsize{12}{7}\selectfont\bfseries\@acmArticle}\hfill}\vfill}} +\def\closeartnum{\vbox to 1.125in{\vskip-.125in\vfill\hbox to 26pt{\textcolor{white}{\fontfamily{\sfdefault}\fontsize{12}{7}\selectfont\bfseries\@acmArticle}\hfill}\vfill}} +\def\artnum{\vbox to 1in{\vfill\hbox to 26pt{\textcolor{white}{\fontfamily{\sfdefault}\fontsize{12}{7}\selectfont\bfseries\@acmArticle}\hfill}\vfill}} +% +\def\opentab{\hbox{\vrule width45.75pt depth0pt height1.125in\hspace*{-35.5pt}\openartnum}} +\def\normtab{\hbox{\vrule width45.75pt depth0pt height1in\hspace*{-35.5pt}\artnum}} +\def\closetab{\hbox{\vrule width45.75pt depth0pt height1.125in\hspace*{-35.5pt}\closeartnum}} +% +\newcommand\tab{\ifcase\@articleSeq\or +\vbox{\vskip-.125in\opentab}\or \vbox{\vskip1in\normtab}\or \vbox{\vskip2in\normtab}\or \vbox{\vskip3in\normtab}\or \vbox{\vskip4in\normtab}\or \vbox{\vskip5in\normtab}\or \vbox{\vskip6in\normtab}\or \vbox{\vskip7in\normtab}\or \vbox{\vskip8in\normtab}\or \vbox{\vskip9in\closetab}\or +\vbox{\vskip-.125in\opentab}\or \vbox{\vskip1in\normtab}\or \vbox{\vskip2in\normtab}\or \vbox{\vskip3in\normtab}\or \vbox{\vskip4in\normtab}\or \vbox{\vskip5in\normtab}\or \vbox{\vskip6in\normtab}\or \vbox{\vskip7in\normtab}\or \vbox{\vskip8in\normtab}\or \vbox{\vskip9in\closetab}\or +\vbox{\vskip-.125in\opentab}\or \vbox{\vskip1in\normtab}\or \vbox{\vskip2in\normtab}\or \vbox{\vskip3in\normtab}\or \vbox{\vskip4in\normtab}\or \vbox{\vskip5in\normtab}\or \vbox{\vskip6in\normtab}\or \vbox{\vskip7in\normtab}\or \vbox{\vskip8in\normtab}\or \vbox{\vskip9in\closetab}\fi} + +% Output Routine +\def\@outputpage{% +\begingroup % the \endgroup is put in by \aftergroup + \let \protect \noexpand + \@resetactivechars + \@parboxrestore + \shipout \vbox{% + \set@typeset@protect + \aftergroup \endgroup + \aftergroup \set@typeset@protect + % correct? or just restore by ending + % the group? + \if@specialpage + \global\@specialpagefalse\@nameuse{ps@\@specialstyle}% + \fi + \if@twoside + \ifodd\count\z@ \let\@thehead\@oddhead \let\@thefoot\@oddfoot + \let\@themargin\oddsidemargin + \else \let\@thehead\@evenhead + \let\@thefoot\@evenfoot \let\@themargin\evensidemargin + \fi + \fi + \reset@font + \normalsize + \normalsfcodes + \let\label\@gobble + \let\index\@gobble + \let\glossary\@gobble + \baselineskip\z@skip \lineskip\z@skip \lineskiplimit\z@ + \@begindvi + \ifelec@app\else\ifnum\c@page=1\vbox to 0pt{\hbox to \trimwidth{\hfill\tab}}\fi\fi + \vskip \topmargin + \moveright\@themargin \vbox {% + \setbox\@tempboxa \vbox to\headheight{% + \vfil + \color@hbox + \normalcolor + \hb@xt@\textwidth{\@thehead}% + \color@endbox + }% %% 22 Feb 87 + \dp\@tempboxa \z@ + \box\@tempboxa + \vskip \headsep + \box\@outputbox + \baselineskip \footskip + \color@hbox + \normalcolor + \hb@xt@\textwidth{\@thefoot}% + \color@endbox + }% + }% + \global \@colht \textheight + \stepcounter{page}% + \let\firstmark\botmark +} +% +\ps@headings +\pagenumbering{arabic} +\onecolumn + +\frenchspacing +\sloppy +\widowpenalty10000 +\clubpenalty10000 + +\endinput + +% End of file `acmsmall.cls' Version 1.4 + + -- cgit v1.2.3-70-g09d2