A pandoc LaTeX template to convert markdown files to PDF or LaTeX using the Trivadis 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
trivadis.tex
to your pandoc templates folder and rename the file totrivadis.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
If there are no folders called
templates
orpandoc
you need to create them and put the templatetrivadis.latex
inside. - Unix, Linux, macOS:
Alternatively you can keep using the trivadis.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 trivadis.tex
.
- Use template from the custom template folder
--template trivadis
. - Provide the template via command line parameter
--template trivadis.tex
.
The following examples will use the Trivadis 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 Trivadis Pandoc template does use a company logo. By default it will lock for the file images/TVDLogo2019.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/TVDLogo2019.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 trivadis --listings -V logo=images/TVDLogo2018.eps
pandoc examples/test.md -o examples/test.pdf --template trivadis --listings --variable=logo:images/TVDLogo2018.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/TVDLogo2019.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 trivadis --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 when
true
-
titlepage-color
the background color of the title page. The color value must be given as an HTML hex color like
D8DE2C
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 page
-
titlepage-rule-color
(defaults to435488
)the color of the rule on the top of the title page
-
titlepage-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 the
justification
parameter of the caption package) -
toc-own-page
(defaults tofalse
)begin new page after table of contents, when
true
-
listings-disable-line-numbers
(defaults tofalse
)disables line numbers for all listings
-
disable-header-and-footer
(default tofalse
)disables the header and footer completely on all pages
-
header-left
(defaults to the title)the text on the left side of the header
-
header-center
the text in the center of the header
-
header-right
(defaults to the date)the text on the right side of the header
-
footer-left
(defaults to the author)the text on the left side of the footer
-
footer-center
the text in the center of the footer
-
footer-right
(defaults to the page number)the text on the right side of the footer
-
book
(defaults tofalse
)typeset as book
-
logo
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 trivadis --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 trivadis --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 trivadis
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 trivadis -V lang=en-GB
The following example changes the language to German:
pandoc examples/test.md -o examples/test.pdf --template trivadis -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.