我在三行表中有一个文本,如下所示
\begin{wrapfigure}{r}{3in}
\centering
\includegraphics{style3color.png}
\end{wrapfigure}
\begin{tabular*}{7in}{l@{\extracolsep{\fill}}r}
a \\
b \\
c \\
\end{tabular*}
我想插入一张横跨第二列所有行的图片。最好的方法是什么?
从上面可以看出,我使用wrapfig
包将这张表包裹在图像周围。它起作用了,但图像没有移到中心。它从 b 开始,一直到 c 下方。
答案1
为了将表格和图形并排放置(顺便说一下,也可以将两个对象并排放置),一个简单的解决方案是将每个对象放入给定宽度的迷你页面中,\hfill
如果希望对象“完全对齐”(即与页边距对齐),则将其放在迷你页面之间。为每个迷你页面提供[c]
垂直对齐它们的选项。
在你的情况下(我\fbox
仅包括使每个小页面的大小可见,而\hrulefill
不是\hfill
使垂直居中可见):
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\begin{center}
\fbox{
\begin{minipage}[c]{4cm}
\begin{tabular}{l}
a \\
b \\
c \\
\end{tabular}
\end{minipage}
}\hrulefill
\fbox{
\begin{minipage}[c]{2cm}
\includegraphics[width=\textwidth]{star.mps}
\end{minipage}
}
\end{center}
\end{document}
答案2
您可以使用tabularx
包裹插入tabularx
适合线(或7in
,取决于您的要求)的 ,以及\smash
图像内容,使其垂直符合您的参数。下面是一个简单的例子,说明我的意思:
\documentclass{article}
\usepackage{graphicx,tabularx}% http://ctan.org/pkg/{graphicx,tabularx}
\begin{document}
\noindent\begin{tabularx}{\linewidth}{lX}
a \\ b \\
c & \hfill
\smash{\raisebox{-.3\normalbaselineskip}{%
\includegraphics[height=3\normalbaselineskip]{example-image-a}}}
\end{tabularx}
\end{document}
\hfill
将 -column的内容推X
到右侧(因为看起来您似乎想要一个r
-column,但可能没有必要)。图像高度被强制为,3\normalbaselineskip
使其适合表格的 3 行。但是,它略微向下移动( )以适应它实际上放置在基线上的事实,这不会使其在.3\normalbaselineskip
三行中垂直居中。\smash
删除所有垂直高度,使其跨越多行(类似于\multirow
multirow
包裹会做)。
tabularx
不是必需的,但它可能会在这些情况下有所帮助,具体取决于您的实际应用/用途。