viernes, 13 de diciembre de 2013

Cómo poner puntitos en una tabla hasta el final de la celda

En esta entrada mostraré cómo poder rellenar una tabla con puntitos, hasta la celda siguiente.

El comando "\dotfill", nos permite rellenar la celda con puntitos. Pero si sólo lo hacemos así, solo nos rellenará la celda actual. Y quedará un espacio en blanco, antes del texto de la siguiente celda. Como se ve a continuación. (Por cierto, recuerda que con "p{40mm}" definimos la anchura de la columna.)

\begin{table}[htb]
\begin{center}
\begin{tabular}{p{40mm} r}
\hline
Ciudad & Altura \\
\hline \hline
Ciudad de México \dotfill & 2250 m\\
Madrid \dotfill & 650 m \\
Ginebra \dotfill & 430 m \\
París \dotfill & 50 m \\
\hline
\end{tabular}
\caption{Altura respecto el nivel del mar.}
\label{ta:altura}
\end{center}
\end{table}


Podemos poner puntitos al final de la primera columna y al inicio de la segunda columna. Pero el seguirá quedando un espacio en blanco entre ambas columnas.

\begin{table}[htb]
\begin{center}
\begin{tabular}{p{40mm} r}
\hline
Ciudad & Altura \\
\hline \hline
Ciudad de México \dotfill & \dotfill 2250 m\\
Madrid \dotfill & \dotfill 650 m \\
Ginebra \dotfill & \dotfill 430 m \\
París \dotfill & \dotfill 50 m \\
\hline
\end{tabular}
\caption{Altura respecto el nivel del mar.}
\label{ta:altura}
\end{center}
\end{table}


Para indicar que no queremos ningún espacio, lo podemos hacer con @{}. Este comando sirve para definir el tipo de separación entre columnas (un puntito, una raya, otros símbolos...). Entre {} se indica el símbolo que queremos usar (click aquí). Como aquí no ponemos ninguno, queremos decir que no habrá ninguna separación.

El resultado sigue sin ser bueno. Los puntitos no están todos equidistantes. Hay una rotura en esa simetría entre las dos columnas. (En este ejemplo se ve en ". .650".)

\begin{table}[htb]
\begin{center}
\begin{tabular}{p{40mm}@{} r}
\hline
Ciudad & Altura \\
\hline \hline
Ciudad de México \dotfill & \dotfill 2250 m\\
Madrid \dotfill & \dotfill 650 m \\
Ginebra \dotfill & \dotfill 430 m \\
París \dotfill & \dotfill 50 m \\
\hline
\end{tabular}
\caption{Altura respecto el nivel del mar.}
\label{ta:altura}
\end{center}
\end{table}


En internet encontré un truquito muy inteligente (click aquí), donde se hace todo en una única columna. Por eso, primero fusionamos ambas columnas con el paquete {multirow}.

\usepackage{multirow}

\begin{table}[htb]
\begin{center}
\begin{tabular}{p{40mm} l}
\hline
Ciudad & Altura\\
\hline \hline
\multicolumn{2}{c@{}}{Ciudad de México \dotfill 2250 m}\\
\multicolumn{2}{c@{}}{Madrid \dotfill 650 m}\\
\multicolumn{2}{c@{}}{Ginebra \dotfill 430 m}\\
\multicolumn{2}{c@{}}{París \dotfill 50 m}\\
\hline
\end{tabular}
\caption{Altura respecto el nivel del mar.}
\label{ta:altura}
\end{center}
\end{table}

1 comentario:

Unknown dijo...

Hola.
Me gustaría saber como conseguir eso mismo pero que el segundo dato quede separado hasta el final de la hoja, como en tabla de contenidos por ejemplo.

Muchas gracias.

Un saludo.