我已设置书目样式 ( nature
),使得\cite{key1}
文本中产生“[1]”。给定两个.bib
带有键key1
和 的-entries key2
,我想要写
陈述 A 是正确的 [1]。因此,根据参考文献 2 中的讨论,陈述 B 也是正确的。
最好避免使用天真的方括号“... in ref. [2], ...” ... in ref. \cite{key2}, ...
。没有方括号的 ref. 2 的好写法是什么?
我正在使用该biblatex
包,因此使用命令natbib
的任何解决方案\citenum
似乎都不兼容。并且提供的解决方案这个帖子对我不起作用。
答案1
此类命令的所有要素都已具备,我们只需将它们组合在一起。
我们\refcite
根据 的默认定义定义了一个新命令\cite
。但在预编码中,我们注入了一些打印“ref.”或“refs.”的代码(取决于 中存储的引用数citetotal
)。
您可以\cite
在nature.cbx
numeric-comp.cbx
(版本 3.16 中第 209-216 页)。
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=nature]{biblatex}
\NewBibliographyString{ref}
\NewBibliographyString{refs}
\DefineBibliographyStrings{english}{
ref = {ref\adddot},
refs = {refs\adddot},
}
\newbibmacro{cite:intro:ref}{%
\ifnumgreater{\value{citetotal}}{1}
{\bibstring{refs}}
{\bibstring{ref}}%
\printunit{\addnbspace}}
\DeclareCiteCommand{\refcite}
{\usebibmacro{cite:init}%
\usebibmacro{prenote}%
\usebibmacro{cite:intro:ref}}
{\usebibmacro{citeindex}%
\usebibmacro{cite:comp}}
{}
{\usebibmacro{cite:dump}%
\usebibmacro{postnote}}
\newrobustcmd*{\Refcite}{\bibsentence\refcite}
\addbibresource{biblatex-examples.bib}
\begin{document}
Lorem \refcite{sigfridsson}
Lorem \refcite{nussbaum}
Lorem \refcite{nussbaum,geer}
\Refcite{sigfridsson}
Lorem \autocite{sigfridsson}
\printbibliography
\end{document}
如果你只是想要一个没有任何括号的裸引用,你可以定义类似
\DeclareCiteCommand{\barecite}
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite:comp}}
{}
{\usebibmacro{cite:dump}%
\usebibmacro{postnote}}
再次,这个定义基于\cite
,但它省略了包装器[\mkbibbrackets]
。