% original texmf.cnf -- runtime path configuration file for kpathsea.
% Public domain.
% 
% If you modify this original file, YOUR CHANGES WILL BE LOST when it is
% updated.  Instead, put your changes -- and only your changes, not an
% entire copy! -- in ../../texmf.cnf.  That is, if this file is
% installed in /some/path/to/texlive/2025/texmf-dist/web2c/texmf.cnf,
% put your custom settings in /some/path/to/texlive/2025/texmf.cnf.
% (Below, we use YYYY in place of the specific year.)
% 
% What follows is a super-summary of what this .cnf file can
% contain. Please read the Kpathsea manual for more information.
%
% Each statement in this file boils down to:
%   <variable>[.<program>] [=] <value>
%
% Neither the <variable> nor the <value> may be empty.
% Any identifier (sticking to A-Za-z_ for names is safest) can be assigned.
% The `=' (and surrounding spaces) is optional.
% $foo (or ${foo}) in a value expands to the envvar or cnf value of foo.
% Lines can be continued with a \; no whitespace removal is done.
%
% Earlier entries (in the same or another file) override later ones, and
% an environment variable foo overrides any texmf.cnf definition of foo.
%
% All definitions are read before anything is expanded, so you can use
% variables before they are defined.
%
% If a variable assignment is qualified with `.PROGRAM', it is ignored
% unless the current executable (last filename component of argv[0]) is
% named PROGRAM.  This foo.PROGRAM construct is not recognized on the
% right-hand side. For environment variables, use FOO_PROGRAM.
%
% Which file formats use which paths for searches is described in the
% various programs' and the Kpathsea documentation (http://tug.org/kpathsea).
%
% // means to search subdirectories (recursively).
% A leading !! means to look only in the ls-R db, never on the disk.
% In this file, either ; or : can be used to separate path components.
% A leading/trailing/doubled path separator in the paths will be
%   expanded into the compile-time default. Probably not what you want.
%
% Brace notation is supported, for example: /usr/local/{mytex,othertex}
% expands to /usr/local/mytex:/usr/local/othertex.


%  Part 1: Search paths and directories.

