LaTeX は、.bib ファイルのエンコーディングが .tex ファイルと異なる状況を処理しますか? たとえば、.tex は ISO-8859-2 で、.bib は UTF-8 です。エンコーディングを LaTeX でその場で変換できますか? または、手動で行う唯一の方法ですか?
4 に答える
まず第一に、LyX wikiによると、 BibTeX は UTF-8 を使用できません:
BibTeX は UTF-8 (つまり、Unicode) でエンコードされたファイルをサポートしていません。これは現在、ほとんどの OS でデフォルトのファイル エンコードになっています。その理由は、現在の BibTeX (v. 0.99c) が 1988 年にリリースされたため、Unicode の出現よりも前のことです。かなり前に発表された BibTeX v. 1.0 または多くの計画された成功する可能性のあるアプリケーションの 1 つが準備できていない限り、latin1 (ISO-8859-1) または別の 8 ビット エンコーディングを bib ファイルに使用する必要があります (これは LaTeX には影響しません)。エンコーディングは引き続き utf8 にすることができます)。
通常、本のタイトル、著者など、BibTeX ファイル内にあるものはすべて LaTeX ソース コードに逐語的にコピーされます (書式設定や大文字と小文字の変更などがあります)。
したがって、BibTeX ファイルのエンコーディングは、LaTeX ファイルで使用されているものと一致する必要があります。そうしないと、おかしなことになります。また、ドキュメントに適切なパッケージが含まれていない限り、 babel が提供するコマンド ( n?german が提供する"a
forなど) を BibTeX で使用することもできません。ä
標準的な方法は、適切なコマンドで常に特殊文字を指定することにより、BibTeX ファイルをエンコーディングやパッケージの問題にとらわれないようにすることです。
これは基本的に、それが機能することを絶対に確認したい場合は、書く代わりä
に使用する必要があることを意味します. {\" a}
かなり標準的な慣行のようです。
Oren Patashnik によるBibTeX マニュアルBibTeXingにも、この詳細が記載されています。
BibTeX は、アクセント付きの文字を処理できるようになりました。たとえば、2 つのフィールドを持つエントリがある場合
author = "Kurt G{\"o}del", year = 1931,
また、アルファ参考文献スタイルを使用している場合、BibTeX は
[Göd31]
このエントリのラベルを作成します。これはあなたが望むものです。この機能を動作させるには、アクセント付きの文字全体を中かっこで囲む必要があります。この場合、またはどちら{\"o}
か{\"{o}}
になります。さらに、これらの中括弧自体を中括弧で囲むことはできません (フィールド全体またはエントリ全体を区切る可能性のあるものを除く)。中括弧内の最初の文字としてバックスラッシュが必要です。したがって、どちら{G{\"{o}}del}
でもない{G\"{o}del}
この例では機能します。この機能は、LaTeX ブックの表 3.1 と 3.2 にあるすべてのアクセント付き文字と、バックスラッシュ以外のすべての外国語記号を処理します。この機能は、定義する「アクセント」に対して同様に動作します。すぐに例を見てみましょう。ラベルの文字数を数える目的で、BibTeX は中かっこ内に含まれるすべての文字を 1 文字と見なします。
入力エンコーディングはオンザフライで変更できます。
\inputencoding{latin2}
\bibliography{mybib}
\inputencoding{utf8}
\inputencoding
コマンドはパッケージによって提供されますinputenc
。
BibTeX には、最新バージョンであっても、非 ASCII 文字に関する大きな問題があります。最新のシステムを好む場合は、biblatexとbiberの組み合わせをお勧めします。どちらもまだベータ段階ですが、本番環境でも問題なく動作します。この組み合わせにより、LaTeX 参考文献に関連するほとんどの問題が解消されます。補足として、biblatex のドキュメントには、従来の BibTeX (§ 2.4.3) でのエンコーディングの問題に関するセクションも含まれています。
Bibtex は、非標準の文字エンコーディングをランダムにサポートしています。基本的に動作する場合もありますが、ほとんどの場合は動作せず、公式にはサポートされていません (詳細)。
個人的には、.bib では \"o のような基本的な ASCII と LaTeX の魔法に固執しています。 .