biblatex-ieee 和 supra note

biblatex-ieee 和 supra note

我知道这是很紧急的通知(我曾在LaTeX 社区),但我周一要交一篇论文,而我和论文准备(布局方面)之间只差一件事:我使用了biblatex一种稍微调整过的biblatex-ieee风格(可能不是最理想的,但我的论文导师有非常具体的指示,而且这是最接近的),我这样称呼它:

\usepackage[bibstyle=ieee,citestyle=authoryear,backref=false,hyperref=false]{biblatex}

\footfullcite但问题是我需要用“上文注释”替换已经引用的项目。例如,如果在脚注 ( ) 17中将 Belloni 称为:

17.R. Belloni,“达尔富尔的悲剧与‘保护责任’的局限性”,《民族政治》,第 5 卷,第 4 期,2006 年 11 月,第 327-346 页。

我希望将来对同一作者和文章的引用看起来像(例如在脚注 24 中,我指定了文章的页面):

24.R. Belloni,上文注 17,第 17 页。 336.

任何想法?

提前谢谢您!

附言:实际上,看起来“citestyle”可以被删除或修改,而无需做任何更改。我想这本身就不正常……

答案1

使用citestyle=verbose-note并加上以下修改。

\documentclass{article}

\usepackage[bibstyle=ieee,citestyle=verbose-note,firstinits=true]{biblatex}

\DefineBibliographyStrings{english}{%
  seenote = {supra note},
}

% Print first name of authors in follow-up notes
\makeatletter
\renewbibmacro*{footcite:note}{%
  \ifnameundef{labelname}
    {\printfield{label}}
%     {\printnames{labelname}}% DELETED
    {\DeclareNameAlias{labelname}{default}% NEW
     \printnames{labelname}}% NEW
  \ifsingletitle
    {}
    {\setunit*{\nametitledelim}%
     \printfield[title]{labeltitle}}%
  \setunit*{\addcomma\space}%
  \printtext{%
    \bibstring{seenote}\addnbspace
    \ref{cbx@\csuse{cbx@f@\thefield{entrykey}}}%
    \iftoggle{cbx:pageref}
      {\ifsamepage{\the\value{instcount}}
                  {\csuse{cbx@f@\thefield{entrykey}}}
         {}
     {\addcomma\space\bibstring{page}\addnbspace
      \pageref{cbx@\csuse{cbx@f@\thefield{entrykey}}}}}
      {}}}
\makeatother

% AS A MEASURE OF LAST RESORT, assign the functions of \autocite to \footfullcite
%     (The correct way is to replace every instance of "\footfullcite"  in the text
%     with "\autocite")
\let\footfullcite\autocite

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@article{Bel06,
  author = {Belloni, Roberto},
  year = {2006},
  title = {The tragedy of Darfur and the limits of the `responsibility to protect'},
  journaltitle = {Ethnopolitics},
  volume = {5},
  number = {4},
  pages = {327--346},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}

Some text \footfullcite{Bel06}.

Some text \footfullcite[336]{Bel06}.

\printbibliography

\end{document}

(filecontents 环境仅用于将一些外部文件直接包含到示例中,以便进行编译。对于解决方案来说,它不是必需的。)

编辑:经过大量评论后,这是 OP 最后一刻请求的代码:

\DeclareCiteCommand{\smartcite}[\iffootnote\relax\mkbibfootnote]
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \iffootnote
     {\usebibmacro{footcite}}
     {\usebibmacro{cite}}}
  {\multicitedelim}
  {\usebibmacro{cite:postnote}}

相关内容