From be8c9b200b7f51db1de96f018e9f0df7e4864c91 Mon Sep 17 00:00:00 2001 From: Minijackson Date: Wed, 1 Mar 2023 09:59:43 +0100 Subject: latex: add extraTeXLivePackages option --- latex.nix | 131 +++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 69 insertions(+), 62 deletions(-) diff --git a/latex.nix b/latex.nix index 6ee5026..4207f42 100644 --- a/latex.nix +++ b/latex.nix @@ -1,72 +1,79 @@ -{ lib -, runCommand -, makeFontsConf -, fira -, fira-code -, league-of-moveable-type -, inkscape -, freefont_ttf -, lmodern -, pandoc -, pandoc-lua-filters -, pandoc-templates -, pygments -, texlive -, which -, documentType ? "latex" +{ + lib, + runCommand, + makeFontsConf, + fira, + fira-code, + fira-mono, + league-of-moveable-type, + inkscape, + freefont_ttf, + lmodern, + pandoc, + pandoc-lua-filters, + pandoc-templates, + pygments, + texlive, + which, + documentType ? "latex", +}: { + name, + src, + extraPandocArgs ? "", + extraLatexArgs ? "", + extraTeXLivePackages ? {}, }: - -{ name, src, extraPandocArgs ? "", extraLatexArgs ? "" }: - with lib; + runCommand name + { + inherit src; -runCommand name -{ - inherit src; + nativeBuildInputs = [ + pandoc + pygments + fira-code + fira-mono + which + (texlive.combine ({ + inherit (texlive) scheme-full; + } // extraTeXLivePackages)) + league-of-moveable-type + inkscape + ]; - nativeBuildInputs = [ - pandoc - pygments - fira-code - which - texlive.combined.scheme-full - league-of-moveable-type - inkscape - ]; + FONTCONFIG_FILE = makeFontsConf { + fontDirectories = [lmodern freefont_ttf fira fira-code]; + }; - FONTCONFIG_FILE = makeFontsConf { - fontDirectories = [ lmodern freefont_ttf fira fira-code ]; - }; + pandocCmd = '' + pandoc ${name}.md -t ${documentType} -so document.tex + --template=${pandoc-templates}/default.latex + --lua-filter=${pandoc-lua-filters}/share/pandoc/filters/minted.lua + --pdf-engine=xelatex + --pdf-engine-opt=-aux-directory=./build + --pdf-engine-opt=-shell-escape ${extraPandocArgs} + ''; - pandocCmd = '' - pandoc ${name}.md -t ${documentType} -so document.tex - --template=${pandoc-templates}/default.latex - --lua-filter=${pandoc-lua-filters}/share/pandoc/filters/minted.lua - --pdf-engine=xelatex - --pdf-engine-opt=-aux-directory=./build - --pdf-engine-opt=-shell-escape ${extraPandocArgs} - ''; + latexmkCmd = '' + latexmk + -shell-escape + -xelatex + -8bit + -interaction=nonstopmode + -verbose + -file-line-error + -output-directory=./build document.tex ${extraLatexArgs} + ''; + } '' + unpackFile $src + cd */ + chmod -R u+w . - latexmkCmd = '' - latexmk - -shell-escape - -xelatex - -8bit - -interaction=nonstopmode - -verbose - -file-line-error - -output-directory=./build document.tex ${extraLatexArgs} - ''; -} '' - unpackFile $src - cd */ - chmod -R u+w . + $pandocCmd - $pandocCmd - - $latexmkCmd - - cp build/document.pdf $out -'' + $latexmkCmd + cp build/document.pdf $out + '' # TODO: diagram-generator? + -- cgit v1.2.3