新版本

新版本

我想排版一些类似于“广义球谐函数”所用的符号。这涉及在字母上方放置一个点阵列。该阵列将有两列,每列中的点数可以不同。我尝试了以下方法,但看起来很糟糕:

$\overset{\begin{matrix} . & \ \\ . & . \end{matrix}}{T}$

我宁愿不必手动调整阵列间距,有什么方法可以简单地做到这一点吗?如果没有,我该怎么做(即使它需要手动调整阵列间距)?

您可以在此处找到其应有的外观示例(它是带有上方圆点的 T 符号,但它不应该看起来像三角形,而应该明显是两列,左边有两个点,右边有一个点):

在此处输入图片描述

答案1

这是一个可能的方法

\documentclass{article}
\usepackage{amsmath}

\makeatletter
\def\spher@harm#1{%
  \vbox{\hbox{%
    \offinterlineskip
    \valign{&\hb@xt@2\p@{\hss$##$\hss}\vskip.2ex\cr#1\crcr}%
  }\vskip-.36ex}%
}
\def\gshone{\spher@harm{.}}
\def\gshtwo{\spher@harm{.&.}}
\def\gshthree{\spher@harm{.&.&.}}
\let\gsh\spher@harm
\makeatother

\begin{document}
$\displaystyle
\overset{\gshtwo\gshone}{T}
\overset{\gshthree\gshtwo\gshone}{T}
\dot{T}
$
\end{document}

我只定义了三种组合,您可以说\gsh{.&.&.&.}得到四个点(或定义\gshfour)。

在此处输入图片描述

新版本

\documentclass{article}
\usepackage{amsmath,mathtools}

\makeatletter
\def\gsh#1{%
  \vbox{\hbox{%
    \let\\\cr
    \offinterlineskip
    \valign{&\hb@xt@2\p@{\hss$##$\hss}\vskip.2ex\cr#1\crcr}%
  }\vskip-.36ex}%
}
\def\gshsym{\@ifstar\gsh@ssym\gsh@sym}
\def\gsh@sym#1#2{\mathrlap{\overset{#1}{\phantom{#2}}}#2}
\def\gsh@ssym#1#2{\overset{#1}{#2}{\vphantom{#2}}}
\makeatother

\newcommand\gshone{\gsh{.}}
\newcommand\gshtwo{\gsh{.&.}}
\newcommand\gshthree{\gsh{.&.&.}}

\begin{document}
$\displaystyle
\gshsym{\gshtwo\gshone}{T}^m_n
\gshsym{\gshthree\gshtwo\gshone}{T}
\gshsym{\gsh{\scriptscriptstyle*&\scriptscriptstyle*}}{F}^2
\gshsym*{\gshthree\gshthree\gshtwo\gshtwo\gshtwo}{F}^2
$
\end{document}

您使用\gshsym不超过其覆盖字母的“短”上标\gshsym*来表示更宽的上标。

在此处输入图片描述

相关内容