10 KiB
Eisvogel
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 2.
Preview
A custom title page | A basic example page |
---|---|
Installation
-
Install pandoc from http://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 template
eisvogel.tex
to your pandoc templates folder and rename the file toeisvogel.latex
. The location of the templates folder depends on your operating system:- Unix, Linux, macOS:
$XDG_DATA_HOME/pandoc/templates
or~/.pandoc/templates/
- Windows XP:
C:\Documents And Settings\USERNAME\Application Data\pandoc\templates
- Windows Vista or later:
C:\Users\USERNAME\AppData\Roaming\pandoc\templates
If there are no folders called
templates
orpandoc
you need to create them and put the templateeisvogel.latex
inside. - Unix, Linux, macOS:
Usage
-
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 --listings
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...
Custom Template Variables
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 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)
-
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. -
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
-
listings-no-page-break
(defaults tofalse
)avoid page break inside 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)
-
first-chapter
(defaults to1
)if typesetting a book with chapter numbers, specifies the number that will be assigned to the first chapter
-
float-placement-figure
(defaults toH
)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). TheH
specifier is provided by the float package and may not be used in conjunction with any other placement specifiers.
Examples
Numbered Sections
For PDFs with numbered sections use the --number-sections
or -N
option.
pandoc example.md -o example.pdf --template eisvogel --number-sections
Syntax Highlighting with Listings
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 example.md -o example.pdf --template eisvogel --listings
Syntax Highlighting Without 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 example.md -o example.pdf --template eisvogel --highlight-style pygments
pandoc example.md -o example.pdf --template eisvogel --highlight-style kate
pandoc example.md -o example.pdf --template eisvogel --highlight-style espresso
pandoc example.md -o example.pdf --template eisvogel --highlight-style tango
Standalone LaTeX Document
To produce a standalone LaTeX document for compiling with any LaTeX editor use .tex
as an output file extension.
pandoc example.md -o example.tex --template eisvogel
Changing the Document Language
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 example.md -o example.pdf --template eisvogel -V lang=en-GB
The following example changes the language to German:
pandoc example.md -o example.pdf --template eisvogel -V lang=de
Typesetting a Book
To typeset a book supply the template variable -V book
from the command line or via book: true
in the metadata.
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
. Chapter numbers start at 1. If you need to change that, specify first-chapter
in the template variables.
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
.
Example Images
A green title page | A background image on the title page |
---|---|
images and tables | Code blocks styled without listings |
---|---|
A book | Code blocks styled with listings |
---|---|
Credits
- This template includes code for styling block quotations from pandoc-letter by Aaron Wolen.
License
This project is open source licensed under the BSD 3-Clause License. Please see the LICENSE file for more information.