更多 TeX4ht 与 Chrome 和 Safari 相关的问题

更多 TeX4ht 与 Chrome 和 Safari 相关的问题

以以下简单的 latex 文件为例

\documentclass{article}
\usepackage{amsfonts,amsmath}
\newcommand\R{\mathbb{R}}

\begin{document}

  $\overrightarrow{AB}$

  $|\mathbf{v}|$

  $e^{x^2+y^2}$

  $\{ x\in\R | x<0 \}$

  \begin{align*}
      f & = 1+2+3+4+\dots+n\\
        & = \binom{n+1}2
  \end{align*}

\end{document}

并使用来自的配置文件通过 tex4ht/make4ht 运行它 TeX4ht 与 Chrome 的问题

\Preamble{xhtml,mathml,html5}
\Configure{HTML}{\HCode{<html lang="en">\Hnewline}}{\HCode{\Hnewline</html>}}

\Configure{@HEAD}{\HCode{\Hnewline<script type="text/javascript"
   src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=MML_CHTML">
   </script>\Hnewline}}
\begin{document}

\EndPreamble

(例如,使用make4ht -u -c file.cfg file.tex)。在 Firefox、Safari 和 Chrome 上,这将生成一个包含错误的网页,如下所示

在此处输入图片描述

问题出在 mathjax 设置上。如果我将配置文件更改为使用

\Configure{@HEAD}{\HCode{\Hnewline<script type="text/javascript"
       src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_CHTML">
       </script>\Hnewline}}

然后该页面在 Firefox 上可以正确显示,但是上标和下标等在 Chrome 上无法正确显示,并且在 Safari 上所有内容都是梨形的:

在此处输入图片描述

这显示了 tex4ht 制作的网页在 firefox、chrome 和 safari 上的显示情况。

我已经尝试了给出的所有 mathjax 设置http://docs.mathjax.org/en/latest/config-files.html,以及尝试使用 直接配置 mathjax MathJax.Hub.Config,但我找不到让这些示例工作的方法。Firefox 可以很好地显示此页面,但有些 mathjax 配置无法显示,Chrome 则无法显示,而 Safari 则完全不能令人满意。

我也尝试过使用 Michal 的mathjax-latex-4ht包,描述如下使用 exsheets 将 latex 转换为 html,并将方程式保留为 latex。这几乎是完美的,除了它不能处理\R我的 MWE 中的宏:

在此处输入图片描述

有没有办法配置 tex4ht 和 mathjax 以便在所有浏览器上都能很好地运行此示例?令人恼火的是,pandoc 似乎在这里产生了合理的输出,但在我的实际应用中,我有一些重要的后期处理要做,这可以使用 tex4ht 来实现,但我不确定是否可以从 pandoc 开始完成。

答案1

这是由\mathbf命令配置中的错误引起的:

\Configure{mathbf}%
 {\bgroup \Tg<\a:mathml mi mathvariant="bold">\PauseMathClass}%
  {\Tg</\a:mathml mi>\egroup }%

tex4ht自动在数学变量和运算符周围添加标记,但在本配置中,该功能被命令禁用\PauseMathClass,因为在本例中标记是明确添加的。必须在 结束后打开自动标记\mathbf,否则将导致标记无效。由于您的第二个数学示例包含\mathbf,因此所有后续示例都包含无效标记。我们需要使用\EndPauseMathClass命令再次打开标记。

我将在tex4ht源代码中修复此问题,但修复到 TeXLive 需要一些时间,因此您可以暂时使用以下配置。

\Preamble{xhtml,mathml,html5}
\Configure{HTML}{\HCode{<html lang="en">\Hnewline}}{\HCode{\Hnewline</html>}}

\Configure{@HEAD}{\HCode{\Hnewline<script type="text/javascript"
   src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=MML_CHTML">
   </script>\Hnewline}}
\begin{document}

\EndPreamble

结果:

在此处输入图片描述

相关内容