单元格的最小表格宽度是多少?

单元格的最小表格宽度是多少?

我有点不知所措,因为我想让这个表格(48 列,我知道它很大……但我需要这个)适合 A4 纸,但似乎有一个单元格的表格最小宽度,不是吗?例如,1pt 和 0.001pt 之间没有区别。

谢谢你的帮助。

\documentclass[a4paper,12pt]{article}

\usepackage{array}

\begin{document}

\begin{table}[htp]
\begin{center}
    \begin{tabular*}{\textwidth}{| *{48}{>{\centering\arraybackslash}m{0.1pt}|}}
        \hline
         & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\
        \hline
    \end{tabular*}
\end{center}    
\end{table}

\end{document}

答案1

这是列之间的最小距离,称为tabcolsep。您可以将其设置为零 --- 然后手动管理:

\setlength{\tabcolsep}{0pt}

看:

\documentclass[a4paper,12pt]{article}
\usepackage{array}
\begin{document}
\begin{table}[htp]
\begin{center}
    \setlength{\tabcolsep}{0pt}
    \begin{tabular*}{\textwidth}{| *{48}{>{\centering\arraybackslash}m{5pt}|}}
        \hline
         & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & \\
        \hline
    \end{tabular*}
\end{center}    
\end{table}
\end{document}

在此处输入图片描述

您必须考虑垂直线的宽度(我认为默认为 0.4pt),在这种情况下,您需要一些拉伸来“填充空间”(现在还不够满),例如:

 \setlength{\tabcolsep}{0pt}
    \begin{tabular*}{\textwidth}{| *{48}{%
            @{\extracolsep{\fill}}%
            >{\centering\arraybackslash} m{7pt}|%
            @{\extracolsep{\fill}}}%
        }
        \hline
         .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .& .\\
        \hline
    \end{tabular*}

在此处输入图片描述

对于更复杂的空间分布,也许tabularx是更好的选择。

答案2

您可以根据需要将p(或m或)列的内容宽度设置得尽可能小(例如)但是默认情况下列的两侧都有空间,默认值为 6pt,所以您可能需要在这里设置。b0pt\tabcolsep\setlength\tabcolsep{0pt}

另请注意,您应该使用

\begin{tabular}

不是

\begin{tabular*}{\textwidth}

如果确实使用,tabular*那么您需要使用@{\extracolsep{\fill}}来在列之间留出额外的空间,以便 tex 可以达到规定的宽度。

相关内容