feat(home): add pandoc with texlive for PDF output
texlive scheme is the `local.texlive.package` option (default scheme-medium) so consumers can swap schemes without editing the module; TEXMF* vars keep its cache/config out of $HOME. pandoc PDF defaults to xelatex — pdflatex fails on combining Unicode (e.g. U+0308 in decomposed ä). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
# TeX Live for pandoc PDF output: pandoc shells out to a LaTeX engine, so PDF
|
||||
# conversion needs a TeX distribution (other formats — html, docx, md — do not).
|
||||
# The package set is an option so a consumer can swap the scheme without editing
|
||||
# this module: scheme-medium covers pandoc's default LaTeX template; override
|
||||
# for a larger set (missing .sty files) or a smaller one.
|
||||
#
|
||||
# TeX Live's font cache and config trees default to ~/.texlive<year> and ~/texmf
|
||||
# (written on the first PDF build). The TEXMF* vars route them to XDG dirs.
|
||||
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
options.local.texlive.package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.texlive.withPackages (ps: [ ps.scheme-medium ]);
|
||||
defaultText = lib.literalExpression
|
||||
"pkgs.texlive.withPackages (ps: [ ps.scheme-medium ])";
|
||||
description = "TeX Live package set. Override for a larger/smaller scheme.";
|
||||
};
|
||||
|
||||
config = {
|
||||
home.packages = [ config.local.texlive.package ];
|
||||
|
||||
# texmf-var is regenerable font/format cache → cacheHome; the other two hold
|
||||
# user config/data trees.
|
||||
home.sessionVariables = {
|
||||
TEXMFHOME = "${config.xdg.dataHome}/texmf";
|
||||
TEXMFVAR = "${config.xdg.cacheHome}/texlive/texmf-var";
|
||||
TEXMFCONFIG = "${config.xdg.configHome}/texlive/texmf-config";
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user