
因此$\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}