使用 tex4ht 分割环境

使用 tex4ht 分割环境

以下 MWE:

\documentclass{article}

\usepackage{amsmath}

\begin{document}

\[ \begin{split} a &= b \\ c &= d \end{split} \]

\end{document}

使用 pdflatex 编译很好,但是当我在其上运行 make4ht 时,出现以下错误:

! Package amsmath Error: \begin{split} won't work here.

See the amsmath package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.7 \[ \begin{split} a &= b \\ c &= d \end{split}
                                                  \]

这是 tex4ht 不兼容吗?有没有简单的方法可以解决这个问题?我本来可以只使用align*这个,但是出于某种原因我想使用它split

答案1

您可以尝试以下配置文件:

\Preamble{xhtml}
\makeatletter
\DeclareRobustCommand\[{%
\bgroup%
  \mathdisplay@push%
  \st@rredtrue \global\@eqnswfalse%
  \mathdisplay{equation*}%
\csname st:Math\endcsname
}

\DeclareRobustCommand\]{%
\csname ed:Math\endcsname
  \endmathdisplay{equation*}%
  \mathdisplay@pop%
  \ignorespacesafterend%
\egroup
}
\makeatother
\Configure{[]}{\Picture*{}}{\EndPicture}
\begin{document}
\EndPreamble

amsmath它与+ 使用命令的能力基本相同\Configure{[]}。在此示例中,它用于将显示数学转换为图片。请注意,此配置不适用于 MathMl 或 MathJax。

在此处输入图片描述

对于 MathML,使用:

\Preamble{xhtml}
\DeclareRobustCommand{\[}{\begin{equation*}}
\DeclareRobustCommand{\]}{\end{equation*}}
\begin{document}
\EndPreamble

您的代码无需任何配置即可在 MathJax 节点中正常运行。

答案2

扩展帮助信息(按下H)提到Did you forget a preceding \begin{equation}?这导致了一种解决方法:在最后使用\begin{equation*}而不是和类似的东西。\[

梅威瑟:

\documentclass{article}

\usepackage{amsmath}

\begin{document}

\begin{equation*}
\begin{split} a &= b \\ c &= d \end{split}
\end{equation*}

\end{document}

结果:

在此处输入图片描述

相关内容