如何使表格中的单元格垂直居中对齐?

如何使表格中的单元格垂直居中对齐?

在此处输入图片描述

在上面的表格中,我想将第三行(/word)和第五行和第六行居中对齐,以便一切看起来整洁干净。

\begin{table}[h]
\begin{tabular}{|c|l|}
\hline 
\textbf{man keys} & \multicolumn{1}{c|}{\textbf{What it does?}} \\
\hline
Space & bla bla bla . \\
\hline
Ctrl+F &  bla bla bla  \\
\hline
Ctrl+B & bla bla bla  \\
\hline
/word & bla bla bla \\
\hline
q & bla bla bla  \\ 
\hline
n & bla bla bla \\
\hline
N & bla bla bla \\
\hline
\end{tabular}
\caption{\label{tab:table-name} Doing some stuff}
\end{table}

我尝试使用多列{1}{m},但没有作用。

我也不想大幅更改乳胶脚本。我可以在表格中包含什么来根据需要垂直居中对齐单元格?

答案1

您可以使用嵌套表格,在第二列中居中放置 p 列。非常简单,LaTeX 会为您完成所有计算。

我已经定义了一个\mline可以为您完成工作的命令。

在这个特定的 MWE 中,您还可以将第二列设置为 -column m,如示例 2 所示。这并不总是有效。

示例 1 - 嵌套表格

在此处输入图片描述

\documentclass{article}

\usepackage{array}
\renewcommand*{\arraystretch}{1.1}
\setlength{\extrarowheight}{2pt}

% Multi-line left-aligned text with manual line breaks.
% The base line is in centre.
\newcommand*{\mline}[1]{%
\begingroup
    \renewcommand*{\arraystretch}{1.1}%
   \begin{tabular}[c]{@{}>{\raggedright\arraybackslash}p{2cm}@{}}#1\end{tabular}%
  \endgroup
}

\begin{document}

\begin{table}[tbh!]
\centering
\begin{tabular}{|c|l|}
\hline 
\bfseries man keys & \multicolumn{1}{c|}{\bfseries What it does?} \\
\hline
Space & \mline{bla bla bla blabla ltus blabla.} \\
\hline
Ctrl+F &  \mline{bla bla bla}  \\
\hline
Ctrl+B & \mline{bla bla bla}  \\
\hline
/word & \mline{much more bla bla bla} \\
\hline
q & \mline{I hate this bla bla bla } \\ 
\hline
n & \mline{so much bla bla bla} \\
\hline
N & \mline{all this bla bla bla} \\
\hline
\end{tabular}
\caption{\label{tab:table-name} Doing some stuff}
\end{table}

\end{document}

示例 2 - m 柱

在此处输入图片描述

\documentclass{article}

\usepackage{array}
\renewcommand*{\arraystretch}{1.1}
\setlength{\extrarowheight}{2pt}

\begin{document}


\begin{table}[tbh!]
\centering
\begin{tabular}{|c|>{\raggedright\arraybackslash}m{2.5cm}|}
\hline 
\bfseries man keys & \multicolumn{1}{c|}{\bfseries What it does?} \\
\hline
Space & bla bla bla blabla ltus blabla.\\
\hline
Ctrl+F &  bla bla bla  \\
\hline
Ctrl+B & bla bla bla  \\
\hline
/word & much more bla bla bla \\
\hline
q & I hate this bla bla bla  \\ 
\hline
n & so much bla bla bla \\
\hline
N & all this bla bla bla \\
\hline
\end{tabular}
\caption{\label{tab:table-name-ii} Doing some more stuff}
\end{table}

\end{document}

答案2

最简单的方法是使用\multirow{number of rows}{width}{text}

接下来是 MWE。

\documentclass{article}
\usepackage{multirow}
\usepackage{tabularx}
\begin{document}
    \begin{table}[h]
        \begin{tabular}{|c|l|}
            \hline
              \textbf{man keys}    & \multicolumn{1}{c|}{\textbf{What it does?}} \\
            \hline
                    Space          & bla bla bla .                               \\
            \hline
                    Ctrl+F         & bla bla bla                                 \\
            \hline
                    Ctrl+B         & bla bla bla                                 \\
            \hline
            \multirow{2}{*}{/word} & bla bla bla                                 \\
            \cline{2-2}
                                   & foo foo foo                                 \\
            \hline
                      q            & bla bla bla                                 \\
            \hline
                      n            & bla bla bla                                 \\
            \hline
                      N            & bla bla bla                                 \\
            \hline
        \end{tabular}
        \caption{\label{tab:table-name} Doing some stuff}
    \end{table}
\end{document}

在此处输入图片描述

相关内容