% This is the parent directory of our several trees, i.e.,
% /usr/local/texlive/YYYY in the original TeX Live distribution.
%
% The path definitions here assume the directories are organized
% according to the TeX Directory Structure (http://tug.org/tds).
%
% Redistributors will probably want $SELFAUTODIR/share, i.e., /usr/share.
% Kpathsea sets (in kpathsea/progname.c):
% SELFAUTOLOC (directory of the binary=/usr/local/texlive/YYYY/bin/i386-linux),
% SELFAUTODIR (its parent = /usr/local/texlive/YYYY/bin), 
% SELFAUTOPARENT (its grandparent = /usr/local/texlive/YYYY), and
% SELFAUTOGRANDPARENT (its great-grandparent = /usr/local/texlive).
% Sorry for the off-by-one-generation names.
TEXMFROOT = $SELFAUTODIR/share

% The various texmf trees used by TeX Live, follow.
% They must must all have the TDS directory structure (https://tug.org/tds).

% The main tree of distributed packages and programs:
TEXMFDIST = $TEXMFROOT/texmf-dist

% We used to have a separate /texmf tree with some core programs and files.
% Keep the variable name.
TEXMFMAIN = $TEXMFDIST

% Local additions to the distribution trees.
TEXMFLOCAL = /usr/pkg/share/texmf-local

% TEXMFSYSVAR, where *-sys store cached runtime data.
TEXMFSYSVAR = /var/lib/texmf

% TEXMFSYSCONFIG, where *-sys store configuration data.
TEXMFSYSCONFIG = /usr/pkg/etc/texmf

% Per-user texmf tree(s) -- organized per the TDS, as usual.  To define
% more than one per-user tree, set this to a list of directories in
% braces, as described above.  (This used to be HOMETEXMF.)  ~ expands
% to %USERPROFILE% on Windows, $HOME otherwise.
TEXMFHOME = ~/texmf

% TEXMFVAR, where texconfig/updmap/fmtutil store cached runtime data.
TEXMFVAR = ~/.texlive2025/texmf-var

% TEXMFCONFIG, where texconfig/updmap/fmtutil store configuration data.
TEXMFCONFIG = ~/.texlive2025/texmf-config

% This is the value manipulated by tlmgr's auxtrees subcommand in the
% root texmf.cnf. Kpathsea warns about a literally empty string for a
% value, hence the empty braces.
TEXMFAUXTREES = {}

% List of all the texmf trees. For an explanation of what they are, see the
% TeX Live manual.
%
% For texconfig to work properly, TEXMFCONFIG and TEXMFVAR should be named
% explicitly and before other trees.
% 
% TEXMFLOCAL precedes TEXMFDIST because locally-installed versions
% should take precedence over distribution files -- although it is
% generally a source of confusion to have different versions of a
% package installed, whatever the trees, so try to avoid it.
% 
% The odd-looking $TEXMFAUXTREES$TEXMF... construct is so that if no auxtree
% is defined (99% common case), no extra elements will be added to
% the search paths. tlmgr takes care to end any value with a trailing comma.
TEXMF = {$TEXMFAUXTREES$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,!!$TEXMFLOCAL,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFDIST}

% Where to look for, and where mktexlsr creates, ls-R files. By default,
% this is all and only the !! elements of TEXMF, so that mktexlsr does not
% create ls-R files in the non-!! elements -- because if an ls-R is
% present, it will be used, and the disk will not (usually) be searched,
% regardless of !!.  Although in theory a directory listed here need
% not contain an ls-R file, in practice they all should.
TEXMFDBS = {!!$TEXMFLOCAL,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFDIST}

% The system trees.  These are the trees that are shared by all users.
% If a tree appears in this list, the mktex* scripts will use
% VARTEXFONTS for generated files, if the original tree isn't writable;
% otherwise the current working directory is used.
SYSTEXMF = $TEXMFSYSVAR;$TEXMFLOCAL;$TEXMFDIST

% First writable tree here is used by Lua(La)TeX for the font cache.
% LuaLaTeX uses the value here, while ConTeXt uses the same variable but
% from texmfcnf.lua; therefore the two values should be kept in sync.
% (As should everything else in texmf.cnf <-> texmfcnf.lua.)
TEXMFCACHE = $TEXMFSYSVAR;$TEXMFVAR

% Where generated fonts may be written.  This tree is used when the sources
% were found in a system tree and either that tree wasn't writable, or the
% varfonts feature was enabled in MT_FEATURES in mktex.cnf.
VARTEXFONTS = $TEXMFSYSVAR/fonts

% On some systems, there will be a system tree which contains all the font
% files that may be created as well as the formats.  For example
%   TEXMFVAR = /var/lib/texmf
% is used in many distros.  In this case, set VARTEXFONTS like this
%VARTEXFONTS = $TEXMFVAR/fonts
% and do not mention it in TEXMFDBS (but _do_ mention TEXMFVAR).
%
% Remove $VARTEXFONTS from TEXMFDBS if the VARTEXFONTS directory is below
% one of the TEXMF directories (avoids overlapping ls-R files).


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Usually you will not need to edit any of the following variables.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% WEB2C is for Web2C specific files.  The current directory may not be
% a good place to look for them.
WEB2C = $TEXMF/web2c

% This variable exists only to be redefined; it is used in nearly all
% search paths. If a document has source files not only in the current
% directory but also in subdirectories, it is convenient to set
% TEXMFDOTDIR=.// so that everything will be searched automatically,
% without the need to set up the TDS directory structure (since this is
% a "directory" and not a "tree").
% On the other hand, if you never want the current directory to be
% searched at all, setting TEXMFDOTDIR=/nonesuch comes close.
%
TEXMFDOTDIR = .

% TEXINPUTS is for TeX input files -- i.e., anything to be found by \input
% or \openin, including .sty, .eps, etc.  We specify paths for all known
% formats, past or present.  Not all of them are built these days.

% Plain TeX.  Have the command tex check all directories as a last
% resort, we may have plain-compatible stuff anywhere.  Prefer
% latex/ to latex-dev/, implying that we have to add a latex, element to
% every TEXINPUTS tree that recursively searches $TEXMF/tex//, which is
% all of them except ConTeXt.
TEXINPUTS.tex           = $TEXMFDOTDIR;$TEXMF/tex/{plain,generic,latex,}//

% Fontinst needs to read afm files.
TEXINPUTS.fontinst      = $TEXMFDOTDIR;$TEXMF/{tex,fonts/afm}//

% Other plain-based formats.
TEXINPUTS.amstex        = $TEXMFDOTDIR;$TEXMF/tex/{amstex,plain,generic,latex,}//
TEXINPUTS.csplain       = $TEXMFDOTDIR;$TEXMF/tex/{csplain,plain,generic,latex,}//
TEXINPUTS.eplain        = $TEXMFDOTDIR;$TEXMF/tex/{eplain,plain,generic,latex,}//
TEXINPUTS.ftex          = $TEXMFDOTDIR;$TEXMF/tex/{formate,plain,generic,latex,}//
TEXINPUTS.mex           = $TEXMFDOTDIR;$TEXMF/tex/{mex,plain,generic,latex,}//
TEXINPUTS.texinfo       = $TEXMFDOTDIR;$TEXMF/tex/{texinfo,plain,generic,latex,}//

% LaTeX2e specific macros are stored in latex/, macros that can only be
% used with 2.09 in latex209/.  In addition, we look in the directory
% latex209, useful for macros that were written for 2.09 and do not
% mention 2e at all, but can be used with 2e.  The latex-dev/ subtree
% may contain release candidates for testing.
TEXINPUTS.cslatex       = $TEXMFDOTDIR;$TEXMF/tex/{cslatex,csplain,latex,generic,}//
TEXINPUTS.latex         = $TEXMFDOTDIR;$TEXMF/tex/{latex,generic,}//
TEXINPUTS.latex-dev     = $TEXMFDOTDIR;$TEXMF/tex/{latex-dev,latex,generic,}//
TEXINPUTS.latex209      = $TEXMFDOTDIR;$TEXMF/tex/{latex209,generic,latex,}//
TEXINPUTS.olatex        = $TEXMFDOTDIR;$TEXMF/tex/{latex,generic,}//

% e-TeX.
TEXINPUTS.elatex        = $TEXMFDOTDIR;$TEXMF/tex/{latex,generic,}//
TEXINPUTS.etex          = $TEXMFDOTDIR;$TEXMF/tex/{plain,generic,latex,}//

% MLTeX.
TEXINPUTS.frlatex       = $TEXMFDOTDIR;$TEXMF/tex/{french,latex,generic,}//
TEXINPUTS.frtex         = $TEXMFDOTDIR;$TEXMF/tex/{french,plain,generic,latex,}//
TEXINPUTS.mllatex       = $TEXMFDOTDIR;$TEXMF/tex/{latex,generic,}//
TEXINPUTS.mltex         = $TEXMFDOTDIR;$TEXMF/tex/{plain,generic,latex,}//

% pdfTeX.
TEXINPUTS.pdfcslatex    = $TEXMFDOTDIR;$TEXMF/tex/{cslatex,csplain,latex,generic,}//
TEXINPUTS.pdfcsplain    = $TEXMFDOTDIR;$TEXMF/tex/{csplain,plain,generic,latex,}//
TEXINPUTS.pdflatex      = $TEXMFDOTDIR;$TEXMF/tex/{latex,generic,}//
TEXINPUTS.pdflatex-dev  = $TEXMFDOTDIR;$TEXMF/tex/{latex-dev,latex,generic,}//
TEXINPUTS.pdfmex        = $TEXMFDOTDIR;$TEXMF/tex/{mex,plain,generic,latex,}//
TEXINPUTS.utf8mex       = $TEXMFDOTDIR;$TEXMF/tex/{mex,plain,generic,latex,}//
TEXINPUTS.pdftex        = $TEXMFDOTDIR;$TEXMF/tex/{plain,generic,latex,}//
TEXINPUTS.pdftexinfo    = $TEXMFDOTDIR;$TEXMF/tex/{texinfo,plain,generic,latex,}//
TEXINPUTS.pdfamstex     = $TEXMFDOTDIR;$TEXMF/tex/{amstex,plain,generic,latex,}//

% pdfeTeX.
TEXINPUTS.pdfelatex     = $TEXMFDOTDIR;$TEXMF/tex/{latex,generic,}//
TEXINPUTS.pdfetex       = $TEXMFDOTDIR;$TEXMF/tex/{plain,generic,latex,}//

% LuaTeX.
TEXINPUTS.luatex          = $TEXMFDOTDIR;$TEXMF/tex/{luatex,plain,generic,latex,}//
TEXINPUTS.luajittex       = $TEXMFDOTDIR;$TEXMF/tex/{luatex,plain,generic,latex,}//
TEXINPUTS.luahbtex        = $TEXMFDOTDIR;$TEXMF/tex/{luatex,plain,generic,latex,}//
TEXINPUTS.luajithbtex     = $TEXMFDOTDIR;$TEXMF/tex/{luatex,plain,generic,latex,}//
TEXINPUTS.dviluatex       = $TEXMFDOTDIR;$TEXMF/tex/{luatex,plain,generic,latex,}//
TEXINPUTS.lualatex        = $TEXMFDOTDIR;$TEXMF/tex/{lualatex,latex,luatex,generic,}//
TEXINPUTS.lualatex-dev    = $TEXMFDOTDIR;$TEXMF/tex/{latex-dev,lualatex,latex,luatex,generic,}//
TEXINPUTS.luajitlatex     = $TEXMFDOTDIR;$TEXMF/tex/{lualatex,latex,luatex,generic,}//
TEXINPUTS.luahblatex      = $TEXMFDOTDIR;$TEXMF/tex/{lualatex,latex,luatex,generic,}//
TEXINPUTS.luahblatex-dev  = $TEXMFDOTDIR;$TEXMF/tex/{latex-dev,lualatex,latex,luatex,generic,}//
TEXINPUTS.luajithblatex   = $TEXMFDOTDIR;$TEXMF/tex/{lualatex,latex,luatex,generic,}//
TEXINPUTS.dvilualatex     = $TEXMFDOTDIR;$TEXMF/tex/{lualatex,latex,luatex,generic,}//
TEXINPUTS.dvilualatex-dev = $TEXMFDOTDIR;$TEXMF/tex/{latex-dev,lualatex,latex,luatex,generic,}//

% HarfTeX.
TEXINPUTS.harftex       = $TEXMFDOTDIR;$TEXMF/tex/{harftex,luatex,plain,generic,latex,}//
TEXINPUTS.harflatex     = $TEXMFDOTDIR;$TEXMF/tex/{harflatex,harftex,lualatex,latex,luatex,generic,}//
TEXINPUTS.harflatex-dev = $TEXMFDOTDIR;$TEXMF/tex/{latex-dev,harflatex,harftex,lualatex,latex,luatex,generic,}//

% XeTeX.
TEXINPUTS.xelatex       = $TEXMFDOTDIR;$TEXMF/tex/{xelatex,latex,xetex,generic,}//
TEXINPUTS.xelatex-dev   = $TEXMFDOTDIR;$TEXMF/tex/{latex-dev,xelatex,latex,xetex,generic,}//
TEXINPUTS.xeplain       = $TEXMFDOTDIR;$TEXMF/tex/{xeplain,eplain,plain,xetex,generic,latex,}//
TEXINPUTS.xetex         = $TEXMFDOTDIR;$TEXMF/tex/{xetex,plain,generic,latex,}//

% Omega / Aleph.
TEXINPUTS.aleph         = $TEXMFDOTDIR;$TEXMF/tex/{plain,generic,latex,}//
TEXINPUTS.elambda       = $TEXMFDOTDIR;$TEXMF/tex/{lambda,latex,generic,}//
TEXINPUTS.eomega        = $TEXMFDOTDIR;$TEXMF/tex/{plain,generic,latex,}//
TEXINPUTS.lambda        = $TEXMFDOTDIR;$TEXMF/tex/{lambda,latex,generic,}//
TEXINPUTS.lamed         = $TEXMFDOTDIR;$TEXMF/tex/{lambda,latex,generic,}//
TEXINPUTS.omega         = $TEXMFDOTDIR;$TEXMF/tex/{plain,generic,latex,}//

% p(La)TeX.
TEXINPUTS.ptex          = $TEXMFDOTDIR;$TEXMF/tex/{ptex,plain,generic,latex,}//
TEXINPUTS.platex        = $TEXMFDOTDIR;$TEXMF/tex/{platex,latex,generic,}//
TEXINPUTS.platex-dev    = $TEXMFDOTDIR;$TEXMF/tex/{latex-dev,platex,latex,generic,}//

% epTeX, and use that engine for pmpost.
TEXINPUTS.eptex         = $TEXMFDOTDIR;$TEXMF/tex/{ptex,plain,generic,latex,}//
TEX.pmpost = eptex

% p(La)TeX-ng
TEXINPUTS.ptex-ng   = $TEXMFDOTDIR;$TEXMF/tex/{uptex,ptex,plain,generic,latex,}//
TEXINPUTS.platex-ng = $TEXMFDOTDIR;$TEXMF/tex/{uplatex,platex,latex,generic,}//

% (e)up(La)TeX, and for upmpost.
TEXINPUTS.uplatex     = $TEXMFDOTDIR;$TEXMF/tex/{uplatex,platex,latex,generic,}//
TEXINPUTS.uplatex-dev = $TEXMFDOTDIR;$TEXMF/tex/{latex-dev,uplatex,platex,latex,generic,}//
TEXINPUTS.uptex   = $TEXMFDOTDIR;$TEXMF/tex/{uptex,ptex,plain,generic,latex,}//
TEXINPUTS.euptex  = $TEXMFDOTDIR;$TEXMF/tex/{uptex,ptex,plain,generic,latex,}//
TEX.upmpost = euptex

% ConTeXt.
TEXINPUTS.context       = $TEXMFDOTDIR;$TEXMF/tex/{context,plain,generic,}//

% OpTeX.
TEXINPUTS.optex         = $TEXMFDOTDIR;$TEXMF/tex/{optex,plain,generic,}//

% HiTeX.
TEXINPUTS.hilatex       = $TEXMFDOTDIR;$TEXMF/tex/{hilatex,latex,hitex,generic,}//
TEXINPUTS.hilatex-dev   = $TEXMFDOTDIR;$TEXMF/tex/{latex-dev,hilatex,latex,hitex,generic,}//
TEXINPUTS.hitex         = $TEXMFDOTDIR;$TEXMF/tex/{hitex,plain,generic,latex,}//

% JadeTeX.
TEXINPUTS.jadetex       = $TEXMFDOTDIR;$TEXMF/tex/{jadetex,latex,generic,latex,}//
TEXINPUTS.pdfjadetex    = $TEXMFDOTDIR;$TEXMF/tex/{jadetex,latex,generic,latex,}//

% XMLTeX.
TEXINPUTS.xmltex        = $TEXMFDOTDIR;$TEXMF/tex/{xmltex,latex,generic,}//
TEXINPUTS.pdfxmltex     = $TEXMFDOTDIR;$TEXMF/tex/{xmltex,latex,generic,}//

% Miscellany, no longer built.
TEXINPUTS.lamstex       = $TEXMFDOTDIR;$TEXMF/tex/{lamstex,plain,generic,latex,}//
TEXINPUTS.lollipop      = $TEXMFDOTDIR;$TEXMF/tex/{lollipop,plain,generic,latex,}//
TEXINPUTS.frpdflatex    = $TEXMFDOTDIR;$TEXMF/tex/{french,latex,generic,}//
TEXINPUTS.frpdftex      = $TEXMFDOTDIR;$TEXMF/tex/{french,plain,generic,latex,}//

% Earlier entries override later ones, so put this generic one last.
TEXINPUTS               = $TEXMFDOTDIR;$TEXMF/tex/{$progname,generic,latex,}//

% Metafont, MetaPost inputs.
MFINPUTS = $TEXMFDOTDIR;$TEXMF/metafont//;{$TEXMF/fonts,$VARTEXFONTS}/source//
MPINPUTS = $TEXMFDOTDIR;$TEXMF/metapost//

% Dump files (fmt/base/mem) for vir{tex,mf,mp} to read.
% We want to find the engine-specific file, e.g., cont-en.fmt can
% exist under both pdftex/ and xetex/.  But just in case some formats
% end up without an engine directory, look directly in web2c/ too.
% We repeat the same definition three times because of the way fmtutil
% is implemented; if we use ${TEXFORMATS}, the mpost/mf/etc. formats
% will not be found.
TEXFORMATS = $TEXMFDOTDIR;$TEXMF/web2c{/$engine,}
MFBASES = $TEXMFDOTDIR;$TEXMF/web2c{/$engine,}
MPMEMS = $TEXMFDOTDIR;$TEXMF/web2c{/$engine,}
%
% As of 2008, pool files don't exist any more (the strings are compiled
% into the binaries), but just in case something expects to find these:
TEXPOOL = $TEXMFDOTDIR;$TEXMF/web2c
MFPOOL = ${TEXPOOL}
MPPOOL = ${TEXPOOL}

% support the original xdvi.  Must come before the generic settings.
PKFONTS.XDvi   = $TEXMFDOTDIR;$TEXMF/%s;$VARTEXFONTS/pk/{%m,modeless}//
VFFONTS.XDvi   = $TEXMFDOTDIR;$TEXMF/%s
PSHEADERS.XDvi = $TEXMFDOTDIR;$TEXMF/%q{dvips,fonts/type1}//
TEXPICTS.XDvi  = $TEXMFDOTDIR;$TEXMF/%q{dvips,tex}//

% Device-independent font metric files.
VFFONTS = $TEXMFDOTDIR;$TEXMF/fonts/vf//
TFMFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/tfm//

% The $MAKETEX_MODE below means the drivers will not use a cx font when
% the mode is ricoh.  If no mode is explicitly specified, kpse_prog_init
% sets MAKETEX_MODE to /, so all subdirectories are searched.  See the manual.
% The modeless part guarantees that bitmaps for PostScript fonts are found.
PKFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/pk/{$MAKETEX_MODE,modeless}//

% Similarly for the GF format, which only remains in existence because
% Metafont outputs it (and MF isn't going to change).
GFFONTS = $TEXMFDOTDIR;$TEXMF/fonts/gf/$MAKETEX_MODE//

% A backup for PKFONTS and GFFONTS. Not used for anything.
GLYPHFONTS = $TEXMFDOTDIR;$TEXMF/fonts

% A place to puth everything that doesn't fit the other font categories.
MISCFONTS = $TEXMFDOTDIR;$TEXMF/fonts/misc//

% font name map files.  This isn't just fonts/map// because ConTeXt
% wants support for having files with the same name in the different
% subdirs.  Maybe if the programs ever get unified to accepting the same
% map file syntax the definition can be simplified again.
TEXFONTMAPS = $TEXMFDOTDIR;$TEXMF/fonts/map/{$progname,pdftex,dvips,}//

% BibTeX bibliographies and style files.  bibtex8 also uses these.
BIBINPUTS = $TEXMFDOTDIR;$TEXMF/bibtex/bib//
BSTINPUTS = $TEXMFDOTDIR;$TEXMF/bibtex/{bst,csf}//

% MlBibTeX.
MLBIBINPUTS = $TEXMFDOTDIR;$TEXMF/bibtex/bib/{mlbib,}//
MLBSTINPUTS = $TEXMFDOTDIR;$TEXMF/bibtex/{mlbst,bst}//

% pBibTeX bibliographies and style files.
BIBINPUTS.pbibtex       = $TEXMFDOTDIR;$TEXMF/{pbibtex,bibtex}/bib//
BSTINPUTS.pbibtex       = $TEXMFDOTDIR;$TEXMF/{pbibtex,bibtex}/bst//

% upBibTeX bibliographies and style files.
BIBINPUTS.upbibtex      = $TEXMFDOTDIR;$TEXMF/{upbibtex,pbibtex,bibtex}/bib//
BSTINPUTS.upbibtex      = $TEXMFDOTDIR;$TEXMF/{upbibtex,pbibtex,bibtex}/bst//

% BibTeXu bibliographies and style files.
BIBINPUTS.bibtexu       = $TEXMFDOTDIR;$TEXMF/{bibtexu,upbibtex,pbibtex,bibtex}/bib//
BSTINPUTS.bibtexu       = $TEXMFDOTDIR;$TEXMF/{bibtexu,upbibtex,pbibtex,bibtex}/bst//

% .ris and .bltxml bibliography formats.
RISINPUTS = $TEXMFDOTDIR;$TEXMF/biber/ris//
BLTXMLINPUTS = $TEXMFDOTDIR;$TEXMF/biber/bltxml//

% MFT style files.
MFTINPUTS = $TEXMFDOTDIR;$TEXMF/mft//

% PostScript headers and prologues (.pro); unfortunately, some programs
% also use this for acessing font files (enc, type1, truetype)
TEXPSHEADERS = $TEXMFDOTDIR;$TEXMF/{dvips,fonts/{enc,type1,type42,type3}}//
TEXPSHEADERS.gsftopk = $TEXMFDOTDIR;$TEXMF/{dvips,fonts/{enc,type1,type42,type3,truetype}}//

% OSFONTDIR is to provide a convenient hook for allowing TeX to find
% fonts installed on the system (outside of TeX).  An empty default
% value would add "//" to the search paths, so we give it a dummy value.
OSFONTDIR = /please/set/osfontdir/in/the/environment

% PostScript Type 1 outline fonts.
T1FONTS = $TEXMFDOTDIR;$TEXMF/fonts/type1//;$OSFONTDIR//

% PostScript AFM metric files.
AFMFONTS = $TEXMFDOTDIR;$TEXMF/fonts/afm//;$OSFONTDIR//

% TrueType outline fonts.
TTFONTS = $TEXMFDOTDIR;$TEXMF/fonts/{truetype,opentype}//;$OSFONTDIR//

% OpenType outline fonts.
OPENTYPEFONTS = $TEXMFDOTDIR;$TEXMF/fonts/{opentype,truetype}//;$OSFONTDIR//

% Type 42 outline fonts.
T42FONTS = $TEXMFDOTDIR;$TEXMF/fonts/type42//

% Ligature definition files.
LIGFONTS =  $TEXMFDOTDIR;$TEXMF/fonts/lig//

% Dvips' config.* files (this name should not start with `TEX'!).
TEXCONFIG = $TEXMF/dvips//

% Makeindex style (.ist) files.
INDEXSTYLE = $TEXMFDOTDIR;$TEXMF/makeindex//

% mendex dictionary files. Used internally by mendex and upmendex.
% It is not necessary to introduce a new format in Kpathsea.
INDEXDICTIONARY = $TEXMFDOTDIR;$TEXMF/makeindex//

% Font encoding files (.enc).
ENCFONTS = $TEXMFDOTDIR;$TEXMF/fonts/enc//

% CMap files.
CMAPFONTS = $TEXMFDOTDIR;$TEXMF/fonts/cmap//

% Subfont definition files.
SFDFONTS = $TEXMFDOTDIR;$TEXMF/fonts/sfd//

% OpenType feature files (.fea).
FONTFEATURES=$TEXMFDOTDIR;$TEXMF/fonts/fea//

% .cid and .cidmap
FONTCIDMAPS=$TEXMFDOTDIR;$TEXMF/fonts/cid//

% pdftex config files:
PDFTEXCONFIG = $TEXMFDOTDIR;$TEXMF/pdftex/{$progname,}//

% Used by DMP (ditroff-to-mpx), called by makempx -troff.
TRFONTS = /usr{/local,}/share/groff/{current/font,site-font}/devps
MPSUPPORT = $TEXMFDOTDIR;$TEXMF/metapost/support

% For xdvi to find mime.types and .mailcap, if they do not exist in
% ~.  These are single directories, not paths.
% (But the default mime.types, at least, may well suffice.)
MIMELIBDIR = $TEXMFROOT/etc
MAILCAPLIBDIR = $TEXMFROOT/etc

% Default settings for the fontconfig library as used by the Windows
% versions of xetex/xdvipdfmx.  Not used by xetex itself on Unixish systems,
% but the postaction for xetex uses all of these on all systems.
% 
FONTCONFIG_FILE = fonts.conf
XE_FONTCONFIG_PATH = $TEXMFSYSVAR/fonts/conf
XE_FC_CACHEDIR = $TEXMFSYSVAR/fonts/cache

% TeX documentation and source files, for use with texdoc and kpsewhich.
TEXDOCS = $TEXMF/doc//
TEXSOURCES = $TEXMFDOTDIR;$TEXMF/source//

% Top-level directory for any string translations for the binaries, in
% the same structure as the usual system locale/ directories. This is a
% single directory, not a path.
TEXMFLOCALEDIR = $TEXMFMAIN/locale

% Web and CWeb input paths.
WEBINPUTS = $TEXMFDOTDIR;$TEXMF/web//
CWEBINPUTS = $TEXMFDOTDIR;$TEXMF/cweb//

% Omega-related fonts and other files.
OFMFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/{ofm,tfm}//
OPLFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/opl//
OVFFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/{ovf,vf}//
OVPFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/ovp//
OTPINPUTS = $TEXMFDOTDIR;$TEXMF/omega/otp//
OCPINPUTS = $TEXMFDOTDIR;$TEXMF/omega/ocp//

% Some additional input variables for several programs.  If you add
% a program that uses the `other text files' or `other binary files'
% search formats, you'll want to add their variables here as well.
T4HTINPUTS   = $TEXMFDOTDIR;$TEXMF/tex4ht//

%% t4ht utility, sharing files with TeX4ht
TEX4HTFONTSET=alias,iso8859,unicode
TEX4HTINPUTS = $TEXMFDOTDIR;$TEXMF/tex4ht/base//;$TEXMF/tex4ht/ht-fonts/{$TEX4HTFONTSET}//

% TeXworks editor configuration and settings
TW_LIBPATH = $TEXMFCONFIG/texworks
TW_INIPATH = $TW_LIBPATH

% ttf2tfm.
TTF2TFMINPUTS = $TEXMFDOTDIR;$TEXMF/ttf2pk//

% For security, do not look in . for dvipdfmx.cfg, since the D option
% would allow command execution.
DVIPDFMXINPUTS = $TEXMF/dvipdfmx

% Lua needs to look in TEXINPUTS for lua scripts distributed with packages.
% 
% But we can't simply use $TEXINPUTS, since then if TEXINPUTS is set in
% the environment with a colon, say, TEXINPUTS=/some/dir:, the intended
% default expansion of TEXINPUTS will not happen and .lua files under
% the /tex/ tree will not be found.
% 
% So, duplicate the TEXINPUTS.*lualatex values as LUAINPUTS.*lualatex.
% The default LUAINPUTS suffices for luatex and dviluatex.
%
LUAINPUTS.lualatex        = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXMF/tex/{lualatex,latex,luatex,generic,}//
LUAINPUTS.lualatex-dev    = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXMF/tex/{latex-dev,lualatex,latex,luatex,generic,}//
%
LUAINPUTS.luahblatex      = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXMF/tex/{luahblatex,luahbtex,lualatex,latex,luatex,generic,}//
LUAINPUTS.luahblatex-dev  = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXMF/tex/{latex-dev,luahblatex,luahbtex,lualatex,latex,luatex,generic,}//
%
LUAINPUTS.dvilualatex     = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXMF/tex/{lualatex,latex,luatex,generic,}//
LUAINPUTS.dvilualatex-dev = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXMF/tex/{latex-dev,lualatex,latex,luatex,generic,}//
%
LUAINPUTS.harflatex     = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXMF/tex/{harflatex,harftex,lualatex,latex,luatex,generic,}//
LUAINPUTS.harflatex-dev = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXMF/tex/{latex-dev,harflatex,harftex,lualatex,latex,luatex,generic,}//
%
LUAINPUTS = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXMF/tex/{luatex,plain,generic,latex,}//

% Lua needs to look for binary lua libraries distributed with packages.
CLUAINPUTS = $TEXMFDOTDIR;$SELFAUTOLOC/lib/{$progname,$engine,}/lua//

% Architecture independent executables.
TEXMFSCRIPTS = $TEXMF/scripts/{$progname,$engine,}//

% Other languages.
JAVAINPUTS   = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/java//
PERLINPUTS   = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/perl//
PYTHONINPUTS = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/python//
RUBYINPUTS   = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/ruby//


%% The mktex* scripts rely on KPSE_DOT. Do not set it in the environment.
% KPSE_DOT = .

% This definition isn't used from this .cnf file itself (that would be
% paradoxical), but the compile-time default in paths.h is built from it.
% The SELFAUTO* variables are set automatically from the location of
% argv[0], in kpse_set_program_name.
% 
% This main texmf.cnf file is installed, for a release YYYY, in a
% directory such as /usr/local/texlive/YYYY/texmf-dist/web2c/texmf.cnf.
% Since this file is subject to future updates, the TeX Live installer
% or human administrator may also create a file
% /usr/local/texlive/YYYY/texmf.cnf; any settings in this latter file
% will take precedence over the distributed one.
% 
% For security reasons, it is best not to include . in this path.
%
% The idea behind this lengthy definition: for each of
% SELFAUTO{LOC,DIR,PARENT}, look in the directory,
% then the subdirectories share/texmf-local, share/texmf-dist, share/texmf,
% then the subdirectories ./texmf-local, texmf-dist, ./texmf.
% At any given installation, most of these directories will not exist,
% but they all turn out to be useful somewhere.
% 
% Special addition -- we want to include one more directory: the
% great-grandparent's texmf-local, because that is how TL is installed
% by default.  That is, given a binary
% /usr/local/texlive/YYYY/bin/PLATFORM/kpsewhich, it should find
% /usr/local/texlive/texmf-local/web2c/texmf.cnf.  I.e., not under YYYY.
% 
% As a result, we cannot use actual brace expansion in the definition,
% since we don't want to scatter ../'s throughout the value.  Hence we
% explicitly list every directory.  Arguably more understandable anyway.
%
TEXMFCNF = /usr/pkg/etc/texmf
%
% For reference, here is the old brace-using definition:
%TEXMFCNF = {$SELFAUTOLOC,$SELFAUTODIR,$SELFAUTOPARENT}{,{/share,}/texmf{-local,}/web2c}

