
参考文献のスタイルを に一致させようとしていますbiblatex-philosophy
。複数の編集者による作業に必要な形式は次のとおりです。
デフォルトでは、出力は次のbiblatex-philosophy
ようになりますphilosophy-modern
。
コードは次のとおりです。
\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}
この.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}}
必要に応じて (eds.) から括弧とピリオドを削除し、編集者セクションの最後に移動するにはどうすればよいですか?
の詳細を調べてもbiblatex
、biblatex-philosophy
特に面倒で、私の力ではどうにもならないようなので、何もわかりませんでした。
答え1
同じ著者セットが、ある作品の著者と別の作品の編集者を兼ねていない限り、次の方法は有効です。 'eds' のドットを削除する場合は、 の bibstring を再定義する必要があります\DefineBibliographyStrings{english}
。 を使用する場合に再定義する必要がある可能性のある他のすべての文字列については、 を参照してください。、、および他の多くの役割がenglish.lbx
あります。compiler
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}
ともっとたくさん努力すれば、同じ著者リストによって異なる役割に対して上記を安全にすることができます。ただし、これではまだソートは考慮されません。
\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}