First commit

This commit is contained in:
Lucas Verney 2016-01-25 14:54:02 +01:00
commit 9e22a6fd88
6 changed files with 103 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
*.pandoc.pdf

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "filters/pandoc-crossref"]
path = filters/pandoc-crossref
url = https://github.com/lierdakil/pandoc-crossref

11
Makefile Normal file
View File

@ -0,0 +1,11 @@
SOURCES = $(wildcard *.md)
OUT = $(SOURCES:.md=.pdf)
all: $(OUT)
$(OUT): $(SOURCES)
pandoc --smart -t latex $< --filter=filters/pandoc-svg.py --filter=pandoc-crossref -o $@
clean:
rm -f $(OUT)
find . -name "*.pandoc.pdf" -delete

27
README.md Normal file
View File

@ -0,0 +1,27 @@
Pandoc boilerplate
==================
Boilerplate to render scientific documents written in Markdown to LaTeX, using
Pandoc.
Includes various Pandoc filters:
* Automatically convert `SVG` files to `PDF` and rewrite the image link to
include them in the document easily.
* Include [pandoc-crossref](https://github.com/lierdakil/pandoc-crossref) for
easy numbering and referencing.
## TODO
* automatically convertfunction names (cos, sin, exp, log) to their
LaTeX equivalent (\cos and so on) when in a mathematical environment,
then taking out the useless leading `\`.
* not having to use \frac{}{} to write fractions, but instead
automatically convert simple fractions in math environment to \frac{}{}
(for instance convert "(1 / 2)" to "\frac{1}{2}")
* anything else like this that could help writing more readable LaTeX
code :)

43
filters/pandoc-svg.py Normal file
View File

@ -0,0 +1,43 @@
#! /usr/bin/env python
"""
Pandoc filter to convert svg files to pdf as suggested at:
https://github.com/jgm/pandoc/issues/265#issuecomment-27317316
"""
__author__ = "Jerome Robert"
import mimetypes
import subprocess
import os
import sys
from pandocfilters import toJSONFilter, Image
# TODO add emf export if fmt=="docx" ?
fmt_to_option = {
"latex": ("--export-pdf", "pdf"),
"beamer": ("--export-pdf", "pdf"),
# because of IE
"html": ("--export-png", "png")
}
def svg_to_any(key, value, fmt, meta):
if key == 'Image':
alt, [src, title] = value[1], value[-1]
mimet, _ = mimetypes.guess_type(src)
option = fmt_to_option.get(fmt)
if mimet == 'image/svg+xml' and option:
base_name, _ = os.path.splitext(src)
eps_name = base_name + "." + "pandoc." + option[1]
try:
mtime = os.path.getmtime(eps_name)
except OSError:
mtime = -1
if mtime < os.path.getmtime(src):
cmd_line = ['inkscape', option[0], eps_name, src]
sys.stderr.write("Running %s\n" % " ".join(cmd_line))
subprocess.call(cmd_line, stdout=sys.stderr.fileno())
return Image(['', [], []], alt, [eps_name, title])
if __name__ == "__main__":
toJSONFilter(svg_to_any)

18
notes.md Normal file
View File

@ -0,0 +1,18 @@
---
# Metadata
title: %title%
author: Lucas Verney
date: \today
# LaTeX headers
header-includes:
- \usepackage{dsfont}
- \usepackage{mathtools}
- \renewcommand{\arraystretch}{1.5}
# Pandoc-crossref options
cref: True
chapters: True
---
\tableofcontents
\pagebreak