我使用 LaTeX 满足日常需求,但为了避免创建过于繁琐的文档,我试图更好地了解 TeX 引擎本身。作为其中的一部分,我正在尝试使用 TeX(即tex
,而不是 LaTeX)。
现在tex
实际上加载了纯 TeX。这很好,但有时我发现自己想知道命令(我在这里使用这个术语的含义很宽泛)是纯 TeX 定义的原始命令还是宏,所以我想知道是否有一种不加载的方法来运行 TeX plain.fmt
。
发现这个问题我假定这可以通过使用virtex
而不是来完成tex
,但在我的 MiKTeX 安装中virtex
也会加载plain.fmt
:
$ virtex
This is TeX, Version 3.14159265 (MiKTeX 2.9.7250 64-bit)
**\relax
*\show\fmtname
> \fmtname=macro:
->plain.
<*> \show\fmtname
? x
No pages of output.
Transcript written on texput.log.
$
那么,我是不是做错了什么(virtex
可能误解了 的确切目的),或者这是 MiKTeX 中的一个错误?我能做些什么来修补 ,,primitive'' TeX,而不是(或除了)普通的 TeX?
答案1
virtex
也不随 texlive 一起发布,您可以使用--ini
选项在 initex 模式下启动 tex 进行此类实验。这是 texlive 2019,但我知道 miktex 应该是一样的
$ tex --ini
This is TeX, Version 3.14159265 (TeX Live 2019) (INITEX)
**\relax
*\show\fmtname
> \fmtname=undefined.
<*> \show\fmtname
?
*\showthe\hsize
> 0.0pt.
<*> \showthe\hsize
?
*a
*\end
[0]
Output written on texput.dvi (1 page, 128 bytes).
Transcript written on texput.log.
您可以始终使用 initex,也可以将其用于\dump
自定义 virtex 格式,然后使用
tex \&myvirtex
在正常的 tex 运行中使用该格式。