我正在撰写论文,正在努力选择正确的引用样式。
我倾向于使用字母样式,因为我发现它易于阅读,并且如果引用是重复的,可以轻松回忆起引用指的是哪个参考文献,而无需检查脚注(我认为这很让人分心),甚至更糟的是论文的末尾(阅读 PDF 时情况还不算太糟,只需单击超链接,然后使用反向引用即可返回,但阅读打印文档时麻烦得多)。
不过,我希望可以添加脚注,提供更详细的参考。这样,当我有,比如说,
\autocite{AB12}
输出为 [AB12] 引用处,此外,还有类似
[AB12] 阿伯拉尔和巴金斯基,伪造文件(2012 年)
出现在脚注中。我该如何实现?
答案1
根据评论,我修改了我的答案,旧版本位于下方。
我们首先需要为无标记脚注定义一个新的包装器
\makeatletter
\newrobustcmd{\mkbibblfootnote}[1]{%
\iftoggle{blx@footnote}
{\blx@warning{Nested notes}%
\addspace\mkbibparens{#1}}
{\unspace
\ifnum\blx@notetype=\tw@
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi
{\csuse{blx@theendnote}{\protecting{\blxmkbibnote{end}{#1}}}}
{\csuse{blfootnote}{\protecting{\blxmkbibnote{foot}{#1}}}}}}
\newcommand\blfootnote[1]{\begingroup\let\thefootnote\relax\footnotetext{#1}\endgroup}
\makeatother
\megafullcite
现在打印字母标签,如果这是第一次引用该作品 - 对于该功能,我们需要citetracker
其任何一种风格(参见§3.1.2.3,第 54 页biblatex
文档);在 MWE 中我选择了strict
-,还打印了一个无标记的脚注,其中包含字母标签、作者姓名、年份和标题。
脚注\megafullcite{wilde}
是
[Wil99] 王尔德(1899),《认真的重要性》:一部写给严肃人士的琐碎喜剧。
\DeclareCiteCommand{\megafullcite}
{\usebibmacro{prenote}}
{\mkbibbrackets{\usebibmacro{cite}}%
\ifciteseen{}
{\mkbibblfootnote{%
\mkbibbrackets{\usebibmacro{cite}}%
\setunit{\addspace}%
\usebibmacro{morecite}}}}
{\multicitedelim}
{\usebibmacro{postnote}}
\newbibmacro*{morecite}{%
\printnames{labelname}%
\setunit{\addspace}%
\printfield[parens]{year}%
\setunit{\nametitledelim}%
\printfield[citetitle]{labeltitle}}
平均能量损失
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[british]{babel}
\usepackage{csquotes}
\usepackage[style=alphabetic,backend=biber,citetracker=strict]{biblatex}
\usepackage{hyperref}
\addbibresource{biblatex-examples.bib}
\makeatletter
\newrobustcmd{\mkbibblfootnote}[1]{%
\iftoggle{blx@footnote}
{\blx@warning{Nested notes}%
\addspace\mkbibparens{#1}}
{\unspace
\ifnum\blx@notetype=\tw@
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi
{\csuse{blx@theendnote}{\protecting{\blxmkbibnote{end}{#1}}}}
{\csuse{blfootnote}{\protecting{\blxmkbibnote{foot}{#1}}}}}}
\newcommand\blfootnote[1]{\begingroup\let\thefootnote\relax\footnotetext{#1}\endgroup}
\makeatother
\DeclareCiteCommand{\megafullcite}
{\usebibmacro{prenote}}
{\mkbibbrackets{\usebibmacro{cite}}%
\ifciteseen{}
{\mkbibblfootnote{%
\mkbibbrackets{\usebibmacro{cite}}%
\setunit{\addspace}%
\usebibmacro{morecite}}}}
{\multicitedelim}
{\usebibmacro{postnote}}
\newbibmacro*{morecite}{%
\printnames{labelname}%
\setunit{\addspace}%
\printfield[parens]{year}%
\setunit{\nametitledelim}%
\printfield[citetitle]{labeltitle}}
\begin{document}
Lorem ipsum \megafullcite{wilde} again \megafullcite{wilde}.
Lorem ipsum \megafullcite{wilde,cicero}.
Lorem ipsum \megafullcite{baez/article,baez/online}.
\printbibliography
\end{document}
这是答案的旧版本,它实现了更详细的版本\fullcite
我们可以定义两个新的引用命令
\megafootfullcite
将在脚注中打印字母标签和完整的参考书目条目。
\DeclareCiteCommand{\megafootfullcite}[\mkbibfootnote]
{\usebibmacro{prenote}}
{\mkbibbrackets{\usebibmacro{cite}}%
\setunit{\addspace}%
\usedriver
{\DeclareNameAlias{sortname}{default}}
{\thefield{entrytype}}}
{\multicitedelim}
{\usebibmacro{postnote}}
所以\megafootfullcite{wilde}
给出了内容的脚注
[Wil99] 奥斯卡·王尔德。《认真的重要性:一部写给严肃人士的琐碎喜剧》。伦纳德·史密瑟斯出版社,1899 年。
\megafullcite
在文本中打印字母标签并为完整的参考书目条目添加脚注。
\DeclareCiteCommand{\megafullcite}
{\usebibmacro{prenote}}
{\mkbibbrackets{\usebibmacro{cite}}%
\mkbibfootnote{\usedriver
{\DeclareNameAlias{sortname}{default}}%
{\thefield{entrytype}}}}
{\multicitedelim}
{\usebibmacro{postnote}}
或者
\DeclareCiteCommand{\megafullcite}
{\usebibmacro{prenote}}
{\mkbibbrackets{\usebibmacro{cite}}%
\mkbibfootnote{%
\mkbibbrackets{\usebibmacro{cite}}%
\setunit{\addspace}%
\usedriver
{\DeclareNameAlias{sortname}{default}}%
{\thefield{entrytype}}}}
{\multicitedelim}
{\usebibmacro{postnote}}
以上两个版本的不同之处在于后者会将字母标签也放入脚注中,而前者不会在脚注中重复标签。
平均能量损失
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[british]{babel}
\usepackage{csquotes}
\usepackage[style=alphabetic]{biblatex}
\usepackage{hyperref}
\addbibresource{biblatex-examples.bib}
\DeclareCiteCommand{\megafootfullcite}[\mkbibfootnote]
{\usebibmacro{prenote}}
{\mkbibbrackets{\usebibmacro{cite}}%
\setunit{\addspace}%
\usedriver
{\DeclareNameAlias{sortname}{default}}%
{\thefield{entrytype}}}
{\multicitedelim}
{\usebibmacro{postnote}}
\DeclareCiteCommand{\megafullcite}
{\usebibmacro{prenote}}
{\mkbibbrackets{\usebibmacro{cite}}%
\mkbibfootnote{\usedriver
{\DeclareNameAlias{sortname}{default}}%
{\thefield{entrytype}}}}
{\multicitedelim}
{\usebibmacro{postnote}}
\begin{document}
Lorem ipsum\megafootfullcite{wilde} and \megafullcite{wilde}.
Lorem ipsum\megafootfullcite{wilde,cicero} and \megafullcite{wilde,cicero}.
\printbibliography
\end{document}