Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I have a text in a 3 row table like as follows

\begin{wrapfigure}{r}{3in}
\centering 
\includegraphics{style3color.png}
\end{wrapfigure}
\begin{tabular*}{7in}{l@{\extracolsep{\fill}}r}
a \\
b \\
c  \\
\end{tabular*}

I want to insert an image that spans across all the rows in the 2nd column. What's the best way to do it?

As you can see from above I have used wrapfig package to wrap this table around the image. It works but the image does not come to the center. It starts from b to end way below c.

share|improve this question
1  
Welcome to TeX.sx! Please add a minimal working example (MWE) that illustrates your problem. It will be much easier for us to reproduce your situation and find a solution when we see compilable code, starting with \documentclass{...} and ending with \end{document}. –  Stephen Dec 7 '12 at 20:21
add comment

2 Answers

You can use the tabularx package to insert a tabularx that fits within the line (or 7in, depending on your requirement) and \smash the contents of your image to make it fit within your parameters vertically. Here's a quick example of what I mean:

enter image description here

\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 pushes the contents of the X-column to the right (as it seems like you're after an r-column, but it may not be necessary). The image height is forced to 3\normalbaselineskip which makes it fit within 3 lines of the table. However, it's moved down slightly (.3\normalbaselineskip) to accommodate for the fact that it's actually placed on the baseline, which doesn't center it vertically across the three rows. \smash removes all vertical height, making it span more than one row (similar to what \multirow from the multirow package would do).

tabularx is not necessary, but it may help in these situations, depending on your actual application/usage.

share|improve this answer
add comment

In order to put a table and a figure side to side (or two any objects, by the way) an easy solution is to enclose each one into a minipage of given widths, and put \hfill between minipages if you want the objects be "full justified" (i.e: aligned with page margins). Give each minipage [c] option to vertically align them.

In your case (I included \fbox only to make visible the size of each minipage and \hrulefill instead of \hfill to make visible the vertical centering):

\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}

Result

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.