summary refs log tree commit diff
path: root/doc/languages-frameworks/texlive.section.md
diff options
context:
space:
mode:
authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>2023-11-08 12:02:19 +0000
committerGitHub <noreply@github.com>2023-11-08 12:02:19 +0000
commitd49b3ff9e3ddbd7b06918e69bd759c9c3ce18db5 (patch)
tree9f514d7983e210462fdb571a9c15b97349668f84 /doc/languages-frameworks/texlive.section.md
parent89ac5d8ca30f4f55747925d7b155e5aeeae9f52e (diff)
parent263a89fa08bf3c69ddb402924d3e423e71461ef2 (diff)
downloadnixpkgs-d49b3ff9e3ddbd7b06918e69bd759c9c3ce18db5.tar
nixpkgs-d49b3ff9e3ddbd7b06918e69bd759c9c3ce18db5.tar.gz
nixpkgs-d49b3ff9e3ddbd7b06918e69bd759c9c3ce18db5.tar.bz2
nixpkgs-d49b3ff9e3ddbd7b06918e69bd759c9c3ce18db5.tar.lz
nixpkgs-d49b3ff9e3ddbd7b06918e69bd759c9c3ce18db5.tar.xz
nixpkgs-d49b3ff9e3ddbd7b06918e69bd759c9c3ce18db5.tar.zst
nixpkgs-d49b3ff9e3ddbd7b06918e69bd759c9c3ce18db5.zip
Merge staging-next into staging
Diffstat (limited to 'doc/languages-frameworks/texlive.section.md')
-rw-r--r--doc/languages-frameworks/texlive.section.md40
1 files changed, 40 insertions, 0 deletions
diff --git a/doc/languages-frameworks/texlive.section.md b/doc/languages-frameworks/texlive.section.md
index 777e94c16f1..2ba846dc492 100644
--- a/doc/languages-frameworks/texlive.section.md
+++ b/doc/languages-frameworks/texlive.section.md
@@ -2,6 +2,46 @@
 
 Since release 15.09 there is a new TeX Live packaging that lives entirely under attribute `texlive`.
 
+## User's guide (experimental new interface) {#sec-language-texlive-user-guide-experimental}
+
+Release 23.11 ships with a new interface that will eventually replace `texlive.combine`.
+
+- For basic usage, use some of the prebuilt environments available at the top level, such as `texliveBasic`, `texliveSmall`. For the full list of prebuilt environments, inspect `texlive.schemes`.
+
+- Packages cannot be used directly but must be assembled in an environment. To create or add packages to an environment, use
+  ```nix
+  texliveSmall.withPackages (ps: with ps; [ collection-langkorean algorithms cm-super ])
+  ```
+  The function `withPackages` can be called multiple times to add more packages.
+
+  - **Note.** Within Nixpkgs, packages should only use prebuilt environments as inputs, such as `texliveSmall` or `texliveInfraOnly`, and should not depend directly on `texlive`. Further dependencies should be added by calling `withPackages`. This is to ensure that there is a consistent and simple way to override the inputs.
+
+- `texlive.withPackages` uses the same logic as `buildEnv`. Only parts of a package are installed in an environment: its 'runtime' files (`tex` output), binaries (`out` output), and support files (`tlpkg` output). Moreover, man and info pages are assembled into separate `man` and `info` outputs. To add only the TeX files of a package, or its documentation (`texdoc` output), just specify the outputs:
+  ```nix
+  texlive.withPackages (ps: with ps; [
+    texdoc # recommended package to navigate the documentation
+    perlPackages.LaTeXML.tex # tex files of LaTeXML, omit binaries
+    cm-super
+    cm-super.texdoc # documentation of cm-super
+  ])
+  ```
+
+- All packages distributed by TeX Live, which contains most of CTAN, are available and can be found under `texlive.pkgs`:
+  ```ShellSession
+  $ nix repl
+  nix-repl> :l <nixpkgs>
+  nix-repl> texlive.pkgs.[TAB]
+  ```
+  Note that the packages in `texlive.pkgs` are only provided for search purposes and must not be used directly.
+
+- **Experimental and subject to change without notice:** to add the documentation for all packages in the environment, use
+  ```nix
+  texliveSmall.__overrideTeXConfig { withDocs = true; }
+  ```
+  This can be applied before or after calling `withPackages`.
+
+  The function currently support the parameters `withDocs`, `withSources`, and `requireTeXPackages`.
+
 ## User's guide {#sec-language-texlive-user-guide}
 
 - For basic usage just pull `texlive.combined.scheme-basic` for an environment with basic LaTeX support.