长表单元格中的垂直对齐

长表单元格中的垂直对齐

我现在已经阅读了数百个帖子,但我不明白这一点。为什么下表左列的文本没有垂直居中?

\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}

我的本地编译器以及 overleaf 产生以下输出 在此处输入图片描述

有人能帮忙吗?如果可能的话,我还想让左列的文本水平居中,但我认为这会很快完成。

答案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单元格内容对齐。

在此处输入图片描述

相关内容