我正在努力对齐这个表格的内容。我希望第一列的每个单元格的内容垂直居中,或者至少删除其他两列顶部的空白。我尝试使用该array
软件包,但没有成功。有人可以帮忙吗?
当然,这里有一个 MWE:
\documentclass[11pt]{book}
\usepackage{array}
\usepackage{tabularx}
\usepackage{makecell}
\usepackage{enumitem}
\newlist{tablelist}{itemize}{3}
\setlist[tablelist,1]{label={--},leftmargin=1em, nosep}
\begin{document}
\begin{table}[!ht]
\centering
\begin{tabular}{m{8em} p{14em} p{14em} }
\hline
\textbf{Col A} & \textbf{Col B} & \textbf{Col C} \\
\hline \hline
\textbf{\makecell[l]{Extremely \\ long title}} &
\begin{tablelist}
\item Item 1
\item Item 2
\item Item 3
\item Item 4
\item Item 5
\end{tablelist} &
\begin{tablelist}
\item Item 1
\item Item 2
\end{tablelist} \\
\hline
\end{tabular}
\\
\end{table}
\end{document}
我想指出的是,这是我需要编码的表格的一行,我不喜欢使用multirow
。此外,我利用了,\makecell
因为我只想控制 Col A 中每个单元格的文本何时转到下一行。
答案1
欢迎来到 TeX.SE!
如果我正确理解了你的意思,那么你正在追求这样的事情:
tabularray
使用带有库booktabs
(用于表格规则)和varwidth
(用于列表间距)的包很容易获得此表格形式:
\documentclass[11pt]{book}
\usepackage{enumitem}
\newlist{tablelist}{itemize}{1}
\setlist[tablelist,1]{nosep,
leftmargin=*,
label=--,
before=\begin{minipage}[t]{\hsize}\raggedright,
after =\end{minipage}
}
\usepackage{tabularray}
\UseTblrLibrary{booktabs, varwidth}
\begin{document}
\begin{table}[ht]
\begin{tblr}{colspec = {Q[l, m, wd=8em, font=\bfseries]
X[l,h] X[l,h]},
row{1} = {font=\bfseries},
measure=vbox,
}
\toprule
Col A & Col B & Col C \\
\midrule
{Extremely \\ long title}
& \begin{tablelist}
\item Item 1
\item Item 2
\item Item 3
\item Item 4
\item Item 5
\end{tablelist} & \begin{tablelist}
\item Item 1
\item Item 2
\end{tablelist} \\
\bottomrule
\end{tblr}
\end{table}
\end{document}
答案2
具有nicematrix
(≥ 2023/02/18 的 6.14):
\documentclass[11pt]{book}
\usepackage{nicematrix}
\usepackage{enumitem}
\newlist{tablelist}{itemize}{1}
\setlist[tablelist,1]{leftmargin=*,label=--,nosep,after = \vspace{-1em}}
\usepackage{booktabs}
\begin{document}
\begin{table}[ht]
\begin{NiceTabular}{>{\bfseries}w{l}{8em}X[l]X[l]}
\toprule
\RowStyle[bold]{}
Col A & Col B & Col C \\
\midrule
\Block[v-center]{}{Extremely long~title}
&
\begin{tablelist}
\item Item 1 Item 1 Item 1 Item 1 Item 1 Item 1 Item 1 Item 1 Item 1 Item 1 Item 1
\item Item 2
\item Item 3
\item Item 4
\item Item 5
\end{tablelist}
&
\begin{tablelist}
\item Item 1
\item Item 2
\end{tablelist} \\
\Block[v-center]{}{Extremely long~title}
&
\begin{tablelist}
\item Item 1 Item 1 Item 1 Item 1 Item 1 Item 1 Item 1 Item 1 Item 1 Item 1 Item 1
\item Item 2
\item Item 3
\item Item 4
\item Item 5
\end{tablelist}
&
\begin{tablelist}
\item Item 1
\item Item 2
\end{tablelist} \\
\bottomrule
\end{NiceTabular}
\end{table}
\end{document}
与往常一样nicematrix
,您需要进行多次编译。