TeX 容量超出,使用 tex4ht 修饰章节名称时出现解析错误

TeX 容量超出,使用 tex4ht 修饰章节名称时出现解析错误

这是我 2014 年的第一期 htlatex 杂志,也是第一天 :)

我添加了这一行

\chapter*{\centering \begin{normalsize}my chapter title\end{normalsize}}

这对 pdflatex 来说很好,但是 htlatex 给出了

 ! TeX capacity exceeded, sorry [input stack size=5000].

当我删除时\centering,htlatex 给出了这个错误

(./foo2.aux) [1] [2] [1] [2] [3] [1] [2]
! Argument of \im:g has an extra }.
<inserted text> 
                \par 
l.12 ...begin{normalsize}Abstract\end{normalsize}}

所以,我不太确定问题出在哪里。我基本上想制作一个像书本风格的摘要页面,然后发现上面的解决方案在这里它与 pdflatex 配合得很好,但出于某种原因,htlatex 在解析\chapter条目内的这些命令时遇到了问题。它似乎不喜欢 Latex 命令内的\chapter{....}参数。可能需要保护它们?脆弱的问题?但 pdflatex 处理它们很好?

有没有解决办法,让我可以简单地用 htlatex 在页面中间显示一个标题?

梅威瑟:

\documentclass[12pt]{book}%
\usepackage{lipsum}
\begin{document}
\frontmatter

\title{htlatex issue 010114}
\author{me}
\maketitle 

\chapter*{\centering \begin{normalsize}my chapter title\end{normalsize}} %crash
%\chapter*{\begin{normalsize}Abstract\end{normalsize}} %parse error
%\chapter*{Abstract}  %only this work
\noindent 
\lipsum[75]
\clearpage

\tableofcontents

\mainmatter

\chapter{one}
  \section{one}
    \lipsum[75]

\end{document}

编译命令:

>htlatex foo2.tex 
This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013)
 restricted \write18 enabled.

.....
(/usr/local/texlive/2013/texmf-dist/tex/generic/tex4ht/html4-math.4ht))
(/usr/local/texlive/2013/texmf-dist/tex/generic/tex4ht/html4.4ht)
(/usr/local/texlive/2013/texmf-dist/tex/generic/tex4ht/html4-math.4ht))
(./foo2.aux) [1] [2] [1] [2] [3] [1] [2]
! TeX capacity exceeded, sorry [input stack size=5000].
\centering ->\let \\
                    \@centercr \rightskip \@flushglue \leftskip \@flushglue ...
l.10 ...rmalsize}my chapter title\end{normalsize}}
                                                   %crash
Output written on foo2.dvi (7 pages, 13108 bytes).
Transcript written on foo2.log.

日志文件中的一些文本显示了问题所在:

LaTeX Font Info:    ... okay on input line 3.
--- file foo2.css ---
 [1

] [2

] [1] [2

] [3]
LaTeX Font Info:    External font `cmex10' loaded for size
(Font)              <14.4> on input line 8.
LaTeX Font Info:    External font `cmex10' loaded for size
(Font)              <7> on input line 8.
 [1] [2]
! TeX capacity exceeded, sorry [input stack size=5000].
\centering ->\let \\
                    \@centercr \rightskip \@flushglue \leftskip \@flushglue ...
l.10 ...rmalsize}my chapter title\end{normalsize}}
                                                   %crash
If you really absolutely need more capacity,

在 Linux mint 上使用 TexLive 2013。

为了使标题居中,这对 htlatex 有效:

\begin{center}
  \chapter*{Abstract}  %only this work
\end{center}

因此我可以使用上述解决方案实现我想要的功能。但由于它显示了一个问题,因此我将在此保留此问题。

答案1

正如我所说的另一个问题,您不能将任何东西作为分段命令的参数,因为它将被处理以制作TOC。因此,虽然它在普通 LaTeX 中有效,但它不适用于 tex4ht。因此,从概念的角度来看,您的解决方法比您最初的尝试要好得多。我认为,与其滥用\chapter命令,不如使用其他方法来解决您的问题,即打印。那么新环境呢,它也能解决将和放入文档正文的abstract需要吗?noindentclearpage

\documentclass[12pt]{book}%
\usepackage{lipsum}
\def\abstracttitle{Abstract}
\newenvironment{abstract}{\begin{center}\abstracttitle\end{center}\par\noindent}{\clearpage}
\begin{document}
\frontmatter

\title{htlatex issue 010114}
\author{me}
\maketitle 

\begin{abstract}
\lipsum[75]
\end{abstract}

\tableofcontents

\mainmatter

\chapter{one}
  \section{one}
    \lipsum[75]

\end{document}

我定义了新环境,abstract标题文本保存在宏中\abstracttitle,因此可以根据需要重新定义。此解决方案开箱即用tex4ht

在此处输入图片描述

相关内容