如何水平对齐上标中的符号

如何水平对齐上标中的符号

在以下示例中,我想要水平对齐上标中的两个调整大小的圆圈:

\documentclass{article}
\usepackage{relsize}

\begin{document}
$A^{  \mathlarger{\circ}\mathsmaller{\circ} } $  
\end{document}

已提出相关问题这里,但它似乎没有针对这个特定问题提供解决方案。

答案1

像这样?

\documentclass{article}
\usepackage{relsize}
\usepackage{amsmath}

\begin{document}

$A^{\substack{ \mathlarger{\circ}\\[-0.75ex]\mathsmaller{\circ}}} $

\end{document} 

在此处输入图片描述

编辑

为了使符号在同一轴上对齐,可以使用以下代码:

$A^{\raisebox{\height}{\raisebox{-0.5\height}{$ \mathlarger{\circ} $}\raisebox{-0.5\height}{$ \mathsmaller{\circ} $}}} $

在此处输入图片描述

编辑:根据@Campa 的建议,\vcenterTeX 原始结果是用于水平对齐的更简单的代码:

$ A^{\vcenter{\hbox{$\mathlarger{\circ}$}}\vcenter{\hbox{$\mathsmaller{\circ}$}}} $

答案2

我会定义一个特殊的\xcirc命令:

\documentclass{article}
\usepackage{relsize}

\makeatletter
\newcommand{\xcirc}[1][]{%
  % ensure it's used in math and consider it as an Ord atom
  % \mathpalette will remember the current math style
  \mathord{\mathpalette{\james@xcirc}{#1}}%
}
\newcommand{\james@xcirc}[2]{%
  % center vertically with respect to the math axis
  \vcenter{\hbox{$\m@th#1\@nameuse{james@#2@size}{\circ}$}}%
}
\let\james@@size\@firstofone
\let\james@l@size\mathlarger
\let\james@s@size\mathsmaller
\makeatother

\begin{document}

$A^{\xcirc[l]\xcirc[s]}$

$\scriptstyle A^{\xcirc[l]\xcirc[s]}$

{\Large $A^{\xcirc[l]\xcirc[s]}$\par}

\end{document}

在此处输入图片描述

为了方便输入,的可选参数\xcirc只是一个字母(l表示“更大”,s表示“更小”),我将其定义\james@<arg>@size为将其转换为正确的调用\mathlarger\mathsmaller(没有可选参数将使用标准大小,如{\circ})。

您可能希望\xcirc[ll]通过添加来允许

\newcommand{\james@ll@size}[1]{%
  \mathlarger{\mathlarger{#1}}%
}

所以你申请了\mathlarger两次。 同样适用于\xcirc[ss]

相关内容