:title: Latex and Nix :identifier: 20231018T120000 :signature: 4=6 :date: 2023-10-18 :tags: latex, nix :author: Alex Carney :language: en Compiling LaTeX Documents with Nix ================================== The easy way ------------ :: $ nix-shell -p texlive.combined.full $ latexmk main.tex The not-so easy way ------------------- :: let pkgs = nixpkgs.legacyPackages.x86_64-linux; tex = (pkgs.texlive.combine { inherit (pkgs.texlive) scheme-basic arydshln fontawesome5 latexmk multirow metafont pgf; }); in { devShells.x86_64-linux.default = pkgs.mkShell { packages = [ tex ]; }; Lots of looking in ``nixpkgs/pkgs/tools/typesetting/tex/texlive/tlpdb.nix`` Using a derivation ------------------ :: packages.x86_64-linux.default = pkgs.stdenv.mkDerivation { pname = "my-document"; version = "2023.10"; src = ./.; buildInputs = [ tex ]; buildPhase = '' echo $(pwd) latexmk -pdf main.tex ''; installPhase = '' mkdir -p $out cp main.pdf $out/document-name.pdf ''; }; :: kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 1+0/600 --dpi 600 tcsl1095 mkdir: cannot create directory '././homeless-shelter': Permission denied mktexpk: /nix/store/7z9knc5c299c6jxfdbk38g33ga3yhp57-texlive-combined-2022-texmfdist/web2c/mktexdir /homeless-shelte> kpathsea: Appending font creation commands to missfont.log. https://github.com/NixOS/nixpkgs/issues/58697 https://github.com/dnadales/nix-latex-template - nice resource!