我正在写一篇论文,并且很难定制我的 biblatex 书目。
引用的诉讼程序应该是这样的:
姓名,姓氏的首字母(年份)。标题,以编辑者的名义(ed.)。诉讼名称,页。
这就是我得到的:
姓名,姓氏首字母(年份)。标题,编辑姓名(ed.):诉讼名称、页
我的第一个问题是“in”后面的点,第二个问题是编辑器后面的冒号。
以下是 MWE:
\documentclass[12pt,a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[babel,german=quotes]{csquotes}
\usepackage[ backend=biber,
style=authoryear-icomp,
mcite=true,
backref=true,
isbn=false,
url=false,
doi=false,
urldate=long,
minnames=1,
maxbibnames=99,
maxcitenames=2,dashed=false,
backref=false,
firstinits=true,isbn=false,url=false,doi=false,eprint=false]{biblatex}
\usepackage{xpatch}
\DefineBibliographyStrings{ngerman}{
byeditor = {ed\adddot},
editor = {ed\adddot}
}
\DeclareNameAlias{sortname}{last-first}
\DeclareNameAlias{default}{last-first}
\DeclareFieldFormat[article, inproceedings,book]{title}{{#1}}
\renewcommand*{\intitlepunct}{\space} % no colon behind 'in'
\renewcommand{\finalnamedelim}{\//}
\AtBeginBibliography{%
\renewcommand{\finalnamedelim}{\addsemicolon\space}}
\newcommand*{\bibmultinamedelim}{\addsemicolon\space}%
\newcommand*{\bibfinalnamedelim}{\addsemicolon\space}%
\AtBeginBibliography{%
\let\multinamedelim\bibmultinamedelim
\let\finalnamedelim\bibfinalnamedelim
}
\renewbibmacro*{in:}{%
\setunit{\addcomma\space}% % comma before title of proceeding
\ifentrytype{article}{}{\printtext{\bibstring{in}\intitlepunct}}
% no "in" for articles
}
\renewbibmacro*{byeditor+others}{% % (ed.) behind editor names
\ifnameundef{editor}
{}
{\printnames[byeditor]{editor}%
\setunit{\addspace}%
\usebibmacro{byeditor+othersstrg}%
\clearname{editor}%
\newunit}%
\usebibmacro{byeditorx}%
\usebibmacro{bytranslator+others}}
% booktitle after editors
\renewbibmacro*{maintitle+booktitle}{%
\iffieldundef{maintitle}
{}
{\usebibmacro{maintitle}%
\newunit\newblock
\iffieldundef{volume}
{}
{\printfield{volume}%
\printfield{part}%
}}%
\newunit}
\renewbibmacro*{byeditor+others}{%
\ifnameundef{editor}
{}
{\printnames[byeditor]{editor}%
\setunit{\addspace}%
\usebibmacro{byeditor+othersstrg}%
\clearname{editor}%
\newunit}%
\usebibmacro{byeditorx}%
\usebibmacro{bytranslator+others}
\setunit{\addcolon\space}
\usebibmacro{booktitle}}
\xpatchbibmacro{byeditor+othersstrg}{\printtext}{\printtext[parens]}{}{}
\addbibresource{ref.bib}
\begin{document}
\printbibliography
\end{document}
这是 ref.bib:
@inproceedings{Kocher.2016,
author = {K{\"o}cher, S{\"o}ren and Jannach, Dietmar and Jugovac, Michael
and Holzm{\"u}ller, Hartmut H.},
title = {Investigating Mere-Presence Effects of Recommendations on the
Consumer Choice Process},
pages = {2--5},
bookpagination = {page},
editor = {Brusilovsky, Peter and Felfernig, Alexander and Lops, Pasquale
and O'Donovan, John and Semeraro, Giovanni and Tintarev, Nava and
Willemsen, Martijn C.},
booktitle = {Proceedings of the Joint Workshop on Interfaces and Human
Decision Making for Recommender Systems co-located with ACM Conference on
Recommender Systems (RecSys 2016)},
year = {2016}
}
任何帮助,将不胜感激。
答案1
\renewbibmacro*{in:}{%
\setunit{\addcomma\space}%
\ifentrytype{article}{}{\printtext{\bibstring{in}\printunit{\intitlepunct}}}%
}
和
\renewbibmacro*{byeditor+others}{%
\ifnameundef{editor}
{}
{\printnames[byeditor]{editor}%
\setunit{\addspace}%
\usebibmacro{byeditor+othersstrg}%
\clearname{editor}%
\newunit}%
\usebibmacro{byeditorx}%
\usebibmacro{bytranslator+others}%
\newunit\newblock
\usebibmacro{booktitle}}
应该这么做。