Encodage différent des fichiers latex et bibtex [fermé]

est-ce que LaTeX gère la situation lorsque a.fichier bib a un encodage différent de .le dossier 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?

17
demandé sur czuk 2009-10-28 11:12:24

4 réponses

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

BibTeX ne supporte pas les fichiers encodés en UTF-8 (i.e., Unicode), qui est aujourd'hui le fichier par défaut codant sur la plupart des os. La raison en est que le BibTeX actuel (v. 0.99 c) est sorti en 1988 et est donc antérieur à l'avènement d'unicode. À moins que la version 1.0 de BibTeX, annoncée depuis longtemps, ou l'une des nombreuses applications de succès prévues, ne soient prêtes, latin1 (ISO-8859-1) ou un autre encodage 8 bits doit être utilisé pour le fichier bib (cela n'affecte pas L'encodage LaTeX, qui peut encore être utf8).

habituellement, tout ce qui se trouve dans un fichier BibTeX est copié mot à mot dans le code source LaTeX (avec un certain formatage peut-être et des cas changeants, etc.), comme les titres de livres, les auteurs, etc.

donc votre encodage de fichier BibTeX a correspondre à celui utilisé par votre fichier LaTeX, sinon les choses deviennent drôles. Vous aussi ne peut pas utiliser les commandes fournies par babel dans BibTeX (comme "aä, fournis par n?Allemand) sauf si votre document comprend les bons paquets.

la manière canonique est de rendre les fichiers BibTeX agnostiques de tout encodage ou problème de paquet par toujours spécification 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 assez pratique standard.

BibTeX manuel BibTeXing par Oren Patashnik détaille aussi ceci:

BibTeX handles now accented caractère. Par exemple, si vous avez un entrée avec les deux champs

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

et si vous êtes à l'aide de l'alpha bibliography style, puis BibTeX sera construire l'étiquette [Göd31] pour ce entrée, qui est ce que vous voulez. De obtenir cette fonctionnalité vous devoir placez tout le caractère accentué dans bretelles; dans ce cas {\"o} ou {\"{o}} va faire. En outre, ces les supports ne doivent pas être eux-mêmes fermés dans les bretelles (autres que celles qui pourrait délimiter le champ entier ou le toute inscription); et il doit y avoir un backslash comme premier personnage à l'intérieur des accolades. Ainsi, ni {G{\"{o}}del} ni {G\"{o}del} travail pour cet exemple. Cette fonctionnalité gère tous les caractères accentués et tous, mais le nonbackslashed étranger les symboles trouvés dans les Tableaux 3.1 et 3.2 de le livre en LaTeX. Cette fonctionnalité se comporte de même pour "accents" vous pourriez définissez; nous verrons un exemple sous peu. Pour le comptage des lettres dans les étiquettes, BibTeX considère tout contenu à l'intérieur des bretelles comme un une seule lettre.

13
répondu Joey 2009-10-28 08:27:42

vous pouvez changer le codage d'entrée à la volée:

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

\inputencoding la commande est fournie par le inputenc package.

7
répondu krlmlr 2013-01-08 15:37:38

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

3
répondu Philipp 2009-10-28 17:46:33

Bibtex a un support aléatoire pour tous les codages de caractères non standard -- essentiellement parfois il fonctionne, la plupart du temps il ne fonctionne pas et officiellement il n'est pas supporté (Plus de détails