如何确定表格中可以使用的宽度

如何确定表格中可以使用的宽度

我有一张固定宽度的表格,我想在其中放置一些东西,例如一个图形或其他框。但问题是我无法确定我想放入表格中的对象的宽度。我尝试使用表格的宽度,但似乎表格不喜欢这样(也许表格中可用的宽度小于表格本身的宽度),并且它就像以下一样损坏了:

顺便说一句,我想让这个表格延伸到页面末尾,即使表格底部可能有一些空白区域。就像 Microsoft Word 一样,我可以自己定义表格的大小,而不必担心对齐和其他任何事情。如果有人有其他想法可以做到这一点,请告诉我。提前谢谢!这是我的代码:

\newcolumntype{C}{>{\centering\arraybackslash}X}
\begin{tabularx}{\textwidth}{|c|C|c|C|c|C|}
  \hline
  Name &Richard &Class &1112101 &NO. &1111200117\\
  \hline
  \multicolumn{6}{|l|}{
  \parbox{\textwidth}{Some text}
  \hline
\end{tabularx}

答案1

您应该使用p固定宽度的 aragraph-column,以消除列分隔和规则宽度(在本例中每种两个):

在此处输入图片描述

\documentclass{article}
\usepackage{array,tabularx,lipsum}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\begin{document}

\noindent
\begin{tabularx}{\textwidth}{|c|C|c|C|c|C|}
  \hline
  Name & Richard & Class & 1112101 & NO. & 1111200117 \\
  \hline
  \multicolumn{6}{|p{\dimexpr\textwidth-2\tabcolsep-2\arrayrulewidth}|}{%
    \lipsum*[2]% Some text

    \rule{0pt}{10\baselineskip}% Vertical strut
    } \\
  \hline
\end{tabularx}

\end{document}

单元格末端的垂直支柱将水平线向下推,留下一些空白空间。

答案2

编辑:@Mico 下面是正确的答案,考虑到了规则宽度。

所以我花了 15 分钟思考这个问题,但我无法解决。

使用@Werner 的解决方案(我同意这应该是正确的答案)我在桌子的边缘发现了一些小缝隙。

通过反复试验,我得到了正确的段落尺寸大小 \textwidth-12.7995pt,精确到小数点后几位,只要我放大后仍然能看到差异(谁知道我的 pdf 渲染器是否真的这么准确)。Werner 的解决方案是 2\tabcolsep = 12.0pt(设置为默认文章时)。有人知道为什么会有 .7995pt 的差异吗?

区别如下,上面是我的,下面是 Werner 的:

在此处输入图片描述

以及 MWE:(现在包括 Mico 的回答)

\documentclass{article}
\usepackage{tabularx}
\usepackage{array}
\usepackage{calc}
\usepackage{lipsum}

\newcolumntype{C}{>{\centering\arraybackslash}X}

\begin{document}
\noindent
\textbf{Mico's Correct Answer:}\\\\
\begin{tabularx}{\textwidth}{|c|C|c|C|c|C|}
    \hline
    Name &Richard &Class &1112101 &NO. &1111200117\\
    \hline
    \multicolumn{6}{|p{\textwidth-2\tabcolsep-2\arrayrulewidth}|}{%
    \lipsum*[2]
    }\\
    \hline
\end{tabularx}
\vspace\baselineskip\\
\noindent
My Estimated Solution:\\\\
\begin{tabularx}{\textwidth}{|c|C|c|C|c|C|}
    \hline
    Name &Richard &Class &1112101 &NO. &1111200117\\
    \hline
    \multicolumn{6}{|p{\textwidth-12.7995pt}|}{
    \lipsum*[2]
    }\\
    \hline
\end{tabularx}
\vspace\baselineskip\\
\noindent
Werner's Initial Solution\\\\
\begin{tabularx}{\textwidth}{|c|C|c|C|c|C|}
    \hline
    Name & Richard & Class & 1112101 & NO. & 1111200117 \\
    \hline
    \multicolumn{6}{|p{\dimexpr\textwidth-2\tabcolsep}|}{%
        \lipsum*[2]% Some text

        \rule{0pt}{10\baselineskip}% Vertical strut
        } \\
    \hline
\end{tabularx}
\end{document}

为什么 2\tabcolsep 不能完美排列?

相关内容