tex4ht 在移动参数中使用 \(...\)

tex4ht 在移动参数中使用 \(...\)

我正在tex4ht使用 MathJax 生成包含数学内容的 HTML 来呈现。

这个问题是关于移动参数中的内联数学内容,例如\section{\(y^2\)}\caption{\(y^2\)}

工作最小示例

以下代码可以编译通过:

\documentclass{article}
\begin{document}
\section{$y^2$}
\end{document}

不起作用的最小示例

在移动参数中使用\(...\)会导致编译失败:

\documentclass{article}
\begin{document}
\section{\(y^2\)}
\end{document}

汇编

对于工作和非工作的最小工作示例,我使用以下命令进行编译:

make4ht -a debug mwe.tex "mathjax"

texmf-dist/tex/generic/tex4ht/mathjax-latex-4ht.4ht

我认为这可能归结为重新定义\AltlMathmathjax-latex-4ht.4ht以使其更强大。默认定义是:

\long\def\AltlMath#1\){\expandafter\alteqtoks{\(#1\)}\)}

问题

我如何配置AltlMath才能使其\(...\)在移动参数中发挥作用?

脚注:更改 .tex 文件不是一个选项:)

答案1

TeX4ht 的 MathJax 配置为在部分中导致问题的命令提供了命令:\fixmathjaxtoc。问题是某些命令在写入 TOC 文件时会导致问题。

尝试这个配置文件:

\Preamble{xhtml}

\fixmathjaxtoc\(
\fixmathjaxtoc\)
\begin{document}
\EndPreamble

结果如下:

在此处输入图片描述

答案2

这对你有帮助吗?

%%mwe.cfg
    \Preamble{html}
    \newtoks\eqtoks 
    \def\AltMath#1${\eqtoks{$#1$}% 
       \HCode{\the\eqtoks}$}
    \Configure{$}{}{}{\expandafter\AltMath}  
    \def\AltlMathI#1\){\eqtoks{\(#1\)}% 
            \HCode{\the\eqtoks}}
    \Configure{()}{\AltlMathI}{}
    \begin{document}
    \EndPreamble

修改后的TeX代码:

\section{\protect\(y^2\)}

这个对我有用....

如果不是这样,请原谅......

相关内容