Ninlives / texutils.nix

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

texutils.nix

Some utilities that can be used by nix projects which manage tex files.

Usage

callTex2Nix

Inspired by tex2nix, re-implemented in pure nix.

Example:

{
  inputs.nixpkgs.url = "github:NixOS/nixpkgs";
  inputs.texutils.url = "github:Ninlives/texutils.nix";

  outputs = { self, nixpkgs, texutils }:
    let
      inherit (nixpkgs.lib) hasSuffix;
      inherit (nixpkgs.lib.filesystem) listFilesRecursive;
      inherit (nixpkgs.legacyPackages.x86_64-linux) texlive runCommandLocal;
      tex = texutils.lib.callTex2Nix {
        pkgs = nixpkgs.legacyPackages.x86_64-linux;
        srcs = builtins.filter (p: hasSuffix ".tex" p || hasSuffix ".cls" p || hasSuffix ".sty" p) (listFilesRecursive ./.);
        # In case some dependencies fails to be detected
        extraTexPackages = { inherit (texlive) ctex; };
      };
      input = ./.;
    in {
      defaultPackage.x86_64-linux = runCommandLocal "resume" {} ''
        cd ${input}
        ${tex}/bin/xelatex -output-directory=$TMPDIR resume.tex
        mkdir -p $out
        cd $TMPDIR
        mv *.pdf $out
      '';
    };
}

About


Languages

Language:Nix 100.0%