2009-10-28 8 views
16

Est-ce que LaTeX gère la situation lorsqu'un fichier .bib a un codage différent de celui du fichier .tex? Par exemple, .tex est en ISO-8859-2 et .bib en UTF-8. L'encodage peut-il être converti à la volée par LaTeX? Ou le seul moyen est de le faire manuellement?Codage différent des fichiers latex et bibtex

Répondre

12

tout d'abord, selon le LyX wiki BibTeX ne peut pas utiliser UTF-8:

BibTeX ne supporte pas les fichiers encodés en UTF-8 (c.-à-Unicode), qui est aujourd'hui la valeur par défaut encodage de fichiers sur la plupart des systèmes d'exploitation. La raison en est que BibTeX actuel (v. 0.99c) a été publié en 1988 et précède ainsi l'avènement de l'Unicode. À moins que le BibTeX v. 1.0 annoncé depuis longtemps ou l'une des nombreuses applications potentielles planifiées soient prêts, latin1 (ISO-8859-1) ou un autre encodage 8 bits doit être utilisé pour le fichier bib (cela n'affecte pas le LaTeX encodage, qui peut encore être utf8).

Habituellement, tout ce qui est dans un fichier BibTeX obtient copié mot pour mot le code source LaTeX (avec une mise en forme peut-être et relèves de cas, & c.), Tels que les titres de livres, auteurs, & c.

Donc, votre fichier BibTeX codant doit correspondre à celui utilisé par votre fichier LaTeX, sinon les choses deviennent amusantes. Vous ne pouvez pas non plus utiliser les commandes fournies par babel dans BibTeX (telles que "a pour ä, fournies par n? German) sauf si votre document contient les bons paquetages.

La méthode canonique consiste à rendre les fichiers BibTeX indépendants de tout problème de codage ou de paquet par toujours en spécifiant des caractères spéciaux avec leurs commandes appropriées.

Cela signifie essentiellement qu'au lieu d'écrire ä, vous devez utiliser {\" a} si vous voulez être absolument sûr que cela fonctionne. Semble être une pratique assez standard.

Le manuel BibTeX BibTeXing par Oren Patashnik détails aussi ceci:

BibTeX gère maintenant les caractères accentués . Par exemple, si vous avez une entrée avec les deux champs

author = "Kurt G{\"o}del", 
year = 1931, 

et si vous utilisez le style de bibliographie alpha , puis BibTeX va construire l'étiquette [Göd31] pour cette entrée , qui est ce que vous vouloir. Pour obtenir cette fonctionnalité pour travailler, vous devez placer le caractère accentué entier dans accolades; dans ce cas soit {\"o} soit {\"{o}} fera l'affaire. De plus, ces supports ne doivent pas eux-mêmes être entourés d'accolades (autres que celles qui peuvent délimiter la totalité du champ ou l'entrée complète ); et il doit y avoir une barre oblique inverse en tant que premier caractère à l'intérieur des accolades. Par conséquent, ni {G{\"{o}}del} ni {G\"{o}del} ne fonctionneront pour cet exemple. Cette fonctionnalité gère tous les caractères accentués et tous les symboles étrangers non inversés qui se trouvent dans les Tableaux 3.1 et 3.2 de le livre LaTeX. Cette fonctionnalité se comporte de la même manière pour les "accents" que vous pourriez définir ; nous verrons un exemple sous peu. Aux fins de compter les lettres dans les étiquettes, BibTeX considère tout contenu à l'intérieur des accolades comme une seule lettre .

0

Bibtex a un support aléatoire pour tous les codages de caractères non standard - essentiellement parfois cela fonctionne, la plupart du temps, il ne fonctionne pas et officiellement il n'est pas pris en charge (More details). Personnellement, dans .bib, je m'en tiens à la magie de base ASCII et LaTeX comme \ "o. Pour .tex, si je n'écris pas en anglais, je garde .tex en UTF-8 avec \ usepackage [utf8 ] {inputenc}

3

BibTeX a d'énormes problèmes avec les caractères non-ASCII, même dans la dernière version.Si vous préférez un système moderne, je voudrais recommander la combinaison de biblatex et biber. Les deux sont encore en version bêta Cependant, ils fonctionnent très bien même dans les environnements de production.Avec cette combinaison, la plupart des problèmes liés aux bibliographies LaTeX disparaîtront.Pour une note, le biblatex documentation contient également une section sur les problèmes d'encodage avec le BibTeX traditionnel (§ 2.4.3)

7

Vous pouvez modifier le codage d'entrée à la volée:

\inputencoding{latin2} 
\bibliography{mybib} 
\inputencoding{utf8} 

La commande \inputencoding est fourni par le paquet inputenc.

Questions connexes