19

LaTeX は、.bib ファイルのエンコーディングが .tex ファイルと異なる状況を処理しますか? たとえば、.tex は ISO-8859-2 で、.bib は UTF-8 です。エンコーディングを LaTeX でその場で変換できますか? または、手動で行う唯一の方法ですか?

4

4 に答える 4

16

まず第一に、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 が提供する"aforなど) を 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 文字と見なします。

于 2009-10-28T08:16:29.620 に答える
8

入力エンコーディングはオンザフライで変更できます。

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

\inputencodingコマンドはパッケージによって提供されますinputenc

于 2013-01-08T15:37:38.610 に答える
3

BibTeX には、最新バージョンであっても、非 ASCII 文字に関する大きな問題があります。最新のシステムを好む場合は、biblatexbiberの組み合わせをお勧めします。どちらもまだベータ段階ですが、本番環境でも問題なく動作します。この組み合わせにより、LaTeX 参考文献に関連するほとんどの問題が解消されます。補足として、biblatex のドキュメントには、従来の BibTeX (§ 2.4.3) でのエンコーディングの問題に関するセクションも含まれています。

于 2009-10-28T17:46:33.500 に答える
0

Bibtex は、非標準の文字エンコーディングをランダムにサポートしています。基本的に動作する場合もありますが、ほとんどの場合は動作せず、公式にはサポートされていません (詳細)。

個人的には、.bib では \"o のような基本的な ASCII と LaTeX の魔法に固執しています。 .

于 2009-10-28T08:22:57.780 に答える