在以下示例中,在书名和卷数之间,jurabib 产生了太多空格:
\documentclass[]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{filecontents}
\usepackage[]{jurabib}
\renewcommand*{\bibatsep}{,}
\begin{filecontents}{literatur.bib}
@INCOLLECTION{Lehnswesen,
author = {Oliver Auge},
title = {Lehnrecht, Lehnswesen},
booktitle = {Hand\-w\"orterbuch zur Deutschen Rechtsgeschichte},
pages = {Sp.\,717\,--\,736},
year = {2016},
editor = {Albrecht Cordes and Hans-Peter Haferkamp and Heiner L\"uck and Dieter Werkm\"uller},
volume = {III},
address = {Berlin},
shorttitle = {Lehnrecht, Lehnswesen in: HRG~III, 2.\,Auflage},
volumetitle = {Konfliktbew\"altigung\,--\,Nowgorod}
}
\end{filecontents}
\begin{document}
Test\footcite{Lehnswesen}.
\bibliography{literatur}
\bibliographystyle{jurabib}
\end{document}
有什么想法吗?如何防止这种情况发生?
答案1
嗯,它插入了太多空格。你可以试试这个:
\makeatletter
\renewcommand*{\incolledformat}[5]{%
\bibBTsep{} %
\ifjb@edby
#3%
\ifx\relax#1\relax
\ifx\relax#5\relax\else
\ifx\relax#4\relax
\bibatsep{}%
\else
\bibatsep{}\space%
\fi
\fi
\else
\ifx\relax#5\relax
\ifjb@humanbst@loaded\edbysep{}\fi
\unskip\unskip\unskip\unskip\unskip\unskip\space\Edbyname{} %
\else
\edbysep{}%
\Edbyname{} %
\fi
\begingroup
#1%
\endgroup
\fi
\ifx\relax#4\relax\else
\ifx\relax#1\relax\else
\ifx\relax#5\relax
.\space%
\else
\bibatsep{} %
\fi
\fi
\Volumename~#4%
\fi
\ifx\relax#1\relax
\ifx\relax#4\relax\else.\fi % volume empty
\else
\ifjb@humanbst@loaded\else
\ifjbchicago\else.\fi
\fi
\fi
\else
\ifx\relax#1\relax\else
\begingroup
#1 % editor
\endgroup
\ifx\relax#2\relax\else#2\fi
\bothaesep%
\fi
#3%
\ifx\relax#4\relax
\else
\unskip %<--------------------------------- new
\ifx\relax#5\relax\space\else,\space\fi% volume and booktitleaddon
\volumeformat{#4}%
\fi
\fi
}