PubCSS is a library of CSS stylesheets and HTML templates for formatting academic publications for print and the web.
Currently, the following formats are supported:
- ACM SIG Proceedings
- ACM SIGCHI Conference Papers
- ACM SIGCHI Extended Abstracts
- IEEE Conference Proceedings
Check out sample output here.
- Create an HTML file, or modify the relevant template, to add your content
- Link your HTML to the relevant
pub.css
stylesheet - Build to PDF using Prince with the command
prince input.html output.pdf
The only dependency is Prince, which is free for non-commercial use.
Sections and subsections are automatically numbered by following this pattern.
<h1>Section Header</h1>
<section>
<h2>Subsection Header</h2>
<p>Lorem ipsum</p>
</section>
Figures and tables are also numbered if you include a caption.
<table>
<tr><td>1</td><td>2</td></tr>
<caption>Example Table</caption>
<table>
<figure>
<img src="graph.png">
<figcaption>Example Figure</figcaption>
</figure>
References are also numbered. Be sure to assign them unique IDs.
<cite id="nicole">Nicole. 2015. Title of paper. <em>Journal</em>, 4(3), 1-10.</cite>
Citations to the references make use of these IDs.
<a href="#nicole"></a>
Multiple citations can be made in one set of brackets.
<span class="cites"><a href="#beeker"></a><a href="#jackie"></a><a href="#kiwi"></a></span>
Sections, tables, and figures can also be referenced by adding a class.
<a href="#intro" class="section"></a>
<a href="#example-table" class="table"></a>
<a href="#example-figure" class="figure"></a>
Equations are also numbered. MathML is well-supported by Prince. For the web, you’ll need MathJax to render MathML properly in Chrome and Internet Explorer.
<div class="equation">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mi>E</mi>
<mo>=</mo>
<mi>m</mi>
<msup>
<mi>c</mi>
<mn>2</mn>
</msup>
</math>
</div>
Footnotes are made within the body text, and are automatically moved to the bottom of the current page.
<p>This is text.<span class="footnote">And this is a footnote.</span></p>
Smart quotes can be used in lieu of straight quotes by enclosing the text like so. You can nest quotes within quotes.
<q>To be or not be.</q>
Utility classes are also available to modify layout and counter behavior.
col-2
: divide the element into 2 columnscol-3
: divide the element into 3 columnscol-4
: divide the element into 4 columnscol-span
: span all of the columns of parentcol-break-before
: force column break before elementcol-break-after
: force column break after elementpage-break-before
: force page break before elementpage-break-after
: force page break after elementcounter-skip
: do not count this headercounter-reset
: reset counter to 0
One of the major advantages of PubCSS is that you can use CSS to customize the style. All of the usual rules apply.
To create a new theme, you’ll want to dig into the LESS source. The most common changes can be made through variables.less
, such as toggling page numbers and setting counter styles. The rest can be included in custom.less
.