![tabularx 中只有一列垂直对齐的文本(一遍又一遍)?](https://linux22.com/image/405277/tabularx%20%E4%B8%AD%E5%8F%AA%E6%9C%89%E4%B8%80%E5%88%97%E5%9E%82%E7%9B%B4%E5%AF%B9%E9%BD%90%E7%9A%84%E6%96%87%E6%9C%AC%EF%BC%88%E4%B8%80%E9%81%8D%E5%8F%88%E4%B8%80%E9%81%8D%EF%BC%89%EF%BC%9F.png)
我知道它和这个很相似问题,这个等等……但是对于 3 列,我无法应用解决方案。我希望前两列(实际上我有很多文本,长度不同)顶部对齐,而最后一列垂直居中。
\documentclass{article}
\usepackage[a4paper]{geometry}
\usepackage{tabularx}
\usepackage{lipsum}
\begin{document}
\noindent
\begin{tabularx}{\textwidth}{ | X | X | c | }
\hline
bla\newline bla \newline & bla\newline bla \newline & top\\
\hline
bla\newline bla \newline bla \newline & \noindent\parbox[c]{\hsize}{ bla\newline bla \newline } & center\\
\hline
bla\newline bla \newline & \noindent\parbox[b]{\hsize}{bla\newline bla \newline } & bottom\\
\hline
\end{tabularx}
\end{document}
答案1
您可以通过multirow
反复试验来做到这一点,计算当前行单元格中的最大行数。我添加了makecell
包,以便使用更简单的语法multirowcell
:
\documentclass{article}
\usepackage[a4paper]{geometry}
\usepackage{tabularx}
\usepackage{makecell, multirow}
\usepackage{lipsum}
\begin{document}
\noindent
\begin{tabularx}{\textwidth}{ | X | X | c | }
\hline
bla\newline bla \newline & bla\newline bla \newline &\multirowcell{3}{top}\\
\hline
bla\newline bla \newline bla \newline & bla\newline bla \newline & \multirowcell{4}{center}\\
\hline
bla\newline bla \newline & bla\newline bla \newline & \multirowcell{3}{bottom}\\
\hline
\end{tabularx}
\end{document}