grnsight 5.0.0 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/.travis.yml +1 -1
  2. package/package.json +5 -5
  3. package/server/app.js +4 -2
  4. package/server/controllers/database-controller.js +9 -8
  5. package/server/controllers/exporters/xlsx.js +27 -9
  6. package/test/export-tests.js +2 -2
  7. package/test/test.js +3 -1
  8. package/test-files/expression-data-test-sheets/expression_sheet_missing_data_ok_export_exact.xlsx +0 -0
  9. package/web-client/app.js +1 -1
  10. package/web-client/controllers/main.js +1 -1
  11. package/web-client/public/js/constants.js +4 -1
  12. package/web-client/public/js/update-app.js +8 -11
  13. package/web-client/public/js/upload.js +337 -11
  14. package/web-client/views/{graph.jade → graph.pug} +0 -0
  15. package/web-client/views/{info.jade → info.pug} +1 -5
  16. package/web-client/views/{upload.jade → upload.pug} +47 -4
  17. package/documents/SDF/CMSI_402/spring_2014/Southwick_CMSI402_Spring2014_software-development-plan.md +0 -71
  18. package/documents/SDF/CMSI_402/spring_2014/Southwick_CMSI402_Spring2014_software-requirements-specification.md +0 -71
  19. package/documents/SDF/CMSI_402/spring_2014/use-case-diagram-spring-2014.jpg +0 -0
  20. package/documents/SDF/CMSI_402/spring_2017/Anguiano_402_Final_Presentation.pptx +0 -0
  21. package/documents/SDF/CMSI_402/spring_2017/Anguiano_402_Presentation_Final_Poster.pdf +0 -0
  22. package/documents/SDF/CMSI_402/spring_2017/Anguiano_CMSI402_Spring2017_project-proposal-presentation.pptx +0 -0
  23. package/documents/SDF/CMSI_402/spring_2017/Anguiano_CMSI402_Spring2017_project-proposal.docx +0 -0
  24. package/documents/SDF/CMSI_402/spring_2017/Anguiano_CMSI402_Spring2017_software-development-plan.docx +0 -0
  25. package/documents/SDF/CMSI_402/spring_2017/Anguiano_CMSI402_Spring2017_software-requirements-specification.docx +0 -0
  26. package/documents/SDF/CMSI_402/spring_2017/Design Review Presentation.pptx +0 -0
  27. package/documents/SDF/CMSI_402/spring_2018/0402report.docx +0 -0
  28. package/documents/SDF/CMSI_402/spring_2018/0409report.docx +0 -0
  29. package/documents/SDF/CMSI_402/spring_2018/402-gantt.png +0 -0
  30. package/documents/SDF/CMSI_402/spring_2018/402SRS_GRNSightFeedback01.txt +0 -28
  31. package/documents/SDF/CMSI_402/spring_2018/402_SPD.md +0 -223
  32. package/documents/SDF/CMSI_402/spring_2018/ChoeShinCMSI402_Final.pptx +0 -0
  33. package/documents/SDF/CMSI_402/spring_2018/ProjectProposal.md +0 -22
  34. package/documents/SDF/CMSI_402/spring_2018/SoftwareRequirementsSpecification.md +0 -88
  35. package/documents/SDF/CMSI_402/spring_2018/homework/choe_eileen/Choe_Eileen_CMSI 402_HW1.pdf +0 -0
  36. package/documents/SDF/CMSI_402/spring_2018/homework/choe_eileen/Choe_Eileen_CMSI402_HW2.pdf +0 -0
  37. package/documents/SDF/CMSI_402/spring_2018/homework/shin_jen/402hw2.docx +0 -0
  38. package/documents/SDF/CMSI_402/spring_2018/homework/shin_jen/Jen - 402Hw1.docx +0 -0
  39. package/documents/SDF/CMSI_402/spring_2018/homework/shin_jen/Jen - hw3.docx +0 -0
  40. package/documents/SDF/CMSI_402/spring_2018/writtenStatusReport.docx +0 -0
  41. package/documents/SDF/CMSI_402/spring_2018/writtenStatusReport4 +0 -0
  42. package/documents/SDF/CMSI_402/spring_2020/Alexia Filler/Expression Database Schema.pdf +0 -0
  43. package/documents/SDF/CMSI_402/spring_2020/Alexia Filler/ExpressionDbLayoutImage.jpg +0 -0
  44. package/documents/SDF/CMSI_402/spring_2020/Alexia Filler/ExpressionDbLayoutImageSmall.jpg +0 -0
  45. package/documents/SDF/CMSI_402/spring_2020/Alexia Filler/Filler_Patterson_CMSI402_Poster.pptx +0 -0
  46. package/documents/SDF/CMSI_402/spring_2020/Alexia Filler/GRNsight Final Presentation.pdf +0 -0
  47. package/documents/SDF/CMSI_402/spring_2020/Alexia Filler/Project Proposal Doc.pdf +0 -0
  48. package/documents/SDF/CMSI_402/spring_2020/Alexia Filler/Project Proposal Presentation.pdf +0 -0
  49. package/documents/SDF/CMSI_402/spring_2020/Alexia Filler/Software Development Plan/GANTT Chart.xlsx +0 -0
  50. package/documents/SDF/CMSI_402/spring_2020/Alexia Filler/Software Development Plan/Software Development Plan.pdf +0 -0
  51. package/documents/SDF/CMSI_402/spring_2020/Alexia Filler/Software Development Plan (Updated)/GANTT Chart (Updated).xlsx +0 -0
  52. package/documents/SDF/CMSI_402/spring_2020/Alexia Filler/Software Development Plan (Updated)/Software Development Plan (Updated).pdf +0 -0
  53. package/documents/SDF/CMSI_402/spring_2020/Alexia Filler/Software Requirements Specification (Updated).pdf +0 -0
  54. package/documents/SDF/CMSI_402/spring_2020/Alexia Filler/Software Requirements Specification.pdf +0 -0
  55. package/documents/SDF/CMSI_402/spring_2020/Kevin Patterson/402 GANTT Chart - Sheet1.pdf +0 -0
  56. package/documents/SDF/CMSI_402/spring_2020/Kevin Patterson/402 GRNsight SDP.pdf +0 -0
  57. package/documents/SDF/CMSI_402/spring_2020/Kevin Patterson/402 SRS.pdf +0 -0
  58. package/documents/SDF/CMSI_402/spring_2020/Kevin Patterson/FINAL GRNSIGHT PRESENTATION.pdf +0 -0
  59. package/documents/SDF/CMSI_402/spring_2020/Kevin Patterson/GRNsight Presentation.pdf +0 -0
  60. package/documents/SDF/CMSI_402/spring_2020/Kevin Patterson/Project Proposal 402.pdf +0 -0
  61. package/documents/SDF/CMSI_402/spring_2020/Kevin Patterson/SDP Updated/402 GANTT Chart UPDATED - Sheet1.pdf +0 -0
  62. package/documents/SDF/CMSI_402/spring_2020/Kevin Patterson/SDP Updated/402 GRNsight SDP UPDATED.pdf +0 -0
  63. package/documents/SDF/CMSI_402/spring_2020/Kevin Patterson/SRS Update/402 SRS Final.pdf +0 -0
  64. package/documents/abstracts/Anguiano_Varshneya_Undergraduate-Research-Symposium_2017_abstract.pdf +0 -0
  65. package/documents/abstracts/Dahlquist_Dionisio_et-al_BOSC_2020_abstract.pdf +0 -0
  66. package/documents/abstracts/SIGGRAPH 2017 Abstract/ACM-Reference-Format.bst +0 -3478
  67. package/documents/abstracts/SIGGRAPH 2017 Abstract/Figure1_zoom100.png +0 -0
  68. package/documents/abstracts/SIGGRAPH 2017 Abstract/acmart.cls +0 -2352
  69. package/documents/abstracts/SIGGRAPH 2017 Abstract/acmart.ins +0 -29
  70. package/documents/abstracts/SIGGRAPH 2017 Abstract/always-weights.png +0 -0
  71. package/documents/abstracts/SIGGRAPH 2017 Abstract/auto.png +0 -0
  72. package/documents/abstracts/SIGGRAPH 2017 Abstract/networkA.png +0 -0
  73. package/documents/abstracts/SIGGRAPH 2017 Abstract/networkB-normalized.png +0 -0
  74. package/documents/abstracts/SIGGRAPH 2017 Abstract/networkB.png +0 -0
  75. package/documents/abstracts/SIGGRAPH 2017 Abstract/never-weights.png +0 -0
  76. package/documents/abstracts/SIGGRAPH 2017 Abstract/representative-image/screenshot.jpg +0 -0
  77. package/documents/abstracts/SIGGRAPH 2017 Abstract/representative-image/screenshot3x2.png +0 -0
  78. package/documents/abstracts/SIGGRAPH 2017 Abstract/representative-image/withweights3x2.png +0 -0
  79. package/documents/abstracts/SIGGRAPH 2017 Abstract/screenshot-auto.png +0 -0
  80. package/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.bib +0 -85
  81. package/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.pdf +0 -0
  82. package/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.tex +0 -235
  83. package/documents/abstracts/SWE Collegiate Competition 2017.md +0 -9
  84. package/documents/abstracts/Samdarshi_GRNsight_SoCalSysBio_Abstract_2019.docx +0 -0
  85. package/documents/abstracts/Varshneya_Samdarshi_Southern-California-Systems-Biology_2017_abstract.docx +0 -0
  86. package/documents/abstracts/~$mdarshi_SoCalSysBio_Abstract_2019.docx +0 -0
  87. package/documents/developer_documents/State Diagram.graphml +0 -3525
  88. package/documents/developer_documents/graphml/State Diagram.graphml +0 -3115
  89. package/documents/developer_documents/older_versions/GRNsight State Diagram old.png +0 -0
  90. package/documents/developer_documents/older_versions/GRNsight State Diagram.png +0 -0
  91. package/documents/developer_documents/testing_script_generator/GRNsightTestingDocument.md +0 -1016
  92. package/documents/developer_documents/testing_script_generator/edgeFeatures.json +0 -178
  93. package/documents/developer_documents/testing_script_generator/fileFeatures.json +0 -100
  94. package/documents/developer_documents/testing_script_generator/layoutFeatures.json +0 -166
  95. package/documents/developer_documents/testing_script_generator/nodeFeatures.json +0 -195
  96. package/documents/developer_documents/testing_script_generator/speciesFeatures.json +0 -30
  97. package/documents/developer_documents/testing_script_generator/testing-script-generator.js +0 -172
  98. package/documents/developer_documents/testing_script_generator/viewFeatures.json +0 -82
  99. package/documents/developer_documents/testing_script_generator/viewportFeatures.json +0 -50
  100. package/documents/manuscripts/peerj-computerscience-2016/GRNsight_PeerJ-CS_conference-presentations_2016.docx +0 -0
  101. package/documents/manuscripts/peerj-computerscience-2016/GRNsight_PeerJ-CS_manuscript_2016.docx +0 -0
  102. package/documents/manuscripts/peerj-computerscience-2016/GRNsight_PeerJ-CS_manuscript_2016_Table1.docx +0 -0
  103. package/documents/manuscripts/peerj-computerscience-2016/GRNsight_PeerJ-CS_manuscript_2016_references.rtf +0 -264
  104. package/documents/manuscripts/peerj-computerscience-2016/GRNsight_PeerJ-CS_manuscript_2016_text-only.docx +0 -0
  105. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/21-genes_31-edges_Schade-data_for-screenshots.xlsx +0 -0
  106. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure1_zoom100.jpg +0 -0
  107. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure1_zoom100.png +0 -0
  108. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure1_zoom100.psd +0 -0
  109. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure1_zoom145.jpg +0 -0
  110. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure1_zoom145.png +0 -0
  111. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure1_zoom145.psd +0 -0
  112. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure1_zoom145_900pix-wide.psd +0 -0
  113. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure2_zoom100.jpg +0 -0
  114. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure2_zoom100.png +0 -0
  115. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure2_zoom100.psd +0 -0
  116. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure2_zoom145.jpg +0 -0
  117. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure2_zoom145.png +0 -0
  118. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure2_zoom145.psd +0 -0
  119. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure2_zoom145_900pix-wide.psd +0 -0
  120. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure5A.pdf +0 -0
  121. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure5B.pdf +0 -0
  122. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure5C.eps +0 -0
  123. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure5D.pdf +0 -0
  124. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure5E.pdf +0 -0
  125. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure5F.eps +0 -0
  126. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure5_compiled.png +0 -0
  127. package/documents/manuscripts/peerj-computerscience-2016/figures/submitted-versions/Figure1_zoom145_900pix-wide.png +0 -0
  128. package/documents/manuscripts/peerj-computerscience-2016/figures/submitted-versions/Figure2_zoom145_900pix-wide.png +0 -0
  129. package/documents/manuscripts/peerj-computerscience-2016/figures/submitted-versions/Figure3_GRNsight-Architecture.pdf +0 -0
  130. package/documents/manuscripts/peerj-computerscience-2016/figures/submitted-versions/Figure4_GRNsight-Screenshot.pdf +0 -0
  131. package/documents/manuscripts/peerj-computerscience-2016/figures/submitted-versions/Figure5_compiled.pdf +12 -5383
  132. package/documents/manuscripts/peerj-computerscience-2016/peerj-reviewing-10823-v0.pdf +0 -0
  133. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_conference-presentations_2016_revised.docx +0 -0
  134. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_cover-letter-and-response_2016.pdf +0 -0
  135. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_cover-letter_2016.docx +0 -0
  136. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_cover-letter_2016.pdf +0 -0
  137. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_manuscript_2016_Table1.docx +0 -0
  138. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_manuscript_2016_references_revised.rtf +0 -385
  139. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_manuscript_2016_text-only_revised.docx +0 -0
  140. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_manuscript_2016_text-only_revised_marked.docx +0 -0
  141. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_response-to-reviewers_2016.docx +0 -0
  142. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_response-to-reviewers_2016.pdf +0 -0
  143. package/documents/manuscripts/peerj-computerscience-2016/revisions/figures/Figure3_GRNsight-Architecture.pdf +0 -0
  144. package/documents/manuscripts/peerj-computerscience-2016/revisions/figures/Figure4_GRNsight-Screenshot-auto.pdf +0 -0
  145. package/documents/manuscripts/peerj-computerscience-2016/revisions/figures/Figure4_GRNsight-Screenshot.pdf +0 -0
  146. package/documents/manuscripts/peerj-computerscience-2016/revisions/peerj-reviewing-10823-v1.pdf +0 -0
  147. package/documents/posters/Anguiano_CMSI402_2017.pptx +0 -0
  148. package/documents/posters/Anguiano_Varshneya_LMU-Symposium_2015.pptx +0 -0
  149. package/documents/posters/Anguiano_Varshneya_SCCUR_2014.pptx +0 -0
  150. package/documents/posters/Choe_Shin_CMSI402_2018.pptx +0 -0
  151. package/documents/posters/Dahlquist-et-al_BOSC_ISMB_2016_poster.pptx +0 -0
  152. package/documents/posters/Filler_Patterson_CMSI402_Poster.pptx +0 -0
  153. package/documents/posters/Igbinedion_Green_Mersaghian_LMU_SYMPOSIUM_2021.pptx +0 -0
  154. package/documents/posters/Lopez_Filler_LMU_Symposium_2019.pdf +0 -0
  155. package/documents/posters/Lopez_Filler_LMU_Symposium_2019.pptx +0 -0
  156. package/documents/posters/Samdarshi-et-al_LMU-Symposium_2017.pptx +0 -0
  157. package/documents/posters/Samdarshi-et-al_LMU-Symposium_2018.pptx +0 -0
  158. package/documents/posters/Samdarshi-et-al_SoCalSysBio_2019.pptx +0 -0
  159. package/documents/posters/Shin-et-al_SCCUR_2017.pptx +0 -0
  160. package/documents/posters/Southwick_CMSI402_2014.pptx +0 -0
  161. package/documents/posters/Varshneya_Samdarshi_LMU-Symposium_2016.pptx +0 -0
  162. package/documents/posters/Varshneya_Samdarshi_SoCalSysBio_2017.pptx +0 -0
  163. package/documents/presentations/Anguiano_402_Final_Presentation.pptx +0 -0
  164. package/documents/presentations/Choe_SWERapidFire2017_final.pptx +0 -0
  165. package/documents/presentations/Dahlquist_BCC2020_20200720_talk.pptx +0 -0
  166. package/documents/presentations/Dahlquist_BOSC_20160709.pptx +0 -0
  167. package/documents/presentations/Dahlquist_ExperimentalBiology_20160404_talk.pptx +0 -0
  168. package/documents/presentations/Dahlquist_GRNsight_BCC2020_20200720_lightning-talk_video.mp4 +0 -0
  169. package/documents/presentations/Dahlquist_SoCalSysBio_20150131_talk.pptx +0 -0
  170. package/documents/presentations/Filler_Patterson_CMSI402_Presentation_20200501.pdf +0 -0
  171. package/documents/presentations/Filler_Patterson_LMU-Symposium_20200418_talk.pdf +0 -0
  172. package/documents/presentations/Samdarshi_LMU-Symposium_20190323_talk.pdf +0 -0
  173. package/documents/presentations/Samdarshi_LMU-Symposium_20190323_talk.pptx +0 -0
  174. package/documents/presentations/Southwick_Anguiano_LMU-Symposium_20140329_talk.pptx +0 -0
  175. package/documents/presentations/Southwick_CMSI402_Presentation_20140508_talk.pptx +0 -0
  176. package/documents/presentations/Varshneya_Anguiano_LMU-Symposium_201703_talk.pptx +0 -0
  177. package/documents/reports/Samdarshi_Mihir_2019/Samdarshi_2019_Final.docx +0 -0
  178. package/documents/reports/Samdarshi_Mihir_2019/Samdarshi_Mihir_2019_AnnotatedBibliography.docx +0 -0
  179. package/documents/reports/Samdarshi_Mihir_2019/Samdarshi_Mihir_2019_Outline.docx +0 -0
  180. package/documents/reports/Samdarshi_Mihir_2019/~$mdarshi_2019_Draft.docx +0 -0
  181. package/documents/reports/Samdarshi_Mihir_2019/~$mdarshi_2019_Final_Paper_Draft.docx +0 -0
  182. package/documents/reports/Varshneya_Anu_2017/Varshneya-201701-AnnotatedBibliography.docx +0 -0
  183. package/documents/reports/Varshneya_Anu_2017/Varshneya-201702-Introduction.docx +0 -0
  184. package/documents/reports/Varshneya_Anu_2017/Varshneya-201702-Outline.docx +0 -0
  185. package/documents/reports/Varshneya_Anu_2017/Varshneya-201703-Discussion.docx +0 -0
  186. package/documents/reports/Varshneya_Anu_2017/Varshneya-201703-MMResults.docx +0 -0
  187. package/documents/reports/Varshneya_Anu_2017/Varshneya-201704-Draft-1.docx +0 -0
  188. package/documents/reports/Varshneya_Anu_2017/Varshneya-201704-Final.docx +0 -0
  189. package/onlysidebar.html +0 -8
@@ -1,2352 +0,0 @@
1
- %%
2
- %% This is file `acmart.cls',
3
- %% generated with the docstrip utility.
4
- %%
5
- %% The original source files were:
6
- %%
7
- %% acmart.dtx (with options: `class')
8
- %%
9
- %% IMPORTANT NOTICE:
10
- %%
11
- %% For the copyright see the source file.
12
- %%
13
- %% Any modified versions of this file must be renamed
14
- %% with new filenames distinct from acmart.cls.
15
- %%
16
- %% For distribution of the original source see the terms
17
- %% for copying and modification in the file acmart.dtx.
18
- %%
19
- %% This generated file may be distributed as long as the
20
- %% original source files, as listed above, are part of the
21
- %% same distribution. (The sources need not necessarily be
22
- %% in the same archive or directory.)
23
- %% \CharacterTable
24
- %% {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
25
- %% 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
26
- %% Digits \0\1\2\3\4\5\6\7\8\9
27
- %% Exclamation \! Double quote \" Hash (number) \#
28
- %% Dollar \$ Percent \% Ampersand \&
29
- %% Acute accent \' Left paren \( Right paren \)
30
- %% Asterisk \* Plus \+ Comma \,
31
- %% Minus \- Point \. Solidus \/
32
- %% Colon \: Semicolon \; Less than \<
33
- %% Equals \= Greater than \> Question mark \?
34
- %% Commercial at \@ Left bracket \[ Backslash \\
35
- %% Right bracket \] Circumflex \^ Underscore \_
36
- %% Grave accent \` Left brace \{ Vertical bar \|
37
- %% Right brace \} Tilde \~}
38
- \NeedsTeXFormat{LaTeX2e}
39
- \ProvidesClass{acmart}
40
- [2017/04/09 v1.34 Typesetting articles for Association of
41
- Computing Machinery]
42
- \def\@classname{acmart}
43
- \InputIfFileExists{acmart-preload-hook.tex}{%
44
- \ClassWarning{\@classname}{%
45
- I am loading acmart-preload-hook.tex. You are fully responsible
46
- for any problems from now on.}}{}
47
- \RequirePackage{xkeyval}
48
- \define@choicekey*+{acmart.cls}{format}[\ACM@format\ACM@format@nr]{%
49
- manuscript, acmsmall, acmlarge, acmtog, sigconf, siggraph,
50
- sigplan, sigchi, sigchi-a}[manuscript]{}{%
51
- \ClassError{\@classname}{The option format must be manuscript,
52
- acmsmall, acmlarge, acmtog, sigconf, siggraph,
53
- sigplan, sigchi or sigchi-a}}
54
- \def\@DeclareACMFormat#1{\DeclareOptionX{#1}{\setkeys{acmart.cls}{format=#1}}}
55
- \@DeclareACMFormat{manuscript}
56
- \@DeclareACMFormat{acmsmall}
57
- \@DeclareACMFormat{acmlarge}
58
- \@DeclareACMFormat{acmtog}
59
- \@DeclareACMFormat{sigconf}
60
- \@DeclareACMFormat{siggraph}
61
- \@DeclareACMFormat{sigplan}
62
- \@DeclareACMFormat{sigchi}
63
- \@DeclareACMFormat{sigchi-a}
64
- \ExecuteOptionsX{format}
65
- \define@boolkey+{acmart.cls}[@ACM@]{screen}[true]{%
66
- \if@ACM@screen
67
- \PackageInfo{\@classname}{Using screen mode}%
68
- \else
69
- \PackageInfo{\@classname}{Not using screen mode}%
70
- \fi}{\PackageError{\@classname}{Option screen can be either true or
71
- false}}
72
- \ExecuteOptionsX{screen=false}
73
- \define@boolkey+{acmart.cls}[@ACM@]{review}[true]{%
74
- \if@ACM@review
75
- \PackageInfo{\@classname}{Using review mode}%
76
- \else
77
- \PackageInfo{\@classname}{Not using review mode}%
78
- \fi}{\PackageError{\@classname}{Option review can be either true or
79
- false}}
80
- \ExecuteOptionsX{review=false}
81
- \define@boolkey+{acmart.cls}[@ACM@]{authorversion}[true]{%
82
- \if@ACM@authorversion
83
- \PackageInfo{\@classname}{Using authorversion mode}%
84
- \else
85
- \PackageInfo{\@classname}{Not using authorversion mode}%
86
- \fi}{\PackageError{\@classname}{Option authorversion can be either true or
87
- false}}
88
- \ExecuteOptionsX{authorversion=false}
89
- \define@boolkey+{acmart.cls}[@ACM@]{natbib}[true]{%
90
- \if@ACM@natbib
91
- \PackageInfo{\@classname}{Explicitly selecting natbib mode}%
92
- \else
93
- \PackageInfo{\@classname}{Explicitly deselecting natbib mode}%
94
- \fi}{\PackageError{\@classname}{Option natbib can be either true or
95
- false}}
96
- \ExecuteOptionsX{natbib=true}
97
- \define@boolkey+{acmart.cls}[@ACM@]{anonymous}[true]{%
98
- \if@ACM@anonymous
99
- \PackageInfo{\@classname}{Using anonymous mode}%
100
- \else
101
- \PackageInfo{\@classname}{Not using anonymous mode}%
102
- \fi}{\PackageError{\@classname}{Option anonymous can be either true or
103
- false}}
104
- \ExecuteOptionsX{anonymous=false}
105
- \define@boolkey+{acmart.cls}[@ACM@]{timestamp}[true]{%
106
- \if@ACM@timestamp
107
- \PackageInfo{\@classname}{Using timestamp mode}%
108
- \else
109
- \PackageInfo{\@classname}{Not using timestamp mode}%
110
- \fi}{\PackageError{\@classname}{Option timestamp can be either true or
111
- false}}
112
- \ExecuteOptionsX{timestamp=false}
113
- \define@boolkey+{acmart.cls}[@ACM@]{authordraft}[true]{%
114
- \if@ACM@authordraft
115
- \PackageInfo{\@classname}{Using authordraft mode}%
116
- \@ACM@timestamptrue
117
- \@ACM@reviewtrue
118
- \else
119
- \PackageInfo{\@classname}{Not using authordraft mode}%
120
- \fi}{\PackageError{\@classname}{Option authordraft can be either true or
121
- false}}
122
- \ExecuteOptionsX{timestamp=false}
123
- \def\ACM@fontsize{}
124
- \DeclareOptionX{9pt}{\edef\ACM@fontsize{\CurrentOption}}
125
- \DeclareOptionX{10pt}{\edef\ACM@fontsize{\CurrentOption}}
126
- \DeclareOptionX{11pt}{\edef\ACM@fontsize{\CurrentOption}}
127
- \DeclareOptionX{12pt}{\edef\ACM@fontsize{\CurrentOption}}
128
- \DeclareOptionX{draft}{\PassOptionsToClass{\CurrentOption}{amsart}}
129
- \DeclareOptionX{*}{\PassOptionsToClass{\CurrentOption}{amsart}}
130
- \ProcessOptionsX
131
- \ClassInfo{\@classname}{Using format \ACM@format, number \ACM@format@nr}
132
- \newif\if@ACM@manuscript
133
- \newif\if@ACM@journal
134
- \newif\if@ACM@sigchiamode
135
- \ifnum\ACM@format@nr=5\relax % siggraph
136
- \ClassWarning{\@classname}{The format `siggraph' is now obsolete.
137
- I am switching to sigconf.}
138
- \setkeys{acmart.cls}{format=sigconf}
139
- \fi
140
- \ifnum\ACM@format@nr=0\relax
141
- \@ACM@manuscripttrue
142
- \else
143
- \@ACM@manuscriptfalse
144
- \fi
145
- \@ACM@sigchiamodefalse
146
- \ifcase\ACM@format@nr
147
- \relax % manuscript
148
- \@ACM@journaltrue
149
- \or % acmsmall
150
- \@ACM@journaltrue
151
- \or % acmlarge
152
- \@ACM@journaltrue
153
- \or % acmtog
154
- \@ACM@journaltrue
155
- \or % sigconf
156
- \@ACM@journalfalse
157
- \or % siggraph
158
- \@ACM@journalfalse
159
- \or % sigplan
160
- \@ACM@journalfalse
161
- \or % sigchi
162
- \@ACM@journalfalse
163
- \or % sigchi-a
164
- \@ACM@journalfalse
165
- \@ACM@sigchiamodetrue
166
- \fi
167
- \ifx\ACM@fontsize\@empty
168
- \ifcase\ACM@format@nr
169
- \relax % manuscript
170
- \def\ACM@fontsize{9pt}%
171
- \or % acmsmall
172
- \def\ACM@fontsize{10pt}%
173
- \or % acmlarge
174
- \def\ACM@fontsize{10pt}%
175
- \or % acmtog
176
- \def\ACM@fontsize{9pt}%
177
- \or % sigconf
178
- \def\ACM@fontsize{9pt}%
179
- \or % siggraph
180
- \def\ACM@fontsize{9pt}%
181
- \or % sigplan
182
- \def\ACM@fontsize{9pt}%
183
- \or % sigchi
184
- \def\ACM@fontsize{10pt}%
185
- \or % sigchi-a
186
- \def\ACM@fontsize{10pt}%
187
- \fi
188
- \fi
189
- \ClassInfo{\@classname}{Using fontsize \ACM@fontsize}
190
- \LoadClass[\ACM@fontsize, reqno]{amsart}
191
- \RequirePackage{microtype}
192
- \RequirePackage{totpages}
193
- \RequirePackage{environ}
194
- \if@ACM@manuscript
195
- \RequirePackage{setspace}
196
- \onehalfspacing
197
- \fi
198
- \if@ACM@natbib
199
- \RequirePackage{natbib}
200
- \renewcommand{\bibsection}{%
201
- \section*{\refname}%
202
- \phantomsection\addcontentsline{toc}{section}{\refname}%
203
- }
204
- \renewcommand{\bibfont}{\bibliofont}
205
- \renewcommand\setcitestyle[1]{
206
- \@for\@tempa:=#1\do
207
- {\def\@tempb{round}\ifx\@tempa\@tempb
208
- \renewcommand\NAT@open{(}\renewcommand\NAT@close{)}\fi
209
- \def\@tempb{square}\ifx\@tempa\@tempb
210
- \renewcommand\NAT@open{[}\renewcommand\NAT@close{]}\fi
211
- \def\@tempb{angle}\ifx\@tempa\@tempb
212
- \renewcommand\NAT@open{$<$}\renewcommand\NAT@close{$>$}\fi
213
- \def\@tempb{curly}\ifx\@tempa\@tempb
214
- \renewcommand\NAT@open{\{}\renewcommand\NAT@close{\}}\fi
215
- \def\@tempb{semicolon}\ifx\@tempa\@tempb
216
- \renewcommand\NAT@sep{;}\fi
217
- \def\@tempb{colon}\ifx\@tempa\@tempb
218
- \renewcommand\NAT@sep{;}\fi
219
- \def\@tempb{comma}\ifx\@tempa\@tempb
220
- \renewcommand\NAT@sep{,}\fi
221
- \def\@tempb{authoryear}\ifx\@tempa\@tempb
222
- \NAT@numbersfalse\fi
223
- \def\@tempb{numbers}\ifx\@tempa\@tempb
224
- \NAT@numberstrue\NAT@superfalse\fi
225
- \def\@tempb{super}\ifx\@tempa\@tempb
226
- \NAT@numberstrue\NAT@supertrue\fi
227
- \def\@tempb{nobibstyle}\ifx\@tempa\@tempb
228
- \let\bibstyle=\@gobble\fi
229
- \def\@tempb{bibstyle}\ifx\@tempa\@tempb
230
- \let\bibstyle=\@citestyle\fi
231
- \def\@tempb{sort}\ifx\@tempa\@tempb
232
- \def\NAT@sort{\@ne}\fi
233
- \def\@tempb{nosort}\ifx\@tempa\@tempb
234
- \def\NAT@sort{\z@}\fi
235
- \def\@tempb{compress}\ifx\@tempa\@tempb
236
- \def\NAT@cmprs{\@ne}\fi
237
- \def\@tempb{nocompress}\ifx\@tempa\@tempb
238
- \def\NAT@cmprs{\@z}\fi
239
- \def\@tempb{sort&compress}\ifx\@tempa\@tempb
240
- \def\NAT@sort{\@ne}\def\NAT@cmprs{\@ne}\fi
241
- \def\@tempb{mcite}\ifx\@tempa\@tempb
242
- \let\NAT@merge\@ne\fi
243
- \def\@tempb{merge}\ifx\@tempa\@tempb
244
- \@ifnum{\NAT@merge<\tw@}{\let\NAT@merge\tw@}{}\fi
245
- \def\@tempb{elide}\ifx\@tempa\@tempb
246
- \@ifnum{\NAT@merge<\thr@@}{\let\NAT@merge\thr@@}{}\fi
247
- \def\@tempb{longnamesfirst}\ifx\@tempa\@tempb
248
- \NAT@longnamestrue\fi
249
- \def\@tempb{nonamebreak}\ifx\@tempa\@tempb
250
- \def\NAT@nmfmt#1{\mbox{\NAT@up#1}}\fi
251
- \expandafter\NAT@find@eq\@tempa=\relax\@nil
252
- \if\@tempc\relax\else
253
- \expandafter\NAT@rem@eq\@tempc
254
- \def\@tempb{open}\ifx\@tempa\@tempb
255
- \xdef\NAT@open{\@tempc}\fi
256
- \def\@tempb{close}\ifx\@tempa\@tempb
257
- \xdef\NAT@close{\@tempc}\fi
258
- \def\@tempb{aysep}\ifx\@tempa\@tempb
259
- \xdef\NAT@aysep{\@tempc}\fi
260
- \def\@tempb{yysep}\ifx\@tempa\@tempb
261
- \xdef\NAT@yrsep{\@tempc}\fi
262
- \def\@tempb{notesep}\ifx\@tempa\@tempb
263
- \xdef\NAT@cmt{\@tempc}\fi
264
- \def\@tempb{citesep}\ifx\@tempa\@tempb
265
- \xdef\NAT@sep{\@tempc}\fi
266
- \fi
267
- }%
268
- \NAT@@setcites
269
- }
270
- \renewcommand\citestyle[1]{%
271
- \ifcsname bibstyle@#1\endcsname%
272
- \csname bibstyle@#1\endcsname\let\bibstyle\@gobble%
273
- \else%
274
- \@latex@error{Undefined `#1' citestyle}%
275
- \fi
276
- }%
277
- \fi
278
- \newcommand{\bibstyle@acmauthoryear}{%
279
- \setcitestyle{%
280
- authoryear,%
281
- open={(},close={)},citesep={;},%
282
- aysep={},yysep={,},%
283
- notesep={, }}}
284
- \newcommand{\bibstyle@acmnumeric}{%
285
- \setcitestyle{%
286
- numbers,sort&compress,%
287
- open={[},close={]},citesep={,},%
288
- notesep={, }}}
289
- \if@ACM@natbib
290
- \citestyle{acmnumeric}
291
- \fi
292
- \def\@startsection#1#2#3#4#5#6{%
293
- \if@noskipsec \leavevmode \fi
294
- \par
295
- \@tempskipa #4\relax
296
- \@afterindenttrue
297
- \ifdim \@tempskipa <\z@
298
- \@tempskipa -\@tempskipa \@afterindentfalse
299
- \fi
300
- \if@nobreak
301
- \everypar{}%
302
- \else
303
- \addpenalty\@secpenalty\addvspace\@tempskipa
304
- \fi
305
- \@ifstar
306
- {\@ssect{#3}{#4}{#5}{#6}}%
307
- {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
308
- \def\@sect#1#2#3#4#5#6[#7]#8{%
309
- \edef\@toclevel{\ifnum#2=\@m 0\else\number#2\fi}%
310
- \ifnum #2>\c@secnumdepth
311
- \let\@svsec\@empty
312
- \else
313
- \refstepcounter{#1}%
314
- \protected@edef\@svsec{\@seccntformat{#1}\relax}%
315
- \fi
316
- \@tempskipa #5\relax
317
- \ifdim \@tempskipa>\z@
318
- \begingroup
319
- #6{%
320
- \@hangfrom{\hskip #3\relax\@svsec}%
321
- \interlinepenalty \@M #8\@@par}%
322
- \endgroup
323
- \csname #1mark\endcsname{#7}%
324
- \ifnum #2>\c@secnumdepth \else
325
- \@tochangmeasure{\csname the#1\endcsname}%
326
- \fi
327
- \addcontentsline{toc}{#1}{%
328
- \ifnum #2>\c@secnumdepth \else
329
- \protect\numberline{\csname the#1\endcsname}%
330
- \fi
331
- #7}%
332
- \else
333
- \def\@svsechd{%
334
- #6{\hskip #3\relax
335
- \@svsec #8}%
336
- \csname #1mark\endcsname{#7}%
337
- \ifnum #2>\c@secnumdepth \else
338
- \@tochangmeasure{\csname the#1\endcsname\space}%
339
- \fi
340
- \addcontentsline{toc}{#1}{%
341
- \ifnum #2>\c@secnumdepth \else
342
- \protect\numberline{\csname the#1\endcsname}%
343
- \fi
344
- #7}}%
345
- \fi
346
- \@xsect{#5}}
347
- \def\@xsect#1{%
348
- \@tempskipa #1\relax
349
- \ifdim \@tempskipa>\z@
350
- \par \nobreak
351
- \vskip \@tempskipa
352
- \@afterheading
353
- \else
354
- \@nobreakfalse
355
- \global\@noskipsectrue
356
- \everypar{%
357
- \if@noskipsec
358
- \global\@noskipsecfalse
359
- {\setbox\z@\lastbox}%
360
- \clubpenalty\@M
361
- \begingroup \@svsechd \endgroup
362
- \unskip
363
- \@tempskipa #1\relax
364
- \hskip -\@tempskipa
365
- \else
366
- \clubpenalty \@clubpenalty
367
- \everypar{}%
368
- \fi}%
369
- \fi
370
- \ignorespaces}
371
- \def\@seccntformat#1{\csname the#1\endcsname\quad}
372
- \def\@ssect#1#2#3#4#5{%
373
- \@tempskipa #3\relax
374
- \ifdim \@tempskipa>\z@
375
- \begingroup
376
- #4{%
377
- \@hangfrom{\hskip #1}%
378
- \interlinepenalty \@M #5\@@par}%
379
- \endgroup
380
- \else
381
- \def\@svsechd{#4{\hskip #1\relax #5}}%
382
- \fi
383
- \@xsect{#3}}
384
- \def\@starttoc#1#2{\begingroup
385
- \setTrue{#1}%
386
- \par\removelastskip\vskip\z@skip
387
- \@startsection{section}\@M\z@{\linespacing\@plus\linespacing}%
388
- {.5\linespacing}{\centering\contentsnamefont}{#2}%
389
- \@input{\jobname.#1}%
390
- \if@filesw
391
- \@xp\newwrite\csname tf@#1\endcsname
392
- \immediate\@xp\openout\csname tf@#1\endcsname \jobname.#1\relax
393
- \fi
394
- \global\@nobreakfalse \endgroup
395
- \addvspace{32\p@\@plus14\p@}%
396
- }
397
- \def\l@subsection{\@tocline{2}{0pt}{1pc}{3pc}{}}
398
- \def\l@subsubsection{\@tocline{2}{0pt}{1pc}{5pc}{}}
399
- \let\@footnotemark@nolink\@footnotemark
400
- \let\@footnotetext@nolink\@footnotetext
401
- \RequirePackage[bookmarksnumbered,unicode]{hyperref}
402
- \pdfstringdefDisableCommands{%
403
- \def\unskip{}%
404
- \def\textbullet{- }%
405
- \def\textrightarrow{ -> }%
406
- \def\footnotemark{}%
407
- }
408
- \urlstyle{rm}
409
- \ifcase\ACM@format@nr
410
- \relax % manuscript
411
- \or % acmsmall
412
- \or % acmlarge
413
- \or % acmtog
414
- \or % sigconf
415
- \or % siggraph
416
- \or % sigplan
417
- \urlstyle{sf}
418
- \or % sigchi
419
- \or % sigchi-a
420
- \urlstyle{sf}
421
- \fi
422
- \if@ACM@screen
423
- \hypersetup{colorlinks,
424
- linkcolor=ACMRed,
425
- citecolor=ACMPurple,
426
- urlcolor=ACMDarkBlue,
427
- filecolor=ACMDarkBlue}
428
- \else
429
- \hypersetup{hidelinks}
430
- \fi
431
- \if@ACM@natbib
432
- \let\citeN\cite
433
- \let\cite\citep
434
- \let\citeANP\citeauthor
435
- \let\citeNN\citeyearpar
436
- \let\citeyearNP\citeyear
437
- \let\citeyear\citeyearpar
438
- \let\citeNP\citealt
439
- \DeclareRobustCommand\citeA
440
- {\begingroup\NAT@swafalse
441
- \let\NAT@ctype\@ne\NAT@partrue\NAT@fullfalse\NAT@open\NAT@citetp}%
442
- \providecommand\newblock{}%
443
- \else
444
- \AtBeginDocument{%
445
- \let\shortcite\cite%
446
- \providecommand\citename[1]{#1}}
447
- \fi
448
- \newcommand\shortcite[2][]{%
449
- \ifNAT@numbers\cite[#1]{#2}\else\citeyear[#1]{#2}\fi}
450
- \def\bibliographystyle#1{%
451
- \ifx\@begindocumenthook\@undefined\else
452
- \expandafter\AtBeginDocument
453
- \fi
454
- {\if@filesw
455
- \immediate\write\@auxout{\string\bibstyle{#1}}%
456
- \fi}}
457
- \RequirePackage{graphicx, xcolor}
458
- \definecolor[named]{ACMBlue}{cmyk}{1,0.1,0,0.1}
459
- \definecolor[named]{ACMYellow}{cmyk}{0,0.16,1,0}
460
- \definecolor[named]{ACMOrange}{cmyk}{0,0.42,1,0.01}
461
- \definecolor[named]{ACMRed}{cmyk}{0,0.90,0.86,0}
462
- \definecolor[named]{ACMLightBlue}{cmyk}{0.49,0.01,0,0}
463
- \definecolor[named]{ACMGreen}{cmyk}{0.20,0,1,0.19}
464
- \definecolor[named]{ACMPurple}{cmyk}{0.55,1,0,0.15}
465
- \definecolor[named]{ACMDarkBlue}{cmyk}{1,0.58,0,0.21}
466
- \if@ACM@authordraft
467
- \RequirePackage{draftwatermark}
468
- \SetWatermarkFontSize{0.5in}
469
- \SetWatermarkColor[gray]{.9}
470
- \SetWatermarkText{\parbox{12em}{\centering
471
- Unpublished working draft\\
472
- Not for distribution}}
473
- \fi
474
- \RequirePackage{geometry}
475
- \ifcase\ACM@format@nr
476
- \relax % manuscript
477
- \geometry{letterpaper,head=13pt,
478
- marginparwidth=6pc}%
479
- \or % acmsmall
480
- \geometry{twoside=true,
481
- includeheadfoot, head=13pt, foot=2pc,
482
- paperwidth=6.75in, paperheight=10in,
483
- top=58pt, bottom=44pt, inner=46pt, outer=46pt,
484
- marginparwidth=2pc
485
- }%
486
- \or % acmlarge
487
- \geometry{twoside=true, head=13pt, foot=2pc,
488
- paperwidth=8.5in, paperheight=11in,
489
- includeheadfoot,
490
- top=78pt, bottom=114pt, inner=81pt, outer=81pt,
491
- marginparwidth=4pc
492
- }%
493
- \or % acmtog
494
- \geometry{twoside=true, head=13pt, foot=2pc,
495
- paperwidth=8.5in, paperheight=11in,
496
- includeheadfoot, columnsep=24pt,
497
- top=52pt, bottom=75pt, inner=52pt, outer=52pt,
498
- marginparwidth=2pc
499
- }%
500
- \or % sigconf
501
- \geometry{twoside=true, head=13pt,
502
- paperwidth=8.5in, paperheight=11in,
503
- includeheadfoot, columnsep=2pc,
504
- top=57pt, bottom=73pt, inner=54pt, outer=54pt,
505
- marginparwidth=2pc
506
- }%
507
- \or % siggraph
508
- \geometry{twoside=true, head=13pt,
509
- paperwidth=8.5in, paperheight=11in,
510
- includeheadfoot, columnsep=2pc,
511
- top=57pt, bottom=73pt, inner=54pt, outer=54pt,
512
- marginparwidth=2pc
513
- }%
514
- \or % sigplan
515
- \geometry{twoside=true, head=13pt,
516
- paperwidth=8.5in, paperheight=11in,
517
- includeheadfoot=false, columnsep=2pc,
518
- top=1in, bottom=1in, inner=0.75in, outer=0.75in,
519
- marginparwidth=2pc
520
- }%
521
- \or % sigchi
522
- \geometry{twoside=true, head=13pt,
523
- paperwidth=8.5in, paperheight=11in,
524
- includeheadfoot, columnsep=2pc,
525
- top=66pt, bottom=73pt, inner=54pt, outer=54pt,
526
- marginparwidth=2pc
527
- }%
528
- \or % sigchi-a
529
- \geometry{twoside=false, head=13pt,
530
- paperwidth=11in, paperheight=8.5in,
531
- includeheadfoot, marginparsep=72pt,
532
- marginparwidth=170pt, columnsep=20pt,
533
- top=72pt, bottom=72pt, left=314pt, right=72pt
534
- }%
535
- \@mparswitchfalse
536
- \reversemarginpar
537
- \fi
538
- \setlength\parindent{10\p@}
539
- \setlength\parskip{\z@}
540
- \ifcase\ACM@format@nr
541
- \relax % manuscript
542
- \or % acmsmall
543
- \or % acmlarge
544
- \or % acmtog
545
- \setlength\parindent{9\p@}%
546
- \or % sigconf
547
- \or % siggraph
548
- \or % sigplan
549
- \or % sigchi
550
- \or % sigchi-a
551
- \fi
552
- \def\copyrightpermissionfootnoterule{\kern-3\p@
553
- \hrule \@width \columnwidth \kern 2.6\p@}
554
- \RequirePackage{manyfoot}
555
- \SelectFootnoteRule[2]{copyrightpermission}
556
- \DeclareNewFootnote{copyrightpermission}
557
- \def\footnoterule{\kern-3\p@
558
- \hrule \@width 4pc \kern 2.6\p@}
559
- \def\endminipage{%
560
- \par
561
- \unskip
562
- \ifvoid\@mpfootins\else
563
- \vskip\skip\@mpfootins
564
- \normalcolor
565
- \unvbox\@mpfootins
566
- \fi
567
- \@minipagefalse %% added 24 May 89
568
- \color@endgroup
569
- \egroup
570
- \expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}}
571
- \def\@makefntext{\noindent\@makefnmark}
572
- \if@ACM@sigchiamode
573
- \long\def\@footnotetext#1{\marginpar{%
574
- \reset@font\small
575
- \interlinepenalty\interfootnotelinepenalty
576
- \protected@edef\@currentlabel{%
577
- \csname p@footnote\endcsname\@thefnmark
578
- }%
579
- \color@begingroup
580
- \@makefntext{%
581
- \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
582
- \color@endgroup}}%
583
- \fi
584
- \long\def\@mpfootnotetext#1{%
585
- \global\setbox\@mpfootins\vbox{%
586
- \unvbox\@mpfootins
587
- \reset@font\footnotesize
588
- \hsize\columnwidth
589
- \@parboxrestore
590
- \protected@edef\@currentlabel
591
- {\csname p@mpfootnote\endcsname\@thefnmark}%
592
- \color@begingroup\centering
593
- \@makefntext{%
594
- \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
595
- \color@endgroup}}
596
- \def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}
597
- \def\@textbottom{\vskip \z@ \@plus 1pt}
598
- \let\@texttop\relax
599
- \RequirePackage{iftex}
600
- \ifPDFTeX
601
- \input{glyphtounicode}
602
- \pdfgentounicode=1
603
- \fi
604
- \RequirePackage{cmap}
605
- \newif\if@ACM@newfonts
606
- \@ACM@newfontstrue
607
- \IfFileExists{libertine.sty}{}{\ClassWarning{\@classname}{You do not
608
- have libertine package installed. Please upgrade your
609
- TeX}\@ACM@newfontsfalse}
610
- \IfFileExists{zi4.sty}{}{\ClassWarning{\@classname}{You do not
611
- have zi4 package installed. Please upgrade your TeX}\@ACM@newfontsfalse}
612
- \IfFileExists{newtxmath.sty}{}{\ClassWarning{\@classname}{You do not
613
- have newtxmath package installed. Please upgrade your
614
- TeX}\@ACM@newfontsfalse}
615
- \if@ACM@newfonts
616
- \RequirePackage[tt=false, type1=true]{libertine}
617
- \RequirePackage[varqu]{zi4}
618
- \RequirePackage[libertine]{newtxmath}
619
- \RequirePackage[T1]{fontenc}
620
- \fi
621
- \if@ACM@sigchiamode
622
- \renewcommand{\familydefault}{\sfdefault}
623
- \fi
624
- \RequirePackage{caption, float}
625
- \captionsetup[table]{position=top}
626
- \if@ACM@journal
627
- \captionsetup{labelfont={sf, small},
628
- textfont={sf, small}, margin=\z@}
629
- \captionsetup[figure]{name={Fig.}}
630
- \else
631
- \captionsetup{labelfont={bf},
632
- textfont={bf}, labelsep=colon, margin=\z@}
633
- \ifcase\ACM@format@nr
634
- \relax % manuscript
635
- \or % acmsmall
636
- \or % acmlarge
637
- \or % acmtog
638
- \or % sigconf
639
- \or % siggraph
640
- \captionsetup{textfont={it}}
641
- \or % sigplan
642
- \captionsetup{labelfont={bf},
643
- textfont={normalfont}, labelsep=period, margin=\z@}
644
- \or % sigchi
645
- \captionsetup[figure]{labelfont={bf, small},
646
- textfont={bf, small}}
647
- \or % sigchi-a
648
- \captionsetup[figure]{labelfont={bf, small},
649
- textfont={bf, small}}
650
- \fi
651
- \fi
652
- \newfloat{sidebar}{}{sbar}
653
- \floatname{sidebar}{Sidebar}
654
- \renewenvironment{sidebar}{\Collect@Body\@sidebar}{}
655
- \long\def\@sidebar#1{\bgroup\captionsetup{type=sidebar}%
656
- \marginpar{\small#1}\egroup}
657
- \newenvironment{marginfigure}{\Collect@Body\@marginfigure}{}
658
- \long\def\@marginfigure#1{\bgroup\captionsetup{type=figure}%
659
- \marginpar{\centering\small#1}\egroup}
660
- \newenvironment{margintable}{\Collect@Body\@margintable}{}
661
- \long\def\@margintable#1{\bgroup\captionsetup{type=table}%
662
- \marginpar{\centering\small#1}\egroup}
663
- \newdimen\fulltextwidth
664
- \fulltextwidth=\dimexpr(\textwidth+\marginparwidth+\marginparsep)
665
- \if@ACM@sigchiamode
666
- \def\@dblfloat{\bgroup\columnwidth=\fulltextwidth
667
- \let\@endfloatbox\@endwidefloatbox
668
- \def\@fpsadddefault{\def\@fps{tp}}%
669
- \@float}
670
- \fi
671
- \if@ACM@sigchiamode
672
- \def\end@dblfloat{%
673
- \end@float\egroup}
674
- \fi
675
- \def\@endwidefloatbox{%
676
- \par\vskip\z@skip
677
- \@minipagefalse
678
- \outer@nobreak
679
- \egroup
680
- \color@endbox
681
- \global\setbox\@currbox=\vbox{\moveleft
682
- \dimexpr(\fulltextwidth-\textwidth)\box\@currbox}%
683
- \wd\@currbox=\textwidth
684
- }
685
- \ifcase\ACM@format@nr
686
- \relax % manuscript
687
- \or % acmsmall
688
- \or % acmlarge
689
- \or % acmtog
690
- \or % sigconf
691
- \or % siggraph
692
- \or % sigplan
693
- \def\labelenumi{\theenumi.}
694
- \def\labelenumii{\theenumii.}
695
- \def\labelenumiii{\theenumiii.}
696
- \def\labelenumiv{\theenumiv.}
697
- \or % sigchi
698
- \or % sigchi-a
699
- \fi
700
- \renewcommand{\descriptionlabel}[1]{\hspace\labelsep \upshape\bfseries #1}
701
- \renewenvironment{description}{\list{}{%
702
- \itemindent-12\p@
703
- \labelwidth\z@ \let\makelabel\descriptionlabel}%
704
- }{
705
- \endlist
706
- }
707
- \let\enddescription=\endlist % for efficiency
708
- \define@choicekey*+{ACM}{acmJournal}[\@journalCode\@journalCode@nr]{%
709
- CIE,%
710
- CSUR,%
711
- IMWUT,%
712
- JACM,%
713
- JDIQ,%
714
- JEA,%
715
- JERIC,%
716
- JETC,%
717
- JOCCH,%
718
- PACMPL,%
719
- POMACS,%
720
- TAAS,%
721
- TACCESS,%
722
- TACO,%
723
- TALG,%
724
- TALLIP,%
725
- TAP,%
726
- TCPS,%
727
- TEAC,%
728
- TECS,%
729
- TIIS,%
730
- TISSEC,%
731
- TIST,%
732
- TKDD,%
733
- TMIS,%
734
- TOCE,%
735
- TOCHI,%
736
- TOCL,%
737
- TOCS,%
738
- TOCT,%
739
- TODAES,%
740
- TODS,%
741
- TOG,%
742
- TOIS,%
743
- TOIT,%
744
- TOMACS,%
745
- TOMM,%
746
- TOMPECS,%
747
- TOMS,%
748
- TOPC,%
749
- TOPS,%
750
- TOPLAS,%
751
- TOS,%
752
- TOSEM,%
753
- TOSN,%
754
- TRETS,%
755
- TSAS,%
756
- TSC,%
757
- TSLP,%
758
- TWEB%
759
- }{%
760
- \ifcase\@journalCode@nr
761
- \relax % CIE
762
- \def\@journalName{ACM Computers in Entertainment}%
763
- \def\@journalNameShort{ACM Comput. Entertain.}%
764
- \def\@permissionCodeOne{1544-3574}%
765
- \or % CSUR
766
- \def\@journalName{ACM Computing Surveys}%
767
- \def\@journalNameShort{ACM Comput. Surv.}%
768
- \def\@permissionCodeOne{0360-0300}%
769
- \or % IMWUT
770
- \def\@journalName{Proceedings of the ACM on Interactive, Mobile,
771
- Wearable and Ubiquitous Technologies}%
772
- \def\@journalNameShort{Proc. ACM Interact. Mob. Wearable Ubiquitous Technol.}%
773
- \def\@permissionCodeOne{2474-9567}%
774
- \or % JACM
775
- \def\@journalName{Journal of the ACM}%
776
- \def\@journalNameShort{J. ACM}%
777
- \def\@permissionCodeOne{0004-5411}%
778
- \or % JDIQ
779
- \def\@journalName{ACM Journal of Data and Information Quality}%
780
- \def\@journalNameShort{ACM J. Data Inform. Quality}%
781
- \def\@permissionCodeOne{1936-1955}%
782
- \or % JEA
783
- \def\@journalName{ACM Journal of Experimental Algorithmics}%
784
- \def\@journalNameShort{ACM J. Exp. Algor.}%
785
- \def\@permissionCodeOne{1084-6654}%
786
- \or % JERIC
787
- \def\@journalName{ACM Journal of Educational Resources in Computing}%
788
- \def\@journalNameShort{ACM J. Edu. Resources in Comput.}%
789
- \def\@permissionCodeOne{1073-0516}%
790
- \or % JETC
791
- \def\@journalName{ACM Journal on Emerging Technologies in Computing Systems}%
792
- \def\@journalNameShort{ACM J. Emerg. Technol. Comput. Syst.}%
793
- \def\@permissionCodeOne{1550-4832}%
794
- \or % JOCCH
795
- \def\@journalName{ACM Journal on Computing and Cultural Heritage}%
796
- \def\@journalName{ACM J. Comput. Cult. Herit.}%
797
- \or % PACMPL
798
- \def\@journalName{Proceedings of the ACM on Programming Languages}%
799
- \def\@journalName{Proc. ACM Program. Lang.}%
800
- \def\@permissionCodeOne{2475-1421}%
801
- \or % POMACS
802
- \def\@journalName{Proceedings of the ACM on Measurement and Analysis of Computing Systems}%
803
- \def\@journalName{Proc. ACM Meas. Anal. Comput. Syst.}%
804
- \def\@permissionCodeOne{2476-1249}%
805
- \or % TAAS
806
- \def\@journalName{ACM Transactions on Autonomous and Adaptive Systems}%
807
- \def\@journalNameShort{ACM Trans. Autonom. Adapt. Syst.}%
808
- \def\@permissionCodeOne{1556-4665}%
809
- \or % TACCESS
810
- \def\@journalName{ACM Transactions on Accessible Computing}%
811
- \def\@journalNameShort{ACM Trans. Access. Comput.}%
812
- \def\@permissionCodeOne{1936-7228}%
813
- \or % TACO
814
- \def\@journalName{ACM Transactions on Architecture and Code Optimization}%
815
- \or % TALG
816
- \def\@journalName{ACM Transactions on Algorithms}%
817
- \def\@journalNameShort{ACM Trans. Algor.}%
818
- \def\@permissionCodeOne{1549-6325}%
819
- \or % TALLIP
820
- \def\@journalName{ACM Transactions on Asian and Low-Resource Language Information Processing}%
821
- \def\@journalNameShort{ACM Trans. Asian Low-Resour. Lang. Inf. Process.}%
822
- \def\@permissionCodeOne{2375-4699}%
823
- \or % TAP
824
- \def\@journalName{ACM Transactions on Applied Perception}%
825
- \or % TCPS
826
- \def\@journalName{ACM Transactions on Cyber-Physical Systems}%
827
- \or % TEAC
828
- \def\@journalName{ACM Transactions on Economics and Computation}%
829
- \or % TECS
830
- \def\@journalName{ACM Transactions on Embedded Computing Systems}%
831
- \def\@journalNameShort{ACM Trans. Embedd. Comput. Syst.}%
832
- \def\@permissionCodeOne{1539-9087}%
833
- \or % TIIS
834
- \def\@journalName{ACM Transactions on Interactive Intelligent Systems}%
835
- \def\@journalNameShort{ACM Trans. Interact. Intell. Syst.}%
836
- \def\@permissionCodeOne{2160-6455}%
837
- \or % TISSEC
838
- \def\@journalName{ACM Transactions on Information and System Security}%
839
- \def\@journalNameShort{ACM Trans. Info. Syst. Sec.}%
840
- \def\@permissionCodeOne{1094-9224}%
841
- \or % TIST
842
- \def\@journalName{ACM Transactions on Intelligent Systems and Technology}%
843
- \def\@journalNameShort{ACM Trans. Intell. Syst. Technol.}%
844
- \def\@permissionCodeOne{2157-6904}%
845
- \or % TKDD
846
- \def\@journalName{ACM Transactions on Knowledge Discovery from Data}%
847
- \def\@journalNameShort{ACM Trans. Knowl. Discov. Data.}%
848
- \def\@permissionCodeOne{1556-4681}%
849
- \or % TMIS
850
- \def\@journalName{ACM Transactions on Management Information Systems}%
851
- \def\@journalNameShort{ACM Trans. Manag. Inform. Syst.}%
852
- \def\@permissionCodeOne{2158-656X}%
853
- \or % TOCE
854
- \def\@journalName{ACM Transactions on Computing Education}%
855
- \def\@journalNameShort{ACM Trans. Comput. Educ.}%
856
- \def\@permissionCodeOne{1946-6226}%
857
- \or % TOCHI
858
- \def\@journalName{ACM Transactions on Computer-Human Interaction}%
859
- \def\@journalNameShort{ACM Trans. Comput.-Hum. Interact.}%
860
- \def\@permissionCodeOne{1073-0516}%
861
- \or % TOCL
862
- \def\@journalName{ACM Transactions on Computational Logic}%
863
- \def\@journalNameShort{ACM Trans. Comput. Logic}%
864
- \def\@permissionCodeOne{1529-3785}%
865
- \or % TOCS
866
- \def\@journalName{ACM Transactions on Computer Systems}%
867
- \def\@journalNameShort{ACM Trans. Comput. Syst.}%
868
- \def\@permissionCodeOne{0734-2071}%
869
- \or % TOCT
870
- \def\@journalName{ACM Transactions on Computation Theory}%
871
- \def\@journalNameShort{ACM Trans. Comput. Theory}%
872
- \def\@permissionCodeOne{1942-3454}%
873
- \or % TODAES
874
- \def\@journalName{ACM Transactions on Design Automation of Electronic Systems}%
875
- \def\@journalNameShort{ACM Trans. Des. Autom. Electron. Syst.}%
876
- \def\@permissionCodeOne{1084-4309}%
877
- \or % TODS
878
- \def\@journalName{ACM Transactions on Database Systems}%
879
- \def\@journalNameShort{ACM Trans. Datab. Syst.}%
880
- \def\@permissionCodeOne{0362-5915}%
881
- \or % TOG
882
- \def\@journalName{ACM Transactions on Graphics}%
883
- \def\@journalNameShort{ACM Trans. Graph.}%
884
- \def\@permissionCodeOne{0730-0301}
885
- \or % TOIS
886
- \def\@journalName{ACM Transactions on Information Systems}%
887
- \def\@journalName{ACM Transactions on Information Systems}%
888
- \def\@permissionCodeOne{1046-8188}%
889
- \or % TOIT
890
- \def\@journalName{ACM Transactions on Internet Technology}%
891
- \def\@journalNameShort{ACM Trans. Internet Technol.}%
892
- \def\@permissionCodeOne{1533-5399}%
893
- \or % TOMACS
894
- \def\@journalName{ACM Transactions on Modeling and Computer Simulation}%
895
- \def\@journalName{ACM Transactions on Modeling and Computer Simulation}%
896
- \def\@journalNameShort{ACM Trans. Model. Comput. Simul.}%
897
- \or % TOMM
898
- \def\@journalName{ACM Transactions on Multimedia Computing, Communications and Applications}%
899
- \def\@journalNameShort{ACM Trans. Multimedia Comput. Commun. Appl.}%
900
- \def\@permissionCodeOne{1551-6857}%
901
- \def\@permissionCodeTwo{0100}%
902
- \or % TOMPECS
903
- \def\@journalName{ACM Transactions on Modeling and Performance Evaluation of Computing Systems}%
904
- \def\@journalNameShort{ACM Trans. Model. Perform. Eval. Comput. Syst.}%
905
- \def\@permissionCodeOne{2376-3639}%
906
- \or % TOMS
907
- \def\@journalName{ACM Transactions on Mathematical Software}%
908
- \def\@journalNameShort{ACM Trans. Math. Softw.}%
909
- \def\@permissionCodeOne{0098-3500}%
910
- \or % TOPC
911
- \def\@journalName{ACM Transactions on Parallel Computing}%
912
- \def\@journalNameShort{ACM Trans. Parallel Comput.}%
913
- \def\@permissionCodeOne{1539-9087}%
914
- \or % TOPS
915
- \def\@journalName{ACM Transactions on Privacy and Security}%
916
- \def\@journalNameShort{ACM Trans. Priv. Sec.}%
917
- \def\@permissionCodeOne{2471-2566}%
918
- \or % TOPLAS
919
- \def\@journalName{ACM Transactions on Programming Languages and Systems}%
920
- \def\@journalNameShort{ACM Trans. Program. Lang. Syst.}%
921
- \def\@permissionCodeOne{0164-0925}%
922
- \or % TOS
923
- \def\@journalName{ACM Transactions on Storage}%
924
- \def\@journalNameShort{ACM Trans. Storage}%
925
- \def\@permissionCodeOne{1553-3077}%
926
- \or % TOSEM
927
- \def\@journalName{ACM Transactions on Software Engineering and Methodology}%
928
- \def\@journalNameShort{ACM Trans. Softw. Eng. Methodol.}%
929
- \def\@permissionCodeOne{1049-331X}%
930
- \or % TOSN
931
- \def\@journalName{ACM Transactions on Sensor Networks}%
932
- \def\@journalNameShort{ACM Trans. Sensor Netw.}%
933
- \def\@permissionCodeOne{1550-4859}%
934
- \or % TRETS
935
- \def\@journalName{ACM Transactions on Reconfigurable Technology and Systems}%
936
- \def\@journalNameShort{ACM Trans. Reconfig. Technol. Syst.}%
937
- \def\@permissionCodeOne{1936-7406}%
938
- \or % TSAS
939
- \def\@journalName{ACM Transactions on Spatial Algorithms and Systems}%
940
- \def\@journalNameShort{ACM Trans. Spatial Algorithms Syst.}%
941
- \def\@permissionCodeOne{2374-0353}%
942
- \or % TSC
943
- \def\@journalName{ACM Transactions on Social Computing}%
944
- \def\@journalNameShort{ACM Trans. Soc. Comput.}%
945
- \def\@permissionCodeOne{2469-7818}%
946
- \or % TSLP
947
- \def\@journalName{ACM Transactions on Speech and Language Processing}%
948
- \def\@journalNameShort{ACM Trans. Speech Lang. Process.}%
949
- \def\@permissionCodeOne{1550-4875}%
950
- \or % TWEB
951
- \def\@journalName{ACM Transactions on the Web}%
952
- \def\@journalNameShort{ACM Trans. Web}%
953
- \def\@permissionCodeOne{1559-1131}%
954
- \fi
955
- \ClassInfo{\@classname}{Using journal code \@journalCode}%
956
- }{%
957
- \ClassError{\@classname}{Incorrect journal #1}%
958
- }%
959
- \def\acmJournal#1{\setkeys{ACM}{acmJournal=#1}}
960
- \def\@journalCode@nr{0}
961
- \def\@journalName{}%
962
- \def\@journalNameShort{\@journalName}%
963
- \def\@permissionCodeOne{XXXX-XXXX}%
964
- \def\@permissionCodeTwo{}%
965
- \newcommand\acmConference[4][]{%
966
- \gdef\acmConference@shortname{#1}%
967
- \gdef\acmConference@name{#2}%
968
- \gdef\acmConference@date{#3}%
969
- \gdef\acmConference@venue{#4}%
970
- \ifx\acmConference@shortname\@empty
971
- \gdef\acmConference@shortname{#2}%
972
- \fi}
973
- \acmConference[Conference'17]{ACM Conference}{July 2017}{Washington,
974
- DC, USA}
975
- \def\subtitle#1{\def\@subtitle{#1}}
976
- \subtitle{}
977
- \newcount\num@authorgroups
978
- \num@authorgroups=0\relax
979
- \newif\if@insideauthorgroup
980
- \@insideauthorgroupfalse
981
- \renewcommand\author[2][]{%
982
- \if@insideauthorgroup\else
983
- \global\advance\num@authorgroups by 1\relax
984
- \global\@insideauthorgrouptrue
985
- \fi
986
- \ifx\addresses\@empty
987
- \if@ACM@anonymous
988
- \gdef\addresses{\@author{Anonymous Author(s)}}%
989
- \gdef\authors{Anonymous Author(s)}%
990
- \else
991
- \gdef\addresses{\@author{#2}}%
992
- \gdef\authors{#2}%
993
- \fi
994
- \else
995
- \if@ACM@anonymous\else
996
- \g@addto@macro\addresses{\and\@author{#2}}%
997
- \g@addto@macro\authors{\and#2}%
998
- \fi
999
- \fi
1000
- \if@ACM@anonymous
1001
- \ifx\shortauthors\@empty
1002
- \gdef\shortauthors{Anon.}%
1003
- \fi
1004
- \else
1005
- \def\@tempa{#1}%
1006
- \ifx\@tempa\@empty
1007
- \ifx\shortauthors\@empty
1008
- \gdef\shortauthors{#2}%
1009
- \else
1010
- \g@addto@macro\shortauthors{\and#2}%
1011
- \fi
1012
- \else
1013
- \ifx\shortauthors\@empty
1014
- \gdef\shortauthors{#1}%
1015
- \else
1016
- \g@addto@macro\shortauthors{\and#1}%
1017
- \fi
1018
- \fi
1019
- \fi}
1020
- \newcommand{\affiliation}[2][]{%
1021
- \global\@insideauthorgroupfalse
1022
- \if@ACM@anonymous\else
1023
- \g@addto@macro\addresses{\affiliation{#1}{#2}}%
1024
- \fi}
1025
- \define@boolkey+{@ACM@affiliation@}[@ACM@affiliation@]{obeypunctuation}%
1026
- [true]{}{\ClassError{\@classname}{obeypunctuation must be true or false}}
1027
- \def\additionalaffiliation#1{\authornote{\@additionalaffiliation{#1}}}
1028
- \def\@additionalaffiliation#1{\bgroup
1029
- \def\position##1{\ignorespaces}%
1030
- \def\institution##1{##1\ignorespaces}%
1031
- \def\department{\@ifnextchar[{\@department}{\@department[]}}%
1032
- \def\@department[##1]##2{\unskip, ##2\ignorespaces}%
1033
- \let\streetaddress\position
1034
- \let\city\position
1035
- \let\state\position
1036
- \let\postcode\position
1037
- \let\country\position
1038
- Also with #1\unskip.\egroup}
1039
- \renewcommand{\email}[2][]{%
1040
- \if@ACM@anonymous\else
1041
- \g@addto@macro\addresses{\email{#1}{#2}}%
1042
- \fi}
1043
- \let\orcid\@gobble
1044
- \def\@titlenotes{}
1045
- \def\titlenote#1{%
1046
- \g@addto@macro\@title{\footnotemark}%
1047
- \if@ACM@anonymous
1048
- \g@addto@macro\@titlenotes{%
1049
- \stepcounter{footnote}\footnotetext{Title note}}%
1050
- \else
1051
- \g@addto@macro\@titlenotes{\stepcounter{footnote}\footnotetext{#1}}%
1052
- \fi}
1053
- \def\@subtitlenotes{}
1054
- \def\subtitlenote#1{%
1055
- \g@addto@macro\@subtitle{\footnotemark}%
1056
- \if@ACM@anonymous
1057
- \g@addto@macro\@subtitlenotes{%
1058
- \stepcounter{footnote}\footnotetext{Subtitle note}}%
1059
- \else
1060
- \g@addto@macro\@subtitlenotes{%
1061
- \stepcounter{footnote}\footnotetext{#1}}%
1062
- \fi}
1063
- \def\@authornotes{}
1064
- \def\authornote#1{%
1065
- \if@ACM@anonymous\else
1066
- \g@addto@macro\addresses{\@authornotemark}
1067
- \g@addto@macro\@authornotes{%
1068
- \stepcounter{footnote}\footnotetext{#1}}%
1069
- \fi}
1070
- \def\acmVolume#1{\def\@acmVolume{#1}}
1071
- \acmVolume{1}
1072
- \def\acmNumber#1{\def\@acmNumber{#1}}
1073
- \acmNumber{1}
1074
- \def\acmArticle#1{\def\@acmArticle{#1}}
1075
- \acmArticle{1}
1076
- \def\acmArticleSeq#1{\def\@acmArticleSeq{#1}}
1077
- \acmArticleSeq{\@acmArticle}
1078
- \def\acmYear#1{\def\@acmYear{#1}}
1079
- \acmYear{\the\year}
1080
- \def\acmMonth#1{\def\@acmMonth{#1}}
1081
- \acmMonth{\the\month}
1082
- \def\@acmPubDate{\ifcase\@acmMonth\or
1083
- January\or February\or March\or April\or May\or June\or
1084
- July\or August\or September\or October\or November\or
1085
- December\fi~\@acmYear}
1086
- \def\acmPrice#1{\def\@acmPrice{#1}}
1087
- \acmPrice{15.00}
1088
- \def\acmSubmissionID#1{\def\@acmSubmissionID{#1}}
1089
- \acmSubmissionID{}
1090
- \def\acmISBN#1{\def\@acmISBN{#1}}
1091
- \acmISBN{978-x-xxxx-xxxx-x/YY/MM}
1092
- \def\acmDOI#1{\def\@acmDOI{#1}}
1093
- \acmDOI{10.1145/nnnnnnn.nnnnnnn}
1094
- \newif\if@ACM@badge
1095
- \@ACM@badgefalse
1096
- \newlength\@ACM@badge@width
1097
- \setlength\@ACM@badge@width{5pc}
1098
- \newlength\@ACM@title@width
1099
- \newlength\@ACM@badge@skip
1100
- \setlength\@ACM@badge@skip{1pc}
1101
- \newcommand\acmBadgeR[2][]{\@ACM@badgetrue
1102
- \def\@acmBadgeR@url{#1}%
1103
- \def\@acmBadgeR@image{#2}}
1104
- \def\@acmBadgeR@url{}
1105
- \def\@acmBadgeR@image{}
1106
- \newcommand\acmBadgeL[2][]{\@ACM@badgetrue
1107
- \def\@acmBadgeL@url{#1}%
1108
- \def\@acmBadgeL@image{#2}}
1109
- \def\@acmBadgeL@url{}
1110
- \def\@acmBadgeL@image{}
1111
- \def\startPage#1{\def\@startPage{#1}}
1112
- \startPage{}
1113
- \def\terms#1{\ClassWarning{\@classname}{The command \string\terms{} is
1114
- obsolete. I am going to ignore it}}
1115
- \def\keywords#1{\def\@keywords{#1}}
1116
- \keywords{}
1117
- \renewenvironment{abstract}{\Collect@Body\@saveabstract}{}
1118
- \long\def\@saveabstract#1{\long\gdef\@abstract{#1}}
1119
- \@saveabstract{}
1120
- \long\def\@lempty{}
1121
- \define@boolkey+{@ACM@topmatter@}[@ACM@]{printccs}[true]{%
1122
- \if@ACM@printccs
1123
- \ClassInfo{\@classname}{Printing CCS}%
1124
- \else
1125
- \ClassInfo{\@classname}{Suppressing CCS}%
1126
- \fi}{\ClassError{\@classname}{printccs must be true or false}}
1127
- \define@boolkey+{@ACM@topmatter@}[@ACM@]{printacmref}[true]{%
1128
- \if@ACM@printacmref
1129
- \ClassInfo{\@classname}{Printing bibformat}%
1130
- \else
1131
- \ClassInfo{\@classname}{Suppressing bibformat}%
1132
- \fi}{\ClassError{\@classname}{printacmref must be true or false}}
1133
- \define@boolkey+{@ACM@topmatter@}[@ACM@]{printfolios}[true]{%
1134
- \if@ACM@printfolios
1135
- \ClassInfo{\@classname}{Printing folios}%
1136
- \else
1137
- \ClassInfo{\@classname}{Suppressing folios}%
1138
- \fi}{\ClassError{\@classname}{printfolios must be true or false}}
1139
- \def\settopmatter#1{\setkeys{@ACM@topmatter@}{#1}}
1140
- \settopmatter{printccs=true, printacmref=true}
1141
- \if@ACM@manuscript
1142
- \settopmatter{printfolios=true}
1143
- \else
1144
- \if@ACM@journal
1145
- \settopmatter{printfolios=true}
1146
- \else
1147
- \settopmatter{printfolios=false}
1148
- \fi
1149
- \fi
1150
- \def\@received{}
1151
- \newcommand\received[2][]{\def\@tempa{#1}%
1152
- \ifx\@tempa\@empty
1153
- \ifx\@received\@empty
1154
- \gdef\@received{Received #2}%
1155
- \else
1156
- \g@addto@macro{\@received}{; revised #2}%
1157
- \fi
1158
- \else
1159
- \ifx\@received\@empty
1160
- \gdef\@received{#1 #2}%
1161
- \else
1162
- \g@addto@macro{\@received}{; #1 #2}%
1163
- \fi
1164
- \fi}
1165
- \AtEndDocument{%
1166
- \ifx\@received\@empty\else
1167
- \par\bigskip\noindent\small\normalfont\@received\par
1168
- \fi}
1169
- \RequirePackage{comment}
1170
- \excludecomment{CCSXML}
1171
- \let\@concepts\@empty
1172
- \newcommand\ccsdesc[2][100]{%
1173
- \ccsdesc@parse#1~#2~}
1174
- \RequirePackage{textcomp}
1175
- \def\ccsdesc@parse#1~#2~#3~{%
1176
- \expandafter\ifx\csname CCS@#2\endcsname\relax
1177
- \expandafter\gdef\csname CCS@#2\endcsname{\textbullet\ \textbf{#2} \textrightarrow\ }%
1178
- \g@addto@macro{\@concepts}{\csname CCS@#2\endcsname}\fi
1179
- \expandafter\g@addto@macro\expandafter{\csname CCS@#2\endcsname}{%
1180
- \ifnum#1>499\textbf{#3}; \else
1181
- \ifnum#1>299\textit{#3}; \else
1182
- #3; \fi\fi}}
1183
- \newif\if@printcopyright
1184
- \@printcopyrighttrue
1185
- \newif\if@printpermission
1186
- \@printpermissiontrue
1187
- \newif\if@acmowned
1188
- \@acmownedtrue
1189
- \define@choicekey*{ACM@}{acmcopyrightmode}[%
1190
- \acm@copyrightinput\acm@copyrightmode]{none,acmcopyright,acmlicensed,%
1191
- rightsretained,usgov,usgovmixed,cagov,cagovmixed,%
1192
- licensedusgovmixed,licensedcagovmixed,othergov,licensedothergov}{%
1193
- \@printpermissiontrue
1194
- \@printcopyrighttrue
1195
- \@acmownedtrue
1196
- \ifnum\acm@copyrightmode=0\relax % none
1197
- \@printpermissionfalse
1198
- \@printcopyrightfalse
1199
- \@acmownedfalse
1200
- \fi
1201
- \ifnum\acm@copyrightmode=2\relax % acmlicensed
1202
- \@acmownedfalse
1203
- \fi
1204
- \ifnum\acm@copyrightmode=3\relax % rightsretained
1205
- \@acmownedfalse
1206
- \fi
1207
- \ifnum\acm@copyrightmode=4\relax % usgov
1208
- \@printpermissiontrue
1209
- \@printcopyrightfalse
1210
- \@acmownedfalse
1211
- \fi
1212
- \ifnum\acm@copyrightmode=6\relax % cagov
1213
- \@acmownedfalse
1214
- \fi
1215
- \ifnum\acm@copyrightmode=8\relax % licensedusgovmixed
1216
- \@acmownedfalse
1217
- \fi
1218
- \ifnum\acm@copyrightmode=9\relax % licensedcagovmixed
1219
- \@acmownedfalse
1220
- \fi
1221
- \ifnum\acm@copyrightmode=10\relax % othergov
1222
- \@acmownedtrue
1223
- \fi
1224
- \ifnum\acm@copyrightmode=11\relax % licensedothergov
1225
- \@acmownedfalse
1226
- \fi}
1227
- \def\setcopyright#1{\setkeys{ACM@}{acmcopyrightmode=#1}}
1228
- \setcopyright{acmcopyright}
1229
- \def\@copyrightowner{%
1230
- \ifcase\acm@copyrightmode\relax % none
1231
- \or % acmcopyright
1232
- Association for Computing Machinery.
1233
- \or % acmlicensed
1234
- Copyright held by the owner/author(s). Publication rights licensed to
1235
- Association for Computing Machinery.
1236
- \or % rightsretained
1237
- Copyright held by the owner/author(s).
1238
- \or % usgov
1239
- \or % usgovmixed
1240
- Association for Computing Machinery.
1241
- \or % cagov
1242
- Crown in Right of Canada.
1243
- \or %cagovmixed
1244
- Association for Computing Machinery.
1245
- \or %licensedusgovmixed
1246
- Copyright held by the owner/author(s). Publication rights licensed to
1247
- Association for Computing Machinery.
1248
- \or %licensedcagovmixed
1249
- Copyright held by the owner/author(s). Publication rights licensed to
1250
- Association for Computing Machinery.
1251
- \or % othergov
1252
- Association for Computing Machinery.
1253
- \or % licensedothergov
1254
- Copyright held by the owner/author(s). Publication rights licensed to
1255
- Association for Computing Machinery.
1256
- \fi}
1257
- \def\@formatdoi#1{\url{https://doi.org/#1}}
1258
- \def\@copyrightpermission{%
1259
- \ifcase\acm@copyrightmode\relax % none
1260
- \or % acmcopyright
1261
- Permission to make digital or hard copies of all or part of this
1262
- work for personal or classroom use is granted without fee provided
1263
- that copies are not made or distributed for profit or commercial
1264
- advantage and that copies bear this notice and the full citation on
1265
- the first page. Copyrights for components of this work owned by
1266
- others than ACM must be honored. Abstracting with credit is
1267
- permitted. To copy otherwise, or republish, to post on servers or to
1268
- redistribute to lists, requires prior specific permission
1269
- and\hspace*{.5pt}/or a fee. Request permissions from
1270
- permissions@acm.org.
1271
- \or % acmlicensed
1272
- Permission to make digital or hard copies of all or part of this
1273
- work for personal or classroom use is granted without fee provided
1274
- that copies are not made or distributed for profit or commercial
1275
- advantage and that copies bear this notice and the full citation on
1276
- the first page. Copyrights for components of this work owned by
1277
- others than the author(s) must be honored. Abstracting with credit
1278
- is permitted. To copy otherwise, or republish, to post on servers
1279
- or to redistribute to lists, requires prior specific permission
1280
- and\hspace*{.5pt}/or a fee. Request permissions from
1281
- permissions@acm.org.
1282
- \or % rightsretained
1283
- Permission to make digital or hard copies of part or all of this work
1284
- for personal or classroom use is granted without fee provided that
1285
- copies are not made or distributed for profit or commercial advantage
1286
- and that copies bear this notice and the full citation on the first
1287
- page. Copyrights for third-party components of this work must be
1288
- honored. For all other uses, contact the
1289
- owner\hspace*{.5pt}/author(s).
1290
- \or % usgov
1291
- This paper is authored by an employee(s) of the United States
1292
- Government and is in the public domain. Non-exclusive copying or
1293
- redistribution is allowed, provided that the article citation is
1294
- given and the authors and agency are clearly identified as its
1295
- source.
1296
- \or % usgovmixed
1297
- ACM acknowledges that this contribution was authored or co-authored
1298
- by an employee, or contractor of the national government. As such,
1299
- the Government retains a nonexclusive, royalty-free right to
1300
- publish or reproduce this article, or to allow others to do so, for
1301
- Government purposes only. Permission to make digital or hard copies
1302
- for personal or classroom use is granted. Copies must bear this
1303
- notice and the full citation on the first page. Copyrights for
1304
- components of this work owned by others than ACM must be
1305
- honored. To copy otherwise, distribute, republish, or post,
1306
- requires prior specific permission and\hspace*{.5pt}/or a
1307
- fee. Request permissions from permissions@acm.org.
1308
- \or % cagov
1309
- This article was authored by employees of the Government of Canada.
1310
- As such, the Canadian government retains all interest in the
1311
- copyright to this work and grants to ACM a nonexclusive,
1312
- royalty-free right to publish or reproduce this article, or to allow
1313
- others to do so, provided that clear attribution is given both to
1314
- the authors and the Canadian government agency employing them.
1315
- Permission to make digital or hard copies for personal or classroom
1316
- use is granted. Copies must bear this notice and the full citation
1317
- on the first page. Copyrights for components of this work owned by
1318
- others than the Canadain Government must be honored. To copy
1319
- otherwise, distribute, republish, or post, requires prior specific
1320
- permission and\hspace*{.5pt}/or a fee. Request permissions from
1321
- permissions@acm.org.
1322
- \or % cagovmixed
1323
- ACM acknowledges that this contribution was co-authored by an
1324
- affiliate of the national government of Canada. As such, the Crown
1325
- in Right of Canada retains an equal interest in the copyright.
1326
- Reprints must include clear attribution to ACM and the author's
1327
- government agency affiliation. Permission to make digital or hard
1328
- copies for personal or classroom use is granted. Copies must bear
1329
- this notice and the full citation on the first page. Copyrights for
1330
- components of this work owned by others than ACM must be honored.
1331
- To copy otherwise, distribute, republish, or post, requires prior
1332
- specific permission and\hspace*{.5pt}/or a fee. Request permissions
1333
- from permissions@acm.org.
1334
- \or % licensedusgovmixed
1335
- Publication rights licensed to ACM\@. ACM acknowledges that this
1336
- contribution was authored or co-authored by an employee, contractor
1337
- or affiliate of the United States government. As such, the
1338
- Government retains a nonexclusive, royalty-free right to publish or
1339
- reproduce this article, or to allow others to do so, for Government
1340
- purposes only.
1341
- \or % licensedcagovmixed
1342
- Publication rights licensed to ACM\@. ACM acknowledges that this
1343
- contribution was authored or co-authored by an employee, contractor
1344
- or affiliate of the national government of Canada. As such, the
1345
- Government retains a nonexclusive, royalty-free right to publish or
1346
- reproduce this article, or to allow others to do so, for Government
1347
- purposes only.
1348
- \or % othergov
1349
- ACM acknowledges that this contribution was authored or co-authored
1350
- by an employee, contractor or affiliate of a national government. As
1351
- such, the Government retains a nonexclusive, royalty-free right to
1352
- publish or reproduce this article, or to allow others to do so, for
1353
- Government purposes only.
1354
- \or % licensedothergov
1355
- Publication rights licensed to ACM\@. ACM acknowledges that this
1356
- contribution was authored or co-authored by an employee, contractor
1357
- or affiliate of a national government. As such, the Government
1358
- retains a nonexclusive, royalty-free right to publish or reproduce
1359
- this article, or to allow others to do so, for Government purposes
1360
- only.
1361
- \fi}
1362
- \def\copyrightyear#1{\def\@copyrightyear{#1}}
1363
- \copyrightyear{\@acmYear}
1364
- \def\@teaserfigures{}
1365
- \newenvironment{teaserfigure}{\Collect@Body\@saveteaser}{}
1366
- \long\def\@saveteaser#1{\g@addto@macro\@teaserfigures{\@teaser{#1}}}
1367
- \renewcommand{\thanks}[1]{%
1368
- \@ifnotempty{#1}{%
1369
- \if@ACM@anonymous
1370
- \g@addto@macro\thankses{\thanks{A note}}%
1371
- \else
1372
- \g@addto@macro\thankses{\thanks{#1}}%
1373
- \fi}}
1374
- \newbox\mktitle@bx
1375
- \def\maketitle{%
1376
- \if@ACM@anonymous
1377
- % Anonymize omission of \author-s
1378
- \ifnum\num@authorgroups=0\author{}\fi
1379
- \fi
1380
- \begingroup
1381
- \let\@footnotemark\@footnotemark@nolink
1382
- \let\@footnotetext\@footnotetext@nolink
1383
- \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
1384
- \global\@topnum\z@ % this prevents floats from falling
1385
- % at the top of page 1
1386
- \global\@botnum\z@ % we do not want them to be on bottom either
1387
- \hsize=\textwidth
1388
- \def\@makefnmark{\hbox{\@textsuperscript{\@thefnmark}}}%
1389
- \@mktitle\if@ACM@sigchiamode\else\@mkauthors\fi\@mkteasers
1390
- \@printtopmatter
1391
- \if@ACM@sigchiamode\@mkauthors\fi
1392
- \setcounter{footnote}{0}%
1393
- \def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}%
1394
- \@titlenotes
1395
- \@subtitlenotes
1396
- \@authornotes
1397
- \let\@makefnmark\relax \let\@thefnmark\relax
1398
- \let\@makefntext\noindent
1399
- \ifx\@empty\thankses\else
1400
- \footnotetextcopyrightpermission{%
1401
- \def\par{\let\par\@par}\parindent\z@\@setthanks}%
1402
- \fi
1403
- \footnotetextcopyrightpermission{%
1404
- \if@ACM@authordraft
1405
- \raisebox{-2ex}[\z@][\z@]{\makebox[0pt][l]{\large\bfseries
1406
- Unpublished
1407
- working draft. Not for distribution}}%
1408
- \color[gray]{0.9}%
1409
- \fi
1410
- \parindent\z@\parskip0.1\baselineskip
1411
- \if@ACM@authorversion\else
1412
- \if@printpermission\@copyrightpermission\par\fi
1413
- \fi
1414
- \if@ACM@manuscript\else
1415
- \if@ACM@journal\else % Print the conference information
1416
- {\itshape \acmConference@shortname, \acmConference@date, \acmConference@venue}\par
1417
- \fi
1418
- \fi
1419
- \if@printcopyright
1420
- \copyright\ \@copyrightyear\ \@copyrightowner\\
1421
- \else
1422
- \@copyrightyear.\
1423
- \fi
1424
- \if@ACM@manuscript
1425
- Manuscript submitted to ACM\\
1426
- \else
1427
- \if@ACM@authorversion
1428
- This is the author's version of the work. It is posted here for
1429
- your personal use. Not for redistribution. The definitive Version
1430
- of Record was published in
1431
- \if@ACM@journal
1432
- \emph{\@journalName}%
1433
- \else
1434
- \emph{Proceedings of \acmConference@name, \acmConference@date}%
1435
- \fi
1436
- \ifx\@acmDOI\@empty
1437
- .
1438
- \else
1439
- , \@formatdoi{\@acmDOI}.
1440
- \fi\\
1441
- \else
1442
- \if@ACM@journal
1443
- \@permissionCodeOne/\@acmYear/\@acmMonth-ART\@acmArticle\
1444
- \$\@acmPrice\\
1445
- \@formatdoi{\@acmDOI}%
1446
- \else % Conference
1447
- ACM~ISBN~\@acmISBN
1448
- \ifx\@acmPrice\@empty.\else\dots\$\@acmPrice\fi\\
1449
- \@formatdoi{\@acmDOI}%
1450
- \fi
1451
- \fi
1452
- \fi}
1453
- \endgroup
1454
- \setcounter{footnote}{0}%
1455
- \@mkabstract
1456
- \if@ACM@printccs
1457
- \ifx\@concepts\@empty\else\bgroup
1458
- {\@specialsection{CCS Concepts}%
1459
- \@concepts\par}\egroup
1460
- \fi
1461
- \fi
1462
- \ifx\@keywords\@empty\else\bgroup
1463
- {\if@ACM@journal
1464
- \@specialsection{Additional Key Words and Phrases}%
1465
- \else
1466
- \@specialsection{Keywords}%
1467
- \fi
1468
- \@keywords}\par\egroup
1469
- \fi
1470
- \andify\authors
1471
- \andify\shortauthors
1472
- \global\let\authors=\authors
1473
- \global\let\shortauthors=\shortauthors
1474
- \if@ACM@printacmref
1475
- \@mkbibcitation
1476
- \fi
1477
- \hypersetup{pdfauthor={\authors},
1478
- pdftitle={\@title}, pdfkeywords={\@concepts}}%
1479
- \@printendtopmatter
1480
- \@afterindentfalse
1481
- \@afterheading
1482
- }
1483
- \def\@specialsection#1{%
1484
- \ifcase\ACM@format@nr
1485
- \relax % manuscript
1486
- \par\medskip\small\noindent#1: %
1487
- \or % acmsmall
1488
- \par\medskip\small\noindent#1: %
1489
- \or % acmlarge
1490
- \par\medskip\small\noindent#1: %
1491
- \or % acmtog
1492
- \par\medskip\small\noindent#1: %
1493
- \or % sigconf
1494
- \section*{#1}%
1495
- \or % siggraph
1496
- \section*{#1}%
1497
- \or % sigplan
1498
- \paragraph*{#1}%
1499
- \or % sigchi
1500
- \section*{#1}%
1501
- \or % sigchi-a
1502
- \section*{#1}%
1503
- \fi}
1504
- \def\@printtopmatter{%
1505
- \ifx\@startPage\@empty
1506
- \gdef\@startPage{1}%
1507
- \else
1508
- \setcounter{page}{\@startPage}%
1509
- \fi
1510
- \thispagestyle{firstpagestyle}%
1511
- \noindent
1512
- \ifcase\ACM@format@nr
1513
- \relax % manuscript
1514
- \box\mktitle@bx\par
1515
- \noindent\hrulefill\par
1516
- \or % acmsmall
1517
- \box\mktitle@bx\par
1518
- \noindent\hrulefill\par
1519
- \or % acmlarge
1520
- \box\mktitle@bx\par
1521
- \noindent\hrulefill\par
1522
- \or % acmtog
1523
- \twocolumn[\box\mktitle@bx]%
1524
- \or % sigconf
1525
- \twocolumn[\box\mktitle@bx]%
1526
- \or % siggraph
1527
- \twocolumn[\box\mktitle@bx]%
1528
- \or % sigplan
1529
- \twocolumn[\box\mktitle@bx]%
1530
- \or % sigchi
1531
- \twocolumn[\box\mktitle@bx]%
1532
- \or % sigchi-a
1533
- \par\box\mktitle@bx\par\bigskip
1534
- \if@ACM@badge
1535
- \marginpar{\noindent
1536
- \ifx\@acmBadgeL@image\@empty\else
1537
- \href{\@acmBadgeL@url}{%
1538
- \includegraphics[width=\@ACM@badge@width]{\@acmBadgeL@image}}%
1539
- \hskip\@ACM@badge@skip
1540
- \fi
1541
- \ifx\@acmBadgeR@image\@empty\else
1542
- \href{\@acmBadgeR@url}{%
1543
- \includegraphics[width=\@ACM@badge@width]{\@acmBadgeR@image}}%
1544
- \fi}%
1545
- \fi
1546
- \fi
1547
- }
1548
- \def\@mktitle{%
1549
- \ifcase\ACM@format@nr
1550
- \relax % manuscript
1551
- \@mktitle@i
1552
- \or % acmsmall
1553
- \@mktitle@i
1554
- \or % acmlarge
1555
- \@mktitle@i
1556
- \or % acmtog
1557
- \@mktitle@i
1558
- \or % sigconf
1559
- \@mktitle@iii
1560
- \or % siggraph
1561
- \@mktitle@iii
1562
- \or % sigplan
1563
- \@mktitle@iii
1564
- \or % sigchi
1565
- \@mktitle@iii
1566
- \or % sigchi-a
1567
- \@mktitle@iv
1568
- \fi
1569
- }
1570
- \def\@titlefont{%
1571
- \ifcase\ACM@format@nr
1572
- \relax % manuscript
1573
- \LARGE\bfseries\sffamily
1574
- \or % acmsmall
1575
- \LARGE\bfseries\sffamily
1576
- \or % acmlarge
1577
- \LARGE\bfseries\sffamily
1578
- \or % acmtog
1579
- \Huge\sffamily
1580
- \or % sigconf
1581
- \Huge\sffamily\bfseries
1582
- \or % siggraph
1583
- \Huge\sffamily\bfseries
1584
- \or % sigplan
1585
- \Huge\bfseries
1586
- \or % sigchi
1587
- \Huge\sffamily\bfseries
1588
- \or % sigchi-a
1589
- \Huge\bfseries
1590
- \fi}
1591
- \def\@subtitlefont{\normalsize
1592
- \ifcase\ACM@format@nr
1593
- \relax % manuscript
1594
- \mdseries
1595
- \or % acmsmall
1596
- \mdseries
1597
- \or % acmlarge
1598
- \mdseries
1599
- \or % acmtog
1600
- \LARGE
1601
- \or % sigconf
1602
- \LARGE\mdseries
1603
- \or % siggraph
1604
- \LARGE\mdseries
1605
- \or % sigplan
1606
- \LARGE\mdseries
1607
- \or % sigchi
1608
- \LARGE\mdseries
1609
- \or % sigchi-a
1610
- \mdseries
1611
- \fi}
1612
- \def\@mktitle@i{\hsize=\textwidth
1613
- \@ACM@title@width=\hsize
1614
- \ifx\@acmBadgeL@image\@empty\else
1615
- \advance\@ACM@title@width by -\@ACM@badge@width
1616
- \advance\@ACM@title@width by -\@ACM@badge@skip
1617
- \fi
1618
- \ifx\@acmBadgeR@image\@empty\else
1619
- \advance\@ACM@title@width by -\@ACM@badge@width
1620
- \advance\@ACM@title@width by -\@ACM@badge@skip
1621
- \fi
1622
- \setbox\mktitle@bx=\vbox{\noindent\@titlefont
1623
- \ifx\@acmBadgeL@image\@empty\else
1624
- \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeL@url}{%
1625
- \includegraphics[width=\@ACM@badge@width]{\@acmBadgeL@image}}}%
1626
- \hskip\@ACM@badge@skip
1627
- \fi
1628
- \parbox[t]{\@ACM@title@width}{\raggedright
1629
- \@titlefont\noindent
1630
- \@title
1631
- \ifx\@subtitle\@empty\else
1632
- \par\noindent{\@subtitlefont\@subtitle}
1633
- \fi}%
1634
- \ifx\@acmBadgeR@image\@empty\else
1635
- \hskip\@ACM@badge@skip
1636
- \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeR@url}{%
1637
- \includegraphics[width=\@ACM@badge@width]{\@acmBadgeR@image}}}%
1638
- \fi
1639
- \par\bigskip}}%
1640
- \def\@mktitle@iii{\hsize=\textwidth
1641
- \setbox\mktitle@bx=\vbox{\@titlefont\centering
1642
- \@ACM@title@width=\hsize
1643
- \if@ACM@badge
1644
- \advance\@ACM@title@width by -2\@ACM@badge@width
1645
- \advance\@ACM@title@width by -2\@ACM@badge@skip
1646
- \parbox[b]{\@ACM@badge@width}{\strut
1647
- \ifx\@acmBadgeL@image\@empty\else
1648
- \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeL@url}{%
1649
- \includegraphics[width=\@ACM@badge@width]{\@acmBadgeL@image}}}%
1650
- \fi}%
1651
- \hskip\@ACM@badge@skip
1652
- \fi
1653
- \parbox[t]{\@ACM@title@width}{\centering\@titlefont
1654
- \@title
1655
- \ifx\@subtitle\@empty\else
1656
- \par\noindent{\@subtitlefont\@subtitle}
1657
- \fi
1658
- }%
1659
- \if@ACM@badge
1660
- \hskip\@ACM@badge@skip
1661
- \parbox[b]{\@ACM@badge@width}{\strut
1662
- \ifx\@acmBadgeR@image\@empty\else
1663
- \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeR@url}{%
1664
- \includegraphics[width=\@ACM@badge@width]{\@acmBadgeR@image}}}%
1665
- \fi}%
1666
- \fi
1667
- \par\bigskip}}%
1668
- \def\@mktitle@iv{\hsize=\textwidth
1669
- \setbox\mktitle@bx=\vbox{\raggedright\leftskip5pc\@titlefont
1670
- \noindent\leavevmode\leaders\hrule height 2pt\hfill\kern0pt\par
1671
- \noindent\@title
1672
- \ifx\@subtitle\@empty\else
1673
- \par\noindent\@subtitlefont\@subtitle
1674
- \fi
1675
- \par\bigskip}}%
1676
- \newbox\@ACM@commabox
1677
- \def\@ACM@addtoaddress#1{%
1678
- \ifvmode\else
1679
- \if@ACM@affiliation@obeypunctuation\else
1680
- \setbox\@ACM@commabox=\hbox{, }%
1681
- \unskip\cleaders\copy\@ACM@commabox\hskip\wd\@ACM@commabox
1682
- \fi\fi
1683
- #1}
1684
- \if@ACM@journal
1685
- \let\position\@gobble
1686
- \def\institution#1{#1\ignorespaces}%
1687
- \newcommand\department[2][0]{}%
1688
- \let\streetaddress\@gobble
1689
- \let\city\@gobble
1690
- \let\state\@gobble
1691
- \let\postcode\@gobble
1692
- \let\country\@gobble
1693
- \else
1694
- \def\position#1{\if@ACM@affiliation@obeypunctuation#1\else#1\par\fi}%
1695
- \def\institution#1{\if@ACM@affiliation@obeypunctuation#1\else#1\par\fi}%
1696
- \newcommand\department[2][0]{\if@ACM@affiliation@obeypunctuation
1697
- #2\else#2\par\fi}%
1698
- \def\streetaddress#1{\if@ACM@affiliation@obeypunctuation#1\else#1\par\fi}%
1699
- \let\city\@ACM@addtoaddress
1700
- \let\state\@ACM@addtoaddress
1701
- \def\postcode#1{\if@ACM@affiliation@obeypunctuation#1\else\unskip\space#1\fi}%
1702
- \let\country\@ACM@addtoaddress
1703
- \fi
1704
- \def\@mkauthors{\begingroup
1705
- \hsize=\textwidth
1706
- \ifcase\ACM@format@nr
1707
- \relax % manuscript
1708
- \@mkauthors@i
1709
- \or % acmsmall
1710
- \@mkauthors@i
1711
- \or % acmlarge
1712
- \@mkauthors@i
1713
- \or % acmtog
1714
- \@mkauthors@i
1715
- \or % sigconf
1716
- \@mkauthors@iii
1717
- \or % siggraph
1718
- \@mkauthors@iii
1719
- \or % sigplan
1720
- \@mkauthors@iii
1721
- \or % sigchi
1722
- \@mkauthors@iii
1723
- \or % sigchi-a
1724
- \@mkauthors@iv
1725
- \fi
1726
- \endgroup
1727
- }
1728
- \def\@authorfont{\Large\sffamily}
1729
- \def\@affiliationfont{\normalsize\normalfont}
1730
- \ifcase\ACM@format@nr
1731
- \relax % manuscript
1732
- \or % acmsmall
1733
- \def\@authorfont{\large\sffamily}
1734
- \def\@affiliationfont{\small\normalfont}
1735
- \or % acmlarge
1736
- \or % acmtog
1737
- \def\@authorfont{\LARGE\sffamily}
1738
- \def\@affiliationfont{\large}
1739
- \or % sigconf
1740
- \def\@authorfont{\LARGE}
1741
- \def\@affiliationfont{\large}
1742
- \or % siggraph
1743
- \def\@authorfont{\normalsize\normalfont}
1744
- \def\@affiliationfont{\normalsize\normalfont}
1745
- \or % sigplan
1746
- \def\@authorfont{\Large\normalfont}
1747
- \def\@affiliationfont{\normalsize\normalfont}
1748
- \or % sigchi
1749
- \def\@authorfont{\bfseries}
1750
- \def\@affiliationfont{\mdseries}
1751
- \or % sigchi-a
1752
- \def\@authorfont{\bfseries}
1753
- \def\@affiliationfont{\mdseries}
1754
- \fi
1755
- \def\@typeset@author@line{%
1756
- \andify\@currentauthors\par\noindent
1757
- \@currentauthors\def\@currentauthors{}%
1758
- \ifx\@currentaffiliations\@empty\else
1759
- \andify\@currentaffiliations
1760
- \unskip, {\@currentaffiliations}\par
1761
- \fi
1762
- \def\@currentaffiliations{}}
1763
- \def\@mkauthors@i{%
1764
- \def\@currentauthors{}%
1765
- \def\@currentaffiliations{}%
1766
- \global\let\and\@typeset@author@line
1767
- \def\@author##1{%
1768
- \ifx\@currentauthors\@empty
1769
- \gdef\@currentauthors{\@authorfont\MakeUppercase{##1}}%
1770
- \else
1771
- \g@addto@macro{\@currentauthors}{\and\MakeUppercase{##1}}%
1772
- \fi
1773
- \gdef\and{}}%
1774
- \def\email##1##2{}%
1775
- \def\affiliation##1##2{%
1776
- \def\@tempa{##2}\ifx\@tempa\@empty\else
1777
- \ifx\@currentaffiliations\@empty
1778
- \gdef\@currentaffiliations{%
1779
- \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
1780
- \setkeys{@ACM@affiliation@}{##1}%
1781
- \@affiliationfont##2}%
1782
- \else
1783
- \g@addto@macro{\@currentaffiliations}{\and
1784
- \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
1785
- \setkeys{@ACM@affiliation@}{##1}##2}%
1786
- \fi
1787
- \fi
1788
- \global\let\and\@typeset@author@line}%
1789
- \global\setbox\mktitle@bx=\vbox{\noindent\box\mktitle@bx\par\medskip
1790
- \noindent\addresses\@typeset@author@line
1791
- \par\medskip}%
1792
- }
1793
- \newbox\author@bx
1794
- \newdimen\author@bx@wd
1795
- \newskip\author@bx@sep
1796
- \author@bx@sep=1pc\relax
1797
- \def\@typeset@author@bx{\bgroup\hsize=\author@bx@wd\def\and{\par}%
1798
- \global\setbox\author@bx=\vtop{\if@ACM@sigchiamode\else\centering\fi
1799
- \@authorfont\@currentauthors\par\@affiliationfont
1800
- \@currentaffiliation}\egroup
1801
- \box\author@bx\hspace{\author@bx@sep}%
1802
- \gdef\@currentauthors{}%
1803
- \gdef\@currentaffiliation{}}
1804
- \def\@mkauthors@iii{%
1805
- \author@bx@wd=\textwidth\relax
1806
- \advance\author@bx@wd by -\author@bx@sep\relax
1807
- \ifcase\num@authorgroups
1808
- \relax % 0?
1809
- \or % 1=one author per row
1810
- \or % 2=two authors per row
1811
- \divide\author@bx@wd by \num@authorgroups\relax
1812
- \or % 3=three authors per row
1813
- \divide\author@bx@wd by \num@authorgroups\relax
1814
- \or % 4=two authors per row (!)
1815
- \divide\author@bx@wd by 2\relax
1816
- \else % three authors per row
1817
- \divide\author@bx@wd by 3\relax
1818
- \fi
1819
- \advance\author@bx@wd by -\author@bx@sep\relax
1820
- \gdef\@currentauthors{}%
1821
- \gdef\@currentaffiliation{}%
1822
- \def\@author##1{\ifx\@currentauthors\@empty
1823
- \gdef\@currentauthors{\par##1}%
1824
- \else
1825
- \g@addto@macro\@currentauthors{\par##1}%
1826
- \fi
1827
- \gdef\and{}}%
1828
- \def\email##1##2{\ifx\@currentaffiliation\@empty
1829
- \gdef\@currentaffiliation{\nolinkurl{##2}}%
1830
- \else
1831
- \g@addto@macro\@currentaffiliation{\par\nolinkurl{##2}}%
1832
- \fi}%
1833
- \def\affiliation##1##2{\ifx\@currentaffiliation\@empty
1834
- \gdef\@currentaffiliation{%
1835
- \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
1836
- \setkeys{@ACM@affiliation@}{##1}##2}%
1837
- \else
1838
- \g@addto@macro\@currentaffiliation{\par
1839
- \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
1840
- \setkeys{@ACM@affiliation@}{##1}##2}%
1841
- \fi
1842
- \global\let\and\@typeset@author@bx
1843
- }%
1844
- \hsize=\textwidth
1845
- \global\setbox\mktitle@bx=\vbox{\noindent
1846
- \box\mktitle@bx\par\medskip\leavevmode
1847
- \lineskip=1pc\relax\centering\hspace*{-1em}%
1848
- \addresses\let\and\@typeset@author@bx\and\par\bigskip}}
1849
- \def\@mkauthors@iv{%
1850
- \author@bx@wd=\columnwidth\relax
1851
- \advance\author@bx@wd by -\author@bx@sep\relax
1852
- \ifcase\num@authorgroups
1853
- \relax % 0?
1854
- \or % 1=one author per row
1855
- \else % 2=two authors per row
1856
- \divide\author@bx@wd by 2\relax
1857
- \fi
1858
- \advance\author@bx@wd by -\author@bx@sep\relax
1859
- \gdef\@currentauthors{}%
1860
- \gdef\@currentaffiliation{}%
1861
- \def\@author##1{\ifx\@currentauthors\@empty
1862
- \gdef\@currentauthors{\par##1}%
1863
- \else
1864
- \g@addto@macro\@currentauthors{\par##1}%
1865
- \fi
1866
- \gdef\and{}}%
1867
- \def\email##1##2{\ifx\@currentaffiliation\@empty
1868
- \gdef\@currentaffiliation{\nolinkurl{##2}}%
1869
- \else
1870
- \g@addto@macro\@currentaffiliation{\par\nolinkurl{##2}}%
1871
- \fi}%
1872
- \def\affiliation##1##2{\ifx\@currentaffiliation\@empty
1873
- \gdef\@currentaffiliation{%
1874
- \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
1875
- \setkeys{@ACM@affiliation@}{##1}##2}%
1876
- \else
1877
- \g@addto@macro\@currentaffiliation{\par
1878
- \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
1879
- \setkeys{@ACM@affiliation@}{##1}##2}%
1880
- \fi
1881
- \global\let\and\@typeset@author@bx}%
1882
- \bgroup\hsize=\columnwidth
1883
- \par\raggedright\leftskip=\z@
1884
- \lineskip=1pc\noindent
1885
- \addresses\let\and\@typeset@author@bx\and\par\bigskip\egroup}
1886
- \def\@authornotemark{\g@addto@macro\@currentauthors{\footnotemark}}
1887
- \def\@mkteasers{%
1888
- \ifx\@teaserfigures\@empty\else
1889
- \def\@teaser##1{\par\bigskip\bgroup
1890
- \captionsetup{type=figure}##1\egroup\par}
1891
- \global\setbox\mktitle@bx=\vbox{\noindent\box\mktitle@bx\par
1892
- \noindent\@teaserfigures\par\medskip}%
1893
- \fi}
1894
- \def\@setaddresses{}
1895
- \def\@mkabstract{\bgroup
1896
- \ifx\@abstract\@lempty\else
1897
- {\phantomsection\addcontentsline{toc}{section}{Abstract}%
1898
- \if@ACM@journal
1899
- \small\noindent
1900
- \else
1901
- \section*{Abstract}%
1902
- \fi
1903
- \ignorespaces\@abstract\par}%
1904
- \fi\egroup}
1905
- \def\@mkbibcitation{\bgroup
1906
- \def\footnotemark{}%
1907
- \def\\{\unskip{} \ignorespaces}%
1908
- \def\footnote{\ClassError{\@classname}{Please do note use footnotes
1909
- inside \string\title{} or \string\author{} command! Use
1910
- \string\titlenote{} or \string\authornote{} instead!}}%
1911
- \par\medskip\small\noindent{\bfseries ACM Reference format:}\par\nobreak
1912
- \noindent\authors. \@acmYear. \@title.
1913
- \if@ACM@journal
1914
- \textit{\@journalNameShort}
1915
- \@acmVolume, \@acmNumber, Article~\@acmArticle\ (\@acmPubDate),
1916
- \ref{TotPages}~pages.
1917
- \else
1918
- In \textit{Proceedings of \acmConference@name, \acmConference@venue,
1919
- \acmConference@date
1920
- \ifx\acmConference@name\acmConference@shortname\else
1921
- \ (\acmConference@shortname)\fi
1922
- ,} \ref{TotPages}~pages.
1923
- \fi\par
1924
- \noindent\@formatdoi{\@acmDOI}
1925
- \par\egroup}
1926
- \def\@printendtopmatter{\par\medskip
1927
- \ifcase\ACM@format@nr
1928
- \relax % manuscript
1929
- \noindent\hrulefill\par\medskip
1930
- \or % acmsmall
1931
- \noindent\hrulefill\par\medskip
1932
- \or % acmlarge
1933
- \noindent\hrulefill\par\medskip
1934
- \or % acmtog
1935
- \par\bigskip
1936
- \or % sigconf
1937
- \par\bigskip
1938
- \or % siggraph
1939
- \par\bigskip
1940
- \or % sigplan
1941
- \par\bigskip
1942
- \or % sigchi
1943
- \par\bigskip
1944
- \or % sigchi-a
1945
- \fi
1946
- }
1947
- \def\@setthanks{\long\def\thanks##1{\par##1\@addpunct.}\thankses}
1948
- \RequirePackage{fancyhdr}
1949
- \if@ACM@review
1950
- \newsavebox{\ACM@linecount@bx}
1951
- \newlength\ACM@linecount@bxht
1952
- \newcount\ACM@linecount
1953
- \ACM@linecount\@ne\relax
1954
- \def\ACM@mk@linecount{%
1955
- \savebox{\ACM@linecount@bx}[4em][t]{\parbox[t]{4em}{%
1956
- \setlength{\ACM@linecount@bxht}{-\baselineskip}%
1957
- \loop{\color{ACMRed}\scriptsize\the\ACM@linecount}\\
1958
- \global\advance\ACM@linecount by \@ne
1959
- \addtolength{\ACM@linecount@bxht}{\baselineskip}%
1960
- \ifdim\ACM@linecount@bxht<\textheight\repeat}}}
1961
- \fi
1962
- \def\ACM@linecountL{%
1963
- \if@ACM@review
1964
- \ACM@mk@linecount
1965
- \begin{picture}(0,0)%
1966
- \put(-26,-22){\usebox{\ACM@linecount@bx}}%
1967
- \end{picture}%
1968
- \fi}
1969
- \def\ACM@linecountR{%
1970
- \if@ACM@review
1971
- \ACM@mk@linecount
1972
- \begin{picture}(0,0)%
1973
- \put(20,-22){\usebox{\ACM@linecount@bx}}%
1974
- \end{picture}%
1975
- \fi}
1976
- \if@ACM@timestamp
1977
- % Subtracting 30 from \time gives us the effect of rounding-down despite
1978
- % \numexpr rounding to nearest
1979
- \newcounter{ACM@time@hours}
1980
- \setcounter{ACM@time@hours}{\numexpr (\time - 30) / 60 \relax}
1981
- \newcounter{ACM@time@minutes}
1982
- \setcounter{ACM@time@minutes}{\numexpr \time - \theACM@time@hours * 60 \relax}
1983
- \newcommand\ACM@timestamp{%
1984
- \footnotesize%
1985
- \the\year-\two@digits{\the\month}-\two@digits{\the\day}{ }%
1986
- \two@digits{\theACM@time@hours}:\two@digits{\theACM@time@minutes}{ }%
1987
- page~\thepage\ (pp. \@startPage-\pageref*{TotPages})%
1988
- \ifx\@acmSubmissionID\@empty\relax\else
1989
- ~Submission~ID: \@acmSubmissionID
1990
- \fi
1991
- }
1992
- \fi
1993
- \def\@shortauthors{\if@ACM@anonymous Anon.\else\shortauthors\fi}
1994
- \def\@headfootfont{%
1995
- \ifcase\ACM@format@nr
1996
- \relax % manuscript
1997
- \sffamily
1998
- \or % acmsmall
1999
- \sffamily
2000
- \or % acmlarge
2001
- \sffamily
2002
- \or % acmtog
2003
- \sffamily
2004
- \or % sigconf
2005
- \sffamily
2006
- \or % siggraph
2007
- \sffamily
2008
- \or % sigplan
2009
- \sffamily
2010
- \or % sigchi
2011
- \sffamily
2012
- \or % sigchi-a
2013
- \sffamily
2014
- \fi}
2015
- \fancypagestyle{standardpagestyle}{%
2016
- \fancyhf{}%
2017
- \renewcommand{\headrulewidth}{\z@}%
2018
- \renewcommand{\footrulewidth}{\z@}%
2019
- \ifcase\ACM@format@nr
2020
- \relax % manuscript
2021
- \fancyhead[LE]{\ACM@linecountL\if@ACM@printfolios\thepage\fi}%
2022
- \fancyhead[RO]{\if@ACM@printfolios\thepage\fi}%
2023
- \fancyhead[RE]{\@shortauthors}%
2024
- \fancyhead[LO]{\ACM@linecountL\shorttitle}%
2025
- \fancyfoot[RO,LE]{\footnotesize Manuscript submitted to ACM}%
2026
- \or % acmsmall
2027
- \fancyhead[LE]{\ACM@linecountL\@headfootfont\@acmArticle\if@ACM@printfolios:\thepage\fi}%
2028
- \fancyhead[RO]{\@headfootfont\@acmArticle\if@ACM@printfolios:\thepage\fi}%
2029
- \fancyhead[RE]{\@headfootfont\@shortauthors}%
2030
- \fancyhead[LO]{\ACM@linecountL\@headfootfont\shorttitle}%
2031
- \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
2032
- \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}%
2033
- \or % acmlarge
2034
- \fancyhead[LE]{\ACM@linecountL\@headfootfont
2035
- \@acmArticle\if@ACM@printfolios:\thepage\fi\quad\textbullet\quad\@shortauthors}%
2036
- \fancyhead[LO]{\ACM@linecountL}%
2037
- \fancyhead[RO]{\@headfootfont
2038
- \shorttitle\quad\textbullet\quad\@acmArticle\if@ACM@printfolios:\thepage\fi}%
2039
- \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
2040
- \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}%
2041
- \or % acmtog
2042
- \fancyhead[LE]{\ACM@linecountL\@headfootfont
2043
- \@acmArticle\if@ACM@printfolios:\thepage\fi\quad\textbullet\quad\@shortauthors}%
2044
- \fancyhead[LO]{\ACM@linecountL}%
2045
- \fancyhead[RE]{\ACM@linecountR}%
2046
- \fancyhead[RO]{\@headfootfont
2047
- \shorttitle\quad\textbullet\quad\@acmArticle\if@ACM@printfolios:\thepage\fi\ACM@linecountR}%
2048
- \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
2049
- \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}%
2050
- \else % Proceedings
2051
- \fancyfoot[C]{\if@ACM@printfolios\footnotesize\thepage\fi}%
2052
- \fancyhead[LO]{\ACM@linecountL\@headfootfont\shorttitle}%
2053
- \fancyhead[RE]{\@headfootfont\@shortauthors\ACM@linecountR}%
2054
- \fancyhead[LE]{\ACM@linecountL\@headfootfont\acmConference@shortname,
2055
- \acmConference@date, \acmConference@venue}%
2056
- \fancyhead[RO]{\@headfootfont\acmConference@shortname,
2057
- \acmConference@date, \acmConference@venue\ACM@linecountR}%
2058
- \fi
2059
- \if@ACM@sigchiamode
2060
- \fancyheadoffset[L]{\dimexpr(\marginparsep+\marginparwidth)}%
2061
- \fi
2062
- \if@ACM@timestamp
2063
- \fancyfoot[LO,RE]{\ACM@timestamp}
2064
- \fi
2065
- }
2066
- \pagestyle{standardpagestyle}
2067
- \newdimen\@folio@wd
2068
- \@folio@wd=\z@
2069
- \newdimen\@folio@ht
2070
- \@folio@ht=\z@
2071
- \newdimen\@folio@voffset
2072
- \@folio@voffset=\z@
2073
- \def\@folio@max{1}
2074
- \ifcase\ACM@format@nr
2075
- \relax % manuscript
2076
- \or % acmsmall
2077
- \@folio@wd=45.75pt\relax
2078
- \@folio@ht=1.25in\relax
2079
- \@folio@voffset=.2in\relax
2080
- \def\@folio@max{8}
2081
- \or % acmlarge
2082
- \@folio@wd=43.25pt\relax
2083
- \@folio@ht=79pt\relax
2084
- \@folio@voffset=.55in\relax
2085
- \def\@folio@max{10}
2086
- \fi
2087
- \def\@folioblob{\@tempcnta=\@acmArticleSeq\relax
2088
- \loop
2089
- \ifnum\@tempcnta>\@folio@max\relax
2090
- \advance\@tempcnta by - \@folio@max
2091
- \repeat
2092
- \advance\@tempcnta by -1\relax
2093
- \@tempdima=\@folio@ht\relax
2094
- \multiply\@tempdima by \the\@tempcnta\relax
2095
- \advance\@tempdima by -\@folio@voffset\relax
2096
- \begin{picture}(0,0)
2097
- \makebox[\z@]{\raisebox{-\@tempdima}{%
2098
- \rlap{%
2099
- \raisebox{-0.45\@folio@ht}[\z@][\z@]{%
2100
- \rule{\@folio@wd}{\@folio@ht}}}%
2101
- \parbox{\@folio@wd}{%
2102
- \centering
2103
- \textcolor{white}{\LARGE\bfseries\sffamily\@acmArticle}}}}
2104
- \end{picture}}
2105
-
2106
- \fancypagestyle{firstpagestyle}{%
2107
- \fancyhf{}%
2108
- \renewcommand{\headrulewidth}{\z@}%
2109
- \renewcommand{\footrulewidth}{\z@}%
2110
- \ifcase\ACM@format@nr
2111
- \relax % manuscript
2112
- \fancyhead[L]{\ACM@linecountL}%
2113
- \fancyfoot[RO,LE]{\if@ACM@printfolios\small\thepage\fi}%
2114
- \fancyfoot[RE,LO]{\footnotesize Manuscript submitted to ACM}%
2115
- \or % acmsmall
2116
- \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
2117
- \@acmNumber, Article \@acmArticle. Publication date:
2118
- \@acmPubDate.}%
2119
- \fancyhead[LE]{\ACM@linecountL\@folioblob}%
2120
- \fancyhead[LO]{\ACM@linecountL}%
2121
- \fancyhead[RO]{\@folioblob}%
2122
- \fancyheadoffset[RO,LE]{0.6\@folio@wd}%
2123
- \or % acmlarge
2124
- \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
2125
- \@acmNumber, Article \@acmArticle. Publication date:
2126
- \@acmPubDate.}%
2127
- \fancyhead[RO]{\@folioblob}%
2128
- \fancyhead[LE]{\ACM@linecountL\@folioblob}%
2129
- \fancyhead[LO]{\ACM@linecountL}%
2130
- \fancyheadoffset[RO,LE]{1.4\@folio@wd}%
2131
- \or % acmtog
2132
- \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
2133
- \@acmNumber, Article \@acmArticle. Publication date:
2134
- \@acmPubDate.}%
2135
- \fancyhead[L]{\ACM@linecountL}%
2136
- \fancyhead[R]{\ACM@linecountR}%
2137
- \else % Conference proceedings
2138
- \fancyhead[L]{\ACM@linecountL}%
2139
- \fancyhead[R]{\ACM@linecountR}%
2140
- \fancyfoot[C]{\if@ACM@printfolios\footnotesize\thepage\fi}%
2141
- \fi
2142
- \if@ACM@timestamp
2143
- \ifnum\ACM@format@nr=0\relax % Manuscript
2144
- \fancyfoot[LO,RE]{\ACM@timestamp\quad
2145
- \footnotesize Manuscript submitted to ACM}
2146
- \else
2147
- \fancyfoot[LO,RE]{\ACM@timestamp}
2148
- \fi
2149
- \fi
2150
- }
2151
- \renewcommand\section{\@startsection{section}{1}{\z@}%
2152
- {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}%
2153
- {.25\baselineskip}%
2154
- {\@secfont}}
2155
- \renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
2156
- {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}%
2157
- {.25\baselineskip}%
2158
- {\@subsecfont}}
2159
- \renewcommand\subsubsection{\@startsection{subsubsection}{3}{10pt}%
2160
- {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
2161
- {-3.5\p@}%
2162
- {\@subsubsecfont\@adddotafter}}
2163
- \renewcommand\paragraph{\@startsection{paragraph}{4}{\parindent}%
2164
- {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
2165
- {-3.5\p@}%
2166
- {\@parfont\@adddotafter}}
2167
- \renewcommand\part{\@startsection{part}{9}{\z@}%
2168
- {-10\p@ \@plus -4\p@ \@minus -2\p@}%
2169
- {4\p@}%
2170
- {\@parfont}}
2171
- \def\section@raggedright{\@rightskip\@flushglue
2172
- \rightskip\@rightskip
2173
- \leftskip\z@skip
2174
- \parindent\z@}
2175
- \def\@secfont{\sffamily\bfseries\section@raggedright\MakeUppercase}
2176
- \def\@subsecfont{\sffamily\bfseries\section@raggedright}
2177
- \def\@subsubsecfont{\sffamily\itshape}
2178
- \def\@parfont{\itshape}
2179
- \setcounter{secnumdepth}{3}
2180
- \ifcase\ACM@format@nr
2181
- \relax % manuscript
2182
- \or % acmsmall
2183
- \or % acmlarge
2184
- \def\@secfont{\sffamily\large\section@raggedright\MakeUppercase}
2185
- \def\@subsecfont{\sffamily\large\section@raggedright}
2186
- \or % acmtog
2187
- \def\@secfont{\sffamily\large\section@raggedright\MakeUppercase}
2188
- \def\@subsecfont{\sffamily\large\section@raggedright}
2189
- \or % sigconf
2190
- \def\@secfont{\bfseries\Large\section@raggedright\MakeUppercase}
2191
- \def\@subsecfont{\bfseries\Large\section@raggedright}
2192
- \or % siggraph
2193
- \def\@secfont{\bfseries\sffamily\Large\section@raggedright\MakeUppercase}
2194
- \def\@subsecfont{\bfseries\sffamily\Large\section@raggedright}
2195
- \or % sigplan
2196
- \def\@secfont{\bfseries\Large\section@raggedright}
2197
- \def\@subsecfont{\bfseries\section@raggedright}
2198
- \renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
2199
- {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}%
2200
- {.25\baselineskip}%
2201
- {\@subsubsecfont}}
2202
- \def\@subsubsecfont{\bfseries\section@raggedright}
2203
- \renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
2204
- {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
2205
- {-3.5\p@}%
2206
- {\@parfont\@addspaceafter}}
2207
- \def\@parfont{\bfseries\itshape}
2208
- \renewcommand\subparagraph{\@startsection{subparagraph}{5}{\z@}%
2209
- {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
2210
- {-3.5\p@}%
2211
- {\@subparfont\@addspaceafter}}
2212
- \def\@subparfont{\itshape}
2213
- \or % sigchi
2214
- \setcounter{secnumdepth}{1}
2215
- \def\@secfont{\bfseries\sffamily\section@raggedright\MakeUppercase}
2216
- \def\@subsecfont{\bfseries\sffamily\section@raggedright}
2217
- \or % sigchi-a
2218
- \setcounter{secnumdepth}{0}
2219
- \def\@secfont{\bfseries\sffamily\section@raggedright\MakeUppercase}
2220
- \def\@subsecfont{\bfseries\sffamily\section@raggedright}
2221
- \fi
2222
- \def\@adddotafter#1{#1\@addpunct{.}}
2223
- \def\@addspaceafter#1{#1\@addpunct{\enspace}}
2224
- \providecommand*\@dotsep{4.5}
2225
- \def\@acmplainbodyfont{\itshape}
2226
- \def\@acmplainindent{\parindent}
2227
- \def\@acmplainheadfont{\scshape}
2228
- \def\@acmplainnotefont{\@empty}
2229
- \ifcase\ACM@format@nr
2230
- \relax % manuscript
2231
- \or % acmsmall
2232
- \or % acmlarge
2233
- \or % acmtog
2234
- \or % sigconf
2235
- \or % siggraph
2236
- \or % sigplan
2237
- \def\@acmplainbodyfont{\itshape}
2238
- \def\@acmplainindent{\z@}
2239
- \def\@acmplainheadfont{\bfseries}
2240
- \def\@acmplainnotefont{\normalfont}
2241
- \or % sigchi
2242
- \or % sigchi-a
2243
- \fi
2244
- \newtheoremstyle{acmplain}%
2245
- {.5\baselineskip\@plus.2\baselineskip
2246
- \@minus.2\baselineskip}% space above
2247
- {.5\baselineskip\@plus.2\baselineskip
2248
- \@minus.2\baselineskip}% space below
2249
- {\@acmplainbodyfont}% body font
2250
- {\@acmplainindent}% indent amount
2251
- {\@acmplainheadfont}% head font
2252
- {.}% punctuation after head
2253
- {.5em}% spacing after head
2254
- {\thmname{#1}\thmnumber{ #2}\thmnote{ {\@acmplainnotefont(#3)}}}% head spec
2255
- \def\@acmdefinitionbodyfont{\normalfont}
2256
- \def\@acmdefinitionindent{\parindent}
2257
- \def\@acmdefinitionheadfont{\itshape}
2258
- \def\@acmdefinitionnotefont{\@empty}
2259
- \ifcase\ACM@format@nr
2260
- \relax % manuscript
2261
- \or % acmsmall
2262
- \or % acmlarge
2263
- \or % acmtog
2264
- \or % sigconf
2265
- \or % siggraph
2266
- \or % sigplan
2267
- \def\@acmdefinitionbodyfont{\normalfont}
2268
- \def\@acmdefinitionindent{\z@}
2269
- \def\@acmdefinitionheadfont{\bfseries}
2270
- \def\@acmdefinitionnotefont{\normalfont}
2271
- \or % sigchi
2272
- \or % sigchi-a
2273
- \fi
2274
- \newtheoremstyle{acmdefinition}%
2275
- {.5\baselineskip\@plus.2\baselineskip
2276
- \@minus.2\baselineskip}% space above
2277
- {.5\baselineskip\@plus.2\baselineskip
2278
- \@minus.2\baselineskip}% space below
2279
- {\@acmdefinitionbodyfont}% body font
2280
- {\@acmdefinitionindent}% indent amount
2281
- {\@acmdefinitionheadfont}% head font
2282
- {.}% punctuation after head
2283
- {.5em}% spacing after head
2284
- {\thmname{#1}\thmnumber{ #2}\thmnote{ {\@acmdefinitionnotefont(#3)}}}% head spec
2285
- \theoremstyle{acmplain}
2286
- \newtheorem{theorem}{Theorem}[section]
2287
- \newtheorem{conjecture}[theorem]{Conjecture}
2288
- \newtheorem{proposition}[theorem]{Proposition}
2289
- \newtheorem{lemma}[theorem]{Lemma}
2290
- \newtheorem{corollary}[theorem]{Corollary}
2291
- \theoremstyle{acmdefinition}
2292
- \newtheorem{example}[theorem]{Example}
2293
- \newtheorem{definition}[theorem]{Definition}
2294
- \theoremstyle{acmplain}
2295
- \def\@proofnamefont{\scshape}
2296
- \def\@proofindent{\indent}
2297
- \ifcase\ACM@format@nr
2298
- \relax % manuscript
2299
- \or % acmsmall
2300
- \or % acmlarge
2301
- \or % acmtog
2302
- \or % sigconf
2303
- \or % siggraph
2304
- \or % sigplan
2305
- \def\@proofnamefont{\itshape}
2306
- \def\@proofindent{\noindent}
2307
- \or % sigchi
2308
- \or % sigchi-a
2309
- \fi
2310
- \renewenvironment{proof}[1][\proofname]{\par
2311
- \pushQED{\qed}%
2312
- \normalfont \topsep6\p@\@plus6\p@\relax
2313
- \trivlist
2314
- \item[\@proofindent\hskip\labelsep
2315
- {\@proofnamefont #1\@addpunct{.}}]\ignorespaces
2316
- }{%
2317
- \popQED\endtrivlist\@endpefalse
2318
- }
2319
- \specialcomment{acks}{%
2320
- \begingroup
2321
- \section*{Acknowledgments}
2322
- \phantomsection\addcontentsline{toc}{section}{Acknowledgments}
2323
- }{%
2324
- \endgroup
2325
- }
2326
- \def\grantsponsor#1#2#3{#2}
2327
- \newcommand\grantnum[3][]{#3%
2328
- \def\@tempa{#1}\ifx\@tempa\@empty\else\space(\url{#1})\fi}
2329
- \if@ACM@screen
2330
- \includecomment{screenonly}
2331
- \excludecomment{printonly}
2332
- \else
2333
- \excludecomment{screenonly}
2334
- \includecomment{printonly}
2335
- \fi
2336
- \if@ACM@anonymous
2337
- \excludecomment{anonsuppress}
2338
- \excludecomment{acks}
2339
- \else
2340
- \includecomment{anonsuppress}
2341
- \fi
2342
- \newcommand\showeprint[2][arxiv]{%
2343
- \def\@tempa{#1}%
2344
- \ifx\@tempa\@empty\def\@tempa{arxiv}\fi
2345
- \def\@tempb{arxiv}%
2346
- \ifx\@tempa\@tempb
2347
- arXiv:\href{http://arxiv.org/abs/#2}{#2}\else arXiv:#2%
2348
- \fi}
2349
- \normalsize\normalfont\frenchspacing
2350
- \endinput
2351
- %%
2352
- %% End of file `acmart.cls'.