我正在尝试使用 \mathrm 从等式中删除斜体,如下所示:
\documentclass[a4paper]{article}
\usepackage{gb4e}
\usepackage{amsmath}
\begin{document}
\begin{equation}
\mathrm{tr}(A)
\end{equation}
\end{document}
但我收到以下错误:
! LaTeX Error: Command \rmfamily invalid in math mode.
我怎样才能删除等式中的斜体?
答案1
gb4e
包似乎完全损坏了,我会避免使用它,但定义\new@fontshape
(任何东西)至少会阻止它完全破坏数学字体的变化。
\documentclass[a4paper]{article}
\ExpandArgs{c}\newcommand{new@fontshape}{}
\usepackage{gb4e}
\usepackage{amsmath}
\begin{document}
\begin{equation}
\mathrm{tr}(A)
\end{equation}
\end{document}
运行无错误。
答案2
我们gb4e.sty
发现
% For any REALLY old distributions without \rmfamily
\@ifundefined{rmfamily}{\let\rmfamily=\rm \let\bfseries=\bf}
\@ifundefined{new@fontshape}{\def\reset@font{}\let\mathrm\rmfamily\let\mathit\mit}{}
该方法一直有效直到大约 2015 年,当时 LaTeX 的新版本删除了内部命令\new@fontshape
。
在source2e.pdf
2011/06/27 我们发现
这表明在 2010 年软件包最后一次更新时查找\new@fontshape
已经是错误的gb4e
。它工作了一段时间,但这个错误未被发现,因为显然在今天之前没有人\mathrm
一起使用过。gb4e
方法latexrelease
\RequirePackage[2014/01/01]{latexrelease}
不幸的是,只有在amsmath
未加载时才有效(因为到该日期为止没有回滚)。
\new@fontshape
因此唯一的方法是在加载之前提供一个定义gb4e
:
\ExpandArgs{c}\providecommand{new@fontshape}{}
\usepackage{gb4e}
向维护者投诉。
顺便说一句,如果您打算将数学与一起使用gb4e
,最好提前发出\noautomath
,\begin{document}
否则您可能会遇到其他奇怪的错误。