如何在长表环境中垂直居中多列?

如何在长表环境中垂直居中多列?

我在表格中使用了 合并了列multicolumn。我希望此多列中的文本垂直居中。这是 MWE:

\documentclass[14pt]{article}
\usepackage[left=2.54cm, right=2.54cm, top=3.17cm, bottom=3.17cm]{geometry}
\usepackage{tabu,longtable}

\begin{document}
    \begin{longtabu} to \textwidth {|p{0.1\textwidth}|X|}
        \hline
        \textbf{1.} & stuff \\ \hline
        \textbf{2.} & stuff \\ \hline
        \multicolumn{2}{|l|}{\large{\textbf{Reports}}} \\[3ex] \hline
    \end{longtabu}
\end{document}

这使:

在此处输入图片描述

我尝试了各种各样的组合,包括使用以下命令定义列类型:

\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}

和:

\usepackage{array}
\multicolumn{2}{|M{1cm}|}{\large{\textbf{Reports}}} \\[3ex] \hline

但这不起作用。我见过很多使用的例子,tabular但我需要我的表格跨越多个页面。

答案1

新的 LaTeX3 软件包tabularray是过时软件包的替代品:在环境tabu内部垂直居中很容易。longtblr

\documentclass[14pt]{article}

\usepackage[left=2.54cm, right=2.54cm, top=3.17cm, bottom=3.17cm]{geometry}
\usepackage{tabularray}

\begin{document}

\begin{longtblr}[
  caption = {Long Title},
  label = {tblr:test},
]{
  colspec = {|t{0.1\textwidth}|X|},
  column{1} = {font=\bfseries},
  row{3} = {3em},
  cell{3}{1} = {c=2}{m,font=\large\bfseries}, % multicolumn
  hlines,
}
  1.      & stuff \\
  2.      & stuff \\
  Reports &       \\
\end{longtblr}

\end{document}

在此处输入图片描述

答案2

我希望看到一个更通用的解决方案,但这对我有用:

\documentclass[14pt]{article}
\usepackage[left=2.54cm, right=2.54cm, top=3.17cm, bottom=3.17cm]{geometry}
\usepackage{tabu,longtable}
\begin{document}
    \begin{longtabu} to \textwidth {|p{0.1\textwidth}|X|}
        \hline
        \textbf{1.} & stuff \\ \hline
        \textbf{2.} & stuff \\ \hline
        \multicolumn{2}{|l|} \\[1ex]
        \multicolumn{2}{|l|}{\large{\textbf{Reports}}} \\[3ex] \hline
    \end{longtabu}
\end{document}

我在更改了高度的行上方添加了一个缩放到正确大小的空行。

相关内容