我有一個相當奇怪的問題:在我的論文中包括文本和\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,錯誤就會消失。