使用“et Int”引文系統

使用“et Int”引文系統

我正在撰寫一份資助提案,其中資助機構為參考書目中的條目指定了以下節省空間的樣式:

有多位作者的出版物可以如下引用:第一作者、第二作者、最後作者。

顯然這不是資助機構發明的; “et Int”引用風格是在科學編輯早在 2003 年[1],顯然從那時起它就獲得了一些關注。但我一生都無法弄清楚如何在 Biblatex 中做到這一點(或者甚至可能做到這一點)。我是否忽略了手冊(3.7 版)中的某些內容,或者我需要推出自己的解決方案?

我知道你可以截短minbibnames使用和選項列印的名稱數量maxbibnames,但據我所知,截斷的名稱列表始終以固定字串「結尾等人。「(或任何參考書目風格中恰好出現的值andothers)。是否可以動態修改 的值,andothers使其成為「等整數, " 後面跟著正在列印的任何參考書目項目的最後一位作者(或編輯)的姓名?

[1] 謝爾蓋·A·格蘭多和傑弗裡·D·伯恩哈德。「第一作者、第二作者、等作者和最後作者」:生物醫學論文的建議引文系統。 科學編輯26(4):122–123,2003 年 7 月至 8 月。

答案1

不幸的是,這篇論文對於所提議的風格的實際細節並不太清楚,所以你暫時必須接受我的解釋。

如果「幹預作者」是兩個或多個作者(用「et int.」僅替換一個作者似乎不公平,我們不妨完整命名她),則此實現會在作者編號之後bbx:etinttrunc和最後一個作者之前忽略「幹預作者」。在範例中bbx:etinttrunc設定為兩個,如您的問題所示。

我認為如果 Biber 本身支持這一點,事情會變得更容易,但它也可以這樣工作。

微量元素

\documentclass[american]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=numeric, backend=biber, maxnames=999]{biblatex}

\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@inproceedings{cheshkov,
  author    = {Cheshkov, S. and Tajima, T. and Chiu, C. and Breitling, F.},
  title     = {Emittance control in Laser Wakefield Accelerator},
  booktitle = {American Institute of Physics Conference Series},
  date      = {2001-05},
  volume    = {569},
  pages     = {163-176},
}
@article{dehant,
  author = {Veronique Dehant and Bruce Banerdt and Philippe Lognonné and Matthias Grott
            and Sami Asmar and Jens Biele and Doris Breuer and François Forget 
            and Ralf Jaumann and Catherine Johnson and Martin Knapmeyer and Benoit Langlais
            and Le Feuvre, Mathieu and David Mimoun and Antoine Mocquet and Peter Read
            and Attilio Rivoldini and Oliver Romberg and Gerald Schubert and Sue Smrekar
            and Tilman Spohn and Paolo Tortora and Stephan Ulamec and Susanne Vennerstrøm},
  journal = {Planetary and Space Science},
  number  = {1},
  pages   = {123 - 145},
  title   = {Future {Mars} geophysical observatories for understanding its internal structure, rotation, and evolution},
  volume  = {68},
  year    = {2012},
}
\end{filecontents*}

\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

%\renewcommand*{\finalnamedelim}{\multinamedelim}

\NewBibliographyString{etint}
\DefineBibliographyStrings{english}{etint = {et\addabbrvspace int\adddot}}

\newcounter{bbx:etinttrunc}
\setcounter{bbx:etinttrunc}{2}
\newtoggle{bbx:showetint}
\DeclareNameFormat{given-family-etint}{%
  \ifnumequal{\value{listcount}}{1}
    {\toggletrue{bbx:showetint}}
    {}%
  \ifboolexpr{
    test {\ifnumless{\value{listcount}}{\value{bbx:etinttrunc}+1}}
    or test {\ifnumequal{\value{listcount}}{\value{liststop}}}
    or 
      ( test {\ifnumequal{\value{listcount}}{\value{bbx:etinttrunc}+1}}
        and test {\ifnumequal{\value{liststop}}{\value{bbx:etinttrunc}+2}})
    }
    {\ifgiveninits
       {\usebibmacro{name:given-family}
          {\namepartfamily}
          {\namepartgiveni}
          {\namepartprefix}
          {\namepartsuffix}}
        {\usebibmacro{name:given-family}
          {\namepartfamily}
          {\namepartgiven}
          {\namepartprefix}
          {\namepartsuffix}}}
    {\iftoggle{bbx:showetint}
       {\usebibmacro{name:delim}{\bibstring{etint}}%
        \bibstring{etint}%
        \togglefalse{bbx:showetint}}
       {}}%
  \usebibmacro{name:andothers}}

\DeclareNameAlias{sortname}{given-family-etint}
\DeclareNameAlias{author}{given-family-etint}
\DeclareNameAlias{editor}{given-family-etint}
\DeclareNameAlias{translator}{given-family-etint}

\begin{document}
\cite{aksin,worman,sigfridsson,companion,cotton,cheshkov,dehant}
\printbibliography
\end{document}

範例輸出


如果您必須在四位作者的作品中省略第三位作者,那麼您需要一個稍微簡單的\DeclareNameFormat{given-family-etint}.

\DeclareNameFormat{given-family-etint}{%
  \ifnumequal{\value{listcount}}{1}
    {\toggletrue{bbx:showetint}}
    {}%
  \ifboolexpr{
    test {\ifnumless{\value{listcount}}{\value{bbx:etinttrunc}+1}}
    or test {\ifnumequal{\value{listcount}}{\value{liststop}}}}
    {\ifgiveninits
       {\usebibmacro{name:given-family}
          {\namepartfamily}
          {\namepartgiveni}
          {\namepartprefix}
          {\namepartsuffix}}
        {\usebibmacro{name:given-family}
          {\namepartfamily}
          {\namepartgiven}
          {\namepartprefix}
          {\namepartsuffix}}}
    {\iftoggle{bbx:showetint}
       {\usebibmacro{name:delim}{\bibstring{etint}}%
        \bibstring{etint}%
        \togglefalse{bbx:showetint}}
       {}}%
  \usebibmacro{name:andothers}}

答案2

包中捆綁的作者日期和詳細樣式biblatex-archaeology提供了一個preservelastauthor完全滿足您要求的選項。表達式et Int由那裡的命令指示\finalnameellipsis

相關內容