かなり奇妙な問題が発生しています。論文のテキストと引用を含む新しいセクションに取り組んだ後、\autocite{}
次のエラーが発生しました。
2525: Missing $ inserted.
TexStudioによると、エラーは空の行の後に発生します。\printbibliography
削除すると\printbibliography
エラーは解決しますが、私の問題は解決しないことに注意してください ;)
問題は新しく追加されたセクションにあるに違いないと考え、セクション全体、.bib
ファイル内の対応するエントリ、およびすべての補助ファイルを削除しましたが、エラーは解決されませんでした。
残念ながら、ファイルの長さが約 80 ページあり、編集したセクションを削除してもエラーは解決されないため、コードから関連する例を含めることはできないと思います。
注: エラーが発生しても、更新された PDF ドキュメントが生成されます。
TL;DRと質問
このような問題をデバッグするための推奨される方法は何ですか?
あるいは:
十分な詳細がある場合、ここで何が問題になるのでしょうか?
答え1
与えられたtest1.bib
@misc{foo,
title={Something bad with _x},
author={me},
date={2024}
}
@misc{bar,
title={Something good},
author={me},
date={2024}
}
文書
\documentclass{article}
\usepackage{biblatex}
\addbibresource{test1.bib}
\begin{document}
Blah blah \cite{foo,bar}.
\printbibliography
\end{document}
ターミナルとログにエラーが発生します:
! Missing $ inserted.
<inserted text>
$
l.12 \end
{document}
?
! Missing $ inserted.
<inserted text>
$
l.12 \end
{document}
?
これは少しわかりにくいですが、追加することで tex にさらにコンテキストを与えるように指示できます\errorcontextlines=5
(さらに多くを取得できますが、要求する内容に注意してください)。
\documentclass{article}
\usepackage{biblatex}
\addbibresource{test1.bib}
\begin{document}
Blah blah \cite{foo,bar}.
\errorcontextlines=5
\printbibliography
\end{document}
ターミナルとログに次のエラーが生成されます:
! Missing $ inserted.
<inserted text>
$
<to be read again>
_
<argument> Something bad with _
x
\blx@theformat #1->#1
<argument> ...{\csname abx@field@title\endcsname }
\blx@endunit
\@secondoftwo #1#2->#2
...
l.12 \end
{document}
?
改行する場所
<argument> Something bad with _
x
エラーが発生した場所を強調表示し_
、
<argument> \printfield [titlecase]{title}
あるエントリのタイトル フィールドにあることを示します。
そこから、問題のあるエントリを見つけて変更できるはずです。
title={Something bad with \_x},
biber と pdflatex を再実行すると、エラーはなくなります。