lunes, 12 de marzo de 2012

Cómo añadir un texto alternativo para la leyenda de tablas y figuras

Cuando añadimos un índice de figuras y tablas, LaTeX lo crea utilizando las leyendas que hemos puesto a cada elemento. Cuando las leyendas son muy largas o descriptivas, los índices quedan un poco feos. Por ejemplo, como ocurre a continuación:

\documentclass[a4paper,openright,12pt]{book}
\usepackage[spanish]{babel}
\usepackage[latin1]{inputenc}
\usepackage{graphicx}

\begin{document}

\listoffigures % indice de figuras
\listoftables % indice de tablas

\chapter{Introducción}

\begin{table}[htb]
\centering
\begin{tabular}{l l}
\hline
Montaña & Altura \\
\hline \hline
Pico de Orizaba & 5 610 m \\
Popocatépetl & 5 500 m \\
Iztaccíhuatl & 5 284 m \\
Teyotl  & 4 660 m \\
Nevado de Toluca & 4 680 m\\
\hline
\end{tabular}
\caption{Tabla con los picos más altos de México. Muchas de las montañas más altas de México son volcanes. Algunos están apagados. Otros, como el Popocatépetl (támbién llamado el Popo o don Goyo), siguen activos.}
\label{ta:montanas}
\end{table}

\begin{figure}[htb]
\centering
\includegraphics[width=0.3\textwidth]{./imagenes/anticitera}
\caption{Este aparato es una posible replica del Mecanismo de Anticitera. La foto la tomé en el Museo de las Artes y Oficios de París.}
\label{fig:anticitera}
\end{figure}




Esto se resulve muy fácilmente, dando a LaTeX una leyenda alternativa para utilizar en los índices. Estas leyendas alternativas se indican entre corchetes. Como se puede ver a continuación:

\begin{table}[htb]
\centering
\begin{tabular}{l l}
\hline
Montaña & Altura \\
\hline \hline
Pico de Orizaba & 5 610 m \\
Popocatépetl & 5 500 m \\
Iztaccíhuatl & 5 284 m \\
Teyotl  & 4 660 m \\
Nevado de Toluca & 4 680 m\\
\hline
\end{tabular}
\caption[Montañas más altas de México]{Tabla con los picos más altos de México. Muchas de las montañas más altas de México son volcanes. Algunos están apagados. Otros, como el Popocatépetl (támbién llamado el Popo o don Goyo), siguen activos.}
\label{ta:montanas}
\end{table}

\begin{figure}[htb]
\centering
\includegraphics[width=0.3\textwidth]{./imagenes/anticitera}
\caption[Mecanismo de Anticitera]{Este aparato es una posible replica del Mecanismo de Anticitera. La foto la tomé en el Museo de las Artes y Oficios de París.}
\label{fig:anticitera}
\end{figure}


29 comentarios:

Ermitaño dijo...

Tengo una duda, es posible que en la tabla de figuras salga una numeración distinta al capitulo?

Ejemplo: si la primera imagen en mi tesis esta en el capitulo 5 sección 1, pondría 5.1 Image ..... 25

pero que salga

1. Image .... 25
??

de ante mano gracias!

Luis dijo...

Hola Ermitaño, ¿qué tal?

Se me ocurre lo siguiente. Con el paquete {caption} se puede evitar que aparezca la numeración de las figuras, en la tabla de figuras:

\usepackage[listformat=empty]{caption}

Saldría:

Image.....25

Para añadir la nueva numeración, se puede poner ahora con el texto alternativo. Bien manualmente, de uno en uno, o bien con un contador:

\usepackage[listformat=empty]{caption}

\newcounter{nf}

\begin{document}

\addtocounter{nf}{1}
\caption[\arabic{nf}. Imagen]{Imagen}

Hasta luego

Unknown dijo...

Hola Estimado

necesito que el título del índice de figuras y tablas salga en mayúscula.
¿Cómo podría realizar esto?

De ante manos gracias!

Francisco

Luis dijo...

Hola Francisco,

muy fácil. Después de \begin{document}, pon el siguiente código.

\begin{document}
\renewcommand{\listfigurename}{LISTA DE FIGURAS}

Hasta luego

Nuria dijo...

Hola Luis,
Quiero que en mi lista de figuras aparezcan los captions enteros, los largos como en tu primer ejemplo. Sin embargo, no me queda como muestras tú ya que no hace el salto de línea.

