新的 .bib 字段将使用 fullauthor 代替 author

新的 .bib 字段将使用 fullauthor 代替 author

在非常长的参考书目中,如果同一作者的名字在每条条目中略有不同,可能会非常烦人,尤其是当出版物以作者姓名下的列表形式出现时。另一方面,我们需要出版物上显示的正确数据。

因此,我想要一个可选字段,我们称之为fullauthor,我只需在其中添加单个条目中的所有信息。对于我的工作书目,我希望能够将其设置fullauthor = true为 选项biblatex,否则我将不执行任何操作,在这种情况下 -fieldfullauthor将被忽略。

% -*- mode: latex; TeX-engine: luatex; coding: utf-8; -*-
\RequirePackage{kvoptions-patch}
\RequirePackage{xpatch}
\documentclass[english]{scrartcl}
\PreventPackageFromLoading{fixltx2e}
\PassOptionsToPackage{no-math}{fontspec}
\usepackage[main=english,ngerman,french]{babel}
\usepackage[style=english]{csquotes}
\usepackage{filecontents}
\usepackage{letltxmacro}
\usepackage{luatextra}
\defaultfontfeatures[\rmfamily,\sffamily]{Ligatures=TeX,Ligatures=Common}
\setmainfont{TeX GyrePagella X}
\setsansfont{TeX Gyre Heros}
\setmonofont{TeX Gyre Cursor}[Ligatures=TeX]
\usepackage[style=philosophy-modern,sortlocale=auto,sorting=nyvt,%
            bibencoding=utf8,backend=biber,ibidtracker=constrict,%
            idemtracker=constrict,clearlang=true]{biblatex}
\addbibresource[datatype=bibtex,type=file]{fullauthorname.bib}

\begin{document}
\begin{filecontents}{fullauthorname.bib}
@Article{Dude:White,
  author =   {{The Dude}},
  sortname =     {Dude},
  gender =   {sm},
  % fullauthor =     {Lebowski \mkbibbrackets{Slakyech}, \RN{2}
  %                 \mkbibparens{\mkbibquote{The Dude}},
  %                 Jeff\mkbibbrackets{rey} \mkbibbrackets{Robert}},
  sortname =     {Lebowski, Jeffrey},
  title =    {Making White Russian Even Better},
  journaltitle = {Slackers Quarterly},
  year =     1973,
  volume =   3,
  number =   2,
  pages =    {7-32}
}

@Thesis{Lebowski:Writing,
  author =   {Lebowski, \RN{2}, Jeffrey R\mkbibbrackets{obert}},
  gender =   {sm},
  % fullauthor =     {Lebowski \mkbibbrackets{Slakyech}, \RN{2}
  %                 \mkbibparens{\mkbibquote{The Dude}},
  %                 Jeff\mkbibbrackets{rey} \mkbibbrackets{Robert}},
  title =    {On Not Writing Anything at All},
  type =     {phdthesis},
  institution =  {University of Los Botellos},
  year =     1970,
  location =     {Los Angeles},
  pagetotal =    {1}
}

@Unpublished{Lebowski:Letter,
  author =   {Jeff Lebowski},
  gender =   {sm},
  % fullauthor =     {Lebowski \mkbibbrackets{Slakyech}, \RN{2}
  %                 \mkbibparens{\mkbibquote{The Dude}},
  %                 Jeff\mkbibbrackets{rey} \mkbibbrackets{Robert}},
  title =    {Leave me alone \mkbibbrackets{Letter to Maude
                  Lebowski}},
  date =     {1974-09-06},
  location =     {Los Angeles}
}
\end{filecontents}

\nocite{*}
\printbibliography
\end{document}

答案1

我建议你使用 Sourcemapping。fullauthor在参考书目中给出全名,fullciteauthor在引用中给出名称。然后

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map[overwrite=true]{
      \step[fieldsource=fullauthor, final]
      \step[fieldset=author, origfieldval]
      \step[fieldsource=fullciteauthor, final]
      \step[fieldset=shortauthor, origfieldval]
    }
  }
}

和...一起

@Article{Dude:White,
  author         = {{The Dude}},
  gender         = {sm},
  fullauthor     = {Lebowski \mkbibbrackets{Slakyech}, \RN{2}
                    \mkbibparens{\mkbibquote{The Dude}},
                    Jeff\mkbibbrackets{rey} \mkbibbrackets{Robert}},
  fullciteauthor = {Jeff Lebowski},                   
  title          = {Making White Russian Even Better},
  journaltitle   = {Slackers Quarterly},
  year           = 1973,
  volume         = 3,
  number         = 2,
  pages          = {7-32}
}

给你你想要的。

在关卡中进行fullauthor替换将会复杂得多。authorbiblatex

相关内容