OCT TL 更新后配置 tex4ht 出现问题

OCT TL 更新后配置 tex4ht 出现问题

两天前更新 TL 2020 后,我发现在 mathjax 模式下使用 tex4ht 时出现另一个问题。以前可以正常工作的东西现在却不能正常工作了。

我有一个解决方案,可以让我在 PDF 和 tex4ht 模式下正确使用\newcommand。我在这里发布了相关内容。如何让 tex4ht 自动忽略某些命令

在我更新 TL 后,上述解决方案不再有效。现在我

在此处输入图片描述

在网页上。

我在下面制作了一个小型 MWE 和一个使用的示例 .cfg 以及我使用的命令。

tex4ht 中发生了哪些变化导致它现在无法工作?

\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{adjustbox}

\newcommand\myadjustbox[2][0.98]{% %default width: 0.9\textwidth
\ifdefined\HCode
  {$\displaystyle #2$}
\else 
   \adjustbox{max width=#1\linewidth}{$\displaystyle #2$}
\fi 
}{%
}

\begin{document}

%why this below no longer work in mathjax mode?
\underline{Solution by CAS}
\[
\myadjustbox{ y \left(x \right) = x^{2}+x +3}
\]

\underline{Solution by CAS}
\[
y \left(x \right) = x^{2}+x +3
\]    
\end{document}

编译命令是

make4ht -ulm default -a debug -c my.cfg foo.tex  "mathjax,htm"

HTML 页面显示如下

在此处输入图片描述

而在2天前更新TL之前,两种情况都显示OK。

这需要按照上面链接的答案my.cfg告诉 mathjax \myadjustbox。这是 .cfg 文件。这不是我使用的完整 .cfg,但我尝试仅发布显示问题所需的相关部分。

\Preamble{xhtml,p-width}
\Configure{@HEAD}{\HCode{ 
 <script id="MathJax-script" async
      src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js" id="MathJax-script">
    </script>
\Hnewline}}

%V3.0
\Configure{@HEAD}{\HCode{
<script>
window.MathJax = {  
  tex: {
    maxBuffer: 40*1024,
    packages: {'[+]': ['textmacros']},
    \unexpanded{%
    macros: {      
        sp: "^",
        sb: "_",      
      noalign: ["\#1", 1],
      myadjustbox: ["\#1", 1],      
    }},
    autoload: {
      color: [],
      colorV2: ['color']
    },
    packages: {'[+]': ['noerrors','textmacros']}
  },
  options: {
    ignoreHtmlClass: 'tex2jax_ignore',
    processHtmlClass: 'tex2jax_process'
  },
  loader: {
    load: ['[tex]/noerrors','[tex]/textmacros']
  }
};
</script>\Hnewline
}}

\begin{document}
\EndPreamble

我还将上述 2 个文件和编译结果放在我的页面上的一个小 zip 文件中。请参阅此压缩文件 如果它使它更容易而不是手动复制上述内容。

Linux 上的 TL 2020。

答案1

现在可以使用\Configure命令自定义 MathJax 配置。提供了两个新选项,MathjaxSourceMathJaxConfig。它们可以按以下方式使用:

\Preamble{xhtml,p-width}
\Configure{MathjaxSource}{https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js}
\Configure{MathJaxConfig}{{  
  tex: {
    maxBuffer: 40*1024,
    packages: {'[+]': ['textmacros']},
    \unexpanded{%
    macros: {      
        sp: "^",
        sb: "_",      
      noalign: ["\#1", 1],
      myadjustbox: ["\#1", 1],      
    }},
    autoload: {
      color: [],
      colorV2: ['color']
    },
    packages: {'[+]': ['noerrors','textmacros']}
  },
  options: {
    ignoreHtmlClass: 'tex2jax_ignore',
    processHtmlClass: 'tex2jax_process'
  },
  loader: {
    load: ['[tex]/noerrors','[tex]/textmacros']
  }
};
}

\begin{document}
\EndPreamble

经过这样的更改后,生成的 HTML 文件看起来正确无误:

在此处输入图片描述

相关内容