我正在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
我认为这可能归结为重新定义\AltlMath
,mathjax-latex-4ht.4ht
以使其更强大。默认定义是:
\long\def\AltlMath#1\){\expandafter\alteqtoks{\(#1\)}\)}
问题
我如何配置AltlMath
才能使其\(...\)
在移动参数中发挥作用?
脚注:更改 .tex 文件不是一个选项:)
答案1
答案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\)}
这个对我有用....
如果不是这样,请原谅......