垂直对齐表格中的进度条

垂直对齐表格中的进度条

我正在尝试将进度条垂直居中放置在表格内。下面是一个 MWE,

\documentclass[letterpaper, 12pt]{article}

\usepackage[english]{babel}
\usepackage{blindtext}
\usepackage{lscape}
\usepackage{threeparttable}
\usepackage{booktabs}
\usepackage{progressbar}

\begin{document}

\begin{landscape}
\vfill
\centering
\begin{threeparttable}[!h]
\caption{Timeline for blah blah blah.}
\begin{tabular}{c l p{400pt} l}
    \toprule
    & Target & & \\
    & completion & & Percent \\
    Task & date & Milestone & complete \\
    \midrule
    0.0 & Whenever & \blindtext & \progressbar[width=100pt, heighta=12pt, roundnessr=0.25, ticksheight=0]{0} \\
    \bottomrule
\end{tabular}
\end{threeparttable}
\vfill
\end{landscape}

\end{document} 

我尝试使用m{}fromarraymakecell,但似乎都没有用。

答案1

如果将p现在的列变成一m列,则它将\progressbar相对于文本块垂直居中:

m 柱

如您所见,这也适用于前两列。

为什么这样做有效?将表格行视为一行文本。p列的内容就像\parbox[t]{<width>}{<text>},而列的内容m就像\parbox[c]{<width>}{<text>} (就我所理解的)。 a 的可选参数\parbox[t]/ [c]/ [b])指示它如何放置在周围文本的基线上。使用[t], 的第一行parbox放置在基线上, 的[c](近似)垂直中心parbox放置在基线上。一个例子:

\documentclass{article}
\begin{document}
Foo \parbox[t]{1cm}{bar baz box} lorem \parbox[c]{1cm}{bar baz box} ipsum.
\end{document}

在此处输入图片描述

在中也会发生同样的事情tabular,其中​​一p列的“锚点”是单元格的第一行,其m中心就是它。

另一种可能性是保留p列并使用\raisebox{-60pt}{\progressbar[width=100pt, heighta=12pt, roundnessr=0.25, ticksheight=0]{0}}(必须60pt根据长文本单元格的高度进行修改)。这会将移动到\progressbar当前基线以下。使用列的区别m在于,前两列中的文本仍然与Milestone列中的第一行对齐,只有\progressbar移动。

饲养箱

\documentclass[letterpaper, 12pt]{article}

\usepackage[english]{babel}
\usepackage{blindtext}
\usepackage{pdflscape}
\usepackage{threeparttable}
\usepackage{booktabs}
\usepackage{progressbar}
\usepackage{array}

\begin{document}

\begin{landscape}
\vfill
\centering
\begin{threeparttable}
\caption{Timeline for blah blah blah.}
\begin{tabular}{c l p{400pt} l}
    \toprule
    & Target & & \\
    & completion & & Percent \\
    Task & date & Milestone & complete \\
    \midrule
    0.0 & Whenever & \blindtext & \raisebox{-60pt}{\progressbar[width=100pt, heighta=12pt, roundnessr=0.25, ticksheight=0]{0}} \\
    \bottomrule
\end{tabular}
\end{threeparttable}

\begin{threeparttable}
\caption{Timeline for blah blah blah.}
\begin{tabular}{c l m{400pt} l}
    \toprule
    & Target & & \\
    & completion & & Percent \\
    Task & date & Milestone & complete \\
    \midrule
    0.0 & Whenever & \blindtext & \progressbar[width=100pt, heighta=12pt, roundnessr=0.25, ticksheight=0]{0} \\
    \bottomrule
\end{tabular}
\end{threeparttable}
\end{landscape}

\end{document} 

相关内容