doc/texlive: Add "Custom packages" section (#74519)
Co-authored-by: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
This commit is contained in:
parent
013e439fd8
commit
b42bede861
|
@ -59,6 +59,97 @@ nix-repl> texlive.collection-<TAB>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section xml:id="sec-language-texlive-custom-packages">
|
||||||
|
<title>Custom packages</title>
|
||||||
|
<para>
|
||||||
|
You may find that you need to use an external TeX package. A derivation for such package has to provide contents of the "texmf" directory in its output and provide the <varname>tlType</varname> attribute. Here is a (very verbose) example:
|
||||||
|
<programlisting><![CDATA[
|
||||||
|
with import <nixpkgs> {};
|
||||||
|
|
||||||
|
let
|
||||||
|
foiltex_run = stdenvNoCC.mkDerivation {
|
||||||
|
pname = "latex-foiltex";
|
||||||
|
version = "2.1.4b";
|
||||||
|
passthru.tlType = "run";
|
||||||
|
|
||||||
|
srcs = [
|
||||||
|
(fetchurl {
|
||||||
|
url = "http://mirrors.ctan.org/macros/latex/contrib/foiltex/foiltex.dtx";
|
||||||
|
sha256 = "07frz0krpz7kkcwlayrwrj2a2pixmv0icbngyw92srp9fp23cqpz";
|
||||||
|
})
|
||||||
|
(fetchurl {
|
||||||
|
url = "http://mirrors.ctan.org/macros/latex/contrib/foiltex/foiltex.ins";
|
||||||
|
sha256 = "09wkyidxk3n3zvqxfs61wlypmbhi1pxmjdi1kns9n2ky8ykbff99";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
unpackPhase = ''
|
||||||
|
runHook preUnpack
|
||||||
|
|
||||||
|
for _src in $srcs; do
|
||||||
|
cp "$_src" $(stripHash "$_src")
|
||||||
|
done
|
||||||
|
|
||||||
|
runHook postUnpack
|
||||||
|
'';
|
||||||
|
|
||||||
|
nativeBuildInputs = [ texlive.combined.scheme-small ];
|
||||||
|
|
||||||
|
dontConfigure = true;
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
runHook preBuild
|
||||||
|
|
||||||
|
# Generate the style files
|
||||||
|
latex foiltex.ins
|
||||||
|
|
||||||
|
runHook postBuild
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
path="$out/tex/latex/foiltex"
|
||||||
|
mkdir -p "$path"
|
||||||
|
cp *.{cls,def,clo} "$path/"
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "A LaTeX2e class for overhead transparencies";
|
||||||
|
license = licenses.unfreeRedistributable;
|
||||||
|
maintainers = with maintainers; [ veprbl ];
|
||||||
|
platforms = platforms.all;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
foiltex = { pkgs = [ foiltex_run ]; };
|
||||||
|
|
||||||
|
latex_with_foiltex = texlive.combine {
|
||||||
|
inherit (texlive) scheme-small;
|
||||||
|
inherit foiltex;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
runCommand "test.pdf" {
|
||||||
|
nativeBuildInputs = [ latex_with_foiltex ];
|
||||||
|
} ''
|
||||||
|
cat >test.tex <<EOF
|
||||||
|
\documentclass{foils}
|
||||||
|
|
||||||
|
\title{Presentation title}
|
||||||
|
\date{}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
\maketitle
|
||||||
|
\end{document}
|
||||||
|
EOF
|
||||||
|
pdflatex test.tex
|
||||||
|
cp test.pdf $out
|
||||||
|
''
|
||||||
|
]]></programlisting>
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
<section xml:id="sec-language-texlive-known-problems">
|
<section xml:id="sec-language-texlive-known-problems">
|
||||||
<title>Known problems</title>
|
<title>Known problems</title>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue