\documentclass[12pt,a4paper]{article}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{centernot}
\usepackage{tabularx}
\usepackage{everypage}
\usepackage{caption}
\begin{document}
\begin{table}[h!]
\begin{flushleft}
\begin{tabular}{ cc | *{16}{p{0.1in}} }
& &$(1)$ &$(2)$ &$(3)$ &$(4)$ &$(5)$ &$(6)$ &$(7)$ &$(8)$ &$(9)$ &$(10)$ &$(11)$ &$(12)$ &$(13)$ &$(14)$ &$(15)$ &$(16)$\\
& &$0$ &$0$ &$0$ &$1$ &$0$ &$0$ &$1$ &$0$ &$0$ &$0$ &$1$ &$1$ &$1$ &$0$ &$1$ &$1$\\
& &$0$ &$0$ &$0$ &$0$ &$0$ &$1$ &$0$ &$1$ &$1$ &$1$ &$0$ &$1$ &$1$ &$1$ &$1$ &$1$\\
& &$0$ &$0$ &$1$ &$0$ &$1$ &$0$ &$0$ &$0$ &$1$ &$1$ &$1$ &$0$ &$1$ &$1$ &$1$ &$1$\\
& &$0$ &$1$ &$0$ &$0$ &$1$ &$0$ &$0$ &$1$ &$0$ &$1$ &$0$ &$1$ &$0$ &$1$ &$1$ &$1$\\
& &$0$ &$0$ &$0$ &$0$ &$0$ &$1$ &$1$ &$0$ &$1$ &$0$ &$1$ &$0$ &$0$ &$1$ &$0$ &$1$\\ \hline
&$-0000$\; $A$ &$\times$ & & &$\times$ & & & & & & & & & & & &\\
&$1000-$\; $B$ & & & &$\times$ & & &$\times$ & & & & & & & & &\\
&$01-01$\; $C$ & & & & & &$\times$ & & &$\times$ & & & & & & &\\
&$10-01$\; $D$ & & & & & & &$\times$ & & & &$\times$ & & & & &\\
&$011-1$\; $E$ & & & & & & & & &$\times$ & & & & &$\times$ & &\\
&$111-0$\; $F$ & & & & & & & & & & & & &$\times$ & &$\times$ &\\
&$00--0$\; $G$ &$\times$ &$\times$ &$\times$ & &$\times$ & & & & & & & & & & &\\
&$0--10$\; $H$ & &$\times$ & & &$\times$ & & &$\times$ & &$\times$ & & & & & &\\
&$-1-10$\; $I$ & & & & & & & &$\times$ & &$\times$ & &$\times$ & & &$\times$ &\\
&$-111-$\; $J$ & & & & & & & & & &$\times$ & & & &$\times$ &$\times$ &$\times$\\
\end{tabular}
\end{flushleft}
\caption{}
\end{table}
\end{document}
flushleft
无论我使用什么命令( , ) ,表格都会对齐到同一个位置center
。但如果稍微向左移动,它不会破坏页边距。有什么办法吗?还是由于表格大小而发生这种情况?
另外,我总共需要 17 列。但为了做到这一点,我必须c
在开头输入一个额外的内容\begin{tabular}
。这意味着总共 18c
秒。为什么会这样?
答案1
以下内容应适合可用空间:
(红线表示边距)
\documentclass[12pt,a4paper]{article}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{array}
\usepackage{caption}
\begin{document}
\begin{table}
\small
\setlength{\arraycolsep}{2.25pt}
\[
\begin{array}{@{}c l|*{16}{c}@{}}
& & (1) &(2) &(3) &(4) &(5) &(6) &(7) &(8) &(9) &(10) &(11) &(12) &(13) &(14) &(15) &(16)\\
& & 0 &0 &0 &1 &0 &0 &1 &0 &0 &0 &1 &1 &1 &0 &1 &1\\
& & 0 &0 &0 &0 &0 &1 &0 &1 &1 &1 &0 &1 &1 &1 &1 &1\\
& & 0 &0 &1 &0 &1 &0 &0 &0 &1 &1 &1 &0 &1 &1 &1 &1\\
& & 0 &1 &0 &0 &1 &0 &0 &1 &0 &1 &0 &1 &0 &1 &1 &1\\
& & 0 &0 &0 &0 &0 &1 &1 &0 &1 &0 &1 &0 &0 &1 &0 &1\\ \hline
-0000 & A &\times & & &\times & & & & & & & & & & & &\\
1000- & B & & & &\times & & &\times & & & & & & & & &\\
01-01 & C & & & & & &\times & & &\times & & & & & & &\\
10-01 & D & & & & & & &\times & & & &\times & & & & &\\
011-1 & E & & & & & & & & &\times & & & & &\times & &\\
111-0 & F & & & & & & & & & & & & &\times & &\times &\\
00--0 & G &\times &\times &\times & &\times & & & & & & & & & & &\\
0--10 & H & &\times & & &\times & & &\times & &\times & & & & & &\\
-1-10 & I & & & & & & & &\times & &\times & &\times & & &\times &\\
-111- & J & & & & & & & & & &\times & & & &\times &\times &\times\\
\end{array}
\]
\caption{}
\end{table}
\end{document}
如果您希望列宽相同,请减小字体大小,例如:
\documentclass[12pt,a4paper]{article}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{array}
\usepackage{caption}
\usepackage{calc}
\begin{document}
\begin{table}
\footnotesize
\setlength{\arraycolsep}{1.75pt}
\[
\begin{array}{@{}c l|*{16}{wc{\widthof{(16)}}}@{}}
& & (1) &(2) &(3) &(4) &(5) &(6) &(7) &(8) &(9) &(10) &(11) &(12) &(13) &(14) &(15) &(16)\\
& & 0 &0 &0 &1 &0 &0 &1 &0 &0 &0 &1 &1 &1 &0 &1 &1\\
& & 0 &0 &0 &0 &0 &1 &0 &1 &1 &1 &0 &1 &1 &1 &1 &1\\
& & 0 &0 &1 &0 &1 &0 &0 &0 &1 &1 &1 &0 &1 &1 &1 &1\\
& & 0 &1 &0 &0 &1 &0 &0 &1 &0 &1 &0 &1 &0 &1 &1 &1\\
& & 0 &0 &0 &0 &0 &1 &1 &0 &1 &0 &1 &0 &0 &1 &0 &1\\ \hline
-0000 & A &\times & & &\times & & & & & & & & & & & &\\
1000- & B & & & &\times & & &\times & & & & & & & & &\\
01-01 & C & & & & & &\times & & &\times & & & & & & &\\
10-01 & D & & & & & & &\times & & & &\times & & & & &\\
011-1 & E & & & & & & & & &\times & & & & &\times & &\\
111-0 & F & & & & & & & & & & & & &\times & &\times &\\
00--0 & G &\times &\times &\times & &\times & & & & & & & & & & &\\
0--10 & H & &\times & & &\times & & &\times & &\times & & & & & &\\
-1-10 & I & & & & & & & &\times & &\times & &\times & & &\times &\\
-111- & J & & & & & & & & & &\times & & & &\times &\times &\times\\
\end{array}
\]
\caption{}
\end{table}
\end{document}
答案2
除了指令之外\times
,似乎没有令人信服的理由对手头的表使用数学模式。
这里有一个解决方案,它允许您使用 或\times
,\checkmark
使用tabular*
环境自动将表格宽度设置为\textwidth
,并使用等宽字体作为第一列的内容。请注意,无需使用\footnotesize
即可使表格适合;\small
就可以了。
\documentclass[12pt,a4paper]{article}
\usepackage{amssymb,array,booktabs,calc}
\usepackage{caption}
\newcommand{\chmk}{$\times$} % or: \newcommand{\chmk}{\checkmark}
\begin{document}
\begin{table}
\small
\setlength{\tabcolsep}{0pt}
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} >{\ttfamily}l @{\,} r @{\,} *{16}{wc{\widthof{(16)}}}}
& & (1) &(2) &(3) &(4) &(5) &(6) &(7) &(8)
& (9) &(10 &(11)&(12)&(13)&(14)&(15)&(16) \\ \addlinespace
& & 0 &0 &0 &1 &0 &0 &1 &0 &0 &0 &1 &1 &1 &0 &1 &1\\
& & 0 &0 &0 &0 &0 &1 &0 &1 &1 &1 &0 &1 &1 &1 &1 &1\\
& & 0 &0 &1 &0 &1 &0 &0 &0 &1 &1 &1 &0 &1 &1 &1 &1\\
& & 0 &1 &0 &0 &1 &0 &0 &1 &0 &1 &0 &1 &0 &1 &1 &1\\
& & 0 &0 &0 &0 &0 &1 &1 &0 &1 &0 &1 &0 &0 &1 &0 &1\\ \midrule
-0000 & A & \chmk & & & \chmk \\
1000- & B & & & & \chmk & & & \chmk \\
01-01 & C & & & & & & \chmk & & & \chmk \\
10-01 & D & & & & & & & \chmk & & & & \chmk \\
011-1 & E & & & & & & & & & \chmk & & & & & \chmk \\
111-0 & F & & & & & & & & & & & & & \chmk & & \chmk \\ \addlinespace
00--0 & G & \chmk & \chmk & \chmk & & \chmk \\
0--10 & H & & \chmk & & & \chmk & & & \chmk & & \chmk \\
-1-10 & I & & & & & & & & \chmk & & \chmk & & \chmk & & & \chmk \\
-111- & J & & & & & & & & & & \chmk & & & & \chmk & \chmk & \chmk\\ \bottomrule
\end{tabular*}
\caption{}
\end{table}
\end{document}
答案3
Mico 答案的一个变体,没有打字机类型。相反,我定义了一个声明\shortminus
,通过该声明,连字符将变成与数字一样宽的减号。
\?
使用了本地命令$\times$
,因此编码更容易。
\documentclass[12pt,a4paper]{article}
\usepackage{amsmath,array,graphicx,booktabs}
\makeatletter
\newcommand{\shortminus}{%
\begingroup\lccode`~=`- \lowercase{\endgroup\let~}\short@minus
\mathcode`-="8000
}
\newcommand{\short@minus}{%
\resizebox{\fontcharwd\textfont0`\0}{\height}{$\m@th\std@minus$}%
}
\makeatother
\begin{document}
\begin{table}[htp!]
\setlength{\tabcolsep}{0pt}
\newcommand{\?}{$\times$} % local command for easier coding
\begin{tabular*}{\textwidth}{
@{\extracolsep{\fill}}
>{$\shortminus}l<{$}
c @{\quad}
*{16}{w{c}{1em}}
}
\toprule
& & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 &10 &11 &12 &13 &14 &15 &16 \\
\cmidrule{3-18}
& & 0 & 0 & 0 & 1 & 0 & 0 & 1 & 0 & 0 & 0 & 1 & 1 & 1 & 0 & 1 & 1 \\
& & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 1 & 1 & 0 & 1 & 1 & 1 & 1 & 1 \\
& & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 1 & 1 & 1 & 0 & 1 & 1 & 1 & 1 \\
& & 0 & 1 & 0 & 0 & 1 & 0 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 1 & 1 \\
& & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 1 & 0 & 1 & 0 & 0 & 1 & 0 & 1 \\
\midrule
-0000 & A &\? & & &\? & & & & & & & & & & & & \\
1000- & B & & & &\? & & &\? & & & & & & & & & \\
01-01 & C & & & & & &\? & & &\? & & & & & & & \\
10-01 & D & & & & & & &\? & & & &\? & & & & & \\
011-1 & E & & & & & & & & &\? & & & & &\? & & \\
111-0 & F & & & & & & & & & & & & &\? & &\? & \\
00--0 & G &\? &\? &\? & &\? & & & & & & & & & & & \\
0--10 & H & &\? & & &\? & & &\? & &\? & & & & & & \\
-1-10 & I & & & & & & & &\? & &\? & &\? & & &\? & \\
-111- & J & & & & & & & & & &\? & & & &\? &\? &\? \\
\bottomrule
\end{tabular*}
\caption{Some caption text}
\end{table}
\end{document}
该桌子符合标准尺寸。