我正在用哲学冗长的风格进行工作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
内部\footnot
:text.\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-sbl和https://github.com/plk/biblatex/issues/918,下一个版本biblatex
(v3.15)将有两个新命令\NumsCheckSetup
,\PagesCheckSetup
可用于定义一个命令,让您隐藏脚注中的附加文本,以便通过宏测试我们是否正在处理页面范围。
因此,我们可以定义一个新的宏\hidefromifpages
,它只是扩展了它的参数,但随后我们重新定义它以在文本时隐藏它的参数。这意味着,如果外面的\ifpages
其余部分是页面范围,则该字段仍会通过测试。postnote
\hidefromifpages
postnote
使用3.13 版中引入的\pno~
更方便,无需手动操作(\pnfmt
https://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}