我尝试引用多个字段(例如,标题、作者和年份)。
我试过了\citefield
,但它似乎不接受多个字段(如何提取 BibTeX 条目(如 DOI、摘要等))
有没有类似的东西\citefield{somepaper2020}{title,author,year}
?
答案1
\citefield
只提供一个字段。如果想同时访问多个字段,则需要定义自定义 cite 命令。
标准\...cite
命令具有以下结构
\DeclareCiteCommand{\atycite}
{\usebibmacro{prenote}}
{\usebibmacro{author:title:year}}
{\multicitedelim}
{\usebibmacro{postnote}}
bibmacro(此处author:title:year
)执行实际工作并打印所需字段及其之间的标点符号。例如
\newbibmacro*{author:title:year}{%
\printnames{labelname}%
\setunit{\addcolon\space}%
\printfield[citetitle]{labeltitle}%
\setunit{\addcomma\space}%
\printdate
}
这里我使用了从、、...字段和从等自动计算的特殊字段labelname
和,而不是和。labeltitle
author
editor
title
shorttitle
\printnames{author}
\printfield{title}
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=numeric, backend=biber]{biblatex}
\newbibmacro*{author:title:year}{%
\printnames{labelname}%
\setunit{\addcolon\space}%
\printfield[citetitle]{labeltitle}%
\setunit{\addcomma\space}%
\printdate
}
\DeclareCiteCommand{\atycite}
{\usebibmacro{prenote}}
{\usebibmacro{author:title:year}}
{\multicitedelim}
{\usebibmacro{postnote}}
\addbibresource{biblatex-examples.bib}
\begin{document}
\autocite{sigfridsson}
\atycite{sigfridsson}
\printbibliography
\end{document}
如果这应该是您常用的引用样式而不是一次性的,您可能需要使其更高级,并确保该命令可以处理高级biblatex
功能,例如shorthand
,与参考书目样式(及其排序)等正确协同工作。