当我尝试回答tabular
相关问题时,我发现以下行为令我感到惊讶:
我试图将左对齐列中的多行文本与上方的空单元格重叠。multirow
在本例中,这旨在替代包。我尝试了\raisebox{<amount>}[0pt]{\begin{minipage}[t]{<width>} .. \end{minipage}}
(或),但当使用、或列类型时,这根本\begin{adjustbox}{minipage=[t]{<width>},raise={<amount>}{0pt}
不会引发。它适用于。minipage
l
c
r
p{<width>}
MWE 是:
\documentclass{article}
\usepackage{blindtext}
\begin{document}
\begin{tabular}{lp{6cm}}
text & .\raisebox{1ex}{Text} \\
text &
.\raisebox{2\baselineskip}{\begin{minipage}[t]{5cm}% baseline is raised
\blindtext
\end{minipage}} \\
\end{tabular}
\clearpage
\begin{tabular}{ll}% same for c and r
text & .\raisebox{1ex}{Text} \\
text &
.\raisebox{2\baselineskip}{\begin{minipage}[t]{5cm}% baseline is not raised!
\blindtext
\end{minipage}} \\
\end{tabular}
\end{document}
‘p’ 类型的结果:
类型为 ‘l’ 的结果:
这种行为让我无法理解。通常,在其他水平模式下始终可以使用minipage
。我猜可能是重新定义了一些内部宏,从而干扰了这一点?有人能解释为什么会发生这种情况以及如何使\raisebox
非列类型也能正常工作p
吗?
答案1
你的例子太复杂了。问题是你\baselineskip
在 l 列中将其设置为零:
\documentclass{article}
\begin{document}
\begin{tabular}{ll}% same for c and r
text & .\raisebox{1ex}{Text} \\
text &
.\the\baselineskip. \raisebox{\baselineskip}{blub}\raisebox{1cm}{BLA}\\
\end{tabular}
\end{document}