我有一张图片(左侧)和一段文本(右侧),我希望两者都在顶部对齐。我尝试使用 minipages 来实现这一点:
\documentclass{article}
\begin{document}
\begin{minipage}[t]{0.2\linewidth}
%\includegraphics[width=\textwidth]{Boltzmann}
\rule{\textwidth}{3cm}
\end{minipage}\hfill
\begin{minipage}[t]{0.7\linewidth}
\paragraph{Ludwig Boltzmann (1844~V1906)}\par
He was an Austrian physicist famous for his founding contributions in the
fields of statistical mechanics and statistical thermodynamics. He was
one of the most important advocates for atomic theory at a time when that
scientific model was still highly controversial.
\end{minipage}
\end{document}
(实际图像被黑色矩形替换)。这不起作用,因为它将图像的基线(即其底部)与文本的基线(即第一行的基线)对齐。然后我尝试将图像放入 raisebox 中,如下所示:
\raisebox{-\height}{\includegraphics[width=\textwidth]{Boltzmann}}
但这样会使图像的顶部与文本的基线对齐,这仍然不是我想要的。我可以添加另一个 raisebox,如下所示:
\raisebox{\baselineskip}{%
\raisebox{-\height}{\includegraphics[width=\textwidth]{Boltzmann}}}
但是 (a) 该代码非常丑陋,并且 (b) 它仍然没有完全对齐,所以我不知道为什么。
所以,是的,这是我的吹毛求疵,但我怎样才能获得干净的代码,能够完全按照我在一开始描述的那样做呢?
答案1
这是一个巧妙的方法:
\documentclass{article}
\usepackage[demo]{graphics}
\begin{document}
\begin{tabular}{p{5cm} p{7cm}}
\vspace{0pt}
\includegraphics{test}
&
\vspace{0pt}
He was an Austrian physicist famous for his founding contributions in the fields of
statistical mechanics and statistical thermodynamics. He was one of the most
important advocates for atomic theory at a time when that scientific model was
still highly controversial.\\
\end{tabular}
\end{document}
这里发生的情况是,您使用 更改图像的参考点\vspace{0pt}
,从而允许文本和图像顶部对齐。
当您想使用\paragraph
来设置名称样式时,垂直间距仍然会损坏。希望有人能进一步解释如何修复该问题(我发现\vspace{-3ex}
在文本前使用 似乎可以解决问题)。
免责声明:我采用了 Stefan Kottwitz 的想法这篇博文,并重新表述了他的解释。这就是为什么这是一个 CW 答案。
答案2
\vspace{0pt}
我见过的唯一解决方案是在每个小页面的顶部添加。
据我所见,不幸的是,它在两个小页面的顶部添加了一个小间距,但两列完全对齐。这就是 genmpage 包对 T 和 B 选项的操作方式。
多列环境也可以从内容的顶部而不是第一个基线对齐。
看看是否有更简单的解决方案会很有趣,某种方式可以告诉 minipage 在顶部对齐,完全忽略基线。