galaaz 0.4.6 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (181) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +3575 -118
  3. data/Rakefile +21 -4
  4. data/bin/gknit +152 -6
  5. data/bin/gknit-draft +105 -0
  6. data/bin/gknit-draft.rb +28 -0
  7. data/bin/gknit_Rscript +127 -0
  8. data/bin/grun +27 -1
  9. data/bin/gstudio +47 -4
  10. data/bin/{gstudio.rb → gstudio_irb.rb} +0 -0
  11. data/bin/gstudio_pry.rb +7 -0
  12. data/blogs/galaaz_ggplot/galaaz_ggplot.Rmd +3 -12
  13. data/blogs/galaaz_ggplot/galaaz_ggplot.html +77 -222
  14. data/blogs/galaaz_ggplot/galaaz_ggplot.md +4 -31
  15. data/blogs/galaaz_ggplot/galaaz_ggplot.pdf +0 -0
  16. data/blogs/galaaz_ggplot/galaaz_ggplot_files/figure-html/midwest_rb.png +0 -0
  17. data/blogs/galaaz_ggplot/galaaz_ggplot_files/figure-html/scatter_plot_rb.png +0 -0
  18. data/blogs/galaaz_ggplot/midwest.Rmd +1 -9
  19. data/blogs/gknit/gknit.Rmd +232 -123
  20. data/blogs/{dev/dev.html → gknit/gknit.html} +1897 -33
  21. data/blogs/gknit/gknit.pdf +0 -0
  22. data/blogs/gknit/lst.rds +0 -0
  23. data/blogs/gknit/stats.bib +27 -0
  24. data/blogs/manual/lst.rds +0 -0
  25. data/blogs/manual/manual.Rmd +1893 -47
  26. data/blogs/manual/manual.html +3153 -347
  27. data/blogs/manual/manual.md +3575 -118
  28. data/blogs/manual/manual.pdf +0 -0
  29. data/blogs/manual/manual.tex +4026 -0
  30. data/blogs/manual/manual_files/figure-html/bubble-1.png +0 -0
  31. data/blogs/manual/manual_files/figure-html/diverging_bar.png +0 -0
  32. data/blogs/manual/manual_files/figure-latex/bubble-1.png +0 -0
  33. data/blogs/manual/manual_files/figure-latex/diverging_bar.pdf +0 -0
  34. data/blogs/{dev → manual}/model.rb +0 -0
  35. data/blogs/nse_dplyr/nse_dplyr.Rmd +849 -0
  36. data/blogs/nse_dplyr/nse_dplyr.html +878 -0
  37. data/blogs/nse_dplyr/nse_dplyr.md +1198 -0
  38. data/blogs/nse_dplyr/nse_dplyr.pdf +0 -0
  39. data/blogs/oh_my/oh_my.html +274 -386
  40. data/blogs/oh_my/oh_my.md +208 -205
  41. data/blogs/ruby_plot/ruby_plot.Rmd +64 -84
  42. data/blogs/ruby_plot/ruby_plot.html +235 -208
  43. data/blogs/ruby_plot/ruby_plot.md +239 -34
  44. data/blogs/ruby_plot/ruby_plot.pdf +0 -0
  45. data/blogs/ruby_plot/ruby_plot_files/figure-html/dose_len.png +0 -0
  46. data/blogs/ruby_plot/ruby_plot_files/figure-html/facet_by_delivery.png +0 -0
  47. data/blogs/ruby_plot/ruby_plot_files/figure-html/facet_by_dose.png +0 -0
  48. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_by_delivery_color.png +0 -0
  49. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_by_delivery_color2.png +0 -0
  50. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_with_decorations.png +0 -0
  51. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_with_jitter.png +0 -0
  52. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_with_points.png +0 -0
  53. data/blogs/ruby_plot/ruby_plot_files/figure-html/final_box_plot.png +0 -0
  54. data/blogs/ruby_plot/ruby_plot_files/figure-html/final_violin_plot.png +0 -0
  55. data/blogs/ruby_plot/ruby_plot_files/figure-html/violin_with_jitter.png +0 -0
  56. data/examples/Bibliography/master.bib +50 -0
  57. data/examples/Bibliography/stats.bib +72 -0
  58. data/examples/islr/ch2.spec.rb +1 -1
  59. data/examples/islr/ch3_boston.rb +4 -4
  60. data/examples/islr/x_y_rnorm.jpg +0 -0
  61. data/examples/latex_templates/Test-acm_article/Makefile +16 -0
  62. data/examples/latex_templates/Test-acm_article/Test-acm_article.Rmd +65 -0
  63. data/examples/latex_templates/Test-acm_article/acm_proc_article-sp.cls +1670 -0
  64. data/examples/latex_templates/Test-acm_article/sensys-abstract.cls +703 -0
  65. data/examples/latex_templates/Test-acm_article/sigproc.bib +59 -0
  66. data/examples/latex_templates/Test-acs_article/Test-acs_article.Rmd +260 -0
  67. data/examples/latex_templates/Test-acs_article/Test-acs_article.pdf +0 -0
  68. data/examples/latex_templates/Test-acs_article/acs-Test-acs_article.bib +11 -0
  69. data/examples/latex_templates/Test-acs_article/acs-my_output.bib +11 -0
  70. data/examples/latex_templates/Test-acs_article/acstest.bib +17 -0
  71. data/examples/latex_templates/Test-aea_article/AEA.cls +1414 -0
  72. data/examples/latex_templates/Test-aea_article/BibFile.bib +0 -0
  73. data/examples/latex_templates/Test-aea_article/Test-aea_article.Rmd +108 -0
  74. data/examples/latex_templates/Test-aea_article/Test-aea_article.pdf +0 -0
  75. data/examples/latex_templates/Test-aea_article/aea.bst +1269 -0
  76. data/examples/latex_templates/Test-aea_article/multicol.sty +853 -0
  77. data/examples/latex_templates/Test-aea_article/references.bib +0 -0
  78. data/examples/latex_templates/Test-aea_article/setspace.sty +546 -0
  79. data/examples/latex_templates/Test-amq_article/Test-amq_article.Rmd +256 -0
  80. data/examples/latex_templates/Test-amq_article/Test-amq_article.pdf +0 -0
  81. data/examples/latex_templates/Test-amq_article/Test-amq_article.pdfsync +3397 -0
  82. data/examples/latex_templates/Test-amq_article/pics/Figure2.pdf +0 -0
  83. data/examples/latex_templates/Test-ams_article/Test-ams_article.Rmd +215 -0
  84. data/examples/latex_templates/Test-ams_article/amstest.bib +436 -0
  85. data/examples/latex_templates/Test-asa_article/Test-asa_article.Rmd +153 -0
  86. data/examples/latex_templates/Test-asa_article/Test-asa_article.pdf +0 -0
  87. data/examples/latex_templates/Test-asa_article/agsm.bst +1353 -0
  88. data/examples/latex_templates/Test-asa_article/bibliography.bib +233 -0
  89. data/examples/latex_templates/Test-ieee_article/IEEEtran.bst +2409 -0
  90. data/examples/latex_templates/Test-ieee_article/IEEEtran.cls +6346 -0
  91. data/examples/latex_templates/Test-ieee_article/Test-ieee_article.Rmd +175 -0
  92. data/examples/latex_templates/Test-ieee_article/Test-ieee_article.pdf +0 -0
  93. data/examples/latex_templates/Test-ieee_article/mybibfile.bib +20 -0
  94. data/examples/latex_templates/Test-rjournal_article/RJournal.sty +335 -0
  95. data/examples/latex_templates/Test-rjournal_article/RJreferences.bib +18 -0
  96. data/examples/latex_templates/Test-rjournal_article/RJwrapper.pdf +0 -0
  97. data/examples/latex_templates/Test-rjournal_article/Test-rjournal_article.Rmd +52 -0
  98. data/examples/latex_templates/Test-springer_article/Test-springer_article.Rmd +65 -0
  99. data/examples/latex_templates/Test-springer_article/Test-springer_article.pdf +0 -0
  100. data/examples/latex_templates/Test-springer_article/bibliography.bib +26 -0
  101. data/examples/latex_templates/Test-springer_article/spbasic.bst +1658 -0
  102. data/examples/latex_templates/Test-springer_article/spmpsci.bst +1512 -0
  103. data/examples/latex_templates/Test-springer_article/spphys.bst +1443 -0
  104. data/examples/latex_templates/Test-springer_article/svglov3.clo +113 -0
  105. data/examples/latex_templates/Test-springer_article/svjour3.cls +1431 -0
  106. data/examples/misc/moneyball.rb +1 -1
  107. data/examples/misc/subsetting.rb +37 -37
  108. data/examples/rmarkdown/svm-rmarkdown-anon-ms-example/svm-rmarkdown-anon-ms-example.Rmd +73 -0
  109. data/examples/rmarkdown/svm-rmarkdown-anon-ms-example/svm-rmarkdown-anon-ms-example.pdf +0 -0
  110. data/examples/rmarkdown/svm-rmarkdown-article-example/svm-rmarkdown-article-example.Rmd +382 -0
  111. data/examples/rmarkdown/svm-rmarkdown-article-example/svm-rmarkdown-article-example.pdf +0 -0
  112. data/examples/rmarkdown/svm-rmarkdown-beamer-example/svm-rmarkdown-beamer-example.Rmd +164 -0
  113. data/examples/rmarkdown/svm-rmarkdown-beamer-example/svm-rmarkdown-beamer-example.pdf +0 -0
  114. data/examples/rmarkdown/svm-rmarkdown-cv/svm-rmarkdown-cv.Rmd +92 -0
  115. data/examples/rmarkdown/svm-rmarkdown-cv/svm-rmarkdown-cv.pdf +0 -0
  116. data/examples/rmarkdown/svm-rmarkdown-syllabus-example/attend-grade-relationships.csv +482 -0
  117. data/examples/rmarkdown/svm-rmarkdown-syllabus-example/svm-rmarkdown-syllabus-example.Rmd +280 -0
  118. data/examples/rmarkdown/svm-rmarkdown-syllabus-example/svm-rmarkdown-syllabus-example.pdf +0 -0
  119. data/examples/rmarkdown/svm-xaringan-example/svm-xaringan-example.Rmd +386 -0
  120. data/lib/R_interface/r.rb +2 -2
  121. data/lib/R_interface/r_libs.R +6 -1
  122. data/lib/R_interface/r_methods.rb +12 -2
  123. data/lib/R_interface/rdata_frame.rb +8 -17
  124. data/lib/R_interface/rindexed_object.rb +1 -2
  125. data/lib/R_interface/rlist.rb +1 -0
  126. data/lib/R_interface/robject.rb +20 -23
  127. data/lib/R_interface/rpkg.rb +15 -6
  128. data/lib/R_interface/rsupport.rb +13 -19
  129. data/lib/R_interface/ruby_extensions.rb +14 -18
  130. data/lib/R_interface/rvector.rb +0 -12
  131. data/lib/gknit.rb +2 -0
  132. data/lib/gknit/draft.rb +105 -0
  133. data/lib/gknit/knitr_engine.rb +6 -37
  134. data/lib/util/exec_ruby.rb +22 -84
  135. data/lib/util/inline_file.rb +7 -3
  136. data/specs/figures/bg.jpeg +0 -0
  137. data/specs/figures/bg.png +0 -0
  138. data/specs/figures/bg.svg +2 -2
  139. data/specs/figures/dose_len.png +0 -0
  140. data/specs/figures/no_args.jpeg +0 -0
  141. data/specs/figures/no_args.png +0 -0
  142. data/specs/figures/no_args.svg +2 -2
  143. data/specs/figures/width_height.jpeg +0 -0
  144. data/specs/figures/width_height.png +0 -0
  145. data/specs/figures/width_height_units1.jpeg +0 -0
  146. data/specs/figures/width_height_units1.png +0 -0
  147. data/specs/figures/width_height_units2.jpeg +0 -0
  148. data/specs/figures/width_height_units2.png +0 -0
  149. data/specs/r_dataframe.spec.rb +184 -11
  150. data/specs/r_list.spec.rb +4 -4
  151. data/specs/r_list_apply.spec.rb +11 -10
  152. data/specs/ruby_expression.spec.rb +3 -11
  153. data/specs/tmp.rb +106 -34
  154. data/version.rb +1 -1
  155. metadata +96 -33
  156. data/bin/gknit_old_r +0 -236
  157. data/blogs/dev/dev.Rmd +0 -77
  158. data/blogs/dev/dev.md +0 -87
  159. data/blogs/dev/dev_files/figure-html/bubble-1.png +0 -0
  160. data/blogs/dev/dev_files/figure-html/diverging_bar. +0 -0
  161. data/blogs/dev/dev_files/figure-html/diverging_bar.png +0 -0
  162. data/blogs/dplyr/dplyr.rb +0 -63
  163. data/blogs/galaaz_ggplot/galaaz_ggplot.aux +0 -43
  164. data/blogs/galaaz_ggplot/galaaz_ggplot.log +0 -640
  165. data/blogs/galaaz_ggplot/galaaz_ggplot.out +0 -10
  166. data/blogs/galaaz_ggplot/galaaz_ggplot.tex +0 -481
  167. data/blogs/galaaz_ggplot/midwest.png +0 -0
  168. data/blogs/galaaz_ggplot/scatter_plot.png +0 -0
  169. data/blogs/ruby_plot/ruby_plot.Rmd_external_figs +0 -662
  170. data/blogs/ruby_plot/ruby_plot.tex +0 -1077
  171. data/blogs/ruby_plot/ruby_plot_files/figure-html/dose_len.svg +0 -57
  172. data/blogs/ruby_plot/ruby_plot_files/figure-html/facet_by_delivery.svg +0 -106
  173. data/blogs/ruby_plot/ruby_plot_files/figure-html/facet_by_dose.svg +0 -110
  174. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_by_delivery_color.svg +0 -174
  175. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_by_delivery_color2.svg +0 -236
  176. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_with_jitter.svg +0 -296
  177. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_with_points.svg +0 -236
  178. data/blogs/ruby_plot/ruby_plot_files/figure-html/final_box_plot.svg +0 -218
  179. data/blogs/ruby_plot/ruby_plot_files/figure-html/final_violin_plot.svg +0 -128
  180. data/blogs/ruby_plot/ruby_plot_files/figure-html/violin_with_jitter.svg +0 -150
  181. data/examples/paper/paper.rb +0 -36
