LaTeX y compañía

Informacion sobre LaTeX y programas relacionados

26.9.03

Controlando las figuras flotantes

Cuando se introduce material dentro de un entorno figure o table, se está dando a LaTeX carta blanca para que la coloque donde mejor quede, de acuerdo con sus gustos estéticos. Estos gustos dependen de ciertas variables que puedes modificar. Algunas se modifican mediante el comando \renewcommand, mientras que otras son contadores y deben cambiarse con el comando \setcounter.

A continuación va un ejemplo de cómo modificar todas estas variables. Los valores que se espeficican son los que LaTeX usa por defecto, de modo que en este ejemplo particular no estamos modificando nada:

  • Fracción de la página ocupada por los flotantes. Los siguientes parámetros controlan la cantidad de espacio vertical que puede ocupar un flotante, o el texto de una página. En todos los casos se mide en tanto por 1, es decir, dividiendo la altura del flotante entre la altura de la zona de página impresa (\textheight).
    • \renewcommand{\bottomfraction}{.3} Máximo tamaño que puede ocupar un flotante situado en posición "bottom" (parte inferior de la hoja). Por defecto, las figuras que ocupen más del 30%, se dejarán para la hoja siguiente.
    • \renewcommand{\topfraction}{.7} Máximo tamaño que puede ocupar un flotante situado en posición "top" (en lo alto de la hoja). Por defecto, figuras que ocupen más del 70% de la zona de texto, se dejarían para una página aparte, compuesta únicamente de figuras sin texto (lo que se llama una floating page)
    • \renewcommand{\textfraction}{.2} Mínimo tamaño que ha de tener la zona ocupada por el texto en una página en que haya flotantes. Si, debido a que coinciden varios flotantes en la página, la cantidad de texto bajara por debajo del 20% del alto de la página, LaTeX decidirá mover un flotante a otro lugar para poder meter más texto en dicha página. No se recomienda bajar este valor por debajo de .15, pues el texto puede hacerse difícil de leer. Por otro lado es evidente que \topfraction+\textfraction debe ser menor que 1, y lo mismo para \bottomfraction+\textfraction. Violar estos requisitos causará problemas al algoritmo de colocación de flotantes.
    • \renewcommand{\floatpagefraction}{.5} Mínimo tamaño que deben ocupar los flotantes en una floating page. Una página así se compone sólo de entornos flotantes (figuras y tablas), sin texto entre ellas. Por defecto, al menos el 50% de este tipo de páginas debe estar cubierto por flotantes, quedando el resto en blanco. Si la figura fuese más pequeña, se metería en una página normal, con más texto debajo (o encima).
    • \renewcommand{\dbltopfraction}{.7} Lo mismo que \topfraction pero para documentos a doble columna.
    • \renewcommand{\dblfloatpagefraction}{.5} Lo mismo que \dblpagefraction pero para documentos a doble columna.
  • Contadores. Los siguientes contadores limitan el máximo número de flotantes que pueden aparecer en una página, incluso si son muy pequeños y por tanto ocupan una fracción de página permitida por los parámetros anteriores.
    • \setcounter{topnumber}{2} Máximo número de flotantes que pueden aparecer en posición "top" (parte superior).
    • \setcounter{bottomnumber}{1} Máximo número de flotantes que pueden aparecer en posición "bottom" (parte inferior).
    • \setcounter{totalnumber}{3} Máximo número de flotantes que pueden aparecer en total en cualquier página.
    • \setcounter{dbltopnumber}{2} Lo mismo que topnumber, pero para documentos a doble columna.

Comentarios:

  1. necesito saber como solucionar este error: ! LaTeX Error: Too many unprocessed floats...
    es q necesito tener muchos gráficos y latex no me deja como puedo solucionarlo?
     
  2. ! LaTeX Error: Too many unprocessed floats
    como hago para solucionar este error? es urgente ya que necesito hacer varios gráficos...
     
  3. El problema que te reporta LaTeX no se debe a que tengas demasiados graficos, sino demasiados "floats". Un "float" es normalmente un grafico, aunque puede ser una tabla u otra cosa, que LaTeX no vuelca inmediatamente "a papel", sino que lo mantiene en espera de encontrar un buen lugar para el. Normalmente ese buen lugar suele estar en la pagina siguiente, o un par de ellas despues, y en el momento que "la suelta" deja de ocuparle memoria.

    No obstante, a veces LaTeX decide que el mejor sitio para un float es al final del documento (o capitulo, en caso de libros o reports). Una vez que toma esa decisision, todos los floats que sigan a ese tambien los va "acumulando" para soltarlos juntos al final. Es en este caso cuando se puede encontrar con "demasiados floats sin procesar".

    La razon por la que decide llevar un float al final es porque es demasiado grande para quedar bien en una pagina junto con mas texto. Asi que el culpable de tus penas sera probablemente el primer grafico "grande" que uses.

    La solucion puede ser simplemente reducir el tamaño de ese grafico, o mas elegantemente forzar a latex a que lo vuelque en la siguiente pagina en lugar de llevarlo al final. Para hacer esto segundo, usa el truco:

    \afterpage{\clearpage}

    que debes poner justo despues de la figura grande que te da problemas. Para que ese comando funcione necesitas el paquete afterpage.
     
  4. Tengo un error que no puedo solucionar
    Underfullfull\hbox(badness 10000)
     
  5. wow... no conocia el comando \afterpage... gracias! me soluciono un varios problemas con las figuras =) gracias por la publicacion!
     
Publicar un comentario en la entrada
 
 

Powered by Blogger