PDF de programación - Apuntes de LATEX Capítulo 10: Conceptos avanzados sobre estructura de tablas

Imágen de pdf Apuntes de LATEX Capítulo 10: Conceptos avanzados sobre estructura de tablas

Apuntes de LATEX Capítulo 10: Conceptos avanzados sobre estructura de tablasgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 8 de Octubre del 2017)
1.407 visualizaciones desde el 8 de Octubre del 2017
319,4 KB
12 paginas
Creado hace 15a (18/11/2008)
Apuntes de LATEX

Capítulo 10: Conceptos avanzados sobre estructura de tablas

1. El paquete array

El paquete array introduce una serie de mejoras sobre el entorno tabular estándar. La tabla siguiente

describe los nuevos elementos introducidos por el paquete:

Argumentos de los entornos estándar tabular y array

l, r, c, p{Ancho}

| @{Objeto}

Formatos de columna, que mantienen su significado básico. Para
p{Ancho}, el texto se coloca justificado a la parte de arriba de la
casilla.
Mantienen su significado, aunque se introduce una mejora para ‘|’:
el espacio entre columnas se incrementa en el valor correspondiente
a la anchura de la raya vertical.

Nuevos argumentos con el paquete array

m{Ancho}

b{Ancho}

!{Objeto}

>{comando}

<{comando}

Nuevo especificador de columna, similar a p{Ancho}, con la dife-
rencia de que las entradas aparecen centradas en sentido vertical.
Similar al anterior, pero las entradas se justifican a la parte inferior.
Nuevo separador de columnas, similar a @{Objeto}. La diferencia
está en que no suprime el espacio normal entre columnas.
Se debe incluir antes de un especificador l, r, c, p, m, b. Tiene
el efecto de aplicar el comando a cada una de las casillas de la
columna.
Análogo al anterior, sólo que se utiliza después del especificador
de columna, y aplica el comando detrás de cada columna.

Para casillas tipo párrafo (p{Ancho}, m{Ancho} y b{Ancho}), es posible dividir el texto en varias

líneas, y justificarlo a cualquiera de los lados utilizando los comandos:

\raggedright −→ El texto se ajusta sólo por la izquierda
\centering −→ Texto centrado
\raggedleft −→ El texto se ajusta sólo por la derecha

Dentro de cada casilla, cada línea se separa utilizando el comando estándar \\. Es importante tener
en cuenta que, para la última casilla de una fila, se debe terminar con el comando \tabularnewline,
que indica a LATEX que hemos finalizado con esa fila de la tabla.

1

Ejemplo:

\begin{tabular}{|l|c|} \hline
\multicolumn{1}{|p{1.5cm}|}{\centering %
Planeta} & \multicolumn{1}{p{4cm}|}%
{\centering Distancia media al sol \\
(millones de km)} \tabularnewline \hline
Mercurio & 58.1 \\
Venus & 108.3 \\
Tierra & 150.0 \\ \hline

\end{tabular}

Planeta

Mercurio
Venus
Tierra

Distancia media al sol

(millones de km)

58.1
108.3
150.0

Cambiando los formatos “p{1.5cm}” y “p{4cm}” por “m{1.5cm}” y “m{4cm}” ó por “b{1.5cm}” y

“b{4cm}” obtendríamos, respectivamente:

Planeta

Mercurio
Venus
Tierra

Distancia media al sol

(millones de km)

58.1
108.3
150.0

Planeta
Mercurio
Venus
Tierra

Distancia media al sol

(millones de km)

58.1
108.3
150.0

Vemos en los ejemplo anteriores que los puntos de los decimales no quedan bien alineados. Una

posible solución sería colocar el signo “.” como separador de columna, de la siguiente forma:

\begin{tabular}{|l|r@{.}l|}
\hline
\multicolumn{1}{|m{1.5cm}|}{\centering %
Planeta} & \multicolumn{2}{m{4cm}|}%
{\centering Distancia media al sol \\
(millones de km)} \tabularnewline \hline
Mercurio &
Venus & 108&3 \\
Tierra &
150&1 \\
\hline
\end{tabular}

58&1 \\

Planeta

Mercurio
Venus
Tierra

Distancia media al sol

(millones de km)

58.1
108.3
150.1

