尝试将文本置于多行表格单元格的中心

尝试将文本置于多行表格单元格的中心

我希望每个单元格中的文本水平居中。但即使表格设置为“c”,也未实现。请注意,我并未尝试使用多行 - 这是一行,每个单元格中有两行文本。也许 \parbox 不是正确的方法。

\documentclass{article}
\begin{document}
\begin{tabular}{ |c|c| }
\parbox[c]{1.4cm}{foo\\longer} &
\parbox[c]{1.4cm}{bar\\center} \\
\end{tabular}
\end{document}

答案1

另外两个解决方案:

\documentclass{article}
\usepackage{makecell}
\usepackage{tabularray}

\begin{document}
with \verb+makecell+:

\medskip
    \begin{tabular}{ |wc{14mm}|wc{14mm}| }
\makecell{foo\\ longer} 
    & \makecell{bar\\ center}
    \end{tabular}

\bigskip
with \verb+tabularray+:

\medskip
    \begin{tblr}{ |Q[c,14mm]|Q[c,14mm]| }
{foo\\ longer}
    & {bar\\ center}
    \end{tblr}   
\end{document}

在此处输入图片描述

编辑: 使用tabularray如上例所示的列规范,您不需要手动拆分单元格中的文本:

\documentclass{article}
\usepackage{tabularray}

\begin{document}
    \begin{tblr}{ |Q[c,14mm]|Q[c,14mm]| }
foo longer
    &  bar center
    \end{tblr}
\end{document}

结果和以前一样。

附录:

在这种情况下,表格单元格可以具有自然宽度,正如@LJR在下面的评论中所建议的那样(非常感谢),然后您可以省略它们的宽度规定:

\documentclass{article}
\usepackage{makecell} 
\usepackage{tabularray}

\begin{document}
with \verb+makecell+:

\medskip
    \begin{tabular}{ |c|c| }
\makecell{foo\\ longer} 
    & \makecell{bar\\ center}
    \end{tabular}

\bigskip
with \verb+tabularray+:

\medskip
    \begin{tblr}{ |c|c| }
{foo\\ longer}
    & {bar\\ center}
    \end{tblr}   
\end{document}

在此处输入图片描述

答案2

无需任何附加包,使用嵌套的tabular而不是parbox

A

\documentclass{article}
\begin{document}
    \begin{tabular}{ |c|c| }
        \begin{tabular}{c}foo\\ longer\end{tabular} &
        \begin{tabular}{c}bar\\ center\end{tabular}
    \end{tabular}
\end{document}

相关内容