Pandoc filters for scientific writing
GPL-3.0 License
This package contains several filters for Pandoc to facilitate writing scientific texts.
Supported features are:
tabular
environment, see .To use the filters, you need pandoc
and python-pandocfilters
.
Run make
to generate PDF and HTML output for this example file.
The defenv
filter interprets definition lists as LaTeX environments.
The first word of the definition is the environment type.
It can be followed by a label as well as by a name.
An example with a name follows:
Definition (Tree) : A tree is a tuple $(N, \rightarrow)$, where $N$ is a set of tree nodes and $\rightarrow \in N \times N$ is a cycle-free relation.
Let us now reference a theorem, namely .
Theorem thm:inftrees : Let $N$ be an infinite set. Then there exists an infinite number of trees for $N$.
Proof : Trivial!
The linkref
filter renders links of the shape [](#ref)
as intra-document references.
In LaTeX, this is rendered as \autoref{ref}
, whereas
in HTML, this is rendered as <a href="#ref">ref</a>
.
The tabular
filter renders LaTeX tables using the tabular
package
instead of the longtable
package used by Pandoc by default.
Unfortunately, we still have to use \label
to reference tables.
For a more complete solution, you may consider using something like
pandoc-tablenos.
Table: Demonstration of pipe table syntax. \label{tab:example}
Right | Left | Default | Center |
---|---|---|---|
12 | 12 | 12 | 12 |
123 | 123 | 123 | 123 |
1 | 1 | 1 | 1 |
The listing
filter renders Pandoc code blocks as
floating code blocks with a caption.
By default, Pandoc creates floating code blocks
only when using the --listings
option.
However, I find the output of the listings
package
not as aesthetically pleasing as the one from Pandoc.
This filter thus allows to obtain
the beautiful output from Pandoc within a floating code block.
An example is given in .
#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}
Notice that this filter requires some LaTeX code to create the listing
environment.
It can be found in header.tex
.