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'm trying to make a table look pretty; more specifically, I want the 1st and 3rd columns to be 6-6.5 cm wide, and I want the second column to be only 1-1.5 cm wide. I also want minimal white space in the top and bottom cells.

Could you help me? What's the easiest way to do that? I'm a total tabularx newbie...

enter image description here

Here is what I put together with tabular... (less complicated tham with tabularx)

\documentclass[12pt,a4paper]{article}
\usepackage{mwe}
\usepackage{graphicx}
\usepackage{tabularx}
\usepackage{setspace}
\begin{document}

\resizebox{14cm}{!}{  
\setstretch{1}
\noindent
\begin{tabular}{|p{6cm}|p{3cm}|p{7cm}|}\hline
      % after \\: \hline or \cline{col1-col2} \cline{col3-col4} ...
      Vecindario & Evaluaciones de $f$ & Perspectiva General \\
      \hline
      Añadiendo al anterior, el intercambio de tareas de la primera y última posición (6 vecinos)& 6 & \includegraphics[width=70mm]{opvec2.eps} \\
      \hline
      Generando una permutación aleatoria en cada iteración e intercambiando las tareas en las posiciones que ocupan 1-2,3-4,5-6 (3 vecinos)  & 3 & \includegraphics[width=70mm]{opvec2.eps} \\
      \hline
      Generando una permutación aleatoria en cada iteración e intercambiando las tareas en las posiciones que ocupan 1-2,2-3,3-4,4-5,5-6,6-1 (6 vecinos)& 6 & \includegraphics[width=70mm]{opvec2.eps} \\
      \hline
      Intercambiando la tarea de la 1ª posición con todas las demás; la de la 2ª con todas las siguientes; la de la 3ª con todas las siguientes posiciones;....;y la de la penúltima posición con la tarea de la última posición& 15 & \includegraphics[width=70mm]{opvec2.eps} \\
      \hline
\end{tabular}\\
}
\setstretch{1.5}

{\small ''Iteraciones máximas''=20}
\end{document} 

And this is what I did using tabularx:

\documentclass[12pt,a4paper]{article}
\usepackage{mwe}
\usepackage{graphicx}
\usepackage{tabularx}
\usepackage{setspace}
\begin{document}

\setstretch{1}
\noindent
\begin{tabularx}{\textwidth}{>{\hsize=\hsize}X>{\hsize=0.25\hsize}X>{\hsize=\hsize}X}
      \hline
      % after \\: \hline or \cline{col1-col2} \cline{col3-col4} ...
      Vecindario & Evaluaciones de $f$ & Perspectiva General \\
      \hline
      Añadiendo al anterior, el intercambio de tareas de la primera y última posición (6 vecinos)& 6 & \includegraphics[width=70mm]{opvec2.eps} \\
      \hline
      Generando una permutación aleatoria en cada iteración e intercambiando las tareas en las posiciones que ocupan 1-2,3-4,5-6 (3 vecinos)  & 3 & \includegraphics[width=70mm]{opvec2.eps} \\
      \hline
      Generando una permutación aleatoria en cada iteración e intercambiando las tareas en las posiciones que ocupan 1-2,2-3,3-4,4-5,5-6,6-1 (6 vecinos)& 6 & \includegraphics[width=70mm]{opvec2.eps} \\
      \hline
      Intercambiando la tarea de la 1ª posición con todas las demás; la de la 2ª con todas las siguientes; la de la 3ª con todas las siguientes posiciones;....;y la de la penúltima posición con la tarea de la última posición& 15 & \includegraphics[width=70mm]{opvec2.eps} \\
      \hline

\end{tabularx}\\
\setstretch{1.5}

{\small ''Iteraciones máximas''=20}
\end{document} 
share|improve this question

3 Answers 3

up vote 2 down vote accepted

If you need the possibility of a pagebreak inside the tabular use package ltablex instead of tabularx.

\documentclass{article}
\usepackage{tabularx,graphicx}
\usepackage{booktabs}
\usepackage{mwe}%% Only for demo needed

\begin{document}

\noindent
\begin{tabularx}{\textwidth}{@{} >{\vspace{0pt}}X >{\vspace{0pt}}p{1cm} >{\vspace{0pt}}X @{}}\toprule
\emph{Vecindario} & \hspace{0pt}\emph{Evaluciones de $f$} & \emph{Perspectiva General}\\\midrule 
The mwe package has due to its nature a little uncommon installation requirements.
While the normal package files are installed as normal, a variety of image files
are installed in the tex/latex/mwe/ folder, so that they can be accessed from
every (MWE) document. & 6 & 
   \includegraphics[width=\linewidth]{example-image-a}\\\midrule
The mwe package has due to its nature a little uncommon installation requirements.
While the normal package files are installed as normal, a variety of image files
are installed in the tex/latex/mwe/ folder, so that they can be accessed from
every (MWE) document. & 3 & 
   \includegraphics[width=\linewidth]{example-image-a}\\\bottomrule
\end{tabularx}

\end{document}

enter image description here

and the adopted example for two columns. Important is that you use \newline in the first column, otherwise you'll get a new tabular line and the image starts with the last line (I run it with pdflatex):

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tabularx}
\usepackage{graphicx}
\usepackage{booktabs,setspace}
\usepackage{epstopdf}

\begin{document}
Hola\\
tronquito
\setstretch{1}

