![shortauthor 和 shorttitle 显示为 (cit. shortauthor, shorttitle),使用 biblatex 包含在参考书目中](https://linux22.com/image/262061/shortauthor%20%E5%92%8C%20shorttitle%20%E6%98%BE%E7%A4%BA%E4%B8%BA%20(cit.%20shortauthor%2C%20shorttitle)%EF%BC%8C%E4%BD%BF%E7%94%A8%20biblatex%20%E5%8C%85%E5%90%AB%E5%9C%A8%E5%8F%82%E8%80%83%E4%B9%A6%E7%9B%AE%E4%B8%AD.png)
已经尝试了太长时间了:我想附上以下文字:
(引自 Doe,《商业法》)[小写字母名称]
在参考书目中每个条目末尾的句号之前,例如:
Doe John,《加拿大商法》,多伦多 1999 年(引自 Doe,《商法》)。[小写字母名称]
使用 biblatex 和 biber,我发现以下内容并将其放入我的 *.tex 文件的序言中:
\renewbibmacro*{begentry}{
\printtext[parens]{
\unspace{cit. }\printnames{shortauthor}\addcomma\addspace\printfield{shorttitle}\unspace
\printnames{shorttitle}}
}
这将生成(位置在开始而不是结束!):
(引自 Doe,《商法》)Doe John,《加拿大商法》,多伦多 1999 年。
有人能解决我的问题吗?另外,是否可以使用 biblatex 生成 shortauthor 和 shorttitle,而无需在 *.bib 文件中定义这些标签?
答案1
如果您想将文本放在条目末尾,则必须使用finentry
biblatex 宏,而不是那个begentry
,因此,您可以在代码中替换begentry
,finentery
并\finentry
在末尾添加以打印最后一个句点。
\renewbibmacro*{finentry}{
\printtext[parens]{
\unspace{cit. }\printnames{shortauthor}\addcomma\addspace\printfield{shorttitle}\unspace
\printnames{shorttitle}}%
\finentry
}
请注意,它们\unspace
不是必需的,并且可以被消除。
文件中应给出字段shortauthor
和(可以使用的某些功能从和中提取它们)。但是,在我看来,您想要的可以使用和字段来实现(对于,如果存在于中,则应使用)。shorttitle
bib
map
biber
author
title
labelname
labeltitle
labeltitle
shorttitle
bib
\renewbibmacro{finentry}{%
\printtext[parens]{%
\printtext{cit.}\addspace
\textsc{\printnames{labelname}}\addcomma\addspace
\printfield{labeltitle}}
\finentry
}