make4ht 在 TeXLive2023 中失败,但在 TexLive2022 中可以工作;pdflatex 在两种情况下都可以工作 (\pdfstringdef)

make4ht 在 TeXLive2023 中失败,但在 TexLive2022 中可以工作;pdflatex 在两种情况下都可以工作 (\pdfstringdef)

这个问题与 Tikz 包等不同。

我正在编写此文档:

就像在相应的Makefile

# Building static HTML requires `make4ht`
# Works with existing environment
html:
        make4ht $(DELIVERABLE) -a debug mathjax -c speed-manual.cfg -d web && \
        mv ./web/$(DELIVERABLE).html ./web/index.html && \
        rm $(DELIVERABLE).html $(DELIVERABLE).css

将我们的系统升级到 TeXLive 2023 后,开始出现以下错误。它只发生在 和 上,make4ht而不会发生pdflatex。如果我让它运行,它似乎会产生连贯的输出,但会阻止自动化。我不得不恢复到 TeXLive 2022,错误就消失了。

(/encs/pkg/texlive-20230324/root/texmf-dist/tex/latex/listings/lstlang1.sty)
(../src/tcsh.sh) [30] [31] [32] [33] [34] [35] [36] [37] [38] [39]
(../src/tmpdir.sh) [40]) [41] [42] [43] [44] (./scheduler-job-examples.tex
[45] [46] (../src/fluent.sh) [47] [48] [49] [50] [51] [52] [53] [54] [55]
[56] [57]) [58] (./scheduler-tips.tex [59]) [60] [61] (./scheduler-faq.tex
[62] [63] [64] [65] [66] [67] [68] [69] [70] [71]) [72] [73]
(./speed-manual.bbl [74]) [75] [76]

enddocument/afterlastpage: lastpage setting LastPage.
! Undefined control sequence.
<argument> ...Hy@unicodefalse \Hy@PageAnchorSlide 
                                                  \pdfstringdef \@the@H@page...
l.659 \end{document}
                    
? 
(./speed-manual.aux) )
Output written on speed-manual.dvi (76 pages, 207752 bytes).
Transcript written on speed-manual.log.

我该如何解决这个问题并转到 TeXLive 2023?

答案1

顺便说一句,几天前我也收到了完全相同的错误报告,并在一小时前将修复程序发布到了 TeX4ht 源中。

以下是 MWE:

\documentclass{book}
\usepackage{lastpage}
\usepackage{hyperref}


\begin{document}

Test

\end{document}

看起来 Lastpage 包使用了内部的 Hyperref 命令\Hy@PageAnchorSlide,但是 Hyperref 在 TeX4ht 模式下没有定义它。

作为修复,请使用以下配置文件:

\Preamble{xhtml}
\makeatletter
  \def\Hy@PageAnchorSlidesPlain{}%
  \def\Hy@PageAnchorSlide{}%
\makeatother
\begin{document}
\EndPreamble

相关内容