我需要在某些文本段落中排版一系列没有线条的分数(它们被用作比例符号)。其实很简单:
$^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}
答案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
为什么不使用array
或tabular
?
\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}