sábado, 16 de marzo de 2013

Igualar la longitud de las dos columnas finales de un documento Latex cuando éstas contienen una bibliografía generada con Bibtex

Problema: En un documento que hemos generado con Latex a doble columna, deseamos que las dos columnas de la última página tengan el mismo tamaño. Además esta última página tendrá una lista bibliográfica que hemos generado con Bibtex.

Solución:  Vamos a diferenciar dos casos:
  • Si en la última página hay texto además de la bibliografía (por ejemplo los últimos párrafos de nuestro documento, justo antes de la sección Bibliography o References), lo más sencillo es utilizar:
    • El comando \enlargethispage{-x cm} donde x es un número que ajustaremos por prueba y error. Este comando lo llamaremos justo antes de la orden \bibliographystyle y \bibliography
    • Lo anterior es sencillo y limpio porque no requiere de packages que quizá el destinatario del documento no tenga (si es necesario que lo tengan que compilar, evidentemente si les pasamos el pdf final, esto será irrelevante). Otra opción, pero usando un package externo es indicar en el preámbulo \usepackage{flushend} si nuestro compilador se queja de no encontrar el package, éste se puede descargar de aquí: http://www.ctan.org/pkg/flushend. Este package a veces no presenta un interlineado perfecto especialmente en la segunda columna, pero en general funciona bien.
  • Si en la última página no hay texto, es decir, sólo contiene una parte de la bibliografía (asumimos larga y que se expande en varias páginas), la solución con \enlargethispage no funcionará porque si la ponemos antes de \bibliographystyle y \bibliography afectará a la página en la que empieza la bibliografía (que no es la última)  y si escribimos el comando después, tampoco sirve porque tiene un comportamiento diferente al esperado. Por tanto se propone:
    • Usar la segunda solución anterior con el package flushend.
    • O bien, modificar directamente el fichero .bbl que genera bibtex y allí internamente usar el comando \enlargethispage (no recomendado porque cada vez que ejecutemos bibtex habrá que volverlo a poner manualmente).
    • O bien, si el documento es para el IEEE lo más efectivo, elegante (sin packages externos) y ausente de problemas es usar la solución propuesta en la sección XIV del documento "How to Use the IEEEtran LATEX Class" de Michael Shell. Aquí se describen dos comandos que servirán si nuestro documento sigue el estilo IEEEtran. Concretamente entre los comandos \bibliographystyle{IEEEtran} y \bibliography{mybibliografia} escribiremos una de estas dos opciones:
      • Sólo el comando \IEEEtriggeratref{10} cortará la primera columna en la referencia 10 y seguirá desde ella en la columna 2.
      • Los dos comandos \IEEEtriggeratref{10} seguido de \IEEEtriggercmd{\enlargethispage{-19.4 cm}} nos permiten ajustar a nivel de línea, simplemente cambiando los cm indicados en el segundo comando.
Si encontraste una solución a tu problema y ahorraste tiempo, ya me doy por satisfecho. También podrías invitarme a un café con una pequeña donación en Paypal. ¡Gracias! 

Palabras clave para indexar entrada en búsquedas en inglés: double column same sized equal length conference paper how to set columns in final page equalize columns IEEE Bibtex

No hay comentarios:

Publicar un comentario