我想嵌套 2 个tabularx
表:“内部”表的列属于“外部”表的一列,因此应缩进并在其侧面有一条垂直线。
我尝试使用以下 MWE 来做到这一点,但我希望插入表的第二列与“外部”表对齐,因此h 和 j 应与 b 和 d 水平对齐。
\documentclass[11pt, a4paper]{scrartcl}
\usepackage{tabularx}
\begin{document}
\begin{tabularx}{\textwidth}{p{3cm} X}
\hline
a & b\\
c & d\\
\multicolumn{2}{@{\quad}|l}{
\begin{minipage}{\textwidth}
\begin{tabularx}{\textwidth}{p{3cm} X}
g & h \\
i & j \\
\end{tabularx}
\end{minipage}
}\\
e & f \\
\hline
\end{tabularx}
\end{document}
答案1
可能有多种方法可以实现您想要的目标,但我认为最简单的解决方案是将p
“内部” tabularx 组中列的宽度减小\quad
(1 em) 和的总宽度\tabcolsep
。以下 MWE 执行此操作:
\documentclass[11pt,a4paper]{scrartcl}
\usepackage{tabularx,calc}
\begin{document}
\begin{tabularx}{\textwidth}{p{3cm} X}
\hline
a & b\\ c & d\\ \multicolumn{2}{@{\quad}|l}{
\begin{minipage}{\textwidth}
\begin{tabularx}{\textwidth}{p{3cm-1em-\tabcolsep} X}
g & h \\ i & j \\ \end{tabularx}
\end{minipage} }\\ e & f \\ \hline
\end{tabularx}
\end{document}
答案2
您需要修改“内部tabularx
”中第一列的宽度,以适应tabular
列分隔以及使用 的缩进\quad
。此长度算法通过calc
包裹:
\documentclass{article}
\usepackage{tabularx}% http://ctan.org/pkg/tabularx
\usepackage{calc}% http://ctan.org/pkg/calc
\begin{document}
\noindent\begin{tabularx}{\textwidth}{p{3cm} X}
\hline
a & b\\
c & d\\
\multicolumn{2}{@{\quad}|l}{
\begin{minipage}{\linewidth}
\begin{tabularx}{\linewidth}{p{3cm-\widthof{\quad}-\tabcolsep} X}
g & h \\
i & j \\
\end{tabularx}
\end{minipage}
}\\
e & f \\
\hline
\end{tabularx}
\end{document}
但是,您会注意到 LaTeX 会给出一些“Overfull hbox”警告。由于您的 中只有 2 列tabularx
,因此我建议您X
改为计算列 - 使用与上述类似的方法 - 并将其设为段落列以精确固定在(或)p{<len>}
内。\textwidth
\linewidth