“奇怪”的脚注书目需求

“奇怪”的脚注书目需求

我正在写论文,我的导师让我创建一个相当“奇怪”的参考书目样式(好吧,也许对你们中的某些人来说这很正常,但对我来说这真的很奇怪)。所以,他让我在段落中引用作者,同时创建一个包含论文完整参考书目的脚注(参见示例)。

在示例中,您将看到段内引用了爱因斯坦 (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}

在此处输入图片描述

发布的程序代码需要biblatex3.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

相关内容