Sin embargo, tal procedimiento no da buenos resultados para columnas muy anchas. La solución, para
este caso, se encuentra en utilizar el paquete dcolumn. Este paquete introduce un nuevo separador, de
sintaxis:

D{separador1}{separador2}{Num}

donde separador1 es el decimal que utilizamos en el fichero .tex, y separador2 es el decimal que LATEX
colocará en la salida. Num denota el número máximo de decimales en la columna (el valor -1 equivaldría
a cualquiera). Por ejemplo, obtendríamos el resultado deseado con:

2

\begin{center}
\begin{tabular}{|l|D{,}{.}{-1}|}
\hline
\multicolumn{1}{|m{1.5cm}|}{\centering %
Planeta} & \multicolumn{1}{m{4cm}|}%
{\centering Distancia media al sol \\
(millones de km)} \tabularnewline \hline
Mercurio & 58,1
Venus & 108,3
Tierra & 150,1
\hline
\end{tabular}
\end{center}

\\
\\

\\

Planeta

Mercurio
Venus
Tierra

Distancia media al sol

(millones de km)

58.1
108.3
150.1

Los argumentos >{comando} y <{comando} nos permiten hacer útiles manipulaciones por columnas.
Por ejemplo, si queremos poner en negrita, añadir color, etc... una columna en concreto, podemos
especificar:

\begin{center}
\begin{tabular}{|>{\bfseries}l|%
>{\color{red}}c|}
\hline
\multicolumn{1}{|m{1.5cm}|}{\centering %
Planeta} & \multicolumn{1}{m{4cm}|}%
{\centering Distancia media al sol \\
(millones de km)} \tabularnewline \hline
Mercurio & 58.1
Venus & 108.3
Tierra & 150.1
\hline
\end{tabular}
\end{center}

\\
\\

\\

Planeta

Mercurio
Venus
Tierra

Distancia media al sol

(millones de km)

58.1
108.3
150.1

La utilidad del comando de cierre <{comando} puede verse en el siguiente ejemplo:

\begin{tabular}{|c|>{$\displaystyle}c<{$}|}
\hline
Función & \text{Definición} \\ \hline
tangente & \frac{\sen(x)}{\cos(x)} \\ \hline
cosecante & \frac{\cos(x)}{\sen(x)} \\ \hline
\end{tabular}

Función Definición

tangente

cosecante

sen(x)
cos(x)
cos(x)
sen(x)

donde los contenidos de la segunda columna se escriben automáticamente en modo matemático tipo
párrafo.

Si un determinado formato de columna se va a repetir en varias tablas (ó columnas), es convenien-
te utilizar el siguiente comando, proporcionado por el paquete array, que permite construir nuevos
formatos:

\newcolumntype{Carácter}{Definición}

Así por ejemplo, la expresión >$\displaystyle}c<{$} en la tabla anterior puede ser abreviada a ‘X’,
utilizando previamente:

3

\newcolumntype{X}{>$\displaystyle}c<{$}}

En tablas con líneas horizontales, las letras mayúsculas pueden quedar demasiado cerca de las líneas;
para solventar ésto el paquete array proporciona la longitud \extrarowheight, que permite añadir una
pequeña altura a cada línea mejorando el resultado, como puede verse en el siguiente ejemplo (donde
además, se muestra la diferencia entre los separadores @ y ! )

\newcolumntype{L}{>{\itshape}r}
\begin{tabular}{|l|L@{---}l|}
\hline

& Nombre & Name \\ \hline

1 & uno & one \\
2 & dos & two \\
3 & tres & three \\ \hline

\end{tabular}
\par \bigskip
\setlength{\extrarowheight}{2pt}
\begin{tabular}{|l|L!{---}l|}
\hline

& Nombre & Name \\ \hline

1 & uno & one \\
2 & dos & two \\
3 & tres & three \\ \hline

\end{tabular}

2. El paquete multirow

Nombre—Name

uno—one
dos—two
tres—three

Nombre — Name

uno — one
dos — two
tres — three

1
2
3

1
2
3

El paquete multirow nos permite construir tablas en las que algunas celdas ocupan varias filas dentro

de un entorno tabular. Se utiliza la orden:

\multirow{nrow}{width}[vmove]{contenido}

