Biblatex citepages=omit 在 postnote 包含文本时不起作用

Biblatex citepages=omit 在 postnote 包含文本时不起作用

我正在用哲学冗长的风格进行工作citepages=omit

有时我需要在引用后的脚注中进行评论。写作只是text.\footcite[22, textual comment]{bertram}输出脚注

Bertram Aaron,Wentworth Richard,"黎曼曲面上全纯映射的 Gromov 不变量",J. Amer. Math. Soc.,9,2(1996),第 529-571 页,22,文本评论。

我不需要pagetotal,而且它在后注中没有文字: text.\footcite[22]{bertram}导致脚注

Bertram Aaron,Wentworth Richard,《黎曼曲面上全纯映射的 Gromov 不变量》,J. Amer. Math. Soc.,9,2(1996),第 22 页。

回答向我展示了如何在页码前添加 p.,但pagetotal那里有一个我不需要的字段: text.\footcite[\pno~22, textual comment]{bertram}结果脚注

Bertram Aaron,Wentworth Richard,《黎曼曲面上全纯映射的格罗莫夫不变量》,《美国数学会志》,9,2(1996),第 529-571 页,第 22 页,文本评论。

现在我正在使用\cite内部\footnottext.\footnote{\cite[22]{bertram}, textual comment}来获取所需的脚注

Bertram Aaron,Wentworth Richard,《黎曼曲面上全纯映射的格罗莫夫不变量》,《美国数学会志》,9,2(1996),第 22 页,文本评论。

这种预期的行为citepages=omit在这种情况下不起作用还是我做错了什么?

血管内皮生长因子

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{csquotes}
\usepackage[english]{babel}
\usepackage[style=philosophy-verbose,backref=true,citepages=omit]{biblatex}
\usepackage[colorlinks]{hyperref}
\usepackage{xpatch}

\addbibresource{biblatex-examples.bib}

\begin{document}
\null\vfill\noindent
text.\footcite[\pno~22, textual comment]{bertram}
\printbibliography
\end{document}

答案1

这是有意为之。citepages=omit测试是否postnote是页面范围,并且仅pages在那种情况下隐藏该字段。其想法是,在其他情况下,不能保证包含postnote取代字段中信息的页面引用 pages

讨论如下脚注中的 2 个精确页码 biblatex-sblhttps://github.com/plk/biblatex/issues/918,下一个版本biblatex(v3.15)将有两个新命令\NumsCheckSetup\PagesCheckSetup可用于定义一个命令,让您隐藏脚注中的附加文本,以便通过宏测试我们是否正在处理页面范围。

因此,我们可以定义一个新的宏\hidefromifpages,它只是扩展了它的参数,但随后我们重新定义它以在文本时隐藏它的参数。这意味着,如果外面的\ifpages其余部分是页面范围,则该字段仍会通过测试。postnote\hidefromifpagespostnote

使用3.13 版中引入的\pno~更方便,无需手动操作(\pnfmthttps://github.com/plk/biblatex/issues/870)。

MWE 包含两个代码块:第一个块定义\PagesCheckSetup并设置它\pnfmt。该代码块在 3.15 或更高版本中将是多余的biblatex,因为它将包含在核心中biblatex。在 MWE 中,该块的编码方式会导致它在较新版本中引发错误,biblatex以提醒您应该将其删除。

第二个代码块设置\hidefromifpages

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{csquotes}
\usepackage[english]{babel}
\usepackage[style=philosophy-verbose,backref=true,citepages=omit]{biblatex}
\usepackage[colorlinks]{hyperref}
\usepackage{xpatch}

% In biblatex 3.15 and above
% \NumsCheckSetup and \PagesCheckSetup are part of the biblatex core.
% The following lines will then throw an error.
% Just remove them if that happens.
\makeatletter
\newrobustcmd*{\NumsCheckSetup}{\appto\blx@hook@ifnums}
\newrobustcmd*{\PagesCheckSetup}{\appto\blx@hook@ifpages}
\PagesCheckSetup{\let\pnfmt\@firstofone}
\makeatother

\makeatletter
\newcommand*{\hidefromifpages}[1]{#1}
\PagesCheckSetup{\let\hidefromifpages\@gobble}
\makeatother


\addbibresource{biblatex-examples.bib}

\begin{document}
\null\vfill\noindent
text.\footcite[\pnfmt{380--381}\hidefromifpages{, textual comment}]{sigfridsson}
\printbibliography
\end{document}

Emma Sigfridsson 和 Ulf Ryde,“从静电势和矩推导原子电荷的方法比较”,计算化学杂志,19,4(1998),doi:10.1002/(SICI)1096-987X(199803)19:4<377::AID-JCC1>3.0.CO;2-P,第 380-381 页,文字评论。

相关内容