Manejo de Tablas en Latex
Upcoming SlideShare
Loading in...5
×
 

Manejo de Tablas en Latex

on

  • 745 views

 

Statistics

Views

Total Views
745
Views on SlideShare
745
Embed Views
0

Actions

Likes
0
Downloads
20
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Manejo de Tablas en Latex Manejo de Tablas en Latex Document Transcript

  • Tablas en LTEX A Versi´n 1.00 o Ra´l Mata Botana u email: matabotanar (at) gmail.com agosto del 2008Copyright Copyright (c) 2008 Ra´l Mata Botana. Se otorga permiso para co- u piar, distribuir y/o modificar este documento bajo los t´rminos de la e Licencia de Documentaci´n Libre de GNU, Versi´n 1.2 o cualquier o o otra versi´n posterior publicada por la Free Software Foundation; sin o Secciones Invariantes ni Textos de Cubierta Delantera ni Textos de Cubierta Trasera. Una copia de la licencia est´ incluida en la secci´n a o titulada GNU Free Documentation License.1. Introducci´n oMuchos tutoriales describen la construcci´n de tablas en L TEX, pero la mayor´ de o A ıaellos se limitan a explicar las opciones b´sicas. En este documento intentar´ mos- a etrar las distintas opciones que existen para el dise˜o de tablas y ejemplificando ncada caso.2. El entorno tabbingEste entorno de trabajo no genera ex´ctamente tablas, pero permite presentar atexto encolumnado, de manera similar a como lo har´ un tabulador. ıaDel entorno de trabajo se entra y se sale mediante los comandos begin{tabbing}y end{tabbing} respectivamente. Cuenta con los siguientes comandos: 1
  • Tablas en L TEX A = Fija la posici´n de los tabuladores o > Salta al siguiente tabulador Fin de l´ ınea kill Si una l´ ınea finaliza con este comando no se imprime + Hace que la l´ınea sig. empiece en el tabulador sig. al previsto - Hace que la l´ınea sig. empiece en el tabulador anterior al previsto < Salta al tabulador anterior ’ Hace que el texto anterior se justifique a derecha ‘ Hace que el texto que sigue vaya hacia el margen derecho2.1. Ejemplo 1Si ponemos:begin{tabbing}Nombre = Apellido = Padr´n oEsteban > Quito > 80000Elena > Nito > 80001Olga > Sana > 80002end{tabbing}Lo que obtendremos es:Nombre Apellido Padr´n oEsteban Quito 80000Elena Nito 80001Olga Sana 800022.2. Ejemplo 2Tambi´n podemos fijar el ancho de las columnas: ebegin{tabbing}hspace*{2cm} = hspace*{5cm} = hspace*{3cm} killNombre > Apellido > Padr´n oEsteban > Quito > 80000Elena > Nito > 80001Olga > Sana > 80002end{tabbing} p´gina 2 de 37 a
  • Tablas en L TEX AObteniendo:Nombre Apellido Padr´n oEsteban Quito 80000Elena Nito 80001Olga Sana 800022.3. Ejemplo 3Ahora una opci´n m´s compleja o abegin{tabbing}hspace{5cm} = hspace{5cm} = killColumna uno > Columna 2 > Columna 3 > Segunda > Tercera hspace{1.5cm} %l´nea en blanco ıTexto de primera columna que pisa la segunda >> Tercer columna > Texto segunda y tercera columa hspace{1.5cm} %l´nea en blanco ıxxxxxxxxxxx = xxxxxxxxxxx = xxxxxxxxxxx = kill %seteo nuevos tabuladoresCol 1 >Col 2 > Col 3 > Col 4 +Dos > Tres > Cuatro < Uno > Dos > Tres > CuatroDos > Tres > Cuatro - Uno > Dos > Tres > CuatroUno > Dos ’ > Tres ‘ Cuatroend{tabbing}Columna uno Columna 2 Columna 3 Segunda TerceraTexto de primera columna que pisa la segunda Tercer columna Texto segunda y tercera columaCol 1 Col 2 Col 3 Col 4 Dos Tres CuatroUno Dos Tres Cuatro Dos Tres CuatroUno Dos Tres CuatroUno Dos Tres Cuatro p´gina 3 de 37 a View slide
  • Tablas en L TEX A3. El entorno tabularEste entorno de trabajo nos permite trabajar con muchas m´s posibilidades que ael entorno tabbing. Tiene dos formatos posibles que son los siguientes:begin{tabular}[posici´n]{columnas} ocolumna 1 & columna 2 & columna n .........end{tabular}o´begin{tabular*}{ancho}[posici´n]{columnas} ocolumna 1 & columna 2 & columna n .........end{tabular*} columnas Determina la cantidad de columnas y su posici´n o l al´ ınea a izquierda c centra r al´ ınea a derecha | colocado entre dos columnas genera una l´ ınea vertical p{ancho} Establece el ancho de una columna @{texto} Inserta el texto entre columnas @{hspace{ancho}} Inserta espacio entre columnas *{num}{cols} num establece la cantidad de columnas y cols el formato de las columnas (que puede ser una expresi´n) o posici´n o Determina la posici´n de la tabla con respecto al texto o b pone la parte inferior de la tabla en la base del texto (opci´n o por defecto) c pone la mitad de la tabla en la base del texto t pone la parte superior de la tabla en la base del texto ancho Establece el ancho de la tabla & Salta a la siguiente columna Salta a la siguiente fila hline Genera una l´ ınea horizontal cline(n-m) Genera una l´ ınea horizontal desde el inico de la columna n al fin de la m vline Genera una l´ ınea vertical a lo largo de una fila p´gina 4 de 37 a View slide
  • Tablas en L TEX AUna vez que ya hemos detallado las distintas opciones del entorno tabular pase-mos a ver algunos ejemplos.3.1. Ejemplo 1Tabla b´sica sin borde. Al poner: abegin{tabular}{l c r}columna 1 & columna 2 & columna 3 col 1 & col 2 & col 3end{tabular}Veremos entonces la primer columna alineada a izquierda, la segunda centrada yla tercera alineada a derecha: columna 1 columna 2 columna 3 col 1 col 2 col 33.2. Ejemplo 2Tabla b´sica con borde doble en el exterior y simple adentro. Al poner: abegin{tabular}{||l | c | r||}hlinehlinecolumna 1 & columna 2 & columna 3 hlinecol 1 & col 2 & col 3hlineend{tabular}Veremos entonces: columna 1 columna 2 columna 3 col 1 col 2 col 33.3. Ejemplo 3Veamos un ejemplo un poco m´s complejo, crearemos una tabla de 3 filas por 3 acolumnas, que las columnas 1 y 2 est´n serparadas por “ xx ”, que la columna 3 eest´ separada en filas. e p´gina 5 de 37 a
  • Tablas en L TEX Abegin{tabular}{l @{ xx } c @{hspace{1cm}}|p{4cm}|}cline{3-3}columna 1 & columna 2 & columna 3 esto lo pongo de relleno pararemarcar que el ancho de la columna es de 4 cmcline{3-3}col 1 & col 2 & col 3 cline{3-3}columnita 1 & columnita 2 & columnita 3 cline{3-3}end{tabular}Veremos entonces: columna 1 xx columna 2 columna 3 esto lo pon- go de relleno para re- marcar que el ancho de la columna es de 4 cm col 1 xx col 2 col 3 columnita 1 xx columnita 2 columnita 33.4. El entorno “tabular*”Veamos un peque˜o ejemplo: n@{extracolsep {longitud}} Nos permite establecer un espacio en blanco entrecolumnas de la longuitud dada.begin{tabular*}{10 cm}{|l|l@{extracolsep{fill}}r|}hline&Desde&HastahlineRuta 2&Buenos Aires & Mar del PlataRuta 7&Buenos Aires &Mendozahlineend{tabular*} Desde Hasta Ruta 2 Buenos Aires Mar del Plata Ruta 7 Buenos Aires Mendoza3.5. Alineaci´n de decimales oEste es un ejemplo muy sencillo, la parte entera la alineamos a derecha, la decimala izquierda y los separamos por “@{.}”. p´gina 6 de 37 a
  • Tablas en L TEX Abegin{tabular}{|l | r@{,}l |}hlineProducto 1 & 11 & 1hlineProducto 2 & 2 & 22hlineTotal & 13 & 32hlineend{tabular} Producto 1 11,1 Producto 2 2,22 Total 13,323.6. El paquete dcolumn[3]Con en m´todo que usamos en el ejemplo anterior, si bien logramos el resultado eesperado, en realidad lo que hicimos fue utilizar un peque˜o truco donde un´ n ıamos2 columnas.Esto puede tener alguna complicaci´n, por ejemplo si la columna que lleva una oalineaci´n decimal tiene un encabezado. oPara solucionar este problema existe el paquete dcolumn.La sintaxis es la siguiente:D{separador 1}{separador 2}{decimales} separador 1 Es el que usaremos en el c´digo para separar la parte entera de o la decimal. separador 2 Es lo que L TEXnos mostrar´ en la salida para separar la parte A a entera de la decimal. decimales Es la cantidad de decimales que se mostrar´n en la salida, si el a valor es “-1” no se limitar´ la cantidad de cimales en la salida. aPreviamente, en el encabezado debemos declarar el paquete:usepackage{dcolumn}Veamos como ser´ el ejemplo anterior: ıa p´gina 7 de 37 a
  • Tablas en L TEX Abegin{tabular}{|l | D{.}{,}{-1} |}hlineProducto 1 & 11.1hlineProducto 2 & 2.22hlineTotal & 13.32hlineend{tabular} Producto 1 11,1 Producto 2 2,22 Total 13,323.7. Alineaci´n vertical de la tabla o3.7.1. Alineaci´n de la parte superior de la tabla con la base del texto oEn el siguiente ejemplo podremos ver como la tabla queda alineada con la basedel texto.Hola mundobegin{tabular}[t]{|l |c |r|}hlinepos 1 & pos 2 & pos 3 hlineposici´n 1 & posici´n 2 & posici´n 3 o o ohlineend{tabular}Hola mundo pos 1 pos 2 pos 3 posici´n 1 o posici´n 2 o posici´n 3 o3.7.2. Alineaci´n del centro de la tabla con la base del texto oEn otro ejemplo vemos como la tabla queda centrada verticalmente con el texto.Hola mundobegin{tabular}[c]{|l| r| c|}hline p´gina 8 de 37 a
  • Tablas en L TEX Apos 1 & pos 2 & pos 3 hlineposici´n 1 & posici´n 2 & posici´n 3 o o ohlineend{tabular} pos 1 pos 2 pos 3Hola mundo posici´n 1 o posici´n 2 o posici´n 3 o3.7.3. Alineaci´n de la base de la tabla con la base del texto oHola mundobegin{tabular}[b]{| l | c| r |}hlinepos 1 & pos 2 & pos 3 hlineposici´n 1 & posici´n 2 & posici´n 3 o o ohlineend{tabular} pos 1 pos 2 pos 3Hola mundo posici´n 1 o posici´n 2 o posici´n 3 o3.8. Alineaci´n diferenciada en una misma columna oEn los ejemplos que vimos hasta ahora la alineaci´n de una misma columna era ola misma para todas sus celdas.Si necesitamos una alineaci´n paricular para cada celda, lo que podemos hacer oes poner el texto dentro de una caja.Veamos un ejemplo:begin{tabular}{|l|l|}hlinecelda 1 &celda 2hlinecelda 3 &makebox[2.5cm][c]{celda 4}hlinecelda 5 &makebox[2.5cm][r]{celda 6}hlineend{tabular} p´gina 9 de 37 a
  • Tablas en L TEX AObtenemos como resultado: celda 1 celda 2 celda 3 celda 4 celda 5 celda 64. Uniendo celdas4.1. Celdas de varias columnasSi queremos unir varias columnas, debemos usar el comando “multicolum”. Estetiene la siguiente sintaxis:multicolumn{columnas}{posici´n}{texto} o columnas Indica cuantas columnas tendr´ de ancho la celda. a posici´n o Indica la alineaci´n del texto. o texto Indica el contenido de la celda.4.1.1. Ejemplo celdas multicolumnasbegin{tabular}{|c|c|c|}hlinemulticolumn{3}{|c|}{multicolumna 1-3}hlinemulticolumn{2}{|c|}{multicolumna 1-2} & columna3hlinecolumna 1 & multicolumn{2}{|c|}{multicolumna 2-3}hlineend{tabular} multicolumna 1-3 multicolumna 1-2 columna3 columna 1 multicolumna 2-34.2. Uniendo varias filasPara unir varias filas debemos usar el comando “multirow”[9]. Este tiene la si-guiente sintaxis:multirow{filas}{ancho}[movimiento vertical]{texto} p´gina 10 de 37 a
  • Tablas en L TEX AAdem´s el paquete “multirow” debe ser declarado al principio del documento. ausepackage{multirow} columnas Indica cuantas filas tendr´ de alto la celda. a ancho Indica el ancho de la columna, si se pone asterisco tendr´ el ancho por defecto. a movimiento vertical Sirve para alinear el texto verticalmente(opcional). texto Indica el contenido de la celda.4.2.1. Ejemplo celdas multifilasbegin{tabular}{|c|c|c|}hlinemultirow{3}{4cm}{multifila 1-3} & multirow{2}{*}[3 mm]{multifila 1-2} & columna 3cline{3-3}& & multirow{2}{*}[-3 mm]{multifila 2-3}cline{2-2}& columna 2 & hlineend{tabular} multifila 1-2 columna 3 multifila 1-3 columna 2 multifila 2-35. Dividiendo celdas en diagonalPara poder hacer divisiones diagonales en las tablas debemos usar el paquete“slashbox”, por lo tanto debemos agregar en el encabezado del archivo fuente lasiguiente declaraci´n: ousepackage{slashbox}Cuando tenemos que dividir una celda usamos el siguiente comando:backslashbox{izquierda}{derecha} p´gina 11 de 37 a
  • Tablas en L TEX ADonde “izquierda” y “derecha” ser´ el contenido de la celda a cada lado de la al´ ınea diagonal.Veamos un ejemplo:begin{tabular}{|l|r|r|r|}hlinebackslashbox{origen}{destino} & Buenos Aires & C´rdoba & Rosario ohlineBuenos Aires & 0 Km & 716 Km & 318 KmhlineC´rdoba & 716 Km & 0 Km & 398 Km ohlineRosario & 318 Km & 398 Km & 0Kmhlineend{tabular}XXX XXX destino XXX Buenos Aires C´rdoba o Rosario origen XX X Buenos Aires 0 Km 716 Km 318 Km C´rdoba o 716 Km 0 Km 398 Km Rosario 318 Km 398 Km 0Km6. Pongamos un poco de colorPara poder colorear las tablas debemos usar el paquete colortbl [2], por lo tantodebemos agregar en el encabezado del archivo fuente:usepackage{colortbl}6.1. Columnas en colorPara colorear las columnas disponemos del comando “columncolor”, el mismoposee la siguiente sintaxis:columncolor[color model]{color}[left overhang][right overhang] p´gina 12 de 37 a
  • Tablas en L TEX A color model Especif´ el modelo de color a usar, estos pueden ser rgb (red, ıca green, blue), cmyk (cyan, magenta, yellow, black), hsb(Hue, Saturation, Brightness) o gray (gris). “hsb” no puede ser usa- do con pdfL TEX A color Es una especificaci´n al modelo de color dado. Esto es muy o conveniente si uno quiere utilizarlo sin definirlo anteriormente. Los colores predefinidos son: black, white, red, green, blue, cyan, magenta y yellow. left overhang Controla la distancia que el color debe exceder hacia la iz- quierda la entrada de la tabla m´s ancha. a right overhang Controla la distancia que el color debe exceder hacia la dere- cha la entrada de la tabla m´s ancha. aEl comando columncolor solo puede ser usado en la definici´n de una columna oo con el entorno multicolumn. El modo de usarlo es:>{columncolor[model color]{color} ...}6.1.1. Distintos modelos de colorAhora veremos un ejemplo en el que aplicamos todos los modelos de color, en lacolumna 1 utilizamos el modelo rgb, en la columa 2 cmyk, en la columna 3 gray,en la columna 4 un color predefinido y en la columna 5 un color que definimospr´viamente. edefinecolor{micolor}{rgb}{0,1,0.5}begin{tabular}{|>{columncolor[rgb]{0.7,0,0.7}} c |>{columncolor[cmyk]{0.8,0.5,0.4,0.1}}c |>{columncolor[gray]{0.7}}c |>{columncolor{blue}}c |>{columncolor{micolor}} c|}hlineCol 1 & Col 2 & Col 3 & Col 4 & Col 5 hlinergb & cmyk & gray & predefinido & definido por nosotroshlineend{tabular} Col 1 Col 2 Col 3 Col 4 Col 5 rgb cmyk gray predefinido definido por nosotros p´gina 13 de 37 a
  • Tablas en L TEX A6.1.2. Coloreando el entorno multicolumnVeamos directamente un peque˜o ejemplo: nbegin{tabular}{|c|c|}hlinemulticolumn{2}{|>{columncolor{red}}c|}{multicolumna 1-2}hlinemulticolumn{1}{|>{columncolor{green}}c|}{columna 1} &multicolumn{1}{|>{columncolor{yellow}}c|}{columna 2}hlineend{tabular} multicolumna 1-2 columna 1 columna 26.1.3. Determinando el ancho del colorComo vimos en el ejemplo anterior si no definimos nada, el color ocupa todo elancho de la columna. Ahora veremos un ejemplo que nos muestra como modificareso.begin{tabular}{| >{columncolor[rgb]{1,1,0}}l |>{columncolor[rgb]{0,1,1}[0cm][0cm]} l |>{columncolor[rgb]{1,0,1}[.5tabcolsep][.5tabcolsep]} l|}hlineEnrique & CersehlineClara & BoyahlineAna & Condahlineend{tabular} Integrante 1 Enrique Cerse Integrante 2 Clara Boya Integrante 3 Ana CondaEn este ejemplo vimos los dos extremos, la primer columna totalmente coloreada,la segunda columna con el color ajustado al texto y la tercer columna coloreahasta la mitad del espacio que queda entre la palabra m´s ancha y el ancho de ala columna.Como siempre las unidades de medida pueden ser mm, cm, in, pt, em y ex. p´gina 14 de 37 a
  • Tablas en L TEX A6.2. Filas en colorLa sintaxis es similar a la de las columnas, pero m´s sencilla: arowcolor[model color]{color}Los par´metros “model color” y “color” tienen los mismos significados que en a“columncolor”.Veamos un ejemplo:begin{tabular}{|l|l|}hlinerowcolor[cmyk]{1,1,0,0}Abraham & Lapuertahlinerowcolor[rgb]{0,1,1}Roque & Forthlinerowcolor[gray]{0.9}Eva & Dirsehlineend{tabular} Abraham Lapuerta Roque Fort Eva Dirse6.3. Coloreando celdas individualesEl paquete colortbl tambi´n permite colorear las celdas una a una. eLa sint´xis es la siguiente: acellcolor[modelo color]{color}Veamos un ejemplo sencillo:begin{tabular}{|l|l|}hlinecellcolor[cmyk]{1,1,0,0}Abraham & cellcolor{red}Lapuertahlinecellcolor[rgb]{0,1,1}Roque & cellcolor{blue}Forthlinecellcolor[gray]{0.9}Eva & cellcolor{green}Dirsehlineend{tabular} p´gina 15 de 37 a
  • Tablas en L TEX AObtenemos como resultado: Abraham Lapuerta Roque Fort Eva Dirse7. Elementos flotantesSi nosotros gener´semos una tabla con el entorno tabular, esta intentar´ ubicarse a adebajo del texto en el que se encuentra en el c´digo fuente, si no entrase en ola p´gina actual se colocar´ en la siguiente, dejando en blanco el espacio en la a ahoja anterior. Esto no quedar´ muy bien, pero lo podemos solucionar con el ıaentorno “table”, que lo que hace es convertir la tabla en flotante. Su sintaxis esla siguiente:begin{table}[posici´n] obegin{tabular}.........end{tabular}caption[Descripci´n corta]{Descripci´n larga} o oend{table} posici´n Especif´ donde L TEXintentar´ colocar la tabla, tiene las siguientes o ıca A a opciones y se puede poner una secuencia de varias: b: Intentar´ ponerla en el fondo de la p´gina a a h: Intentar´ ponerla en la misma posici´n en que se encuentra en a o el c´digo fuente o t: Intentar´ ponerla al principio de la p´gina a a p: La pondr´ en una p´gina que contenga solo elementos flotantes a a !: Ignorar la mayor´ de las restricciones impuestas por L TEX ıa A caption Especifica una leyenda para la tabla Descripci´n larga: Leyenda que aparecer´ bajo la tabla o a Descripci´n corta: Leyenda alternativa que aparecer´ el la lista de o a tablasRealicemos un peque˜o ejemplo: nbegin{table}[!hbt]begin{center}begin{tabular}{|l|l|} p´gina 16 de 37 a
  • Tablas en L TEX AhlineNombre & ApellidohlineJuan & PerezJos´ & Lopez eCarlos & Garc´a ıhlineend{tabular}caption{Listado de alumnos}end{center}end{table}Y obtendremos: Nombre Apellido Juan Perez Jos´ e Lopez Carlos Garc´ ıa Tabla 1: Listado de alumnos8. Rotando las tablasExiste m´s de una manera de rotar una tabla, aqu´ voy a explicar las dos que yo a ıuso, dependiendo de lo que precise. Si queremos rotar una tabla ( o algunas otrascosas) debemos usar el paquete rotating[10], por lo tanto debemos agregar en elencabezado del archivo fuente la siguiente declaraci´n: ousepackage{rotating}La primer opci´n es usar el entorno sydeways, lo que hace simplemente es rotar ola tabla 90o .Para verlo mejor hagamos un ejemplo:begin{center}begin{sideways}begin{tabular}{|l|r|r|}hline p´gina 17 de 37 a
  • Tablas en L TEX A &columna 1&columna 2hlinefila 1 & $a_{11}$ & $a_{12}$hlinefila 2 & $a_{21}$ & $a_{22}$hlineend{tabular}end{sideways}end{center}Como resultado conseguimos lo siguiente: columna 2 a12 a22 columna 1 a11 a21 fila 1 fila 2Otra manera es crear un entorno flotante an´logo al entorno table, esto se logra amediante el entorno sydewatstable. Tiene una desventaja, siempre ocupar´ unaap´gina completa, por lo tanto si la hoja anterior no est´ completa la llenar´ con a a ael texto que le sigue a la tabla.Veamos un ejemplo:begin{sidewaystable}begin{center}begin{tabular}{|l|r|r|}hline &columna 1&columna 2hlinefila 1 & $a_{11}$ & $a_{12}$hlinefila 2 & $a_{21}$ & $a_{22}$hline p´gina 18 de 37 a
  • Tablas en L TEX Aend{tabular}caption{Esta tabla est´ rotada.} alabel{tablaside}end{center}end{sidewaystable}El resultado podemos verlo en la tabla 2.8.1. Rotando el texto de las celdasPara rotar el texto de una celda tambi´n podemos usar el entorno sideways. No etiene complicaciones, mostremos un ejemplo directamente.begin{center}begin{tabular}{|l|r|r|}hline &begin{sideways}columna 1end{sideways}&begin{sideways}columna 2 end{sideways}hlinefila 1 & $a_{11}$ & $a_{12}$hlinefila 2 & $a_{21}$ & $a_{22}$hlineend{tabular}end{center}Como resultado obtenemos lo siguiente: columna 1 columna 2 fila 1 a11 a12 fila 2 a21 a229. Redimensionando tablasEs probable que en alguna ocasi´n necesitemos cambiar el tama˜o de nuestra o ntabla. Para esto el paquete graphicx nos proporciona dos comandos scalebox yresizebox.Para utilizarlos debemos declarar en el encabezado el paquete graphicx [6]. p´gina 19 de 37 a
  • columna 1 columna 2 fila 1 a11 a12 fila 2 a21 a22 Tabla 2: Esta tabla est´ rotada. a a Ap´gina 20 de 37 Tablas en L TEX
  • Tablas en L TEX Ausepackage{graphicx}9.1. El comando scaleboxEste comando permite escalar una tabla, tiene el siguiente formato:scalebox{escala horizonal}[escala vertical]{argumento}Donde: escala horizontal: Es el factor por el que se multiplicar´ el ancho original a de la tabla. En caso de que no se especifique el escalado veritical, este factor se aplicar´ tanto a la escala horizontal a como vertical. escala vertical: Es el factor por el que se multiplicar´ la altura original de a la tabla. argumento: Es lo que queremos escalar, en nuestro caso la tabla9.1.1. Ejemplo 1Especificando diferentes escalas para el ancho y alto de la tabla.scalebox{1.5}[2]{begin{tabular}{|r|l|l|}hline&columna 1&columna 2hlinefila 1& celda 1&celda 2hlinefila 2& celda 3&celda 4hlineend{tabular}}Obtenemos como resultado: columna 1 columna 2 fila 1 celda 1 celda 2 fila 2 celda 3 celda 4 p´gina 21 de 37 a
  • Tablas en L TEX A9.1.2. Ejemplo 2Especificando una misma escala para el ancho y alto de la tabla.scalebox{0.5}{begin{tabular}{|r|l|l|}hline&columna 1&columna 2hlinefila 1& celda 1&celda 2hlinefila 2& celda 3&celda 4hlineend{tabular}}Obtenemos como resultado: columna 1 columna 2 fila 1 celda 1 celda 2 fila 2 celda 3 celda 49.1.3. Ejemplo 3Si ponemos un valor negativo invertir´ la tabla. ascalebox{-1}{begin{tabular}{|r|l|l|}hline&columna 1&columna 2hlinefila 1& celda 1&celda 2hlinefila 2& celda 3&celda 4hlineend{tabular}}Obtenemos como resultado: celda 4 celda 3 fila 2 celda 2 celda 1 fila 1 columna 2 columna 1 p´gina 22 de 37 a
  • Tablas en L TEX A9.2. El comando resizeboxEste comando permite especificar las dimensiones reales en que quedar´ el objeto. aTiene 2 formatos, su sintaxis es la siguiente:resizebox{ancho}{altura}{argumento}resizebox*{ancho}{altura}{argumento}Seg´n la documentaci´n del paquete graphicx, el par´metro altura especifica la u o aaltura del objeto. Pero si el objeto fue rotado el par´metro altura se refiere a ala altura m´s la profundidad. Para que el par´metro altura especifique solo la a aaltura aunque la tabla est´ rotada, debe usarse el comando resizebox* en lugar ede resizebox.A pesar de lo que dice la documentaci´n del paquete graphicx, no pude hacer que oresizebox obtenga la altura correcta, en cambio si pude lograrlo con resizebox*.Por lo tanto en este tutorial siempre usar´ este ultimo. e ´Donde: ancho: Define el ancho de la tabla. altura: Define la altura de la tabla. argumento: Es el objeto que queremos redimensionar, en nuestro caso la tabla.Cuando en los par´metros ancho o altura se escribe el signo “!” en lugar de una amedida indica que mantenga las proporciones respecto a la medida especificada.9.2.1. Ejemplo 1Ac´ especificamos ancho y alo de la tabla igual a 3 cm. aresizebox*{3cm}{3cm}{begin{tabular}{|r|l|l|}hline&columna 1&columna 2hlinefila 1& celda 1&celda 2hlinefila 2& celda 3&celda 4hlineend{tabular}} p´gina 23 de 37 a
  • Tablas en L TEX AObtenemos como resultado: columna1 columna2fila 1 celda1 celda2fila 2 celda3 celda49.2.2. Ejemplo 2En este ejemplo solo especificamos la altura y se calcula el ancho de maneraproporcinal.resizebox*{!}{3cm}{begin{tabular}{|r|l|l|}hline&columna 1&columna 2hlinefila 1& celda 1&celda 2hlinefila 2& celda 3&celda 4hlineend{tabular}}Obtenemos como resultado: columna 1 columna 2 fila 1 celda 1 celda 2 fila 2 celda 3 celda 49.2.3. Ejemplo 3En este ejemplo especificamos un ancho igual al 80 % del ancho total del texto.resizebox*{.8textwidth}{!}{begin{tabular}{|r|l|l|}hline&columna 1&columna 2hline p´gina 24 de 37 a
  • Tablas en L TEX Afila 1& celda 1&celda 2hlinefila 2& celda 3&celda 4hlineend{tabular}}Obtenemos como resultado: columna 1 columna 2 fila 1 celda 1 celda 2 fila 2 celda 3 celda 410. Tablas largasSi intent´semos crear un tabla que ocupe m´s de una p´gina, ver´ a a a ıamos queL TEXla genera de manera erronea. Es por este motivo que se cre´ el entorno A olongtable[1]. Para poder usarlo, debemos definir en la cabecera del documento:usepackage{longtable}El entorno longtable se puede ver como una mezcla de los entornos “tabular” y“table” (que veremos m´s adelante). Las columanas se definen de igual manera aque en el entorno “tabular” y las filas se separan por , con la salvedad que sepuede poner una unidad de longuitud despu´s del comando por ejemplo: e[3cm]Esto generar´ un salto de l´ a ınea de la medida especificada entre corchetes. No sepermite alinear la tabla con respecto al texto con los argumentos [t], [b] o [c]como en el entorno tabular.Acepta los siguientes comandos: p´gina 25 de 37 a
  • Tablas en L TEX Aendfirsthead Es la cabecera de la primera fila solo en la primer p´gina. aendhead Es la cabecera de la primera fila para todas las p´ginas salvo la a primera.endlastfood Es el pie de tabla para la ultima p´gina. ´ aendfoot Es el pie de tabla para todas las p´ginas salvo la ultima. a ´caption Numerar´ la tabla y le pondr´ la leyenda entre llaves. a acaption[] Numerar´ la tabla, le pondr´ la leyenda entre llaves y en la lista a a de tablas especificar´ el texto entre corchetes, si no se especifica a entre corchetes no se agragar´ a la lista de tablas. acaption* Pondr´ la leyenda entre llaves, pero no la agragar´ a la lista de a a tablas.footnote Pone una nota al pie, no puede ser usado en cabeceras o pie de tabla.footnotemark Pone una marca de nota al pie en la cabecera o pie de tabla.footnotetext Pone la nota al pie, se debe usar en el cuerpo de la tabla.begin{longtable}{|l|l|}hlinemulticolumn{2}{|c|}{Primera fila de primera hoja} hlineendfirstheadhlinemulticolumn{2}{|c|}{Primera fila de todas las hojas} hlineendheadhlinemulticolumn{2}{|c|}{´ltima fila de la ´ltima hojafootnotemark[2] U u }hlinecaption{Tabla larga}endlastfoothlinemulticolumn{2}{|c|}{´ltima fila de todas hojas} Uhlineendfootfootnotetext[2]{footnote del pie de tabla.}uno & dos[4cm]hlinetresfootnote{footnote, no puede ser usado en el entorno‘‘tabular’’.} & cuatrohlinecinco & seis[2cm] p´gina 26 de 37 a
  • Tablas en L TEX Aend{longtable} Primera fila de primera hoja uno dos tres1 cuatro cinco seis ´ Ultima fila de la ultima hoja2 ´ Tabla 3: Tabla larga11. Tablas de ancho fijo11.1. El paquete tabularx [4]El paquete tabularx permite definir el ancho de una tabla de la misma maneraque con el entorno tabular*. Sin embargo, el entorno tabular* tiene un problema,si el texto es m´s ancho que la tabla nos dar´ un resultado indeseado como vemos a aen el siguiente ejemplo:begin{tabular*}{5cm}{|l|r|}hlineAlumno & Padr´n ohlineCarlos Gardel & 80546 2 footnote del pie de tabla. 1 footnote, no puede ser usado en el entorno “tabular”. p´gina 27 de 37 a
  • Tablas en L TEX AhlineAn´bal Troilo & 80547 ıhlineHomero Manzi & 80548hlineEnrique Santos Disc´polo & 80549 ehlineend{tabular*} Alumno Padr´n o Carlos Gardel 80546 An´ ıbal Troilo 80547 Homero Manzi 80548 Enrique Santos Disc´polo e 80549Esto se debe a que tabular* consigue el ancho deseado completando con espaciosen blanco, pero si el ancho del texto fuese mayor que el ancho de la tabla, tabular*no puede resolver el problema.Para remediar este inconveniente, lo que hace el paquete tabularx es ajustar elancho de las columnas indicadas con la letra “X”.Para poder usar el paquete tabularx, previemente debemos declararlo en el enca-bezado:usepackage{tabularx}El entorno tabularx solo se aplicar´ a las columnas indicadas con la letra “X”. aVemos ahora como cambia el ejemplo anterior en un entorno tabularx :begin{tabularx}{5cm}{|X|r|}hlineAlumno & Padr´n ohlineCarlos Gardel & 80546hlineAn´bal Troilo & 80547 ıhlineHomero Manzifootnote{El paquete emph{tabularx} permite el uso denotas al pie} & 80548hlineEnrique Santos Disc´polo & 80549 ehlineend{tabularx} p´gina 28 de 37 a
  • Tablas en L TEX A Alumno Padr´n o Carlos Gardel 80546 An´ıbal Troilo 80547 Homero Manzi2 80548 Enrique Santos 80549 Disc´polo eEl paquete tabularx tiene problemas de compatibilidad con el entorno verbatim.11.2. El paquete tabulary [5]El paquete tabularx, s´lo permite que el texto de las columnas cuyo ancho se oajustan autom´ticamente quede alineado a izquierda. Para corregir este inconve- aniente, existe el paquete tabulary.Como siempre debemos declarar el paquete en el encabezado:usepackege{tabulary}Veamos un ejemplo:begin{tabulary}{10cm}{|L|C|R|J|}hlineEjemplo de celda alineada a izquierda& Ejemplo de celda con textocentrado & Ejemplo de celda alineada a derecha & Ejemplo de celdacontexto justificadohlineend{tabulary} Ejemplo de Ejemplo de Ejemplo Ejemplo de celda celda con de celda celda con- alineada a texto alineada a texto justi- izquierda centrado derecha ficadoSi hay mucha diferencia de tama˜o entre las columnas, el resultado que muestra nel entorno tabulary puede no ser el esperado, ya que algunas columnas puedenser demasiado anchas y otras demasiado angostas.Para solucionar este problema podemos definir un ancho m´ximo y un ancho am´ ınimo para las columnas.Para definir el ancho m´ ınimo usamos el par´metro: a 2 El paquete tabularx permite el uso de notas al pie p´gina 29 de 37 a
  • Tablas en L TEX Atymin=Por omisi´n este par´metro viene definido como: o atymin=0ptPara definir el ancho m´ximo usamos el par´metro: a atymax=Por omisi´n este par´metro viene definido como: o atymax=maxdimen11.2.1. Algunos inconvenientes con tabularyEste paquete parece tener problemas cuando el ancho del texto no es mayor queel ancho de la hoja, de manera que no respeta el ancho que se define.Veamos por ejemplo el mismo ejemplo que usamos en tabularx :begin{tabulary}{5cm}{|L|R|}hlineAlumno & Padr´n ohlineCarlos Gardel & 80546hlineAn´bal Troilo & 80547 ıhlineHomero Manzi & 80548hlineEnrique Santos Disc´polo & 80549 ehlineend{tabulary} Alumno Padr´n o Carlos Gardel 80546 An´ ıbal Troilo 80547 Homero Manzi 80548 Enrique Santos Disc´polo e 80549Podemos apreciar que el ancho real es 6,79 cm, y no 5 cm como hab´ ıamos indicado.Otro inconveniente que tiene este paquete es que las notas al pie no funcionanmuy bien.El entorno multicolumn puede ser usado, si el texto no supera el ancho calculadode la columna. p´gina 30 de 37 a
  • Tablas en L TEX AEl entorno verb tiene problemas con este paquete, de manera similar a los queten´ tabularx. ıa12. Embelleciendo las tablas12.1. El paquete booktabs[7]Este paquete b´sicamente brinda una serie de alternativas para cambiar el aspecto ade las l´ ıneas horizontales en las tablas.Para poder usar este paquete previamente debemos especificarlo en el emcabeza-do:usepackage{booktabs}Incorpora 5 nuevos comandos, que son los siguientes: toprule[espesor]: se utiliza para l´ ıneas cabecera, opcionalmente se puede especificar un espesor determinado. midrule[espesor]: se utiliza para l´ ıneas que separan filas comunes, op- cionalmente se puede especificar un espesor deter- minado. bottomrule[espesor]: se utiliza para l´ ıneas de fin de tabla, opcionalmente se puede especificar un espesor determinado. cmidrule[espesor] se utiliza para crear l´ ıneas que no atraviesen todas (recorte) {cola-colb}: las columnas, opcionalmente se puede especificar un espesor determinado. El par´metro recorte especifi- a ca si la l´ ınea se recorta a la izquierda y/o a la dere- cha y en que proporci´n. Los par´metros cola y colb o a indican de que columna a que columna va la l´ ınea. addlinespace[espesor]: se usa para especificar espacio en blanco entre fi- las, opcionalmente se puede especificar un espesor determinado.12.1.1. Ejemplo 1Veamos un ejemplo simple:begin{tabular}{l c r}toprule&columna 1 &columna 2 p´gina 31 de 37 a
  • Tablas en L TEX Amidrulefila 1& celda 11 & celda 12cmidrule{2-3}fila 2& celda 21 & celda 22addlinespacefila 3 & celda 31 &celda 32bottomruleend{tabular}Obtenemos como resultado: columna 1 columna 2 fila 1 celda 11 celda 12 fila 2 celda 21 celda 22 fila 3 celda 31 celda 3212.1.2. Ejemplo 2En el ejemplo anterior vimos un ejemplo b´sico con los par´metros por omisi´n. a a oCambiemos ahora alguno de esos valores, de manera bien exagerada para que ladiferencia sea evidente.begin{tabular}{l c r}toprule[3mm]&columna 1 &columna 2midrule[2mm]fila 1& celda 11 & celda 12cmidrule[4mm](lr{5mm}){2-3}fila 2& celda 21 & celda 22cmidrule{2-3}fila 3& celda 31 & celda 32addlinespace[10mm]fila 4 & celda 41 &celda 42bottomrule[5mm]end{tabular}Obtenemos como resultado: p´gina 32 de 37 a
  • Tablas en L TEX A columna 1 columna 2 fila 1 celda 11 celda 12 fila 2 celda 21 celda 22 fila 3 celda 31 celda 32 fila 4 celda 41 celda 4212.1.3. Ejemplo 3Un ejemplo m´s real podr´ ser el siguiente: a ıabegin{tabular}{l r r r}toprule[0.8mm]&enero&febrero &totalcmidrule(l){2-4}Juan&40& 60 & 100 $midrulePedro&70& 30 & 100 $cmidrule[0.5mm](l){4-4}& & & 200 $ bottomrule[0.8mm]end{tabular}Obtenemos como resultado: enero febrero total Juan 40 60 100 $ Pedro 70 30 100 $ 200 $13. Cambiando el aspecto de las l´ ıneasExisten una serie de comandos que nos permiten cambiar el aspecto de las l´ ıneas.Para definirlos debemos usar el siguiente formato: p´gina 33 de 37 a
  • Tablas en L TEX Asetlength{parametro}{valor}begin{tabular}....end{tabular}Descripci´n de los comandos: o arrayrulewidth: Es el grosor de las l´ ıneas de la tabla. Por omisi´n este valor o es 0,4pt. doublerulesep: Es la separaci´n entre l´ o ıneas dobles, ya sean estas horizonta- les o verticales. tabcolsep: Es la mitad del ancho de separaci´n entre dos columnas. oSi quisieramos cambiar la distancia entre filas debemos usar el comando arrays-tretch: arraystretch: Es la separaci´n entre filas. Su valor por omisi´n es 1. Si pusie- o o ramos por ejemplo 1.5, aumentar´ ıamos la separaci´n un 50. oLo definimos de la siguiente manera:renewcommand{arraystrech}{valor}Estas modificaciones pueden hacerse en el pre´mbulo, donde afectar´n a todo el a adocumento o dentro del entorno, donde solo afectar´ a este. aVeamos algunos ejemplos:13.1. Ejemplo 1%Ac´ cambiamos la separaci´n entre columnas a o{setlength{tabcolsep}{10mm}%Ac´ cambiamos el grosor de las l´neas a ı{setlength{arrayrulewidth}{2mm}begin{tabular}{| l | l |}hlinecelda 1 & celda 2hlinecelda 3 & celda 4hlineend{tabular}}} celda 1 celda 2 celda 3 celda 4 p´gina 34 de 37 a
  • Tablas en L TEX A13.2. Ejemplo 2begin{center}%Ac´ cambiamos la separaci´n entre filas a orenewcommand{arraystretch}{2.5}%Ac´ cambiamos la separaci´n entre filas dobles a o{setlength{doublerulesep}{2mm}begin{tabular}{|| l | l ||}hlinehlinecelda 1 & celda 2hlinecelda 3 & celda 4hlinehlineend{tabular}}end{center} celda 1 celda 2 celda 3 celda 414. Cambiando la leyenda de las tablasSi en el entorno “table” usamos el comando “caption”, este pondr´ la leyenda a“Cuadro” con el n´mero de tabla correspondiente. En castellano es m´s com´n u a ullamarlo “Tabla” en lugar de “Cuadro”, esto podemos modificarlo con el siguientecomando despu´s de begin{document}: erenewcommand{tablename}{Tabla}Si adem´s queremos cambiar “´ a Indice de cuadros” por “´ Indice de tablas”, debemosusar el comando: ´renewcommand{listtablename}{Indice de tablas} p´gina 35 de 37 a
  • Tablas en L TEX A15. Resultados inesperados Este inconveniente me lo hizo notar Leg Babouyes.Supongamos que queremos colorear una celda multifila como en el siguiente ejem-plo:begin{tabular}{|>{columncolor{red}}c|c|}hlinemultirow{2}{2cm}{celda} & celda 2cline{2-2}& celda 3hlineend{tabular}El resultado que obtendremos, ser´: a celda 2 celda celda 3Esto se debe a que las celdas se colorean una a una, entonces, la segunda celdade la multifila se colorea despu´s de haber escrito el texto que se hizo junto con ela primer celda, por eso queda tapado.Una de las posibles soluciones pasa por escribir el texto en la segunda celda ydesplazarlo hacia arriba, de la siguiente manera:begin{tabular}{|>{columncolor{red}}c|c|}hline & celda 2cline{2-2}multirow{2}{2cm}[5mm ]{celda} & celda 3hlineend{tabular} celda 2 celda celda 3Referencias [1] David Carlisle. The longtable package, noviembre 1996. [2] David Carlisle. The colortbl package, mayo 1998. p´gina 36 de 37 a
  • Tablas en L TEX A [3] David Carlisle. The dcolumn package, septiembre 1999. [4] David Carlisle. The tabularx package, enero 1999. [5] David Carlisle. The tabulary package, septiembre 2003. [6] David Carlisle. Packages in the graphics bundle, noviembre 2005. [7] Simon Fear. Publication quality tables in LTEX, abril 2005. A [8] Indian TEX Users Group. LTEXTutorials, A PRIMER, septiembre 2003. A [9] Jerry Leichter and Piet van Oostrum. multirow.sty - Span multiple rows of a table.[10] Herbert Vob. Rotating Text, Tabulars and Images, marzo 2007. p´gina 37 de 37 a