\noindent
\begin{tabularx}{\textwidth}{@{} >{\vspace{0pt}}X >{\vspace{0pt}}X @{}}\toprule
\emph{Vecindario}  & \emph{Perspectiva General}\\\midrule
Añadiendo al anterior vecindario, el intercambio de tareas de la primera y última posición.\newline
\textbf{Nº de vecinos: 6.}\newline
\textbf{Nº de evaluaciones/iteración: 6} & \includegraphics[width=\linewidth]{opvec2.eps}\\ \midrule
Generando una permutación aleatoria en cada iteración e intercambiando las tareas en las posiciones que ocupan 1-2,3-4,5-6.\newline
\textbf{Nº de vecinos: 3.}\newline
Nº de evaluaciones/iteración: 3   &
  \includegraphics[width=\linewidth]{opvec2.eps} \\ \midrule
Generando una permutación aleatoria en cada iteración e intercambiando las tareas en las posiciones que ocupan 1-2,2-3,3-4,4-5,5-6,6-1.\newline
\textbf{Nº de vecinos: 6.}\newline
Nº de evaluaciones/iteración: 6 &
   \includegraphics[width=\linewidth]{opvec2.eps}\\ \midrule
Intercambiando la tarea de la 1ª posición con todas las demás; la de la 2ª con todas las siguientes; la de la 3ª con todas las siguientes posiciones;....;y la de la penúltima posición con la tarea de la última posición.\newline
\textbf{Nº de vecinos: 15.}\newline
Nº de evaluaciones/iteración: 15   &
   \includegraphics[width=\linewidth]{opvec2.eps}\\ \bottomrule
\end{tabularx}
\setstretch{1.5}

\end{document}
share|improve this answer
    
I adapted your example to 2 cols but... What am I doing bad to obatin this sensa.square7.ch/gfdgfd6.jpg ? TEX-file -> dropbox.com/s/p7u3lbjle4pz9p6/proba42.tex –  Mika Ike Apr 28 at 14:21
    
you cannot have a linebreak inside of \textbf{ ...\\ ...}. Use the macro two times: \textbf{ ...}\\ \textbf{ ...} –  Herbert Apr 28 at 14:33
    
\herbert Thank you very much, but still haveing problems with the adaptation dropbox.com/s/4qe72h4qyqyp8io/proba42-soo.tex –  Mika Ike Apr 28 at 14:40
1  
see my edited answer. –  Herbert Apr 28 at 14:55
1  
see edit. Use \newline if you want only a new line in the tabular cell but not a new tabular line. –  Herbert Apr 28 at 16:13

With \raisebox the reference point of the graphics can be changed. The following example defines macro \tabgraphics as shorthand for \includegraphics, whose reference point is moved below the top by the amount of the height of an uppercase letter. Also inside an X cell the maximum width is \hsize. Also the sum of \hsize in the tabularx columns specification should sum up to the number of X columns.

\documentclass[12pt,a4paper]{article}

\usepackage{graphicx}
\usepackage{tabularx}
\usepackage{setspace}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}

\newcommand*{\tabgraphics}[2][]{%
  \begingroup
    \settoheight{\dimen0}{H}%
    \raisebox{\dimexpr\dimen0-\height}{%
      \includegraphics[width=\hsize,{#1}]{#2}%
    }%
  \endgroup
}

\begin{document}

\setstretch{1}
\noindent
\begin{tabularx}{\linewidth}{>{\hsize=1.3\hsize}X>{\hsize=0.3\hsize}X>{\hsize=1.4\hsize}X}
  \hline
  % after \\: \hline or \cline{col1-col2} \cline{col3-col4} ...
  Vecindario & \hspace{0pt}Evaluaciones de~$f$ & Perspectiva General \\
  \hline
  Añadiendo al anterior, el intercambio de tareas de la primera y última posición (6 vecinos)& 6 &
  \tabgraphics{opvec2} \\
  \hline
  Generando una permutación aleatoria en cada iteración e intercambiando las tareas en las posiciones que ocupan 1-2,3-4,5-6 (3 vecinos)  & 3 &
  \tabgraphics{opvec2} \\
  \hline
  Generando una permutación aleatoria en cada iteración e intercambiando las tareas en las posiciones que ocupan 1-2,2-3,3-4,4-5,5-6,6-1 (6 vecinos)& 6 &
  \tabgraphics{opvec2} \\
  \hline
  Intercambiando la tarea de la 1ª posición con todas las demás; la de la 2ª con todas las siguientes; la de la 3ª con todas las siguientes posiciones;....;y la de la penúltima posición con la tarea de la última posición& 15 &
  \tabgraphics{opvec2} \\
  \hline

\end{tabularx}\\
\setstretch{1.5}

{\small ``Iteraciones máximas''=20}
\end{document} 

Result

share|improve this answer

\begin{tabularx}{\textwidth}{>{\hsize=\hsize}X>{\hsize=0.25\hsize}X>{\hsize=\hsize}X}

\hsize=\hsize does nothing so that is

\begin{tabularx}{\textwidth}{X  >{\hsize=0.25\hsize}X X}

If you alter the size you need to make sure that the total width is unchanged so you would need to change the widths of the other two. However there is no point in making the second two columns X as they are fixed width (of the digits or the specified image width of 70mm)

so you should use

\begin{tabularx}{\textwidth}{Xcc}

Then to make the image look better you need to make its baseline go through its center by

 \raisebox{-.5\height}{\includegraphics.....}

Or you can use the adjustbox package which avoids the need to use \raisebox by giving \includegraphics options to control the vertical alignment.

share|improve this answer

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.