我正在尝试排版一个带有两个帽子重音符号的符号(例如,用于表示量子力学中的超算子),但\hat{\hat{L}}
帽子之间会产生太多空间。我找到了一种方法在 LaTeX 论坛上这似乎可行,但需要对我想要排版的每个字母进行手动调整。如果有人有任何建议,我将不胜感激。谢谢!
答案1
好吧,我在 LaTeX 社区上写了这个建议,但我认为那里的人想要细粒度的控制。如果你不想要,那么也许像这样的东西更合适?你可能需要根据自己的喜好调整 -0.35ex,但不必为每个字符单独调整。
这个怎么样?
\documentclass{article}
\usepackage{amsmath}
\usepackage{accents}
\newlength{\dhatheight}
\newcommand{\doublehat}[1]{%
\settoheight{\dhatheight}{\ensuremath{\hat{#1}}}%
\addtolength{\dhatheight}{-0.35ex}%
\hat{\vphantom{\rule{1pt}{\dhatheight}}%
\smash{\hat{#1}}}}
\begin{document}
$\doublehat{x} \doublehat{L} \doublehat{\prod}$
\end{document}
答案2
不依赖于包的替代宏accents
。
\makeatletter
\newcommand{\hathat}[1]{%
\begingroup%
\let\macc@kerna\z@%
\let\macc@kernb\z@%
\let\macc@nucleus\@empty%
\hat{\raisebox{.2ex}{\vphantom{\ensuremath{#1}}}\smash{\hat{#1}}}%
\endgroup%
}
\makeatother
它的灵感来自于弗拉布尤斯的回答和David 在另一个问题下的回答。
支持下标数学样式的更新解决方案。
\makeatletter
\newcommand{\hathat}[1]{%
\begingroup%
\let\macc@kerna\z@%
\let\macc@kernb\z@%
\let\macc@nucleus\@empty%
\hat{\mathchoice%
{\raisebox{.2ex}{\vphantom{\ensuremath{\displaystyle #1}}}}%
{\raisebox{.2ex}{\vphantom{\ensuremath{\textstyle #1}}}}%
{\raisebox{.16ex}{\vphantom{\ensuremath{\scriptstyle #1}}}}%
{\raisebox{.14ex}{\vphantom{\ensuremath{\scriptscriptstyle #1}}}}%
\smash{\hat{#1}}}%
\endgroup%
}
\makeatother