半级上(下)标

半级上(下)标

有没有办法实现上标或下标出现在变量的一半?在左边或右边..

我找到了这个答案,但似乎不适用 如何调整上标的高度?

谢谢!

答案1

如果希望上标的基线位于之前高度的一半,可以使用以下代码:

\documentclass{article}

\newcommand{\halfscript}[2]{\settoheight{\hght}{#1}{#1}\raisebox{.5\hght}{$\scriptstyle{#2}$}}

\newlength{\hght}

\begin{document}
\[
\halfscript{A}{x}\halfscript{a}{x}
\]
\end{document}

这将产生输出

在此处输入图片描述

另一方面,如果你想要脚本符号居中对于前一个字符,使用代码

\documentclass{article}
\usepackage{calc}

\newcommand{\halfscript}[2]{\settoheight{\oneheight}{#1}\settoheight{\twoheight}{$\scriptstyle{#2}$}{#1}\raisebox{.5\oneheight-.5\twoheight}{$\scriptstyle{#2}$}}

\newlength{\oneheight}
\newlength{\twoheight}

\begin{document}
\[
\halfscript{A}{x}\halfscript{a}{x}
\]
\end{document}

这将产生输出

在此处输入图片描述

请注意,calc减去高度时需要用到包裹。

要获取左侧的脚本,请使用宏

\newcommand{\prehalfscript}[2]{\settoheight{\oneheight}{#1}\settoheight{\twoheight}%
    {$\scriptstyle{#2}$}\raisebox{.5\oneheight-.5\twoheight}{$\scriptstyle{#2}$}{#1}}

然后命令\prehalfscript{B}{x}\prehalfscript{a}{x}将产生

在此处输入图片描述

答案2

\valign。享受就好,别问。

\documentclass{article}

\newcommand{\halfscript}[2]{%
  \mathord{\hbox{% ensure math mode
    \valign{%
      \vfil##\vfil\cr
      \hbox{$#1$}\cr
      \hbox{$\scriptstyle#2$}\cr
    }%
    \kern\scriptspace
  }}%
}
\newcommand{\prehalfscript}[2]{%
  \mathord{\hbox{% ensure math mode
    \kern\scriptspace
    \valign{%
      \vfil##\vfil\cr
      \hbox{$\scriptstyle#2$}\cr
      \hbox{$#1$}\cr
    }%
  }}%
}

\begin{document}

X $\halfscript{A}{x} \halfscript{a}{x}$ X

X $\prehalfscript{A}{x} \prehalfscript{a}{x}$ X

\end{document}

在此处输入图片描述

\valign命令是的“转置” \halign,因此我们对垂直框进行对齐,以最大的框为中心;参考点将位于框的底部,这将是最终的粘合点。

改进的版本将根据原子核的高度而不是高度和深度将“半标”置于中心,这与下标和上标的情况类似。

\documentclass{article}

\makeatletter
\newcommand{\halfscript}[2]{%
  \mathord{%
   \setbox\z@=\hbox{% ensure math mode
      \valign{%
        \vfil##\vfil\cr
        \hbox{$#1$}%
        \xdef\halfscript@dp{\the\prevdepth}%
        \kern-\prevdepth
        \cr
        \hbox{$\scriptstyle#2$}\cr
      }%
      \kern\scriptspace
    }%
  \dp\z@=\halfscript@dp\box\z@
  }%
}
\newcommand{\prehalfscript}[2]{%
  \mathord{%
    \setbox\z@=\hbox{% ensure math mode
      \kern\scriptspace
      \valign{%
        \vfil##\vfil\cr
        \hbox{$\scriptstyle#2$}\cr
        \hbox{$#1$}%
        \xdef\halfscript@dp{\the\prevdepth}%
        \kern-\prevdepth
        \cr
      }%
    }%
  \dp\z@=\halfscript@dp\box\z@
  }%
}
\makeatother

\begin{document}

X $\halfscript{A}{x} \halfscript{a}{x}$ X

X $\prehalfscript{A}{x} \prehalfscript{a}{x}$ X

X $\halfscript{p}{x}$ $\prehalfscript{d}{x}$

\end{document}

在此处输入图片描述

相关内容