我的简短示例.tex
是:
$\myCommand$ or $\boldsymbol{d}_{x}^{\textrm{word1},\textrm{word2}}$
我定义的地方:
\newcommand{\myCommand}{
\boldsymbol{d}_{x}^{\textrm{word1},\textrm{word2}} %identical to second version
}
但结果中上标的大小有明显不同:
知道发生了什么吗?我想为大量数学构建一些实用函数,但这似乎阻止了我。
编辑:
以下是 Sigur 建议的完整工作最小示例,其中包括疑似问题包:
\documentclass{report}
\usepackage{amsmath}
\usepackage{breqn}
\newcommand{\myCommand}{\boldsymbol{d}_{x}^{\textrm{word1},\textrm{word2}}}
\begin{document}
$\myCommand$ or $\boldsymbol{d}_{x}^{\textrm{word1},\textrm{word2}}$
\end{document}
答案1
为了实现自动方程式换行,breqn
必须做出重大改变。不幸的是,这些变化包括原始\mathchoice
(在补充包中mathstyle
)。此更改破坏了amstext
使用\text
的\mathchoice
。
这里我们还有两个选项(除了删除breqn
)。
选项1
使用\mathrm
而不是\textrm
。
\documentclass{report}
\usepackage{amsmath}
\usepackage{breqn}
\newcommand{\myCommand}{\boldsymbol{d}_{x}^{\mathrm{word1},\mathrm{word2}}}
\begin{document}
$\myCommand$ or $\boldsymbol{d}_{x}^{\mathrm{word1},\mathrm{word2}}$
\end{document}
选项 2
\mathchoice
不推荐。恢复locally的原意。
\documentclass{report}
\usepackage{amsmath}
\usepackage{breqn}
\makeatletter
\newcommand{\myCommand}{%
\begingroup
\let\mathchoice\@@mathchoice
\boldsymbol{d}_{x}^{\textrm{word1},\textrm{word2}}%
\endgroup
}
\makeatother
\begin{document}
$\myCommand$ or $\boldsymbol{d}_{x}^{\textrm{word1},\textrm{word2}}$
\end{document}
两种方法均产生以下输出:
答案2
因为我不想让其他人悬而未决这个问题:这个问题是由于包含以下内容引起的:
\usepackage{breqn}
在序言中。简单地包含上面的包而没有其他选项,上标文本在宏中会不正确,但在正常数学模式下则不会,这是一种奇怪的不兼容性。删除上述包解决了我的问题。