将文本放在列中间

将文本放在列中间

我有以下代码:

\documentclass[12pt]{article}
\newlength{\mylen}
\settowidth{\mylen}{the title}
\begin{document}

\begin{tabular}{|l|c|}
\hline
the title & number \\
\hline
\multicolumn{1}{|p{\mylen}|}{very very very very long} & 100 \\
\hline
\end{tabular}

\end{document}

它绘制如下表格(请忽略字体和背景颜色)

在此处输入图片描述

有人知道该怎么放在柱子的中间吗100vertical

答案1

使用包m中的列类型array而不是p类型..

\documentclass[12pt]{article}
\usepackage{array}
\newlength{\mylen}
\settowidth{\mylen}{the title}
\begin{document}

\begin{tabular}{|l|c|}
\hline
the title & number \\
\hline
\multicolumn{1}{|m{\mylen}|}{very very very very long} & 100 \\
\hline
\end{tabular}

\end{document}

在此处输入图片描述

正如解释的那样这个答案,您>{\raggedright\arraybackslash}m{\mylen}也可以在这里使用,以避免箱子过满。

答案2

您可以使用多行包来实现这一点,但只能您知道长条目将占用多少行,因为您必须告诉多行它应该跨越多少行才能垂直居中。

\documentclass[12pt]{article}
\newlength{\mylen}
\settowidth{\mylen}{the title}
\usepackage{multirow}
\begin{document}

\begin{tabular}{|l|c|}
\hline
the title & number \\
\hline
\multicolumn{1}{|p{\mylen}|}{very very very very long} & \multirow{5}{*}{100} \\
\hline
\end{tabular}

\end{document}

相关内容