% kpathsea 3.5.3 and later sets these at runtime. To avoid empty
% expansions from binaries linked against an earlier version of the
% library, we set $progname and $engine to something non-empty:
progname = unsetprogname
engine = unsetengine


%  Part 2: Options.

% If this option is set to true, `tex a.b' will look first for a.b.tex
% (within each path element), and then for a.b, i.e., we try standard
% extensions first.  If this is false, we first look for a.b and then
% a.b.tex, i.e., we try the name as-is first.
%
% Both names are always tried; the difference is the order in which they
% are tried.  The setting applies to all searches, not just .tex.
%
% This setting only affects names being looked up which *already* have
% an extension.  A name without an extension (e.g., `tex story') will
% always have an extension added first.
%
% The default is true, because we already avoid adding the standard
% extension(s) in the usual cases.  E.g., babel.sty will only look for
% babel.sty, not babel.sty.tex, regardless of this setting.
try_std_extension_first = t

% Enable system commands via \write18{...}.  When enabled fully (set to
% t), obviously insecure.  When enabled partially (set to p), only the
% commands listed in shell_escape_commands are allowed.  Although this
% is not fully secure either, it is much better, and so useful that we
% enable it for everything but bare tex.
shell_escape = p

% No spaces in this command list.
% 
% The programs listed here are as safe as any we know: they either do
% not write any output files, respect openout_any, or have hard-coded
% restrictions similar to or higher than openout_any=p.  The output file
% location is determined according to
% https://tug.org/texinfohtml/web2c.html#Output-file-location.
% 
% They also have no features to invoke arbitrary other programs, and no
% known exploitable bugs, to the best of our knowledge.
% 
% Finally, they also have practical use for being called from TeX.
% 
shell_escape_commands = \
bibtex,bibtex8,\
extractbb,\
gregorio,\
kpsewhich,\
l3sys-query,\
latexminted,\
makeindex,\
memoize-extract.pl,\
memoize-extract.py,\
repstopdf,\
r-mpost,\
texosquery-jre8,\

