对于所有包含多位编辑的书目项目,我必须按照多位编辑的姓名顺序打印,就像打印多位作者的姓名顺序一样。对于作者,我让它正常工作(参见这里),但是这不包括多个编辑器的情况(除非我犯了错误?)。
代表性书目项目的相关部分目前看起来像
GER Lloyd/GEL Owen(编辑)
但必须如此
Lloyd, GER/Owen, GEL(编辑)
平均能量损失
\documentclass[
12pt,
a4paper
]
{scrreprt}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
%\usepackage[english]{babel}
\usepackage[
language=auto,
style=authoryear,
backend=bibtex,
isbn=false,
doi=false,
citereset=chapter,
maxcitenames=3,
dashed=false,
sorting=nyt,
firstinits=true,
terseinits=false
maxbibnames=99,
uniquename=init
]{biblatex}
\renewbibmacro*{byeditor+others}{%
\ifnameundef{editor}
{}
{\printnames[byeditor]{editor}%
\setunit{\addspace}%
\usebibmacro{byeditor+othersstrg}%
\clearname{editor}%
\newunit}%
\usebibmacro{byeditorx}%
\usebibmacro{bytranslator+others}}
\usepackage{xpatch}
\xpatchbibmacro{byeditor+othersstrg}{\printtext}{\printtext[parens]}{}{}
\begin{filecontents*}{lit.bib}
@InCollection{brandt,
options = {useprefix=false},
hyphenation = {german},
indexsorttitle = {Nordischen Lander von der Mitte des 11. Jahrhunderts bis 1448},
author = {von Brandt, Ahasver and Erich Hoffmann},
editor = {Ferdinand Seibt},
indextitle = {Nordischen L{\"a}nder von der Mitte des 11.~Jahrhunderts bis 1448, Die},
title = {Die nordischen L{\"a}nder von der Mitte des 11.~Jahrhunderts bis 1448},
shorttitle = {Die nordischen L{\"a}nder},
booktitle = {Europa im Hoch- und Sp{\"a}tmittelalter},
series = {Handbuch der europ{\"a}ischen Geschichte},
number = {2},
publisher = {Klett-Cotta},
location = {Stuttgart},
date = {1987},
pages = {884--917},
annotation = {An \texttt{incollection} entry with a \texttt{series} and a \texttt{number}.
Note the format of the printed name and compare the \texttt{useprefix} option in
the \texttt{options} field as well as \texttt{vangennep}. Also note the
\texttt{indextitle, and \texttt{indexsorttitle} fields}}
}
@InProceedings{moraux,
keywords = {secondary},
hyphenation = {french},
indexsorttitle = {De Anima dans la tradition grecque},
author = {Moraux, Paul},
editor = {Lloyd, G. E. R. and Owen, G. E. L.},
indextitle = {\emph{De Anima} dans la tradition gr{\`e}cque, Le},
title = {Le \emph{De Anima} dans la tradition gr{\`e}cque},
subtitle = {Quelques aspects de l'interpretation du trait{\'e}, de Theophraste {\`a}
Themistius},
shorttitle = {\emph{De Anima} dans la tradition gr{\`e}cque},
booktitle = {Aristotle on Mind and the Senses},
booktitleaddon = {Proceedings of the Seventh Symposium Aristotelicum},
eventdate = {1975},
publisher = cup,
location = {Cambridge},
date = {1979},
pages = {281--324},
annotation = {This is a typical \texttt{inproceedings} entry. Note the \texttt{booksubtitle},
\texttt{shorttitle}, \texttt{indextitle}, and \texttt{indexsorttitle} fields.
Also note the \texttt{eventdate} field.}
}
\end{filecontents*}
\addbibresource{lit.bib}
\DeclareNameAlias{sortname}{last-first}
\renewcommand{\multinamedelim}{\addslash}
\renewcommand{\finalnamedelim}{\addslash}
\begin{document}
\chapter{First Chapter}
\begin{itemize}
\item For the case of multiple editors, these are just some words.\footcite[Cp.][p. xi]{moraux}. This currently looks like
\begin{verbatim}
G. E. R. Lloyd/G. E. L. Owen (ed. by)
\end{verbatim}
but I must have
\begin{verbatim}
Lloyd, G. E. R./Owen, G. E. L. (ed. by)
\end{verbatim}
\end{itemize}
\printbibliography
\end{document}
答案1
名称的格式由命令\DeclareNameFormat
和指定\DeclareNameAlias
。默认定义在里面完成biblatex.def
。
该文件的相关部分是:
biblatex.def
% Used in the bibliography
\DeclareNameAlias{sortname}{last-first/first-last}
\DeclareNameAlias{author}{default}
\DeclareNameAlias{bookauthor}{author}
\DeclareNameAlias{editor}{default}
\DeclareNameAlias{editora}{editor}
\DeclareNameAlias{editorb}{editor}
\DeclareNameAlias{editorc}{editor}
\DeclareNameAlias{translator}{default}
\DeclareNameAlias{byauthor}{default}
\DeclareNameAlias{bybookauthor}{byauthor}
\DeclareNameAlias{byeditor}{default}
\DeclareNameAlias{byeditora}{byeditor}
\DeclareNameAlias{byeditorb}{byeditor}
\DeclareNameAlias{byeditorc}{byeditor}
\DeclareNameAlias{bytranslator}{default}
\DeclareNameAlias{withcommentator}{default}
\DeclareNameAlias{withannotator}{default}
\DeclareNameAlias{withintroduction}{default}
\DeclareNameAlias{withforeword}{default}
\DeclareNameAlias{withafterword}{default}
如您所见,大多数名称格式都是采用默认名称格式完成的,其含义如下:\DeclareNameAlias{default}{first-last}
。
使用该样式authoryear
意味着发生以下重新定义:
\DeclareNameAlias{author}{sortname}
\DeclareNameAlias{editor}{sortname}
\DeclareNameAlias{translator}{sortname}
因此,要改变一切,last-first
你只需要:
\DeclareNameAlias{sortname}{last-first}
\DeclareNameAlias{default}{last-first}