通过 ConTeXt 的 LuaTeX-plain 格式学习 Plain TeX

通过 ConTeXt 的 LuaTeX-plain 格式学习 Plain TeX

我尽量简洁地讲:

想要学习 Plain TeX(但具有 UTF-8、mplib、TiKz 等现代便利功能)

非常尊重 ConTeXt 团队。我喜欢这个想法,当我跌倒在此基础上,通过其提供的 LuaTeX 实现了 OTF 支持和 mplib luatex-plain.fmt。以后想使用 ConTeXt,因此继续安装 ConTeXt 并制作上述格式。

展翅高飞,还安装了 TeX Live 2013 (MacTeX & Windows),并学会了使用普通 LuaTeX 版本 ( plain.fmt),以及luaotfload.styluamplib.sty

很高兴继续进行,但是存在问题:

  • TeXLive2013 LuaTeX plain:无法设置数学字体(但确实让它与 ConTeXt 的 LuaTeX-plain 一起工作)。它会在 中查找个人文件$HOME/texmf
  • ConTeXt LuaTeX-plain:无法让它在$HOME/texmf$TEXMF/tex/texmf-local$TEXMF/tex/texmf-projects或中找到非系统安装的字体或输入文件$TEXMF/tex/texmf-fonts,即使这些目录在 处的配置文件中被引用$TEXMF/tex/texmf/web2c/texmf.cnf,我假设文件名解析使用。一定是缺少了某些基本的东西。

哪个最容易修复?TL 的 LuaTeX plain 中的数学字体,还是解析 ConTeXt 的 LuaTeX-plain 中的文件和字体?

在得出结论之前,每次重试和移动文件时都会运行这些命令(其中一些可能是多余的,但无法知道):

mktexlsr
mtxrun --script base --generate 
luatools --generate 
context --generate
luatools --self-update
context --self-update
mtxrun --script fonts --update --force 
mtxrun --script fonts --udpate --simple

此外,luatools --find-filemtxrun --locate可查找相关文件/字体。kpsewhich/where仅当它们位于 中时才可找到$HOME/texmf。但在运行 时使用\input <filename>、 或\font\x = name:xxxx或 则\font\x = file:xxxx不起作用luatex --fmt luatex-plain <filename>.tex

有什么想法吗?厌倦/尴尬地向 ConTeXt 邮件列表发送新手基本问题。不想只是破解它,也想同时制作高质量的文档(尽管是手动排版),并在这个过程中“从头开始”学习。

答案1

我自己的问题的部分答案来自 ConTeXt 邮件列表上的 Aditya Mahajan(逐字回答,但带有格式和链接):

了解 TDS (TeX 目录结构)。

您需要将文件放在$TEXMF/tex/plain/Plain 格式的子目录中才能找到它,或者放在$TEXMF/tex/generic/所有宏包(plain、latex、context)的子目录中才能找到它。

作为实验,放置埃普莱恩中的源文件。没有其他可见副本。对于包含的$HOME/texmf/tex/generic/eplain/文件,命令testdox.tex\input eplain

luatex --fmt luatex-plain testdoc.tex

确实找到了eplain.tex。执行了三个“ generate”命令:

mktexlsr
context --generate
luatools --generate

现在所有这些命令都会找到该文件:

luatools --find-file eplain.tex
mtx-run --locate eplain.tex
kpsewhich eplain.tex

此外,如果其他人在 ConTeXt 中遇到字体位置问题,对于 OTF 字体,以 Alegreya* 为例,我

  1. 创建目录:''$HOME/texmf/fonts/opentype/huerta/alegreya'' 和
  2. 将所有 ''*.otf'' 文件复制到那里。
  3. 通过运行generate上面的“ ”命令,
  4. 然后执行下面的字体更新命令,

\font\x = <font>现在无需在操作系统中安装字体即可工作。

mtxrun --script fonts --update --force
mtxrun --script fonts --update --simple --force

编辑:路径问题已解决。同样适用于 Windows,只需确保您对的设置满意即可%TEXMFHOME%,您可以使用批处理文件进行设置,也可以在中永久设置%TEXMF%\tex\texmf\web2c\texmf.cnf。在开始使用 ConTeXt 的 LuaTeX 之前,我从 Cmd Prompt 控制台运行此ctxenv.cmd文件:

@echo off
:: Sets ConTeXt environment for running ConTeXt tools.
:: NB: This includes setting TEXMFHOME and calling
::     .\tex\setuptex.bat. It also add the ''.\utl''
::     directory to your PATH. This file must live in
::     your ConTeXt base directory. It will set %CTX%
::     for convenience.
::
set CTX=%~dp0
set CTX=%CTX:~0,-1%
set PATH=%CTX%\utl;%CTX%\bin;%PATH%
set TEXMFHOME=%CTX%\local
.\tex\setuptex.bat
:: optional: remove the colons in front of these commands:
::mktexlsr
::context --generate
::luatools --generate

至于 TL 数学字体设置问题,我将改述为一个新问题。

*阿莱格里亚:http://www.ctan.org/tex-archive/fonts/alegreya/

相关内容