A pandoc LaTeX template to convert markdown files to PDF or LaTeX using a TeX template CI. It is designed for lecture notes and exercises with a focus on computer science. The template is compatible with Pandoc 2.
A custom title page | A basic example page |
---|---|
-
Install pandoc from http://pandoc.org/. You also need to install LaTeX.
-
Move the template
oradba.tex
to your Pandoc templates folder and rename the file tooradba.latex
.The location of the templates folder depends on your operating system:- Unix, Linux, macOS:
~/.pandoc/templates/
- Windows XP:
C:\Documents And Settings\USERNAME\Application Data\pandoc
- Windows Vista or later:
C:\Users\USERNAME\AppData\Roaming\pandoc
- Unix, Linux, macOS:
If there are no folders called templates
or pandoc
you need to create them
and put the template oradba.latex
inside.
Alternatively you can keep using the oradba.tex
without putting it to the
user defined template folder. In this case you just have to add the template via
command line parameter e.g. --template oradba.tex
.
- Use template from the custom template folder
--template oradba
. - Provide the template via command line parameter
--template oradba.tex
.
The following examples will use the OraDBA template from the custom template folder. If you have not copy the template as described above, you will have to adapt the commands and explicitly provide the path to the template.
The OraDBA Pandoc template does use a company logo. By default it will lock
for the file images/logo.eps
in your current folder. The PDF
conversion via Latex will fail, if the file does not exist. There are a couple
of option to provide a logo.
-
Provide the logo in a local image folder e.g.
images/logo.eps
-
Specify a logo via command line parameter by adding pandoc variable parameter
-V KEY[=VAL]
respectively--variable=KEY[:VAL]
pandoc examples/test.md -o examples/test.pdf --template oradba --listings -V logo=images/logo.eps pandoc examples/test.md -o examples/test.pdf --template oradba --listings --variable=logo:images/logo.eps
-
The simples method is to add the logo in the metadata of you markdown file. There you just have to provide the relative path you the logo.
---
title: "The Document Title"
author: [Example Author, Another Author]
date: "2017-02-20"
logo: images/logo.eps
---
-
Open the terminal and navigate to the folder where your markdown file is located.
-
Execute the following command
pandoc examples/test.md -o examples/test.pdf --from markdown --template oradba --listings
where
test.md
is the markdown file you want to convert to PDF.
In order to have nice headers and footers you need to supply metadata to your document. You can do that with a YAML metadata block at the top of your markdown document (see the example markdown file). Your markdown document may look like the following:
---
title: "The Document Title"
author: [Example Author, Another Author]
date: "2017-02-20"
keywords: [Markdown, Example]
---
Here is the actual document text...
This template defines some new variables to control the appearance of the title page. The existing template variables from pandoc are all supported and their documentation can be found in the pandoc manual.
titlepage
(defaults tofalse
) turns on the title page whentrue
titlepage-color
the background color of the title page. The color value must be given as an HTML hex color likeD8DE2C
without the leading number sign (#
). When specifying the color in YAML, it is advisable to enclose it in quotes like sotitlepage-color: "D8DE2C"
to avoid the truncation of the color (e.g.000000
becoming0
).titlepage-text-color
(defaults to5F5F5F
) the text color of the title pagetitlepage-rule-color
(defaults to435488
) the color of the rule on the top of the title pagetitlepage-rule-height
(defaults to4
) the height of the rule on the top of the title page (in points)caption-justification
(defaults toraggedright
) justification setting for captions (uses thejustification
parameter of the caption package)toc-own-page
(defaults tofalse
) begin new page after table of contents, whentrue
listings-disable-line-numbers
(defaults tofalse
) disables line numbers for all listingstitle-color
(defaults to000000
) Colour of the document titlesubtitle-color
(defaults toA100FF
) Colour of the document subtitledisable-header-and-footer
(default tofalse
) disables the header and footer completely on all pagesdisable-header
(default tofalse
) disables the header completely on all pagesdisable-footer
(default tofalse
) disables the footer completely on all pagesheader-left
(defaults to the title) the text on the left side of the headerheader-center
the text in the center of the headerheader-right
(defaults to the date) the text on the right side of the headerfooter-left
(defaults to the author) the text on the left side of the footerfooter-center
the text in the center of the footerfooter-right
(defaults to the page number) the text on the right side of the footerbook
(defaults tofalse
) typeset as booklogo
path to an image that will be displayed on the title page. The path is always relative to where pandoc is executed. The option--resource-path
has no effect.logo-width
(defaults to100
) the width of the logo (in points)
You can get syntax highlighting of delimited code blocks by using the LaTeX
package listings with the option --listings
. This example will produce the
same syntax highlighting as in the example PDF.
pandoc examples/test.md -o examples/test.pdf --template oradba --listings
The following examples show syntax highlighting of delimited code blocks
without using listings. To see a list of all the supported highlight styles, type
pandoc --list-highlight-styles
.
pandoc examples/test.md -o examples/test.pdf --template oradba --highlight-style pygments
To produce a standalone LaTeX document for compiling with any LaTeX editor use
.tex
as an output file extension.
pandoc examples/test.md -o examples/test.tex --template oradba
The default language of this template is American English. The lang
variable
identifies the main language of the document, using a code according to
BCP 47 (e.g. en
or en-GB
). For an
incomplete list of the supported language codes see
the documentation for the hyph-utf8 package (Section 2).
The following example changes the language to British English:
pandoc examples/test.md -o examples/test.pdf --template oradba -V lang=en-GB
The following example changes the language to German:
pandoc examples/test.md -o examples/test.pdf --template oradba -V lang=de
To typeset a book supply the template variable -V book
.
To get the correct chapter headings you need to tell pandoc that it should convert
first level headings (indicated by one #
in markdown) to chapters with the command
line option --top-level-division=chapter
.
There will be one blank page before each chapter because the template is two-sided
per default. So if you plan to publish your book as a PDF and don't need a blank
page you should add the class option onesided
which can be done by supplying a
template variable -V classoption=oneside
.
Please file your bug reports, enhancement requests, questions and other support requests within Github's issue tracker:
- This template is based on the
eisvogel.tex
template from pandoc-letter by Aaron Wandmalfarbe. - This template includes code for styling block quotations from pandoc-letter by Aaron Wolen.
This project is open source licensed under the GNU General Public License v3.0. You may obtain a copy of the License at https://www.gnu.org/licenses/gpl.html.