我正在创建一个伪代码/JavaScript 比较表,并希望将使用 algorithm2e 包编写的算法排版为表格单元格中的垂直居中。开箱即用的 algorithm2e 无法做到这一点,但我修改了代码,除了一点之外,其他一切都似乎正常。那就是:algorithm2e 通常将伪代码行放在 \hsize 之外的框中,但在表格上下文中,我想要它们的自然大小,所以我使用了 varwidth 环境。这破坏了垂直居中。
梅威瑟:
\documentclass{article}
\usepackage{varwidth}
\newcommand{\verticalcenter}[1]{\raisebox{-0.5\height}{#1}}
\begin{document}
\begin{tabular}{ll}
\hline
\verticalcenter{%
\begin{varwidth}{\hsize}%
text\par
text\par
text\par
\end{varwidth}%
}&\verticalcenter{\rule{1cm}{1pt}}\\
\hline
\end{tabular}
\end{document}
得出的结果为:
中心线位于文本中心上方。
我尝试深入研究 varwidth 代码,但什么也没找到。我该如何修复 varwidth 的尺寸?
答案1
盒子也有深度,考虑到产量:
\documentclass{article}
\usepackage{varwidth}
\newcommand{\verticalcenter}[1]{%
\raisebox{-0.5\dimexpr\height-\depth\relax}{#1}}
\begin{document}
\begin{tabular}{ll}
\hline
\verticalcenter{%
\begin{varwidth}{\hsize}%
text\par
text\par
text\par
\end{varwidth}%
}&\verticalcenter{\rule{1cm}{1pt}}\\
\hline
\end{tabular}
\end{document}