Inicio > Latex > LaTeX: Dándole color a las tablas

LaTeX: Dándole color a las tablas

Miércoles, 13 de agosto de 2008 Dejar un comentario Ir a comentarios

Las tablas son un medio de incorporar información de una forma ordenada e inteligible muy usada en cualquier tipo de documento, y más en los documentos técnicos. Muchos de los que ahora usamos \LaTeX hemos usado con anterioridad algún editor WYSIWYG donde darle color a las tablas era una tarea trivial. En \LaTeX no está tan claro como realizar esta acción, pero como podréis ver a continuación tampoco es nada del otro mundo.

Para explicarlo os voy a mostrar directamente un código de ejemplo:

\begin{table}[!ht]
\begin{center}
\begin{tabular}{|l|l|}
\hline

\multicolumn{1}{|>{\columncolor[rgb]{0.8, 0.8, 0.8}}l|}{Adorno} &
\multicolumn{1}{|>{\columncolor[rgb]{0.8, 0.8, 0.8}}l|}{Semántica} \\

\hline
0..1 & Cero ó 1 \\
\hline
1 & Exactamente 1 \\
\hline
0..* & Cero ó más \\
\hline
* & Cero ó más \\
\hline
1..* & 1 ó más \\
\hline
4 & Exactamente 4 \\
\hline
1..6 & 1 a 6 \\
\hline
\end{tabular}
\end{center}
\caption{Ejemplos de multiplicidad en asociaciones}
\label{tab:analisis:clases:multiplicidad-asociaciones}
\end{table}

Cómo podéis ver las líneas que tienen interés son las siguientes:

\multicolumn{1}{|>{\columncolor[rgb]{0.8, 0.8, 0.8}}l|}{Adorno} &
\multicolumn{1}{|>{\columncolor[rgb]{0.8, 0.8, 0.8}}l|}{Semántica} \\

El comando multicolumn sirve para ajustar un determinado contenido a 1 o varias celdas. Este comando lo vamos a utilizar debido a que para dar color a las tablas tenemos exclusivamente el comando columncolor, el cual solo permite dar color a columnas y no a filas. Por ello, si disponemos de una tabla con más de una columna, deberemos darle color por separado a cada columna si queremos que la fila completa quede del mismo color. Voy a desmenuzar una de las líneas que aparecen arriba:

\multicolumn
  {1} %Los cambios que hagamos solo influyen en una columna
  {|>{\columncolor[rgb]{0.8, 0.8, 0.8}}l|} %El comando columncolor
    % establece un color con el modelo RGB cuyos valores iran de 0.00 a 1.00.
    % Las barras "|" indican que pondremos líneas horizontales en los extremos
    % de la columna. Y la "l" indica el tipo de alineación de la columna.
  {Adorno} %Texto

Puede utilizar cualquier combinación de colores, pero si lo que quiere es optar por tonos grises el truco está en poner el mismo valor en los tres componentes: R(red), G(green), B(blue). El resultado del ejemplo mostrado será el siguiente.

