使用style=authoryear
,biblatex
可以自动在页码前添加“p.”或“pp.”,这是一个巧妙的功能。我的问题是,如果我在页码后添加进一步的注释,例如“,强调添加”,我将失去此功能(这会导致我的引用彼此不一致)。以下是 MWE:
\documentclass{article}
\usepackage[style=authoryear,natbib=true]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{referencia.bib}
@misc{john-73,
author = {John, S.},
year = {1973},
title = {The best book ever},
}
\end{filecontents}
\addbibresource{referencia.bib}
\begin{document}
``Some quotation'' \citep[43]{john-73}.
``Some quotation'' \citep[see][43]{john-73}.
``Some \emph{quotation}'' \citep[][43, emphasis added]{john-73}.
\end{document}
这是我的输出:
“一些引用” (John,1973,第 43 页)。
“一些引文” (见 John,1973 年,第 43 页)
“一些引述” (John,1973,43,重点补充)。
符号“p。”在第三个引文中消失了。所以,我的问题是:如何在添加诸如“强调添加”之类的后记时保留“p。”?有没有标准方法可以做到这一点?
答案1
biblatex
通常会检测引文的后记参数是单页还是页码范围,并添加相应的前缀。这也适用于罗马数字,但不适用于数字加文本,如您的第三个引文。在这些情况下,您必须手动添加\pno
(打印当前语言的单页前缀)或\ppno
(打印页码范围前缀)。使用不可中断的空格,您应该将第三个引文写为
``Some \emph{quotation}'' \citep[][\pno~43, emphasis added]{john-73}.
请参阅第 3.14.3 节 (引文中的页码) 的biblatex
手动的了解详情。
答案2
从biblatex
3.13 (2019-08-17) 开始,你可以使用宏\pnfmt
代替\pno
和\ppno
。请参阅https://github.com/plk/biblatex/issues/870。
\pnfmt
biblatex
格式化其参数的方式与格式化完整参数的方式完全相同postnote
。因此,如果\pnfmt
仅包含页面范围,并且postnote
格式添加了页面前缀,您将从中获得页面前缀\pnfmt
。在这种情况下\pnfmt
,将自动选择页面前缀的正确形式(“p。”/\pno
或“pp。”/ ” \ppno
),添加所需的空格并规范化范围分隔符。此外,如果您决定修改postnote
字段格式,该命令对于统一性很有用。
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear, backend=biber]{biblatex}
%\DeclareFieldFormat{postnote}{\mknormrange{#1}}
\addbibresource{biblatex-examples.bib}
\begin{document}
\autocite[\pnfmt{380-382}, emphasis added]{sigfridsson}
\autocite[\pnfmt{381}, emphasis added]{sigfridsson}
\end{document}