两天前更新 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 配置。提供了两个新选项,MathjaxSource
和MathJaxConfig
。它们可以按以下方式使用:
\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 文件看起来正确无误: