feat(template): add multifile-tex
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
{
|
||||
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];
|
||||
};
|
||||
};
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user