我正在写论文,我的导师让我创建一个相当“奇怪”的参考书目样式(好吧,也许对你们中的某些人来说这很正常,但对我来说这真的很奇怪)。所以,他让我在段落中引用作者,同时创建一个包含论文完整参考书目的脚注(参见示例)。
在示例中,您将看到段内引用了爱因斯坦 (1906) 的论文,并且脚注中包含该论文的完整参考书目(请注意,参考书目也出现在参考文献部分)。
我在网上做了一些研究,知道我们可以使用 biblatex 包来创建 footcite。但是,我无法同时创建 footcite 和段落内引用。在示例中,我必须手动输入作者年份引用(当然,在我的论文中,有很多引用,我无法通过手动方法跟踪所有引用)。
我想知道是否有任何系统的方法来引用这两种风格?
\RequirePackage{filecontents}
\begin{filecontents}{bib.bib}
@article{enistein,
title={On the theory of brownian movement},
author={Enistein, A},
journal={Ann. d. Phys},
volume={19},
pages={371},
year={1906}
}
\end{filecontents}
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[
backend=biber,
style=alphabetic,
citestyle=authoryear ,
backend=bibtex,
style=verbose
]{biblatex}
\addbibresource{bib.bib} %Imports bibliography file
\begin{document}
\section{First section}
\vfill
The paper of Enistein (1906) \footcite{enistein}
\medskip
\printbibliography
\end{document}
答案1
最简单的解决方案可能是使用authoryear
样式并修改其cite
宏以打印\footfullcite
源
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[
backend=biber,
style=authoryear,
]{biblatex}
\addbibresource{biblatex-examples.bib}
\renewbibmacro*{cite}{%
\iffieldundef{shorthand}
{\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
{\usebibmacro{cite:label}%
\setunit{\printdelim{nonameyeardelim}}}
{\printnames{labelname}%
\setunit{\printdelim{nameyeardelim}}}%
\usebibmacro{cite:labeldate+extradate}}
{\usebibmacro{cite:shorthand}}%
\footfullcite{\thefield{entrykey}}}
\begin{document}
\cite{sigfridsson}
\printbibliography
\end{document}
发布的程序代码需要biblatex
3.8 或更新版本(可以修改以适用于旧版本)。它还使用 Biber 作为后端,但如果绝对必要,也可以与 BibTeX 一起使用。
如果你想要一个更短的脚注,你可以\footfullcite
用一组更具体的命令来替换,例如
\makeatletter
\renewbibmacro*{cite}{%
\iffieldundef{shorthand}
{\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
{\usebibmacro{cite:label}%
\setunit{\printdelim{nonameyeardelim}}}
{\printnames{labelname}%
\setunit{\printdelim{nameyeardelim}}}%
\usebibmacro{cite:labeldate+extradate}}
{\usebibmacro{cite:shorthand}}%
\mkbibfootnote{%
\def\blx@delimcontext{bib}%
\printnames{labelname}%
\setunit{\printdelim{nameyeardelim}}%
\iffieldundef{labelyear}
{}
{\printtext[parens]{\printlabeldateextra}}%
\setunit{\printdelim{nametitledelim}}%
\printfield[citetitle]{labeltitle}}}
\makeatother