对齐表格列中显示的数字和框

对齐表格列中显示的数字和框

在此处输入图片描述

我有以下表格,其中的列由数字和方框符号组成。不幸的是,它看起来很乱,因为数字和方框没有对齐。有没有办法对齐它们。这是我的 MWE。

\documentclass[12pt,a4paper,twoside]{report}
\usepackage{tabularx,ragged2e,booktabs,caption}
\usepackage{amsmath,amsthm,mathtools}
\begin{document}
    \begin{table}[!htbp]
    \centering
    \begin{tabular}{
    |c|c|c@{\hskip 1cm} 
    |c|c|c@{\hskip 1cm} 
    |c|c|c@{\hskip 1cm}
    }
    \cline{1-2}\cline{4-5}\cline{7-8}
    $n$ & $w_n \pmod{29}$ && $n$ & $w_n \pmod{29}$ && $n$ & $w_n \pmod{29}$ \\
    \cline{1-2}\cline{4-5}\cline{7-8}
    1 & 1 $\Box$ && 35 & 16 $\Box$ && 69 & 22 $\Box$ \\
    \cline{1-2}\cline{4-5}\cline{7-8}
    2 & 1 $\Box$ && 36 & 18 $\boxtimes$ && 70 & 4 $\Box$ \\
    \cline{1-2}\cline{4-5}\cline{7-8}
    3 & 1 $\Box$ && 37 & 5 $\Box$ && 71 & 23 $\Box$ \\
    \cline{1-2}\cline{4-5}\cline{7-8}
    4 & 19 $\boxtimes$ && 38 & 10 $\boxtimes$ && 72 & 28 $\Box$ \\
    \cline{1-2}\cline{4-5}\cline{7-8}
    5 & 13 $\Box$ && 39 & 20 $\Box$ && 73 & 22 $\Box$ \\
    \cline{1-2}\cline{4-5}\cline{7-8}
    6 & 11 $\boxtimes$ && 40 & 28 $\Box$ && 74 & 24 $\Box$ \\
    \cline{1-2}\cline{4-5}\cline{7-8}
    \end{tabular}
    \captionof{table}{$B_n=4w_n^2$} \label{table:Bnwn29} 
    \end{table}
\end{document}

答案1

我猜你想获得这样的东西:

在此处输入图片描述

总之,您的 MWE 版本既未定义也\swb未定义\Box,因此我将其(重新)定义 \swb\square来自amssymb包。为了对齐,我在每个“表”中引入了一个列,并更改了列类型:

\documentclass[12pt,a4paper,twoside]{report}
\usepackage{tabularx,ragged2e,booktabs,caption}
\usepackage{amssymb,mathtools}
\newcommand\swb{\square}

\begin{document}
    \begin{table}[!htbp]
    \centering
    \begin{tabular}{*{3}{|>{$}c<{$}
                         |>{\raggedleft $}p{1cm}<{$}@{\,}>{$}p{1cm}<{$}
                         |>{$}c<{$}@{\hskip 1cm}} }
    \cline{1-3}\cline{5-7}\cline{9-11}
n   &  \multicolumn{2}{c|}{$w_n \pmod{29}$}    
        &&  n   &  \multicolumn{2}{c|}{$w_n\pmod{29}$} 
            &&  n   &  \multicolumn{2}{c|}{$w_n\pmod{29}$}              \\
    \cline{1-3}\cline{5-7}\cline{9-11}
1   & 1  & \swb         && 35   & 16  & \swb        && 69   & 22  & \swb\\
    \cline{1-3}\cline{5-7}\cline{9-11}
2   & 1  & \swb         && 36   & 18  & \boxtimes   && 70   &  4  & \swb\\
    \cline{1-3}\cline{5-7}\cline{9-11}
3   & 1  & \swb         && 37   & 5   & \swb        && 71   & 23  & \swb\\
    \cline{1-3}\cline{5-7}\cline{9-11}
4   & 19 & \boxtimes    && 38   & 10  & \boxtimes   && 72   & 28  & \swb\\
    \cline{1-3}\cline{5-7}\cline{9-11}
5   & 13 & \swb         && 39   & 20  & \swb        && 73   & 22  & \swb\\
    \cline{1-3}\cline{5-7}\cline{9-11}
6   & 11 & \boxtimes    && 40   & 28  & \swb        && 74   & 24  & \swb\\
    \cline{1-3}\cline{5-7}\cline{9-11}
