如何使用 Tex4ht 获得良好的数学渲染?

如何使用 Tex4ht 获得良好的数学渲染?

解决hyperref的问题,tex4ht我仍然遇到数学渲染问题。以下 MWE 可以很好地编译pdflatex,除了d操作员:

\documentclass[a4paper, 12pt, ngerman]{scrartcl}

\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenx}
\usepackage{lmodern}

\usepackage[a4paper, left=30mm, right=25mm, top=25mm, bottom=30mm]{geometry}
\usepackage{setspace}
\onehalfspacing
\parindent0mm

\usepackage{amsmath}
\usepackage{commath}
\usepackage{units}
\renewcommand{\dpd}[3][]{\ensuremath{\mathinner{%
      \dfrac{\partial{{}^{#1}}#2}{\partial{{#3}^{#1}}}
}}}
\renewcommand\dif{\mathop{d}\!}

\usepackage[breaklinks, colorlinks]{hyperref}

\begin{document}

Erstmal etwas inline-Mathe $E = m c^2$, etwas sinnloser Text und dann eine lange, abgesetzte Formel:
\begin{multline}
\iiint_V \dpd{E}{t} \dif V + \iint_S E u_i n_i \dif S = \\
\iint_S \tau_{ij} u_i n_j \dif S - \iiint_V \dpd{p u_i}{x_i} \dif V + 
\iiint_V \rho f_i u_i \dif V - \iint_S q_i n_i \dif S \label{eq:energie}
\end{multline}

\autoref{eq:energie} ist ein gutes Beispiel für eine lange und komplizierte Gleichung, die nicht mehr auf eine Zeile passt.

\end{document}

随着新的定义d,我注意到它不再直立,并且其基线没有正确对齐在 PDF 中Wrong d 在 HTML 中:当我将数学渲染器设置为 MathML 时,积分看起来更好,尽管d并且相应的变量仍然存在。 MathML improved rendering 但它看起来仍然不如我插入相同的 LaTeX 源代码那么好看这一页MathJax with wrong d 除了那个d不是直立的,其他一切看起来都很好。那么为什么我会从同一个 LaTeX 源代码中获得两个不同的数学渲染?这只是 CSS 问题吗?只是为了说明这一点:d 应该直立,我之所以使用重新定义\dif是:

这些变化主要是 Tikz 外部化所需的代码,但也修复了 Commath 包提供的命令:

\renewcommand{\dpd}[3][]{\ensuremath{\mathinner{%
      \dfrac{\partial{{}^{#1}}#2}{\partial{{#3}^{#1}}}
}}}
\renewcommand\dif[1]{\mathop{#1}\!}

原来的产生了错误的 Mathml 代码,因为数学运算符中的上标或间距命令缺少或不正确。这个包已经很长时间没有更新了,我猜它提供的其他命令也会有问题。

换句话说:确保用 LaTeX 编写的公式在 HTML 中看起来和在 PDF 中一样好的最佳方法是什么?

相关内容