\cleardoublepage
\addcontentsline{toc}{chapter}{Índice de figuras} % para que aparezca en el indice de contenidos \listoffigures % indice de figuras
\listoffigures

\cleardoublepage
\addcontentsline{toc}{chapter}{Índice de tablas} % para que aparezca en el indice de contenidos \listoftables % indice de tablas
\renewcommand{\listtablename}{Índice de tablas}
\listoftables

¿Sabes por qué es? Muchas gracias!

Luis dijo...

Hola Nuria, ¿qué tal?

Vaya, no sé lo que estará pasando. Porque a mí me hace automáticamente el salto de línea.

¿A lo mejor estás usando algún paquete o alguna función extra? ¿Has probado a hacer un ejemplo sin nada más, como en el que puse aquí, para ver si ahí funciona?

Una solución (un poco mala) sería que añadieses a mano los saltos de línea...

\caption[Texto muy \\ largo]{Texto muy largo}

Hasta luego

Unknown dijo...

Hola buenas noches, quisiera cambiar el titulo del Índice de cuadros por índice de tablas.

Como puedo hacerlo?

Mil gracias

Luis dijo...

Lo tengo explicado en la sección de tablas...

Unknown dijo...

Hola Luis. Quisiera que las leyendas de mis tablas salieran en la parte de arriba de la tabla y las leyendas de las figuras aparezcan abajo. Como podría hacerlo?

Gracias

Luis dijo...

Hola Faray,

basta con que en las tablas pongas \caption{} antes de \begin{tabular}

Unknown dijo...


Saludos Luis, quisiera saber como añadir en la lista de figuras en la enumeración de los apéndices una numeracion acorde... es decir, deseo que en la lista de figuras me salga A.1 en vez de 1.1... B.2 en vez de 2.2 y así sucesivamente... la verdad ya me he cansado de probar y buscar en la web y no lo consigo... si hay una manera agradecería que lo compartieras conmigo!!

Unknown dijo...

Acabo de resolver... voy a decir como por si hay algún interesad@ con la misma inquietud!! logré cambiar la numeración no sólo de los apéndices sino tamb de los anexos mediante el siguiente comando: \renewcommand{\thefigure}{\Alph{chapter}.\arabic{figure}}

Luis dijo...

Hola Aaron, muchas gracias por compartilo. Lo añadiré al blog. :-)

Anónimo dijo...

hola....estoy escribiendo mi tesis en latex.....resulta que al crear el indice este me genera unos titulos de primer, segundo y tercer orden, hasta hay no hay probles, el problema me resulta cualdo quiero que estos titulos queden alineados perfectamente a la izquierda, es decir el titulo de primer nivel queda con el margen, el de segundo nivel queda corrido un espacio con respecto al de primer nivel, y el de tercer nivel queda corrido 1 espacio con respecto al de segundo nivel y 2 espacios respecto al de 1 nivel, como hago para que la alineacion quede uniforme?

Unknown dijo...

Saludos.. me gustaria saber como lograr que NO se enumere mi Indice de Tablas, es decir en la pagina donde esta el Indice en la parte inferior empieza con 1.

Luis dijo...

Hola María,
puedes editar los encabezados muy fácilmente. Mira en la categoría correspondiente.

Luego, puedes definir el número con el que comience la numeración de las páginas con:

\setcounter{page}{xxx}

donde en vez de xxx pon el número con que quieras que comience la numeración.

Hasta luego

Marcos dijo...

Hola Luís,

muchísimas gracias por tu blog, me estás salvando la vida xD.

Ya nos has enseñado como cambiar el nombre de las fotos o las tablas que viene por defecto en Babel para todo el documento pero tengo una pregunta: ¿es posible editar el nombre para una foto o tabla en concreto?

Como sé que sonará raro te comento el motivo de mi caso. He estado añadiendo al documento fotos, gráficos y tablas pero todo como si fueran fotos (las tablas, algo complejas, son capturas de hojas de cálculo). Ahora necesito hacer distinción entre los tres tipos de figuras.
En resumen, busco un modo de "engañar" llamando tabla a algo que, en realidad, es una foto.

Muchas gracias!

Marcos dijo...

Hola,
La solución era tan simple y evidente como crear una tabla de una sola celda e incluir la captura de la hoja de cálculo en ella...

D.E.P. neurona (madre mía...)

Salud!!

Luis dijo...

Genial, buen truquito Marcos. :-)

