# tex2nix

## Installation

With stable nix you can do:

`nix-build && ./result/bin/tex2nix`

If you use flakes put the following in your inputs

```{
inputs.nixpkgs.url = "github:Mic92/tex2nix";
inputs.nixpkgs.inputs.utils.follows = "nixpkgs";
}```

or just do:

`\$ nix run github:Mic92/tex2nix`

## USAGE

```\$ tex2nix main.tex
wrote tex-env.nix
\$ cat tex-env.nix
# Generated with tex2nix 0.0.0
{ texlive }:
(texlive.combine {
inherit (texlive) scheme-small;
"varwidth" = texlive."varwidth";
"tabu" = texlive."tabu";

})```

tex2nix does not follow `\input` or `\include`. However you can specify multiple texfiles as input

`\$ tex2nix *.tex`

The resulting expression can be imported like this to in your document directory:

```# shell.nix
with import <nixpkgs> {};
mkShell {
buildInputs = [ (pkgs.callPackage ./tex-env.nix {}) ];
}```
```\$ nix-shell shell.nix
nix-shell> pdflatex --version
pdfTeX 3.14159265-2.6-1.40.21 (TeX Live 2020/NixOS.org)
...```

## GitHub

https://github.com/Mic92/tex2nix