\documentclass{article}
\usepackage[
backend=bibtex,
bibstyle=numeric,
citestyle=numeric,
natbib=true
]{biblatex}
\bibliography{biblio}
\begin{document}
\citet{federico2014reserve}
\printbibliography
\end{document}
这里省略了 .bib 文件。这将给出:
Federico、Vegh 和 Vuletin [1]。
我想要一个像这样的“作者-年份-数字”风格的引用:
Federico、Vegh 和 Vuletin,2014 年 [1]。
有没有办法在 biblatex 中做到这一点?谢谢。
答案1
我觉得这种风格没什么意义。你放弃了数字风格的一大优势:不引人注目。由于你添加了作者和年份,所以引文变得更长,而且数字标签不会添加作者年份部分无法提供的任何进一步信息(当然,如果做得正确的话)。
也就是说,您只需将名称和年份添加到cite
宏中,但我们还需要移动括号。
\renewcommand*{\nameyeardelim}{\addspace}
\DeclareCiteCommand{\cite}
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{\multicitedelim}
{\usebibmacro{postnote}}
\renewbibmacro*{cite}{%
\printtext[bibhyperref]{%
\printnames{labelname}%
\setunit{\nameyeardelim}%
\printfield{year}%
\setunit{\addspace}%
\printtext[labelnumberwidth]{%
\printfield{prefixnumber}%
\printfield{labelnumber}}%
\ifbool{bbx:subentry}
{\printfield{entrysetcount}}
{}}}
请注意,这重新定义了\cite
命令而不是\textcite
/ \citet
。
总共
\documentclass{article}
\usepackage[
backend=bibtex,
style=numeric,
natbib=true
]{biblatex}
\bibliography{biblatex-examples}
\renewcommand*{\nameyeardelim}{\addspace}
\DeclareCiteCommand{\cite}
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{\multicitedelim}
{\usebibmacro{postnote}}
\renewbibmacro*{cite}{%
\printtext[bibhyperref]{%
\printnames{labelname}%
\setunit{\nameyeardelim}%
\printfield{year}%
\setunit{\addspace}%
\printtext[labelnumberwidth]{%
\printfield{prefixnumber}%
\printfield{labelnumber}}%
\ifbool{bbx:subentry}
{\printfield{entrysetcount}}
{}}}
\begin{document}
\cite{sigfridsson}
\printbibliography
\end{document}