7   & 15 &              && 41   & 10  & \swb        && 75   & 10  &            \\
    \cline{1-3}\cline{5-7}\cline{9-11}
    \end{tabular}
\caption{$B_n=4w_n^2$} 
    \label{table:Bnwn29}
    \end{table}
\end{document}

这就是你要找的吗?

编辑: 看来我的答案很接近你想要得到的:-),所以有一些解释:

  • 选择的列类型p{...}与数字和符号的列相同,可以获得
  • 上面的 MWE 中列之间的间距p{...}留为@{...}。暂时设置为@{\,}。如果您希望有更大的空间,那么您可以将其替换@{\,}@{\hspace{<length>}
  • 也许表格列之间的自然距离就足够了。在这种情况下,您只需删除@{\,}(请参见下面此案例的表格图像)

在此处输入图片描述

并更改了表列选项的定义:

   \begin{tabular}{*{3}{|>{$}c<{$}
                         |>{\raggedleft $}p{1cm}<{$} >{$}p{1cm}<{$}
                         |>{$}c<{$}@{\hskip 1cm}} }

附录:让我展示一下上述表格设计的两种变体,它们更符合我的口味:

在此处输入图片描述

它的 MWE 为:

\documentclass[12pt,a4paper,twoside]{report}
\usepackage{tabularx,ragged2e,booktabs,caption}
\usepackage{amssymb,mathtools}
\newcommand\swb{\square}

\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\newcolumntype{R}{>{\raggedleft \arraybackslash}X}

\begin{document}
    \begin{table}[htb]
    \centering
    \begin{tabularx}{0.25\textwidth}[t]{%
                    |>{$}c<{$}
                    |>{$}R<{$} >{$}L<{$}|}
    \hline
n   &   \multicolumn{2}{c|}{$w_n \pmod{29}$}    \\    
    \hline
1   &   1   & \swb                              \\        
    \hline
    \end{tabularx}\hfil
    \begin{tabularx}{0.3\textwidth}[t]{%
                    |>{$}c<{$}
                    |>{$}R<{$} >{$}L<{$}|}
    \hline
n   &   \multicolumn{2}{c|}{$w_n \pmod{29}$}    \\
    \hline
35   & 16  & \swb                               \\
    \hline
    \end{tabularx}
\hfil
    \begin{tabularx}{0.3\textwidth}[t]{%
                    |>{$}c<{$}
                    |>{$}R<{$} >{$}L<{$}|}
    \hline
n   &   \multicolumn{2}{c|}{$w_n \pmod{29}$}    \\
    \hline
69   & 22  & \swb                               \\
    \hline
    \end{tabularx}
\caption{$B_n=4w_n^2$} 
    \label{table:Bnwn29}
    \end{table}
    \begin{table}[htb]
    \centering
    \begin{tabularx}{0.25\textwidth}[t]{%
                     >{$}c<{$}
                     >{$}R<{$} >{$}L<{$}}
    \toprule
n   &   \multicolumn{2}{c}{$w_n \pmod{29}$}     \\
    \midrule
1   &   1   & \swb                              \\
    \bottomrule
    \end{tabularx}\hfil
    \begin{tabularx}{0.3\textwidth}[t]{%
                     >{$}c<{$}
                     >{$}R<{$} >{$}L<{$}}
    \toprule
n   &   \multicolumn{2}{c}{$w_n \pmod{29}$}     \\
    \midrule
35   & 16  & \swb                               \\
    \bottomrule
    \end{tabularx}
\hfil
    \begin{tabularx}{0.3\textwidth}[t]{%
                     >{$}c<{$}
                     >{$}R<{$} >{$}L<{$} }
    \toprule
n   &   \multicolumn{2}{c}{$w_n \pmod{29}$}     \\
    \midrule
69   & 22  & \swb                               \\
    \bottomrule
    \end{tabularx}
\caption{$B_n=4w_n^2$}
    \label{table:Bnwn29}
    \end{table}
\end{document}

答案2

这是一个解决方案,siunitx表格中增加了 6 列(因为列头较宽)。由于我不知道您为什么\captionof{table}在表格中使用,因此我恢复了正常\caption

\documentclass[12pt,a4paper,twoside]{report}
\usepackage{tabularx,ragged2e,booktabs,caption}
\usepackage{amsthm,amssymb, mathtools}
\usepackage{siunitx}
\newcommand\myBox{\enspace\ensuremath{\Box}}
\newcommand\Boxt{\enspace\ensuremath{\boxtimes}}
\def\modhead{\multicolumn{3}{c|}{$w_n \pmod{29}$}}

\begin{document}

    \begin{table}[!htbp]
    \centering\sisetup{table-format =2.0, table-number-alignment=center, table-space-text-pre = {$\Box $}}
    \setlength\extrarowheight{3pt}
    \begin{tabular}{
    |c|cSc|c@{\hskip 1cm}
    |c|cSc|c@{\hskip 1cm}
    |c|cSc|c@{\hskip 1cm}
    }
    \cline{1-4}\cline{6-9}\cline{11-14}
    $n$ & \modhead && $n$ & \modhead  && $n$ &  \modhead  \\
    \cline{1-4}\cline{6-9}\cline{11-14}
    1 &  & 1 \myBox & & & 35 & & 16  \myBox   & & & 69 & & 22 \myBox & \\
    \cline{1-4}\cline{6-9}\cline{11-14}
    2 & &  1  \myBox   & & & 36 & & 18 \Boxt & & & 70 & & 4 \myBox & \\
    \cline{1-4}\cline{6-9}\cline{11-14}
    3 & &  1  \myBox  & & & 37 & & 5  \myBox  & & & 71 & & 23 \myBox & \\
    \cline{1-4}\cline{6-9}\cline{11-14}
    4 & &  19\Boxt & & & 38 & & 10 \Boxt  & & & 72 & & 28 \myBox & \\
    \cline{1-4}\cline{6-9}\cline{11-14}
    5 &  & 13  \myBox  & & & 39  & & 20  \myBox  & & & 73 & & 22 \myBox & \\
    \cline{1-4}\cline{6-9}\cline{11-14}
    6 &  & 11 \Boxt  & & & 40 & & 28  \myBox  & & & 74 & & 24 \myBox & \\
    \cline{1-4}\cline{6-9}\cline{11-14}
    \end{tabular}
    \caption{$B_n=4w_n^2$} \label{table:Bnwn29}
    \end{table}

\end{document} 

在此处输入图片描述

答案3

以下示例使用表格。这简化了表格的构造,并且更易于维护,尤其是在数据发生变化并需要重新排列时。

第一列显示与包的对齐siunitx,第二列使用不同的方法:

  • 通过为一位数字添加一位不可见的数字来对齐数字。作为简写,活动字符~在本地重新定义。

  • 这些框通过三个本地定义的宏进行设置:

    • \B:一个空盒子
    • \X:带十字的方框
    • \N:没有盒子,但有盒子的水平空间。

    通过重新定义这些宏,可以轻松地重新定义方框符号。示例使用了包的\Square和。\XBoxwasysym

  • 行数大大减少,并且剩余的几条水平线用包的宏设置booktabs,以获得更好的规则和更好的垂直间距。

完整示例:

\documentclass[12pt, a4paper, twoside]{report}

\usepackage{amsmath}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{wasysym}

\begin{document}
  \begin{table}
    \centering
    \newcommand*{\MyTable}[1]{%
      \begin{tabular}{
        S[table-format=2]
        c
      }%
        \toprule
        $n$ & $w_n\pmod{29}$\\
        \midrule
        #1%
        \bottomrule
      \end{tabular}%
    }
    \def\B{\Square}
    \def\X{\XBox}
    \def\N{\hphantom{\XBox}}
    \def~{\hphantom{0}}

    \MyTable{
       1 & ~1 \B\\
       2 & ~1 \B\\
       3 & ~1 \B\\
       4 & 19 \X\\
       5 & 13 \B\\
       6 & 11 \X\\
       7 & 15 \N\\
       8 & ~9 \B\\
       9 & 13 \B\\
      10 & 18 \N\\
      11 & ~4 \B \\
    }\hfill
    \MyTable{
      35 & 16 \B\\
      36 & 18 \X\\
      37 & ~5 \B\\
      38 & 10 \X\\
      39 & 20 \B\\
      40 & 28 \B\\
      41 & 10 \X\\
      42 & 15 \N\\
      43 & 13 \B\\
      44 & 21 \N\\
      45 & ~1 \B\\
    }\hfill
    \MyTable{
      69 & 22 \B\\
      70 & ~4 \B\\
      71 & 23 \B\\
      72 & 28 \B\\
      73 & 22 \B\\
      74 & 24 \B\\
      75 & 10 \N\\
      76 & ~9 \B\\
      77 & ~5 \B\\
      78 & ~1 \B\\
      79 & 24 \B\\
    }
  \end{table}
\end{document}

结果

相关内容