5

作業中の Latex ドキュメントにテストとして "\cite{test}" 行を追加しました。bibtex "!bibtex name_of_my_file をコンパイルすると、予想されるエラーが発生しました。

警告 -- 「test」のデータベース エントリが見つかりませんでした

次に、この行を削除して bibtex を再度コンパイルし、Latex ファイルが再び機能することを期待しました。ただし、新しいシェルでも同じエラーが発生します。挙動が理解できません。ロジックは何ですか?Latex ドキュメントを再び機能させるにはどうすればよいですか?

[更新情報] 問題が発生したのと同じくらい予想外に消えました。理由はわかりませんが、現在は機能しています。奇妙な行動の理由を知っていますか?

4

5 に答える 5

10

LaTex と Bibtex のマルチパスの性質につまずいていると思います。このディスカッションのステップ 3 を見ると、次のことがわかります。

最初の実行 (latex 経由) では、補助ファイル paper.aux が生成されます。このファイルには、引用 (およびその他の種類の参照)、使用された参考文献スタイル、および bibtex データベースの名前に関する情報が含まれています。2 回目の実行 (bibtex による) では、補助ファイルの情報と bibtex データベースに含まれるデータを使用して、paper.bbl ファイルを作成します。このファイルには、指定された参考文献スタイルに従ってフォーマットされた \bibitem エントリを持つ参考文献環境が含まれています。

だから、私が考えているのは、あなたのname_of_my_file.auxファイルにはまだプレースホルダーが含まれているということです\cite{test}。補助ファイルを削除すると、最初からやり直すことができるはずです。

latex name_of_my_file
bibtex name_of_my_file
latex name_of_my_file
latex name_of_my_file

[追加情報に基づいて更新] : 問題は、まだ埋め込まれている.auxファイルがあったことです。\cite{}を 2 回目に実行latexすると、古いファイルが新しいファイルでオーバーライドされます。そのため、完全な一連の手順には、最初のlatex電話、1 回のbibtex電話、および 2 回のフォローアップのlatex電話が含まれています。これをマルチパス コンパイラと考えると、より直感的かもしれません。

于 2009-04-16T20:27:30.470 に答える
3

修正点のコンパイルを処理するlatexmkを見ることができます。

とにかく、参考文献の項目がなくても、ドキュメント (pdflatex blah.tex) を作成できるはずです。対応する参照は、PDF ではクエスチョン マークとして表示されます。

于 2009-04-16T21:57:20.130 に答える
2

latex を再実行して、aux ファイルを再生成します。

もう少し詳しい情報へのポインタについては、このディスカッションをご覧ください。基本的に、引用を .tex ファイルから取り出したかもしれませんが、派生ファイル (aux、bbl など) の 1 つにまだ存在しています。

于 2009-04-16T20:26:20.973 に答える
1

bib ファイルの拡張子が .tex ではなく .bib であるかどうかを確認します。.tex の場合は、.bib に変更するだけで問題ありません。いくつかの参照を追加し、bib拡張子を指定せずに「名前を付けて保存」オプションで保存することにより、誤ってtexに変更したことがあります。それが突然起こる可能性がある方法です。

于 2012-07-23T19:33:08.753 に答える