ein \underhat und \underwidehat

ein \underhat und \underwidehat

So $\hat x$und $\widehat x$geben Oberhüte unterschiedlicher Länge an, allerdings benötigt man im Gegensatz zu \overbrace{}einem \underbrace{}manchmal ein \uhatund \uwidehat.

Was ist die beste Methode (am saubersten, mit den wenigsten Konflikten bei einer möglichen Verwendung, z. B. als Intervallendpunkte in einem bestimmten Integral, d. h. richtig skaliert), um einen Underhat und einen Underwide-Hut zu erhalten (dieselben Hüte, aber umgedreht und unterhalb des betreffenden Symbols).

Ich denke, man kann

\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}

Aber es muss bessere Wege geben.

Antwort1

Für den Unterhut verwenden Sie einfach \underaccent{\check}; für den breiten Unterhut setzen Sie den breiten Hut über ein Phantom des Arguments, spiegeln Sie ihn dann vertikal und heben Sie ihn um einen geeigneten Betrag an. Lassen Sie dann den gespiegelten Akzent über den Text überlappen.

\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}

Bildbeschreibung hier eingeben

Laut Barbara Beeton empfiehlt Unicode, Akzente nicht umzudrehen, wenn sie darunter gesetzt sind. Daher biete ich auch eine nicht umgedrehte Version an.

\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}

Bildbeschreibung hier eingeben

Beachten Sie, dass die gesamte Konstruktion in ein normales Atom umgewandelt wird (was bei anderen Unterakzenten immer der Fall ist). Wenn Sie es also für ein Operations- oder Relationssymbol verwenden möchten, müssen Sie etwas wie

$a \mathbin{\uwidehat{+}} b$

das wird produzieren

Bildbeschreibung hier eingeben

Ich habe die zweite Version verwendet, aber bei der umgedrehten Version ist es dasselbe. (Danke an wipet für den Hinweis auf das Problem in der Originalversion.)

Antwort2

accentsMit dem Paket können Sie das ganz einfach tun :

\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} 

Bildbeschreibung hier eingeben

verwandte Informationen