简单数字的垂直对齐

简单数字的垂直对齐

我需要在某些文本段落中排版一系列没有线条的分数(它们被用作比例符号)。其实很简单:

$^2_1$,$^4_2$,$^8_4$

但是当谈到时$^{12}_{6}$,这两个数字并没有垂直对齐。

如果我使用分数,$\frac{12}{6}$对齐是好的,但是水平线不应该存在。

有什么建议么?

谢谢你,A

\documentclass{article}
\begin{document}

I need this $^{12}_{6}$ aligned vertically like this $\frac{12}{6}$.

\end{document}

在所有答案之后,我不得不说它们都运行良好,但它们不会产生与相同的结果$^{12}_{6}$。当您在同一个上下文中有多个实例时,就会出现问题,我相信间距 $^{12}_{6}$是最佳的。看图:

\documentclass{article}


\newcommand{\myfrac}%  % macro with LaTeX-style syntax
    [2]{\begin{array}{@{}c@{}}\scriptstyle #1 \\[-1.2ex]\scriptstyle #2\end{array}}
\begin{document}

\noindent Myfrac plus smash as by the example by Harish and Harold compared with optimal vertical spacing: $^{1}_{2}$, \smash{$\myfrac{22}{6}$}, $^{4}_{2}$, $^{2}_{1}$; can you see the difference? My proofreader will kill me, my proofreader will kill me, my proofreader will kill me :-).


\end{document}  

第二个分数中的 2 位于下方

答案1

问题包括:“如果我使用分数 $\frac{12}{6}$,对齐效果很好,但水平线不应该存在。”这就是为什么有答案模拟分数但没有线的原因。编辑问题后,我们可以看到:“答案不会产生与 $^{12}_{6}$ 相同的结果”。当然,这并非一开始就存在的。但如果我们知道和究竟做了什么,我们就可以做到这一点。^我们_可以通过模拟这项工作\halign

% \cei^{exp}_{ind} = Center Exponent and Index
\def\cei^#1_#2{\lower\fontdimen17\textfont2\vbox{%
   \baselineskip=\fontdimen17\textfont2 \advance\baselineskip by\fontdimen14\textfont2
   \halign{\hfil$\scriptstyle##$\hfil\cr#1\cr#2\cr}%
}}

您可以在之前添加此代码\begin{document}(如果您使用 LaTeX),然后可以在文档中输入:

... $^{1}_{2}$, $\cei^{22}_{6}$, $^{4}_{2}$, $^{2}_{1}$; ...

中欧

答案2

类似于我们可以定义第二类英镑数amsmath's\genfrac可用于设置没有水平线的分数:

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}
\newcommand{\psymbol}[2]{\genfrac{}{}{0pt}{}{#1}{#2}}
\newcommand{\tpsymbol}[2]{\genfrac{}{}{0pt}{1}{#1}{#2}}
\newcommand{\dpsymbol}[2]{\genfrac{}{}{0pt}{0}{#1}{#2}}
\begin{document}
It's easy to see that $\psymbol{a}{b}$ and $\frac{a}{b}$ is always $\tpsymbol{2}{1}$ and $\tfrac{2}{1}$ and sometimes
$\psymbol{12}{6}$ and $\frac{12}{6}$. Also,
\[
  f(x,y) = \psymbol{36}{18}\ \frac{36}{18} \quad \text{while} \quad g(x) = \tpsymbol{108}{54}\ \tfrac{108}{54}.
\]
Maybe one can also define $\begin{smallmatrix}16 \\ 8\end{smallmatrix}$ and $\frac{16}{8}$.
\end{document}

amsmath还提供smallmatrix可用于设置类似垂直堆叠结构的功能。

答案3

有一个名为 的 TeX 数学模式原语\atop可以满足您的需求。但是,它使用所谓的中缀表示法,在 LaTeX 中并不广泛使用。幸运的是,创建一个 LaTeX 样式的宏并不困难,例如,\myatop模仿 LaTeX 宏的语法\frac。事实上,下面示例中的宏的构造\myatop与 LaTeX 宏的构造完全类似\frac

以下代码显示了使用此宏以及纯 TeX\atop宏和\frac宏的结果。(感谢 @wipet 的出色建议,使用的上部数字\atop现在与在内联数学模式下使用时的高度相同\frac。)

在此处输入图片描述

\documentclass{article}
\newcommand{\myatop}[2]{%  % a macro with LaTeX-style syntax
    \fontdimen10\textfont2=\fontdimen9\textfont2% using wipet's suggestion
    {\begingroup#1\endgroup\atop#2}}    
\begin{document}
inline math mode:\quad ${22\atop 6} \quad \myatop{22}{6} \quad \frac{22}{6}$

\bigskip

display math mode: $\displaystyle {22\atop6} \quad \myatop{22}{6} \quad \frac{22}{6} $
\end{document}

答案4

为什么不使用arraytabular

\documentclass{article}
\newcommand{\myfrac}%  % macro with LaTeX-style syntax
    [2]{\begin{array}{@{}c@{}}#1 \\[-0.75ex]#2\end{array}}
\begin{document}
 $\myfrac{22}{6}$, and $\myfrac{22}{6}$
\end{document}

在此处输入图片描述

如果您希望它变小:

\documentclass{article}
\newcommand{\myfrac}%  % macro with LaTeX-style syntax
    [2]{\begin{array}{@{}c@{}}\scriptstyle #1 \\[-1.2ex]\scriptstyle #2\end{array}}
\begin{document}
 $\myfrac{22}{6}$, and $\myfrac{22}{6}$

 I need this $\myfrac{12}{6}$ aligned vertically like this $\frac{12}{6}$.
\end{document}

在此处输入图片描述

以下是较小版本:

\documentclass{article}


\newcommand{\myfrac}%  % macro with LaTeX-style syntax
    [2]{\raise.12ex\hbox{$\begin{array}{@{}c@{}}\scriptstyle #1 \\[-1.35ex]\scriptstyle #2\end{array}$}}
\begin{document}

\noindent Myfrac plus smash as by the example by Harish and Harold compared with optimal vertical spacing: $^{1}_{2}$, \smash{$\myfrac{22}{6}$}, $^{22}_{6}$, $^{2}_{1}$; can you see the difference? My proofreader will kill me, my proofreader will kill me, my proofreader will kill me :-).


\end{document}

在此处输入图片描述

相关内容