% other programs considered:
% dvips - but external commands can be executed, need at least -R1.
% epspdf, ps2pdf, pstopdf - need to respect openout_any,
%   and gs -dSAFER must be used and check for shell injection with filenames.
% pygmentize - but is the filter feature insecure?
% ps4pdf - but it calls an unrestricted latex.
% rpdfcrop - maybe ok, but let's get experience with repstopdf first.
% texindy,xindy - but is the module feature insecure?
% ulqda - but requires optional SHA1.pm, so why bother.
% tex, latex, etc. - need to forbid --shell-escape, and inherit openout_any.

% plain "tex" should remain unenhanced.
shell_escape.tex = f
shell_escape.initex = f

% This is used by the Windows script wrapper for restricting searching
% for the purportedly safe shell_escape_commands above to system
% directories.
TEXMF_RESTRICTED_SCRIPTS = \
  {!!$TEXMFLOCAL,!!$TEXMFDIST}/scripts/{$progname,$engine,}//

% Do we allow TeX \input or \openin (openin_any), or \openout
% (openout_any) on filenames starting with `.' (e.g., .rhosts) or
% outside the current tree (e.g., /etc/passwd)?
% a (any)        : any file can be opened.
% r (restricted) : disallow opening dot files
% p (paranoid)   : as `r' and disallow going to parent directories, and
%                  restrict absolute paths to be under $TEXMFOUTPUT.
openin_any = a
openout_any = p

