
참고문헌 스타일을 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'에 대한 점을 제거하려면 에서 턱받이 스트링을 다시 정의해야 합니다 \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}