我的代码是:
\documentclass{book}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[maxbibnames=99,%style=numeric,
style=ext-numeric,%
citestyle=numeric,sorting=nyt,sortcites=true,autopunct=true,autolang=hyphen,hyperref=true,abbreviate=false,backref=true,backend=biber]{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@incollection{wertheimer1938,
author = {Wertheimer, Max},
title = {Gestalt theory},
editor = {Willis D. Ellis},
booktitle = {A Source Book of Gestalt Psychology},
publisher = {London: Kegan Paul, Trench, Trubner},
year = {1938},
pages = {1--11},
}
@incollection{bulthoff1996bayesian,
title={Bayesian Decision Theory and Psychophysics},
author={Bulthoff, Heinrich H.},
booktitle={Perception as Bayesian Inference},
editor={David C. Knill and Whitman Richards},
pages={123--162},
publisher={Cambridge: Cambridge University Press},
year={1996}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\renewbibmacro*{in:}{%
\setunit{\addcomma\space}%
\ifentrytype{incollection}
{}
{\printtext{%
\bibstring{In}\intitlepunct}}}
\nocite{*}
\printbibliography
\end{document}
输出为:
请指教如何满足所需的输出,谢谢
我尝试使用以下标签后将Edited by
其改为小写:edited by
\DefineBibliographyStrings{english}{%
byeditor = {\lowercase{edited by}},%
byeditor = {\lowercase{edited by}},%
}
但之前无法将 改为period
,请指教。comma
edited by
答案1
我认为您必须重新定义byeditor+others
宏以将标点符号设置为逗号而不是默认的句号。
\documentclass{article}
\begin{filecontents*}[overwrite]{\jobname.bib}
@incollection{wertheimer1938,
author = {Wertheimer, Max},
title = {Gestalt theory},
editor = {Willis D. Ellis},
booktitle = {A Source Book of Gestalt Psychology},
publisher = {London: Kegan Paul, Trench, Trubner},
year = {1938},
pages = {1--11},
}
@incollection{bulthoff1996bayesian,
title={Bayesian Decision Theory and Psychophysics},
author={Bulthoff, Heinrich H.},
booktitle={Perception as Bayesian Inference},
editor={David C. Knill and Whitman Richards},
pages={123--162},
publisher={Cambridge: Cambridge University Press},
year={1996}
}
\end{filecontents*}
\usepackage[style=ext-numeric,abbreviate=false]{biblatex}
\addbibresource{\jobname.bib}
\renewbibmacro*{byeditor+others}{%
\setunit{\addcomma\space}%
\ifnameundef{editor}
{}
{\usebibmacro{byeditor+othersstrg}%
\setunit{\addspace}%
\printnames[byeditor]{editor}%
\clearname{editor}%
\setunit{\addcomma\space}}
\usebibmacro{byeditorx}%
\setunit{\addcomma\space}%
\usebibmacro{bytranslator+others}}
\renewbibmacro*{in:}{%
\setunit{\addcomma\space}%
\ifentrytype{incollection}
{}
{\printtext{\bibstring{In}\intitlepunct}}}
\begin{document}
\nocite{*}
\printbibliography
\end{document}