表格列对齐:将所有数字(其中一些位于 fbox 中)右对齐

表格列对齐:将所有数字(其中一些位于 fbox 中)右对齐

我可能有一个非常简单的问题。我正在尝试格式化一个数字表,所有列都向右对齐。该表包含数字,我希望其中一些数字位于“框架”中(例如:\fbox{42})。请参阅以下代码:

\documentclass[12pt]{article}

\begin{document}

    \begin{table}
        \centering
        \begin{tabular}{|*{4}{r|}}
            \fbox{0}    &   0       &   0       &   0   \\
            \fbox{11}   &   11      &   11      &   11  \\
                2       &\fbox{2}   &   2       &   2   \\
                3       &   3       &\fbox{3}   &   3   \\
                44      &\fbox{44}  &   44      &   44  \\
        \end{tabular}
    \end{table}

\end{document}

这段代码的问题是 fboxes 中的数字向左移动了一点,这是我不想要的。我希望数字向右对齐,但我认为实际上是 fboxes 向右对齐。

有什么建议吗?谢谢!

答案1

你可以使用一些\ooalign魔法。

\documentclass[12pt]{article}

\newcommand*\phantomfbox[1]{{%
  \ooalign{#1\cr\hidewidth\fbox{\phantom{#1}}\hidewidth\cr}}}

\begin{document}

    \begin{table}
        \centering
        \begin{tabular}{|*{4}{r|}}
            \phantomfbox{0}  & 0                & 0               & 0  \\
            \phantomfbox{11} & 11               & 11              & 11 \\
                2            & \phantomfbox{2}  & 2               & 2  \\
                3            & 3                & \phantomfbox{3} & 3  \\
                44           & \phantomfbox{44} & 44              & 44 \\
        \end{tabular}
    \end{table}

\end{document}

在此处输入图片描述

相关内容