Anónimo dijo...

hola....estoy escribiendo mi tesis en latex.....resulta que al crear el indice este me genera unos titulos de primer, segundo y tercer orden, hasta hay no hay probles, el problema me resulta cualdo quiero que estos titulos queden alineados perfectamente a la izquierda, es decir el titulo de primer nivel queda con el margen, el de segundo nivel queda corrido un espacio con respecto al de primer nivel, y el de tercer nivel queda corrido 1 espacio con respecto al de segundo nivel y 2 espacios respecto al de 1 nivel, como hago para que la alineacion quede uniforme?

Luis dijo...

Hola Andrés,
creo que para eso tienes que utilizar el paquete {minitoc}. Mírate con calma el manual, porque tiene muchas cosas.
Hasta luego

Unknown dijo...

Hola buen día.
Tengo un problema en texmaker.
No logro generar la lista de figuras y tablas.
Esto es lo que escribí en el preámbulo:
\usepackage{graphicx}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}
\usepackage[x11names,table]{xcolor}
\usepackage{multicol}
\usepackage{tabularx}
\usepackage{caption}
\renewcommand{\contentsname}{Contenidos}
\renewcommand{\listoffigures}{Lista de Figuras}
\renewcommand{\listoftables}{Lista de Tablas}
\captionsetup{format=hang,font=footnotesize}
%\hypersetup{urlcolor=black, colorlinks=true}

y esto para generar los índices
\pagestyle{fancy}

\tableofcontents


\listoffigures
\cleardoublepage
\addcontentsline{toc}{section}{Lista de Figuras}

\listoftables % Write out the List of Tables
\addcontentsline{toc}{section}{Lista de Tablas}
\cleardoublepage

Por favor algún consejo sobre lo que estoy haciendo mal.

Saludos

Luis dijo...

Hola Carlos,
lo siento pero no reviso código. :-) Pero aquí mis consejos.

1) Usa TeXnicCenter.
2) Empieza con ejemplos sencillos. Y poco a poco ve añadiendo cosas. Así es fácil ver dónde están los fallos.

Hasta luego

Unknown dijo...

Buenos días, estoy usando una plantilla de uso libre para mi trabajo de grado, pero al usar \listoffigures genera el indice de figuras pero con un interlineado muy pequeño, si cambio el tamaño de la letra se lo cambia a todo el documento, como puedo darle formato solo a la lista de figuras ? muchas gracias

Luis dijo...

Hola Carlos,
bueno, eso depende de la plantilla... No sabría decirte.
Sorry.

Unknown dijo...

Hola Luis!!
Muchas gracias por esta entrada, parece una tontería pero me estaba volviendo loco con que apareciera todo el caption en el índice de figuras, solo aquí he encontrado la respuesta.
Me estás ayudando un montón con mi PFG, solo decirte que para las imágenes también uso scfigure, y logro que la descripción quede al lado de la foto (no lo he visto por el foro, por si sirve de ayuda a otros usuarios.)

\begin{SCfigure}
\centering
\includegraphics[width=0.5\textwidth]{Fotos/Llenadora_latas.png}

\caption [Llenadora de latas]{(1) Palanca basculante para mando de válvula, (2) válvula para $CO_{2}$ y CIP,(3) válvula de alivio,(4) tubos de llenado, (5) tubo ajustable de gas de retorno con cierre esférico,(6) cámara de presión diferencial/tulipa centradora,(7) canal para $CO_{2}$ y CIP(8) suministro de cerveza,(9) tanque anular para cerveza y $CO_{2}$,(11) rodillo para elevar la válvula de llenado,(12) disposición del cojinete de la válvula de llenado en el tanque anular.}
\label{llenadoralatas}
\end{SCfigure}

De nuevo mil gracias.
Un saludo!!

Luis dijo...

Hola Ismael, me alegro. :-)
Gracias por lo de scfigure, no lo conocía. Lo añado al blog.
Hasta luego

Brian dijo...

hola

no se como hacer para que aparezca el titulo de la figura en la parte superior y la descripción abajo.

gracias =)

Unknown dijo...

pana una pregunta, utilizo una tabla longtable, pero al momento de colocar el caption como por ejemplo \caption{Requisito de almacenamiento de información 4} me aparece la leyenda toda en un renglón excepto el 4. En cambio al realizarlo con \table y \tabular esto no sucede.a qué se debee?

alguna sugerencia?