Latex 表格特定行的小数点对齐 - dcolumn

Latex 表格特定行的小数点对齐 - dcolumn

我正在尝试整理一个由文本和数字组成的表格。我希望大多数数字的小数点对齐。然而,有些单元格包含文本,因此只需居中即可。我设法使用 \multicolumn 命令正确对齐特定单元格。现在我想知道是否有更有效的方法来对齐整行(例如第 1 行),而不是为该行中的每个单元格编写 \multicolumn 命令。下面您可以看到我的表格现在的样子。

在此处输入图片描述

\documentclass{article}

% Column alignment
\usepackage{dcolumn}
\newcolumntype{d}[1]{D{.}{.}{#1}}

\begin{document}

\begin{tabular}{lcc}
Column 1 & Column 2 & Column 3 \\
Row 1 & \multicolumn{1}{d{3.2}}{555} & 555\\
Row 2 & \multicolumn{1}{d{3.2}}{7.77} & 7.77 \\
Row 3 & \multicolumn{1}{d{3.2}}{99.9} & 99.9 \\
Row 4 & Text 1 & Text 2
\end{tabular}

\end{document}

答案1

您可以使用siunitx,其中不适合数字方案的单元格只需进行支撑并自动居中。

\documentclass{article}

\usepackage{siunitx} % better

% the following two lines are not necessary for siunitx
\usepackage{dcolumn}
\newcolumntype{d}[1]{D{.}{.}{#1}}

\begin{document}

\section{With \texttt{dcolumn}}

\begin{tabular}{ld{3.2}c}
Column 1 & \multicolumn{1}{c}{Column 2} & Column 3 \\
Row 1 & 555 & 555\\
Row 2 & 7.77 & 7.77 \\
Row 3 & 99.9 & 99.9 \\
Row 4 & \multicolumn{1}{c}{Text 1} & Text 2
\end{tabular}

\section{With \texttt{siunitx}}

\begin{tabular}{lS[table-format=3.2]c}
Column 1 & {Column 2} & Column 3 \\
Row 1 & 555 & 555\\
Row 2 & 7.77 & 7.77 \\
Row 3 & 99.9 & 99.9 \\
Row 4 & {Text 1} & Text 2
\end{tabular}

\end{document}

在此处输入图片描述

答案2

为了减少\multicolumn{1}{c}{...}多次书写的繁琐,只需设置一个快捷宏,例如,

\newcommand\mc[1]{\multicolumn{1}{c}{#1}}

这将大大加快表创建速度。

如果完全实现了这个想法,你的代码将会是这样的:

\documentclass{article}
\usepackage{dcolumn}
\newcolumntype{d}[1]{D{.}{.}{#1}}
\newcommand\mc[1]{\multicolumn{1}{c}{#1}} % handy shortcut macro
\begin{document}
\begin{tabular}{ l d{3.2} c }
  Column 1 & \mc{Column 2} & Column 3 \\ % <-- note use of \mc
  Row 1    & 555           & 555    \\
  Row 2    &   7.77        &   7.77 \\
  Row 3    &  99.9         &  99.9  \\
  Row 4    & \mc{Text 1}   & Text 2  % <-- note use of \mc
\end{tabular}
\end{document}

答案3

两种方式:

  1. 直接使用\phantom,或

  2. 融入数字和小数点的\phantom活动字符。封装在环境中。#!ptabular

妇女权利委员会:

\documentclass{article}
\catcode`\#=\active %
\def#{\phantom{0}}
\catcode`!=\active %
\def!{\phantom{.}}
\catcode`\#=6 %
\catcode`!=12 %
\newenvironment{ptabular}{\catcode`\#=\active \catcode`!=\active \begin{tabular}}{\end{tabular}}
\begin{document}

\begin{tabular}{lcc}
Column 1 & Column 2 & Column 3 \\
Row 1 & 555\phantom{.00} & 555\\
Row 2 & \phantom{00}7.77 & 7.77 \\
Row 3 & \phantom{0}99.9\phantom{0} & 99.9 \\
Row 4 & Text 1 & Text 2
\end{tabular}

\begin{ptabular}{lcc}
Column 1 & Column 2 & Column 3 \\
Row 1 & 555!## & 555\\
Row 2 & ##7.77 & 7.77 \\
Row 3 & #99.9# & 99.9 \\
Row 4 & Text 1 & Text 2
\end{ptabular}
\end{document}

在此处输入图片描述

相关内容