为什么此 Latex 代码会挂起 lualatex?外部命令 \over;

为什么此 Latex 代码会挂起 lualatex?外部命令 \over;

我正在编译 FriCAS 计算机代数系统生成的代码。

想知道您是否认为 FriCAS 生成的 Latex 代码无效,这样我就可以向他们投诉,或者是否有解决方法。

这是小的 Latex 代码。这是 MWE

\documentclass[]{article}
\usepackage{amsmath}
\usepackage{breqn}
\begin{document}

\begin{dmath*}[frame={.5pt}]
{{\log \left( {{{b \  x}+a}} \right)} -{\log \left( {{{b \  x} -a}} \right)}} \over {2 \  a \  b}
\end{dmath*}

\end{document}

当我编译它时,lualatex 挂了

>lualatex foo.tex
This is LuaTeX, Version 1.0.4 (TeX Live 2017) 
 restricted system commands enabled.
(./foo.tex
LaTeX2e <2017-04-15>
(using write cache: /home/me/.texlive2017/texmf-var/luatex-cache/generic)(using
 read cache: /usr/local/texlive/2017/texmf-var/luatex-cache/generic /home/me/.t
exlive2017/texmf-var/luatex-cache/generic)
luaotfload | main : initialization completed in 0.126 seconds
Babel <3.15> and hyphenation patterns for 1 language(s) loaded.
(/usr/local/texlive/2017/texmf-dist/tex/latex/base/article.cls
Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
(/usr/local/texlive/2017/texmf-dist/tex/latex/base/size10.clo(load luc: /home/m
e/.texlive2017/texmf-var/luatex-cache/generic/fonts/otl/lmroman10-regular.luc))
) (/usr/local/texlive/2017/texmf-dist/tex/latex/amsmath/amsmath.sty
For additional information on amsmath, use the `?' option.
(/usr/local/texlive/2017/texmf-dist/tex/latex/amsmath/amstext.sty
(/usr/local/texlive/2017/texmf-dist/tex/latex/amsmath/amsgen.sty))
(/usr/local/texlive/2017/texmf-dist/tex/latex/amsmath/amsbsy.sty)
(/usr/local/texlive/2017/texmf-dist/tex/latex/amsmath/amsopn.sty))
(/usr/local/texlive/2017/texmf-dist/tex/latex/breqn/breqn.sty
(/usr/local/texlive/2017/texmf-dist/tex/latex/l3kernel/expl3.sty
(/usr/local/texlive/2017/texmf-dist/tex/latex/l3kernel/expl3-code.tex)
(/usr/local/texlive/2017/texmf-dist/tex/latex/l3kernel/l3pdfmode.def))
(/usr/local/texlive/2017/texmf-dist/tex/latex/breqn/flexisym.sty
(/usr/local/texlive/2017/texmf-dist/tex/latex/breqn/cmbase.sym)
(/usr/local/texlive/2017/texmf-dist/tex/latex/breqn/mathstyle.sty))
(/usr/local/texlive/2017/texmf-dist/tex/latex/graphics/keyval.sty)
(/usr/local/texlive/2017/texmf-dist/tex/latex/tools/calc.sty)) (./foo.aux)

Package amsmath Warning: Foreign command \over;
(amsmath)                \frac or \genfrac should be used instead
(amsmath)                 on input line 8.

到此为止。

如果我不使用breqn并这样做

\documentclass[]{article}
\usepackage{amsmath}
\begin{document}

\[
{{\log \left( {{{b \  x}+a}} \right)} -{\log \left( {{{b \  x} -a}} \right)}} \over {2 \  a \  b}
\]

\end{document}

它现在可以工作了。

Mathematica 图形

尽管我仍然收到警告消息,但它并没有挂起,并且它生成了 PDF OK。

我想使用breq,我没有问题,除了在这个例子中。

问题是: FriCAS 生成的 Latex 是否不好,或者这里还有其他问题?有没有简单的解决方法(除了不使用breqn

答案1

最小的例子是

\begin{dmath*}
a\over b
\end{dmath*}

解决方案:转储该 CAS。备选解决方案:在项目周围添加括号,并忍受错误的输出。代码中充斥着无用的括号,而缺少了需要的括号。

\documentclass[]{article}
\usepackage{amsmath}
\usepackage{breqn}

\begin{document}

\begin{dmath*}
{{{\log \left( {{{b \  x}+a}} \right)} -{\log \left( {{{b \  x} -a}} \right)}} \over {2 \  a \  b}}
\end{dmath*}

\[
\frac{\log(bx+a)-\log(bx-a)}{2ab}
\]

\end{document}

为了我的理智,我添加了正确的排版。

在此处输入图片描述

相关内容