我正在尝试使用 Latex 来呈现财务报表。大部分工作涉及表格环境,其中数字显示在我已设置为右侧不规则的列中。我的问题是对齐数字,以便括号中的负数与上下正数对齐。没有小数点可以用来对齐数字。我试过添加hspace
正数,但这不起作用; 也不起作用\quad
。\qquad
无法从谷歌等处找到任何帮助。这就是我希望的 mwe。
\documentclass[12pt]{report}
\usepackage[top=.8in,bottom=.89in,left=1.25in,right=1.5in]{geometry}
\usepackage[UKenglish]{babel}
\usepackage{amsmath,amssymb,mathtools}
\usepackage{array,booktabs}
\usepackage{parskip}
\usepackage{siunitx}
\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\begin{document}
\begin{tabular}{p{3.5in}p{1in}R{1in}} %
Turnover & & 24,500\\
Direct Costs & & (12,250)\\
Gross Profit & & 12,500\\
\end{tabular}
\end{document}
我是在试图做不可能的事还是忽略了一些显而易见的事情?任何帮助都将不胜感激。
答案1
由于您已开始加载siunitx
, 用它。
代码
\documentclass[varwidth]{standalone}
\usepackage{siunitx}
\begin{document}\noindent
\begin{tabular}{lS[table-format=5.0, table-space-text-pre={(},table-space-text-post={)}]}
Turnover & 24500 \\
Direct Costs & {(}12250{)} \\
Gross Profit & 12500
\end{tabular}
\end{document}
输出
答案2
您可以使用dcolumn
十进制数来对齐,
(或者.
如果您愿意)`。
新的列类型可以通过 来定义D{,}{,}{4}
。2,
将 设置,
为输入和输出分隔符,4
代表要对齐的小数点。
(我稍微修改了你的代码。)
代码
\documentclass[12pt]{report}
\usepackage[top=.8in,bottom=.89in,left=1.25in,right=1.5in]{geometry}
\usepackage{dcolumn}
\newcolumntype{d}{D{,}{,}{4}}
\begin{document}
\begin{tabular*}{.95\linewidth}{@{\extracolsep{\fill}}ld@{}}
Turnover & 24,500 \\
Direct Costs & (12,250)\\
Gross Profit & 12,500 \\
\end{tabular*}
\end{document}
答案3
一个简单的技巧是通过以下方式打印正数的不可见括号\hphantom
:
\documentclass[12pt]{report}
\usepackage[top=.8in,bottom=.89in,left=1.25in,right=1.5in]{geometry}
\usepackage[UKenglish]{babel}
\usepackage{amsmath,amssymb,mathtools}
\usepackage{array,booktabs}
\usepackage{parskip}
\usepackage{siunitx}
\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\begin{document}
\begin{tabular}{p{3.5in}p{1in}R{1in}} %
Turnover & & 24,500\hphantom{)}\\
Direct Costs & & (12,250)\\
Gross Profit & & 12,500\hphantom{)}\\
\end{tabular}
\end{document}