如何在 biblatex 中明确引用带有方括号的“ref. N”/删除括号?

如何在 biblatex 中明确引用带有方括号的“ref. N”/删除括号?

我已设置书目样式 ( 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)。

您可以\citenature.cbxnumeric-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}

Lorem 參考。 1//Lorem 引用。 2//Lorem 引用。 2、3//参考。 1// 1


如果你只是想要一个没有任何括号的裸引用,你可以定义类似

\DeclareCiteCommand{\barecite}
  {\usebibmacro{cite:init}%
   \usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite:comp}}
  {}
  {\usebibmacro{cite:dump}%
   \usebibmacro{postnote}}

再次,这个定义基于\cite,但它省略了包装器[\mkbibbrackets]

相关内容