我该如何稳健地排版双帽?

我该如何稳健地排版双帽?

我正在尝试排版一个带有两个帽子重音符号的符号(例如,用于表示量子力学中的超算子),但\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

演示

相关内容