这是一个难以重现的问题,多年来一直困扰着我。我报告了它较早,但无济于事。现在我终于能够将其归结为一个非常小的测试案例,我认为最好将其作为一个新问题。这是我的 MWE:
\documentclass{book}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{libertinus}
\usepackage{microtype}
\usepackage{amsmath}
\usepackage{geometry}
\geometry{
paperwidth=127mm,paperheight=203mm,totalwidth=92mm,totalheight=174mm,
includehead,includefoot,marginparwidth=0mm,marginparsep=0mm,
headheight=0mm,headsep=0mm,footskip=9mm,hcentering,heightrounded
}
\setlength{\parindent}{1em}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\fancyhf{}
\fancyfoot[LE]{}
\fancyfoot[RO]{{\tiny{\sffamily\textls[150]{\MakeUppercase{Gesichter der Mathematik}}}\rule[-1.6\dp\strutbox]{.3pt}{1.4\baselineskip}}}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\newcommand\mytext{%
Erst im 20. Jahrhundert kam die volle Wahrheit ans Licht. Die Inhalte des
Buches stammten tatsächlich von Johann, der gute didaktische Aufbau war jedoch
das Werk L'Hospitals. Hinter der Sache stand ein Arrangement, demzufolge
Bernoulli für seine Mathematik bezahlt wurde und im Gegenzug zustimmte, seine
Ergebnisse nicht selbst zu publizieren. Der junge Bernoulli hatte sich quasi
verkauft und das später bereut.
}
\begin{document}
\section*{Whatever}\label{whatever}
\addcontentsline{toc}{section}{Whatever}
\mytext
\mytext
\mytext
\mytext
\mytext
\mytext
\mytext
\end{document}
我使用的是 Windows 10,今天更新了 MikTeX(但问题已经存在好几年了)。如果我使用 选项从 编译此文件TeXWorks
,pdfLaTeX
则一切都正常。如果我使用 控制台窗口编译它pdflatex test.tex
,则最后一段的第一行不完整 - 见下图。(pdflatex test.tex
在 Ubuntu Linux(在 WSL 中运行)上运行良好。)
要在我的 MWE 中引发错误,amsmath
必须存在该包,尽管它没有被使用。此外,\textsl
页脚中的命令似乎是必要的。整个 MWE 非常脆弱:更改一位,错误就消失了。
值得一提的是,以下是日志文件报告的两次运行之间的差异。(我注意到调用的是TeXWorks
而miktex-pdftex.exe
不是pdflatex.exe
。但如果有一个名为的程序pdflatex.exe
,它不应该按预期工作吗?)这里发生了什么?
--- pdflatex.log 2024-04-05 22:23:22.784217000 +0200
+++ texWorks.log 2024-04-05 22:20:31.551568000 +0200
@@ -1,4 +1,4 @@
-This is pdfTeX, Version 3.141592653-2.6-1.40.26 (MiKTeX 24.3.31) (preloaded format=pdflatex 2024.4.5) 5 APR 2024 22:23
+This is pdfTeX, Version 3.141592653-2.6-1.40.26 (MiKTeX 24.3.31) (preloaded format=pdflatex 2024.4.5) 5 APR 2024 22:20
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
@@ -367,16 +367,16 @@
)
Here is how much of TeX's memory you used:
6262 strings out of 474400
- 106989 string characters out of 4507339
- 3925496 words of memory out of 8000000
+ 106989 string characters out of 5757339
+ 1932496 words of memory out of 6000000
28534 multiletter control sequences out of 15000+600000
- 592261 words of font info for 70 fonts, out of 2000000 for 9000
+ 592261 words of font info for 70 fonts, out of 8000000 for 9000
1141 hyphenation exceptions out of 8191
65i,12n,69p,1003b,446s stack positions out of 10000i,1000n,20000p,200000b,200000s
<E:/MikTeX/fonts/type1/public/libertinus-type1/LibertinusSans-Regular.pfb><E:
/MikTeX/fonts/type1/public/libertinus-type1/LibertinusSerif-Bold.pfb><E:/MikTeX
/fonts/type1/public/libertinus-type1/LibertinusSerif-Regular.pfb>
-Output written on test.pdf (2 pages, 261653 bytes).
+Output written on test.pdf (2 pages, 261644 bytes).
PDF statistics:
27 PDF objects out of 1000 (max. 8388607)
0 named destinations out of 1000 (max. 500000)
[更新 2024-04-06]我已将代码(带有建议的调试行)和未压缩的 PDF 文件放在https://www.dropbox.com/scl/fi/ksld8e2db09m39evjncg1/MWE.zip?rlkey=61d9avkrpghs6ecmq6gp9b64o&dl=0
如果我比较这两个 PDF 文件,主要的区别似乎如下(其中第一行来自正确的输出):
[(Erst)-250(im)-250(20.)-250(Jahrhundert)-250(kam)-250(die)-250(v)8(olle)-250(W)60(ahrheit)-250(ans)-250(Licht.)-250(Die)]
[(Erst)]TJ -32626.8 0 Td [(im)-250(20.)-250(Jahrhundert)-250(kam)-250(die)-250(v)8(olle)-250(W)60(ahrheit)-250(ans)-250(Licht.)-250(Die)]
第一个是使用 编译的miktex-pdftex.exe -undump=pdflatex test.tex
,第二个是用 编译的pdflatex.exe test.tex
。 TeXWorks
没有涉及。(我提到这一点是因为有些人误解了我,认为这是 的问题。据我所知,这是发行版TeXWorks
中的一个错误。)MiKTeX
pdflatex
[2024-04-06 第二次更新]翻看我的旧电子邮件,也许我找到了罪魁祸首。几年前,我这样做了(遵循了某人的建议,我忘记了):
initexmf --edit-config-file pdflatex
将其添加到文件并保存:
pool_size=5000000
main_memory=6000000
extra_mem_bot=2000000
font_mem_size=2000000
然后运行这个:
initexmf --dump=pdflatex
使用这些设置,我得到了错误。如果我用一个空的配置文件重复这个过程,错误就消失了。