![在 biblatex 中获取真正的纯数字引用](https://linux22.com/image/281634/%E5%9C%A8%20biblatex%20%E4%B8%AD%E8%8E%B7%E5%8F%96%E7%9C%9F%E6%AD%A3%E7%9A%84%E7%BA%AF%E6%95%B0%E5%AD%97%E5%BC%95%E7%94%A8.png)
我终于屈服了,转而使用 biblatex,至少在我的论文中是这样。我使用上标数字引用样式,效果很好。但是,有时能够说“数据取自参考文献 1”之类的话很有用。如果我使用cite{some_ref}
,我会得到“...来自参考文献 [1]”。根据手册,这是设计使然,但我有在 bibtex 中实现此目的的一种好方法——那么我怎样才能复制这个呢?
另外(我怀疑答案是相关的)我的参考书目列出了方括号中的引用编号。
我开始希望我坚持使用 bibtex - 与在文档中间切换的麻烦相比,使用 biblatex 的好处似乎微不足道。
答案1
你可能想尝试
\DeclareFieldFormat{labelnumberwidth}{#1}
\DeclareFieldFormat{shorthandwidth}{#1}
\DeclareCiteCommand{\cite}
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{\multicitedelim}
{\usebibmacro{postnote}}
\DeclareMultiCiteCommand{\cites}{\cite}{\multicitedelim}
在你的序言中。
前两个命令确保参考书目中的数字周围没有括号。而第二个块从中删除括号\cite{}
(而其多引用版本\cites{}
;\parencite{}
仍然有括号)。
\documentclass[english]{article}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=numeric, backend=biber]{biblatex}
\usepackage{hyperref}
\addbibresource{biblatex-examples.bib}
\DeclareFieldFormat{labelnumberwidth}{#1}
\DeclareFieldFormat{shorthandwidth}{#1}
\DeclareCiteCommand{\cite}
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{\multicitedelim}
{\usebibmacro{postnote}}
\DeclareMultiCiteCommand{\cites}{\cite}{\multicitedelim}
\begin{document}
See \cite{wilde} as noted before\supercite{wilde}.
\printbibliography
\end{document}
生产
由于 OP 似乎使用了numeric-comp
,因此解决方法是
\DeclareCiteCommand{\cite}
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite:comp}}
{}
{\usebibmacro{cite:dump}%
\usebibmacro{postnote}}
而不是\cite
上面的重新定义。
因为numeric-verb
它
\DeclareCiteCommand{\cite}
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{\multicitedelim}
{\usebibmacro{postnote}}