改进对准的双帽

改进对准的双帽

我正在使用刘天仁的回答中的代码我该如何稳健地排版双帽?在数学模式下排版双帽重音符号,但有时水平对齐会关闭。即:

\documentclass{article}
\usepackage{statmath}
\makeatletter
\newcommand{\doublehat}[1]{%
\begingroup%
  \let\macc@kerna\z@%
  \let\macc@kernb\z@%
  \let\macc@nucleus\@empty%
  \hat{\raisebox{.35ex}{\vphantom{\ensuremath{#1}}}\smash{\hat{#1}}}%
\endgroup%
}
\makeatother
\begin{document}
    $$\hat\bfbeta \quad \hat\bfu$$
    $$\doublehat\bfbeta \quad \doublehat\bfu$$
\end{document}

得出:

示例输出

u 上的双帽很好,但测试版上的双帽比它应该的位置靠左得多,看起来不太好。我缺乏修复此问题的 TeX 技能,但如果有高手能帮忙,我将不胜感激。谢谢!

答案1

你可以测量 math-accent 的结果\hat(通过 来定位 nucleus 的 kern \skewchar)。\skewchar下面的宏中 并不重要,我们只通过拆箱来测量结果:

\def\measurehat#1{%
   \setbox0=\vbox{$\hat{#1}\hfil\break$\null\par
      \setbox0=\lastbox\unskip\unpenalty\global\setbox1=\lastbox}%
   \setbox0=\hbox{\unhbox1 \unskip\unpenalty\unskip \global\setbox2=\lastbox}%
   \setbox0=\vbox{\unvbox2 \setbox0=\lastbox}%
}
\def\doublehat#1{%
   \measurehat{#1}\dimen0=\wd0 \measurehat{\kern0pt#1}%
   \raise.35ex\rlap{\kern\dimexpr\dimen0-\wd0$\hat{\phantom{#1}}$}{\hat#1}%
}

% try this:
$$\hat\bfbeta \quad \hat\bfu$$
$$\doublehat\bfbeta \quad \doublehat\bfu$$

答案2

这不是一个令人满意的答案,因为它要求用户做两件事:指示要加帽的字形是否rmit形状,以及在宏中指定字体斜体倾斜角的切线\tanslant

这样,我引入\hatsrm[<n>]{<token>}和分别\hatsit[<n>]{<token>}n帽子(默认值 2)放置在罗马或斜体标记上。

目前这仅适用于文本或显示样式。如果较小的数学样式需要它,请告诉我...也许可以做些什么。

\documentclass{article}
\usepackage{stackengine}
\def\tanslant{.25}
\newcommand\hatsrm[2][2]{\ensurestackMath{%
  \ifnum#1>1%
    \stackengine{-4pt}{\hatsrm[\numexpr#1-1\relax]{#2}}{%
      \scriptstyle\char'136}{O}{c}{F}{T}{S}%
  \else%
    \stackengine{-3pt}{#2}{\scriptstyle\char'136}{O}{c}{F}{T}{S}%
  \fi%
}}
\newcommand\hatsit[2][2]{\ensurestackMath{%
 \sbox0{$#2$}%
  \ifnum#1>1%
    \stackengine{-4pt}{\hatsit[\numexpr#1-1\relax]{#2}}{%
      \kern\tanslant\ht0\scriptstyle\char'136}{O}{c}{F}{T}{S}%
  \else%
    \stackengine{-3pt}{#2}{\kern\tanslant\ht0\scriptstyle\char'136}%
      {O}{c}{F}{T}{S}%
  \fi%
}}
\begin{document}
\[
\hatsit[1]{z}\neq\hatsrm{\Lambda}\neq\hatsrm[3]{\Delta}\neq\hatsit[4]{\beta}
\]
\end{document}

在此处输入图片描述

相关内容