目前我正在使用biblatex
(以 biber 作为后端)。我正在使用\parencite{}
或\textcite{}
创建引用。
我想知道是否可以为某些条目类型创建脚注(带编号参考),例如@online
或 ,@booklet
而不是将它们添加到参考书目中。除此之外,是否还可以按照某种模式自定义脚注文本,例如title + url + urldate
。
更新: 以下是乳胶代码以及我的 bib 文件的样子:
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=numeric, defernumbers, backend=biber]{biblatex}
\usepackage{hyperref}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{book1,
author = "Max Mustermann",
title = "My Book",
date = "1980",
isbn = "123456789",
}
@booklet{online1,
author = "John Doe",
title = "Title of Online Reference",
url = "http://www.online-resource.com",
howpublished = "XYZ",
urldate = "2019-05-04",
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Reference book \parencite{book1}. \\
I want footnotes for online resources like that \footnote{John Doe. \textit{Title of Online Reference}. http://www.online-resource.com (accessed 04.05.2019)} instead of \parencite{online1}.
\printbibliography
\end{document}
我想用 bib-entry 中的值创建一个脚注,例如\addfootcite{online1}
应该创建结果中显示的脚注,但是不是将它们添加到参考书目中。
答案1
您可以使用 定义新\...cite
命令\DeclareCiteCommand
。通常,此类命令定义的主要部分位于 bibmacro 中。
虽然最好有一个统一的引用命令,用于所有引用,并根据条目类型自动选择要执行的操作,但我选择了一种更手动的解决方案,即通过使用不同的\...cite
命令强制执行特定输出。统一\...cite
命令的实现会困难得多,因为它必须妥善处理不同类型的多个引用。这需要在实际引用处理之前进行预处理步骤。
此处的新命令显示的详细信息比\footfullcite
应显示的内容要少。由于新命令引用的条目未出现在参考书目中,因此显示更多详细信息可能会很有用,但您可以在 bibmacro 中自定义确切的输出。
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=numeric, defernumbers, backend=biber]{biblatex}
\usepackage{hyperref}
\newbibmacro{semifullcite}{%
\printnames{labelname}%
\setunit{\printdelim{nametitledelim}}%
\printfield[citetitle]{labeltitle}%
\newunit
\usebibmacro{url+urldate}}
\DeclareBibliographyCategory{nobib}
\DeclareCiteCommand{\nobibsemifullfootcite}[\mkbibfootnote]
{\usebibmacro{prenote}}
{\addtocategory{nobib}{\thefield{entrykey}}%
\usebibmacro{semifullcite}}
{\multicitedelim}
{\usebibmacro{postnote}}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{book1,
author = {Max Mustermann},
title = {My Book},
date = {1980},
isbn = {123456789},
}
@booklet{online1,
author = {John Doe},
title = {Title of Online Reference},
url = {http://www.online-resource.com},
howpublished = {XYZ},
urldate = {2019-05-04},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Reference book \parencite{book1}.
I want footnotes for online resources like that\nobibsemifullfootcite{online1}.
\printbibliography[notcategory=nobib]
\end{document}
对于字幕,使用标准方法可能会有所帮助\footnotemark
,\footnotetext
详见在图的 \caption 中使用 \footnote
\DeclareCiteCommand{\nobibsemifullfootcitetext}[\mkbibfootnotetext]
{\usebibmacro{prenote}}
{\addtocategory{nobib}{\thefield{entrykey}}%
\usebibmacro{semifullcite}}
{\multicitedelim}
{\usebibmacro{postnote}}
然后使用\footnotemark
–\nobibsemifullfootcitetext{sigfridsson}
如
\begin{figure}
\centering
\includegraphics{foo}
\caption[Caption for LOF]{Real caption\footnotemark}
\end{figure}
Anywhere on the same page where the float appears\nobibsemifullfootcitetext{sigfridsson}