我有以下表格代码。
\documentclass{article}
\usepackage{tabularx}
\usepackage{makecell, multirow}
\renewcommand\theadfont{\bfseries}
\begin{document}
\begin{tabularx}{\textwidth}{*{2}{l} X}
\hline
\multirowthead{2}{Abduction}
& \emph{Specification}
& The proband begins in the anatomical 0-degree starting position. From there the arm
is moved sidewards, away from the body hence, lifting the arm inside the frontal
plane. This is done as far as possible or until the proband starts to feel pain.
\\
& \emph{Instructions}
& TODO
\\
\hline
\multirowthead{2}{Adduction}
& \emph{Specification}
& TODO
\\
& \emph{Instructions}
& TODO
\\
\hline
\end{tabularx}
\end{document}
如下图所示,只有当单元格未自动换行到多行单元格时,第一列的内容才会垂直居中。我希望它们在两种情况下都垂直居中。
我尝试了几种方法。
tabu
无论我接下来尝试什么,使用-package 都不会改变任何东西。- 不要使用
makecell
-package,而应使用 usemultirow{2}{*}{...}
。没有实际效果。 - 改用
multirowcell{2}{\textbf{...}}
。\multirowthead{2}
无效果。 \multirowthead
仅与\multirowcell
一起使用\usepackage{makecell}
。无效果。- 用于
makecell
最后一列的长文本。将文本放在一行中并删除所有换行。 - 执行 5 但添加
\\
手动换行。这实际上有效,但这是最不理想的方法,因为我必须自己找到换行的正确位置,而不是让 LaTeX 自动为我换行。
有人知道如何保持自动换行但仍然获得漂亮的垂直居中的多行吗?
我还希望第二列的单元格垂直居中对齐。有什么办法可以实现吗?
答案1
给你。我使用\makegapedcells
以下命令向单元格添加了一些垂直填充makecell
:
\documentclass{article}
\usepackage{tabularx}
\usepackage{makecell, multirow}
\renewcommand\theadfont{\bfseries}
\setcellgapes[t]{2pt}
\begin{document}
\makegapedcells
\begin{tabularx}{\textwidth}{*{2}{l} X}
\hline
\multirowthead{7}{Abduction}
& \emph{Specification}
& The proband begins in the anatomical 0-degree starting position. From there the arm
is moved sidewards, away from the body hence, lifting the arm inside the frontal
plane. This is done as far as possible or until the proband starts to feel pain.
\\
& \emph{Instructions}
& TODO
\\
\hline
\multirowthead{2}{Adduction}
& \emph{Specification}
& TODO
\\
& \emph{Instructions}
& TODO
\\
\hline
\end{tabularx}
\end{document}