Превышена емкость TeX и ошибки синтаксического анализа при использовании декорирования имени главы с помощью tex4ht

Превышена емкость TeX и ошибки синтаксического анализа при использовании декорирования имени главы с помощью tex4ht

Мой первый выпуск htlatex в 2014 году и в первый же день :)

Я добавил эту строку

\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,

Использую TexLive 2013 на Linux Mint.

Чтобы выровнять заголовок по центру, для htlatex подойдет следующее:

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

Так что я могу сделать то, что хочу, используя вышеуказанное решение. Но оставлю этот вопрос здесь, так как он показывает проблему.

решение1

Как я уже сказал вДругой вопрос, вы не можете ничего поместить в качестве параметра команд секционирования, так как это будет обработано для того, чтобы сделать TOC. поэтому, хотя это работает в обычном LaTeX, это не работает с tex4ht. Так что с концептуальной точки зрения ваш обходной путь намного лучше, чем ваша первоначальная попытка. Я думаю, что вместо неправильного использования \chapterкоманды было бы лучше использовать другие средства для решения вашей проблемы, которая заключается в abstractпечати. ​​А как насчет новой среды, которая также решит необходимость помещать noindentи clearpageв тело документа?

\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:

введите описание изображения здесь

Связанный контент