A CSS stylesheet for exporting org-mode files
I have been writing a big document using org-mode, exporting it to HTML and using the browser to generate a PDF from it. It looks pretty nice, similar to what I achieved with Word on an earlier version, and faster to write. It just requires a CSS file to define the proper style.
/*
* CSS for org-mode document. Save with name style.css and include with
* #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="style.css" />
* It should be placed on the same directory as the HTML that is exported.
*
* Print options
*/
@page {
margin: 2.54cm;
size: A4;
/* Page numbers, does not really work on most browsers. */
@bottom-right {
padding-right: 20px;
content: "Page " counter(page);
}
}
@media print {
body {
font-size: 11pt;
}
h2, h3, h4, h5 {
page-break-after: avoid;
}
#table-of-contents {
/* Page break after table of contents */
page-break-after: always;
margin-top: 2em;
line-height: 1.5em;
width: 80%;
height: 40%;
margin: auto auto;
}
#table-of-contents > h2 {
text-align: center;
margin-top: 4em;
}
.figure {
/* Figure stays together with caption */
page-break-inside: avoid;
}
}
/*
* For ordinary browsing
*/
@media screen {
footer {
display: none;
}
body {
font-size: 12pt;
margin-left: 2em;
margin-right: 2em;
max-width: 50em;
}
#table-of-contents {
margin-top: 2em;
}
}
/*
* Common format
*/
body {
font-family: Calibri;
line-height: 1.2;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 0;
margin-bottom: 6pt;
}
h2 {
font-size: 1.3;
text-transform: uppercase;
}
h1 {
font-size: 1.6;
font-variant: small-caps;
}
p {
text-align: justify;
}
.figure > p {
font-style: italic;
}
a:link, a:visited {
text-decoration: none;
}
th.org-left {
text-align: left;
}
/* Mark external links with an icon. */
a[href^="http://"]:after,
a[href^="https://"]:after {
content: '\2021'; /*'\1F5D7';*/
font-style: roman;
}
A sample file would be:
#+TITLE: Sample org file #+STARTUP: inlineimages #+LANGUAGE: es #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="style.css" /> * First heading * Second heading ** Subheading 1 ** Subheading 2 #+caption: Some fancy figure #+attr_html: :width 50% [[./some-figure.png]]
The file can be simply exported using Ctrl-c Ctrl-e and then pressing 'h' followed by 'o' (HTML and Open in browser). Afterwards, printing can be done from the browser.
Edit: an example with output PDF is attached to this page.
Hope this is useful for you.
