TexLive: Difference between revisions

From NixOS Wiki
imported>2r
latex packages needed for orgmode
imported>2r
update packages
Line 61: Line 61:
let
let
   tex = (pkgs.texlive.combine {
   tex = (pkgs.texlive.combine {
     inherit (pkgs.texlive) scheme-minimal wrapfig luatex
     inherit (pkgs.texlive) scheme-basic
      latex tex4ht
       wrapfig amsmath ulem hyperref capt-of;
       ulem amsmath capt-of hyperref;
     # support org mode latex export
     # from org-latex-default-packages-alist variable
   });
   });
in
in

Revision as of 18:10, 26 February 2022

According to Wikipedia:

TeX Live is a free software distribution for the TeX typesetting system that includes major TeX-related programs, macro packages, and fonts.

Installation

Since TeX Live consist of thousands of packages, to make managing it easier, NixOS replicates the organization of TeX Live into 'schemes' and 'collections'

The following Tex Live schemes are available:

Name of TeX Live package Name of Nixos-derivation Comment
Scheme-full nixpkgs.texlive.combined.scheme-full Contains every TeX Live package
Scheme-medium nixpkgs.texlive.combined.scheme-medium contains everything in the small scheme + more packages and languages
Scheme-small nixpkgs.texlive.combined.scheme-small contains everything in the basic scheme + xetex, metapost, a few languages.
Scheme-basic nixpkgs.texlive.combined.scheme-basic contains everything in the plain scheme but includes latex.
Scheme-minimal nixpkgs.texlive.combined.scheme-minimal contains plain only.
Scheme-teTeX nixpkgs.texlive.combined.scheme-tetex contains more than the medium scheme, but nowhere near the full scheme.
Scheme-ConTeXt nixpkgs.texlive.combined.scheme-context contains ConTeXt
Scheme-GUST nixpkgs.texlive.combined.scheme-gust contains gust

Combine Sets

You can install a set with extra packages by using something like

(texlive.combine { inherit (texlive) scheme-medium xifthen ifmtarg framed paralist titlesec; })

For a minimal set of packages needed for Emacs Orgmode, as described in org-latex-default-packages-alist variable, install these packages:

{ config, pkgs, ... }:
let
  tex = (pkgs.texlive.combine {
    inherit (pkgs.texlive) scheme-basic
      wrapfig amsmath ulem hyperref capt-of;
    # support org mode latex export
  });
in
{ # home-manager
  home.packages = with pkgs; [
    tex
  ];
}

Troubleshooting

Missing lmodern.sty

If LaTex (perhaps through Pandoc) complains about missing lmodern.sty, make sure you have at least texlive.combined.scheme-medium installed (-full should work as well; while -small worked for some, but not for all).

Invalid fontname ‘Latin Modern Roman/ICU’

If you get an error message saying “Invalid fontname ‘Latin Modern Roman/ICU’. . . ”, then you need to add the entry lmodern into your configuration in the section fonts.fonts and rebuild.


Further reading