donde: nrow es el número de filas a agrupar; width es el ancho de la columna; y vmove sirve para subir
o bajar el texto (opcional). Esta orden funciona de forma similar a \multicolumn, pero para filas.
Nótese que el formato m{Ancho} nos era de utilidad para centrar texto en el caso de columnas vecinas
de diferente altura; multirow es adecuado para centrar texto con respecto a varias columnas vecinas.
Por ejemplo:

\begin{tabular}{|l|r|r|}
\hline \multirow{4}{1.8cm}{Planeta}
& \multicolumn{2}{p{3.8cm}|}%
{\centering Distancia al sol \\
(millones de km)}\tabularnewline \cline{2-3}
& \multicolumn{1}{p{1.7cm}|}%
{\centering Maxima \\ distancia}
& \multicolumn{1}{p{1.7cm}|}%
{\centering Minima \\ distancia}
\tabularnewline \hline
Mercurio & 69.4
& 109.0
Venus
Tierra
& 152.6
\hline
\end{tabular}

& 46.8\\
& 107.6\\
& 147.4\\

4

Planeta

Mercurio
Venus
Tierra

Distancia al sol
(millones de km)

Maxima
distancia
69.4
109.0
152.6

Minima
distancia
46.8
107.6
147.4

Se aprecia que la entrada “Planeta” está justificada a la izquierda. Esto se debe a que el comando
\multirowsetup, que determina el modo en el que aparece el texto de \multirow, está definido por
defecto como \raggedright. Redefiniéndolo con \renewcommand*{\multirowsetup}{\centering} se
consigue un texto centrado:

\renewcommand{\multirowsetup}{\centering}
\begin{tabular}{|l|r|r|}
\hline \multirow{4}{1.8cm}{Planeta}
& \multicolumn{2}{p{3.8cm}|}%
{\centering Distancia al sol \\
(millones de km)}\tabularnewline \cline{2-3}
& \multicolumn{1}{p{1.7cm}|}%
{\centering Maxima \\ distancia}
& \multicolumn{1}{p{1.7cm}|}%
{\centering Minima \\ distancia}
\tabularnewline \hline
Mercurio & 69.4
& 109.0
Venus
Tierra
& 152.6
\hline
\end{tabular}

& 46.8\\
& 107.6\\
& 147.4\\

3. El paquete hhline

Planeta

Mercurio
Venus
Tierra

Distancia al sol
(millones de km)

Maxima
distancia
69.4
109.0
152.6

Minima
distancia
46.8
107.6
147.4

El paquete hhline define el comando \hhline, que produce rayas dobles ó simples, y añade capacidades
para producir intersecciones bien construidas entre líneas horizontales y verticales. El comando se utiliza
como:

\hhline{ColumnasEIntersecciones}

donde la especificación ColumnasEIntersecciones se hace utilizando los siguientes elementos:

= Una raya horizontal doble del ancho de una columna.
- Una raya horizontal simple del ancho de una columna.

˜ Una columna sin raya horizontal.

| Una raya vertical que corta a una horizontal (simple ó doble).

: Una raya vertical que es partida por una horizontal doble. Detrás ó delante debe haber =.

# Dos rayas verticales que cortan a una horizontal doble.

t La semiparte superior de una horizontal doble.

b La semiparte inferior de una horizontal doble.

* Podemos usar la abreviatura: *{3}{==#} (por ejemplo), que se expande como ==#==#==# (ésto
también es válido para el entorno tabular básico).

5

Los elementos anteriores se utilizan agrupados, para definir entrelazamientos con las rayas verticales.

Por ejemplo:

|t: −→ Esquina superior izquierda del cruce de dos rayas dobles ((cid:112)·)
:t| −→ Como el anterior, pero para la esquina superior derecha (·(cid:113))
|b: −→ Análogo, para esquina inferior izquierda ((cid:120)·)
:b| −→ Análogo, para esquina inferior derecha (·(cid:121))
|: −→ Una raya vertical seguida de otra vertical que se cruza con una horizontal doble
:| −→ Una raya vertical, que se ha cruzado con una horizontal doble,
  • Links de descarga
http://lwp-l.com/pdf7151

Comentarios de: Apuntes de LATEX Capítulo 10: Conceptos avanzados sobre estructura de tablas (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad