我的问题与这个问题(无耻地复制 MWE 的内容)。
我希望获得相同的引用样式,因此,\textcite
结果是作者后面跟着上标引用。biblatex-nature
然而,的标准是“全尺寸”引用
\documentclass{report}
\usepackage[style=nature]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{ABib.bib}
@article {article1,
AUTHOR = {Author, A. N.},
TITLE = {A sample paper},
JOURNAL = {Sample journal},
VOLUME = {1},
YEAR = {2013},
NUMBER = {1},
PAGES = {1--2}}
\end{filecontents}
\addbibresource{ABib.bib}
\begin{document}
Someone saw something \autocite{article1}.
\textcite{article1} saw something.
\end{document}
但是,前面链接问题的答案与该style=nature
命令结合使用时会出现以下错误;
! Package biblatex Error: Bibliography macro 'cite' undefined.
答案1
假设你不想要“自动引用”魔法,那么
\makeatletter
\renewbibmacro*{textcite}{%
\iffieldequals{namehash}{\cbx@lasthash}
{\usebibmacro{cite:comp}}
{\usebibmacro{cite:dump}%
\ifbool{cbx:parens}
{\bibclosebracket\global\boolfalse{cbx:parens}}
{}%
\iffirstcitekey
{}
{\textcitedelim}%
\usebibmacro{cite:init}%
\ifnameundef{labelname}
{\printfield[citetitle]{labeltitle}}
{\printnames{labelname}}%
\addspace
\ifnumequal{\value{citecount}}{1}
{\usebibmacro{prenote}}
{}%
\mkbibsuperscript{\usebibmacro{cite:comp}}%
\stepcounter{textcitecount}%
\savefield{namehash}{\cbx@lasthash}}}
\makeatother
可以完成这项工作。这适用于任何派生自numeric-comp
(包括nature
样式)的样式:压缩样式使用多部分方法处理引用编号,因此“简单”解决方案不适用。
请注意,如果引用出现在句末,则这种方法不会移动标点符号。