Files
.hive/templates/_multifile_tex/flake.nix
T
2026-06-30 13:41:48 +02:00

72 lines
1.8 KiB
Nix

{
description = "LaTeX environment";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-parts.url = "github:hercules-ci/flake-parts";
};
outputs = inputs @ {
self,
flake-parts,
...
}:
flake-parts.lib.mkFlake {inherit inputs;} (top: {
imports = [];
flake = {};
systems = [
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
perSystem = {
pkgs,
self',
...
}: let
tex = pkgs.texlive.combine {
inherit
(pkgs.texlive)
scheme-basic
latexmk
lipsum
standalone
filehook
svn-prov
import
pgf
luatex85
;
};
mainTexFileDrv = dir: file:
pkgs.stdenvNoCC.mkDerivation rec {
name = "${dir}/file";
src = self;
buildInputs = [tex];
phases = ["unpackPhase" "buildPhase" "installPhase"];
buildPhase = ''
export PATH="${pkgs.lib.makeBinPath (buildInputs ++ [pkgs.coreutils])}";
env \
HOME=$(mktemp -d) \
SOURCE_DATE_EPOCH=${toString self.lastModified} \
latexmk "${dir}/${file}.tex"
'';
installPhase = ''
mkdir -p $out
cp "${dir}/${file}.pdf" $out/
'';
};
in {
legacyPackages = pkgs;
packages.default = self'.packages.main;
packages.main = mainTexFileDrv "main";
packages.c01 = mainTexFileDrv "chapters" "01";
packages.c02 = mainTexFileDrv "chapters" "02";
devShells.default = pkgs.mkShellNoCC {
buildInputs = [tex pkgs.texlab];
};
};
});
}