\newcommand 适用于 latex,但不适用于 tex4ht( htlatex)

\newcommand 适用于 latex,但不适用于 tex4ht( htlatex)

我正在进行 2 个渲染,第一个采用经典渲染latex command,另一个采用htlatex command(tex4ht)。

我已经定义了以下 \newcommand :

\newcommand{\btFma}[2]{$\mathfrak{e}_{\mathbf{#1}}$$_{}$$^{\mathbf{#2}}$}                
\newcommand{\btFmb}[2]{$\mathfrak{e}^{\mathbf{#1}}$$_{}$$_{\mathbf{#2}}$}   

像这样使用它们:

\begin{equation}                                                                         
\,\,\,\,\textrm{\btFma{i}{j}}=\beq{e_{i}}\otimes\beq{e^{j}}\,\,\,\,;\,\,\,\,\textrm{\btFmb{i}{j}}=\beq{e^{i}}\otimes\beq{e_{j}}
\end{equation}

渲染符合latex command我的期望:

乳胶渲染

您会注意到,我希望每个\newcommand上限和下限索引之间都有一点偏移。

我的问题是我无法用 重现相同的渲染htlatex command。以下是生成的 HTML 页面上显示的内容:

hlatex 渲染

MathJax 似乎没有考虑到 2 \newcommand

我使用以下命令生成 HTML 页面:

htlatex source.tex config_mathjax

和配置文件“ config_mathjax”:

\Configure{@HEAD}{\HCode{
<script type="text/x-mathjax-config">                                         
  MathJax.Hub.Config({
    TeX: {       
      Macros: {   
        \unexpanded{ 
                     beq: ['{\\mathbf\{\#1\}}',1],
                     btFma: ['{\$\\mathfrak\{e\}_\{\\mathbf\{\#1\}\}\$\$_\{\}\^\{\\mathbf\{\#2\}\}\$}',2],
                     btFmb: ['{\$\\mathfrak\{e\}\^\{\\mathbf\{\#1\}\}\$\$\^\{\}_\{\\mathbf\{\#2\}\}\$}',2],
      },
      equationNumbers: { autoNumber: "AMS" }
    },      
    extensions: ["tex2jax.js"],
    tex2jax: {     
        \unexpanded{
      inlineMath: [ ['\$','\$'], ["\\\\(","\\\\)"] ],
      displayMath: [ ['$$','$$'], ['\begin{equation}','\end{equation}'], ['\begin{align}','\end{align}'], ["\\[","\\]"] ],}
      processEscapes: true
    }                
  });                
</script>
}}

我不明白为什么htlatex不考虑这两个\newcommand

也许\newcommand\bFma 和 \bFmb 对于 htlatex 来说太复杂了,如果有人知道如何简化它们,我会采用它们。

如果有人遇到过或者遇到过同样类型的问题,这就可以告诉我如何解决它。

问候

答案1

MathJax 仅在数学模式下处理宏,而不在文本模式下处理宏(它不包括文本模式宏)。这包括内部命令\textrm{}和其他切换到文本模式的命令。要将其与 MathJax 一起使用,您需要删除\textrm{}并将宏的定义更改为最初在数学模式下的宏。

答案2

从定义中删除美元符号:

\newcommand{\btFma}[2]{\mathfrak{e}_{\mathbf{#1}}{}^{\mathbf{#2}}}

\textrm从等式中删除:

\begin{equation}                                                                         
\btFma{i}{j}
\end{equation}

从 mathjax 配置中删除美元符号:

 \unexpanded{ 
 btFma: ['{\\mathfrak e}_{\\mathbf \#1}{}^{\\mathbf \#2}',2],
 }

顺便说一句:您可以使用\quad\qquad代替\,\,\,\,

相关内容