% Write .log/.dvi/.aux/etc. files here, if they can't be written in the
% current directory.
% 
% Best to use this only when a particular job requires it, not set
% globally in a configuration file or the environment. We recommend
% using it transiently for particular jobs, not making a permanent setting.
%TEXMFOUTPUT = /tmp

% As of TeX Live 2024, a related environment variable is
% TEXMF_OUTPUT_DIRECTORY. It overrides the current directory for all
% output files in TeX and the other engines. It cannot be set in a
% configuration file. And it's even more important to use it only
% temporarily, when required, to avoid massive confusion about where the
% output files are ending up.

% If a dynamic file creation fails, log the command to this file, in
% either the current directory or TEXMFOUTPUT.  Set to the
% empty string or  0  to avoid logging.
MISSFONT_LOG = missfont.log

% Set to a colon-separated list of words specifying warnings to suppress.
% To suppress everything, use TEX_HUSH = all; this is currently equivalent to
% TEX_HUSH = checksum:lostchar:readable:special
% To suppress nothing, use TEX_HUSH = none or do not set the variable at all.
TEX_HUSH = none

% Allow TeX and MF to parse the first line of an input file for
% the %&format construct.
parse_first_line = t

% But don't parse the first line if invoked as "tex", since we want that
% to remain Knuth-compatible.  The src_specials and
% file_line_error_style settings, as well as the options -enctex,
% -mltex, -8bit, etc., also affect this, but they are all off by default.
parse_first_line.tex = f
parse_first_line.initex = f

