
當排版參考書目時,\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}