# TeX Live

Since release 15.09 there is a new TeX Live packaging that lives entirely under attribute `texlive`.

## User's guide

- For basic usage just pull `texlive.combined.scheme-basic` for an environment with basic LaTeX support.

- It typically won't work to use separately installed packages together. Instead, you can build a custom set of packages like this:

      texlive.combine {
        inherit (texlive) scheme-small collection-langkorean algorithms cm-super;
      }

  There are all the schemes, collections and a few thousand packages, as defined upstream (perhaps with tiny differences).

- By default you only get executables and files needed during runtime, and a little documentation for the core packages. To change that, you need to add `pkgFilter` function to `combine`.

      texlive.combine {
        # inherit (texlive) whatever-you-want;
        pkgFilter = pkg:
          pkg.tlType == "run" || pkg.tlType == "bin" || pkg.pname == "cm-super";
        # elem tlType [ "run" "bin" "doc" "source" ]
        # there are also other attributes: version, name
      }

- You can list packages e.g. by `nix-repl`.

      $ nix-repl
      nix-repl> texlive.collection-<TAB>

## Known problems

- Some tools are still missing, e.g. luajittex;

- some apps aren't packaged/tested yet (asymptote, biber, etc.);

- feature/bug: when a package is rejected by `pkgFilter`, its dependencies are still propagated;

- in case of any bugs or feature requests, file a github issue or better a pull request and /cc @vcunat.