设置

设置

luahbtex -ini我正在尝试使用和创建二进制转储格式来加快编译时间mylatexformat

但是,根据正在加载的某些包,我收到一个无法理解的错误。

在我个人的研究中,这是https://tex.stackexchange.com/a/690435/53868但需要单独调查。

设置

我在跑步

$ tex --version
TeX 3.141592653 (TeX Live 2023)

mwe.tex

\documentclass[UKenglish]{scrbook}

\usepackage{babel}
\usepackage{lipsum}

% \usepackage{pgfplots}
% \usepackage{amsmath}
% \usepackage{siunitx}
% \usepackage{geometry}


\begin{document}
\title{Lualatex Binary Dumping}
\subtitle{Is dumping with lualatex dumb?}
\subject{Case Studies}
\date{\today}
\maketitle{}

\lipsum[1-20]

\end{document}

要运行的命令

luahbtex  -ini "&lualatex" mylatexformat.ltx mwe

预期行为

mwe.fmt与 m 文件一起创建了一个二进制转储mwe.tex,然后可以在进一步的 lualatex 运行中使用:

lualatex -fmt=mwe mwe

观察到的行为

  • 运行部分中的命令设置文件mwe.tex产生错误消息
    (/usr/local/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend- 
    luatex.def)))
    ! Use of \??? doesn't match its definition.
    <argument> \???  
          ! LaTeX Error: Access to an entry beyond an array's bounds.
    l.208   }
    
    ? 
    ! Emergency stop.
    <argument> \???  
          ! LaTeX Error: Access to an entry beyond an array's bounds.
    l.208   }
    
    同时注释掉以下行
    % \usepackage{lipsum}
    
    使二进制转储过程顺利运行而不会出现错误。该问题似乎与lipsum或有关l3backend-luatex
  • mwe 可以很好地进行编译lualatex mwe.tex,因此问题不在于 lualatex 和 之间的普遍不兼容性lipsum
  • 在其他使用 latex3 的包中进行评论,内存转储也成功运行。

问题

我刚好注意到 lualatex 包的这种行为,但我不明白。我不太关心 lualatex 包,但我想了解那里发生了什么,因为将来我想使用的其他包也会出现同样的问题。因此,我的问题是:

  • lipsum这是仅与和luahbtex或相关的错误吗?
  • 这种行为是否根深蒂固?
  • 这里到底出了什么问题?我该如何提高对此类错误消息的调试技能?
  • 我是否应该继续考虑创建 luahbtex 格式的文件,或者整个过程是否容易出错?

相关内容