\documentclass{article}
\usepackage{filecontents}
\usepackage{hyperref}
\usepackage[hyperref,backend=biber, style=alphabetic]{biblatex}
\begin{filecontents}{jobname.bib}
@book{author_book,
title = {Book's title},
author = {Author, Some},
location = {The City},
publisher = {Publisher},
date = {2022},
}
\end{filecontents}
\addbibresource{jobname.bib}
\begin{document}
\cite[first state]{author_book}
\cite[11]{author_book}
\cite[p. 11]{author_book}
\cite[1.12]{author_book}
\cite[prop 1.12]{author_book}
\printbibliography
\end{document}
输出 :
[Aut22,第一个状态] [Aut22,第 11 页] [Aut22,第 11 页] [Aut22,第 1.12 页] [Aut22,prop 1.12]
参考
[Aut22] 某位作者。书名。The City:出版社,2022 年。
当 \cite[...]{} 命令找到一个数字时,它会自动假设它是页码并在输出引文中添加一个“p”。但这是一个定理/命题标签!实际上,当我在文件中使用页面时,我自己添加了一个“p”。
之前使用 biblatex (style = alpha) 运行,但没成功,现在我必须使用 biber。有没有什么办法可以强制文件永远不产生“p.”之类的东西?
答案1
您可以为这项工作添加分页字段,值 none 将抑制 p,请参阅文档中的 2.3.12 分页:
\documentclass{article}
\usepackage[backend=biber, style=alphabetic]{biblatex}
\begin{filecontents}{jobname.bib}
@book{author_book,
title = {Book's title},
author = {Author, Some},
location = {The City},
publisher = {Publisher},
date = {2022},
pagination={none}
}
\end{filecontents}
\addbibresource{jobname.bib}
\begin{document}
\cite[first state]{author_book}
\cite[11]{author_book}
\cite[p. 11]{author_book}
\cite[1.12]{author_book}
\cite[prop 1.12]{author_book}
\printbibliography
\end{document}
正如文档中提到的那样,您可以通过在序言中添加以下内容来完全禁用 biblatex 对页码的处理:
\DeclareFieldFormat{postnote}{#1}