the sane way of adding custom latex packages
over the last years, my collection of custom LaTeX packages grew. be it because i needed a newer version than the one available at ctan, to overwrite the behaviour of installed packages or because there simply wasn't a package available because i was too lazy to build one. yeah, it was the latter one in most cases.
and as i am really lazy i did not want to copy those packages into every new document/project folder. that meant i needed a way to somehow make different git repositories available to all LaTeX documents.
luckily LaTeX has support for a custom package directory, which should default
to ~/texmf
. as i did not want to clutter up my home directory, i wanted to
change that directory to say ~/.texmf
. now, there are two ways to do that:
either you modify the TEXMFHOME
variable in your texmf.conf
, which, if
you do use texlive, should be located in or around
/usr/share/texlive/texmf/web2c/texmf.cnf
. i did not like that approach
because in some cases that specific file could be overwritten by an update of
the ctan distribution. you can however export the TEXMFHOME
variable
pointing to the right directory.
of course the local texmf tree has to maintain the same directory structure as
your installed tree. that is the reason why you can't simply point the
TEXMFHOME
variable to a bunch of git repositories. for LaTeX packages you
must put your packages under $TEXMFHOME/tex/latex
, if you want to install
fonts or other stuff, this works the same way, you just need to put them under
a different subdirectory. a nice thing is, that a local texmf tree does not
have to be texhashed. so, once you put your packages into that directory,
you're basically done. a final warning: be sure that the LaTeX packages do
contain files the LaTeX compiler can read, for example be sure that .sty
files are available and not the .dtx
and .ins
files which are used to
generate a style file.
so, here comes tl;dr version of this:
mkdir ~/projects/tex
cd ~/projects/tex
git clone git://git.dgsiegel.net/latex-tangocolors.git
[...]
export TEXMFHOME=~/.texmf # put this in your .bashrc, .zshrc, ...
mkdir -p ~/.texmf/tex
ln -s ~/projects/tex ~/.texmf/tex/latex
Want more ideas like this in your inbox?
My letters are about long-lasting, sustainable change that fundamentally amplifies our human capabilities and raises our collective intelligence through generations. Would love to have you on board.