排版参考书目时,\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
名称中的换行符由lownamepenalty
和highnamepenalty
计数器控制。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}