% Normally we mention files created by \openout in the log file,
% but again, trip-compatibility forbids this for (ini)tex.
log_openout = t
log_openout.tex = f
log_openout.initex = f

% Control file:line:error style messages.
file_line_error_style = f

% Enable the mktex... scripts by default?  These must be set to 0 or 1.
% The values shown here are the compile-time defaults for original TeX Live;
% they can be overridden at compile time with configure options,
% or at runtime with environment variables or program options.
%
% These values are ignored if the script names are changed; e.g., if you
% set DVIPSMAKEPK to `foo', what counts is the value of the environment
% variable/config value `FOO', not the `MKTEXPK' value.
%
%MKTEXTEX = 0
%MKTEXPK = 1
%MKTEXMF = 1
%MKTEXTFM = 1
%MKTEXFMT = 1
%MKOCP = 1
%MKOFM = 1

% Used by makempx to run TeX.  We use "etex" because MetaPost is
% expecting DVI, and not "tex" because we want first line parsing.
TEX = etex

% Use Japanese eptex for Japanese pmpost.
TEX.pmpost = eptex

% These variables specify the external program called for the
% interactive `e' option.  %d is replaced by the line number and %s by
% the current filename.  The default is specified at compile-time, and
% we let that stay in place since different platforms like different values.
%TEXEDIT = vi +%d '%s'                    % default for Unix
%TEXEDIT = texworks --position=+%d "%s"   % default for Windows
%MFEDIT = ${TEXEDIT}
%MPEDIT = ${TEXEDIT}

% The default `codepage and sort order' file for BibTeX8, when none is
% given as command line option or environment variable.
BIBTEX_CSFILE = 88591lat.csf

