
Ich versuche, einen Bibliographiestil mit zu finden biblatex-philosophy
. Das Format, das ich für eine Arbeit mit mehreren Herausgebern benötige, ist wie folgt:
Standardmäßig werden folgende biblatex-philosophy
Ausgaben philosophy-modern
ausgegeben:
Der Code lautet wie folgt:
\documentclass[11pt, parskip=false]{scrartcl}
% Bibliography preamble
\usepackage[giveninits=true,style=philosophy-modern, yearleft=true]{biblatex}
\addbibresource{testbib.bib}
\DeclareFieldFormat[online]{title}{#1}
\renewcommand{\postsep}{% Add comma to end of author section
\addcomma
\null\par\nobreak\vskip\postnamesep%
\hskip-\bibhang\ignorespaces}
\begin{document}
Sentence containing citation \parencite{example2018}.
\printbibliography
\end{document}
mit dieser .bib
Datei:
@book{example2018,
Edition = {4},
Publisher = {Penguin},
Title = {All Aboard the Good Ship Merriweather},
date = {1964},
Editor = {Stewart, Bryce and Karl Popper and Samantha Elizabeth O'Grady},
Location = {London}}
Wie kann das (Hrsg.) von Klammern und Punkt befreit und bei Bedarf an das Ende des Herausgeberabschnitts verschoben werden?
Der Blick ins Innere biblatex
hat biblatex-philosophy
mich nicht weitergebracht, da es besonders knifflig und außerhalb meiner Einflussmöglichkeiten zu sein scheint.
Antwort1
Das Folgende funktioniert gut, solange nicht die gleichen Autoren gleichzeitig Autoren für ein Werk und Herausgeber für ein anderes sind. Wenn Sie den Punkt für „eds“ entfernen möchten, müssen Sie die Bibstrings in neu definieren \DefineBibliographyStrings{english}
. Sehen Sie sich english.lbx
alle anderen Strings an, die Sie möglicherweise neu definieren müssen, wenn Sie sie verwenden. Es gibt , compiler
und viele andere Rollen.redactor
reviser
\documentclass[11pt, parskip=false]{scrartcl}
% Bibliography preamble
\usepackage[giveninits=true,style=philosophy-modern, yearleft=true, uniquename=init]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{example2018,
Edition = {4},
Publisher = {Penguin},
Title = {All Aboard the Good Ship Merriweather},
date = {1964},
Editor = {Stewart, Bryce and Karl Popper and Samantha Elizabeth O'Grady},
Location = {London}}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\DeclareFieldFormat[online]{title}{#1}
\renewcommand{\postsep}{% Add comma to end of author section
\addcomma
\null\par\nobreak\vskip\postnamesep%
\hskip-\bibhang\ignorespaces}
\DefineBibliographyStrings{english}{%
editor = {ed},
editors = {eds},
}
\DeclareFieldFormat{editortype}{#1}
\DeclareDelimFormat{editortypedelim}{\addcomma\space}
\DeclareFieldFormat{translatortype}{#1}
\DeclareDelimFormat{translatortypedelim}{\addcomma\space}
\makeatletter
\renewbibmacro*{bbx:editor}[1]{%
\ifboolexpr{%
test \ifuseeditor
and
not test {\ifnameundef{editor}}
}%
{\usebibmacro{bbx:dashcheck}%
{}%
{\printnames{editor}%
\usebibmacro{bbx:savehash}%
\setunit{\printdelim{editortypedelim}}%
\usebibmacro{#1}%
\clearname{editor}%
\postsep}%
\usebibmacro{date+extradate}}%
{\global\undef\bbx@lasthash
\usebibmacro{date+extradate}}}%
\renewbibmacro*{bbx:translator}[1]{%
\ifboolexpr{%
test \ifusetranslator
and
not test {\ifnameundef{translator}}
}%
{\usebibmacro{bbx:dashcheck}%
{}%
{\printnames{translator}%
\usebibmacro{bbx:savehash}%
\setunit{\printdelim{translatortypedelim}}%
\usebibmacro{#1}%
\clearname{translator}%
\postsep}%
\usebibmacro{date+extradate}}%
{\global\undef\bbx@lasthash
\usebibmacro{date+extradate}}}
\makeatother
\begin{document}
Sentence containing citation \parencite{example2018,sigfridsson,knuth:ct:a,knuth:ct:b}.
\printbibliography
\end{document}
Mitviel mehrMit etwas Aufwand können wir das Obige für verschiedene Rollen durch dieselbe Autorenliste sicher machen. Dabei wird jedoch immer noch keine Sortierung vorgenommen.
\documentclass[australian, 11pt, parskip=false]{scrartcl}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[giveninits=true,style=philosophy-modern, yearleft=true, uniquename=init]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{example2018,
Edition = {4},
Publisher = {Penguin},
Title = {All Aboard the Good Ship Merriweather},
date = {1964},
Editor = {Stewart, Bryce and Karl Popper and Samantha Elizabeth O'Grady},
Location = {London}}
@book{example2019,
Publisher = {Penguin},
Title = {Another Ship},
date = {2017},
author = {Stewart, Bryce and Karl Popper and Samantha Elizabeth O'Grady},
Location = {London}}
@book{example2020,
Publisher = {Penguin},
Title = {Bnunb},
date = {1960},
author = {Stewart, Bryce and Karl Popper and Samantha Elizabeth O'Grady},
Location = {London}}
@book{example2021,
Publisher = {Penguin},
Title = {Znub},
date = {1961},
author = {Stewart, Bryce and Karl Popper and Samantha Elizabeth O'Grady},
Location = {London}}
@book{example2022,
Publisher = {Penguin},
Title = {Znub},
date = {2018},
author = {Stewart, Bryce and Karl Popper and Samantha Elizabeth O'Grady},
Location = {London}}
@book{example2023,
Publisher = {Penguin},
Title = {Znub},
date = {2023},
tramslator = {Stewart, Bryce and Karl Popper and Samantha Elizabeth O'Grady},
editor = {Stewart, Bryce and Karl Popper and Samantha Elizabeth O'Grady},
Location = {London}}
@book{example2024,
Publisher = {Penguin},
Title = {Znub},
date = {2024},
translator = {Stewart, Bryce and Karl Popper and Samantha Elizabeth O'Grady},
editor = {Stewart, Bryce and Karl Popper and Samantha Elizabeth O'Grady},
Location = {London}}
@book{example2025,
Publisher = {Penguin},
Title = {Znub},
date = {2025},
translator = {Stewart, Bryce and Karl Popper and Samantha Elizabeth O'Grady},
editor = {Stewart, Bryce and Karl Popper and Samantha Elizabeth O'Grady},
Location = {London}}
@online{blogWithoutAuthor,
date = {2018},
title = {Historians in the News},
maintitle = {History Matters},
organization = {The University of Sydney},
url = {http://blogs.usyd.edu.au/historymatters/2018/02/historians_in_the_news_2018.html},
urldate = {2018-02-23}
}
@online{blogWithAuthor,
date = {2018},
title = {Historians in the News},
maintitle = {History Matters},
organization = {The University of Sydney},
url = {http://blogs.usyd.edu.au/historymatters/2018/02/historians_in_the_news_2018.html},
urldate = {2018-02-23},
author = {McDonnell, Mike}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\DeclareFieldFormat[online]{title}{#1}
\renewcommand{\postsep}{% Add comma to end of author section
\addcomma
\null\par\nobreak\vskip\postnamesep%
\hskip-\bibhang\ignorespaces}
\DefineBibliographyStrings{english}{%
editor = {ed},
editors = {eds},
}
\DeclareFieldFormat{editortype}{#1}
\DeclareDelimFormat{editortypedelim}{\addcomma\space}
\DeclareFieldFormat{translatortype}{#1}
\DeclareDelimFormat{translatortypedelim}{\addcomma\space}
\makeatletter
\newbibmacro*{editorstrg:gettempa}{%
\iffieldundef{editortype}
{\ifboolexpr{
test {\ifnumgreater{\value{editor}}{1}}
or
test {\ifandothers{editor}}
}
{\def\abx@tempa{editors}}
{\def\abx@tempa{editor}}}
{\ifbibxstring{\thefield{editortype}}
{\ifboolexpr{
test {\ifnumgreater{\value{editor}}{1}}
or
test {\ifandothers{editor}}
}
{\edef\abx@tempa{\thefield{editortype}s}}
{\edef\abx@tempa{\thefield{editortype}}}}
{\edef\abx@tempa{\thefield{editortype}}}}}
\renewbibmacro*{editorstrg}{%
\usebibmacro{editorstrg:gettempa}%
\printtext[editortype]{%
\ifbibxstring{\abx@tempa}
{\bibstring{\abx@tempa}}
{\abx@tempa}}}
\newbibmacro*{editor+othersstrg:gettempa}{%
\iffieldundef{editortype}
{\ifboolexpr{
test {\ifnumgreater{\value{editor}}{1}}
or
test {\ifandothers{editor}}
}
{\def\abx@tempa{editors}}
{\def\abx@tempa{editor}}}
{\ifboolexpr{
test {\ifnumgreater{\value{editor}}{1}}
or
test {\ifandothers{editor}}
}
{\edef\abx@tempa{\thefield{editortype}s}}
{\edef\abx@tempa{\thefield{editortype}}}}%
\let\abx@tempb=\empty
\ifnamesequal{editor}{translator}
{\appto\abx@tempa{tr}%
\appto\abx@tempb{\clearname{translator}}}
{}%
\ifnamesequal{editor}{commentator}
{\appto\abx@tempa{co}%
\appto\abx@tempb{\clearname{commentator}}}
{\ifnamesequal{editor}{annotator}
{\appto\abx@tempa{an}%
\appto\abx@tempb{\clearname{annotator}}}
{}}%
\ifnamesequal{editor}{introduction}
{\appto\abx@tempa{in}%
\appto\abx@tempb{\clearname{introduction}}}
{\ifnamesequal{editor}{foreword}
{\appto\abx@tempa{fo}%
\appto\abx@tempb{\clearname{foreword}}}
{\ifnamesequal{editor}{afterword}
{\appto\abx@tempa{af}%
\appto\abx@tempb{\clearname{afterword}}}
{}}}}
\renewbibmacro*{editor+othersstrg}{%
\usebibmacro{editor+othersstrg:gettempa}%
\ifbibxstring{\abx@tempa}
{\printtext[editortype]{\bibstring{\abx@tempa}}\abx@tempb}
{\usebibmacro{editorstrg}}}
\newbibmacro*{translatorstrg:gettempa}{%
\ifboolexpr{
test {\ifnumgreater{\value{translator}}{1}}
or
test {\ifandothers{translator}}
}
{\def\abx@tempa{translators}}
{\def\abx@tempa{translator}}}
\renewbibmacro*{translatorstrg}{%
\usebibmacro{translatorstrg:gettempa}%
\printtext[translatortype]{%
\ifbibxstring{\abx@tempa}
{\bibstring{\abx@tempa}}
{\abx@tempa}}}
\newbibmacro*{translator+othersstrg:gettempa}{%
\ifboolexpr{
test {\ifnumgreater{\value{translator}}{1}}
or
test {\ifandothers{translator}}
}
{\def\abx@tempa{translators}}
{\def\abx@tempa{translator}}%
\ifnamesequal{translator}{commentator}
{\appto\abx@tempa{co}%
\clearname{commentator}}
{\ifnamesequal{translator}{annotator}
{\appto\abx@tempa{an}%
\clearname{annotator}}
{}}%
\ifnamesequal{translator}{introduction}
{\appto\abx@tempa{in}%
\clearname{introduction}}
{\ifnamesequal{translator}{foreword}
{\appto\abx@tempa{fo}%
\clearname{foreword}}
{\ifnamesequal{translator}{afterword}
{\appto\abx@tempa{af}%
\clearname{afterword}}
{}}}}
\renewbibmacro*{translator+othersstrg}{%
\usebibmacro{translator+othersstrg:gettempa}%
\printtext[translatortype]{\bibstring{\abx@tempa}}}
\renewbibmacro*{bbx:dashcheck}[2]{%
\ifboolexpr{
test {\iffieldequals{fullhash}{\bbx@lasthash}}
and
not test \iffirstonpage
and
(
not bool {bbx@inset}
or
test {\iffieldequalstr{entrysetcount}{1}}
)
and test {\ifcsstrequal{bbx@thisnametype}{bbx@lastnametype}}
}
{#1}
{#2}}
\renewbibmacro*{author}{%
\global\def\bbx@thisnametype{author}%
\ifboolexpr{
test \ifuseauthor
and
not test {\ifnameundef{author}}
}
{\usebibmacro{bbx:dashcheck}
{}%
{\usebibmacro{bbx:savehash}%
\printnames{author}%
\iffieldundef{nameaddon}
{}%
{\setunit{\addspace}%
\printfield{nameaddon}}%
\iffieldundef{authortype}
{}%
{\usebibmacro{authorstrg}%
\printtext{\addcomma\space}}
\global\def\bbx@lastnametype{author}%
\postsep}%
\usebibmacro{date+extradate}}%
{\global\undef\bbx@lasthash
\global\undef\bbx@lastnametype
\usebibmacro{date+extradate}}}
\renewbibmacro*{bbx:editor}[1]{%
\begingroup
\usebibmacro{#1:gettempa}%
\global\edef\bbx@thisnametype{\abx@tempa}%
\endgroup
\ifboolexpr{%
test \ifuseeditor
and
not test {\ifnameundef{editor}}
}%
{\usebibmacro{bbx:dashcheck}%
{}%
{\printnames{editor}%
\usebibmacro{bbx:savehash}%
\setunit{\printdelim{editortypedelim}}%
\usebibmacro{#1}%
\global\edef\bbx@lastnametype{\abx@tempa}%
\global\edef\bbx@cleanup{\abx@tempb}%
\postsep}%
\clearname{editor}%
\bbx@cleanup
\usebibmacro{date+extradate}}%
{\global\undef\bbx@lasthash
\global\undef\bbx@lastnametype
\usebibmacro{date+extradate}}}%
\renewbibmacro*{bbx:translator}[1]{%
\begingroup
\usebibmacro{#1:gettempa}%
\global\edef\bbx@thisnametype{\abx@tempa}%
\endgroup
\ifboolexpr{%
test \ifusetranslator
and
not test {\ifnameundef{translator}}
}%
{\usebibmacro{bbx:dashcheck}%
{}%
{\printnames{translator}%
\usebibmacro{bbx:savehash}%
\setunit{\printdelim{translatortypedelim}}%
\usebibmacro{#1}%
\global\edef\bbx@lastnametype{\abx@tempa}%
\global\edef\bbx@cleanup{\abx@tempb}%
\postsep}%
\clearname{translator}%
\bbx@cleanup
\usebibmacro{date+extradate}}%
{\global\undef\bbx@lasthash
\global\undef\bbx@lastnametype
\usebibmacro{date+extradate}}}
\makeatother
\begin{document}
Sentence containing citation \parencite{example2018, sigfridsson, knuth:ct:a, knuth:ct:b, example2019, example2020, example2021, example2022, example2023, example2024, example2025}.
\parencite{blogWithoutAuthor, blogWithAuthor, westfahl:frontier, westfahl:space}
\printbibliography
\end{document}