我有一张固定宽度的表格,我想在其中放置一些东西,例如一个图形或其他框。但问题是我无法确定我想放入表格中的对象的宽度。我尝试使用表格的宽度,但似乎表格不喜欢这样(也许表格中可用的宽度小于表格本身的宽度),并且它就像以下一样损坏了:
顺便说一句,我想让这个表格延伸到页面末尾,即使表格底部可能有一些空白区域。就像 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 不能完美排列?