Issue running ConTeXt from TeX Live 2019 on Alpine Linux 3.12
I'd like to run ConTeXt on Alpine Linux (ultimately, to run it on an iPad with the iSH app). I am currently testing it with Docker. This is what I have done: docker pull econcz/x86-alpine-glibc:ish-import docker run -it econcz/x86-alpine-glibc:ish-import /bin/sh cp /etc/apk/repositories /tmp/repositories cat /etc/os-release ALPINE_VERSION=3.12 # Set accordingly to previous command echo "http://nl.alpinelinux.org/alpine/v${ALPINE_VERSION}/main/" | tee /etc/apk/repositories echo "http://nl.alpinelinux.org/alpine/v${ALPINE_VERSION}/community/" | tee -a /etc/apk/repositories apk update This installs and configures repos for Alpine Linux 3.12. Then, I install TeX Live as follows: apk add texlive-full texlive-xetex texlive-luatex texlive-dev apk add ghostscript ghostscript-fonts ghostscript-dev apk add graphicsmagick graphicsmagick-dev Then, I run `mtxrun --generate`, which exits instantly with the output reported below. However, that is apparently not enough. I still get: $ context Hello-world.tex mtxrun | unknown script 'context.lua' or 'mtx-context.lua' $ context --version mtxrun | unknown script 'context.lua' or 'mtx-context.lua' $ mtxrun --version mtxrun | ConTeXt TDS Runner Tool 1.32 mtxrun | source path $ mtxrun --script context mtxrun | unknown script 'context.lua' or 'mtx-context.lua' $ luatools --generate mtxrun | unknown script 'base.lua' or 'mtx-base.lua' $ find / -name context.lua /usr/share/texmf-dist/scripts/context/lua/context.lua $ find / -name mtx-context.lua /usr/share/texmf-dist/scripts/context/lua/mtx-context.lua $ find / -name base.lua [Nothing found] $ find / -name mtx-base.lua /usr/share/texmf-dist/scripts/context/lua/mtx-base.lua Anyone running ConTeXt on Alpine? Any idea what is wrong? Nicola
mtxrun --generate resolvers | resolving | variable 'SELFAUTOLOC' set to '/usr/bin' resolvers | resolving | variable 'SELFAUTODIR' set to '/usr' resolvers | resolving | variable 'SELFAUTOPARENT' set to '.' resolvers | resolving | variable 'TEXMFCNF' set to '' resolvers | resolving | variable 'TEXMF' set to '' resolvers | resolving | variable 'TEXOS' set to 'usr' resolvers | resolving | resolvers | resolving | using configuration specification 'home:texmf/web2c;{selfautoloc:,selfautoloc:/share/texmf-local/web2c,selfautoloc:/share/texmf-dist/web2c,selfautoloc:/share/texmf/web2c,selfautoloc:/texmf-local/web2c,selfautoloc:/texmf-dist/web2c,selfautoloc:/texmf/web2c,selfautodir:,selfautodir:/share/texmf-local/web2c,selfautodir:/share/texmf-dist/web2c,selfautodir:/share/texmf/web2c,selfautodir:/texmf-local/web2c,selfautodir:/texmf-dist/web2c,selfautodir:/texmf/web2c,$SELFAUTOGRANDPARENT/texmf-local/web2c,selfautoparent:,selfautoparent:/share/texmf-local/web2c,selfautoparent:/share/texmf-dist/web2c,selfautoparent:/share/texmf/web2c,selfautoparent:/texmf-local/web2c,selfautoparent:/texmf-dist/web2c,selfautoparent:/texmf/web2c}' resolvers | resolving | resolvers | resolving | looking for regular 'texmfcnf.lua' on given path '/root/texmf/web2c' from specification 'home:texmf/web2c' resolvers | resolving | looking for regular 'texmfcnf.lua' on weird path '/usr/bin' from specification 'selfautoloc:' resolvers | resolving | looking for regular 'texmfcnf.lua' on given path '/usr/bin/share/texmf-local/web2c' from specification 'selfautoloc:/share/texmf-local/web2c' resolvers | resolving | looking for regular 'texmfcnf.lua' on given path '/usr/bin/share/texmf-dist/web2c' from specification 'selfautoloc:/share/texmf-dist/web2c' resolvers | resolving | looking for regular 'texmfcnf.lua' on given path '/usr/bin/share/texmf/web2c' from specification 'selfautoloc:/share/texmf/web2c' resolvers | resolving | looking for regular 'texmfcnf.lua' on given path '/usr/bin/texmf-local/web2c' from specification 'selfautoloc:/texmf-local/web2c' resolvers | resolving | looking for regular 'texmfcnf.lua' on given path '/usr/bin/texmf-dist/web2c' from specification 'selfautoloc:/texmf-dist/web2c' resolvers | resolving | looking for regular 'texmfcnf.lua' on given path '/usr/bin/texmf/web2c' from specification 'selfautoloc:/texmf/web2c' resolvers | resolving | looking for regular 'texmfcnf.lua' on weird path '/usr' from specification 'selfautodir:' resolvers | resolving | looking for regular 'texmfcnf.lua' on given path '/usr/share/texmf-local/web2c' from specification 'selfautodir:/share/texmf-local/web2c' resolvers | resolving | looking for regular 'texmfcnf.lua' on given path '/usr/share/texmf-dist/web2c' from specification 'selfautodir:/share/texmf-dist/web2c' resolvers | resolving | found regular configuration file '/usr/share/texmf-dist/web2c/texmfcnf.lua' resolvers | resolving | looking for regular 'texmfcnf.lua' on given path '/usr/share/texmf/web2c' from specification 'selfautodir:/share/texmf/web2c' resolvers | resolving | looking for regular 'texmfcnf.lua' on given path '/usr/texmf-local/web2c' from specification 'selfautodir:/texmf-local/web2c' resolvers | resolving | looking for regular 'texmfcnf.lua' on given path '/usr/texmf-dist/web2c' from specification 'selfautodir:/texmf-dist/web2c' resolvers | resolving | looking for regular 'texmfcnf.lua' on given path '/usr/texmf/web2c' from specification 'selfautodir:/texmf/web2c' resolvers | resolving | looking for regular 'texmfcnf.lua' on given path '$SELFAUTOGRANDPARENT/texmf-local/web2c' from specification '$SELFAUTOGRANDPARENT/texmf-local/web2c' resolvers | resolving | looking for regular 'texmfcnf.lua' on weird path '.' from specification 'selfautoparent:' resolvers | resolving | looking for regular 'texmfcnf.lua' on given path './share/texmf-local/web2c' from specification 'selfautoparent:/share/texmf-local/web2c' resolvers | resolving | looking for regular 'texmfcnf.lua' on given path './share/texmf-dist/web2c' from specification 'selfautoparent:/share/texmf-dist/web2c' resolvers | resolving | looking for regular 'texmfcnf.lua' on given path './share/texmf/web2c' from specification 'selfautoparent:/share/texmf/web2c' resolvers | resolving | looking for regular 'texmfcnf.lua' on given path './texmf-local/web2c' from specification 'selfautoparent:/texmf-local/web2c' resolvers | resolving | looking for regular 'texmfcnf.lua' on given path './texmf-dist/web2c' from specification 'selfautoparent:/texmf-dist/web2c' resolvers | resolving | looking for regular 'texmfcnf.lua' on given path './texmf/web2c' from specification 'selfautoparent:/texmf/web2c' resolvers | resolving | resolvers | resolving | loading configuration file 'selfautodir:/share/texmf-dist/web2c/texmfcnf.lua' resolvers | resolving | resolvers | resolving | locating list of 'home:.texlive2020/texmf-config' (runtime) (tree:///home:.texlive2020/texmf-config) resolvers | methods | resolving, method 'locators', how 'uri', handler 'tree', argument 'tree:///home:.texlive2020/texmf-config' resolvers | trees | locator 'home:.texlive2020/texmf-config' not found resolvers | resolving | locating list of 'home:texmf' (runtime) (tree:///home:texmf) resolvers | methods | resolving, method 'locators', how 'uri', handler 'tree', argument 'tree:///home:texmf' resolvers | trees | locator 'home:texmf' not found resolvers | resolving | locating list of 'selfautoparent:texmf-config' (cached) resolvers | methods | resolving, method 'locators', how 'uri', handler 'file', argument 'selfautoparent:texmf-config' resolvers | files | file locator 'selfautoparent:texmf-config' not found resolvers | resolving | locating list of 'selfautoparent:texmf-var' (cached) resolvers | methods | resolving, method 'locators', how 'uri', handler 'file', argument 'selfautoparent:texmf-var' resolvers | files | file locator 'selfautoparent:texmf-var' not found resolvers | resolving | locating list of 'selfautoparent:texmf-project' (cached) resolvers | methods | resolving, method 'locators', how 'uri', handler 'file', argument 'selfautoparent:texmf-project' resolvers | files | file locator 'selfautoparent:texmf-project' not found resolvers | resolving | locating list of 'selfautoparent:texmf-fonts' (cached) resolvers | methods | resolving, method 'locators', how 'uri', handler 'file', argument 'selfautoparent:texmf-fonts' resolvers | files | file locator 'selfautoparent:texmf-fonts' not found resolvers | resolving | locating list of '.' (cached) resolvers | methods | resolving, method 'locators', how 'uri', handler 'file', argument '.' resolvers | files | file locator '.' found as '.' resolvers | resolving | hash '.' appended resolvers | resolving | locating list of 'selfautoparent:texmf-dist' (cached) resolvers | methods | resolving, method 'locators', how 'uri', handler 'file', argument 'selfautoparent:texmf-dist' resolvers | files | file locator 'selfautoparent:texmf-dist' not found resolvers | resolving | resolvers | methods | resolving, method 'generators', how 'uri', handler 'file', argument '.' resolvers | expansions | scanning path '.', branch '.' resolvers | expansions | 305 files found on 22 directories with 39 uppercase remappings resolvers | resolving | resolvers | resolving | saving tree '.' resolvers | caches | hashing tree '.', hash '5058f1af8388633f609cadb75a75dc9d' resolvers | caches | hashing tree 'selfautodir:/share/texmf-dist/web2c/texmfcnf.lua', hash '0399a8df3aef8d154781d0a9c2b8e28d' resolvers | caching | preparing 'files' for '.' resolvers | caching | category 'files', cachename '.' saved in '/root/.texlive2020/texmf-var/luatex-cache/context/0399a8df3aef8d154781d0a9c2b8e28d/trees/5058f1af8388633f609cadb75a75dc9d.lua' system | lua | compiling '/root/.texlive2020/texmf-var/luatex-cache/context/0399a8df3aef8d154781d0a9c2b8e28d/trees/5058f1af8388633f609cadb75a75dc9d.lua' into '/root/.texlive2020/texmf-var/luatex-cache/context/0399a8df3aef8d154781d0a9c2b8e28d/trees/5058f1af8388633f609cadb75a75dc9d.luc' system | lua | dumping '/root/.texlive2020/texmf-var/luatex-cache/context/0399a8df3aef8d154781d0a9c2b8e28d/trees/5058f1af8388633f609cadb75a75dc9d.lua' into '/root/.texlive2020/texmf-var/luatex-cache/context/0399a8df3aef8d154781d0a9c2b8e28d/trees/5058f1af8388633f609cadb75a75dc9d.luc' stripped resolvers | caching | 'files' compiled to '/root/.texlive2020/texmf-var/luatex-cache/context/0399a8df3aef8d154781d0a9c2b8e28d/trees/5058f1af8388633f609cadb75a75dc9d.luc' mtxrun | mtxrun | elapsed lua time: 0.056 seconds
On 30 Apr 2021, at 19:53, Nicola
wrote: I'd like to run ConTeXt on Alpine Linux (ultimately, to run it on an iPad with the iSH app). I am currently testing it with Docker. This is what I have done:
docker pull econcz/x86-alpine-glibc:ish-import
Why is your first line not $ docker pull alpine ? I would start with that then test each new step at the interactive shell before adding to the compose file and moving onto the next step. — Bruce Horrocks Hampshire, UK
On 2021-05-01, Bruce Horrocks
On 30 Apr 2021, at 19:53, Nicola
wrote: I'd like to run ConTeXt on Alpine Linux (ultimately, to run it on an iPad with the iSH app). I am currently testing it with Docker. This is what I have done:
docker pull econcz/x86-alpine-glibc:ish-import
Why is your first line not
$ docker pull alpine
I was following the documentation of iSH, which is where I want to use the container eventually. But I may probably use the alpine image as well, which is more up to date and allows me to install TeX Live 2020.
I would start with that then test each new step at the interactive shell before adding to the compose file and moving onto the next step.
Unfortunately, even with the image above I get the same errors. Nicola
On 1 May 2021, at 21:35, Nicola
wrote: On 2021-05-01, Bruce Horrocks
wrote: On 30 Apr 2021, at 19:53, Nicola
wrote: I'd like to run ConTeXt on Alpine Linux (ultimately, to run it on an iPad with the iSH app). I am currently testing it with Docker. This is what I have done:
docker pull econcz/x86-alpine-glibc:ish-import
Why is your first line not
$ docker pull alpine
I was following the documentation of iSH, which is where I want to use the container eventually. But I may probably use the alpine image as well, which is more up to date and allows me to install TeX Live 2020.
I would start with that then test each new step at the interactive shell before adding to the compose file and moving onto the next step.
Unfortunately, even with the image above I get the same errors.
Sorry for the late reply - I missed this in the thread. You're not going to be able to get the Docker container to run on the iPad if that's what you were ultimately hoping. This is because of the different processor types used by most PCs versus the iPad. As far as I know there is no way to get Docker installed on a PC to cross-compile for the ARM architecture of an iPad; and even if you could, the resulting image would have to be cryptographically signed by a registered Apple developer and then signed by Apple or it won't run. The iSH documentation that I briefly looked at used a 'side-load' technique i.e. relied on what's called a 'jailbroken' iPad. This invalidates your warranty yadda yadda and you don't really want to go there except perhaps for the intellectual exercise. The next best alternative would be to run TeX Live plus LMTX on a PC and connect to it remotely using the iPad. This could be via a text-only terminal app or a remote desktop app. The remote PC that you connect to could be yours at home (cheap but carries a security risk unless you know what you're doing) or in the cloud (requires a subscription but the security is less of an issue since you build the machine to be disposable on the assumption that hackers will get to it). Either way, I don't think Docker is the first choice solution (unless, perhaps, you have a home NAS that supports Docker - yet another option). If you still want to build a Docker container then please say so - as I'm sure it could be done. — Bruce Horrocks Hampshire, UK
On 2021-05-02, Bruce Horrocks
On 1 May 2021, at 21:35, Nicola
wrote: On 2021-05-01, Bruce Horrocks
wrote: On 30 Apr 2021, at 19:53, Nicola
wrote: I'd like to run ConTeXt on Alpine Linux (ultimately, to run it on an iPad with the iSH app). I am currently testing it with Docker. This is what I have done:
docker pull econcz/x86-alpine-glibc:ish-import
Why is your first line not
$ docker pull alpine
I was following the documentation of iSH, which is where I want to use the container eventually. But I may probably use the alpine image as well, which is more up to date and allows me to install TeX Live 2020.
I would start with that then test each new step at the interactive shell before adding to the compose file and moving onto the next step.
Unfortunately, even with the image above I get the same errors.
Sorry for the late reply - I missed this in the thread.
You're not going to be able to get the Docker container to run on the iPad if that's what you were ultimately hoping.
Sorry, my explanation of what I am trying to achieve was a bit too terse. There is a little wonderful app on the App Store, called iSH (https://github.com/ish-app/ish), which essentially allows you to run a 32-bit x86 Alpine Linux distribution on the iPad. One feature of the app is that it can import and mount several "file systems". One way to create such a file system is to export a Docker container. So, what one can do is create a Docker container in some other device (I use my laptop), configure it as desired, then export it into a .tar archive, copy it into the iPad, and import it into iSH. This is better than installing/building packages directly inside the app, because (a) compiling on the iPad is extremely slow, and (b) some packages may raise errors if one tries to install them inside the app (TeX Live being one of them: this link explains the issue and the Docker workaround: https://github.com/ish-app/ish/issues/1123). iSH emulates x86_32 and uses Musl. AFAICS, ConTeXt LMTX currently only provides a 64-bit download for Linux Musl. So, the next best alternative is to use ConTeXt from TeX Live. So, this is where I am at: I am trying to make ConTeXt work inside an x86 Alpine Linux Musl container, using the official Alpine package. Nicola
On 5/3/2021 10:29 AM, Nicola wrote:
So, this is where I am at: I am trying to make ConTeXt work inside an x86 Alpine Linux Musl container, using the official Alpine package. Then you need to bribe Mojca for an extra musl build client,
Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
On 3 May 2021, at 09:29, Nicola
Sorry, my explanation of what I am trying to achieve was a bit too terse.
There is a little wonderful app on the App Store, called iSH (https://github.com/ish-app/ish), which essentially allows you to run a 32-bit x86 Alpine Linux distribution on the iPad. One feature of the app is that it can import and mount several "file systems". One way to create such a file system is to export a Docker container.
So, what one can do is create a Docker container in some other device (I use my laptop), configure it as desired, then export it into a .tar archive, copy it into the iPad, and import it into iSH. This is better than installing/building packages directly inside the app, because (a) compiling on the iPad is extremely slow, and (b) some packages may raise errors if one tries to install them inside the app (TeX Live being one of them: this link explains the issue and the Docker workaround: https://github.com/ish-app/ish/issues/1123).
iSH emulates x86_32 and uses Musl. AFAICS, ConTeXt LMTX currently only provides a 64-bit download for Linux Musl. So, the next best alternative is to use ConTeXt from TeX Live.
So, this is where I am at: I am trying to make ConTeXt work inside an x86 Alpine Linux Musl container, using the official Alpine package.
Thank-you for the explanation - that's much clearer. I've experimented a bit with Docker and I've managed to get a stand-alone LMTX install to work under a 32-bit Alpine Linux that has had the glibc library added. This should - fingers crossed - work in iSH. You need to set up a working directory containing: - the 32-bit LMTX downloaded from "http://lmtx.pragma-ade.nl/install-lmtx/context-linux.zip" - the file "Dockerfile" that is attached to this email - the modified LMTX install file "alpine-glibc-install.sh" that is attached to this email - a subdirectory "sources" where you can place a hello world tex file Use the following commands to build and run the container: $ docker build . -t context-alpine-glibc $ docker run -it -v $(pwd)/sources:/src context-alpine-glibc /bin/ash The run command bind mounts the sub-directory "sources" so that it is accessible from within the container as the /src directory.[2] Once you are in the container run these commands to process the hello world document: # cd /src # context hello_world.tex There's no PDF viewer installed so you'll need to view it from the host in "sources". On the Mac this works as expected. Over to you to try in iSH. :-) [1] The install.sh file needs to be hacked because the CPU architecture check (uname -m) returns the word size of the host computer, not the container, so I just hard-coded the values. :-) [2] On Windows use something like: $ docker run -it -v %cd%/sources:/src context-alpine-glibc /bin/ash — Bruce Horrocks Hampshire, UK
On 2021-05-06, Bruce Horrocks
Sorry, my explanation of what I am trying to achieve was a bit too terse.
Thank-you for the explanation - that's much clearer.
I've experimented a bit with Docker and I've managed to get a stand-alone LMTX install to work under a 32-bit Alpine Linux that has had the glibc library added. This should - fingers crossed - work in iSH.
That's great news! I'll try it asap and report back. Thanks for looking into it. Anyway, for Hans and Mojca: I confirm that I was not able to run ConTeXt from the texlive package (TeX Live 2020) of Alpine Linux 3.12 (x86_64). I get the error in my original post to this thread, which I could not solve with the suggested fixes. If other can reproduce it, maybe it's worth reporting upstream to Alpine developers. I can install ConTeXt LMTX just fine in Alpine x86_64, however! Nicola
On 2021-05-07, Nicola
On 2021-05-06, Bruce Horrocks
wrote: Sorry, my explanation of what I am trying to achieve was a bit too terse.
Thank-you for the explanation - that's much clearer.
I've experimented a bit with Docker and I've managed to get a stand-alone LMTX install to work under a 32-bit Alpine Linux that has had the glibc library added. This should - fingers crossed - work in iSH.
That's great news! I'll try it asap and report back. Thanks for looking into it.
Thanks again, your instructions work perfectly in Docker. Unfortunately, for some reason iSH raises an error when trying to import that Docker image: iSH is finnicky about filesystems, apparently—this is noted in their wiki: https://github.com/ish-app/ish/wiki/Install-&-Activate-Alternate-Filesystems Besides, I have found some inconsistencies between texmf.cnf and texmfcnf.lua in the TeX Live distribution that can be installed through apk: for instance, one file used ~/.texlive2019 and the other ~/.texlive2020. There may be other issues, but I am not expert enough. For now, I have given up. I have some hope with another iOS/iPadOS app, a-Shell (https://github.com/holzschu/a-shell), which is what I currently use to typeset LaTeX documents. It allows you to install TeX Live, but for some reason it comes without ConTeXt (it has LuaTeX, though). There is an open request for adding ConTeXt (https://github.com/holzschu/a-shell/issues/208). Nicola
On 2021-05-02, Bruce Horrocks
The iSH documentation that I briefly looked at used a 'side-load' technique i.e. relied on what's called a 'jailbroken' iPad.
I don't know which documentation you have looked at: I can load file systems just fine on a not jailbroken device: https://github.com/ish-app/ish/wiki/Install-&-Activate-Alternate-Filesystems Nicola
On Fri, 30 Apr 2021 at 20:53, Nicola wrote:
This installs and configures repos for Alpine Linux 3.12. Then, I install TeX Live as follows:
apk add texlive-full texlive-xetex texlive-luatex texlive-dev apk add ghostscript ghostscript-fonts ghostscript-dev apk add graphicsmagick graphicsmagick-dev
Then, I run `mtxrun --generate`, which exits instantly with the output reported below. However, that is apparently not enough. I still get:
$ context Hello-world.tex mtxrun | unknown script 'context.lua' or 'mtx-context.lua'
This sounds like a missing or misconfigured texmfcnf.lua (which should be next to texmf.cnf). This would need to be handled by the distribution (Alpine Linux devs). Can you try to locate both files and share the contents? (There may also be multiple copies of them.) Mojca
On 2021-05-01, Mojca Miklavec
On Fri, 30 Apr 2021 at 20:53, Nicola wrote:
Then, I run `mtxrun --generate`, which exits instantly with the output reported below. However, that is apparently not enough. I still get:
$ context Hello-world.tex mtxrun | unknown script 'context.lua' or 'mtx-context.lua'
This sounds like a missing or misconfigured texmfcnf.lua (which should be next to texmf.cnf). This would need to be handled by the distribution (Alpine Linux devs).
Can you try to locate both files and share the contents? (There may also be multiple copies of them.)
I report below the content of the two files, as they are in TeX Live 2020 (I have switched to `docker pull alpine`, as suggested in another post, in which I can install Tex Live 2020). Nicola ======================================================================== ~ # find / -name texmfcnf.lua /usr/share/texmf-dist/web2c/texmfcnf.lua ~ # cat /usr/share/texmf-dist/web2c/texmfcnf.lua -- public domain -- ConTeXt needs a properly expanded TEXMFLOCAL, so here is a -- bit of lua code to make that happen local texmflocal = resolvers.prefixes.selfautoparent(); texmflocal = string.gsub(texmflocal, "20%d%d$", "texmf-local"); return { type = "configuration", version = "1.1.0", date = "2012-05-24", time = "12:12:12", comment = "ConTeXt MkIV configuration file", author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", content = { -- Originally there was support for engines and progname but I don't expect -- other engines to use this file, so first engines were removed. After that -- if made sense also to get rid of progname. At some point specific formats -- will be supported but then as a subtable with fallbacks, which sounds more -- natural. Also, at some point the paths will become tables. For the moment -- I don't care too much about it as extending is easy. variables = { -- The following variable is predefined (but can be overloaded) and in -- most cases you can leve this one untouched. The built-in definition -- permits relocation of the tree. -- -- TEXMFCNF = "{selfautodir:,selfautoparent:}{,{/share,}/texmf{-local,}/web2c}" -- -- more readable than "selfautoparent:{/texmf{-local,}{,/web2c},}}" is: -- -- TEXMFCNF = { -- "selfautoparent:/texmf-local", -- "selfautoparent:/texmf-local/web2c", -- "selfautoparent:/texmf-dist", -- "selfautoparent:/texmf/web2c", -- "selfautoparent:", -- } -- only used for FONTCONFIG_PATH & TEXMFCACHE in TeX Live TEXMFSYSVAR = "selfautoparent:texmf-var", TEXMFVAR = "home:.texlive2020/texmf-var", -- We have only one cache path but there can be more. The first writable one -- will be chosen but there can be more readable paths. TEXMFCACHE = "$TEXMFSYSVAR;$TEXMFVAR", TEXMFCONFIG = "home:.texlive2020/texmf-config", -- I don't like this texmf under home and texmf-home would make more -- sense. One never knows what installers put under texmf anywhere and -- sorting out problems will be a pain. But on the other hand ... home -- mess is normally under the users own responsibility. -- -- By using prefixes we don't get expanded paths in the cache __path__ -- entry. This makes the tex root relocatable. TEXMFOS = "selfautodir:", TEXMFDIST = "selfautoparent:texmf-dist", TEXMFLOCAL = texmflocal, TEXMFSYSCONFIG = "selfautoparent:texmf-config", TEXMFFONTS = "selfautoparent:texmf-fonts", TEXMFPROJECT = "selfautoparent:texmf-project", TEXMFHOME = "home:texmf", -- TEXMFHOME = os.name == "macosx" and "home:Library/texmf" or "home:texmf", -- We need texmfos for a few rare files but as I have a few more bin trees -- a hack is needed. Maybe other users also have texmf-platform-new trees. TEXMF = "{$TEXMFCONFIG,$TEXMFHOME,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFPROJECT,!!$TEXMFFONTS,!!$TEXMFLOCAL,!!$TEXMFDIST}", TEXFONTMAPS = ".;$TEXMF/fonts/data//;$TEXMF/fonts/map/{pdftex,dvips}//", ENCFONTS = ".;$TEXMF/fonts/data//;$TEXMF/fonts/enc/{dvips,pdftex}//", VFFONTS = ".;$TEXMF/fonts/{data,vf}//", TFMFONTS = ".;$TEXMF/fonts/{data,tfm}//", T1FONTS = ".;$TEXMF/fonts/{data,type1}//;$OSFONTDIR", AFMFONTS = ".;$TEXMF/fonts/{data,afm}//;$OSFONTDIR", TTFONTS = ".;$TEXMF/fonts/{data,truetype}//;$OSFONTDIR", OPENTYPEFONTS = ".;$TEXMF/fonts/{data,opentype}//;$OSFONTDIR", CMAPFONTS = ".;$TEXMF/fonts/cmap//", FONTFEATURES = ".;$TEXMF/fonts/{data,fea}//;$OPENTYPEFONTS;$TTFONTS;$T1FONTS;$AFMFONTS", FONTCIDMAPS = ".;$TEXMF/fonts/{data,cid}//", OFMFONTS = ".;$TEXMF/fonts/{data,ofm,tfm}//", OVFFONTS = ".;$TEXMF/fonts/{data,ovf,vf}//", TEXINPUTS = ".;$TEXMF/tex/{context,plain/base,generic}//", MPINPUTS = ".;$TEXMF/metapost/{context,base,}//", -- In the next variable the inputs path will go away. TEXMFSCRIPTS = ".;$TEXMF/scripts/context/{lua,ruby,python,perl}//;$TEXINPUTS", PERLINPUTS = ".;$TEXMF/scripts/context/perl", PYTHONINPUTS = ".;$TEXMF/scripts/context/python", RUBYINPUTS = ".;$TEXMF/scripts/context/ruby", LUAINPUTS = ".;$TEXINPUTS;$TEXMF/scripts/context/lua//", CLUAINPUTS = ".;$SELFAUTOLOC/lib/{context,luatex,}/lua//", -- Not really used by MkIV so they might go away. BIBINPUTS = ".;$TEXMF/bibtex/bib//", BSTINPUTS = ".;$TEXMF/bibtex/bst//", -- Experimental ICCPROFILES = ".;$TEXMF/tex/context/colors/{icc,profiles}//;$OSCOLORDIR", -- A few special ones that will change some day. FONTCONFIG_FILE = "fonts.conf", FONTCONFIG_PATH = "$TEXMFSYSVAR/fonts/conf", }, -- We have a few reserved subtables. These control runtime behaviour. The -- keys have names like 'foo.bar' which means that you have to use keys -- like ['foo.bar'] so for convenience we also support 'foo_bar'. directives = { -- There are a few variables that determine the engines -- limits. Most will fade away when we close in on version 1. ["luatex.expanddepth"] = "10000", -- 10000 ["luatex.hashextra"] = "100000", -- 0 ["luatex.nestsize"] = "1000", -- 50 ["luatex.maxinopen"] = "500", -- 15 ["luatex.maxprintline"] = " 10000", -- 79 ["luatex.maxstrings"] = "500000", -- 15000 -- obsolete ["luatex.paramsize"] = "25000", -- 60 ["luatex.savesize"] = "50000", -- 4000 ["luatex.stacksize"] = "10000", -- 300 -- A few process related variables come next. -- ["system.checkglobals"] = "10", -- ["system.nostatistics"] = "yes", ["system.errorcontext"] = "10", ["system.compile.cleanup"] = "no", -- remove tma files ["system.compile.strip"] = "yes", -- strip tmc files -- The io modes are similar to the traditional ones. Possible values -- are all, paranoid and restricted. ["system.outputmode"] = "restricted", ["system.inputmode"] = "any", -- The following variable is under consideration. We do have protection -- mechanims but it's not enabled by default. ["system.commandmode"] = "any", -- any none list ["system.commandlist"] = "mtxrun, convert, inkscape, gs, imagemagick, curl, bibtex, pstoedit", -- The mplib library support mechanisms have their own -- configuration. Normally these variables can be left as -- they are. ["mplib.texerrors"] = "yes", -- Normally you can leave the font related directives untouched -- as they only make sense when testing. -- ["fonts.autoreload"] = "no", -- ["fonts.otf.loader.method"] = "table", -- table mixed sparse -- ["fonts.otf.loader.cleanup"] = "0", -- 0 1 2 3 -- In an edit cycle it can be handy to launch an editor. The -- preferred one can be set here. -- ["pdfview.method"] = "okular", -- default (often acrobat) xpdf okular }, experiments = { ["fonts.autorscale"] = "yes", }, trackers = { }, }, } ======================================================================== ~ # find / -name texmf.cnf /usr/share/texmf-dist/web2c/texmf.cnf ~ # cat /usr/share/texmf-dist/web2c/texmf.cnf % 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/2020/texmf-dist/web2c/texmf.cnf, % add your custom settings to /some/path/to/texlive/2020/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 = /usr/share % 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 = $SELFAUTOGRANDPARENT/texmf-local % TEXMFSYSVAR, where *-sys store cached runtime data. TEXMFSYSVAR = $TEXMFROOT/texmf-var % TEXMFSYSCONFIG, where *-sys store configuration data. TEXMFSYSCONFIG = $TEXMFROOT/texmf-config % 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 = ~/.texlive2020/texmf-var % TEXMFCONFIG, where texconfig/updmap/fmtutil store configuration data. TEXMFCONFIG = ~/.texlive2020/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 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 % ever defined (the 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 principle 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 = $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 % 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. % On the other hand, if you never want the current directory to be % searched at all, setting TEXMFDOTDIR=/nonesuch should come 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,}// % 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,}// % e-TeX. TEXINPUTS.elatex = $TEXMFDOTDIR;$TEXMF/tex/{latex,generic,}// TEXINPUTS.etex = $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 % 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// % ConTeXt. TEXINPUTS.context = $TEXMFDOTDIR;$TEXMF/tex/{context,plain,generic,}// % 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,}// % ttf2tfm. TTF2TFMINPUTS = $TEXMFDOTDIR;$TEXMF/ttf2pk// % 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}// % .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 on Unixish systems. % 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 = $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 % 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 = {\ $SELFAUTOLOC,\ $SELFAUTOLOC/share/texmf-local/web2c,\ $SELFAUTOLOC/share/texmf-dist/web2c,\ $SELFAUTOLOC/share/texmf/web2c,\ $SELFAUTOLOC/texmf-local/web2c,\ $SELFAUTOLOC/texmf-dist/web2c,\ $SELFAUTOLOC/texmf/web2c,\ \ $SELFAUTODIR,\ $SELFAUTODIR/share/texmf-local/web2c,\ $SELFAUTODIR/share/texmf-dist/web2c,\ $SELFAUTODIR/share/texmf/web2c,\ $SELFAUTODIR/texmf-local/web2c,\ $SELFAUTODIR/texmf-dist/web2c,\ $SELFAUTODIR/texmf/web2c,\ \ $SELFAUTOGRANDPARENT/texmf-local/web2c,\ $SELFAUTOPARENT,\ \ $SELFAUTOPARENT/share/texmf-local/web2c,\ $SELFAUTOPARENT/share/texmf-dist/web2c,\ $SELFAUTOPARENT/share/texmf/web2c,\ $SELFAUTOPARENT/texmf-local/web2c,\ $SELFAUTOPARENT/texmf-dist/web2c,\ $SELFAUTOPARENT/texmf/web2c\ } % % 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. 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,\ extractbb,\ gregorio,\ kpsewhich,\ makeindex,\ repstopdf,\ r-mpost,\ texosquery-jre8,\ % 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. % 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 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 % 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. % 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 % 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, 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 = 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 % 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 = 100000 % 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 = 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, to guess. Used on Windows only. guess_input_kanji_encoding = 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: % 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, % 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
On 4/30/21 8:53 PM, Nicola wrote:
I'd like to run ConTeXt on Alpine Linux (ultimately, to run it on an iPad with the iSH app). I am currently testing it with Docker. This is what I have done: [...] Anyone running ConTeXt on Alpine? Any idea what is wrong?
Hi Nicola, I don’t run Alpine or Docker, but this might help you. mtxrun --script cache --erase && mtxrun --generate BTW, TeX Live 2021 is already available (https://www.tug.org/texlive/). Just in case it helps, Pablo -- http://www.ousia.tk
On 2021-05-01, Pablo Rodriguez
On 4/30/21 8:53 PM, Nicola wrote:
I'd like to run ConTeXt on Alpine Linux (ultimately, to run it on an iPad with the iSH app). I am currently testing it with Docker. This is what I have done: [...] Anyone running ConTeXt on Alpine? Any idea what is wrong?
Hi Nicola,
I don’t run Alpine or Docker, but this might help you.
mtxrun --script cache --erase && mtxrun --generate
Unfortunately, mtxrun --script cache results in the same error I have already posted.
BTW, TeX Live 2021 is already available (https://www.tug.org/texlive/).
I am using the release I can get from the package manager. It seems that Tex Live 2021 has not landed in Alpine's official repos yet. Nicola
participants (5)
-
Bruce Horrocks
-
Hans Hagen
-
Mojca Miklavec
-
Nicola
-
Pablo Rodriguez