我正在尝试重现以下表格布局:
图。1:所需输出(在互联网上找到)。
第一个问题:
我可以水平和垂直地将多个单元格合并为一个单元格(使用\multicolumn
和\multirow
),但我不知道如何将一个单元格拆分为多个单元格。我该怎么做?
最小工作示例:
\documentclass[11pt, a4paper]{article}
\usepackage{lmodern}
\usepackage{array}
\usepackage{tabularx}
\begin{document}
\scriptsize
\setlength{\extrarowheight}{0.2em}
\noindent\begin{tabularx}{\textwidth}{!{\vrule width 1pt}p{4cm} | X !{\vrule width 1pt}}
\noalign{\hrule height 1pt}
Question one & Question two\\[0.5cm] \hline
Question three & Question four\\[1cm] \noalign{\hrule height 1pt}
Question five & Question six\\[0.5cm] \hline
\multicolumn{2}{!{\vrule width 1pt} l !{\vrule width 1pt}}{Question seven}\\[1cm]
\noalign{\hrule height 1pt}
\end{tabularx}
\end{document}
我能够使用无缝连接两个表\vskip-0.7mm
,但是在进行许多各种更改(例如字体大小)之后必须进行调整,因此我更喜欢单个表解决方案。
编辑(2011年7月31日):
图 2:另一个tabular
或tabularx
一个细胞内部并没有给出令人满意的结果。
图3:X
列的垂直对齐问题tabularx
。
代码的相关部分:
\begin{tabularx}{\textwidth}{|p{4cm}|X|}
\hline
{\begin{tabularx}{\linewidth}{@{} l | X @{}}
Some text & Other text\\[1cm]
\end{tabularx}} & Something else\\
\hline
\end{tabularx}
答案1
分裂细胞:您可以嵌套环境。只需在单元格中
tabular
使用类似的环境即可。如果您嵌套环境,则用括号括起内部环境会很有帮助。tabular
tabularx
tabularx
轮换内容:你可以使用
\rotatebox
这个graphicx
包,参见更改文本方向在LaTeX 表格功能。
答案2
为什么喜欢复现表格形式的布局?
我过去遇到过类似的问题,我的解决方案很简单:将表单扫描成 pdf 并使用 pdfpages 将其加载为背景图像(或者如果可用:获取空白表单的 pdf)。
然后我定义了一些宏来将文本填充到页面背景中的正确位置。如果您愿意,我可以提供我的风格(我希望我能找到它 ;-) )
答案3
我发现,在这种情况下划分列的最佳解决方案如下:
\documentclass[11pt, a4paper]{article}
\usepackage{lmodern}
\usepackage{array}
\usepackage{tabularx}
\usepackage[table]{xcolor}
\begin{document}
\rowcolors{1}{black!10}{white}
\scriptsize
\setlength{\extrarowheight}{0em}
\begin{tabularx}{\textwidth}{|p{4cm}|X|} \hline
Question one & Question two\\[0.5cm] \hline
Question three & Question four\\[1cm] \hline
Question five & Question six\\[0.5cm] \hline
{\begin{tabularx}{\linewidth}{@{} l | X @{}}
Some text & Other text\\[1cm]
\end{tabularx}} & \raisebox{0.5cm}{Something else}\\
\hline
\end{tabularx}
\end{document}
整行的高度由内表的行高决定,并且由于外部表的同一行中的文本是垂直居中,因此它被提升了内行高度的一半,在本例中为[1cm]
和\raisebox{0.5cm}{...}
。
连接表格\vskip-(number)(em/ex)
可能会更好,但我最初的要求不允许这样做。
如果你要投票支持这个答案,你也应该考虑投票支持 Stefan 的答案,因为他已经消除了大部分不需要的空间。这只是为了为其他人将来可能使用提供明确的答案。