mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-25 07:00:43 +00:00
100 lines
2.9 KiB
XML
100 lines
2.9 KiB
XML
<section xmlns="http://docbook.org/ns/docbook"
|
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
xml:id="sec-language-texlive">
|
|
<title>TeX Live</title>
|
|
|
|
<para>
|
|
Since release 15.09 there is a new TeX Live packaging that lives entirely
|
|
under attribute <varname>texlive</varname>.
|
|
</para>
|
|
|
|
<section xml:id="sec-language-texlive-users-guide">
|
|
<title>User's guide</title>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
For basic usage just pull <varname>texlive.combined.scheme-basic</varname>
|
|
for an environment with basic LaTeX support.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
It typically won't work to use separately installed packages together.
|
|
Instead, you can build a custom set of packages like this:
|
|
<programlisting>
|
|
texlive.combine {
|
|
inherit (texlive) scheme-small collection-langkorean algorithms cm-super;
|
|
}
|
|
</programlisting>
|
|
There are all the schemes, collections and a few thousand packages, as
|
|
defined upstream (perhaps with tiny differences).
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
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 <varname>pkgFilter</varname> function to <varname>combine</varname>.
|
|
<programlisting>
|
|
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
|
|
}
|
|
</programlisting>
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
You can list packages e.g. by <command>nix-repl</command>.
|
|
<programlisting>
|
|
$ nix-repl
|
|
nix-repl> :l <nixpkgs>
|
|
nix-repl> texlive.collection-<TAB>
|
|
</programlisting>
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Note that the wrapper assumes that the result has a chance to be useful.
|
|
For example, the core executables should be present, as well as some core
|
|
data files. The supported way of ensuring this is by including some
|
|
scheme, for example <varname>scheme-basic</varname>, into the combination.
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</section>
|
|
|
|
<section xml:id="sec-language-texlive-known-problems">
|
|
<title>Known problems</title>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
Some tools are still missing, e.g. luajittex;
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
some apps aren't packaged/tested yet (asymptote, biber, etc.);
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
feature/bug: when a package is rejected by <varname>pkgFilter</varname>,
|
|
its dependencies are still propagated;
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
in case of any bugs or feature requests, file a github issue or better a
|
|
pull request and /cc @vcunat.
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</section>
|
|
</section>
|