在某些领域,引用另一部作品的脚注时,最好将页码与脚注编号一起引用。在 中biblatex-sbl
,如果这是对一篇文章的第一次引用,那么它会将 视为prenote
页码以外的内容,并将整个页面范围放在脚注中,然后将 放在postnote
括号中,这是不正确的。
以下是 MWE:
\documentclass[letterpaper,12pt]{book}
\usepackage{polyglossia}
\setmainlanguage[variant=us]{english}
\usepackage[english=american]{csquotes}
\begin{filecontents}[overwrite]{customstyles.dbx}
\DeclareDatamodelEntrytypes{tdict}
\end{filecontents}
\usepackage[style=sbl,citepages=omit,fullbibrefs=true,sblfootnotes=false,citereset=chapter]{biblatex}
\begin{filecontents}[overwrite]{temp.bib}
@article{article1,
title = {First Article Title},
author = {John Smith},
journal = {Journal Title},
volume = {3},
number = {2},
year = {2020},
pages = {15-30},
}
@article{article2,
title = {Second Article Title},
author = {John Denver},
journal = {Journal Title},
volume = {3},
number = {2},
year = {2020},
pages = {31-45},
}
\end{filecontents}
\addbibresource{temp.bib}
\usepackage{xparse}
\begin{document}
\null\vfill
Cite a normal page.\footcite[18]{article1} Cite a footnote.\footcite[20fn2]{article1}
Now cite a footnote first.\footcite[35fn3]{article2}
\clearpage
\printbibliography%
\end{document}
它看起来是这样的:
如果第一个引用是页码,然后第二个引用包含页码以外的内容,则简短引用是正确的。
但是,如果第一个引用包含对脚注的引用(因此postnote
包含除了数字之外的其他内容),则完整引用是错误的。
有没有办法biblatex-sbl
将其视为页码?
我确实找到了这个问题,但我不确定具体该怎么做。我需要手动定义吗passifpages
?这个命令似乎不是在 中本机定义的biblatex
。关于 定义的注释PagesCheckSetup
。而且关于具有简单定义的做在 中有一个定义biblatex
。
答案1
你可以使用以下方法\passifpages
(定义在https://github.com/plk/biblatex/issues/918#issuecomment-581051609)。该命令未在核心中定义biblatex
,因此您必须自带定义。这个想法是,这个命令通常不执行任何操作(\@firstofone
定义一个返回其单个参数的宏),但定义为在biblatex
检查某项是否为有效页面范围时隐藏其参数(这就是所做的\PagesCheckSetup
)。
\documentclass[letterpaper,12pt]{book}
\usepackage{polyglossia}
\setmainlanguage[variant=us]{english}
\usepackage[english=american]{csquotes}
\usepackage[style=sbl,citepages=omit]{biblatex}
\makeatletter
\let\passifpages\@firstofone
\PagesCheckSetup{\let\passifpages\@gobble}
\makeatother
\addbibresource{biblatex-examples.bib}
\begin{document}
\null\vfill
Cite a normal page.\footcite[18]{sigfridsson}
Cite a footnote.\footcite[\passifpages{20fn2}]{sigfridsson}
Now cite a footnote first.\footcite[\passifpages{35fn3}]{aksin}
\clearpage
\printbibliography
\end{document}
如果您引用很多脚注,那么每次添加都会变得很乏味\passifpages
。有两种方法可以让您的生活更轻松。
您可以允许
f
和n
作为数字的一部分\documentclass[letterpaper,12pt]{book} \usepackage{polyglossia} \setmainlanguage[variant=us]{english} \usepackage[english=american]{csquotes} \usepackage[style=sbl,citepages=omit]{biblatex} \DeclareNumChars{nf} \addbibresource{biblatex-examples.bib} \begin{document} \null\vfill Cite a normal page.\footcite[18]{sigfridsson} Cite a footnote.\footcite[20fn2]{sigfridsson} Now cite a footnote first.\footcite[35fn3]{aksin} \clearpage \printbibliography \end{document}
从技术上讲,这意味着诸如
nfffnnfnfn
现在将“算作”数字的参数,这可能还不错。你可以为 定义一个特殊的命令
fn<number>
,比如说\fn
可以从页面隐藏检查代码中再次隐藏。\documentclass[letterpaper,12pt]{book} \usepackage{polyglossia} \setmainlanguage[variant=us]{english} \usepackage[english=american]{csquotes} \usepackage[style=sbl,citepages=omit]{biblatex} \makeatletter \newcommand*{\fn}[1]{fn#1} \PagesCheckSetup{\let\fn\@gobble} \makeatother \addbibresource{biblatex-examples.bib} \begin{document} \null\vfill Cite a normal page.\footcite[18]{sigfridsson} Cite a footnote.\footcite[20\fn{2}]{sigfridsson} Now cite a footnote first.\footcite[35\fn{3}]{aksin} \clearpage \printbibliography \end{document}