表格单元格垂直居中

表格单元格垂直居中

我是 LaTeX 新手,我想制作一个表格,其中元素垂直和水平居中。我搜索过这个问题,似乎大多数人都试图做比这更复杂的事情,结果得到了我无法理解的复杂答案。下面的表格已经水平居中,但元素与单元格顶部对齐,而不是中心对齐。我该如何解决这个问题?

    \begin{tabular}{*{5}{|c}|}
        \hline
        $p$ & $q$ & $p \land q$ & $p \lor q$ & $p \to q$\\
        \hline
        T & T & T & T & T\\
        \hline
        T & F & F & T & F\\
        \hline
        F & T & F & T & T\\
        \hline
        F & F & F & F & T\\
        \hline
    \end{tabular}

答案1

常规文本中从基线到基线的垂直跳跃由 给出\baselineskip。在 内tabular,这是0pt但它仍然可以作为 访问。使用您的示例作为参考,可以清楚地看到,在绘制高度为 的垂直规则\normalbaselineskip时,垂直基线跳跃仍然成立:1pt\normalbaselineskip

在此处输入图片描述

\documentclass{article}
\begin{document}
\begin{tabular}{*{5}{|c}|}
  \hline
  $p$ & $q$ & $p \land q$ & $p \lor q$ & $p \to q$\\
  \hline
  T & T & T\smash{\rule{1pt}{\normalbaselineskip}} & T & T\\
  \hline
  T & F & F & T & F\\
  \hline
  F & T & $f$ & T & T\\
  \hline
  F & F & F & F & T\\
  \hline
\end{tabular}
\end{document}

如果您有一个非常特殊的表格(例如示例中的表格),其中基线对齐似乎不够充分,您可以尝试添加垂直“支柱”,如以下示例所示:

在此处输入图片描述

\documentclass{article}
\usepackage{array}% http://ctan.org/pkg/array
\begin{document}
\newlength{\mylen}\settowidth{\mylen}{$p \to q$}% Widest element
\begin{tabular}{*{5}{|>{\centering\arraybackslash\rule{0pt}{1.05em}}m{\mylen}}|}
  \hline
  $p$ & $q$ & $p \land q$ & $p \lor q$ & $p \to q$\\ 
  \hline
  T & T & T & T & T\\
  \hline
  T & F & F & T & F\\
  \hline
  F & T & F & T & T\\
  \hline
  F & F & F & F & T\\
  \hline
\end{tabular}
\end{document}

使用array包裹<stuff>,它允许您使用 在每个表列条目前插入>{<stuff>}。使用m{<width>}列规范,我已固定了列宽(我认为这样看起来更干净)并恢复为c-columns 提供的居中。

虽然这可能是基于个人偏好的争论点,但可以考虑使用booktabs包裹排版表格:

在此处输入图片描述

\documentclass{article}
\usepackage{array}% http://ctan.org/pkg/array
\usepackage{booktabs}% http://ctan.org/pkg/booktabs
\begin{document}
\newlength{\mylen}\settowidth{\mylen}{$p \to q$}% Widest element
\begin{tabular}{*{5}{>{\centering\arraybackslash}m{\mylen}}}
  \toprule
  $p$ & $q$ & $p \land q$ & $p \lor q$ & $p \to q$ \\ 
  \midrule
  T & T & T & T & T \\
  T & F & F & T & F \\
  F & T & F & T & T \\
  F & F & F & F & T \\
  \bottomrule
\end{tabular}
\end{document}

相关内容