tijdelijk-te-laat/latex/flake.nix

61 lines
1.6 KiB
Nix
Raw Normal View History

2023-10-22 19:19:19 +02:00
# inspired by https://flyx.org/nix-flakes-latex/
2025-04-18 13:51:02 +02:00
{
description = "A latex template";
2023-10-22 19:19:19 +02:00
inputs = {
2024-03-09 02:39:58 +01:00
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
2023-10-22 19:19:19 +02:00
};
2025-04-18 13:51:02 +02:00
outputs =
{
self,
nixpkgs,
flake-utils,
}:
flake-utils.lib.eachDefaultSystem (
system:
let
pkgs = import nixpkgs { inherit system; };
texInput = "main";
# If you're not lazy, figure out what dependencies you need.
# If you are lazy, just take the full scheme.
tex = (
pkgs.texlive.combine {
inherit (pkgs.texlive) scheme-full;
#scheme-basic latex-bin latexmk;
}
);
in
{
packages = rec {
document = pkgs.stdenvNoCC.mkDerivation rec {
pname = throw "put document name here";
version = "0.0";
src = ./src;
buildInputs = [
tex
];
buildPhase = ''
mkdir -p .cache/texmf-var
env TEXMFHOME=.cache TEXMFVAR=.cache/texmf-var \
latexmk -interaction=nonstopmode -lualatex \
${texInput}.tex
'';
installPhase = ''
mkdir -p $out
cp ${texInput}.pdf $out/${pname}.pdf
'';
};
default = document;
};
2023-10-22 19:19:19 +02:00
2025-04-18 13:51:02 +02:00
devShells.default = pkgs.mkShell {
buildInputs = with pkgs; [
texlab # my language server of choice
tex
];
};
2023-10-22 19:19:19 +02:00
2025-04-18 13:51:02 +02:00
}
);
2023-10-22 19:19:19 +02:00
}