繁体   English   中英

table,tabular,tabularx vertical alingment,latex

[英]table, tabular, tabularx vertical alingment, latex

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

\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]没有帮助。 我完全错了什么,因为我不能成为唯一想要这个的人。

也许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用户更多的调整。 然而,这种灵活性可能会让你解决问题,在“只是让事情变得有效”的方式。

希望能帮助到你。

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

我似乎通常解决这个问题的方法是将文本包装在合适的parbox ,就像这样

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM