調試在 \printbibliography 之後插入缺少的 $

調試在 \printbibliography 之後插入缺少的 $

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

相關內容