我今天安装了 2022 年 3 月 27 日的新版 texlive。我制作了 MWE,它与 pdfLatex 配合得很好。它与“tex4ebook -l myfile.tex”配合得很好。但是,如果我包含最小配置文件(来自 Michal 的指南),我会得到
htlatex:?855 TeX 容量超出,抱歉 [输入堆栈大小=5000]
在过去的两年里,我已经完成了 50 多本电子书,没有遇到什么大问题。
现在 htlatex 运行良好并且 dvi 似乎也正常。
为什么 TeX 容量会溢出?
答案1
我找到了一些我发给你的旧配置文件在过去。就是这个:
\Preamble{xhtml}
\renewcommand\breakhtml{\section[page break]{}}
\makeatletter
\renewcommand{\@seccntformat}[1]{}
\makeatother
\CutAt{section,likesection,part}
\begin{document}
\EndPreamble
我使用此配置文件编译了以下 MWE:
\documentclass{article}
\usepackage{lipsum}
\begin{document}
\chapter{First}
\lipsum[1]
\chapter{Second}
\section{XXXX}
\lipsum[2]
\end{document}
编译使用:
tex4ebook -c config.cfg -a debug sample.tex
但确实失败了:
! TeX capacity exceeded, sorry [input stack size=5000].
\ltx:like ->\ltx:like
\expandafter \let \csname likepart\endcsname \empty \e...
l.7 \CutAt{section,likesection,part}
No pages of output.
Transcript written on sample.log.
[FATAL] make4ht-lib: Fatal error. Command htlatex returned exit code 1
罪魁祸首似乎是\CutAt
命令。它将生成的文档拆分为\section
命令上的单独页面。tex4ebook
现在内部使用此命令来拆分\chapter
书籍类和\section
文章的页面。如果您想使用自定义拆分,现在需要no-cut
使用选项。
我认为正确的配置文件应该是这样的:
\Preamble{xhtml,no-cut}
% \renewcommand\breakhtml{\section[page break]{}}
\makeatletter
\renewcommand{\@seccntformat}[1]{}
\makeatother
\CutAt{part,appendix} % split on \part
\CutAt{chapter,likechapter,appendix,part} % split on \chapter
\CutAt{likechapter,appendix,part} % split on \chapter*
\CutAt{appendix,chapter,likechapter,part} % split on \appendix
\CutAt{likesection,chapter,likechapter,appendix,part} % split on \section*
\CutAt{section,likesection,chapter,likechapter,appendix,part} % split on \section
\begin{document}
\EndPreamble
除了原始\CutAt
命令外,它还会拆分\chapter
和类似命令。如果您不想要这种效果,请随意删除这些新添加的内容。