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 に用意しておけば、Web ページ上の特定のコードに誰かを誘導しやすくなります)。

\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

2つの問題:

  • \(..\)\mydmath定義では です。 に変更します\ensuremath{..}
  • \adjustlimitstex4ht では問題が生じます。これを tex4ht 用として定義することが考えられます\relax。これは設定ファイルで行うことができます。例えば、

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

    tex4ht を次の設定で実行します: htlatex index.tex "foo,html"

関連情報