使用 tabu 包进行垂直和水平对齐

使用 tabu 包进行垂直和水平对齐

另一个问题让我使用 tabu 来使一列适合其内容,同时允许其他列平等拉伸。这是我当前的代码:

\documentclass{article}
\usepackage{tabu} 

\begin{document}
\noindent
\begin{tabu}{|X[m,c]|c|X[m,c]|}
    Left content centered \newline between margin and title &
    {\Huge Title} &
    Right content \newline also centered
\end{tabu}

\end{document}

然而,这会产生两个问题:两行单元格上出现一些奇怪的水平对齐,并且标题没有与左右单元格垂直居中。

是什么导致了这些问题?我该如何解决它们?

答案1

tabu还允许使用负系数来处理 X 列,这样就可以拥有 X 列的所有特征,而无需缩放部分。因此,这消除了 raisebox “hack” 的需要。您只需将c列更改为X[-1,m,c]

\documentclass{article}
\usepackage{tabu} 

\begin{document}
\noindent
\begin{tabu}{|X[m,c]|X[-1,m,c]|X[m,c]|}
    Left content centered \linebreak between margin and title &
    \Huge Title &
    Right content \linebreak also centered
\end{tabu}

\end{document}

在此处输入图片描述

答案2

似乎您不需要\linebreak\newlineX垂直居中在列的基线c而不是文本的中间,因此您需要移动文本或进行其他调整。

在此处输入图片描述

\documentclass{article}
\usepackage{tabu} 

\begin{document}
\noindent
\begin{tabu}{|X[m,c]|c|X[m,c]|}
    Left content centered \linebreak between margin and title &
    \raisebox{-.3\height}{\Huge Title} &
    Right content \linebreak also centered
\end{tabu}

\end{document}

相关内容