我有以下表格,其中的列由数字和方框符号组成。不幸的是,它看起来很乱,因为数字和方框没有对齐。有没有办法对齐它们。这是我的 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
和。\XBox
wasysym
行数大大减少,并且剩余的几条水平线用包的宏设置
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}