table,tabular,tabularx vertical alignment,latex

时间:2010-11-09 21:39:01

标签: latex alignment tabular

好的,这听起来很简单,但我花了几个小时谷歌搜索,我只是找不到解决方案,这并不复杂。 我想创建一个包含图像和文本的表。我希望桌子的每一行都有相同的高度。我希望文本始终从顶部开始。 即。

\begin{tabular}{l l}
some text & some text and some more text...\\ %both starting at the same height.
\includegraphics{aImage.eps} & (*)Some text...   %both starting at the same height.
\end{tabularx}

在我的直觉中,星号(*)处的文本的开头应该垂直对齐到aImage的顶部,但它不是,我无法正确。 添加[b]或[t]没有帮助。 我完全错了什么,因为我不能成为唯一想要这个的人。

2 个答案:

答案 0 :(得分:1)

也许TikZ是一种可行的方式。图形可以包含在具有\node{\includegraphics{myfile.ext}}的TikZ节点中,然后可以绘制框或网格。文本节点可以在任何位置保存文本。如果你需要(足够的图片使其值得)你可以使用pgffor创建它。

\documentclass{article}

\usepackage{tikz}

\begin{document}
\begin{tikzpicture}

\draw[step=2cm] (-4cm,0) grid (4cm,4cm);

\node at (-3cm,3cm) {Text};
\node at (-3cm,1cm) {includegraphics};

\end{tikzpicture}
\end{document}

它不是一个完美的答案,它需要比许多LaTeX用户更多的调整。然而,这种灵活性可能会让你解决问题,“只是让事情变得有效”。

希望它有所帮助。

答案 1 :(得分:0)

根据我的理解,问题在于LaTeX将包含的图形视为单行文本,恰好在行上方延伸了一点,因此该行的顶部仍然只是字体的大小。基线,而不是图像的顶部,因此与它的对齐不会很好。

我似乎通常解决这个问题的方法是将文本包装在合适的parbox内,如下所示

\includegraphics{aImage.eps} & \parbox[b]{0.4\linewidth}{(*)Some text\vspace{3\baselineskip}}

这里的要点是我将底部parbox与图像的底部对齐,然后在其底部添加垂直空间,使其成为对齐的垂直空间的底部,文本对齐很好地在顶部。当然,您需要根据表格单元格的宽度和图像的高度来确定宽度(此处为0.4\linewidth)和所需的垂直空间(此处为3\baselineskip),因此此解决方案不会真的可以概括为你可能只是宏观的东西。尽管如此,在需要的时候使用起来相当简单,即使需要进行一些手动调整才能正确对齐。