因此$\hat x$
和$\widehat x$
给出不同长度的帽檐,但是,与不同的\overbrace{}
是\underbrace{}
,有时需要\uhat
和\uwidehat
。
什么是最好的(最干净,与可能的用途冲突最少,例如,作为定积分中的区间端点,即正确缩放)以获得下帽和下宽帽(相同的帽子,但翻转,并位于所讨论的符号下方)。
我想可以用
\documentclass{article}\usepackage{amsmath,mathtools,amssymb}
\newcommand*{\uhat}{\underset{\mathrel{\text{\raisebox{.25ex}{\rotatebox[origin=c]{180}{$\wedge$}}}}}}
\newcommand*{\uwidehat}{\underset{\mathrel{\text{\raisebox{.25ex}{\rotatebox[origin=c]{180}{$\widehat{~}$}}}}}}
\begin{document}
$\uhat x ~ ~ \uwidehat X$
\end{document}
但一定有更好的方法。
答案1
对于下帽,只需使用\underaccent{\check}
;对于宽下帽,将宽帽排版在参数的幻影上,然后垂直翻转,将其提升适当的量。然后将翻转的重音与文本重叠。
\documentclass{article}
\usepackage{amsmath}
\usepackage{accents}
\usepackage{graphicx}
\newcommand{\uhat}{\underaccent{\check}}
\newcommand{\uwidehat}[1]{%
\mathpalette\douwidehat{#1}%
}
\makeatletter
\newcommand{\douwidehat}[2]{%
\sbox0{$\m@th#1\widehat{\hphantom{#2}}$}%
\sbox2{$\m@th#1x$}
\sbox4{$\m@th#1#2$}
\dimen0=\ht0
\advance\dimen0 -.8\ht2
\dimen2=\dp4
\rlap{%
\raisebox{\dimexpr\dimen0-\dimen2}{%
\scalebox{1}[-1]{\box0}%
}%
}%
{#2}%
}
\makeatother
\begin{document}
$\hat{a}\uhat{a}$
$\uwidehat{aaa}\uwidehat{fg}X_{\uwidehat{abc}}$
\end{document}
根据 Barbara Beeton 的说法,Unicode 建议如果设置在下面,则重音符号不应翻转。因此,我还提供了一个非翻转版本。
\documentclass{article}
\usepackage{amsmath}
\usepackage{accents}
\usepackage{graphicx}
\newcommand{\uhat}{\underaccent{\hat}}
\newcommand{\uwidehat}[1]{%
\mathpalette\douwidehat{#1}%
}
\makeatletter
\newcommand{\douwidehat}[2]{%
\sbox0{$\m@th#1\widehat{\hphantom{#2}}\vphantom{t}$}%
\sbox2{$t$}%
\dimen2=\ht0
\advance\dimen2 -\ht2
\sbox2{$#2$}%
\dimen0=\ht0
\rlap{%
\raisebox{\dimexpr-\dimen0-\dp2-1pt}[0pt][\dimexpr\dimen2+\dp2]{\box0}%
}
{#2}%
}
\makeatother
\begin{document}
$\hat{a}\uhat{a}$
$\uwidehat{aaa}\uwidehat{fg}X_{\uwidehat{abc}}$
\end{document}
请注意,整个结构会变成一个普通的原子(这总是发生在其他下重音符号中),因此,如果你想将它用作运算或关系符号,你必须这样说
$a \mathbin{\uwidehat{+}} b$
这将产生
我使用了第二个版本,但翻转版本也一样。(感谢 wipet 指出了原始版本中的问题。)
答案2
您可以使用以下软件包轻松完成此操作accents
:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{mathtools,amssymb}
\usepackage{accents}
\newcommand*{\uhat}[1]{\underaccent{\hat}{#1}}
\newcommand*{\uwidehat}[1]{\underaccent{\widehat{\hphantom{#1}}}{#1}}
\begin{document}
$ \uhat{x}\enspace \uwidehat X$
\end{document}