在非常长的参考书目中,如果同一作者的名字在每条条目中略有不同,可能会非常烦人,尤其是当出版物以作者姓名下的列表形式出现时。另一方面,我们需要出版物上显示的正确数据。
因此,我想要一个可选字段,我们称之为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
替换将会复杂得多。author
biblatex