init-nix/latex/flake.nix
2024-02-27 14:56:36 -08:00

51 lines
1.4 KiB
Nix

{
description = "LaTeX flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
flake-utils.url = github:numtide/flake-utils;
};
outputs = { self, nixpkgs, flake-utils }:
let
rootName = "document";
in
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = nixpkgs.legacyPackages.${system};
tex = pkgs.texlive.combine {
inherit (pkgs.texlive) scheme-small latex-bin latexmk
metafont
chktex
latexindent
;
};
in
rec {
packages = {
document = pkgs.stdenvNoCC.mkDerivation rec {
name = rootName;
src = self;
buildInputs = [ pkgs.coreutils tex ];
phases = [ "unpackPhase" "buildPhase" "installPhase" ];
buildPhase = ''
export PATH="${pkgs.lib.makeBinPath buildInputs}";
mkdir -p .cache/texmf-var
env TEXMFHOME=.cache TEXMFVAR=.cache/texmf-var \
latexmk -interaction=nonstopmode -pdf ${rootName}.tex
'';
installPhase = ''
mkdir -p $out
cp ${rootName}.pdf $out/
'';
};
default = packages.document;
};
devShells.default = pkgs.mkShellNoCC {
buildInputs = [
tex
];
};
});
}