这个CAS生成的Latex无效吗?tex4ht与mathjax问题

这个CAS生成的Latex无效吗?tex4ht与mathjax问题

以下是CAS生成的Latex,名为Fricas。

它在 lualatex 中编译成功(但在使用时收到警告\over),但最终结果看起来正确。

但是当我尝试使用 mathjax 用 tex4ht 编译相同的 latex 文件时,它遇到了问题。此外,如果我不使用 Mathjax,tex4ht 仍然无法正确编译它,它遇到了问题\over

我直接从 Linux 终端复制了这个来自 fricas 输出的 Latex,并将其粘贴到我的 Latex 文档中。首先将显示屏幕截图,然后在末尾显示 MWE。

Mathematica 图形

这是我的 Latex 文件中的内容

\documentclass[11pt]{article}%
\usepackage{amsmath}
\begin{document}
\[
{{\log \left( {{{\sqrt {{-{{x} \sp {2}}+1}}}+1}} \right)} 
  -{\log \left( {{{\sqrt {{-{{x} \sp {2}}+1}}} -1}} \right)}
  +{{\left( {2 \  {\log \left( {x} \right)}} -4 \right)} \  {\sqrt {{-{{x} \sp {2}}+1}}}}
  +{2 \  x \  {\arcsin \left(   {x} \right)} \  {\log \left( {x} \right)}} 
  -{2 \  x \  {\arcsin \left( {x} \right)}}} \over 2
\]

\end{document}

使用 Lualatex 编译成功

Mathematica 图形

但问题是,当使用

  make4ht -ulm default  foo.tex "htm,0,mathjax"

这是输出

Mathematica 图形

我不知道为什么 mathjax 不喜欢 Latex。这是原始 HTML

<!DOCTYPE html> 
<html lang="en-US" xml:lang="en-US" > 
<head><title></title> 
<meta  charset="utf-8" /> 
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)" /> 
<meta name="viewport" content="width=device-width,initial-scale=1" /> 
<link rel="stylesheet" type="text/css" href="foo.css" /> 
<meta name="src" content="foo.tex" /> 
 <script type="text/x-mathjax-config"> MathJax.Hub.Config({ 'fast-preview': {disabled: true}, TeX: { extensions: ["color.js","AMSmath.js"], equationNumbers: { autoNumber: "AMS" } }, extensions: ["tex2jax.js"], tex2jax: {  inlineMath: [ ["\\\(","\\\)"] ], displayMath: [ ['$$','$$'], ["\\[","\\]"] ], processEscapes: true, processEnvironments: true } }); </script> 
 <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>  
</head><body 
>
<!--l. 14--><p class="noindent" >\[{{\log \left ({{{\sqrt{{-{{x} \sp{2}}+1}}}+1}} \right )} -{\log \left ({{{\sqrt{{-{{x} \sp{2}}+1}}} -1}} \right )} +{{\left ({2 \{\log \left ({x} \right )}} -4 \right )} \{\sqrt{{-{{x} \sp{2}}+1}}}} +{2 \ x \{\arcsin \left ({x} \right )} \{\log \left ({x} \right )}} -{2 \ x \{\arcsin \left ({x} \right )}}} \over 2 \]
</p>   

</body> 
</html>

当我不使用 mathjax 模式时,tex4ht 输出会稍微好一些,但分数全部丢失了。

 make4ht -ulm default  foo.tex "htm"

Mathematica 图形

我的问题是:上面 Fricas 生成的数学公式是否在某种程度上无效?除了使用\over旧的公式之外,还有其他问题导致 mathjax 失败得如此严重吗?我还删除了\over,但在 mathjax 模式下 tex4ht 的问题仍然存在。因此,似乎除了\overmathjax 不满意的公式之外,还有其他问题。

我可以去向 Fricas 投诉它的 Latex,但我想先在这里检查一下。

2019 年

答案1

您可以在.cfg文件中为 MathJax 配置自定义命令声明:

\Preamble{xhtml}
\Configure{@HEAD}{\HCode{
<script>
window.MathJax = {
  tex: {
    macros: {
      \unexpanded{
        sp: "^",
        sb: "_",
      }
    }
  }
};
</script>
}}
\begin{document}
\EndPreamble

MathJax 仍然对您的代码存在一些问题。我制作了一个更简单的编译示例:

\[
{{\log \left( {{{\sqrt {{-{{x} \sp {2}}+1}}}+1}} \right)}
  -{2\ x\,{\arcsin\left({x}\right)}} 
}\over 2
\]

在此处输入图片描述

但当我改变空间时

  -{2\ x\,{\arcsin\left({x}\right)}} 

返回您的版本:

  -{2\ x\ {\arcsin\left({x}\right)}} 

问题又回来了:

在此处输入图片描述

我想说这看起来像是 MathJax 的问题。

相关内容