style - bibtex latex import
Diferente codificación de látex y archivos bibtex (4)
¿LaTeX maneja la situación cuando un archivo .bib tiene una codificación diferente a la del archivo .tex? Por ejemplo, .tex está en ISO-8859-2 y .bib en UTF-8. ¿Puede la codificación ser convertida sobre la marcha por LaTeX? ¿O la única forma de hacerlo es manualmente?
BibTeX tiene grandes problemas con los caracteres que no son ASCII, incluso en la versión más reciente. Si prefiere un sistema moderno, me gustaría recomendar la combinación de biblatex y biber . Ambos aún están en fase beta, pero funcionan bastante bien incluso en entornos de producción. Con esta combinación, la mayoría de los problemas relacionados con las bibliografías de LaTeX desaparecerán. Como nota al margen , la documentación de biblatex también contiene una sección sobre problemas de codificación con BibTeX tradicional (§ 2.4.3).
Bibtex tiene soporte aleatorio para cualquier codificación de caracteres no estándar; esencialmente, a veces funciona, la mayoría de las veces no lo hace y oficialmente no es compatible ( Más detalles ).
Personalmente, en .bib, utilizo la magia básica ASCII y LaTeX como / "o. Para .tex, si no escribo en inglés, mantengo .tex en UTF-8 con / usepackage [utf8] {inputenc} .
En primer lugar, de acuerdo con el wiki de LyX, BibTeX no puede usar UTF-8:
BibTeX no admite archivos codificados en UTF-8 (es decir, Unicode) , que en la actualidad es la codificación de archivos predeterminada en la mayoría de los sistemas operativos. La razón es que BibTeX actual (v. 0.99c) se lanzó en 1988 y, por lo tanto, es anterior al advenimiento de Unicode. A menos que esté listo el BibTeX v. 1.0 o una de las muchas posibles aplicaciones de éxito planificadas, latin1 (ISO-8859-1) u otra codificación de 8 bits debe usarse para el archivo bib (esto no afecta al LaTeX codificación, que todavía puede ser utf8).
Por lo general, todo lo que se encuentre dentro de un archivo BibTeX se copia literalmente al código fuente de LaTeX (con algún formato de formato y cambio de mayúsculas, etc.), como títulos de libros, autores, etc.
Por lo tanto, su codificación de archivos BibTeX tiene que coincidir con la utilizada por su archivo LaTeX, de lo contrario, las cosas se ponen divertidas. Tampoco puede usar los comandos provistos por babel en BibTeX (como "a
for ä
, proporcionado por n? German) a menos que su documento incluya los paquetes correctos.
La forma canónica es hacer que los archivos BibTeX sean independientes de cualquier problema de codificación o paquete especificando siempre caracteres especiales con sus comandos apropiados.
Básicamente, esto significa que, en lugar de escribir ä
, tendría que usar {/" a}
si quiere estar absolutamente seguro de que funciona. Parece ser una práctica bastante estándar.
El manual BibTeX BibTeXing de Oren Patashnik también detalla esto:
BibTeX ahora maneja caracteres acentuados. Por ejemplo, si tiene una entrada con los dos campos
author = "Kurt G{/"o}del", year = 1931,
y si está utilizando el estilo de bibliografía alfa, BibTeX construirá la etiqueta
[Göd31]
para esta entrada, que es lo que desearía. Para que esta característica funcione, debe colocar todo el carácter acentuado entre llaves; en este caso, será suficiente{/"o}
o{/"{o}}
. Además, estas llaves no deben estar entre corchetes (aparte de las que podrían delimitar todo el campo o la entrada completa); y debe haber una barra invertida como el primer carácter dentro de las llaves. Por lo tanto, ni{G{/"{o}}del}
ni{G/"{o}del}
funcionarán para este ejemplo. Esta característica maneja todos los caracteres acentuados y todos excepto los símbolos extranjeros sin barra diagonal que se encuentran en las Tablas 3.1 y 3.2 del libro de LaTeX. Esta característica se comporta de manera similar para los "acentos" que podrías definir; Veremos un ejemplo en breve. A los efectos de contar las letras en las etiquetas, BibTeX considera todo lo contenido dentro de las llaves como una sola letra.
Puede cambiar la codificación de entrada sobre la marcha:
/inputencoding{latin2}
/bibliography{mybib}
/inputencoding{utf8}
El comando /inputencoding
proporciona el comando inputenc
.