我想找到一种方法来更好地对齐表格中的带符号分数。请看以下示例:
\documentclass{article}
\usepackage{amsmath}
\usepackage{booktabs}
\begin{document}
\begin{table}
\centering
\begin{tabular}{rr} \toprule
$\alpha$ & $\beta$ \\ \midrule
$-\frac{9}{2}$ & $-\frac{1}{6}$ \\[0.8ex]
$-\frac{7}{2}$ & $\frac{1}{30}$ \\[0.5ex]
\bottomrule
\end{tabular}
\end{table}
\end{document}
得出:
我不喜欢第二列的外观,我认为如果1/30
将其与 居中对齐,效果会更好1/6
。通过反复尝试,我注意到将第二列的类型更改为并在 前面c
添加,即\phantom{-}
1/30
\begin{table}
\centering
\begin{tabular}{rc} \toprule
$\alpha$ & $\beta$ \\ \midrule
$-\frac{9}{2}$ & $-\frac{1}{6}$ \\[0.8ex]
$-\frac{7}{2}$ & $\phantom{-}\frac{1}{30}$ \\[0.8ex]
\bottomrule
\end{tabular}
\end{table}
我得到了我认为更好的结果:
但是,这要求我手动\phantom{-}
为表中的每个正条目添加命令:我想避免这种情况,因为表很大。所以我有两个问题:
- 有没有办法在 LaTeX 中或通过包可以自动添加
\phantom{-}
? - 您知道有没有更好的方法来获得我想要的分数对齐方式?
答案1
我认为标准居中对齐没有任何问题。考虑一下有-1/6
和的情况-1/30
:如果将分数居中对齐,则减号将消失。
我可以为包含负数条目的列提供一种新的列类型。
\documentclass{article}
\usepackage{amsmath,mathtools}
\usepackage{booktabs,array,calc}
\newcolumntype{n}{@{\hspace{\dimexpr\fontcharwd\textfont2 0+\arraycolsep}}c}
\newcommand{\?}{\mathllap{-}}
\newcommand{\mcn}[1]{%
\multicolumn{1}{c}{\kern-\fontcharwd\textfont2 0 #1}%
}
\begin{document}
\begin{table}
\centering
$\begin{array}{nnc}
\toprule
\mcn{\alpha} & \mcn{\beta} & \gamma \\
\midrule
\?\frac{9}{2} & \?\frac{1}{6} & 2 \\[0.8ex]
\?\frac{7}{2} & \frac{1}{30} & 3 \\[0.5ex]
\bottomrule
\end{array}$
\end{table}
\end{document}