在脚注中引用内联“作者年份”和“标题 - 期刊名称”

在脚注中引用内联“作者年份”和“标题 - 期刊名称”

这个问题与行内引用作者,脚注引用年份。然而,受访者在定制 Year 的行为方面付出了相当大的努力。我想保留 biblatex 的默认行为并定制仅有的字段出现的位置。

这就是我要的:

正如 Feynman 1975 1所描述的,我们发现 lorem ipsem dolor。类似地,Schrodinger 1954 2发现了 doe re mi fa so la。

在脚注中我们有:

1超类对称性;1975 年。物理评论快报
2寻找我的猫;1954 年。失踪动物日记

因此,元问题是,如何在不修改的情况下自定义哪些字段是内联打印,哪些是脚注打印同上行为?


编辑


鉴于下面的@Jon 评论 - 让我们缩小范围以仅修改以下字段:

  1. 第一作者姓氏
  2. 出版于
  3. 标题

\autocite 应该给出:
排队:第一作者姓氏年份#
脚注:#标题 出版年份

答案1

这可以通过对 cite 宏进行小幅修改来实现(我们authoyear-ibid在这里假设)

\renewbibmacro*{cite}{%
  \global\boolfalse{cbx:loccit}%
  \iffieldundef{shorthand}
    {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
       {\usebibmacro{cite:ibid}}
       {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
          {\usebibmacro{cite:label}%
           \setunit{\printdelim{nonameyeardelim}}}
          {\printnames{labelname}%
           \setunit{\printdelim{nameyeardelim}}}%
        \usebibmacro{cite:labeldate+extradate}}}
    {\usebibmacro{cite:shorthand}}%
  \ifentrytype{article}
    {\mkbibfootnote{\usebibmacro{cite:extrainfo:article}}}
    {}}

您可以\ifentrytype{article}\ifboolexpr{not test {\ifciteibid} and test {\ifentrytype{article}}}或 甚至 来替换\ifboolexpr{not test {\ifciteseen} and test {\ifentrytype{article}}}(对于最后一个建议,您需要启用citetracker)。

新宏cite:extrainfo:article在哪里

\newbibmacro{cite:extrainfo:article}{%
  \printfield[citetitle]{labeltitle}%
  \newunit
  \printlabeldateextra
  \newunit
  \usebibmacro{journal+issuetitle}%
}

MWE 与\ifboolexpr{not test {\ifciteseen} and test {\ifentrytype{article}}}

\documentclass{article}
\usepackage[style=authoryear-ibid, backend=biber, citetracker=true, giveninits=true, uniquename=init]{biblatex}
\addbibresource{biblatex-examples.bib}

\newbibmacro{cite:extrainfo:article}{%
  \printfield[citetitle]{labeltitle}%
  \newunit
  \printlabeldateextra
  \newunit
  \usebibmacro{journal+issuetitle}%
}

\renewbibmacro*{cite}{%
  \global\boolfalse{cbx:loccit}%
  \iffieldundef{shorthand}
    {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
       {\usebibmacro{cite:ibid}}
       {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
          {\usebibmacro{cite:label}%
           \setunit{\printdelim{nonameyeardelim}}}
          {\printnames{labelname}%
           \setunit{\printdelim{nameyeardelim}}}%
        \usebibmacro{cite:labeldate+extradate}}}
    {\usebibmacro{cite:shorthand}}%
  \ifboolexpr{not test {\ifciteseen} and test {\ifentrytype{article}}}
    {\mkbibfootnote{\usebibmacro{cite:extrainfo:article}}}
    {}}


\begin{document}
\cite{sigfridsson} and \cite{geer} and \cite{sigfridsson} and \cite{worman} and \cite{baez/article}  and \cite{baez/article}
\end{document}

文本和脚注的示例输出

编辑代码已针对biblatexv3.8 及更新版本进行了现代化处理。请参阅旧版本的编辑历史。

相关内容