我有一张单行表格,其中包含多列。此行中的每个单元格都是另一个表格,可以是 2x1 或 3x1。我想确保所有这些子表格都与主行的顶部对齐。例如:
-------------------
| 1 | 2 | 3 |
| a | b | c |
| A | | C |
-------------------
一个足够简单的解决方案是向中间单元格添加一条幻影线。但是,如果所有单元格都是 2x1,我不希望有空行:
-------------------
| 1 | 2 | 3 |
| a | b | c |
| | | |
-------------------
以上内容对我来说并不好,应该
-------------------
| 1 | 2 | 3 |
| a | b | c |
-------------------
有什么想法可以实现这一点吗?
答案1
只需使用
\begin{tabular}[t]
对于内部表格,使它们在其顶行排列。
答案2
[t]
对嵌套的 -alignment使用tabular
,并将其包裹在宏中,以避免插入强制换行符:
\documentclass{article}
\newcommand{\vtable}[2][c]{% \vtable[<col align>]{<stuff>}
\begin{tabular}[t]{@{}#1@{}}#2\end{tabular}}
\begin{document}
\begin{tabular}{|c|c|c|}
\vtable{1 \\ a \\ A} & \vtable{2 \\ b} & \vtable{3 \\ c \\ C}
\end{tabular}
\bigskip
\begin{tabular}{|c|c|c|}
\vtable{1 \\ a } & \vtable{2 \\ b} & \vtable{3 \\ c}
\end{tabular}
\end{document}
的定义\vtable
采用可选参数,指定嵌套的 内的对齐方式tabular
。此处的默认值为c
entred(如[c]
中的所示\newcommand{\vtable}[2][c]
)。因此,\vtable{...}
默认值为\vtable[c]{...}
,即c
entres 嵌套的tabular
。使用将在嵌套的 内\vtable[l]{...}
施加左对齐。l
tabular
第二个参数采用tabular
单元格/行的常规定义,其中可能包括\\
。使用嵌套tabular
列规范会@{}.@{}
删除列周围的默认填充 -\tabcolsep
除非另有指定,否则 LaTeX 会在列的两侧插入。使用@{}
会删除此内容。作为参考,请参阅表格中的列填充。
这makecell
包裹通过 提供类似的东西\makecell
。