Loading repository data…
Loading repository data…
Wandmalfarbe / repository
A pandoc LaTeX template to convert markdown files to PDF or LaTeX.
A clean pandoc LaTeX template to convert your markdown files to PDF or LaTeX. It is designed for lecture notes and exercises with a focus on computer science. The template is compatible with pandoc 3.
| A custom title page | A basic example page |
|---|---|
Install pandoc from https://pandoc.org/. You also need to install LaTeX.
Download the latest version of the Eisvogel template from the release page.
Extract the downloaded ZIP archive and open the folder.
Move the two template files eisvogel.latex and eisvogel.beamer to your
pandoc templates folder. The location of the templates folder depends on your operating system:
/Users/USERNAME/.local/share/pandoc/templates/ or /Users/USERNAME/.pandoc/templates/C:\Users\USERNAME\AppData\Roaming\pandoc\templates\If there are no folders called templates or pandoc you need to create them and put the two template files inside. You can find the default user data directory on your system by looking at the output of pandoc --version.
The Eisvogel template is distributed in three different versions inside the compressed archives:
eisvogel.latex
A standalone single file version for normal documents (articles, books, notes). The LaTeX and beamer templates used to be in a single file but are now separated.
[!IMPORTANT]
This file is NOT present in this Git repository and has to be obtained from a released version of the template.
eisvogel.beamer
A standalone single file version for use with beamer to produce slides. The LaTeX and beamer templates used to be in a single file but are now separated.
[!IMPORTANT]
This file is NOT present in this Git repository and has to be obtained from a released version of the template.
template-multi-file
This folder contains the original template (LaTeX and Beamer), split into several files. At release, the one-file versions are generated from this folder.
Alternatively, if you don't want to install LaTeX, you can use the Docker image named pandoc/extra. The image contains pandoc, LaTeX and a curated selection of components such as the eisvogel template, pandoc filters and open source fonts. A common use of the image looks like this (line breaks for readability):
docker run --rm \
--volume "$(pwd):/data" \
--user $(id -u):$(id -g) \
pandoc/extra example.md -o example.pdf --template eisvogel --syntax-highlighting idiomatic
For frequent command line use, you can define the following shell alias:
alias pandock='docker run --rm -v "$(pwd):/data" -u $(id -u):$(id -g) pandoc/extra'
The example invocation with Docker from above now looks like this:
pandock example.md -o example.pdf --template eisvogel --syntax-highlighting idiomatic
Open the terminal and navigate to the folder where your markdown file is located.
Execute the following command
pandoc example.md -o example.pdf --from markdown --template eisvogel --syntax-highlighting idiomatic
where example.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 resulting PDF document. The existing template variables from pandoc are all supported and their documentation can be found in the pandoc manual.
titlepage (defaults to false)
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 so titlepage-color: "D8DE2C" to avoid the truncation of the color (e.g. 000000 becoming 0).
titlepage-text-color (defaults to 5F5F5F)
the text color of the title page
titlepage-rule-color (defaults to 435488)
the color of the rule on the top of the title page
titlepage-rule-height (defaults to 4)
the height of the rule on the top of the title page (in points)
titlepage-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.
titlepage-background
the path to a background image for the title page. The background image is scaled to cover the entire page. In the examples folder under titlepage-background are a few example background images.
page-background
the path to a background image for any page. The background image is scaled to cover the entire page. In the examples folder under page-background are a few example background images.
page-background-opacity (defaults to 0.2)
the background image opacity
caption-justification (defaults to raggedright)
justification setting for captions (uses the justification parameter of the caption package)
toc-own-page (defaults to false)
begin new page after table of contents, when true
listings-disable-line-numbers (defaults to false)
disables line numbers for all listings
LaTeX manages addons and additional functionality in so-called packages. You might get the following error when compiling a document with the Eisvogel template:
! LaTeX Error: File `footnotebackref.sty' not found.
Type X to quit or <RETURN> to proceed,
or enter new name. (Default extension: sty)
Enter file name:
! Emergency stop.
<read *>
LaTeX informs you that the additional package footnotebackref is required to
render the document.
Eisvogel requires a full texlive distribution that can be installed by running
apt-get install texlive-full in the terminal. Because texlive-full is very
large (about 5 Gigabytes) you can also install the smaller texlive bundles and
add any missing packages manually.
A smaller texlive bundle is texlive-latex-extra. With texlive-latex-extra
you also need to install these packages manually:
adjustbox babel-german background bidi collectbox csquotes everypage filehook
footmisc footnotebackref framed fvextra letltxmacro ly1 mdframed mweights
needspace pagecolor sourcecodepro sourcesans titling ucharcat
unicode-math upquote xecjk xurl zref draftwatermark
Install them with the following command:
tlmgr install soul adjustbox babel-german background bidi collectbox csquotes everypage filehook footmisc footnotebackref framed fvextra letltxmacro ly1 mdframed mweights needspace pagecolor sourcecodepro sourcesans titling ucharcat unicode-math upquote xecjk xurl zref draftwatermark
Additional information about the different texlive packages can be found at this TeX-StackExchange answer: https://tex.stackexchange.com/a/504566
If you don't want to install all missing packages manually, MiKTeX might be an alternative.
MiKTeX has the ability to automatically install missi
listings-no-page-break (defaults to false)
avoid page break inside listings
disable-header-and-footer (default to false)
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
footnotes-pretty (defaults to false)
prettifies formatting of footnotes (requires package footmisc)
footnotes-disable-backlinks (defaults to false)
disables making the reference from the footnote at the bottom of the page into a link back to the occurrence of the footnote in the main text (enabling requires package footnotebackref).
book (defaults to false)
typeset as book
logo-width (defaults to 35mm)
the width of the logo. One needs to specify the width with a (TeX) unit e.g. 100pt or 35mm. The following units can be used:
pt: Pointpc: pica (12 pt)in: inch (72.27 pt)bp: Big point (72 bp = 1 in)cm: Centimetermm: Millimeterdd: Didot pointcc: cicero (12 dd)sp: Scaled point (65,536 sp = 1 pt)ex: Nominal x-heightem: Nominal m-widthpx: Pixel (only for pdfTeX and LuaTeX) The dimension given to the \pdfpxdimen primitive; default value is 1 bp, corresponding to a pixel density of 72 dpi.A visual overview of the length units is available at https://github.com/tweh/tex-units.
first-chapter (defaults to 1)
if typesetting a book with chapter numbers, specifies the number that will be assigned to the first chapter
float-placement-figure (defaults to H)
Reset the default placement specifier for figure environments to the supplied value e.g. htbp. The available specifiers are listed below. The first four placement specifiers can be combined.
h: Place the float here, i.e., approximately at the same point it occurs in the source text.t: Place the float at the top of the page.b: Place the float at the bottom of the page.p: Place the float on the next page that will contain only floats like figures and tables.H: Place the float HERE (exactly where it occurs in the source text). The H specifier is provided by the float package and may not be used in conjunction with any other placement specifiers.table-use-row-colors (defaults to false)
enables row colors for tables. The default value is false because the coloring extends beyond the edge of the table and there is currently no way to change that.
code-block-font-size (defaults to \small)
LaTeX command to change the font size for code blocks. The available values are \tiny, \scriptsize, \footnotesize, \small, \normalsize, \large, \Large, \LARGE, \huge and \Huge. This option will change the font size for default code blocks using the verbatim environment and for code blocks generated with listings.
watermark (defaults to none)
Displays the text provided as a watermark on each page. Useful to express that a document is work in progress, a draft, or that the document is confidential.