如果清單包含 {pp.101},則參考書目中的頁碼無法正確列印。 12-34} 在 bib 檔案中

如果清單包含 {pp.101},則參考書目中的頁碼無法正確列印。 12-34} 在 bib 檔案中

我在列印參考書目時遇到問題。

我有一個如下所示的 bib 文件

    @Article{Sample:01,
  Title                    = {Some Title},
  Author                   = {Doe, John},
  Year                     = {111},
  Pages                    = {pp. 1-2},
  Journal                  = {Really Cool Journal},
  }

    @Article{Sample:02,
  Title                    = {Different Title},
  Author                   = {Doe, Jane},
  Year                     = {222},
  Pages                    = {3-4},
  Journal                  = {Other Cool Journal},
  }

我將它與biblatex和 一起使用biber

然而,我的參考書目對於第二種類型打印正確,但對於第一種類型打印不正確(即第 3-4 頁),而在第二種情況下它只說頁面

我得到了這種不統一風格的頁面列表,因為我從不同的互聯網來源收集引文,有時有第一種,有時有第二種。

無論如何我可以告訴biber忽略任何頁數在清單中頁數並始終列印出來頁ab

到目前為止,我的解決方法是手動更改列表並刪除頁數然而,我覺得必須有某種方法可以自動做到這一點。

到目前為止我還找不到一個。有人對此有什麼想法嗎?

鄭重聲明:我正在使用 MikTex 2,9 並使用pdflatex透過latexmk套件呼叫的方式進行編譯。

這是一個最小的工作範例,它使用上面儲存為 mybib 的 bib 檔案在同一資料夾中建立錯誤。

\documentclass{scrartcl}

\usepackage[
    backend=biber, natbib
]{biblatex}

\bibliography{mybib}

\begin{document}
    \citet{Sample:01}, \citet{Sample:02}

    \printbibliography
\end{document}

答案1

您可以要求 biber 為您進行此類更換。我對正規表示式的使用充其量是不完整的,但我認為這是有效的:

\DeclareSourcemap{
  \maps[datatype=bibtex,overwrite=true]{
    \map{
      \step[fieldsource=pages,
            match=\regexp{pp\.(.+)},
            replace=\regexp{$1}]
    }
  }
}

答案2

只需替換所有 '{pp. ' 與 '{ ' 使用任何文字編輯器的替換選項!

相關內容