Biblatex / Biber 仅针对第一次出现的完整引用

Biblatex / Biber 仅针对第一次出现的完整引用

我正在从 BibTeX 切换到 BibLaTeX/biber。我搜索了好久,但似乎找不到/搞清楚如何以特定方式设置引文样式,希望得到一些帮助。

我使用 tufte-latex 包,因此引文出现在页边空白处。我希望第一次出现的引文给出完整的引文,即作者、标题、出版商、年份,而该项目的其余引文仅给出数字引文,即作者 [引文编号]。

我目前的 biblatex 选项是:

\usepackage[
natbib=true,
bibstyle=numeric, 
block=nbpar, 
citestyle=numeric, 
backend=biber
]{biblatex}

文本中有两种类型的引用,一种是作为其自己的边注出现的标准引用,另一种是出现在边注中的引用。为了适应这种情况,我使用 BibLaTeX 命令\textcite{}来引用边注中的引用(给出“作者 [引用编号]”),并\autocite{}使用自动引用来引用标准引用,其定义如下。

\renewcommand{\autocite}[1]{\sidenote{\textcite{#1}}}

但是同样,我想要的是有这种设​​置(或类似的设置),但每个引用的首次出现都提供完整的引用(作者、标题、出版物、年份等),其余部分则回到我当前拥有的数字版本。

这可能吗?

答案1

使用修改后的tufte-common.def文件您可以tufte-latex使用 创建文档biblatex。限制是tufte-latex修改脚注。因此,biblatex诸如\smartcite脚注内部和脚注检测等功能\iffootnote可能无法按预期工作。大部分内容已在另一篇帖子

textcite至于引用样式,您可以通过对参考书目宏和进行一些编辑来实现大部分功能\smartcite。这两者都在中定义numeric.cbx

\documentclass[nobib]{tufte-handout}
\usepackage{hyphenat}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=numeric,citetracker=true,autocite=footnote]{biblatex}

\makeatletter

% If not seen, avoid compact lists and print full citation
\renewbibmacro*{textcite}{%
  \ifciteseen
    {}
    {\clearfield{namehash}}%
  \iffieldequals{namehash}{\cbx@lasthash}
    {\multicitedelim}
    {\cbx@tempa
     \ifciteseen
       {\ifnameundef{labelname}
          {\printfield[citetitle]{labeltitle}}
          {\printnames{labelname}}}
       {\usedriver
          {\DeclareNameAlias{sortname}{default}%
           \clearfield{pages}%
           \clearfield{pagetotal}}
          {\thefield{entrytype}}}%
     \addspace\bibopenbracket}%
  \ifnumequal{\value{citecount}}{1}
    {\usebibmacro{prenote}}
    {}%
  \usebibmacro{cite}%
  \savefield{namehash}{\cbx@lasthash}%
  \gdef\cbx@tempa{\bibclosebracket\multicitedelim}}

% Make \smartcite like \textcite
\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibbrackets\mkbibfootnote]
  {\let\cbx@tempa=\empty
   \undef\cbx@lasthash}
  {\usebibmacro{citeindex}%
   \usebibmacro{textcite}}
  {}
  {\usebibmacro{postnote}%
   \bibclosebracket}

\makeatother

\addbibresource{biblatex-examples.bib}
\begin{document}
One of the most prominent and distinctive features of this style is the
extensive use of sidenotes \autocites(See)()[10--15]{knuth:ct:a}[10]{companion}.
There is a wide margin to provide ample room for sidenotes and small figures
\autocite{knuth:ct:a,knuth:ct:b}. Any footnotes will automatically be converted to
sidenotes.\footnote{Results from \textcite{knuth:ct:a,knuth:ct:b,companion} showed
that...}
\printbibliography
\end{document}

在此处输入图片描述

一些说明:

  • 选项autocite=footnote设置\autocite利用\smartcite其后端引用命令。
  • 测试\ifciteseen需要启用引文跟踪。本例中全局跟踪通过 启用citetracker=true。也可以使用其他设置。详情请参阅手册。
  • 完整的引文用 打印\usedriver。此命令的第一个参数允许您在打印之前挂接代码。这是使用\clearfield和 朋友抑制字段的好地方。在示例中,我抑制了pagespagetotal字段以避免与后记中的页面引用混淆。
  • 在 中numeric\textcite生成紧凑的引文列表。这使打印完整引文变得复杂。编辑采取了textcite一种简单的方法,只需将labelname或替换labeltitle为完整引文即可。
  • numeric样式并不特别适合此自定义。请参阅该verbose样式或其任何变体以获取一些更好的替代方案。

相关内容