Skip to content

Instantly share code, notes, and snippets.

@bpj
Created June 24, 2019 16:24
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bpj/1a19d97f1cc566e0c677d6fc083bd1a7 to your computer and use it in GitHub Desktop.
Save bpj/1a19d97f1cc566e0c677d6fc083bd1a7 to your computer and use it in GitHub Desktop.
Minimal TeXLive installation for Pandoc
#!/bin/sh
# pandoc-texlive.sh
# TeXLive packages needed to produce PDFs with Pandoc
# using different *TeX `--pdf-engine` options.
tlmgr install \
scheme-basic \
amsfonts \
amsmath \
babel \
biber \
biblatex \
bibtex \
bidi \
booktabs \
collection-context \
collection-luatex \
collection-xetex \
csquotes \
ec \
fancyvrb \
filehook \
fontspec \
footnotehyper \
geometry \
graphics \
hyperref \
ifluatex \
ifxetex \
listings \
lm \
lm-math \
lualatex-math \
luaotfload \
mathspec \
microtype \
natbib \
oberdiek \
parskip \
polyglossia \
setspace \
tools \
ulem \
unicode-math \
upquote \
xcolor \
xurl \
zapfding \
@bpj
Copy link
Author

bpj commented Jun 24, 2019

Minimal TeXLive installation for Pandoc

In the course of setting up Pandoc on a laptop with limited resources I have through trial and error determined the TeXLive packages needed to produce a very simple PDF with Pandoc using --pdf-engine=pdflatex, --pdf-engine=xelatex, --pdf-engine=lualatex or --pdf-engine=context.

It turns out that the list of needed packages in the Pandoc manual is not sufficient, not only because in some cases the names of the .sty files and the TeXLive packages don't coincide. Since I in the end decided to include collection-context, collection-luatex and collection-xetex for good measure there may actually be some duplication in the list below.

Note that when running install-tl as described on the TeXLive quick install page you should actively select the basic scheme and deselect docs and sources in the options if you want a very lean install as I did here.

Note that if you have manually added the path to TeXLive's bin directory to your PATH variable as is typically the case it will not be in the root's PATH when running with sudo. The workaround is to use env to temporarily set the root's PATH to be identical to your PATH by running

sudo env "PATH=$PATH" sh pandoc-texlive.sh

@magnus-lycka
Copy link

I ended up with this on ubuntu 18.04 and texlive 20200120:

tlmgr install scheme-basic \
amsfonts amsmath \
babel biber biblatex bibtex bidi bitset booktabs \
collection-context collection-luatex collection-xetex csquotes \
ec \
fancyvrb filehook fontspec footnotehyper \
geometry graphics \
hyperref \
iftex \
letltxmacro listings lm lm-math lualatex-math luaotfload \
mathspec microtype \
natbib \
oberdiek \
parskip pdfescape polyglossia \
setspace \
tools \
ulem unicode-math upquote \
xcolor xurl \
zapfding

I had to add bitset, letltxmacro and pdfescape, and replace ifluatex and ifxetex with iftex. I didn't check whether that was a minimal list.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment