我正在尝试为我的表格添加中间行。此图显示了我可以用表格做什么(上图)以及我想要得到什么(下图):
这是用诡计这使得源代码难以阅读,并且表格被转置。
有没有更好的方法?例如,有没有办法调整单元格或列的偏移量,就像我yshift
在 TikZ 中所做的那样?
\documentclass{article}
\begin{document}
\begin{table}
\begin{tabular}{llll}
\multicolumn{4}{l}{\textbf{What I have}} \\
\quad a & b & c & d \\
\quad e & f & g & h \\
\quad i & j & k & \\
\multicolumn{4}{l}{\textbf{What I want}} \\
\quad
\begin{tabular}{@{}c@{}} a \\ e \\ i \end{tabular}
& \begin{tabular}{@{}c@{}} b \\ f \\ j \end{tabular}
& \begin{tabular}{@{}c@{}} c \\ g \\ k \end{tabular}
& \begin{tabular}{@{}c@{}} d \\ h \\ \end{tabular}
\end{tabular}
\end{table}
\end{document}
答案1
作为一种快速破解方法,您可以使用\multirow
。缺点是您必须手动选择合适的宽度。
\documentclass{article}
\usepackage{multirow}
\begin{document}
\begin{table}
\begin{tabular}{llll}
\multicolumn{4}{l}{\textbf{What I have}} \\
\quad a & b & c & \multirow{3}{0.5cm}{d\linebreak h} \\
\quad e & f & g & \\
\quad i & j & k & \\
\end{tabular}
\end{table}
\end{document}
答案2
{NiceTabular}
这是使用的解决方案nicematrix
。该环境类似于经典环境{tabular}
(array
),但也会在单元格、行和列下创建 PGF/Tikz 节点。可以将这些节点与 Tikz 一起使用,将您想要的任何内容放在任何位置。
\documentclass{article}
\usepackage{nicematrix}
\usepackage{tikz}
\begin{document}
\begin{NiceTabular}{ccc}
a & b & c \\
e & f & g \\
i & j & k
\CodeAfter
\begin{tikzpicture}
\node [right] at (2-|last) { d } ;
\node [right] at (3-|last) { h } ;
\end{tikzpicture}
\end{NiceTabular}
\end{document}
\documentclass{article}
\usepackage{nicematrix}
\usepackage{tikz}
\begin{document}
\begin{NiceTabular}{ccc}
a & b & c \\
e & f & $\displaystyle \int_a^b f(x)\, dx$ \\
i & j & k
\CodeAfter
\begin{tikzpicture}
\node [right] at (2-|last) { d } ;
\node [right] at (3-|last) { h } ;
\end{tikzpicture}
\end{NiceTabular}
\end{document}
答案3
与不错的@sam 答案(+1)类似,但带有tblr
包装tabularray
并规定了最后一张表列的宽度:
\documentclass{article}
\usepackage{tabularray}
\begin{document}
\begin{table}
\begin{tblr}{colspec = {*{3}{l} Q[l, wd=1em]},
cell{1}{Z} = {r=3}{}
}
\quad a & b & c & d h \\
\quad e & f & g & \\
\quad i & j & k & \\
\end{tblr}
\end{table}
\end{document}