biblatex:排版时姓名列表中没有换行符

biblatex:排版时姓名列表中没有换行符

排版参考书目时,\raggedright, biblatex作者的姓/名/中间名之间似乎很难划线(如果有多个作者,则两个作者之间也很难划线)。就好像整个姓名列表都放进了 中\mbox。请看这个例子。

在此处输入图片描述

\documentclass[11pt,DIV=6]{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage[style=authoryear]{biblatex}
\usepackage{filecontents}
\usepackage{tgschola}

\begin{filecontents}{bibtest.bib}
@COLLECTION{Star95,
  editor = {Star, Susan Leigh},
  year = {1995},
  title = {Ecologies of Knowledge: Work and Politics in Science and Technology},
  address = {Albany},
  publisher = {SUNY}
}
@INCOLLECTION{Star95a,
  author = {Star, Susan Leigh},
  title = {The Politics of Formal Representations: Wizards, Gurus, and Organizational
    Complexity},
  year = {1995},
  pages = {88-118},
  crossref = {Star95}
}
\end{filecontents}

\renewcommand*{\bibsetup}{\raggedright}
\bibliography{bibtest.bib}
\listfiles

\begin{document}
\noindent\hrule
\nocite{Star95a}
\printbibliography
\noindent\hrule
\end{document}

»Susan Leigh« 本来可以很容易地放入第四行,但她的全名却被移到了下一行。我觉得这应该是biblatex's有意为之的行为,这似乎很奇怪,因为在某些情况下,它甚至会产生更糟糕的结果。你能重现这种情况吗?有什么方法可以改变它?我应该联系 biblatex 团队吗?

在此处输入图片描述

答案1

名称中的换行符由lownamepenaltyhighnamepenalty计数器控制。biblatex.def默认值为:

\defcounter{lownamepenalty}{\hyphenpenalty/2}
\defcounter{highnamepenalty}{\hyphenpenalty}

\hyphenpenalty默认值为。50若要允许姓和名之间有分隔符(例如“Susan Leigh”和“Star”),您可以lownamepenalty在序言中将其设置为较小的值。例如:

\defcounter{lownamepenalty}{0}

请注意,\bibsetup默认情况下会执行各种命令。因此,

\renewcommand*{\bibsetup}{\raggedright}

你最好这样做:

\appto{\bibsetup}{\raggedright}

相关内容