GD Star Rating
loading...
LaTeX: Dándole color a las tablas, 10.0 out of 10 based on 3 ratings
Share
Categories: Latex Tags: , ,
  1. Martes, 13 de enero de 2009 a las 09:11 | #1
    GD Star Rating
    loading...

    Hola,
    muy bueno tu tutorial, pero me encuentro con un problema:
    ¿Como hago para poner mas de una linea de texto en una columna?
    Por ejemplo, tengo una tabla de 2 columnas y dos filas, en segunda columna necesito poner varias lineas de texto, digamos:

    col 1 col2
    _________________________________________
    | ________ | _______________________________|
    |Descripcion| Aqui debo poner varias lineas de texto |

    Te agradezco de antemano

  2. Martes, 13 de enero de 2009 a las 09:15 | #2
    GD Star Rating
    loading...

    Hola Jose, veo que estás metido de lleno con Latex jeje. Hace tiempo que no escribo nada en Latex pero creo que en la línea donde comienzas la tabla:

    \begin{tabular}{|l|l|}

    tienes que cambiar la segunda “l” por una “p”. Ahí especificas el tipo de justificado para cada columna siendo “l” = “left” = “izquierda” y “p” = “paragraph” = “párrafo”. Además siempre que pongas “p” debes especificar el ancho de dicha columna, por ejemplo:

    \begin{tabular}{|l|p{5cm}}

    Después para dar saltos de línea dentro de una celda creo que te bastará con \newline.

    Espero que esto de ayude ;)

  3. Miércoles, 14 de enero de 2009 a las 03:03 | #3
    GD Star Rating
    loading...

    Gracias!
    me salvaste la vida.
    Saludos!

  4. Jueves, 15 de enero de 2009 a las 05:03 | #4
    GD Star Rating
    loading...

    Hola, otra vez yo jeje…
    Ya que -me doy cuenta- dominas LaTeX me podrias ayudar en esto:
    Quiero, necesito saber si existe la forma de crear dos \listoftables de igual manera para \listoffigure.
    Estoy haciendo un documento ERS(especificación de requiitos de software) para nuestro proyecto de desarrollo y prsentamos una version preliminar al profe con word que resulto un desatre. El nos aconsejo que debriamos poner un indice de requerimientos y como los requerimeintos estan hechos con tablas pues hasta ahi no habioa problema, pero sucede que deberia hacer tambien un indice de casos de uso y los requerimientos se dividen en 2(funcional y no funcional) entonces necesitaría 3 indices de tablas, cada una indexando a las que le corresponden.Es casi lo mismo con \listofifgure.
    No te pido que me hagas la tarea, pero si sabes de algun paquete oalguna web donde haya informacion la respecto, porque he estadoi buscando y no he encontrado temas al respecto.

    Te agradezco por molestarte en leer esto.

  5. Jueves, 15 de enero de 2009 a las 09:04 | #5
    GD Star Rating
    loading...

    Hola jose. La verdad es que nunca me había dado por intentar hacer eso, he estado buscando un poco por google y tampoco he visto nada. De todos modos piensa en cuantos libros o documentos has visto eso que me comentas … yo en ninguno la verdad jeje.

    Yo también he tenido que hacer documentos de ese tipo, y creo que con que tengas una buena estructura del documento e incluyes el \listofcontents debería bastar para separar claramente cada uno de los capítulos o secciones del documentos. Además en el list of tables cada una de las tablas lleva el número de capítulo y el número de tabla, por lo que es suficiente para decir: “Bien, el capítulo 7 es el de los requisitos funcionales, voy a irme al índice de tablas a ver cuales empiezan con el numeríto 7″.

    ¿Sabes lo que te quiero decir no? ;)

    De todos modos, si sigues empeñado en intentar hacer lo que dices y das con la solución, no dudes en compartirla jeje.

    Saludos

  6. juan raymer
    Lunes, 9 de marzo de 2009 a las 19:32 | #6
    GD Star Rating
    loading...

    me interesa aprender mucho acerca de kile
    soi estudiante de matematicas de la universidad autonoma de santo domingo

  7. juan raymer
    Lunes, 9 de marzo de 2009 a las 19:34 | #7
    GD Star Rating
    loading...

    mi coreo es rymer@hotmail.es

  8. Martes, 10 de marzo de 2009 a las 01:25 | #8
    GD Star Rating
    loading...

    Hola Juan, más que aprender sobre kile supongo que querrás aprender sobre Latex. Latex es una especie de lenguaje de programación pero para realizar composiciones tipográficas de alta calidad. Hay mucha documentación disponible por la red, incluso puedes encontrar algún que otro libro en programas como emule.

    Kile, Texmaker, Texnicenter y otros solo son editores de latex, es decir interfaces que nos facilitan la vida a la hora de escribir nuestros documentos.

    Un saludo.

  9. JM
    Lunes, 13 de abril de 2009 a las 11:56 | #9
    GD Star Rating
    loading...

    Desde luego que las tablas en latex son un latazo, sobre todo por la variedad de paquetes que se ocupan del asunto (multirow,longtable,colortbl,tabularx,…) cada uno con sus ventajas e inconvenientes.

    Para colorear tenemos el paquete colortbl que sí tiene un comando \rowcolor.

  10. JM
    Lunes, 13 de abril de 2009 a las 11:58 | #10
    GD Star Rating
    loading...

    No crees, Pipo, que LaTeX debería adoptar un sistema parecido al css de Html?

    Saludos

  11. Lunes, 13 de abril de 2009 a las 12:02 | #11
    GD Star Rating
    loading...

    Depende … Si lo dices por tener nombres básicos de colores (red, blue, orange, etc) en LaTeX también se pueden usar aunque el listado de colores es más breve. Si lo dices por los valores hexadecimales, nunca me he llevado bien con ese sistema de colores :P .

    Saludos

  12. Jose
    Martes, 14 de abril de 2009 a las 07:56 | #12
    GD Star Rating
    loading...

    Hola piponazo,
    soy el que quería tener tres indices para cada cada cosa(comentario #4)…xD
    Bueno, ha pasado un buen tiempo y la verdad es que no encontré la forma de hacer lo que buscaba así que seguí tu consejo y todo bien.
    Tus tutoriales me sirvieron de mucho, asi que Gracias otra vez.
    Respecto al documento, pues les gusto a todos, yo me encargue de hacerlo y al final quedé altísimo jeje, ya que nadie sabía de LaTeX, es que yo soy la oveja negra jeje(por lo que uso tambien GNU/Linux, pues hice el documento con Kile).Bueno asi hice propaganda tambien a este sistema.
    …seguiré visitando tu web…

  13. Martes, 14 de abril de 2009 a las 08:00 | #13
    GD Star Rating
    loading...

    Hola Jose,
    me alegro de que te haya ido todo bien. La verdad es que hay una gran diferencia entre hacer documentos con Latex u otros (como Word). Y no te consideres la oveja negra hombre, todo lo contrario, somos la elite, la crème de la crème, la margarina de los S.O, y un largo etc. jajajaja.

    ¡Viva LaTeX, Viva el Software Libre! :D

  14. ale
    Martes, 28 de abril de 2009 a las 00:35 | #14
    GD Star Rating
    loading...

    Hola!!!

    tengo una duda respecto a referenciar varias tablas al mismo tiempo, nose si pueda hacer en latex.

    quiero que aparezca algo asi de la tabla 1 a la 5 y que se muestre el contenido de todas las tablas, sin necesidad de que me aparezcan todos los numeros de referencia de las tablas; sino que nada mas muestre el primero y el último.

    He estado buscando informacion al respecto pero no encontrado, nose si es a que no se puede hacer.

  15. Martes, 28 de abril de 2009 a las 06:30 | #15
    GD Star Rating
    loading...

    Hola ale. A ver si te he entendido bien. Dices que tienes 5 tablas seguidas (cada una con su etiqueta \label{}).

    Supongamos que estas tablas tienen las siguientes etiquetas:
    \label{tab:1}
    \label{tab:2}
    \label{tab:3}
    \label{tab:4}
    \label{tab:5}

    Para que te aparezca el texto: de la tabla (1) a la (5). Tendrías que escribir:
    de la tabla \ref{tab:1} a la \ref{tab:5}.

    Tan solo tendrías que poner todas las tablas juntas a poder ser con la opción [!ht].

    \begin{table}[!ht]

    \end{table}

    Saludos

  16. Viernes, 11 de septiembre de 2009 a las 12:56 | #16
    GD Star Rating
    loading...

    Buen post!!Muy útil para los pequeños kamikazes, también estaría bien que indicaras que para poder utilizar las tablas es necesario añadir:

    \usepackage{multirow}
    \usepackage{colortbl}

    Un saludo

  17. Toni
    Martes, 6 de octubre de 2009 a las 15:06 | #17
    GD Star Rating
    loading...

    Faltaría comentar un problemilla, usar ambos paquetes a la vez, por ejemplo:

    \begin{tabular}{|c|c|}\hline
    \rowcolor[gray]{.5} \multirow{2}{1cm}{Texto1} & Texto 2 \\ \cline{2-2}
    \rowcolor[gray]{.5} & Texto 3 \\ \hline
    \end{tabular}

    Ver resultado:
    http://img.photobucket.com/albums/v309/Nightmoon/lol/LaTeX.jpg

    La opción rowcolor en la segunda fila se come el texto y la línea de separación de la segunda columna.

    ¿Alguien sabe alguna solución para ésto?

    Un saludo.

  18. Miércoles, 28 de octubre de 2009 a las 21:29 | #18
    GD Star Rating
    loading...

    hola

    muy bueno tu tutorial sobre color en las tablas. Me funcionó muy bien. Quiza el comando es un poco largo para poner en las tablas pero nada q no pueda resolverse creando un nuevo comando con estas intrucciones.

    Saludos

  19. Anna Petrovna
    Martes, 9 de febrero de 2010 a las 17:30 | #19
    GD Star Rating
    loading...

    Hola Piponazo: he copiado tu primer ejemplo y también otros más que he encontrado por la red y latex no me genera ninguna celda coloreada. He cargado los paquetes color y colortbl (tmbn he comprobado que estuvieran instalados en los directorios correspondientes) y nada de nada. En lugar de aparecer color en el dvi, me aparece la definición del color en código. No entiendo por qué. Gracias de antemano.

    Saludos.

  20. Martes, 9 de febrero de 2010 a las 17:47 | #20
    GD Star Rating
    loading...

    Has probado en vez de generar el dvi generarlo directamente como pdf con pdflatex ?? yo es que nunca he trabajado con dvi y no se si tendrá algo que ver. El único paquete necesario es colortbl, acabo de copiar y pegar el código y generado el PDF y no he tenido ningún problema.

    Saludos

  21. Anna Petrovna
    Martes, 9 de febrero de 2010 a las 19:45 | #21
    GD Star Rating
    loading...

    Ya lo tengo! por si a alguien le sirve de algo: parece ser incompatible con el paquete fitch.
    Ante todo gracias por la respuesta.

    Saludos.

  22. Barbara
    Martes, 16 de marzo de 2010 a las 00:52 | #22
    GD Star Rating
    loading...

    hola a todos, necesito que me ayuden con algo, necesito hacer un diagrama de la siguiente forma: dos columnas y una fila (unidas, como formas de tetris) , en realidad son diagramas de Young los que necesito dibujar en latex, la figura descrita seria como una L invertida. Gracias

  1. Sin trackbacks aún.