左对齐表格

左对齐表格
\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}

该桌子符合标准尺寸。

在此处输入图片描述

相关内容