姓名,姓氏的首字母(年份)。标题,以编辑者的名义(ed.)。诉讼名称,页。

姓名,姓氏的首字母(年份)。标题,以编辑者的名义(ed.)。诉讼名称,页。

我正在写一篇论文,并且很难定制我的 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}}

应该这么做。

相关内容