我现在已经阅读了数百个帖子,但我不明白这一点。为什么下表左列的文本没有垂直居中?
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{pdflscape}
\usepackage{longtable, array}
\usepackage{lipsum}
\begin{document}
\begin{landscape}
\begin{longtable}{ m{0.1\linewidth} p{.35\linewidth}p{.55\linewidth} }
\endfirsthead
\endhead
\toprule
\textbf{Enum} & \textbf{Example} & \textbf{Description} \\
\midrule
1 & test & \lipsum[50]\\
\midrule
2a & test & \lipsum[50]\\
2b & test & \lipsum[50]\\
\bottomrule
\end{longtable}
\end{landscape}
\end{document}
有人能帮忙吗?如果可能的话,我还想让左列的文本水平居中,但我认为这会很快完成。
答案1
https://github.com/AnMnv/eBook(例 4.11)
\documentclass{article}
\usepackage[left=1.5cm,right=1.5cm,
top=1.5cm,bottom=2cm,bindingoffset=0cm]{geometry}
\usepackage{float}
\usepackage{array, makecell}
\usepackage[utf8]{inputenc}
\usepackage{lipsum}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{pdflscape}
\usepackage{longtable, array}
\begin{document}
\begin{landscape}
\begin{longtable}{@{} *{2}{m{.\paperwidth}} *{1}{m{.40\paperwidth}} @{}}
\endfirsthead
\endhead
\toprule
\textbf{Enum} & \textbf{Example} & \textbf{Description} \\
\midrule
1 & test & \lipsum[50]\\
\midrule
2a & test & \lipsum[50]\\
2b & test & \lipsum[50]\\
\bottomrule
\end{longtable}
\end{landscape}
\end{document}
答案2
很tabularray
简单:
\documentclass{article}
\usepackage{pdflscape}
\usepackage{tabularray}
\UseTblrLibrary{booktabs}
\usepackage{lipsum}
\begin{document}
\begin{landscape}
\begin{longtblr}[
caption = {caption text},
label = {tab:longtblr}
]{
colspec = {Q[c] X[l] X[1.6,m,j]},
row{1} = {font=\bfseries},
rowhead = 1
}
\toprule
Enum & Example & Description \\
\midrule
1 & test & \lipsum[50] \\
\midrule
2a & test & \lipsum[50] \\
\addlinespace
2b & test & \lipsum[50] \\
\bottomrule
\end{longtblr}
\end{landscape}
\end{document}
其中所用列规范的含义为:
Q[c]
(或更短c
)定义水平居中的列X[l]
定义X
列(与包类似tabularx
),其中选项l
定义列内容左对齐X[1.6,m,j
定义X
与上面类似,然而选项1.6
使其宽度为 1.6 倍,m
单元格内容垂直居中,并且j
单元格内容对齐。