make4ht は、mathjax オプションにもかかわらず、2 倍ドルの式の画像を作成します。

make4ht は、mathjax オプションにもかかわらず、2 倍ドルの式の画像を作成します。

次の(最小化された)TeX ファイルを HTML に変換したいです。

\documentclass{article}
\begin{document}
We have $a = a$, \(a = a\) and also
\[c = c\] and even
\begin{equation*}
  E = mc^2.
\end{equation*}
All seems to work, except for
$$F = ma.$$
\end{document}

私の設定ファイルは

\RequirePackage{amsmath,amsfonts,amssymb,amsthm,enumitem,booktabs,float,graphicx,hyperref}

\Preamble{xhtml}

\Configure{MathJaxConfig}{{
tex: {
      tags: "ams",
      \detokenize{%
      inlineMath: [ [’$’,’$’], ["\\\(","\\\)"] ],
      displayMath: [ [’$$’,’$$’], ["\\[","\\]"] ],}
      processEscapes: true,
      processEnvironments: true,
      packages: [’base’, ’color’, ’ams’, ’boldsymbol’, ’newcommand’, ’verb’]
  }
}}
\Configure{MathjaxSource}{https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml-full.js}


\def\eqref#1{$\mathrm{(\ref{#1})}$}

\begin{document}

\EndPreamble

私が実行するコマンドは

make4ht -c /CONF/sample.cfg markup.tex "mathjax"

残念ながら、この方法では2つのドル記号$$で囲まれたすべての数式に対して画像が生成されます。どうすればこれを修正できますか?私は、これそしてこれMichal は、2 つのドル記号の間にあるすべてのものをトークン化解除することで回答しましたが、うまくいきませんでした。

また、MathML は TeX-to-MathJax ほどうまく数式を解析できないため、使用したくありません。

答え1

最新の TeX Live ディストリビューションでも動作するはずですが、次の構成ファイルを使用してサポートを追加することもできます。

\Preamble{xhtml}
\catcode`\:=11
\Configure{$$}{\:HandleMathjaxCatcodes}{\:RestoreMathjaxCatcodes}{\expandafter\AltlDisplayDollars}
\long\def\AltlDisplayDollars#1$${\alteqtoks{\[#1\]}$$}
\catcode`\:=12
\begin{document}
\EndPreamble

$$ソースを出力に変換するので\[、MathJax に構成を指定する必要さえありません。結果の HTML コードは次のとおりです。

<!-- l. 4 --><p class='noindent'>We have \(a = a\), \(a = a\) and also \[c = c\] and even \begin {equation*}  E = mc^2.  \end {equation*} All seems to work, except for
                                 \[F = ma.\]
</p>

ここに画像の説明を入力してください

関連情報