使用多行居中文本溢出到多行

使用多行居中文本溢出到多行

我正在尝试创建一个表格,其中一列有多行。使用multirow包可以很容易地做到这一点。但是,如果我为此指定宽度\multirow并且我的文本溢出,则多行的第二行将失去居中。以下是我正在做的一个示例:

\usepackage{multirow}
\begin{table}[!h]
    \begin{tabular}{ | c | c |}
        1 & \multirow{4}{100pt}{This one works} \\
        2 & \\
        3 & \\
        4 & \\
        1 & \multirow{4}{100pt}{This one doesn't work and loses its centering because the text is too long}\\
        2 & \\
        3 & \\
        4 & \\
    \end{tabular}
\end{table}

答案1

\multirow在文本实际排版之前使用\multirowsetup宏,默认情况下\multirowsetup定义为\raggedright。您可以通过重新定义\multirowsetup(如我在示例中所做的那样)或\centering在每个命令的最后一个参数中手动添加命令来更改此设置\multirow,其中文本应居中显示。

\documentclass[12pt]{report} 
\usepackage{multirow}

\begin{document}

\begin{table}[!h]
  \renewcommand\multirowsetup{\centering}
   \begin{tabular}{ | c | c |}
        1 & \multirow{4}{100pt}{This one works} \\
        2 & \\
        3 & \\
        4 & \\
        1 & \multirow{4}{100pt}{This one doesn't work and loses its centering because the text is too long}\\
        2 & \\
        3 & \\
        4 & \\
    \end{tabular}
\end{table}

\end{document}

相关内容