使用 cprotect 时,tex4ht 在章节标题末尾会出现奇怪的字符

使用 cprotect 时,tex4ht 在章节标题末尾会出现奇怪的字符

我使用cprotect包,这样我就可以在章节标题中使用数学。它在 pdf 中运行正常,但 tex4ht 在章节标题末尾生成奇怪的字符。

如果我不使用cprotect,那么它将无法在 tex4ht 中编译。

有办法解决这个问题吗?

\documentclass[12pt,notitlepage]{book}
\usepackage{cprotect}
\usepackage{amsmath}
\begin{document}
\title{my book}
\chapter{Listing of integrals}
\cprotect\section{\quad $\int e^x \left(1-x^3+x^4-x^5+x^6\right) \, dx$}

stuff

\cprotect\section{\quad $\int \frac{e^{\frac{x}{2+x^2}} \left(2-x^2\right)}{2 x+x^3} \, dx$}
text
\end{document}

使用编译

 make4ht -ulm default -a debug t.tex "htm,3,mathjax,notoc*,p-width"

给出

在此处输入图片描述

如果我不使用\cprotect则会出现编译错误。

(/usr/local/texlive/2019/texmf-dist/tex/generic/tex4ht/html5.4ht))
(./report.aux) (/usr/local/texlive/2019/texmf-dist/tex/latex/base/ts1cmr.fd)
[1] [2]
Chapter 1.
(./report.4ct (./report-1.cpt) (./report-2.cpt))
(/usr/local/texlive/2019/texmf-dist/tex/latex/lm/ot1lmtt.fd)
! Argument of \im:g has an extra }.
<inserted text>
\par
l.9 ...nt e^x \left(1-x^3+x^4-x^5+x^6\right) \, dx$}

?

重要的 请注意,章节标题中使用的数学公式本身是由计算机代数系统自动生成的,我并没有编写这些数学公式。运行一个大型程序,读取这些数学公式,并将每个公式用作章节标题。因此,编辑这些数学公式是不可能的,也不切实际。

2019 年

答案1

我认为您原来的问题与这里相同:https://tug.org/pipermail/tex4ht/2018q4/002114.html

我的解决方案是创建\fixmathjaxtoc命令,这样当命令写入目录时,命令就不会被扩展。这个命令似乎对\left和不起作用\right,因为它们在节中使用时就会失败。作为一种解决方法,您可以完全禁用它们的扩展。由于数学由 MathJax 处理,因此它不会造成任何损害:

\Preamble{xhtml}

\def\right{\detokenize{\right}}
\def\left{\detokenize{\left}}
\begin{document}
\EndPreamble

在此处输入图片描述

答案2

如果您更正标记,删除它\left\right 然后它就会起作用htlatexcprotect在 htlatex 或 pdflatex 中似乎没有必要)

我得到的 html 渲染

在此处输入图片描述

\documentclass[12pt,notitlepage]{book}

\usepackage{amsmath}
\begin{document}
\title{my book}
\tableofcontents
\chapter{Listing of integrals}
\section{\quad $\int e^x (1-x^3+x^4-x^5+x^6) \, dx$}

stuff

\section{\quad $\int \frac{e^{\frac{x}{2+x^2}} (2-x^2)}{2 x+x^3} \, dx$}
text
\end{document}

相关内容