# Taken from https://flyx.org/nix-flakes-latex/ { description = "LaTeX Document Demo"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; nixvim.url = "github:nix-community/nixvim"; }; outputs = { self, nixpkgs, nixvim, flake-utils, }: with flake-utils.lib; eachSystem allSystems (system: let pkgs = nixpkgs.legacyPackages.${system}; tex = pkgs.texlive.combine { inherit (pkgs.texlive) scheme-basic cite pgf nicematrix latex-bin latexmk titlesec listings ieeetran; }; nvim = nixvim.legacyPackages.x86_64-linux.makeNixvim { plugins.lsp.enable = true; colorschemes.gruvbox.enable = true; }; in rec { packages = { document = pkgs.stdenvNoCC.mkDerivation rec { name = "latex-demo-document"; src = self; buildInputs = [ pkgs.coreutils pkgs.texliveFull pkgs.pandoc pkgs.texliveFull pkgs.tetex pkgs.zathura pkgs.kile]; phases = ["unpackPhase" "buildPhase" "installPhase"]; buildPhase = '' runHook preBuild export PATH="${pkgs.lib.makeBinPath buildInputs}"; pandoc sources.md -s -o sources.tex --pdf-engine=pdflatex mkdir -p .cache/texmf-var env TEXMFHOME=.cache TEXMFVAR=.cache/texmf-var \ latexmk -f -interaction=nonstopmode -pdf -pdflatex \ sources.tex runHook postBuild ''; installPhase = '' runHook preInstall install -m644 -D *.pdf $out/sources.pdf runHook postInstall ''; }; }; defaultPackage = packages.document; }); }