У меня были разные успехи в конвертации документов 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, но я использую ряд похожих макросов в повседневной работе. Есть ли способ преобразовать эти макросы в стандартную разметку tex перед передачей файла, например, pandoc, или есть ли способ преобразовать их как часть процесса преобразования 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>