diff options
Diffstat (limited to 'libre-testing/texlive-bin-libre')
8 files changed, 1226 insertions, 0 deletions
diff --git a/libre-testing/texlive-bin-libre/09-texlive-fonts.conf b/libre-testing/texlive-bin-libre/09-texlive-fonts.conf new file mode 100644 index 000000000..f870fbd7a --- /dev/null +++ b/libre-testing/texlive-bin-libre/09-texlive-fonts.conf @@ -0,0 +1,9 @@ +<?xml version="1.0"?> +<!DOCTYPE fontconfig SYSTEM "fonts.dtd"> +<fontconfig> + <dir>/usr/share/texmf-dist/fonts/opentype</dir> + <dir>/usr/share/texmf-dist/fonts/truetype</dir> + <dir>/usr/local/share/texmf/fonts/opentype</dir> + <dir>/usr/local/share/texmf/fonts/truetype</dir> +</fontconfig> + diff --git a/libre-testing/texlive-bin-libre/PKGBUILD b/libre-testing/texlive-bin-libre/PKGBUILD new file mode 100644 index 000000000..d5571465f --- /dev/null +++ b/libre-testing/texlive-bin-libre/PKGBUILD @@ -0,0 +1,316 @@ +# $Id: PKGBUILD 165207 2012-08-13 08:28:02Z remy $ +# Maintainer: Rémy Oudompheng <remy@archlinux.org> +# Contributor: francois <francois.archlinux.org> +# Maintainer (Parabola): Michał Masłowski <mtjm@mtjm.eu> +# Contributor (Parabola): André Silva <emulatorman@lavabit.com> + +pkgname=texlive-bin-libre +pkgver=2012.0 +pkgrel=4 +pkgdesc="TeX Live binaries" +license=('GPL') +arch=('i686' 'x86_64' 'mips64el') +depends=('t1lib' 'gd' 'poppler' 'libsigsegv' 'zziplib' 'libpng' 'libjpeg' 'freetype2') +makedepends=('perl' 'clisp' 'ffcall') +optdepends=('ed: for texconfig') +provides=('lcdf-typetools' 'kpathsea' 'xindy' 'pdfjam' 'texlive-bin') +conflicts=('pdfjam' 'texlive-bin') +replaces=('texlive-bin') +options=('!libtool' '!strip') +url='http://tug.org/texlive/' +install="texlive.install" +source=('texmf.cnf' + 'fix-fontforge-encoding.patch' + '09-texlive-fonts.conf' + 'poppler-0.20.patch' + 'http://mirrors.kernel.org/archlinux/other/texlive/texlive-bin-source-20120623.tar.xz' + 'http://mirrors.kernel.org/archlinux/other/texlive/texlive-bin-texmf-20120623.tar.xz' + 'luatex-r4449-radical-rule-thickness.patch' +) +backup=(etc/texmf/web2c/texmf.cnf \ + etc/texmf/chktex/chktexrc \ + etc/texmf/dvipdfm/config/config \ + etc/texmf/dvipdfmx/dvipdfmx.cfg \ + etc/texmf/dvips/config/config.ps \ + etc/texmf/tex/generic/config/language.dat \ + etc/texmf/tex/generic/config/language.def \ + etc/texmf/tex/generic/config/pdftexconfig.tex \ + etc/texmf/ttf2pk/ttf2pk.cfg \ + etc/texmf/web2c/fmtutil.cnf \ + etc/texmf/web2c/mktex.cnf \ + etc/texmf/xdvi/XDvi) + +md5sums=('220a4f4cc0d915bf8fcbcb553dcee1ae' + 'bfb9716aa00c86c08cd31e5b32edeb98' + '393a4bf67adc7ca5df2b386759d1a637' + 'e3a664d5a7f0923f35060fe9d25d2573' + 'ac2c3c3aa765581f8504e21a5edbfb9f' + 'f315a860158cfc952c82a6d759961024' + '5190f3295eb9a604c5f17f5bd607299b') + +build() { + if [ "${CARCH}" != "i686" ]; then + export CFLAGS="${CFLAGS} -fPIC" + export CXXFLAGS="${CXXFLAGS} -fPIC" + fi + + cd "$srcdir" + # this patch removes spurious error message with locale "xx_YY.utf8" + patch -Np0 -i fix-fontforge-encoding.patch + # fix build with poppler >= 0.20 + patch -Np0 -i poppler-0.20.patch + # fix radical rule thickness regression in Luatex + # http://tex.stackexchange.com/q/61952/729 + patch -Np0 -i luatex-r4449-radical-rule-thickness.patch + # t4ht expects to be un /usr/share/texmf/bin/t4ht (FS#27251) + sed -i s/SELFAUTOPARENT/TEXMFROOT/ source/texk/tex4htk/t4ht.c + ############################################################# + ### configure + cd source + ## prevent compiling Xdvi with libXp + sed -i~ 's|-lXp ||' texk/xdvik/configure + test ! -d Work && mkdir Work + cd Work + echo "--> Initial configuration..." + # we use temporary prefix to avoid messing the existing + # $pkgdir/usr/share/texmf tree + # system zlib is disabled due to issues with zlib 1.2.6 (FS#28221) + ../configure --prefix=/usr -C \ + --sysconfdir=/etc \ + --datarootdir=/usr/share \ + --datadir=/usr/share \ + --mandir=/usr/share/man \ + --disable-native-texlive-build \ + --with-banner-add="/Parabola GNU/Linux-libre" \ + --disable-multiplatform \ + --disable-dialog \ + --disable-psutils \ + --disable-t1utils \ + --disable-bibtexu \ + --disable-xz \ + --with-system-zlib \ + --with-system-zziplib \ + --with-system-pnglib \ + --with-system-ncurses \ + --with-system-t1lib \ + --with-system-gd \ + --with-system-poppler \ + --with-system-xpdf \ + --with-system-freetype2 \ + --without-system-graphite \ + --with-freetype2-libdir=/usr/lib \ + --with-freetype2-include=/usr/include/freetype2 \ + --with-xdvi-x-toolkit=xaw \ + --disable-dump-share \ + --disable-aleph \ + --enable-luatex \ + --with-clisp-runtime=default \ + --enable-xindy --disable-xindy-rules --disable-xindy-docs + ############################################################# + ### make + echo "-------------------------------------------------------" + echo "--> Building the whole beast ..." + echo "-------------------------------------------------------" + make +} + +package() { + cd "$srcdir" + ############################################################# + ### install texmf tree + echo "-------------------------------------------------------" + echo "--> installing the texmf tree" + echo "-------------------------------------------------------" + install -m755 -d "$pkgdir"/usr/share + cp -r texmf "$pkgdir"/usr/share/ + install -d -m755 "$pkgdir"/etc/texmf/web2c + install -d -m755 "$pkgdir"/etc/texmf/chktex + install -d -m755 "$pkgdir"/etc/texmf/dvips/config + install -d -m755 "$pkgdir"/etc/texmf/dvipdfm/config + install -d -m755 "$pkgdir"/etc/texmf/dvipdfmx + install -d -m755 "$pkgdir"/etc/texmf/tex/generic/config + install -d -m755 "$pkgdir"/etc/texmf/ttf2pk + install -d -m755 "$pkgdir"/etc/texmf/xdvi + install -d -m755 "$pkgdir"/etc/fonts/conf.avail + install -m644 "$srcdir"/09-texlive-fonts.conf "$pkgdir"/etc/fonts/conf.avail/ + # move man files to /usr/share/man + for i in 1 5; do + install -d -m755 "$pkgdir"/usr/share/man/man$i + mv "$pkgdir"/usr/share/texmf/doc/man/man$i/*.$i "$pkgdir"/usr/share/man/man$i/ + done + # move info files to /usr/share/info + install -d -m755 "$pkgdir"/usr/share/info + mv "$pkgdir"/usr/share/texmf/doc/info/*.info "$pkgdir"/usr/share/info/ + rm -rf "$pkgdir"/usr/share/texmf/doc/{man,info} + # copy config files to $TEXMFCONFIG tree + cp -a "$pkgdir"/usr/share/texmf/chktex/chktexrc \ + "$pkgdir"/etc/texmf/chktex/ + cp -a "$pkgdir"/usr/share/texmf/web2c/mktex.cnf \ + "$pkgdir"/etc/texmf/web2c/ + cp -a "$pkgdir"/usr/share/texmf/web2c/updmap.cfg \ + "$pkgdir"/etc/texmf/web2c/ + cp -a "$pkgdir"/usr/share/texmf/web2c/fmtutil.cnf \ + "$pkgdir"/etc/texmf/web2c/ + cp -a "$pkgdir"/usr/share/texmf/dvips/config/config.ps \ + "$pkgdir"/etc/texmf/dvips/config/ + cp -a "$pkgdir"/usr/share/texmf/dvipdfm/config/config \ + "$pkgdir"/etc/texmf/dvipdfm/config/ + cp -a "$pkgdir"/usr/share/texmf/dvipdfmx/dvipdfmx.cfg \ + "$pkgdir"/etc/texmf/dvipdfmx/ + cp -a "$pkgdir"/usr/share/texmf/tex/generic/config/pdftexconfig.tex \ + "$pkgdir"/etc/texmf/tex/generic/config/ + cp -a "$pkgdir"/usr/share/texmf/tex/generic/config/language.dat \ + "$pkgdir"/etc/texmf/tex/generic/config/ + cp -a "$pkgdir"/usr/share/texmf/tex/generic/config/language.def \ + "$pkgdir"/etc/texmf/tex/generic/config/ + cp -a "$pkgdir"/usr/share/texmf/ttf2pk/ttf2pk.cfg \ + "$pkgdir"/etc/texmf/ttf2pk/ + cp -a "$pkgdir"/usr/share/texmf/xdvi/XDvi \ + "$pkgdir"/etc/texmf/xdvi/ + # remove TL specific warnings in the language.{dat,def} files: + sed -i -e '/DO NOT EDIT/,+3 d' "$pkgdir"/etc/texmf/tex/generic/config/language.* + # clean updmap.cfg + sed -i '/^\(Map\|MixedMap\)/d' "$pkgdir"/etc/texmf/web2c/updmap.cfg + sed -i '/^#! \(Map\|MixedMap\)/d' "$pkgdir"/etc/texmf/web2c/updmap.cfg + # Don't list formats which need removed packages to work. + sed -i '/csplain\|mex\|jadetex/d' "$pkgdir"/etc/texmf/web2c/fmtutil.cnf + + ############################################################# + ### install + cd source + # fixes for xindy + find utils/xindy -name Makefile -exec sed -i -e "s|^prefix =.\+$|prefix = $pkgdir/usr|" -e "s|^mandir =.\+$|mandir = \${prefix}/share/man|" -e "s|^datadir =.\+$|datadir = \${datarootdir}/texmf|" -e "s|^docdir =.\+$|docdir = \${datadir}/doc/xindy|" '{}' \; + + echo "-------------------------------------------------------" + echo "--> Proceeding with make install ..." + echo "-------------------------------------------------------" + cd Work + make DESTDIR="${pkgdir}" texmf="$pkgdir"/usr/share/texmf install + rm -rf "${pkgdir}"/usr/{texmf,share/texmf-dist} + + # replace upstream texmf.cnf with ours + rm -f "$pkgdir"/usr/share/texmf/web2c/texmf.cnf + install -m644 "$srcdir"/texmf.cnf "$pkgdir"/etc/texmf/web2c/texmf.cnf + # since the location of texmf.cnf is hard-wired to be under /usr/share/texmf/web2c + # we make a symlink from /etc/texmf/web2c/texmf.cnf to the latter + ln -sf /etc/texmf/web2c/texmf.cnf "$pkgdir"/usr/share/texmf/web2c/texmf.cnf + # fix location of TEXMFCACHE for luatools + sed -i 's#texlive2010#texlive#' "$pkgdir"/usr/share/texmf/web2c/texmfcnf.lua + ## remove aleph from fmtutil.cnf + sed -i -e '/aleph/d' "$pkgdir"/usr/share/texmf/web2c/fmtutil.cnf + + ## install Perl libraries + mkdir -p "$pkgdir"/usr/share/tlpkg/TeXLive + install -m644 "${srcdir}"/source/utils/biber/TeXLive/*.pm "$pkgdir"/usr/share/tlpkg/TeXLive + + # create symlinks for formats + echo "--> Create symlinks for TeX formats ..." + PATH="$PATH:${pkgdir}/usr/bin" texlinks -f "$pkgdir"/usr/share/texmf/web2c/fmtutil.cnf "$pkgdir"/usr/bin/ + ############################################################# + # remove dangling symlinks + _bibtexextra_scripts=" +bibexport +listbib +urlbst +" + _core_scripts=" +afm2afm +arlatex +autoinst +bundledoc +checkcites +cmap2enc +ctanify +ctanupload +de-macro +dosepsbin +dviasm +epstopdf +findhyph +font2afm +fragmaster +installfont-tl +latex2man +latexdiff +latexdiff-vc +latexfileversion +latexmk +latexrevise +listings-ext.sh +match_parens +mf2pt1 +mkjobtexmf +mkluatexfontdb +mkt1font +mptopdf +ot2kpx +pdf180 +pdf270 +pdf90 +pdfatfi +pdfbook +pdfcrop +pdfflip +pdfjam +pdfjam-pocketmod +pdfjam-slides3up +pdfjam-slides6up +pdfjoin +pdfnup +pdfpun +pfm2kpx +pkfix +pkfix-helper +purifyeps +repstopdf +rpdfcrop +showglyphs +sty2dtx +texcount +texdef +texdiff +texdirflatten +texliveonfly +texloganalyser +typeoutfileinfo +thumbpdf +vpl2ovp +vpl2vpl +" + _htmlxml_scripts="ht htcontext htlatex htmex httex httexi htxelatex htxetex mk4ht" + _langcjk_scripts="convbkmk updmap-setup-kanji" + _langextra_scripts="ebong" + _langgreek_scripts="mkgrkindex" + _latexextra_scripts=" +authorindex +exceltex +makeglossaries +pdfannotextractor +perltex +ppower4 +ps4pdf +splitindex +svn-multi +vpe" + _music_scripts="m-tx musixtex musixflx pmx2pdf" + _pictures_scripts="cachepic epspdf epspdftk fig4latex mathspic" + _pstricks_scripts="pedigree pst2pdf" + _science_scripts="ulqda" + for s in \ + ${_bibtexextra_scripts} \ + ${_core_scripts} \ + ${_htmlxml_scripts} \ + ${_langcjk_scripts} \ + ${_langextra_scripts} \ + ${_langgreek_scripts} \ + ${_latexextra_scripts} \ + ${_music_scripts} \ + ${_pictures_scripts} \ + ${_pstricks_scripts} \ + ${_science_scripts} \ + tlmgr biber; do # biber is not built from source + rm -f "$pkgdir"/usr/bin/$s + done + ################################################################### +} + diff --git a/libre-testing/texlive-bin-libre/fix-fontforge-encoding.patch b/libre-testing/texlive-bin-libre/fix-fontforge-encoding.patch new file mode 100644 index 000000000..8104b3289 --- /dev/null +++ b/libre-testing/texlive-bin-libre/fix-fontforge-encoding.patch @@ -0,0 +1,12 @@ +--- source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/noprefs.c.orig 2009-09-30 19:27:00.935039526 +0200 ++++ source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/noprefs.c 2009-09-30 19:28:04.908364646 +0200 +@@ -495,6 +495,9 @@ + { "Big5HKSCS", e_big5hkscs }, + { "Big5-HKSCS", e_big5hkscs }, + { "UTF-8", e_utf8 }, ++ { "utf-8", e_utf8 }, ++ { "UTF8", e_utf8 }, ++ { "utf8", e_utf8 }, + { "ISO-10646/UTF-8", e_utf8 }, + { "ISO_10646/UTF-8", e_utf8 }, + { "UCS2", e_unicode }, diff --git a/libre-testing/texlive-bin-libre/luatex-poppler-0.20.patch b/libre-testing/texlive-bin-libre/luatex-poppler-0.20.patch new file mode 100644 index 000000000..175824f3e --- /dev/null +++ b/libre-testing/texlive-bin-libre/luatex-poppler-0.20.patch @@ -0,0 +1,77 @@ +--- source/texk/web2c/luatexdir/lua/lepdflib.cc.orig 2011-10-06 06:14:20.000000000 +0000 ++++ source/texk/web2c/luatexdir/lua/lepdflib.cc 2012-05-17 11:30:26.327236883 +0000 +@@ -157,7 +157,7 @@ + pdfdoc_changed_error(L); + uout = new_Annot_userdata(L); + uout->d = +- new Annot((XRef *) uxref->d, (Dict *) udict->d, (Catalog *) ucatalog->d, ++ new Annot((PDFDoc *) uxref->pd, (Dict *) udict->d, + (Object *) uref->d); + uout->atype = ALLOC_LEPDF; + uout->pc = uxref->pc; +@@ -179,7 +179,7 @@ + pdfdoc_changed_error(L); + uout = new_Annots_userdata(L); + uout->d = +- new Annots((XRef *) uxref->d, (Catalog *) ucatalog->d, ++ new Annots((PDFDoc *) uxref->pd, + (Object *) uannotsobj->d); + uout->atype = ALLOC_LEPDF; + uout->pc = uxref->pc; +@@ -369,7 +369,7 @@ + // Annot + + m_poppler_get_BOOL(Annot, isOk); +-m_poppler_get_OBJECT(Annot, getAppearance); ++m_poppler_get_OBJECT(Annot, getAppearanceResDict); + m_poppler_get_poppler(Annot, AnnotBorder, getBorder); + + static int m_Annot_match(lua_State * L) +@@ -408,7 +408,7 @@ + + static const struct luaL_Reg Annot_m[] = { + {"isOk", m_Annot_isOk}, +- {"getAppearance", m_Annot_getAppearance}, ++ {"getAppearance", m_Annot_getAppearanceResDict}, + {"getBorder", m_Annot_getBorder}, + {"match", m_Annot_match}, + {"__tostring", m_Annot__tostring}, +@@ -1433,7 +1433,7 @@ + + static int m_Object_getTypeName(lua_State * L) + { +- char *s; ++ const char *s; + udstruct *uin; + uin = (udstruct *) luaL_checkudata(L, 1, M_Object); + if (uin->pd != NULL && uin->pd->pc != uin->pc) +@@ -2120,7 +2120,7 @@ + if ((uin->pd != NULL && uin->pd->pc != uin->pc) + || (ucat->pd != NULL && ucat->pd->pc != ucat->pd->pc)) + pdfdoc_changed_error(L); +- links = ((Page *) uin->d)->getLinks((Catalog *) ucat->d); ++ links = ((Page *) uin->d)->getLinks(); + if (links != NULL) { + uout = new_Links_userdata(L); + uout->d = links; +@@ -2738,7 +2738,10 @@ + return 1; + } + +-m_poppler_get_INT(XRef, getSize); ++static int m_XRef_getSize(lua_State * L) ++{ ++ return m_XRef_getNumObjects(L); ++} + + static int m_XRef_getEntry(lua_State * L) + { +@@ -2748,7 +2751,7 @@ + if (uin->pd != NULL && uin->pd->pc != uin->pc) + pdfdoc_changed_error(L); + i = luaL_checkint(L, 2); +- size = ((XRef *) uin->d)->getSize(); ++ size = ((XRef *) uin->d)->getNumObjects(); + if (i > 0 && i <= size) { + uout = new_XRefEntry_userdata(L); + uout->d = ((XRef *) uin->d)->getEntry(i); diff --git a/libre-testing/texlive-bin-libre/luatex-r4449-radical-rule-thickness.patch b/libre-testing/texlive-bin-libre/luatex-r4449-radical-rule-thickness.patch new file mode 100644 index 000000000..f925a1a93 --- /dev/null +++ b/libre-testing/texlive-bin-libre/luatex-r4449-radical-rule-thickness.patch @@ -0,0 +1,23 @@ +Index: source/texk/web2c/luatexdir/tex/mlist.w +=================================================================== +--- source/texk/web2c/luatexdir/tex/mlist.w (revision 4448) ++++ source/texk/web2c/luatexdir/tex/mlist.w (revision 4449) +@@ -1798,7 +1798,17 @@ + theta = fraction_rule(cur_style); + y = var_delimiter(left_delimiter(q), cur_size, + height(x) + depth(x) + clr + theta, NULL, cur_style); +- theta = height(y); ++ /* If |y| is a composite then set |theta| to the height of its top ++ character, else set it to the height of |y|. */ ++ if (list_ptr(y) != null ++ && type(list_ptr(y)) == hlist_node ++ && list_ptr(list_ptr(y)) != null ++ && type(list_ptr(list_ptr(y))) == glyph_node) { /* and it should be */ ++ theta = char_height(font(list_ptr(list_ptr(y))), ++ character(list_ptr(list_ptr(y)))); ++ } else { ++ theta = height(y); ++ } + } else { + y = var_delimiter(left_delimiter(q), cur_size, + height(x) + depth(x) + clr + theta, NULL, cur_style); diff --git a/libre-testing/texlive-bin-libre/poppler-0.20.patch b/libre-testing/texlive-bin-libre/poppler-0.20.patch new file mode 100644 index 000000000..3bd8183ab --- /dev/null +++ b/libre-testing/texlive-bin-libre/poppler-0.20.patch @@ -0,0 +1,22 @@ +--- source/texk/web2c/luatexdir/lua/lepdflib.cc.orig 2011-10-06 06:14:20.000000000 +0000 ++++ source/texk/web2c/luatexdir/lua/lepdflib.cc 2012-05-17 11:30:26.327236883 +0000 +@@ -1433,7 +1433,7 @@ + + static int m_Object_getTypeName(lua_State * L) + { +- char *s; ++ const char *s; + udstruct *uin; + uin = (udstruct *) luaL_checkudata(L, 1, M_Object); + if (uin->pd != NULL && uin->pd->pc != uin->pc) +--- source/texk/web2c/pdftexdir/pdftosrc.cc.orig 2012-06-24 17:12:34.376329435 +0200 ++++ source/texk/web2c/pdftexdir/pdftosrc.cc 2012-06-24 17:12:25.490003152 +0200 +@@ -134,7 +134,7 @@ + exit(1); + } + if (extract_xref_table) { +- int size = xref->getSize(); ++ int size = xref->getNumObjects(); + int i; + for (i = 0; i < size; i++) { + if (xref->getEntry(i)->offset == 0xffffffff) diff --git a/libre-testing/texlive-bin-libre/texlive.install b/libre-testing/texlive-bin-libre/texlive.install new file mode 100644 index 000000000..06a40a3b3 --- /dev/null +++ b/libre-testing/texlive-bin-libre/texlive.install @@ -0,0 +1,43 @@ +infodir=usr/share/info +filelist=(dvipng.info dvips.info eplain.info epspdf.info fontname.info kpathsea.info latex2e-es.info latex2e.info latex2man.info mf2pt1.info tds.info texdraw.info web2c.info) + +post_install() { + echo ">>> texlive: updating the filename database..." + usr/bin/mktexlsr + echo -n "creating all formats..." + usr/bin/fmtutil-sys --all 1>/dev/null + echo " done." + echo " (logs are under /var/lib/texmf/web2c/<engine>/<formatname>.log)" + + [[ -x usr/bin/install-info ]] || return 0 + for file in "${filelist[@]}"; do + install-info "$infodir/$file.gz" "$infodir/dir" 2> /dev/null + done +} + +post_upgrade() { + local corename corever _pacout + echo ">>> texlive: updating the filename database..." + usr/bin/mktexlsr + _pacout=$(pacman -Q texlive-core 2>/dev/null) + read corename corever <<< ${_pacout} + if [[ ${corever} == 2012* ]]; then + echo -n "recreating all formats..." + usr/bin/fmtutil-sys --all 1>/dev/null + echo " done." + echo " (logs are under /var/lib/texmf/web2c/<engine>/<formatname>.log)" + else + echo "WARNING: not recreating formats since texlive-core has version '$corever'" + fi + [[ -x usr/bin/install-info ]] || return 0 + for file in "${filelist[@]}"; do + install-info "$infodir/$file.gz" "$infodir/dir" 2> /dev/null + done +} + +pre_remove() { + [[ -x usr/bin/install-info ]] || return 0 + for file in "${filelist[@]}"; do + install-info --delete "$infodir/$file.gz" "$infodir/dir" 2> /dev/null + done +} diff --git a/libre-testing/texlive-bin-libre/texmf.cnf b/libre-testing/texlive-bin-libre/texmf.cnf new file mode 100644 index 000000000..76975ee5c --- /dev/null +++ b/libre-testing/texlive-bin-libre/texmf.cnf @@ -0,0 +1,724 @@ +% texmf.cnf for TeXLive/Arch Linux -- 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 of the full texmf.cnf! -- in ../../texmf.cnf. That is, if +% this file is installed in /some/path/to/texlive/2011/texmf/web2c/texmf.cnf, +% add your custom settings to /some/path/to/texlive/2011/texmf.cnf. +% +% What follows is a super-summary of what this .cnf file can +% contain. Please read the Kpathsea manual for more information. +% +% 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. +% Long lines can be continued with a \. +% +% 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. We make extensive +% use of this. + + +% 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. +% +% All trees must be organized according to the TeX Directory Structure +% (http://tug.org/tds), or files may not be found. +% +% Redistributors will probably want $SELFAUTODIR/share, i.e., /usr/share. +TEXMFROOT = $SELFAUTODIR/share + +% The tree containing runtime files related to the specific +% distribution and version. +TEXMFMAIN = $TEXMFROOT/texmf + +% The main tree of packages, distribution-agnostic: +TEXMFDIST = $TEXMFROOT/texmf-dist + +% Local additions to the distribution trees. +TEXMFLOCAL = /usr/local/share/texmf + +% TEXMFSYSVAR, where *-sys store cached runtime data. +TEXMFSYSVAR = /var/lib/texmf + +% TEXMFSYSCONFIG, where *-sys store configuration data. +TEXMFSYSCONFIG = /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 = ~/.texlive/texmf-var + +% TEXMFCONFIG, where texconfig/updmap/fmtutil store configuration data. +TEXMFCONFIG = ~/.texlive/texmf-config + +% List all the texmf trees. +% +% For texconfig to work properly, TEXMFCONFIG and TEXMFVAR should be named +% explicitly and before all other trees. +% +% TEXMFLOCAL follows TEXMFMAIN (and precedes TEXMFDIST) because the +% files in TEXMFMAIN are tightly coupled with the particular version of +% the distribution, such as configuration files. Overriding them would +% be more likely to cause trouble than help. On the other hand, the +% bulk of packages and fonts are in TEXMFDIST, and locally-installed +% versions should take precedence over those -- although it is generally +% a source of confusion to have different versions of a package +% installed, whatever the trees, so try to avoid it. +TEXMF = {$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFMAIN,!!$TEXMFLOCAL,!!$TEXMFDIST} + +% Where to look for ls-R files. There need not be an ls-R in the +% directories in this path, but if there is one, Kpathsea will use it. +% By default, this is 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 be searched. +% This is arguably a bug in kpathsea. +TEXMFDBS = {!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFMAIN,!!$TEXMFLOCAL,!!$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;$TEXMFMAIN;$TEXMFLOCAL;$TEXMFDIST + +% 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 = $TEXMFVAR/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 + +% 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. +TEXINPUTS.tex = .;$TEXMF/tex/{plain,generic,}// + +% Fontinst needs to read afm files. +TEXINPUTS.fontinst = .;$TEXMF/{tex,fonts/afm}// + +% Other plain-based formats. +TEXINPUTS.amstex = .;$TEXMF/tex/{amstex,plain,generic,}// +TEXINPUTS.csplain = .;$TEXMF/tex/{csplain,plain,generic,}// +TEXINPUTS.eplain = .;$TEXMF/tex/{eplain,plain,generic,}// +TEXINPUTS.ftex = .;$TEXMF/tex/{formate,plain,generic,}// +TEXINPUTS.mex = .;$TEXMF/tex/{mex,plain,generic,}// +TEXINPUTS.texinfo = .;$TEXMF/tex/{texinfo,plain,generic,}// + +% LaTeX 2e 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. +TEXINPUTS.cslatex = .;$TEXMF/tex/{cslatex,csplain,latex,generic,}// +TEXINPUTS.latex = .;$TEXMF/tex/{latex,generic,}// +TEXINPUTS.latex209 = .;$TEXMF/tex/{latex209,generic,latex,}// +TEXINPUTS.olatex = .;$TEXMF/tex/{latex,generic,}// + +% MLTeX. +TEXINPUTS.frlatex = .;$TEXMF/tex/{french,latex,generic,}// +TEXINPUTS.frtex = .;$TEXMF/tex/{french,plain,generic,}// +TEXINPUTS.mllatex = .;$TEXMF/tex/{latex,generic,}// +TEXINPUTS.mltex = .;$TEXMF/tex/{plain,generic,}// + +% e-TeX. +TEXINPUTS.elatex = .;$TEXMF/tex/{latex,generic,}// +TEXINPUTS.etex = .;$TEXMF/tex/{plain,generic,}// + +% pdfTeX. +TEXINPUTS.pdfcslatex = .;$TEXMF/tex/{cslatex,csplain,latex,generic,}// +TEXINPUTS.pdfcsplain = .;$TEXMF/tex/{csplain,plain,generic,}// +TEXINPUTS.pdflatex = .;$TEXMF/tex/{latex,generic,}// +TEXINPUTS.pdfmex = .;$TEXMF/tex/{mex,plain,generic,}// +TEXINPUTS.utf8mex = .;$TEXMF/tex/{mex,plain,generic,}// +TEXINPUTS.pdftex = .;$TEXMF/tex/{plain,generic,}// +TEXINPUTS.pdftexinfo = .;$TEXMF/tex/{texinfo,plain,generic,}// +TEXINPUTS.pdfamstex = .;$TEXMF/tex/{amstex,plain,generic,}// + +% pdfeTeX. +TEXINPUTS.pdfelatex = .;$TEXMF/tex/{latex,generic,}// +TEXINPUTS.pdfetex = .;$TEXMF/tex/{plain,generic,}// + +% pdfxTeX. +TEXINPUTS.pdfxlatex = .;$TEXMF/tex/{latex,generic,}// +TEXINPUTS.pdfxmex = .;$TEXMF/tex/{mex,plain,generic,}// +TEXINPUTS.pdfxtex = .;$TEXMF/tex/{plain,generic,}// + +% LuaTeX. +TEXINPUTS.lualatex = .;$TEXMF/tex/{lualatex,latex,luatex,generic,}// +TEXINPUTS.luatex = .;$TEXMF/tex/{luatex,plain,generic,}// +TEXINPUTS.dvilualatex = .;$TEXMF/tex/{lualatex,latex,luatex,generic,}// +TEXINPUTS.dviluatex = .;$TEXMF/tex/{luatex,plain,generic,}// + +% XeTeX. +TEXINPUTS.xelatex = .;$TEXMF/tex/{xelatex,latex,xetex,generic,}// +TEXINPUTS.xeplain = .;$TEXMF/tex/{xeplain,eplain,plain,xetex,generic,}// +TEXINPUTS.xetex = .;$TEXMF/tex/{xetex,plain,generic,}// + +% Omega / Aleph. +TEXINPUTS.aleph = .;$TEXMF/tex/{plain,generic,}// +TEXINPUTS.elambda = .;$TEXMF/tex/{lambda,latex,generic,}// +TEXINPUTS.eomega = .;$TEXMF/tex/{plain,generic,}// +TEXINPUTS.lambda = .;$TEXMF/tex/{lambda,latex,generic,}// +TEXINPUTS.lamed = .;$TEXMF/tex/{lamed,lambda,latex,generic,}// +TEXINPUTS.omega = .;$TEXMF/tex/{plain,generic,}// + +% p(La)TeX. +TEXINPUTS.ptex = .;$TEXMF/tex/{ptex,ptexgeneric,plain,generic,}// +TEXINPUTS.platex = .;$TEXMF/tex/{platex,ptexgeneric,latex,generic,}// + +% epTeX. +TEXINPUTS.eptex = .;$TEXMF/tex/{ptex,ptexgeneric,plain,generic,}// + +% pBibTeX bibliographies and style files. +BIBINPUTS.pbibtex = .;$TEXMF/{pbibtex,bibtex}/bib// +BSTINPUTS.pbibtex = .;$TEXMF/{pbibtex,bibtex}/bst// + +% ConTeXt. +TEXINPUTS.context = .;$TEXMF/tex/{context,plain,generic,}// + +% jadetex. +TEXINPUTS.jadetex = .;$TEXMF/tex/{jadetex,latex,generic,}// +TEXINPUTS.pdfjadetex = .;$TEXMF/tex/{jadetex,latex,generic,}// + +% XMLTeX. +TEXINPUTS.xmltex = .;$TEXMF/tex/{xmltex,latex,generic,}// +TEXINPUTS.pdfxmltex = .;$TEXMF/tex/{xmltex,latex,generic,}// + +% Miscellany, no longer built. +TEXINPUTS.lamstex = .;$TEXMF/tex/{lamstex,plain,generic,}// +TEXINPUTS.lollipop = .;$TEXMF/tex/{lollipop,plain,generic,}// +TEXINPUTS.frpdflatex = .;$TEXMF/tex/{french,latex,generic,}// +TEXINPUTS.frpdftex = .;$TEXMF/tex/{french,plain,generic,}// + +% Earlier entries override later ones, so put this generic one last. +TEXINPUTS = .;$TEXMF/tex/{$progname,generic,}// + +% ttf2tfm. +TTF2TFMINPUTS = .;$TEXMF/ttf2pk// + +% Metafont, MetaPost inputs. +MFINPUTS = .;$TEXMF/metafont//;{$TEXMF/fonts,$VARTEXFONTS}/source// +MPINPUTS = .;$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 = .;$TEXMF/web2c{/$engine,} +MFBASES = .;$TEXMF/web2c{/$engine,} +MPMEMS = .;$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 = .;$TEXMF/web2c +MFPOOL = ${TEXPOOL} +MPPOOL = ${TEXPOOL} + +% support the original xdvi. Must come before the generic settings. +PKFONTS.XDvi = .;$TEXMF/%s;$VARTEXFONTS/pk/{%m,modeless}// +VFFONTS.XDvi = .;$TEXMF/%s +PSHEADERS.XDvi = .;$TEXMF/%q{dvips,fonts/type1}// +TEXPICTS.XDvi = .;$TEXMF/%q{dvips,tex}// + +% Device-independent font metric files. +VFFONTS = .;$TEXMF/fonts/vf// +TFMFONTS = .;{$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 = .;{$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 = .;$TEXMF/fonts/gf/$MAKETEX_MODE// + +% A backup for PKFONTS and GFFONTS. Not used for anything. +GLYPHFONTS = .;$TEXMF/fonts + +% A place to puth everything that doesn't fit the other font categories. +MISCFONTS = .;$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 = .;$TEXMF/fonts/map/{$progname,pdftex,dvips,}// + +% BibTeX bibliographies and style files. bibtex8 also uses these. +BIBINPUTS = .;$TEXMF/bibtex/bib// +BSTINPUTS = .;$TEXMF/bibtex/{bst,csf}// + +% MlBibTeX. +MLBIBINPUTS = .;$TEXMF/bibtex/bib/{mlbib,}// +MLBSTINPUTS = .;$TEXMF/bibtex/{mlbst,bst}// + +% .ris and .bltxml bibliography formats. +RISINPUTS = .;$TEXMF/bibtex/ris// +BLTXMLINPUTS = .;$TEXMF/bibtex/bltxml// + +% MFT style files. +MFTINPUTS = .;$TEXMF/mft// + +% PostScript headers and prologues (.pro); unfortunately, some programs +% also use this for acessing font files (enc, type1, truetype) +TEXPSHEADERS = .;$TEXMF/{dvips,fonts/{enc,type1,type42,type3}}// +TEXPSHEADERS.gsftopk = .;$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 = /usr/share/fonts + +% PostScript Type 1 outline fonts. +T1FONTS = .;$TEXMF/fonts/type1//;$OSFONTDIR// + +% PostScript AFM metric files. +AFMFONTS = .;$TEXMF/fonts/afm//;$OSFONTDIR// + +% TrueType outline fonts. +TTFONTS = .;$TEXMF/fonts/{truetype,opentype}//;$OSFONTDIR// + +% OpenType outline fonts. +OPENTYPEFONTS = .;$TEXMF/fonts/{opentype,truetype}//;$OSFONTDIR// + +% Type 42 outline fonts. +T42FONTS = .;$TEXMF/fonts/type42// + +% Ligature definition files. +LIGFONTS = .;$TEXMF/fonts/lig// + +% Dvips' config.* files (this name should not start with `TEX'!). +TEXCONFIG = $TEXMF/dvips// + +% Makeindex style (.ist) files. +INDEXSTYLE = .;$TEXMF/makeindex// + +% Font encoding files (.enc). +ENCFONTS = .;$TEXMF/fonts/enc// + +% CMap files. +CMAPFONTS = .;$TEXMF/fonts/cmap// + +% Subfont definition files. +SFDFONTS = .;$TEXMF/fonts/sfd// + +% OpenType feature files (.fea). +FONTFEATURES=.;$TEXMF/fonts/fea// + +% .cid and .cidmap +FONTCIDMAPS=.;$TEXMF/fonts/cid// + +% pdftex config files: +PDFTEXCONFIG = .;$TEXMF/pdftex/{$progname,}// + +% Used by DMP (ditroff-to-mpx), called by makempx -troff. +TRFONTS = /usr{/local,}/share/groff/{current/font,site-font}/devps +MPSUPPORT = .;$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 = /etc +MAILCAPLIBDIR = /etc + +% Default settings for the fontconfig library as used by the Windows +% versions of xetex/xdvipdfmx. On Unixish systems, fontconfig ignores +% this. ConTeXT MkIV (all platforms) also use these values. +% +FONTCONFIG_FILE = fonts.conf +FONTCONFIG_PATH = $TEXMFSYSVAR/fonts/conf +FC_CACHEDIR = $TEXMFSYSVAR/fonts/cache + +% TeX documentation and source files, for use with texdoc and kpsewhich. +TEXDOCS = $TEXMF/doc// +TEXSOURCES = .;$TEXMF/source// + +% Web and CWeb input paths. +WEBINPUTS = .;$TEXMF/web// +CWEBINPUTS = .;$TEXMF/cweb// + +% Omega-related fonts and other files. +OFMFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/{ofm,tfm}// +OPLFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/opl// +OVFFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/{ovf,vf}// +OVPFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/ovp// +OTPINPUTS = .;$TEXMF/omega/otp// +OCPINPUTS = .;$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 = .;$TEXMF/tex4ht// + +%% t4ht utility, sharing files with TeX4ht +TEX4HTFONTSET=alias,iso8859,unicode +TEX4HTINPUTS = .;$TEXMF/tex4ht/base//;$TEXMF/tex4ht/ht-fonts/{$TEX4HTFONTSET}// + +% TeXworks editor configuration and settings +TW_LIBPATH = $TEXMFCONFIG/texworks +TW_INIPATH = $TW_LIBPATH + +% 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/ will not be found. +% +% So, duplicate the TEXINPUTS.*lualatex values as LUAINPUTS.*lualatex. +% The default LUAINPUTS sufficess for luatex and dviluatex. +% +LUAINPUTS.lualatex = .;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXMF/tex/{lualatex,latex,luatex,generic,}// +LUAINPUTS.dvilualatex = .;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXMF/tex/{lualatex,latex,luatex,generic,}// +LUAINPUTS = .;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXMF/tex/{luatex,plain,generic,}// + +% Lua needs to look for binary lua libraries distributed with packages. +CLUAINPUTS = .;$SELFAUTOLOC/lib/{$progname,$engine,}/lua// + +% Architecture independent executables. +TEXMFSCRIPTS = $TEXMF/scripts/{$progname,$engine,}// + +% Other languages. +JAVAINPUTS = .;$TEXMF/scripts/{$progname,$engine,}/java// +PERLINPUTS = .;$TEXMF/scripts/{$progname,$engine,}/perl// +PYTHONINPUTS = .;$TEXMF/scripts/{$progname,$engine,}/python// +RUBYINPUTS = .;$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/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 under texmf/web2c. +% +% For security reasons, it is better not to include . in this path. +% +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 or higher to openout_any=p. They also have no +% features to invoke arbitrary other programs, and no known exploitable +% bugs. All to the best of our knowledge. They also have practical use +% for being called from TeX. +% +shell_escape_commands = \ +bibtex,bibtex8,\ +kpsewhich,\ +makeindex,\ +repstopdf,\ + +% we'd like to allow: +% 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. +% (img)convert (ImageMagick) - delegates.mgk possible misconfig, besides, +% without Unix convert it hardly seems worth it, and Windows convert +% is something completely different that destroys filesystems, so skip. +% 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 = \ + {!!$TEXMFMAIN,!!$TEXMFLOCAL,!!$TEXMFDIST}/scripts/{$progname,$engine,}// + +% Allow TeX \openin, \openout, or \input 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 "dotfiles". +% p (paranoid) : as `r' and disallow going to parent directories, and +% restrict absolute paths to be under $TEXMFOUTPUT. +openout_any = p +openin_any = a + +% Write .log/.dvi/etc. files here, if the current directory is unwritable. +%TEXMFOUTPUT = /tmp + +% 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 + +% 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. +% Particular programs can and do override these settings, for example +% dvips's -M option. Your first chance to specify whether the scripts +% are invoked by default is at configure time. +% +% 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 = 0 +%MKTEXMF = 0 +%MKTEXTFM = 0 +%MKTEXFMT = 0 +%MKOCP = 0 +%MKOFM = 0 + +% 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 + +% 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 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 (and Metafont). +% +% If you want to change some of these sizes only for a certain TeX +% variant, the usual dot notation works, e.g., +% main_memory.hugetex = 20000000 +% +% 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. +% +% For some xy-pic samples, you may need as much as 700000 words of memory. +% For the vast majority of documents, 60000 or less will do. +% +main_memory = 3000000 % 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 = 3000000 + +% 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 = 200000 + +% Max number of characters in all strings, including all error messages, +% help texts, font names, control sequences. These values apply to TeX. +pool_size = 3250000 +% 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 + +% 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 = 1000000 + +hyph_size = 8191 % prime number of hyphenation exceptions, >610, <32767. + % http://primes.utm.edu/curios/page.php/8191.html +nest_size = 500 % simultaneous semantic levels (e.g., groups) +max_in_open = 15 % simultaneous input files and error insertions, + % also applies to MetaPost +param_size = 10000 % simultaneous macro parameters, also applies to MP +save_size = 50000 % for saving values outside current group +stack_size = 5000 % simultaneous input sources + +% 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. + +% 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. +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 = 250 +glob_str_size = 5000 +max_strings.bibtex = 35307 +max_strings.bibtex8 = 35307 +max_strings.bibtexu = 35307 +max_strings.pbibtex = 35307 + +% GFtype only. +line_length.gftype = 500 +max_rows.gftype = 8191 +max_cols.gftype = 8191 |