在某些情况下,Parbox 不会保持垂直居中

在某些情况下,Parbox 不会保持垂直居中

我以为我终于理解了 parboxes 的垂直对齐行为,但是接下来发生了这样的事情:

我有这个tabularx与 parboxes 在一起的案例(在 XeLaTeX 中)并将我的案例分解为这个最小示例(pdfLaTeX):

\usepackage{tabularx}
\usepackage{multirow}

\begin{document}

\begin{tabularx}{\textwidth}{|@{\hspace{0.5mm}}cX@{}c@{}|} \hline
    \multirow[c]{2}{*}[]{
        \parbox[c][][c]{10mm}{{\centering \Huge A}\\[0.3mm]
        \centering \footnotesize 1234}}
    &
    \parbox[c][][c]{10cm}{
        \vspace{2mm}
        bla
        \vspace{2mm}}
    &
    \multirow[c]{2}{*}{
    \parbox[c][][c]{10mm}{{\centering \Huge B}}}
    
    \\ \cline{2-2}
    &
    \parbox[c][][c]{10cm}{
        \vspace{2mm}
        bla
        \vspace{2mm}}
    & \\ \hline
\end{tabularx}

\end{document}

...产生以下输出:

标准案例

中间一列的两个 parbox 必不可少,因为在我的实际案例中,里面发生的事情更复杂。它们的高度会随着内容而变化,我需要两侧的“A”和“B”保持垂直居中(相对于整个表格,无论它们\cline位于何处)。

如果上部 parbox 增长(变为blabla\\bla\\bla\\bla\\bla,我就会得到期望的行为:

上部 parbox 较高

然而,如果较低的一个增长(以bla完全相同的方式变化),就会发生以下情况:

在此处输入图片描述

有人能告诉我这种行为背后的逻辑吗?我以为命令[c]后面的\multirow命令会起作用,但似乎可用的空间multirow并没有与最低行一起延伸。如果有解决办法,我希望尽可能接近原始代码,因为这些框的实际内容要复杂得多,我认为没有 parboxes 就行不通。此外,手动调整不是一种选择,因为我将拥有很多内容各异的框,所以它应该自动工作。如上所述,我正在使用 XeLaTeX(由于字体问题),但可以使用 pdfLaTeX 重现此行为。非常感谢!

编辑:我刚刚检查了文档对于multirow,3.8 几乎表明除了手动调整(不幸的是,这不是一个选项)之外,没有其他方法可以实现我想要做的事情。还有其他想法吗?

答案1

您可以嵌套表格。列的宽度X可设为\hsize

\documentclass{article}
\usepackage{tabularx}

\begin{document}

\noindent
\begin{tabularx}{\textwidth}{|cX@{}c|}
\hline
\begin{tabular}{@{}c@{}} \Huge A \\[0.3mm] 1234 \end{tabular} &
\begin{tabular}{@{}p{\hsize}@{}}
  bla \\
  \hline
  bla \\
  bla \\
  bla \\
  bla \\
  bla \\
  bla
\end{tabular} & \begin{tabular}{@{}c@{}}\Huge B \end{tabular}\\
\hline
\end{tabularx}

\end{document}

在此处输入图片描述

相关内容