我正在尝试排版一个公式,其中包含宽帽下面的表达式$\check{x} g_1$
。但是,当我排版表达式时$\widehat{\check{x} g_1}$
,我得到了奇怪的结果——“检查”和g_1
在正确的位置,但x
向右移动,以至于与重叠g_1
(从而使check
其余部分位于空白处)。我做错了什么?
编辑:我的一个理论是,这与使用 MnSymbol 包有关。这是存在问题的最小文档。
\documentclass[11 pt]{article}
\usepackage{MnSymbol}
\begin{document}
$$\widehat{\check{x} g_1}$$
\end{document}
如果我省略 MnSymbol 包,问题就消失了。
答案1
\usepackage{accents}
MnSymbol 后加载
答案2
Herbert 给了你一个完美的解决方案;我会试着解释一下哪里出了问题。首先我要说的是,使用 很容易重现奇怪的输出amsmath
(另请参阅问题的评论)。在 amsmath.sty 中,有以下几行
%%\@tempa\widetilde
%%\@tempa\widehat
并且将它们注释掉确实是件好事。\@tempa
是一个命令,它对重音进行特殊处理,以便更好地定位重音,尤其是双重音。 (将 Herbert 的评论与他的回答进行比较。)这种处理适用于所有“小”重音,包括\check
。
现在下面的代码给出与 OP 的代码相同的奇数输出。
\documentclass[11 pt]{article}
\usepackage{amsmath}
\makeatletter
\@tempa\widehat
\makeatother
\begin{document}
\[ \widehat{\check{x} g_1} \]
\end{document}
这也许可以解释为什么\@tempa\widehat
在 amsmath.sty 中被注释掉。
现在MnSymbol
加载amsmath
然后调用
\DeclareMathAccent{\widehat}{\mathord}{largesymbols}{’302}
反过来又调用了\set@mathaccent
。但这是修改\set@mathaccent
后的amsmath
,所以事情又出错了。一个可能的解决方法是\widehat
再次给出 LaTeX 类型定义,但为此你必须知道重音数字"3C2
:
\documentclass[11 pt]{article}
\usepackage{MnSymbol}
\show\widehat
\def\widehat{\mathaccent"3C2\relax}
\begin{document}
\[ \widehat{\check{x} g_1} \]
\end{document}
总结:对我来说,它看起来像是一个错误MnSymbol
。