我在将 LaTeX 文档转换为 HTML 时取得了不同程度的成功,但我遇到的主要问题之一是转换包含通过 xparse 包定义的命令的表达式。例如,
\DeclareDocumentCommand\derivative{ s o m g d() }
{ % Total derivative
% s: star for \flatfrac flat derivative
% o: optional n for nth derivative
% m: mandatory (x in df/dx)
% g: optional (f in df/dx)
% d: long-form d/dx(...)
\IfBooleanTF{#1}
{\let\fractype\flatfrac}
{\let\fractype\frac}
\IfNoValueTF{#4}
{
\IfNoValueTF{#5}
{\fractype{\diffd \IfNoValueTF{#2}{}{\sp{#2}}}{\diffd #3\IfNoValueTF{#2}{}{\sp{#2}}}}
{\fractype{\diffd \IfNoValueTF{#2}{}{\sp{#2}}}{\diffd #3\IfNoValueTF{#2}{}{\sp{#2}}} \argopen(#5\argclose)}
}
{\fractype{\diffd \IfNoValueTF{#2}{}{\sp{#2}} #3}{\diffd #4\IfNoValueTF{#2}{}{\sp{#2}}}}
}
\DeclareDocumentCommand\dv{}{\derivative} % Shorthand for \derivative
是排版导数的命令,因此$\dv{x}{t}$
会产生格式良好的 dx/dt 符号。此示例取自物理来自 CTAN 的包,但我在日常工作中使用了许多类似的宏。有没有办法在将文件传递给 pandoc 等之前将这些宏转换为标准 tex 标记,或者有没有办法将它们作为 html 转换过程的一部分进行转换,以便它们可以在 MathML 或 MathJax 中呈现?
答案1
如果要将数学转换为mathml
,tex4ht
则只需要提供mathml
选项:
htlatex filename "xhtml,mathml"
对于您的示例,结果如下:
<math
xmlns="http://www.w3.org/1998/Math/MathML"
display="inline" ><mfrac><mrow
><mi mathvariant="normal">d</mi><mi
>x</mi></mrow>
<mrow
><mi mathvariant="normal">d</mi><mi
>t</mi></mrow></mfrac> </math>