I have been very happily using nix to manage the dependencies of a latex project. My default.nix
may or may not be important but it is presented at the end. I could move between computers and it would only install a small subset of texlive on demand. That is until I tried to use a computer that did not have all the fonts the project uses. Are we at the mercy of the OS when it comes to fonts or is there a way to install project-local fonts at least for latex?
{ pkgs ? import <nixpkgs> {}} :
let
dot2tex = pkgs.python2Packages.dot2tex;
lua = pkgs.luaPackages.luaposix;
tex = with pkgs; (texlive.combine {
inherit (texlive)
scheme-small
enumitem
mdframed
needspace
zref
biblatex
xcolor
tcolorbox
titlesec
adjustbox
collectbox
emoji
datetime2
etoolbox
tracklang
environ
abstract
cancel
latexmk
minted
fvextra
catchfile
xstring
koma-script
framed
; });
py = pkgs.python39.withPackages (p: with p; [pandas numpy pygments matplotlib]);
in pkgs.stdenv.mkDerivation {
pname = "thesis";
version = "0.0.1";
src = ./.;
buildInputs = [tex py];
phases = "buildPhase";
buildPhase = ''
./build.sh
'';
# ${./.} is the path to /nix/store/... ${toString ./.} evaluates to
# the current directory.
LUA_PATH = "${toString ./.}/lua/?.lua;$LUA_PATH";
}