有人可以向我解释如何编译此处提供的 LuaTeX 源文件吗: http://michel.quercia.free.fr/cours-MP.tgz 以及宏的文件 http://michel.quercia.free.fr/montchapet.tgz
在 Fedora 上,我输入了lualatex cours-MP.tex
以下日志:
This is LuaHBTeX, Version 1.12.0 (TeX Live 2020)
restricted system commands enabled.
(./cours-MP.tex
LaTeX2e <2020-02-02> patch level 5
L3 programming layer <2020-04-06> (./cours.tex (./montchapet.tex
! Undefined control sequence.
l.280 {\let\@tmp\rm\xdef\rm{\@tmp
\def\noexpand\euro{{\noexpand\eurofont@rm e}}}
编辑:另一台服务器获取文件:
https://rpidejr.zapto.org/f/6346ef88c8194da1b1aa/ https://rpidejr.zapto.org/f/28b2a6641ae643cdb01d/
答案1
文档是用 PlainTeX 而不是 LaTeX 编写的。(你怎么看出来的?驱动程序文件cours-MP.tex
使用\eject
和\bye
不不是使用\documentclass
应该是明显的赠品。)因此,您必须使用luatex
而不是lualatex
来编译文件。
顺便说一句,在子文件的第 267 行variable-réelle.tex
,应该更改=\limits^{\text{def}}
为\mathop{=}\limits^{\text{def}}
,以使代码在当前版本的 LuaTeX 下可编译。(对于 TeXLive2021,这是版本 1.13.0。)
在旁边:正如@HenriMenke 在评论部分指出的那样,=\limits
在 LuaTeX 0.78 版中,在语法上是合法的,随 TL2014 一起发布。(AFAICT,=\limits
在任何版本的 pdfTeX 中,语法上都是不合法的。)OP 链接中提供的文件都带有日期戳 2014 和 2015;这可以解释为什么 Michel Quercia 能够写成=\limits
。正如@HenriMenke 进一步指出的那样,最好的解决方法实际上是替换
=\limits^{\text{def}}
和
\mathrel{\mathop{=}\limits^{\text{def}}}
如同=
(大多数情况下?总是?)关系运算符。
由于文档使用光栅字体,因此请做好准备,第一次编译运行可能需要两分钟或更长时间才能完成。Concrete Roman
这要求系统在第一次编译文档时生成大量的 gf 和 pk 字体文件。任何后续编译运行都应该快得多。