MWE需要用LuaTeX编译才能重现该问题:
\documentclass[11pt]{report}%
\usepackage{amsmath,mathtools}
\usepackage{breqn}
\begin{document}
$J^{\ast} = \text{JFK} \to \text{NO} \to \text{SFO}$
\[
J^{\ast} = \text{JFK} \to \text{NO} \to \text{SFO}
\]
\end{document}
给出(没有编译错误或任何警告)以下奇怪的输出
我必须使用breqn
包。如果我删除它,那么我就会得到预期的输出
有没有办法解决这个问题,以便我可以使用breqn
并获得正确的输出?
TL 2015.文件列表:(使用 lualatex 编译)
这是 LuaTeX,版本 beta-0.80.0.1 (TeX Live 2015) (rev 5863)
*File List*
report.cls 2014/09/29 v1.4h Standard LaTeX document class
size11.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
amsmath.sty 2013/01/14 v2.14 AMS math features
amstext.sty 2000/06/29 v2.01
amsgen.sty 1999/11/30 v2.0
amsbsy.sty 1999/11/29 v1.2d
amsopn.sty 1999/12/14 v2.01 operator names
mathtools.sty 2015/11/12 v1.18 mathematical typesetting tools
keyval.sty 2014/10/28 v1.15 key=value parser (DPC)
calc.sty 2014/10/28 v4.3 Infix arithmetic (KKT,FJ)
mhsetup.sty 2010/01/21 v1.2a programming setup (MH)
breqn.sty 2015/08/11 v0.98d Breaking equations
expl3.sty 2015/12/20 v6326 L3 programming layer (loader)
expl3-code.tex 2015/12/20 v6326 L3 programming layer
l3pdfmode.def 2015/11/11 v6250 L3 Experimental driver: PDF mode
flexisym.sty 2015/08/11 v0.98d Make math characters macros
cmbase.sym 2007/12/19 v0.92
mathstyle.sty 2015/08/11 v0.98d Tracking mathstyle implicitly
graphicx.sty 2014/10/28 v1.0g Enhanced LaTeX Graphics (DPC,SPQR)
graphics.sty 2014/10/28 v1.0p Standard LaTeX Graphics (DPC,SPQR)
trig.sty 1999/03/16 v1.09 sin cos tan (DPC)
graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live
pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX
infwarerr.sty 2010/04/08 v1.3 Providing info/warning/error messages (HO)
ltxcmds.sty 2011/11/09 v1.22 LaTeX kernel commands for general use (HO)
supp-pdf.mkii
pdftexcmds.sty 2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO)
ifluatex.sty 2010/03/01 v1.3 Provides the ifluatex switch (HO)
ifpdf.sty 2011/01/30 v2.3 Provides the ifpdf switch (HO)
luatex-loader.sty 2010/03/09 v0.4 Lua module loader (HO)
epstopdf-base.sty 2010/02/09 v2.5 Base part for package epstopdf
grfext.sty 2010/08/19 v1.1 Manage graphics extensions (HO)
kvdefinekeys.sty 2011/04/07 v1.3 Define keys (HO)
kvoptions.sty 2011/06/30 v3.11 Key value format for package options (HO)
kvsetkeys.sty 2012/04/25 v1.16 Key value parser (HO)
etexcmds.sty 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO)
epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Live
***********
更新
我在使用 breqn 时发现了另一种重复的情况,这种重复\text
根本不涉及。但下面提供的解决方案也解决了这个问题。我在这里添加第二个案例以供参考,以防万一它有用。这是 MWE
\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage{amsmath,mathtools}
\usepackage{breqn}
\begin{document}
\[
\underset{\mathbf{S}} {\operatorname{arg\,min}}
\sum_{i=1}^{k} \sum_{\mathbf x \in S_i}
\left\| \mathbf x - \boldsymbol\mu_i \right\|^2
\]
\end{document}
输出为
在下面的答案中添加补丁后,现在给出了正确的输出,即
答案1
\mathchoice
“在由mathstyle.sty
(由 加载)重新定义时缺少终止breqn
:
\documentclass[11pt]{report}
\usepackage{amsmath,mathtools}
\usepackage{breqn}
\makeatletter
\def\mathchoice{%
\relax\ifcase\numexpr\mathstyle\relax % <----- trailing \relax added
\expandafter\@firstoffour % Display
\or
\expandafter\@firstoffour % Cramped display
\or
\expandafter\@secondoffour % Text
\or
\expandafter\@secondoffour % Cramped text
\or
\expandafter\@thirdoffour % Script
\or
\expandafter\@thirdoffour % Cramped script
\else
\expandafter\@fourthoffour % (Cramped) Scriptscript
\fi
}
\makeatother
\begin{document}
$J^{\ast} = \text{JFK} \to \text{NO} \to \text{SFO}$
\[
J^{\ast} = \text{JFK} \to \text{NO} \to \text{SFO}
\]
\end{document}
解释:\mathstyle
返回一个整数,但是没有停止搜索更多数字。根据 LuaTeX 0.95 手册:
可以以可扩展的方式发现将用于公式的数学样式(同时仍在读取数学列表)。为了实现这一点,LuaTeX 添加了新的原语:
\mathstyle
。这是一个“转换命令”,例如\romannumeral
:其值只能读取,不能设置。
简单测试,用LuaTeX进行编译:
$\count255=\mathstyle 2\showthe\count255$\bye
在终端上的问题
> 22.
<to be read again>
$
l.1 $\count255=\mathstyle 2\showthe\count255$
因此,即使这种行为很奇怪,也是可以预料到的。为了在<number>
\numexpr\mathstyle\relax
应该使用。