% This variable is specific to Unix, to fall back to case-insensitive
% search in non-system directories if there is no exact match. It is
% enabled by default in texmf.cnf, but not enabled by default at
% compile-time.
%
texmf_casefold_search = 1

% This variable is specific to Windows.  It must be set to 0 or 1.  The
% default is 0.  Setting it to 1 tells the Windows script wrappers to
% use an already installed Perl interpreter if one is found on the
% search path, in preference to the Perl shipped with TeX Live.  Thus,
% it may be useful if you both (a) installed a full Perl distribution
% for general use, and (b) need to run Perl programs from TL that use
% additional modules we don't provide.  The TL Perl does provide all the
% standard Perl modules.
%
%TEXLIVE_WINDOWS_TRY_EXTERNAL_PERL = 0


%  Part 3: Array and other sizes for TeX, Metafont, etc.
%
% If you want to change some of these sizes only for a certain TeX
% variant, the usual dot notation works, as shown below for ConTeXt.
% If a change here appears to be ignored, try redumping the format file.

% Memory. Must be less than 8,000,000 total.
%
% main_memory is relevant only to initex, extra_mem_* only to non-ini.
% Thus, have to redump the .fmt file after changing main_memory; to add
% to existing fmt files, increase extra_mem_*.  (To get an idea of how
% much, try \tracingstats=2 in your TeX source file;
% web2c/tests/memtest.tex might also be interesting.)
%
% To increase space for boxes (as might be needed by, e.g., PiCTeX),
% increase extra_mem_bot.
%
main_memory = 5000000 % words of inimemory available; also applies to inimf&mp
extra_mem_top = 0     % extra high memory for chars, tokens, etc.
extra_mem_bot = 0     % extra low memory for boxes, glue, breakpoints, etc.

