使用 htlatex 时缺少 $ 错误

使用 htlatex 时缺少 $ 错误

运行发布的代码这个问题,那里显示的第一个代码,由 Andrew Swann 发布的已接受答案。在 texlive 2012 debian 上通过 htlatex 运行代码时,我收到错误

htlatex index.tex
这是 pdfTeX,版本 3.1415926-2.4-1.40.13 (TeX Live 2012/Debian) 受限 \write18 已启用。进入扩展模式 LaTeX2e <2011/06/27>

....

(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd)!缺少插入 $。$ l.28 \end{align*} ?

在同一代码上运行 latex 和 pdflatex 时没有错误。

知道是什么原因导致了这个错误吗?PS:为了以防万一,这里有一个代码的副本。(如果可以在 stackexchange 上直接链接到消息中发布的代码片段,那就太好了,这样就可以更容易地将某人指向网页上的特定代码)。

\documentclass{article}

\usepackage{mathtools}
\usepackage{amsfonts}

\makeatletter
\newcommand{\mydmath}[1]{\( \m@th\displaystyle #1 \)}
\makeatother
\newcommand{\mydmathtowd}[2]{\hbox to #1{\mydmath{#2}}}
\newsavebox\mytmpbox

\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}

\begin{document}

\sbox\mytmpbox{\mydmath{\adjustlimits\lim_{y\to\infty}\sup_{x\in\mathbb{R}}
\abs[\Big]{y^{9/2-\varepsilon}\bigl[\omega(x,y)-\omega_{\mathrm{as}}(x,y)\bigl]}}}
\begin{align*}
  \mydmathtowd{\wd\mytmpbox}{\adjustlimits\lim_{y\to\infty}\sup_{x\in\mathbb{R}}
  \abs[\Big]{y^{5/2-\varepsilon}\bigl[\vphantom{A^2}u(x,y)-u_{\mathrm{as}}(x,y)\bigr]}}
  & = 0 \\
  \mydmathtowd{\wd\mytmpbox}{\adjustlimits\lim_{y\to\infty}\sup_{x\in\mathbb{R}}
  \abs[\Big]{y^{5/2-\varepsilon}\bigl[\vphantom{A^2}v(x,y)-v_{\mathrm{as}}(x,y)\bigr]}}
  & = 0 \\
  \usebox\mytmpbox & = 0
\end{align*}

\end{document}

答案1

两个问题:

  • \(..\)\mydmath定义中。改为\ensuremath{..}
  • \adjustlimits给 tex4ht 带来麻烦。想法是将其定义为\relaxtex4ht。这可以通过配置文件来完成,例如,

    foo.cfg:
    \Preamble{html}
    \let\adjustlimits\relax
    \begin{document}
    \EndPreamble
    

    使用以下配置运行 tex4ht:htlatex index.tex "foo,html"

相关内容