|
|
||
|---|---|---|
| .circleci | ||
| chapters | ||
| images | ||
| .gitignore | ||
| LICENSE.md | ||
| Makefile | ||
| README.md | ||
| metadata.yml | ||
| style.css | ||
README.md
Pandoc book template
Description
This repository contains a simple template for building Pandoc documents; Pandoc is a suite of tools to compile markdown files into readable files (PDF, EPUB, HTML...).
Usage
Installing
Please, check this page for more information. On ubuntu, it can be installed as the pandoc package:
sudo apt-get install pandoc
This template uses make to build the output files, so don't forget to install it too:
sudo apt-get install make
To export to PDF files, make sure to install the following packages:
sudo apt-get install texlive-latex-base texlive-latex-recommended \
texlive-latex-extra texlive-fonts-recommended
Folder structure
Here's a folder structure for a Pandoc book:
my-book/ # Root directory.
|- build/ # Folder used to store builded (output) files.
|- chapters/ # Markdowns files; one for each chapter.
|- images/ # Images folder.
| |- cover.png # Cover page for epub.
|- metadata.yml # Metadata content (title, author...).
|- Makefile # Makefile used for building our books.
Setup generic data
Edit the metadata.yml file to set configuration data:
---
title: My book title
author: Daniel Herzog
rights: Creative Commons Attribution 4.0 International
language: en-US
tags: [book, my-book, etc]
abstract: |
Your summary text.
---
You can find the list of all available keys on this page.
Creating chapters
Creating a new chapter is as simple as creating a new markdown file in the chapters/ folder; you'll end up with something like this:
chapters/01-introduction.md
chapters/02-installation.md
chapters/03-usage.md
chapters/04-references.md
Pandoc and Make will join them automatically ordered by name; that's why the numeric prefixes are being used.
All you need to specify for each chapter at least one title:
# Introduction
This is the first paragraph of the introduction chapter.
## First
This is the first subsection.
## Second
This is the second subsection.
Each title (#) will represent a chapter, while each subtitle (##) will represent a chapter's section. You can use as many levels of sections as markdown supports.
Links between chapters
Anchor links can be used to link chapters within the book:
// chapters/01-introduction.md
# Introduction
For more information, check the [Usage] chapter.
// chapters/02-installation.md
# Usage
...
If you want to rename the reference, use this syntax:
For more information, check [this](#usage) chapter.
Anchor names should be downcased, and spaces, colons, semicolons... should be replaced with hyphens. Instead of Chapter title: A new era, you have: #chapter-title-a-new-era.
Links between sections
It's the same as anchor links:
# Introduction
## First
For more information, check the [Second] section.
## Second
...
Or, with al alternative name:
For more information, check [this](#second) section.
Inserting objects
Text. That's cool. What about images and tables?
Insert an image
Use Markdown syntax to insert an image with a caption:

Pandoc will automatically convert the image into a figure (image + caption).
If you want to resize the image, you may use this syntax, available in Pandoc 1.16:
{ width=50% height=50% }
Also, to reference an image, use LaTeX labels:
Please, admire the gloriousnes of Figure \ref{seagull_image}.

Insert a table
Use markdown table, and use the Table: <Your table description> syntax to add a caption:
| Index | Name |
| ----- | ---- |
| 0 | AAA |
| 1 | BBB |
| ... | ... |
Table: This is an example table.
If you want to reference a table, use LaTeX labels:
Please, check Table /ref{example_table}.
| Index | Name |
| ----- | ---- |
| 0 | AAA |
| 1 | BBB |
| ... | ... |
Table: This is an example table.\label{example_table}
Insert an equation
Wrap a LaTeX math equation between $ delimiters for inline (tiny) formulas:
This, $\mu = \sum_{i=0}^{N} \frac{x_i}{N}$, the mean equation, ...
Pandoc will transform them automatically into images using online services.
If you want to center the equation instead of inlining it, use double $$ delimiters:
$$\mu = \sum_{i=0}^{N} \frac{x_i}{N}$$
Here's an online equation editor.
Output
This template uses Makefile to automatize the building process. Instead of using the pandoc cli util, we're going to use some make commands.
Export to PDF
Use this command:
make pdf
The generated file will be placed in build/pdf.
Please, note that PDF file generation requires some extra dependencies (~ 800 MB):
sudo apt-get install texlive-latex-base texlive-fonts-recommended texlive-latex-extra
Export to EPUB
Use this command:
make epub
The generated file will be placed in build/epub.
Export to HTML
Use this command:
make html
The generated file(s) will be placed in build/html.
Extra configuration
If you want to configure the output, you'll probably have to look the Pandoc Manual for further information about pdf (LaTeX) generation, custom styles, etc.
References
Contributors
This project has been developed by:
| Avatar | Name | Nickname | |
|---|---|---|---|
| Daniel Herzog | Wikiti | info@danielherzog.es |