Различная кодировка файлов latex и bibtex [закрыто]

обрабатывает ли LaTeX ситуацию, когда a .bib файл имеет другую кодировку, чем .Текс файл? Например. ,tex находится в ISO-8859-2 и .нагрудник в UTF-8. Может ли кодировка быть преобразована на лету LaTeX? Или единственный способ-сделать это вручную?

4 ответов


прежде всего, согласно LyX wiki BibTeX не может использовать UTF-8:

BibTeX не поддерживает файлы, закодированные в UTF-8 (т. е. Unicode), который в настоящее время кодировка файла по умолчанию на большинстве ОС. Причина в том, что текущий BibTeX (V.0.99 c) был выпущен в 1988 году и, таким образом, предшествует появлению unicode. Если давно объявили, так как В. 1.0 или один из многих запланированных потенциальных successing приложения готовы, латинских типа 1 (ISO-8859-1) или другая 8-битная кодировка должна использоваться для файла bib (это не влияет на кодировку LaTeX, которая все еще может быть utf8).

обычно все, что находится внутри файла BibTeX, копируется дословно в исходный код LaTeX (с некоторым форматированием, возможно, и изменениями регистра и т. д.), например, названия книг, авторы и т. д.

Итак, ваша кодировка файла BibTeX до матч вашего файла LaTeX, иначе все становится смешно. Вы также не удается использовать команды, предоставленные babel в BibTeX (например,"a на ä, при условии?немецкий), если ваш документ не содержит правильных пакетов.

канонический способ - сделать файлы BibTeX агностическими для любой кодировки или проблем с пакетом всегда указание специальных символов с соответствующими командами.

это в основном означает, что вместо написания ä вам придется использовать {\" a} если вы хотите быть абсолютно уверены, что это работает. Похоже, это стандартная практика.

руководство BibTeX BibTeXing Орен Паташник также подробно это:

BibTeX теперь обрабатывает акцентированные письмена. Например, если у вас есть запись с двумя полями

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

и если вы используете alpha стиль библиографии, то как будет создать метку [Göd31] для этого вход, который вам нужен. К получите эту функцию, чтобы работать с вами должен поместите весь акцентированный символ в скобки; в этом случае либо {\"o} или {\"{o}} будет делать. Кроме того, эти подтяжки не должны быть заключены в скобках (кроме тех, которые может ограничивать все поле или вся запись); и должен быть обратная косая черта как самый первый символ внутри скобок. Таким образом, ни {G{\"{o}}del}, ни {G\"{o}del} будет работайте для этого примера. Эта особенность обрабатывает все акцентированные символы и все, кроме небэкслэша. зарубежный символы в таблицах 3.1 и 3.2 латексная книга. Эта функция ведет себя аналогично для "акцентов" вы можете определите; мы скоро увидим пример. Для целей подсчета букв в метках, так как считает все содержащиеся в фигурных скобках, как одна буква.


вы можете изменить кодировку ввода на лету:

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

на предусмотрено inputenc пакета.


BibTeX имеет огромные проблемы с символами без ASCII, даже в новейшей версии. Если вы предпочитаете современную систему, я бы рекомендовал сочетание biblatex и Бибер. Оба они все еще находятся в стадии бета-тестирования, но они хорошо работают даже в производственных средах. С этой комбинацией большинство проблем, связанных с библиографиями LaTeX, исчезнут. В качестве примечания,документация biblatex также содержит раздел о вопросах кодирования с традиционный BibTeX (§ 2.4.3).


Bibtex имеет случайную поддержку любых нестандартных кодировок символов - по существу, иногда это работает, большую часть времени это не так и официально не поддерживается (более подробная информация ).

лично, в .bib, я придерживаюсь основной ASCII и латексной магии, как \ " o. Для .Текс, если я не пишу по-английски, я остаюсь .tex в UTF-8 с \usepackage[utf8] {inputenc} .