@@ -0,0 +1,72 @@
1
+ @book{Wilkinson:grammar_of_graphics,
2
+ author = {Wilkinson, Leland},
3
+ title = {The Grammar of Graphics (Statistics and Computing)},
4
+ year = {2005},
5
+ isbn = {0387245448},
6
+ publisher = {Springer-Verlag},
7
+ address = {Berlin, Heidelberg},
8
+ }
9
+
10
+ @article{Knuth:literate_programming,
11
+ author = {Knuth, Donald E.},
12
+ title = {Literate Programming},
13
+ journal = {Comput. J.},
14
+ issue_date = {May 1984},
15
+ volume = {27},
16
+ number = {2},
17
+ month = may,
18
+ year = {1984},
19
+ issn = {0010-4620},
20
+ pages = {97--111},
21
+ numpages = {15},
22
+ url = {http://dx.doi.org/10.1093/comjnl/27.2.97},
23
+ doi = {10.1093/comjnl/27.2.97},
24
+ acmid = {479},
25
+ publisher = {Oxford University Press},
26
+ address = {Oxford, UK},
27
+ }
28
+
29
+ @book{wickham2014advanced,
30
+ title={Advanced r},
31
+ author={Wickham, Hadley},
32
+ year={2014},
33
+ publisher={Chapman and Hall/CRC}
34
+ }
35
+
36
+ @book{wickham2016r,
37
+ title={R for data science: import, tidy, transform, visualize, and model data},
38
+ author={Wickham, Hadley and Grolemund, Garrett},
39
+ year={2016},
40
+ publisher={" O'Reilly Media, Inc."}
41
+ }
42
+
43
+ @book{kuhn2013applied,
44
+ title={Applied predictive modeling},
45
+ author={Kuhn, Max and Johnson, Kjell},
46
+ volume={26},
47
+ year={2013},
48
+ publisher={Springer}
49
+ }
50
+
51
+ @book{knaflic2015storytelling,
52
+ title={Storytelling with data: A data visualization guide for business professionals},
53
+ author={Knaflic, Cole Nussbaumer},
54
+ year={2015},
55
+ publisher={John Wiley \& Sons}
56
+ }
57
+
58
+ @book{silge2017text,
59
+ title={Text mining with R: A tidy approach},
60
+ author={Silge, Julia and Robinson, David},
61
+ year={2017},
62
+ publisher={" O'Reilly Media, Inc."}
63
+ }
64
+
65
+ @book{james2013introduction,
66
+ title={An introduction to statistical learning},
67
+ author={James, Gareth and Witten, Daniela and Hastie, Trevor and Tibshirani, Robert},
68
+ volume={112},
69
+ year={2013},
70
+ publisher={Springer}
71
+ }
72
+
@@ -121,7 +121,7 @@ context "ISLR" do
121
121
  it "should create a jpeg file" do
122
122
  R.jpeg("/home/rbotafogo/desenv/galaaz/examples/islr/x_y_rnorm.jpg")
123
123
  R.df = R.data__frame(x: R.rnorm(100), y: R.rnorm(100))
124
- puts R.qplot(:df.x, :df.y, col: "green")
124
+ puts R.qplot(:x, :y, data: :df, col: "green")
125
125
  R.dev__off
126
126
  end
127
127
 
@@ -51,7 +51,7 @@ puts boston.medv
51
51
 
52
52
  R.awt
53
53
 
54
- puts R.qplot(:Boston.lstat, :Boston.medv, col: "red") +
54
+ puts R.qplot(:lstat, :medv, data: :Boston, col: "red") +
55
55
  R.geom_abline(intercept: boston_lm.coef[1],
56
56
  slope: boston_lm.coef[2],
57
57
  color: "blue",
@@ -66,13 +66,13 @@ sleep(2)
66
66
  R.grid__newpage
67
67
 
68
68
  R.my_data = R.data__frame(pred: R.predict(boston_lm), res: R.residuals(boston_lm))
69
- puts R.qplot(:my_data.pred, :my_data.res)
69
+ puts R.qplot(:pred, :res, data: :my_data)
70
70
 
71
71
  sleep(2)
72
72
  R.grid__newpage
73
73
 
74
74
  R.my_data = R.data__frame(pred: R.predict(boston_lm), res: R.rstudent(boston_lm))
75
- puts R.qplot(:my_data.pred, :my_data.res)
75
+ puts R.qplot(:pred, :res, data: :my_data)
76
76
 
77
77
  sleep(2)
78
78
  R.grid__newpage
@@ -80,7 +80,7 @@ R.grid__newpage
80
80
  vals = R.hatvalues(boston_lm)
81
81
  R.my_data = R.data__frame(size: (1..vals.size), values: vals)
82
82
  # method size returns a Numeric... size is equivalent to 'length << 0'
83
- puts R.qplot(:my_data.size, :my_data.values)
83
+ puts R.qplot(:size, :values, data: :my_data)
84
84
 
85
85
  sleep(2)
86
86
  R.grid__newpage
Binary file
@@ -0,0 +1,16 @@
1
+ # Produce sensys-abstract compliant PDFs from all Markdown files in a directory
2
+ # Manuel Moraga | mmoraga@kth.se
3
+
4
+ # List files to be made
5
+ PDFS := $(patsubst %.md,%.pdf,$(wildcard *.md))
6
+
7
+ all : $(PDFS)
8
+
9
+ # Accepts PDF target with markdown syntax, makes them using pandoc
10
+ %.pdf : %.md
11
+ pandoc $< -o $@ --template=shortpaper.latex --filter pandoc-citeproc --csl=acm-sig-proceedings.csl
12
+
13
+ clean :
14
+ rm $(PDFS)
15
+
16
+ rebuild: clean all
@@ -0,0 +1,65 @@
1
+ ---
2
+ title: Short Paper
3
+ author:
4
+ - name: Alice Anonymous
5
+ email: alice@example.com
6
+ affiliation: Some Institute of Technology
7
+ - name: Bob Security
8
+ email: bob@example.com
9
+ affiliation: Another University
10
+ abstract: |
11
+ This is the abstract.
12
+
13
+ It consists of two paragraphs.
14
+ bibliography: sigproc.bib
15
+ output: rticles::acm_article
16
+ keep_md: true
17
+ ---
18
+
19
+
20
+
21
+ # Introduction
22
+ Lorem ipsum dolor sit[@meier2012] amet, consectetur adipiscing[@fenner2012a] elit. Pellentesque rhoncus ut tellus eu tristique. Duis pharetra velit vitae viverra elementum. Nulla metus dui, pulvinar id enim at, pellentesque semper ipsum. Phasellus cursus dignissim ipsum, sed congue orci pretium quis. Maecenas rhoncus leo a cursus euismod. Fusce a erat eu ipsum tristique tempus at sed tortor. Aliquam erat volutpat. Donec at pretium lorem. Donec pretium nunc id nunc bibendum convallis. Phasellus quis enim id massa feugiat egestas hendrerit sollicitudin nibh. Sed blandit eros id tellus porta, eget ullamcorper urna posuere. Pellentesque laoreet lacus nibh, a mattis libero viverra sit amet. Sed vitae diam interdum, pharetra neque sit amet, dictum lectus.
23
+
24
+ Donec massa justo, ultricies quis facilisis sed, tristique nec metus. Vestibulum id condimentum diam. Integer semper augue id porttitor ultrices. Cras vulputate felis eu diam porttitor, ac pulvinar nisi imperdiet. Donec eros felis, imperdiet vel malesuada at, varius et quam. Phasellus facilisis non risus eu placerat. Sed ac mollis lorem.
25
+
26
+ # Evaluation
27
+ Nullam semper imperdiet orci, at lacinia est aliquet et. Sed justo nibh, aliquet et velit at, pharetra consequat velit. Nullam nec ligula sagittis, adipiscing nisl sed, varius massa. Mauris quam ante, aliquet a nunc et, faucibus imperdiet libero. Suspendisse odio tortor, bibendum vel semper sit amet, euismod ac ante. Nunc nec dignissim turpis, ac blandit massa. Donec auctor massa ac vestibulum aliquam. Fusce auctor dictum lobortis. Vivamus tortor augue, convallis quis augue sit amet, laoreet tristique quam. Donec id volutpat orci. Suspendisse at mi vel elit accumsan porta ac ut diam. Nulla ut dapibus quam.
28
+
29
+ Sed est odio, ornare in rutrum et, dapibus in urna. Suspendisse varius massa in ipsum placerat, quis tristique magna consequat. Suspendisse non convallis augue. Quisque fermentum justo et lorem volutpat euismod. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Morbi sagittis interdum justo, eu consequat nisi convallis in. Sed tincidunt risus id lacinia ultrices. Phasellus ac ligula sed mi mattis lacinia ac non felis. Etiam at dui tellus.
30
+
31
+ # Conclusion
32
+ Duis nec purus sed neque porttitor tincidunt vitae quis augue. Donec porttitor aliquam ante, nec convallis nisl ornare eu. Morbi ut purus et justo commodo dignissim et nec nisl. Donec imperdiet tellus dolor, vel dignissim risus venenatis eu. Aliquam tempor imperdiet massa, nec fermentum tellus sollicitudin vulputate. Integer posuere porttitor pharetra. Praesent vehicula elementum diam a suscipit. Morbi viverra velit eget placerat pellentesque. Nunc congue augue non nisi ultrices tempor.
33
+
34
+ # References
35
+
36
+ ---
37
+ references:
38
+ - id: meier2012
39
+ title: Professinal Android 4 Application Development
40
+ author:
41
+ - family: Meier
42
+ given: Reto
43
+ type: book
44
+ publisher: John Wiley & Sons, Inc.
45
+ issued:
46
+ year: 2012
47
+ month: 5
48
+ - id: fenner2012a
49
+ title: One-click science marketing
50
+ author:
51
+ - family: Fenner
52
+ given: Martin
53
+ container-title: Nature Materials
54
+ volume: 11
55
+ URL: 'https://doi.org/10.1038/nmat3283'
56
+ DOI: 10.1038/nmat3283
57
+ issue: 4
58
+ publisher: Nature Publishing Group
59
+ page: 261-263
60
+ type: article-journal
61
+ issued:
62
+ year: 2012
63
+ month: 3
64
+ ...
65
+
@@ -0,0 +1,1670 @@
1
+ % ACM_PROC_ARTICLE-SP.CLS - VERSION 3.2SP
2
+ % COMPATIBLE WITH THE "SIG-ALTERNATE" V2.4
3
+ % Gerald Murray - April 22nd. 2009
4
+ %
5
+ % ---- Start of 'updates' ----
6
+ %
7
+ % April 22nd. 2009 - Fixed 'Natbib' incompatibility problem - Gerry
8
+ % April 22nd. 2009 - Fixed 'Babel' incompatibility problem - Gerry
9
+ % April 22nd. 2009 - Inserted various bug-fixes and improvements - Gerry
10
+ %
11
+ % To produce Type 1 fonts in the document plus allow for 'normal LaTeX accenting' in the critical areas;
12
+ % title, author block, section-heads, etc. etc.
13
+ % i.e. the whole purpose of this version update is to NOT resort to 'inelegant accent patches'.
14
+ % After much research, three extra .sty packages were added to the the tail (ae, aecompl, aeguill) to solve,
15
+ % in particular, the accenting problem(s). We _could_ ask authors (via instructions/sample file) to 'include' these in
16
+ % the source .tex file - in the preamble - but if everything is already provided ('behind the scenes' - embedded IN the .cls)
17
+ % then this is less work for authors and also makes everything appear 'vanilla'.
18
+ % NOTE: all 'patchwork accenting" has been commented out (here) and is no longer 'used' in the sample .tex file (either).
19
+ % Gerry June 2007
20
+ %
21
+ % Rule widths changed to .5, author count (>6) fixed, roll-back for Type 3 problem. Gerry March 20th. 2007
22
+ % Changes made to 'modernize' the fontnames but esp. for MikTeX users V2.4/2.5 - Nov. 30th. 2006
23
+ % Updated the \email definition to allow for its use inside of 'shared affiliations' - Nov. 30th. 2006
24
+ % Fixed the 'section number depth value' - Nov. 30th. 2006
25
+ %
26
+ % Footnotes inside table cells using \minipage (Oct. 2002)
27
+ % Georgia fixed bug in sub-sub-section numbering in paragraphs (July 29th. 2002)
28
+ % JS/GM fix to vertical spacing before Proofs (July 30th. 2002)
29
+ %
30
+ % Allowance made to switch default fonts between those systems using
31
+ % normal/modern font names and those using 'Type 1' or 'Truetype' fonts.
32
+ % See LINE NUMBER 269 for details.
33
+ % Also provided for enumerated/annotated Corollaries 'surrounded' by
34
+ % enumerated Theorems (line 844).
35
+ % Gerry November 11th. 1999
36
+ %
37
+ % This 'sp' version does NOT produce the permission block.
38
+ %
39
+ % Major change in January 2000 was to include a "blank line" in between
40
+ % new paragraphs. This involved major changes to the, then, acmproc-sp.cls 1.0SP
41
+ % file, precipitating a 'new' name: "acm_proc_article-sp.cls" V2.01SP.
42
+ %
43
+ % ---- End of 'updates' ----
44
+ %
45
+ \def\fileversion{V3.2SP} % for ACM's tracking purposes
46
+ \def\filedate{April 22, 2009} % Gerry Murray's tracking data
47
+ \def\docdate {Wednesday 22nd. April 2009} % Gerry Murray (with deltas to doc}
48
+ \usepackage{epsfig}
49
+ \usepackage{amssymb}
50
+ \usepackage{amsmath}
51
+ \usepackage{amsfonts}
52
+ % Need this for accents in Arial/Helvetica
53
+ %\usepackage[T1]{fontenc} % Gerry March 12, 2007 - causes Type 3 problems (body text)
54
+ %\usepackage{textcomp}
55
+ %
56
+ % ACM_PROC_ARTICLE-SP DOCUMENT STYLE
57
+ % G.K.M. Tobin August-October 1999
58
+ % adapted from ARTICLE document style by Ken Traub, Olin Shivers
59
+ % also using elements of esub2acm.cls
60
+ % LATEST REVISION V3.2SP - APRIL 2009
61
+ % ARTICLE DOCUMENT STYLE -- Released 16 March 1988
62
+ % for LaTeX version 2.09
63
+ % Copyright (C) 1988 by Leslie Lamport
64
+ %
65
+ %
66
+ %%% ACM_PROC_ARTICLE-SP is a document style for producing two-column camera-ready pages for
67
+ %%% ACM conferences, according to ACM specifications. The main features of
68
+ %%% this style are:
69
+ %%%
70
+ %%% 1) Two columns.
71
+ %%% 2) Side and top margins of 4.5pc, bottom margin of 6pc, column gutter of
72
+ %%% 2pc, hence columns are 20pc wide and 55.5pc tall. (6pc =3D 1in, approx)
73
+ %%% 3) First page has title information, and an extra 6pc of space at the
74
+ %%% bottom of the first column for the ACM copyright notice.
75
+ %%% 4) Text is 9pt on 10pt baselines; titles (except main) are 9pt bold.
76
+ %%%
77
+ %%%
78
+ %%% There are a few restrictions you must observe:
79
+ %%%
80
+ %%% 1) You cannot change the font size; ACM wants you to use 9pt.
81
+ %%% 3) You must start your paper with the \maketitle command. Prior to the
82
+ %%% \maketitle you must have \title and \author commands. If you have a
83
+ %%% \date command it will be ignored; no date appears on the paper, since
84
+ %%% the proceedings will have a date on the front cover.
85
+ %%% 4) Marginal paragraphs, tables of contents, lists of figures and tables,
86
+ %%% and page headings are all forbidden.
87
+ %%% 5) The `figure' environment will produce a figure one column wide; if you
88
+ %%% want one that is two columns wide, use `figure*'.
89
+ %%%
90
+ %
91
+ %%% Copyright Space:
92
+ %%% This style automatically leaves 1" blank space at the bottom of page 1/
93
+ %%% column 1. This space can optionally be filled with some text using the
94
+ %%% \toappear{...} command. If used, this command must be BEFORE the \maketitle
95
+ %%% command. If this command is defined AND [preprint] is on, then the
96
+ %%% space is filled with the {...} text (at the bottom); otherwise, it is
97
+ %%% blank. If you use \toappearbox{...} instead of \toappear{...} then a
98
+ %%% box will be drawn around the text (if [preprint] is on).
99
+ %%%
100
+ %%% A typical usage looks like this:
101
+ %%% \toappear{To appear in the Ninth AES Conference on Medievil Lithuanian
102
+ %%% Embalming Technique, June 1991, Alfaretta, Georgia.}
103
+ %%% This will be included in the preprint, and left out of the conference
104
+ %%% version.
105
+ %%%
106
+ %%% WARNING:
107
+ %%% Some dvi-ps converters heuristically allow chars to drift from their
108
+ %%% true positions a few pixels. This may be noticeable with the 9pt sans-serif
109
+ %%% bold font used for section headers.
110
+ %%% You may turn this hackery off via the -e option:
111
+ %%% dvips -e 0 foo.dvi >foo.ps
112
+ %%%
113
+ \typeout{Document Class 'acm_proc_article-sp' <22nd. April '09>. Modified by G.K.M. Tobin}
114
+ \typeout{Based in part upon document Style `acmconf' <22 May 89>. Hacked 4/91 by}
115
+ \typeout{shivers@cs.cmu.edu, 4/93 by theobald@cs.mcgill.ca}
116
+ \typeout{Excerpts were taken from (Journal Style) 'esub2acm.cls'.}
117
+ \typeout{****** Bugs/comments/suggestions to Gerry Murray -- murray@hq.acm.org ******}
118
+
119
+ \oddsidemargin 4.5pc
120
+ \evensidemargin 4.5pc
121
+ \advance\oddsidemargin by -1in % Correct for LaTeX gratuitousness
122
+ \advance\evensidemargin by -1in % Correct for LaTeX gratuitousness
123
+ \marginparwidth 0pt % Margin pars are not allowed.
124
+ \marginparsep 11pt % Horizontal space between outer margin and
125
+ % marginal note
126
+
127
+ % Top of page:
128
+ \topmargin 4.5pc % Nominal distance from top of page to top of
129
+ % box containing running head.
130
+ \advance\topmargin by -1in % Correct for LaTeX gratuitousness
131
+ \headheight 0pt % Height of box containing running head.
132
+ \headsep 0pt % Space between running head and text.
133
+ % Bottom of page:
134
+ \footskip 30pt % Distance from baseline of box containing foot
135
+ % to baseline of last line of text.
136
+ \@ifundefined{footheight}{\newdimen\footheight}{}% this is for LaTeX2e
137
+ \footheight 12pt % Height of box containing running foot.
138
+
139
+
140
+ %% Must redefine the top margin so there's room for headers and
141
+ %% page numbers if you are using the preprint option. Footers
142
+ %% are OK as is. Olin.
143
+ \advance\topmargin by -37pt % Leave 37pt above text for headers
144
+ \headheight 12pt % Height of box containing running head.
145
+ \headsep 25pt % Space between running head and text.
146
+
147
+ \textheight 666pt % 9 1/4 column height
148
+ \textwidth 42pc % Width of text line.
149
+ % For two-column mode:
150
+ \columnsep 2pc % Space between columns
151
+ \columnseprule 0pt % Width of rule between columns.
152
+ \hfuzz 1pt % Allow some variation in column width, otherwise it's
153
+ % too hard to typeset in narrow columns.
154
+
155
+ \footnotesep 5.6pt % Height of strut placed at the beginning of every
156
+ % footnote =3D height of normal \footnotesize strut,
157
+ % so no extra space between footnotes.
158
+
159
+ \skip\footins 8.1pt plus 4pt minus 2pt % Space between last line of text and
160
+ % top of first footnote.
161
+ \floatsep 11pt plus 2pt minus 2pt % Space between adjacent floats moved
162
+ % to top or bottom of text page.
163
+ \textfloatsep 18pt plus 2pt minus 4pt % Space between main text and floats
164
+ % at top or bottom of page.
165
+ \intextsep 11pt plus 2pt minus 2pt % Space between in-text figures and
166
+ % text.
167
+ \@ifundefined{@maxsep}{\newdimen\@maxsep}{}% this is for LaTeX2e
168
+ \@maxsep 18pt % The maximum of \floatsep,
169
+ % \textfloatsep and \intextsep (minus
170
+ % the stretch and shrink).
171
+ \dblfloatsep 11pt plus 2pt minus 2pt % Same as \floatsep for double-column
172
+ % figures in two-column mode.
173
+ \dbltextfloatsep 18pt plus 2pt minus 4pt% \textfloatsep for double-column
174
+ % floats.
175
+ \@ifundefined{@dblmaxsep}{\newdimen\@dblmaxsep}{}% this is for LaTeX2e
176
+ \@dblmaxsep 18pt % The maximum of \dblfloatsep and
177
+ % \dbltexfloatsep.
178
+ \@fptop 0pt plus 1fil % Stretch at top of float page/column. (Must be
179
+ % 0pt plus ...)
180
+ \@fpsep 8pt plus 2fil % Space between floats on float page/column.
181
+ \@fpbot 0pt plus 1fil % Stretch at bottom of float page/column. (Must be
182
+ % 0pt plus ... )
183
+ \@dblfptop 0pt plus 1fil % Stretch at top of float page. (Must be 0pt plus ...)
184
+ \@dblfpsep 8pt plus 2fil % Space between floats on float page.
185
+ \@dblfpbot 0pt plus 1fil % Stretch at bottom of float page. (Must be
186
+ % 0pt plus ... )
187
+ \marginparpush 5pt % Minimum vertical separation between two marginal
188
+ % notes.
189
+
190
+ \parskip 0pt % Extra vertical space between paragraphs.
191
+ % Set to 0pt outside sections, to keep section heads
192
+ % uniformly spaced. The value of parskip is set
193
+ % to leading value _within_ sections.
194
+ % 12 Jan 2000 gkmt
195
+ \parindent 0pt % Width of paragraph indentation.
196
+ \partopsep 2pt plus 1pt minus 1pt% Extra vertical space, in addition to
197
+ % \parskip and \topsep, added when user
198
+ % leaves blank line before environment.
199
+
200
+ \@lowpenalty 51 % Produced by \nopagebreak[1] or \nolinebreak[1]
201
+ \@medpenalty 151 % Produced by \nopagebreak[2] or \nolinebreak[2]
202
+ \@highpenalty 301 % Produced by \nopagebreak[3] or \nolinebreak[3]
203
+
204
+ \@beginparpenalty -\@lowpenalty % Before a list or paragraph environment.
205
+ \@endparpenalty -\@lowpenalty % After a list or paragraph environment.
206
+ \@itempenalty -\@lowpenalty % Between list items.
207
+
208
+ %\@namedef{ds@10pt}{\@latexerr{The `10pt' option is not allowed in the `acmconf'
209
+ \@namedef{ds@10pt}{\ClassError{The `10pt' option is not allowed in the `acmconf' % January 2008
210
+ document style.}\@eha}
211
+ %\@namedef{ds@11pt}{\@latexerr{The `11pt' option is not allowed in the `acmconf'
212
+ \@namedef{ds@11pt}{\ClassError{The `11pt' option is not allowed in the `acmconf' % January 2008
213
+ document style.}\@eha}
214
+ %\@namedef{ds@12pt}{\@latexerr{The `12pt' option is not allowed in the `acmconf'
215
+ \@namedef{ds@12pt}{\ClassError{The `12pt' option is not allowed in the `acmconf' % January 2008
216
+ document style.}\@eha}
217
+
218
+ \@options
219
+
220
+ \lineskip 2pt % \lineskip is 1pt for all font sizes.
221
+ \normallineskip 2pt
222
+ \def\baselinestretch{1}
223
+
224
+ \abovedisplayskip 9pt plus2pt minus4.5pt%
225
+ \belowdisplayskip \abovedisplayskip
226
+ \abovedisplayshortskip \z@ plus3pt%
227
+ \belowdisplayshortskip 5.4pt plus3pt minus3pt%
228
+ \let\@listi\@listI % Setting of \@listi added 9 Jun 87
229
+
230
+ \def\small{\@setsize\small{9pt}\viiipt\@viiipt
231
+ \abovedisplayskip 7.6pt plus 3pt minus 4pt%
232
+ \belowdisplayskip \abovedisplayskip
233
+ \abovedisplayshortskip \z@ plus2pt%
234
+ \belowdisplayshortskip 3.6pt plus2pt minus 2pt
235
+ \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87
236
+ \topsep 4pt plus 2pt minus 2pt\parsep 2pt plus 1pt minus 1pt
237
+ \itemsep \parsep}}
238
+
239
+ \def\footnotesize{\@setsize\footnotesize{9pt}\ixpt\@ixpt
240
+ \abovedisplayskip 6.4pt plus 2pt minus 4pt%
241
+ \belowdisplayskip \abovedisplayskip
242
+ \abovedisplayshortskip \z@ plus 1pt%
243
+ \belowdisplayshortskip 2.7pt plus 1pt minus 2pt
244
+ \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87
245
+ \topsep 3pt plus 1pt minus 1pt\parsep 2pt plus 1pt minus 1pt
246
+ \itemsep \parsep}}
247
+
248
+ \newcount\aucount
249
+ \newcount\originalaucount
250
+ \newdimen\auwidth
251
+ \auwidth=\textwidth
252
+ \newdimen\auskip
253
+ \newcount\auskipcount
254
+ \newdimen\auskip
255
+ \global\auskip=1pc
256
+ \newdimen\allauboxes
257
+ \allauboxes=\auwidth
258
+ \newtoks\addauthors
259
+ \newcount\addauflag
260
+ \global\addauflag=0 %Haven't shown additional authors yet
261
+
262
+ \newtoks\subtitletext
263
+ \gdef\subtitle#1{\subtitletext={#1}}
264
+
265
+ \gdef\additionalauthors#1{\addauthors={#1}}
266
+
267
+ \gdef\numberofauthors#1{\global\aucount=#1
268
+ \ifnum\aucount>3\global\originalaucount=\aucount \global\aucount=3\fi %g} % 3 OK - Gerry March 2007
269
+ \global\auskipcount=\aucount\global\advance\auskipcount by 1
270
+ \global\multiply\auskipcount by 2
271
+ \global\multiply\auskip by \auskipcount
272
+ \global\advance\auwidth by -\auskip
273
+ \global\divide\auwidth by \aucount}
274
+
275
+ % \and was modified to count the number of authors. GKMT 12 Aug 1999
276
+ \def\alignauthor{% % \begin{tabular}
277
+ \end{tabular}%
278
+ \begin{tabular}[t]{p{\auwidth}}\centering}%
279
+
280
+
281
+ % *** NOTE *** NOTE *** NOTE *** NOTE ***
282
+ % If you have 'font problems' then you may need
283
+ % to change these, e.g. 'arialb' instead of "arialbd".
284
+ % Gerry Murray 11/11/1999
285
+ % *** OR ** comment out block A and activate block B or vice versa.
286
+ % **********************************************
287
+ %
288
+ % -- Start of block A -- (Type 1 or Truetype fonts)
289
+ %\newfont{\secfnt}{timesbd at 12pt} % was timenrb originally - now is timesbd
290
+ %\newfont{\secit}{timesbi at 12pt} %13 Jan 00 gkmt
291
+ %\newfont{\subsecfnt}{timesi at 11pt} % was timenrri originally - now is timesi
292
+ %\newfont{\subsecit}{timesbi at 11pt} % 13 Jan 00 gkmt -- was times changed to timesbi gm 2/4/2000
293
+ % % because "normal" is italic, "italic" is Roman
294
+ %\newfont{\ttlfnt}{arialbd at 18pt} % was arialb originally - now is arialbd
295
+ %\newfont{\ttlit}{arialbi at 18pt} % 13 Jan 00 gkmt
296
+ %\newfont{\subttlfnt}{arial at 14pt} % was arialr originally - now is arial
297
+ %\newfont{\subttlit}{ariali at 14pt} % 13 Jan 00 gkmt
298
+ %\newfont{\subttlbf}{arialbd at 14pt} % 13 Jan 00 gkmt
299
+ %\newfont{\aufnt}{arial at 12pt} % was arialr originally - now is arial
300
+ %\newfont{\auit}{ariali at 12pt} % 13 Jan 00 gkmt
301
+ %\newfont{\affaddr}{arial at 10pt} % was arialr originally - now is arial
302
+ %\newfont{\affaddrit}{ariali at 10pt} %13 Jan 00 gkmt
303
+ %\newfont{\eaddfnt}{arial at 12pt} % was arialr originally - now is arial
304
+ %\newfont{\ixpt}{times at 9pt} % was timenrr originally - now is times
305
+ %\newfont{\confname}{timesi at 8pt} % was timenrri - now is timesi
306
+ %\newfont{\crnotice}{times at 8pt} % was timenrr originally - now is times
307
+ %\newfont{\ninept}{times at 9pt} % was timenrr originally - now is times
308
+ % *********************************************
309
+ % -- End of block A --
310
+ %
311
+ %
312
+ % -- Start of block B -- UPDATED FONT NAMES
313
+ % *********************************************
314
+ % Gerry Murray 11/30/2006
315
+ % *********************************************
316
+ \newfont{\secfnt}{ptmb8t at 12pt}
317
+ \newfont{\secit}{ptmbi8t at 12pt} %13 Jan 00 gkmt
318
+ \newfont{\subsecfnt}{ptmri8t at 11pt}
319
+ \newfont{\subsecit}{ptmbi8t at 11pt} %
320
+ \newfont{\ttlfnt}{phvb8t at 18pt}
321
+ \newfont{\ttlit}{phvbo8t at 18pt} % GM 2/4/2000
322
+ \newfont{\subttlfnt}{phvr8t at 14pt}
323
+ \newfont{\subttlit}{phvro8t at 14pt} % GM 2/4/2000
324
+ \newfont{\subttlbf}{phvb8t at 14pt} % 13 Jan 00 gkmt
325
+ \newfont{\aufnt}{phvr8t at 12pt}
326
+ \newfont{\auit}{phvro8t at 12pt} % GM 2/4/2000
327
+ \newfont{\affaddr}{phvr8t at 10pt}
328
+ \newfont{\affaddrit}{phvro8t at 10pt} % GM 2/4/2000
329
+ \newfont{\eaddfnt}{phvr8t at 12pt}
330
+ \newfont{\ixpt}{ptmr8t at 9pt}
331
+ \newfont{\confname}{ptmri8t at 8pt}
332
+ \newfont{\crnotice}{ptmr8t at 8pt}
333
+ \newfont{\ninept}{ptmr8t at 9pt}
334
+ % +++++++++++++++++++++++++++++++++++++++++++++
335
+ % -- End of block B --
336
+
337
+ %\def\email#1{{{\eaddfnt{\vskip 4pt#1}}}}
338
+ % If we have an email, inside a "shared affiliation" then we need the following instead
339
+ \def\email#1{{{\eaddfnt{\par #1}}}} % revised - GM - 11/30/2006
340
+
341
+ \def\addauthorsection{\ifnum\originalaucount>6 % was 3 - Gerry March 2007
342
+ \section{Additional Authors}\the\addauthors
343
+ \fi}
344
+
345
+ \newcount\savesection
346
+ \newcount\sectioncntr
347
+ \global\sectioncntr=1
348
+
349
+ \setcounter{secnumdepth}{3}
350
+
351
+ \def\appendix{\par
352
+ \section*{APPENDIX}
353
+ \setcounter{section}{0}
354
+ \setcounter{subsection}{0}
355
+ \def\thesection{\Alph{section}} }
356
+
357
+
358
+ \leftmargini 22.5pt
359
+ \leftmarginii 19.8pt % > \labelsep + width of '(m)'
360
+ \leftmarginiii 16.8pt % > \labelsep + width of 'vii.'
361
+ \leftmarginiv 15.3pt % > \labelsep + width of 'M.'
362
+ \leftmarginv 9pt
363
+ \leftmarginvi 9pt
364
+
365
+ \leftmargin\leftmargini
366
+ \labelsep 4.5pt
367
+ \labelwidth\leftmargini\advance\labelwidth-\labelsep
368
+
369
+ \def\@listI{\leftmargin\leftmargini \parsep 3.6pt plus 2pt minus 1pt%
370
+ \topsep 7.2pt plus 2pt minus 4pt%
371
+ \itemsep 3.6pt plus 2pt minus 1pt}
372
+
373
+ \let\@listi\@listI
374
+ \@listi
375
+
376
+ \def\@listii{\leftmargin\leftmarginii
377
+ \labelwidth\leftmarginii\advance\labelwidth-\labelsep
378
+ \topsep 3.6pt plus 2pt minus 1pt
379
+ \parsep 1.8pt plus 0.9pt minus 0.9pt
380
+ \itemsep \parsep}
381
+
382
+ \def\@listiii{\leftmargin\leftmarginiii
383
+ \labelwidth\leftmarginiii\advance\labelwidth-\labelsep
384
+ \topsep 1.8pt plus 0.9pt minus 0.9pt
385
+ \parsep \z@ \partopsep 1pt plus 0pt minus 1pt
386
+ \itemsep \topsep}
387
+
388
+ \def\@listiv{\leftmargin\leftmarginiv
389
+ \labelwidth\leftmarginiv\advance\labelwidth-\labelsep}
390
+
391
+ \def\@listv{\leftmargin\leftmarginv
392
+ \labelwidth\leftmarginv\advance\labelwidth-\labelsep}
393
+
394
+ \def\@listvi{\leftmargin\leftmarginvi
395
+ \labelwidth\leftmarginvi\advance\labelwidth-\labelsep}
396
+
397
+ \def\labelenumi{\theenumi.}
398
+ \def\theenumi{\arabic{enumi}}
399
+
400
+ \def\labelenumii{(\theenumii)}
401
+ \def\theenumii{\alph{enumii}}
402
+ \def\p@enumii{\theenumi}
403
+
404
+ \def\labelenumiii{\theenumiii.}
405
+ \def\theenumiii{\roman{enumiii}}
406
+ \def\p@enumiii{\theenumi(\theenumii)}
407
+
408
+ \def\labelenumiv{\theenumiv.}
409
+ \def\theenumiv{\Alph{enumiv}}
410
+ \def\p@enumiv{\p@enumiii\theenumiii}
411
+
412
+ \def\labelitemi{$\bullet$}
413
+ \def\labelitemii{\bf --}
414
+ \def\labelitemiii{$\ast$}
415
+ \def\labelitemiv{$\cdot$}
416
+
417
+ \def\verse{\let\\=\@centercr
418
+ \list{}{\itemsep\z@ \itemindent -1.5em\listparindent \itemindent
419
+ \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]}
420
+ \let\endverse\endlist
421
+
422
+ \def\quotation{\list{}{\listparindent 1.5em
423
+ \itemindent\listparindent
424
+ \rightmargin\leftmargin \parsep 0pt plus 1pt}\item[]}
425
+ \let\endquotation=\endlist
426
+
427
+ \def\quote{\list{}{\rightmargin\leftmargin}\item[]}
428
+ \let\endquote=\endlist
429
+
430
+ \def\descriptionlabel#1{\hspace\labelsep \bf #1}
431
+ \def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin
432
+ \let\makelabel\descriptionlabel}}
433
+
434
+ \let\enddescription\endlist
435
+
436
+ \def\theequation{\arabic{equation}}
437
+
438
+ \arraycolsep 4.5pt % Half the space between columns in an array environment.
439
+ \tabcolsep 5.4pt % Half the space between columns in a tabular environment.
440
+ \arrayrulewidth .5pt % Width of rules in array and tabular environment. % (was .4) updated Gerry March 20 2007
441
+ \doublerulesep 1.8pt % Space between adjacent rules in array or tabular env.
442
+
443
+ \tabbingsep \labelsep % Space used by the \' command. (See LaTeX manual.)
444
+
445
+ \skip\@mpfootins =\skip\footins
446
+
447
+ \fboxsep =2.7pt % Space left between box and text by \fbox and \framebox.
448
+ \fboxrule =.5pt % Width of rules in box made by \fbox and \framebox. % (was .4) updated Gerry March 20 2007
449
+
450
+ \def\thepart{\Roman{part}} % Roman numeral part numbers.
451
+ \def\thesection {\arabic{section}}
452
+ \def\thesubsection {\thesection.\arabic{subsection}}
453
+ %\def\thesubsubsection {\thesubsection.\arabic{subsubsection}} % GM 7/30/2002
454
+ %\def\theparagraph {\thesubsubsection.\arabic{paragraph}} % GM 7/30/2002
455
+ \def\thesubparagraph {\theparagraph.\arabic{subparagraph}}
456
+
457
+ \def\@pnumwidth{1.55em}
458
+ \def\@tocrmarg {2.55em}
459
+ \def\@dotsep{4.5}
460
+ \setcounter{tocdepth}{3}
461
+
462
+ %\def\tableofcontents{\@latexerr{\tableofcontents: Tables of contents are not
463
+ % allowed in the `acmconf' document style.}\@eha}
464
+
465
+ \def\tableofcontents{\ClassError{%
466
+ \string\tableofcontents\space is not allowed in the `acmconf' document % January 2008
467
+ style}\@eha}
468
+
469
+ \def\l@part#1#2{\addpenalty{\@secpenalty}
470
+ \addvspace{2.25em plus 1pt} % space above part line
471
+ \begingroup
472
+ \@tempdima 3em % width of box holding part number, used by
473
+ \parindent \z@ \rightskip \@pnumwidth %% \numberline
474
+ \parfillskip -\@pnumwidth
475
+ {\large \bf % set line in \large boldface
476
+ \leavevmode % TeX command to enter horizontal mode.
477
+ #1\hfil \hbox to\@pnumwidth{\hss #2}}\par
478
+ \nobreak % Never break after part entry
479
+ \endgroup}
480
+
481
+ \def\l@section#1#2{\addpenalty{\@secpenalty} % good place for page break
482
+ \addvspace{1.0em plus 1pt} % space above toc entry
483
+ \@tempdima 1.5em % width of box holding section number
484
+ \begingroup
485
+ \parindent \z@ \rightskip \@pnumwidth
486
+ \parfillskip -\@pnumwidth
487
+ \bf % Boldface.
488
+ \leavevmode % TeX command to enter horizontal mode.
489
+ \advance\leftskip\@tempdima %% added 5 Feb 88 to conform to
490
+ \hskip -\leftskip %% 25 Jan 88 change to \numberline
491
+ #1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par
492
+ \endgroup}
493
+
494
+
495
+ \def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}}
496
+ \def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}}
497
+ \def\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}}
498
+ \def\l@subparagraph{\@dottedtocline{5}{10em}{5em}}
499
+
500
+ %\def\listoffigures{\@latexerr{\listoffigures: Lists of figures are not
501
+ % allowed in the `acmconf' document style.}\@eha}
502
+
503
+ \def\listoffigures{\ClassError{%
504
+ \string\listoffigures\space is not allowed in the `acmconf' document % January 2008
505
+ style}\@eha}
506
+
507
+ \def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}
508
+
509
+ %\def\listoftables{\@latexerr{\listoftables: Lists of tables are not
510
+ % allowed in the `acmconf' document style.}\@eha}
511
+ %\let\l@table\l@figure
512
+
513
+ \def\listoftables{\ClassError{%
514
+ \string\listoftables\space is not allowed in the `acmconf' document % January 2008
515
+ style}\@eha}
516
+ \let\l@table\l@figure
517
+
518
+ \def\footnoterule{\kern-3\p@
519
+ \hrule width .5\columnwidth % (was .4) updated Gerry March 20 2007
520
+ \kern 2.6\p@} % The \hrule has default height of .4pt % (was .4) updated Gerry March 20 2007
521
+ % ------
522
+ \long\def\@makefntext#1{\noindent
523
+ %\hbox to .5em{\hss$^{\@thefnmark}$}#1} % original
524
+ \hbox to .5em{\hss\textsuperscript{\@thefnmark}}#1} % C. Clifton / GM Oct. 2nd. 2002
525
+ % -------
526
+
527
+ \long\def\@maketntext#1{\noindent
528
+ #1}
529
+
530
+ \long\def\@maketitlenotetext#1#2{\noindent
531
+ \hbox to 1.8em{\hss$^{#1}$}#2}
532
+
533
+ \setcounter{topnumber}{2}
534
+ \def\topfraction{.7}
535
+ \setcounter{bottomnumber}{1}
536
+ \def\bottomfraction{.3}
537
+ \setcounter{totalnumber}{3}
538
+ \def\textfraction{.2}
539
+ \def\floatpagefraction{.5}
540
+ \setcounter{dbltopnumber}{2}
541
+ \def\dbltopfraction{.7}
542
+ \def\dblfloatpagefraction{.5}
543
+
544
+ \long\def\@makecaption#1#2{
545
+ \vskip \baselineskip
546
+ \setbox\@tempboxa\hbox{\textbf{#1: #2}}
547
+ \ifdim \wd\@tempboxa >\hsize % IF longer than one line:
548
+ \textbf{#1: #2}\par % THEN set as ordinary paragraph.
549
+ \else % ELSE center.
550
+ \hbox to\hsize{\hfil\box\@tempboxa\hfil}\par
551
+ \fi}
552
+
553
+ \@ifundefined{figure}{\newcounter {figure}} % this is for LaTeX2e
554
+
555
+ \def\fps@figure{tbp}
556
+ \def\ftype@figure{1}
557
+ \def\ext@figure{lof}
558
+ \def\fnum@figure{Figure \thefigure}
559
+ \def\figure{\@float{figure}}
560
+ %\let\endfigure\end@float
561
+ \def\endfigure{\end@float} % Gerry January 2008
562
+ \@namedef{figure*}{\@dblfloat{figure}}
563
+ \@namedef{endfigure*}{\end@dblfloat}
564
+
565
+ \@ifundefined{table}{\newcounter {table}} % this is for LaTeX2e
566
+
567
+ \def\fps@table{tbp}
568
+ \def\ftype@table{2}
569
+ \def\ext@table{lot}
570
+ \def\fnum@table{Table \thetable}
571
+ \def\table{\@float{table}}
572
+ %\let\endtable\end@float
573
+ \def\endtable{\end@float} % Gerry January 2008
574
+ \@namedef{table*}{\@dblfloat{table}}
575
+ \@namedef{endtable*}{\end@dblfloat}
576
+
577
+ \newtoks\titleboxnotes
578
+ \newcount\titleboxnoteflag
579
+
580
+ \def\maketitle{\par
581
+ \begingroup
582
+ \def\thefootnote{\fnsymbol{footnote}}
583
+ \def\@makefnmark{\hbox
584
+ to 0pt{$^{\@thefnmark}$\hss}}
585
+ \twocolumn[\@maketitle]
586
+ \@thanks
587
+ \endgroup
588
+ \setcounter{footnote}{0}
589
+ \let\maketitle\relax
590
+ \let\@maketitle\relax
591
+ \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\gdef\@subtitle{}\let\thanks\relax
592
+ \@copyrightspace}
593
+
594
+ %% CHANGES ON NEXT LINES
595
+ \newif\if@ll % to record which version of LaTeX is in use
596
+
597
+ \expandafter\ifx\csname LaTeXe\endcsname\relax % LaTeX2.09 is used
598
+ \else% LaTeX2e is used, so set ll to true
599
+ \global\@lltrue
600
+ \fi
601
+
602
+ \if@ll
603
+ \NeedsTeXFormat{LaTeX2e}
604
+ \ProvidesClass{acm_proc_article-sp} [2009/04/22 - V3.2SP - based on esub2acm.sty <23 April 96>]
605
+ \RequirePackage{latexsym}% QUERY: are these two really needed?
606
+ \let\dooptions\ProcessOptions
607
+ \else
608
+ \let\dooptions\@options
609
+ \fi
610
+ %% END CHANGES
611
+
612
+ \def\@height{height}
613
+ \def\@width{width}
614
+ \def\@minus{minus}
615
+ \def\@plus{plus}
616
+ \def\hb@xt@{\hbox to}
617
+ \newif\if@faircopy
618
+ \@faircopyfalse
619
+ \def\ds@faircopy{\@faircopytrue}
620
+
621
+ \def\ds@preprint{\@faircopyfalse}
622
+
623
+ \@twosidetrue
624
+ \@mparswitchtrue
625
+ \def\ds@draft{\overfullrule 5\p@}
626
+ %% CHANGE ON NEXT LINE
627
+ \dooptions
628
+
629
+ \lineskip \p@
630
+ \normallineskip \p@
631
+ \def\baselinestretch{1}
632
+ \def\@ptsize{0} %needed for amssymbols.sty
633
+
634
+ %% CHANGES ON NEXT LINES
635
+ \if@ll% allow use of old-style font change commands in LaTeX2e
636
+ \@maxdepth\maxdepth
637
+ %
638
+ \DeclareOldFontCommand{\rm}{\ninept\rmfamily}{\mathrm}
639
+ \DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
640
+ \DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
641
+ \DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
642
+ \DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
643
+ \DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
644
+ \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
645
+ \DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}}
646
+ \DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}}
647
+ \fi
648
+ %
649
+ \if@ll
650
+ \renewcommand{\rmdefault}{cmr} % was 'ttm'
651
+ % Note! I have also found 'mvr' to work ESPECIALLY well.
652
+ % Gerry - October 1999
653
+ % You may need to change your LV1times.fd file so that sc is
654
+ % mapped to cmcsc - -for smallcaps -- that is if you decide
655
+ % to change {cmr} to {times} above. (Not recommended)
656
+ \renewcommand{\@ptsize}{}
657
+ \renewcommand{\normalsize}{%
658
+ \@setfontsize\normalsize\@ixpt{10.5\p@}%\ninept%
659
+ \abovedisplayskip 6\p@ \@plus2\p@ \@minus\p@
660
+ \belowdisplayskip \abovedisplayskip
661
+ \abovedisplayshortskip 6\p@ \@minus 3\p@
662
+ \belowdisplayshortskip 6\p@ \@minus 3\p@
663
+ \let\@listi\@listI
664
+ }
665
+ \else
666
+ \def\@normalsize{%changed next to 9 from 10
667
+ \@setsize\normalsize{9\p@}\ixpt\@ixpt
668
+ \abovedisplayskip 6\p@ \@plus2\p@ \@minus\p@
669
+ \belowdisplayskip \abovedisplayskip
670
+ \abovedisplayshortskip 6\p@ \@minus 3\p@
671
+ \belowdisplayshortskip 6\p@ \@minus 3\p@
672
+ \let\@listi\@listI
673
+ }%
674
+ \fi
675
+ \if@ll
676
+ \newcommand\scriptsize{\@setfontsize\scriptsize\@viipt{8\p@}}
677
+ \newcommand\tiny{\@setfontsize\tiny\@vpt{6\p@}}
678
+ \newcommand\large{\@setfontsize\large\@xiipt{14\p@}}
679
+ \newcommand\Large{\@setfontsize\Large\@xivpt{18\p@}}
680
+ \newcommand\LARGE{\@setfontsize\LARGE\@xviipt{20\p@}}
681
+ \newcommand\huge{\@setfontsize\huge\@xxpt{25\p@}}
682
+ \newcommand\Huge{\@setfontsize\Huge\@xxvpt{30\p@}}
683
+ \else
684
+ \def\scriptsize{\@setsize\scriptsize{8\p@}\viipt\@viipt}
685
+ \def\tiny{\@setsize\tiny{6\p@}\vpt\@vpt}
686
+ \def\large{\@setsize\large{14\p@}\xiipt\@xiipt}
687
+ \def\Large{\@setsize\Large{18\p@}\xivpt\@xivpt}
688
+ \def\LARGE{\@setsize\LARGE{20\p@}\xviipt\@xviipt}
689
+ \def\huge{\@setsize\huge{25\p@}\xxpt\@xxpt}
690
+ \def\Huge{\@setsize\Huge{30\p@}\xxvpt\@xxvpt}
691
+ \fi
692
+ \normalsize
693
+
694
+ % make aubox hsize/number of authors up to 3, less gutter
695
+ % then showbox gutter showbox gutter showbox -- GKMT Aug 99
696
+ \newbox\@acmtitlebox
697
+ \def\@maketitle{\newpage
698
+ \null
699
+ \setbox\@acmtitlebox\vbox{%
700
+ \baselineskip 20pt
701
+ \vskip 2em % Vertical space above title.
702
+ \begin{center}
703
+ {\ttlfnt \@title\par} % Title set in 18pt Helvetica (Arial) bold size.
704
+ \vskip 1.5em % Vertical space after title.
705
+ %This should be the subtitle.
706
+ {\subttlfnt \the\subtitletext\par}\vskip 1.25em%\fi
707
+ {\baselineskip 16pt\aufnt % each author set in \12 pt Arial, in a
708
+ \lineskip .5em % tabular environment
709
+ \begin{tabular}[t]{c}\@author
710
+ \end{tabular}\par}
711
+ \vskip 1.5em % Vertical space after author.
712
+ \end{center}}
713
+ \dimen0=\ht\@acmtitlebox
714
+ \advance\dimen0 by -12.75pc\relax % Increased space for title box -- KBT
715
+ \unvbox\@acmtitlebox
716
+ \ifdim\dimen0<0.0pt\relax\vskip-\dimen0\fi}
717
+
718
+
719
+ \newcount\titlenotecount
720
+ \global\titlenotecount=0
721
+ \newtoks\tntoks
722
+ \newtoks\tntokstwo
723
+ \newtoks\tntoksthree
724
+ \newtoks\tntoksfour
725
+ \newtoks\tntoksfive
726
+
727
+ \def\abstract{
728
+ \ifnum\titlenotecount>0 % was =1
729
+ \insert\footins{%
730
+ \reset@font\footnotesize
731
+ \interlinepenalty\interfootnotelinepenalty
732
+ \splittopskip\footnotesep
733
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
734
+ \hsize\columnwidth \@parboxrestore
735
+ \protected@edef\@currentlabel{%
736
+ }%
737
+ \color@begingroup
738
+ \ifnum\titlenotecount=1
739
+ \@maketntext{%
740
+ \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\@finalstrut\strutbox}%
741
+ \fi
742
+ \ifnum\titlenotecount=2
743
+ \@maketntext{%
744
+ \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}%
745
+ \@maketntext{%
746
+ \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\@finalstrut\strutbox}%
747
+ \fi
748
+ \ifnum\titlenotecount=3
749
+ \@maketntext{%
750
+ \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}%
751
+ \@maketntext{%
752
+ \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\par\@finalstrut\strutbox}%
753
+ \@maketntext{%
754
+ \raisebox{4pt}{$\ddagger$}\rule\z@\footnotesep\ignorespaces\the\tntoksthree\@finalstrut\strutbox}%
755
+ \fi
756
+ \ifnum\titlenotecount=4
757
+ \@maketntext{%
758
+ \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}%
759
+ \@maketntext{%
760
+ \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\par\@finalstrut\strutbox}%
761
+ \@maketntext{%
762
+ \raisebox{4pt}{$\ddagger$}\rule\z@\footnotesep\ignorespaces\the\tntoksthree\par\@finalstrut\strutbox}%
763
+ \@maketntext{%
764
+ \raisebox{4pt}{$\S$}\rule\z@\footnotesep\ignorespaces\the\tntoksfour\@finalstrut\strutbox}%
765
+ \fi
766
+ \ifnum\titlenotecount=5
767
+ \@maketntext{%
768
+ \raisebox{4pt}{$\ast$}\rule\z@\footnotesep\ignorespaces\the\tntoks\par\@finalstrut\strutbox}%
769
+ \@maketntext{%
770
+ \raisebox{4pt}{$\dagger$}\rule\z@\footnotesep\ignorespaces\the\tntokstwo\par\@finalstrut\strutbox}%
771
+ \@maketntext{%
772
+ \raisebox{4pt}{$\ddagger$}\rule\z@\footnotesep\ignorespaces\the\tntoksthree\par\@finalstrut\strutbox}%
773
+ \@maketntext{%
774
+ \raisebox{4pt}{$\S$}\rule\z@\footnotesep\ignorespaces\the\tntoksfour\par\@finalstrut\strutbox}%
775
+ \@maketntext{%
776
+ \raisebox{4pt}{$\P$}\rule\z@\footnotesep\ignorespaces\the\tntoksfive\@finalstrut\strutbox}%
777
+ \fi
778
+ \color@endgroup} %g}
779
+ \fi
780
+ \setcounter{footnote}{0}
781
+ \section*{ABSTRACT}\normalsize %\the\parskip \the\baselineskip%\ninept
782
+ }
783
+
784
+ \def\endabstract{\if@twocolumn\else\endquotation\fi}
785
+
786
+ \def\keywords{\if@twocolumn
787
+ \section*{Keywords}
788
+ \else \small
789
+ \quotation
790
+ \fi}
791
+
792
+ % I've pulled the check for 2 cols, since proceedings are _always_
793
+ % two-column 11 Jan 2000 gkmt
794
+ \def\terms{%\if@twocolumn
795
+ \section*{General Terms}
796
+ %\else \small
797
+ %\quotation\the\parskip
798
+ %\fi}
799
+ }
800
+
801
+ % -- Classification needs to be a bit smart due to optionals - Gerry/Georgia November 2nd. 1999
802
+ \newcount\catcount
803
+ \global\catcount=1
804
+
805
+ \def\category#1#2#3{%
806
+ \ifnum\catcount=1
807
+ \section*{Categories and Subject Descriptors}
808
+ \advance\catcount by 1\else{\unskip; }\fi
809
+ \@ifnextchar [{\@category{#1}{#2}{#3}}{\@category{#1}{#2}{#3}[]}%
810
+ }
811
+
812
+ \def\@category#1#2#3[#4]{%
813
+ \begingroup
814
+ \let\and\relax
815
+ #1 [\textbf{#2}]%
816
+ \if!#4!%
817
+ \if!#3!\else : #3\fi
818
+ \else
819
+ :\space
820
+ \if!#3!\else #3\kern\z@---\hskip\z@\fi
821
+ \textit{#4}%
822
+ \fi
823
+ \endgroup
824
+ }
825
+ %
826
+
827
+ %%% This section (written by KBT) handles the 1" box in the lower left
828
+ %%% corner of the left column of the first page by creating a picture,
829
+ %%% and inserting the predefined string at the bottom (with a negative
830
+ %%% displacement to offset the space allocated for a non-existent
831
+ %%% caption).
832
+ %%%
833
+ \newtoks\copyrightnotice
834
+ \def\ftype@copyrightbox{8}
835
+ \def\@copyrightspace{
836
+ \@float{copyrightbox}[b]
837
+ \begin{center}
838
+ \setlength{\unitlength}{1pc}
839
+ \begin{picture}(20,6) %Space for copyright notice
840
+ \put(0,-0.95){\crnotice{\@toappear}}
841
+ \end{picture}
842
+ \end{center}
843
+ \end@float}
844
+
845
+ \def\@toappear{} % Default setting blank - commands below change this.
846
+ \long\def\toappear#1{\def\@toappear{\parbox[b]{20pc}{\baselineskip 9pt#1}}}
847
+ \def\toappearbox#1{\def\@toappear{\raisebox{5pt}{\framebox[20pc]{\parbox[b]{19pc}{#1}}}}}
848
+
849
+ \newtoks\conf
850
+ \newtoks\confinfo
851
+ \def\conferenceinfo#1#2{\global\conf={#1}\global\confinfo{#2}}
852
+
853
+
854
+ %\def\marginpar{\@latexerr{The \marginpar command is not allowed in the
855
+ % `acmconf' document style.}\@eha}
856
+
857
+ \def\marginpar{\ClassError{%
858
+ \string\marginpar\space is not allowed in the `acmconf' document % January 2008
859
+ style}\@eha}
860
+
861
+ \mark{{}{}} % Initializes TeX's marks
862
+
863
+ \def\today{\ifcase\month\or
864
+ January\or February\or March\or April\or May\or June\or
865
+ July\or August\or September\or October\or November\or December\fi
866
+ \space\number\day, \number\year}
867
+
868
+ \def\@begintheorem#1#2{%
869
+ \trivlist
870
+ \item[%
871
+ \hskip 10\p@
872
+ \hskip \labelsep
873
+ {{\sc #1}\hskip 5\p@\relax#2.}%
874
+ ]
875
+ \it
876
+ }
877
+ \def\@opargbegintheorem#1#2#3{%
878
+ \trivlist
879
+ \item[%
880
+ \hskip 10\p@
881
+ \hskip \labelsep
882
+ {\sc #1\ #2\ % This mod by Gerry to enumerate corollaries
883
+ \setbox\@tempboxa\hbox{(#3)} % and bracket the 'corollary title'
884
+ \ifdim \wd\@tempboxa>\z@ % and retain the correct numbering of e.g. theorems
885
+ \hskip 5\p@\relax % if they occur 'around' said corollaries.
886
+ \box\@tempboxa % Gerry - Nov. 1999.
887
+ \fi.}%
888
+ ]
889
+ \it
890
+ }
891
+ \newif\if@qeded
892
+ \global\@qededfalse
893
+
894
+ % -- original
895
+ %\def\proof{%
896
+ % \vspace{-\parskip} % GM July 2000 (for tighter spacing)
897
+ % \global\@qededfalse
898
+ % \@ifnextchar[{\@xproof}{\@proof}%
899
+ %}
900
+ % -- end of original
901
+
902
+ % (JSS) Fix for vertical spacing bug - Gerry Murray July 30th. 2002
903
+ \def\proof{%
904
+ \vspace{-\lastskip}\vspace{-\parsep}\penalty-51%
905
+ \global\@qededfalse
906
+ \@ifnextchar[{\@xproof}{\@proof}%
907
+ }
908
+
909
+ \def\endproof{%
910
+ \if@qeded\else\qed\fi
911
+ \endtrivlist
912
+ }
913
+ \def\@proof{%
914
+ \trivlist
915
+ \item[%
916
+ \hskip 10\p@
917
+ \hskip \labelsep
918
+ {\sc Proof.}%
919
+ ]
920
+ \ignorespaces
921
+ }
922
+ \def\@xproof[#1]{%
923
+ \trivlist
924
+ \item[\hskip 10\p@\hskip \labelsep{\sc Proof #1.}]%
925
+ \ignorespaces
926
+ }
927
+ \def\qed{%
928
+ \unskip
929
+ \kern 10\p@
930
+ \begingroup
931
+ \unitlength\p@
932
+ \linethickness{.4\p@}%
933
+ \framebox(6,6){}%
934
+ \endgroup
935
+ \global\@qededtrue
936
+ }
937
+
938
+ \def\newdef#1#2{%
939
+ \expandafter\@ifdefinable\csname #1\endcsname
940
+ {\@definecounter{#1}%
941
+ \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}%
942
+ \global\@namedef{#1}{\@defthm{#1}{#2}}%
943
+ \global\@namedef{end#1}{\@endtheorem}%
944
+ }%
945
+ }
946
+ \def\@defthm#1#2{%
947
+ \refstepcounter{#1}%
948
+ \@ifnextchar[{\@ydefthm{#1}{#2}}{\@xdefthm{#1}{#2}}%
949
+ }
950
+ \def\@xdefthm#1#2{%
951
+ \@begindef{#2}{\csname the#1\endcsname}%
952
+ \ignorespaces
953
+ }
954
+ \def\@ydefthm#1#2[#3]{%
955
+ \trivlist
956
+ \item[%
957
+ \hskip 10\p@
958
+ \hskip \labelsep
959
+ {\it #2%
960
+ % \savebox\@tempboxa{#3}%
961
+ \saveb@x\@tempboxa{#3}% % January 2008
962
+ \ifdim \wd\@tempboxa>\z@
963
+ \ \box\@tempboxa
964
+ \fi.%
965
+ }]%
966
+ \ignorespaces
967
+ }
968
+ \def\@begindef#1#2{%
969
+ \trivlist
970
+ \item[%
971
+ \hskip 10\p@
972
+ \hskip \labelsep
973
+ {\it #1\ \rm #2.}%
974
+ ]%
975
+ }
976
+ \def\theequation{\arabic{equation}}
977
+
978
+ \newcounter{part}
979
+ \newcounter{section}
980
+ \newcounter{subsection}[section]
981
+ \newcounter{subsubsection}[subsection]
982
+ \newcounter{paragraph}[subsubsection]
983
+ \def\thepart{\Roman{part}}
984
+ \def\thesection{\arabic{section}}
985
+ \def\thesubsection{\thesection.\arabic{subsection}}
986
+ \def\thesubsubsection{\thesubsection.\arabic{subsubsection}} %removed \subsecfnt 29 July 2002 gkmt
987
+ \def\theparagraph{\thesubsubsection.\arabic{paragraph}} %removed \subsecfnt 29 July 2002 gkmt
988
+
989
+ \newif\if@uchead
990
+ \@ucheadfalse
991
+
992
+ %% CHANGES: NEW NOTE
993
+ %% NOTE: OK to use old-style font commands below, since they were
994
+ %% suitably redefined for LaTeX2e
995
+ %% END CHANGES
996
+ \setcounter{secnumdepth}{3}
997
+ \def\part{%
998
+ \@startsection{part}{9}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@}
999
+ {4\p@}{\normalsize\@ucheadtrue}%
1000
+ }
1001
+
1002
+ % Rationale for changes made in next four definitions:
1003
+ % "Before skip" is made elastic to provide some give in setting columns (vs.
1004
+ % parskip, which is non-elastic to keep section headers "anchored" to their
1005
+ % subsequent text.
1006
+ %
1007
+ % "After skip" is minimized -- BUT setting it to 0pt resulted in run-in heads, despite
1008
+ % the documentation asserted only after-skip < 0pt would have result.
1009
+ %
1010
+ % Baselineskip added to style to ensure multi-line section titles, and section heads
1011
+ % followed by another section head rather than text, are decently spaced vertically.
1012
+ % 12 Jan 2000 gkmt
1013
+ \def\section{%
1014
+ \@startsection{section}{1}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@}%
1015
+ {0.5pt}{\baselineskip=14pt\secfnt\@ucheadtrue}%
1016
+ }
1017
+
1018
+ \def\subsection{%
1019
+ \@startsection{subsection}{2}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@}
1020
+ {0.5pt}{\baselineskip=14pt\secfnt}%
1021
+ }
1022
+ \def\subsubsection{%
1023
+ \@startsection{subsubsection}{3}{\z@}{-10\p@ \@plus -4\p@ \@minus -2\p@}%
1024
+ {0.5pt}{\baselineskip=14pt\subsecfnt}%
1025
+ }
1026
+
1027
+ %\def\paragraph{%
1028
+ % \vskip 12pt\@startsection{paragraph}{3}{\z@}{6\p@ \@plus \p@}% original
1029
+ % {-5\p@}{\subsecfnt}%
1030
+ %}
1031
+ % If one wants sections, subsections and subsubsections numbered,
1032
+ % but not paragraphs, one usually sets secnumepth to 3.
1033
+ % For that, the "depth" of paragraphs must be given correctly
1034
+ % in the definition (``4'' instead of ``3'' as second argument
1035
+ % of @startsection):
1036
+ \def\paragraph{%
1037
+ \vskip 12pt\@startsection{paragraph}{4}{\z@}{6\p@ \@plus \p@}% % GM and Wolfgang May - 11/30/06
1038
+ {-5\p@}{\subsecfnt}%
1039
+ }
1040
+
1041
+ \let\@period=.
1042
+ \def\@startsection#1#2#3#4#5#6{%
1043
+ \if@noskipsec %gkmt, 11 aug 99
1044
+ \global\let\@period\@empty
1045
+ \leavevmode
1046
+ \global\let\@period.%
1047
+ \fi
1048
+ \par
1049
+ \@tempskipa #4\relax
1050
+ \@afterindenttrue
1051
+ \ifdim \@tempskipa <\z@
1052
+ \@tempskipa -\@tempskipa
1053
+ \@afterindentfalse
1054
+ \fi
1055
+ %\if@nobreak 11 Jan 00 gkmt
1056
+ %\everypar{}
1057
+ %\else
1058
+ \addpenalty\@secpenalty
1059
+ \addvspace\@tempskipa
1060
+ %\fi
1061
+ \parskip=0pt
1062
+ \@ifstar
1063
+ {\@ssect{#3}{#4}{#5}{#6}}
1064
+ {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}%
1065
+ }
1066
+
1067
+
1068
+ \def\@ssect#1#2#3#4#5{%
1069
+ \@tempskipa #3\relax
1070
+ \ifdim \@tempskipa>\z@
1071
+ \begingroup
1072
+ #4{%
1073
+ \@hangfrom{\hskip #1}%
1074
+ \interlinepenalty \@M #5\@@par}%
1075
+ \endgroup
1076
+ \else
1077
+ \def\@svsechd{#4{\hskip #1\relax #5}}%
1078
+ \fi
1079
+ \vskip -10.5pt %gkmt, 7 jan 00 -- had been -14pt, now set to parskip
1080
+ \@xsect{#3}\parskip=10.5pt} % within the starred section, parskip = leading 12 Jan 2000 gkmt
1081
+
1082
+
1083
+ \def\@sect#1#2#3#4#5#6[#7]#8{%
1084
+ \ifnum #2>\c@secnumdepth
1085
+ \let\@svsec\@empty
1086
+ \else
1087
+ \refstepcounter{#1}%
1088
+ \edef\@svsec{%
1089
+ \begingroup
1090
+ %\ifnum#2>2 \noexpand\rm \fi % changed to next 29 July 2002 gkmt
1091
+ \ifnum#2>2 \noexpand#6 \fi
1092
+ \csname the#1\endcsname
1093
+ \endgroup
1094
+ \ifnum #2=1\relax .\fi
1095
+ \hskip 1em
1096
+ }%
1097
+ \fi
1098
+ \@tempskipa #5\relax
1099
+ \ifdim \@tempskipa>\z@
1100
+ \begingroup
1101
+ #6\relax
1102
+ \@hangfrom{\hskip #3\relax\@svsec}%
1103
+ \begingroup
1104
+ \interlinepenalty \@M
1105
+ \if@uchead
1106
+ \uppercase{#8}%
1107
+ \else
1108
+ #8%
1109
+ \fi
1110
+ \par
1111
+ \endgroup
1112
+ \endgroup
1113
+ \csname #1mark\endcsname{#7}%
1114
+ \vskip -10.5pt % -14pt gkmt, 11 aug 99 -- changed to -\parskip 11 Jan 2000
1115
+ \addcontentsline{toc}{#1}{%
1116
+ \ifnum #2>\c@secnumdepth \else
1117
+ \protect\numberline{\csname the#1\endcsname}%
1118
+ \fi
1119
+ #7%
1120
+ }%
1121
+ \else
1122
+ \def\@svsechd{%
1123
+ #6%
1124
+ \hskip #3\relax
1125
+ \@svsec
1126
+ \if@uchead
1127
+ \uppercase{#8}%
1128
+ \else
1129
+ #8%
1130
+ \fi
1131
+ \csname #1mark\endcsname{#7}%
1132
+ \addcontentsline{toc}{#1}{%
1133
+ \ifnum #2>\c@secnumdepth \else
1134
+ \protect\numberline{\csname the#1\endcsname}%
1135
+ \fi
1136
+ #7%
1137
+ }%
1138
+ }%
1139
+ \fi
1140
+ \@xsect{#5}\parskip=10.5pt% within the section, parskip = leading 12 Jan 2000 gkmt
1141
+ }
1142
+ \def\@xsect#1{%
1143
+ \@tempskipa #1\relax
1144
+ \ifdim \@tempskipa>\z@
1145
+ \par
1146
+ \nobreak
1147
+ \vskip \@tempskipa
1148
+ \@afterheading
1149
+ \else
1150
+ \global\@nobreakfalse
1151
+ \global\@noskipsectrue
1152
+ \everypar{%
1153
+ \if@noskipsec
1154
+ \global\@noskipsecfalse
1155
+ \clubpenalty\@M
1156
+ \hskip -\parindent
1157
+ \begingroup
1158
+ \@svsechd
1159
+ \@period
1160
+ \endgroup
1161
+ \unskip
1162
+ \@tempskipa #1\relax
1163
+ \hskip -\@tempskipa
1164
+ \else
1165
+ \clubpenalty \@clubpenalty
1166
+ \everypar{}%
1167
+ \fi
1168
+ }%
1169
+ \fi
1170
+ \ignorespaces
1171
+ }
1172
+
1173
+ \def\@trivlist{%
1174
+ \@topsepadd\topsep
1175
+ \if@noskipsec
1176
+ \global\let\@period\@empty
1177
+ \leavevmode
1178
+ \global\let\@period.%
1179
+ \fi
1180
+ \ifvmode
1181
+ \advance\@topsepadd\partopsep
1182
+ \else
1183
+ \unskip
1184
+ \par
1185
+ \fi
1186
+ \if@inlabel
1187
+ \@noparitemtrue
1188
+ \@noparlisttrue
1189
+ \else
1190
+ \@noparlistfalse
1191
+ \@topsep\@topsepadd
1192
+ \fi
1193
+ \advance\@topsep \parskip
1194
+ \leftskip\z@skip
1195
+ \rightskip\@rightskip
1196
+ \parfillskip\@flushglue
1197
+ \@setpar{\if@newlist\else{\@@par}\fi}
1198
+ \global\@newlisttrue
1199
+ \@outerparskip\parskip
1200
+ }
1201
+
1202
+ %%% Actually, 'abbrev' works just fine as the default - Gerry Feb. 2000
1203
+ %%% Bibliography style.
1204
+
1205
+ \parindent 0pt
1206
+ \typeout{Using 'Abbrev' bibliography style}
1207
+ \newcommand\bibyear[2]{%
1208
+ \unskip\quad\ignorespaces#1\unskip
1209
+ \if#2..\quad \else \quad#2 \fi
1210
+ }
1211
+ \newcommand{\bibemph}[1]{{\em#1}}
1212
+ \newcommand{\bibemphic}[1]{{\em#1\/}}
1213
+ \newcommand{\bibsc}[1]{{\sc#1}}
1214
+ \def\@normalcite{%
1215
+ \def\@cite##1##2{[##1\if@tempswa , ##2\fi]}%
1216
+ }
1217
+ \def\@citeNB{%
1218
+ \def\@cite##1##2{##1\if@tempswa , ##2\fi}%
1219
+ }
1220
+ \def\@citeRB{%
1221
+ \def\@cite##1##2{##1\if@tempswa , ##2\fi]}%
1222
+ }
1223
+ \def\start@cite#1#2{%
1224
+ \edef\citeauthoryear##1##2##3{%
1225
+ ###1%
1226
+ \ifnum#2=\z@ \else\ ###2\fi
1227
+ }%
1228
+ \ifnum#1=\thr@@
1229
+ \let\@@cite\@citeyear
1230
+ \else
1231
+ \let\@@cite\@citenormal
1232
+ \fi
1233
+ \@ifstar{\@citeNB\@@cite}{\@normalcite\@@cite}%
1234
+ }
1235
+ %\def\cite{\start@cite23}
1236
+ \DeclareRobustCommand\cite{\start@cite23} % January 2008
1237
+ \def\citeNP{\cite*} % No Parentheses e.g. 5
1238
+ %\def\citeA{\start@cite10}
1239
+ \DeclareRobustCommand\citeA{\start@cite10} % January 2008
1240
+ \def\citeANP{\citeA*}
1241
+ %\def\shortcite{\start@cite23}
1242
+ \DeclareRobustCommand\shortcite{\start@cite23} % January 2008
1243
+ \def\shortciteNP{\shortcite*}
1244
+ %\def\shortciteA{\start@cite20}
1245
+ \DeclareRobustCommand\shortciteA{\start@cite20} % January 2008
1246
+ \def\shortciteANP{\shortciteA*}
1247
+ %\def\citeyear{\start@cite30}
1248
+ \DeclareRobustCommand\citeyear{\start@cite30} % January 2008
1249
+ \def\citeyearNP{\citeyear*}
1250
+ %\def\citeN{%
1251
+ \DeclareRobustCommand\citeN{% % January 2008
1252
+ \@citeRB
1253
+ \def\citeauthoryear##1##2##3{##1\ [##3%
1254
+ \def\reserved@a{##1}%
1255
+ \def\citeauthoryear####1####2####3{%
1256
+ \def\reserved@b{####1}%
1257
+ \ifx\reserved@a\reserved@b
1258
+ ####3%
1259
+ \else
1260
+ \errmessage{Package acmart Error: author mismatch
1261
+ in \string\citeN^^J^^J%
1262
+ See the acmart package documentation for explanation}%
1263
+ \fi
1264
+ }%
1265
+ }%
1266
+ \@ifstar\@citeyear\@citeyear
1267
+ }
1268
+ %\def\shortciteN{%
1269
+ \DeclareRobustCommand\shortciteN{% % January 2008
1270
+ \@citeRB
1271
+ \def\citeauthoryear##1##2##3{##2\ [##3%
1272
+ \def\reserved@a{##2}%
1273
+ \def\citeauthoryear####1####2####3{%
1274
+ \def\reserved@b{####2}%
1275
+ \ifx\reserved@a\reserved@b
1276
+ ####3%
1277
+ \else
1278
+ \errmessage{Package acmart Error: author mismatch
1279
+ in \string\shortciteN^^J^^J%
1280
+ See the acmart package documentation for explanation}%
1281
+ \fi
1282
+ }%
1283
+ }%
1284
+ \@ifstar\@citeyear\@citeyear % changed from "\@ifstart" 12 Jan 2000 gkmt
1285
+ }
1286
+
1287
+ \def\@citenormal{%
1288
+ \@ifnextchar [{\@tempswatrue\@citex;}%
1289
+ % original {\@tempswafalse\@citex,[]}% was ; Gerry 2/24/00
1290
+ {\@tempswafalse\@citex[]}% % GERRY FIX FOR BABEL 3/20/2009
1291
+ }
1292
+
1293
+ \def\@citeyear{%
1294
+ \@ifnextchar [{\@tempswatrue\@citex,}%
1295
+ % original {\@tempswafalse\@citex,[]}%
1296
+ {\@tempswafalse\@citex[]}% % GERRY FIX FOR BABEL 3/20/2009
1297
+ }
1298
+
1299
+ \def\@citex#1[#2]#3{%
1300
+ \let\@citea\@empty
1301
+ \@cite{%
1302
+ \@for\@citeb:=#3\do{%
1303
+ \@citea
1304
+ % original \def\@citea{#1 }%
1305
+ \def\@citea{#1, }% % GERRY FIX FOR BABEL 3/20/2009 -- SO THAT YOU GET [1, 2] IN THE BODY TEXT
1306
+ \edef\@citeb{\expandafter\@iden\@citeb}%
1307
+ \if@filesw
1308
+ \immediate\write\@auxout{\string\citation{\@citeb}}%
1309
+ \fi
1310
+ \@ifundefined{b@\@citeb}{%
1311
+ {\bf ?}%
1312
+ \@warning{%
1313
+ Citation `\@citeb' on page \thepage\space undefined%
1314
+ }%
1315
+ }%
1316
+ {\csname b@\@citeb\endcsname}%
1317
+ }%
1318
+ }{#2}%
1319
+ }
1320
+ %\let\@biblabel\@gobble % Dec. 2008 - Gerry
1321
+ % ----
1322
+ \def\@biblabelnum#1{[#1]} % Gerry's solution #1 - for Natbib
1323
+ \let\@biblabel=\@biblabelnum % Gerry's solution #1 - for Natbib
1324
+ \def\newblock{\relax} % Gerry Dec. 2008
1325
+ % ---
1326
+ \newdimen\bibindent
1327
+ \setcounter{enumi}{1}
1328
+ \bibindent=0em
1329
+ \def\thebibliography#1{%
1330
+ \ifnum\addauflag=0\addauthorsection\global\addauflag=1\fi
1331
+ \section[References]{% <=== OPTIONAL ARGUMENT ADDED HERE
1332
+ {References} % was uppercased but this affects pdf bookmarks (SP/GM October 2004)
1333
+ \@mkboth{{\refname}}{{\refname}}%
1334
+ }%
1335
+ \list{[\arabic{enumi}]}{%
1336
+ \settowidth\labelwidth{[#1]}%
1337
+ \leftmargin\labelwidth
1338
+ \advance\leftmargin\labelsep
1339
+ \advance\leftmargin\bibindent
1340
+ \parsep=0pt\itemsep=1pt % GM July 2000
1341
+ \itemindent -\bibindent
1342
+ \listparindent \itemindent
1343
+ \usecounter{enumi}
1344
+ }%
1345
+ \let\newblock\@empty
1346
+ \raggedright % GM July 2000
1347
+ \sloppy
1348
+ \sfcode`\.=1000\relax
1349
+ }
1350
+
1351
+
1352
+ \gdef\balancecolumns
1353
+ {\vfill\eject
1354
+ \global\@colht=\textheight
1355
+ \global\ht\@cclv=\textheight
1356
+ }
1357
+
1358
+ \newcount\colcntr
1359
+ \global\colcntr=0
1360
+ %\newbox\savebox
1361
+ \newbox\saveb@x % January 2008
1362
+
1363
+ \gdef \@makecol {%
1364
+ \global\advance\colcntr by 1
1365
+ \ifnum\colcntr>2 \global\colcntr=1\fi
1366
+ \ifvoid\footins
1367
+ \setbox\@outputbox \box\@cclv
1368
+ \else
1369
+ \setbox\@outputbox \vbox{%
1370
+ \boxmaxdepth \@maxdepth
1371
+ \@tempdima\dp\@cclv
1372
+ \unvbox \@cclv
1373
+ \vskip-\@tempdima
1374
+ \vskip \skip\footins
1375
+ \color@begingroup
1376
+ \normalcolor
1377
+ \footnoterule
1378
+ \unvbox \footins
1379
+ \color@endgroup
1380
+ }%
1381
+ \fi
1382
+ \xdef\@freelist{\@freelist\@midlist}%
1383
+ \global \let \@midlist \@empty
1384
+ \@combinefloats
1385
+ \ifvbox\@kludgeins
1386
+ \@makespecialcolbox
1387
+ \else
1388
+ \setbox\@outputbox \vbox to\@colht {%
1389
+ \@texttop
1390
+ \dimen@ \dp\@outputbox
1391
+ \unvbox \@outputbox
1392
+ \vskip -\dimen@
1393
+ \@textbottom
1394
+ }%
1395
+ \fi
1396
+ \global \maxdepth \@maxdepth
1397
+ }
1398
+ \def\titlenote{\@ifnextchar[\@xtitlenote{\stepcounter\@mpfn
1399
+ \global\advance\titlenotecount by 1
1400
+ \ifnum\titlenotecount=1
1401
+ \raisebox{9pt}{$\ast$}
1402
+ \fi
1403
+ \ifnum\titlenotecount=2
1404
+ \raisebox{9pt}{$\dagger$}
1405
+ \fi
1406
+ \ifnum\titlenotecount=3
1407
+ \raisebox{9pt}{$\ddagger$}
1408
+ \fi
1409
+ \ifnum\titlenotecount=4
1410
+ \raisebox{9pt}{$\S$}
1411
+ \fi
1412
+ \ifnum\titlenotecount=5
1413
+ \raisebox{9pt}{$\P$}
1414
+ \fi
1415
+ \@titlenotetext
1416
+ }}
1417
+
1418
+ \long\def\@titlenotetext#1{\insert\footins{%
1419
+ \ifnum\titlenotecount=1\global\tntoks={#1}\fi
1420
+ \ifnum\titlenotecount=2\global\tntokstwo={#1}\fi
1421
+ \ifnum\titlenotecount=3\global\tntoksthree={#1}\fi
1422
+ \ifnum\titlenotecount=4\global\tntoksfour={#1}\fi
1423
+ \ifnum\titlenotecount=5\global\tntoksfive={#1}\fi
1424
+ \reset@font\footnotesize
1425
+ \interlinepenalty\interfootnotelinepenalty
1426
+ \splittopskip\footnotesep
1427
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
1428
+ \hsize\columnwidth \@parboxrestore
1429
+ \protected@edef\@currentlabel{%
1430
+ }%
1431
+ \color@begingroup
1432
+ \color@endgroup}}
1433
+
1434
+ %%%%%%%%%%%%%%%%%%%%%%%%%
1435
+ \ps@plain
1436
+ \baselineskip=11pt
1437
+ \let\thepage\relax % For NO page numbers - Gerry Nov. 30th. 1999
1438
+ \def\setpagenumber#1{\global\setcounter{page}{#1}}
1439
+ %\pagenumbering{arabic} % Arabic page numbers but commented out for NO page numbes - Gerry Nov. 30th. 1999
1440
+ \twocolumn % Double column.
1441
+ \flushbottom % Even bottom -- alas, does not balance columns at end of document
1442
+ \pagestyle{plain}
1443
+
1444
+ % Need Copyright Year and Copyright Data to be user definable (in .tex file).
1445
+ % Gerry Nov. 30th. 1999
1446
+ \newtoks\copyrtyr
1447
+ \newtoks\acmcopyr
1448
+ \newtoks\boilerplate
1449
+ \def\CopyrightYear#1{\global\copyrtyr{#1}}
1450
+ \def\crdata#1{\global\acmcopyr{#1}}
1451
+ \def\permission#1{\global\boilerplate{#1}}
1452
+ %
1453
+ \newtoks\copyrightetc
1454
+ \global\copyrightetc{\ } % Need to have 'something' so that adequate space is left for pasting in a line if "confinfo" is supplied.
1455
+
1456
+ \toappear{\the\boilerplate\par
1457
+ {\confname{\the\conf}} \the\confinfo\par \the\copyrightetc}
1458
+ % End of ACM_PROC_ARTICLE-SP.CLS -- V3.2SP - 04/22/2009 --
1459
+ % Gerry Murray -- Wednesday April 22nd. 2009
1460
+ %
1461
+ % The following section (i.e. 3 .sty inclusions) was added in May 2007 so as to fix the problems that many
1462
+ % authors were having with accents. Sometimes accents would occur, but the letter-character would be of a different
1463
+ % font. Conversely the letter-character font would be correct but, e.g. a 'bar' would appear superimposed on the
1464
+ % character instead of, say, an unlaut/diaresis. Sometimes the letter-character would NOT appear at all.
1465
+ % Using [T1]{fontenc} outright was not an option as this caused 99% of the authors to 'produce' a Type-3 (bitmapped)
1466
+ % PDF file - useless for production.
1467
+ %
1468
+ % For proper (font) accenting we NEED these packages to be part of the .cls file i.e. 'ae', 'aecompl' and 'aeguil'
1469
+ % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1470
+ %% This is file `ae.sty'
1471
+ \def\fileversion{1.3}
1472
+ \def\filedate{2001/02/12}
1473
+ \NeedsTeXFormat{LaTeX2e}
1474
+ %\ProvidesPackage{ae}[\filedate\space\fileversion\space % GM
1475
+ % Almost European Computer Modern] % GM - keeping the log file clean(er)
1476
+ \newif\if@ae@slides \@ae@slidesfalse
1477
+ \DeclareOption{slides}{\@ae@slidestrue}
1478
+ \ProcessOptions
1479
+ \fontfamily{aer}
1480
+ \RequirePackage[T1]{fontenc}
1481
+ \if@ae@slides
1482
+ \renewcommand{\sfdefault}{laess}
1483
+ \renewcommand{\rmdefault}{laess} % no roman
1484
+ \renewcommand{\ttdefault}{laett}
1485
+ \else
1486
+ \renewcommand{\sfdefault}{aess}
1487
+ \renewcommand{\rmdefault}{aer}
1488
+ \renewcommand{\ttdefault}{aett}
1489
+ \fi
1490
+ \endinput
1491
+ %%
1492
+ %% End of file `ae.sty'.
1493
+ %
1494
+ %
1495
+ \def\fileversion{0.9}
1496
+ \def\filedate{1998/07/23}
1497
+ \NeedsTeXFormat{LaTeX2e}
1498
+ %\ProvidesPackage{aecompl}[\filedate\space\fileversion\space % GM
1499
+ %T1 Complements for AE fonts (D. Roegel)] % GM -- keeping the log file clean(er)
1500
+
1501
+ \def\@ae@compl#1{{\fontencoding{T1}\fontfamily{cmr}\selectfont\symbol{#1}}}
1502
+ \def\guillemotleft{\@ae@compl{19}}
1503
+ \def\guillemotright{\@ae@compl{20}}
1504
+ \def\guilsinglleft{\@ae@compl{14}}
1505
+ \def\guilsinglright{\@ae@compl{15}}
1506
+ \def\TH{\@ae@compl{222}}
1507
+ \def\NG{\@ae@compl{141}}
1508
+ \def\ng{\@ae@compl{173}}
1509
+ \def\th{\@ae@compl{254}}
1510
+ \def\DJ{\@ae@compl{208}}
1511
+ \def\dj{\@ae@compl{158}}
1512
+ \def\DH{\@ae@compl{208}}
1513
+ \def\dh{\@ae@compl{240}}
1514
+ \def\@perthousandzero{\@ae@compl{24}}
1515
+ \def\textperthousand{\%\@perthousandzero}
1516
+ \def\textpertenthousand{\%\@perthousandzero\@perthousandzero}
1517
+ \endinput
1518
+ %
1519
+ %
1520
+ %% This is file `aeguill.sty'
1521
+ % This file gives french guillemets (and not guillemots!)
1522
+ % built with the Polish CMR fonts (default), WNCYR fonts, the LASY fonts
1523
+ % or with the EC fonts.
1524
+ % This is useful in conjunction with the ae package
1525
+ % (this package loads the ae package in case it has not been loaded)
1526
+ % and with or without the french(le) package.
1527
+ %
1528
+ % In order to get the guillemets, it is necessary to either type
1529
+ % \guillemotleft and \guillemotright, or to use an 8 bit encoding
1530
+ % (such as ISO-Latin1) which selects these two commands,
1531
+ % or, if you use the french package (but not the frenchle package),
1532
+ % to type << or >>.
1533
+ %
1534
+ % By default, you get the Polish CMR guillemets; if this package is loaded
1535
+ % with the `cm' option, you get the LASY guillemets; with `ec,' you
1536
+ % get the EC guillemets, and with `cyr,' you get the cyrillic guillemets.
1537
+ %
1538
+ % In verbatim mode, you always get the EC/TT guillemets.
1539
+ %
1540
+ % The default option is interesting in conjunction with PDF,
1541
+ % because there is a Type 1 version of the Polish CMR fonts
1542
+ % and these guillemets are very close in shape to the EC guillemets.
1543
+ % There are no free Type 1 versions of the EC fonts.
1544
+ %
1545
+ % Support for Polish CMR guillemets was kindly provided by
1546
+ % Rolf Niepraschk <niepraschk@ptb.de> in version 0.99 (2000/05/22).
1547
+ % Bernd Raichle provided extensive simplifications to the code
1548
+ % for version 1.00.
1549
+ %
1550
+ % This package is released under the LPPL.
1551
+ %
1552
+ % Changes:
1553
+ % Date version
1554
+ % 2001/04/12 1.01 the frenchle and french package are now distinguished.
1555
+ %
1556
+ \def\fileversion{1.01}
1557
+ \def\filedate{2001/04/12}
1558
+ \NeedsTeXFormat{LaTeX2e}
1559
+ %\ProvidesPackage{aeguill}[2001/04/12 1.01 % % GM
1560
+ %AE fonts with french guillemets (D. Roegel)] % GM - keeping the log file clean(er)
1561
+ %\RequirePackage{ae} % GM May 2007 - already embedded here
1562
+
1563
+ \newcommand{\@ae@switch}[4]{#4}
1564
+ \DeclareOption{ec}{\renewcommand\@ae@switch[4]{#1}}
1565
+ \DeclareOption{cm}{\renewcommand\@ae@switch[4]{#2}}
1566
+ \DeclareOption{cyr}{\renewcommand\@ae@switch[4]{#3}}
1567
+ \DeclareOption{pl}{\renewcommand\@ae@switch[4]{#4}}
1568
+ \ExecuteOptions{pl}
1569
+ \ProcessOptions
1570
+
1571
+ %
1572
+ % Load necessary packages
1573
+ %
1574
+ \@ae@switch{% ec
1575
+ % do nothing
1576
+ }{% cm
1577
+ \RequirePackage{latexsym}% GM - May 2007 - already 'mentioned as required' up above
1578
+ }{% cyr
1579
+ \RequirePackage[OT2,T1]{fontenc}%
1580
+ }{% pl
1581
+ \RequirePackage[OT4,T1]{fontenc}%
1582
+ }
1583
+
1584
+ % The following command will be compared to \frenchname,
1585
+ % as defined in french.sty and frenchle.sty.
1586
+ \def\aeguillfrenchdefault{french}%
1587
+
1588
+ \let\guill@verbatim@font\verbatim@font
1589
+ \def\verbatim@font{\guill@verbatim@font\ecguills{cmtt}%
1590
+ \let\guillemotleft\@oguills\let\guillemotright\@fguills}
1591
+
1592
+ \begingroup \catcode`\<=13 \catcode`\>=13
1593
+ \def\x{\endgroup
1594
+ \def\ae@lfguill{<<}%
1595
+ \def\ae@rfguill{>>}%
1596
+ }\x
1597
+
1598
+ \newcommand{\ecguills}[1]{%
1599
+ \def\selectguillfont{\fontencoding{T1}\fontfamily{#1}\selectfont}%
1600
+ \def\@oguills{{\selectguillfont\symbol{19}}}%
1601
+ \def\@fguills{{\selectguillfont\symbol{20}}}%
1602
+ }
1603
+
1604
+ \newcommand{\aeguills}{%
1605
+ \ae@guills
1606
+ % We redefine \guillemotleft and \guillemotright
1607
+ % in order to catch them when they are used
1608
+ % with \DeclareInputText (in latin1.def for instance)
1609
+ % We use \auxWARNINGi as a safe indicator that french.sty is used.
1610
+ \gdef\guillemotleft{\ifx\auxWARNINGi\undefined
1611
+ \@oguills % neither french.sty nor frenchle.sty
1612
+ \else
1613
+ \ifx\aeguillfrenchdefault\frenchname
1614
+ \ae@lfguill % french.sty
1615
+ \else
1616
+ \@oguills % frenchle.sty
1617
+ \fi
1618
+ \fi}%
1619
+ \gdef\guillemotright{\ifx\auxWARNINGi\undefined
1620
+ \@fguills % neither french.sty nor frenchle.sty
1621
+ \else
1622
+ \ifx\aeguillfrenchdefault\frenchname
1623
+ \ae@rfguill % french.sty
1624
+ \else
1625
+ \@fguills % frenchle.sty
1626
+ \fi
1627
+ \fi}%
1628
+ }
1629
+
1630
+ %
1631
+ % Depending on the class option
1632
+ % define the internal command \ae@guills
1633
+ \@ae@switch{% ec
1634
+ \newcommand{\ae@guills}{%
1635
+ \ecguills{cmr}}%
1636
+ }{% cm
1637
+ \newcommand{\ae@guills}{%
1638
+ \def\selectguillfont{\fontencoding{U}\fontfamily{lasy}%
1639
+ \fontseries{m}\fontshape{n}\selectfont}%
1640
+ \def\@oguills{\leavevmode\nobreak
1641
+ \hbox{\selectguillfont (\kern-.20em(\kern.20em}\nobreak}%
1642
+ \def\@fguills{\leavevmode\nobreak
1643
+ \hbox{\selectguillfont \kern.20em)\kern-.2em)}%
1644
+ \ifdim\fontdimen\@ne\font>\z@\/\fi}}%
1645
+ }{% cyr
1646
+ \newcommand{\ae@guills}{%
1647
+ \def\selectguillfont{\fontencoding{OT2}\fontfamily{wncyr}\selectfont}%
1648
+ \def\@oguills{{\selectguillfont\symbol{60}}}%
1649
+ \def\@fguills{{\selectguillfont\symbol{62}}}}
1650
+ }{% pl
1651
+ \newcommand{\ae@guills}{%
1652
+ \def\selectguillfont{\fontencoding{OT4}\fontfamily{cmr}\selectfont}%
1653
+ \def\@oguills{{\selectguillfont\symbol{174}}}%
1654
+ \def\@fguills{{\selectguillfont\symbol{175}}}}
1655
+ }
1656
+
1657
+
1658
+ \AtBeginDocument{%
1659
+ \ifx\GOfrench\undefined
1660
+ \aeguills
1661
+ \else
1662
+ \let\aeguill@GOfrench\GOfrench
1663
+ \gdef\GOfrench{\aeguill@GOfrench \aeguills}%
1664
+ \fi
1665
+ }
1666
+
1667
+ \endinput
1668
+ %
1669
+
1670
+