{ lib, runCommand, junicode, texliveBasic }: let texliveWithJunicode = texliveBasic.withPackages (p: [ p.xetex junicode ]); texTest = { package, tex, fonttype, file }: lib.attrsets.nameValuePair "${package}-${tex}-${fonttype}" ( runCommand "${package}-test-${tex}-${fonttype}.pdf" { nativeBuildInputs = [ texliveWithJunicode ]; inherit tex fonttype file; } '' substituteAll $file test.tex HOME=$PWD $tex test.tex cp test.pdf $out ''); in builtins.listToAttrs ( map texTest (lib.attrsets.cartesianProductOfSets { tex = [ "xelatex" "lualatex" ]; fonttype = [ "ttf" "otf" ]; package = [ "junicode" ]; file = [ ./test.tex ]; }) ++ [ (texTest { package = "junicodevf"; fonttype = "ttf"; tex = "lualatex"; file = ./test-vf.tex; }) ] )