72 lines
1.8 KiB
Nix
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];
|
|
};
|
|
};
|
|
});
|
|
}
|