% ConTeXt needs lots of memory.
extra_mem_top.context = 2000000
extra_mem_bot.context = 4000000

% Words of font info for TeX (total size of all TFM files, approximately).
% Must be >= 20000 and <= 147483647 (without tex.ch changes).
font_mem_size = 8000000

% Total number of fonts. Must be >= 50 and <= 9000 (without tex.ch changes).
font_max = 9000

% Extra space for the hash table of control sequences.
hash_extra = 600000

% Max number of characters in all strings, including all error messages,
% help texts, font names, control sequences.  These values apply to TeX.
pool_size = 6250000
% Minimum pool space after TeX's own strings; must be at least
% 25000 less than pool_size, but doesn't need to be nearly that large.
string_vacancies = 90000
% Maximum number of strings.
max_strings = 500000
% Min pool space left after loading .fmt.
pool_free = 47500
% Ensure at least this many strings are free after loading .fmt.
strings_free = 100

% Buffer size.  TeX uses the buffer to contain input lines, but macro
% expansion works by writing material into the buffer and reparsing the
% line.  As a consequence, certain constructs require the buffer to be
% very large, even though most documents can be handled with a small value.
buf_size = 200000

% Hyphenation trie.  The maximum possible is 4194303 (ssup_trie_size in
% the sources), but we don't need that much.  The value here suffices
% for all known free hyphenation patterns to be loaded simultaneously
% (as TeX Live does).
%
trie_size = 1100000

hyph_size = 8191        % prime number of hyphenation exceptions, >610, <65535
                        % http://primes.utm.edu/curios/page.php/8191.html
                        % dynamically increased as necessary, so not important.
nest_size = 1000        % simultaneous semantic levels (e.g., groups)
max_in_open = 15        % simultaneous input files and error insertions, 
                        % also applies to MetaPost
param_size = 20000      % simultaneous macro parameters, also applies to MP
save_size  = 200000     % for saving values outside current group
stack_size = 10000      % simultaneous input sources

% Limit on recursive expansion calls so TeX has a chance to quit nicely
% before stack space runs out. The default is 10000. Normally there is no
% reason to change it. The web2c manual has a bit more about this.
%expand_depth = 10000

% These are Omega-specific.
ocp_buf_size = 500000   % character buffers for ocp filters.
ocp_stack_size = 10000  % stacks for ocp computations.
ocp_list_size = 1000    % control for multiple ocps.

% For pdftex and luatex: default resolution for bitmaps;
% commonly set via \pdfpkresolution when needed to be changed.
%pk_dpi = 72

% These work best if they are the same as the I/O buffer size, but it
% doesn't matter much.  Must be a multiple of 8.
dvi_buf_size = 16384 % TeX
gf_buf_size = 16384  % MF

% It's probably inadvisable to change these. At any rate, we must have:
% 45 < error_line      < 255;
% 30 < half_error_line < error_line - 15;
% 60 <= max_print_line;
% These apply to TeX, Metafont, and MetaPost.
% "max_print_line" applies to BibTeX family.
error_line = 79
half_error_line = 50
max_print_line = 79

% Metafont only.
screen_width.mf = 1664
screen_depth.mf = 1200

% BibTeX only (max_strings also determines hash_size and hash_prime).
ent_str_size = 500
glob_str_size = 200000
max_strings.bibtex  = 200000
max_strings.bibtex8 = 200000
max_strings.bibtexu = 200000
max_strings.pbibtex = 200000
max_strings.upbibtex= 200000

% GFtype only.
line_length.gftype = 500
max_rows.gftype = 8191
max_cols.gftype = 8191

% Guess input encoding (SJIS vs. Unicode, etc.) in pTeX and friends?
% Default is 1 for (e)p(la)tex, pbibtex & mendex, to guess.
guess_input_kanji_encoding = 0
guess_input_kanji_encoding.ptex = 1
guess_input_kanji_encoding.eptex = 1
guess_input_kanji_encoding.platex = 1
guess_input_kanji_encoding.platex-dev = 1
guess_input_kanji_encoding.pbibtex = 1
guess_input_kanji_encoding.mendex = 1

% command_line_encoding
%
% This variable is used on Windows only, and affects 4 TeX engines:
% uptex, euptex, pdftex, xetex, and 2 drivers: dvips, [x]dvipdfmx.
% Several applications also are affected by the variable:
% bibtex8.exe, bibtexu.exe, dvi2tty.exe, disdvi.exe, dvibook.exe,
% dviconcat.exe, dviselect.exe, dvitodvi.exe, and dvidvi.exe.
% Only values utf8 or utf-8 are meaningful. Other values are simply
% ignored. If file names in sources and DVI or XDV files are ASCII
% only, the value of command_line_encoding is irrelevant.
% If command_line_encoding = utf8 or command_line_encoding = utf-8,
% characters on a command line in cmd.exe are assumed to be Unicode and
% file names in sources and DVI or XDV files are assumed to be UTF-8.
% Default is utf-8, from 2019-07-24, to assume UTF-8 file names.
% In order to switch off the function, define an environment variable:
% set command_line_encoding=none
% or write a line:
% command_line_encoding = none
% in a texmf.cnf prefered, for example $TEXMFLOCAL/web2c/texmf.cnf.
command_line_encoding = utf-8

% As of TeX Live 2024, the engine for ptex, eptex, platex, and
% platex-dev is euptex. Therefore the function should be switched off
% for ptex, eptex, platex and platex-dev.
command_line_encoding.ptex = none
command_line_encoding.eptex = none
command_line_encoding.platex = none
command_line_encoding.platex-dev = none
