我遇到一个问题,如果我的几本书的作者和编辑是同一个人,Biblatex 会将编辑标签与他的名字联系起来,而不是与特定的书联系起来。
我的意思是:
这里列出的第一本书是最古老的一本(没关系)
Grillmeier 是这本书的第一本编辑,因此在这本书的名字前应该写上 (Hrsg.),就像他担任编辑的所有其他书一样。
问题是:
**这个(Hrsg.)不应该放在冒号之前,而应该放在冒号之后!**
它不应该是:
Grillmeier,Alois(Hrsg。):
但它应该是:
Grillmeier,Alois: (人力资源):
这样,人们会觉得 Grillmeier 在这里只是作为编辑列出,但事实并非如此,因为对于条目 4-5 以及最后一条条目,他都是作者。
所以我需要找到一种方法在作者名字后面和 (Hrsg.) 前面添加冒号。
\documentclass[a4paper,11pt]{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage{csquotes}
\usepackage{blindtext}
\usepackage{filecontents}
\usepackage{hyperref}
\hypersetup{
colorlinks,
citecolor=black,
filecolor=black,
linkcolor=black,
urlcolor=black
}
\usepackage{chngcntr}
\counterwithin*{footnote}{section}
\begin{filecontents}{\jobname.bib}
@incollection{grillmeier1992,
Address = {Innsbruck and Wien},
Author = {Alois Grillmeier},
Booktitle = {Chalcedon und die Folgen: Festschrift 60. Geburtstag von Bischof Mesrob K. Krikorian},
Call-Number = {TH: Dc 1.100},
Date-Added = {2016-02-03 12:53:52 +0000},
Date-Modified = {2017-12-08 13:49:43 +0000},
Editor = {Rudolf Kirchschl{\"a}ger and Alfred Stirnemann},
Keywords = {secondary},
Pages = {215-242},
Publisher = {Tyrolia Verlag},
Title = {Die Rezeption des Konzils von Chalzedon durch die r{\"o}misch-katholische Kirche},
Year = {1992}}
@book{grillmeier1989,
Address = {Freiburg and Basel and Wien},
Call-Number = {TH: Dq1.175 2/3},
Date-Added = {2014-07-24 15:28:40 +0000},
Date-Modified = {2017-12-16 15:00:12 +0000},
Editor = {Alois Grillmeier},
Keywords = {secondary},
Publisher = {Herder},
Title = {Jesus der Christus im Glauben der Kirche},
Volume = {2: Die Kirche von Konstantinopel im 6. Jahrhundert},
Year = {1989}}
@incollection{engberding1953,
Address = {W{\"u}rzburg},
Author = {Hieronymus Engberding},
Booktitle = {Das Konzil von Chalkedon: Geschichte und Gegenwart},
Call-Number = {TH: Ef VI 14/2},
Date-Added = {2013-11-01 13:12:17 +0000},
Date-Modified = {2013-11-01 13:17:37 +0000},
Editor = {Alois Grillmeier},
Keywords = {secondary},
Number = {II},
Pages = {697-733},
Publisher = {Echter Verlag},
Shortauthor = {Engberding},
Shorttitle = {Das chalkedonische Christusbild},
Title = {Das chalkedonische Christusbild und die Liturgien der monophysitischen Kirchengemeinschaften},
Year = {1953}}
@incollection{grillmeier1981,
Address = {Innsbruck and Wien},
Author = {Alois Grillmeier},
Booktitle = {Das gemeinsame Credo: 1600 Jahre seit dem Konzil von Konstantinopel},
Call-Number = {TH: Dc1.617},
Date-Added = {2013-08-27 16:30:48 +0000},
Date-Modified = {2017-12-16 15:01:08 +0000},
Editor = {Theodor Piffl-Percevic},
Keywords = {secondary},
Pages = {48-54},
Publisher = {Tyrolia Verlag},
Title = {Das nizaeno-konstantinopolitanische Glaubensbekenntnis},
Year = {1981}}
@book{grillmeier1951-54,
Address = {W{\"u}rzburg},
Call-Number = {TH: Ef VI 14/1-3},
Date-Added = {2013-08-23 09:57:03 +0000},
Date-Modified = {2017-12-08 08:06:02 +0000},
Editor = {Alois Grillmeier},
Keywords = {nocite},
Number = {I-III},
Publisher = {Echter Verlag},
Title = {Das Konzil von Chalkedon: Geschichte und Gegenwart},
Year = {1951-54}}
@book{grillmeier1954,
Address = {W{\"u}rzburg},
Call-Number = {TH: Ef VI 14/3},
Date-Added = {2012-02-21 15:06:42 +0100},
Date-Modified = {2017-12-08 08:05:59 +0000},
Editor = {Alois Grillmeier},
Keywords = {secondary},
Number = {III},
Publisher = {Echter Verlag},
Title = {Das Konzil von Chalkedon: Geschichte und Gegenwart},
Year = {1954}}
@book{grillmeier1975,
Address = {Freiburg/{\,}Basel/{\,}Wien},
Author = {Alois Grillmeier},
Call-Number = {TH: Ef III 97},
Date-Added = {2010-05-27 17:05:21 +0200},
Date-Modified = {2010-10-18 14:18:00 +0200},
Keywords = {secondary},
Publisher = {Herder},
Title = {Mit ihm und in ihm: Christologische Forschungen und Perspektiven},
Year = {1975}}
@book{grillmeier1951,
Address = {W{\"u}rzburg},
Call-Number = {TH: Ef VI 14/1},
Date-Added = {2010-04-21 10:36:53 +0200},
Date-Modified = {2017-12-08 08:06:05 +0000},
Editor = {Alois Grillmeier},
Keywords = {secondary},
Number = {I},
Publisher = {Echter Verlag},
Title = {Das Konzil von Chalkedon: Geschichte und Gegenwart},
Year = {1951}}
@book{grillmeier1990,
Address = {Freiburg and Basel and Wien},
Call-Number = {TH: Dq1.175 1/3},
Date-Added = {2010-03-12 14:00:25 +0100},
Date-Modified = {2017-12-16 15:00:07 +0000},
Edition = {3},
Editor = {Alois Grillmeier},
Keywords = {secondary},
Publisher = {Herder},
Title = {Jesus der Christus im Glauben der Kirche},
Volume = {1: Von der Apostolischen Zeit bis zum Konzil von Chalcedon (451)},
Year = {1990}}
@book{betz1979,
Address = {Freiburg/{\,}Basel/{\,}Wien},
Author = {Johannes Betz},
Call-Number = {TH: Dd 1.040/4,4a.b},
Date-Added = {2009-01-24 14:09:59 +0100},
Date-Modified = {2014-08-18 07:47:01 +0000},
Editor = {Michael Schmaus and Alois Grillmeier and Leo Schefffczyk and Michael Seybold},
Keywords = {secondary},
Number = {4},
Publisher = {Herder},
Series = {Handbuch der Dogmengeschichte},
Title = {Eucharistie in der Schrift und Patristik},
Year = {1979}}
\end{filecontents}
\usepackage[ngerman]{babel}
\usepackage[style=historische-zeitschrift, maxnames=2, hyperref=true, backref=true, backrefstyle=none, backend=bibtex,idemtracker=true]{biblatex}
\bibliography{\jobname}
% HISTORISCHE ZEITSCHRIFT - FIXING "( HRSG.)" TO " (HRSG.)"%
%
\makeatletter%
\renewbibmacro*{editorstrg}{%
\ifthenelse{\value{editor}>1\OR\ifandothers{editor}}%
{\bibstring[\mkbibparens]{editors}}%
{\bibstring[\mkbibparens]{editor}}}%
\makeatother%
%
% HISTORISCHE ZEITSCHRIFT - PUBLISHER IN BIBLIOGRAPHY NOT OMMITED%
%
\makeatletter%
\renewbibmacro*{publisher+location+year}{%
\printlist{location}:%
\setunit*{\addspace}%
\printlist{publisher}\addcomma%
\setunit*{\addspace}%
\printfield{year}%
\newunit}%
\makeatother%
%
% HISTORISCHE ZEITSCHRIFT - NO PAGES IN INCOLLECTION FOOTNOTES BUT PAGES IN BIBLIOGRAPHY%
%
\renewbibmacro*{chapter+pages}{%
\printfield{chapter}%
\newunit}%
%
% HISTORISCHE ZEITSCHRIFT - NO PAGES IN ARTICLE FOOTNOTES BUT PAGES IN BIBLIOGRAPHY%
%
\newbibmacro*{onlypages}{%
\printfield{chapter}%
\newunit}
\DeclareBibliographyDriver{article}{%
\usebibmacro{bibindex}%
\usebibmacro{author/editor}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\usebibmacro{byauthor}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byeditor+others}%
% \newunit\newblock
\setunit{\addcomma\space}%
\usebibmacro{in:}%
\usebibmacro{journal+issuetitle}%
% \newunit\newblock
\setunit*{\addcomma\space}%
\printfield{note}%
% \newunit\newblock
\setunit*{\newunitpunct}%
\usebibmacro{onlypages}%
\newunit\newblock%
\usebibmacro{doi+eprint+url}%
\newunit\newblock%
\printfield{addendum}%
\newunit\newblock
\usebibmacro{pageref}%
\usebibmacro{finentry}}
\AtBeginBibliography{%
\renewcommand*{\mkbibnamegiven}[1]{\textsc{#1}}
\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}
\renewcommand*{\mkbibnameprefix}[1]{\textsc{#1}}
\renewcommand*{\mkbibnamesuffix}[1]{\textsc{#1}}
\DeclareNameAlias{upshape}{family-given}
\renewcommand*{\labelnamepunct}{\addcolon\space}
\renewcommand*{\multinamedelim}{\addsemicolon\space}
\renewcommand*{\finalnamedelim}{\multinamedelim}
\DeclareNameAlias{sortname}{family-given}
\DeclareNameAlias{default}{family-given}
}
%
% HISTORISCHE ZEITSCHRIFT - ADDING ZITIERT AUF INSTEAD OF SIEHE S. IN BIBLIOGRAPHY
%
\DefineBibliographyStrings{ngerman}{
backrefpage = {Zitiert auf S\adddot},
backrefpages = {Zitiert auf S\adddot},
}
%
\begin{document}
\section{First section}
\blindtext\footcite[See][S. 56]{grillmeier1992}
\blindtext\footcite[See][S. 22]{grillmeier1989}
\blindtext\footcite[See][S. 56]{engberding1953}
\blindtext\footcite[See][S. 56]{grillmeier1990}
\pagebreak
\section{Second section}
\blindtext\footcite[See][S. 56]{grillmeier1981}
\blindtext\footcite[See][S. 56]{grillmeier1951-54}
\blindtext\footcite[See][S. 12]{grillmeier1954}
\blindtext\footcite[See][S. 56]{betz1979}
\pagebreak
\section{Third section}
\blindtext\footcite[See][S. 11]{grillmeier1975}
\blindtext\footcite[See][S. 56]{grillmeier1990}
\blindtext\footcite[See][S. 12]{grillmeier1951}
\pagebreak
\printbibliography
\end{document}
答案1
您想要的输出非常不寻常。尽管人们可能会错误地认为 Grillmeier 是他实际上是作者的作品的编辑,但问题中显示的默认输出并不更清晰。
\makeatletter
\renewbibmacro*{editor}{%
\ifboolexpr{
test \ifuseeditor
and
not test {\ifnameundef{editor}}
}
{\usebibmacro{bbx:dashcheck}
{\bibnamedash}
{\printnames{editor}%
\setunit{\addcolon\space}% <- ORIGINAL: \addcomma\space
\usebibmacro{bbx:savehash}}%
\usebibmacro{editorstrg}%
\clearname{editor}}
{\global\undef\bbx@lasthash}}
\makeatother
唯一需要改变的是\setunit{\addcolon\space}
而不是\setunit{\addspace}
。