我遇到的问题是,Biblatex 在参考书目引用的中间放置了一个分页符。
我已经搜索过,所有提供的解决方案(例如将 interlinepenalty 设置为最大值 10,000)都没有效果。
我真的很困惑。附件是参考书目的样式结构:
\ProvidesFile{style.bbx}
\RequireBiber[2]
\RequireBibliographyStyle{authortitle}
\setcounter{biburlnumpenalty}{100} % allow breaks after numbers
\setcounter{biburlucpenalty}{100} % allow breaks after uppercase letters
\setcounter{biburllcpenalty}{100} % allow breaks after lowercase letters
\renewcommand*{\bibsetup}{\RaggedRight}
\InitializeBibliographyStyle
{%
\setlength\bibitemsep{6pt}%
\setlength\bibhang{0.75cm}
\UniCn
\fontsize{10pt}{12pt}
}
\defbibenvironment{bibliography}
{\list
{\fontsize{10pt}{12pt}\UniCn[\printfield[labelnumberwidth]{labelnumber}]}
{%
\setlength{\labelwidth}{\labelnumberwidth}%
\setlength{\leftmargin}{\bibhang}%
\setlength{\itemindent}{-\leftmargin}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}%
}%
}
{\endlist}
{\item}
%\item\begin{minipage}[t]{\textwidth}\end{minipage}
\NewBibliographyString{abgerufen am}
\DefineBibliographyStrings{ngerman}{%
abgerufen am = {abgerufen am},
}
\NewBibliographyString{URL}
\DefineBibliographyStrings{ngerman}{%
URL = {URL},
}
\newbibmacro{name:newformat}{%
{\namepartfamily} % #1->\namepartfamily, #2->\namepartfamilyi
{\namepartgiven} % #3->\namepartgiven, #4->\namepartgiveni
[prefix: \namepartprefix] % #5->\namepartprefix, #6->\namepartprefixi
[suffix: \namepartsuffix] % #7->\namepartsuffix, #8->\namepartsuffixi
}
\DeclareFieldFormat{title}{{\space\UniLightCnI{#1}}}
\DeclareFieldFormat{url}{{\UniLight URL:\space\url{#1}}}
\DeclareFieldFormat{isbn}{{\UniLight ISBN:\space{#1}}}
\DeclareFieldFormat{edition}{{#1\addcomma}}
\DeclareNameAlias{sortname}{given-family}
\DeclareFieldFormat{visited}{\bibstring{abgerufen am}\space #1}
\DeclareBibliographyDriver{website}
{%
{\UniCn\printfield{organization}}%
{\UniLight\space(o.J.):}\printfield{title}\adddot%
\UniLight\newline\nobreak%
Onlinedokumentation\adddot\space%
\printfield{url}\addcomma\space%
\printfield{visited}%
\finentry%
}
\DeclareBibliographyDriver{book}
{%
{\UniCn\printnames{author}}%
{\UniLight\space(\printfield{year}):}\printfield{title}\adddot%
\UniLight\newline%
\printlist{location}:\space%
\printfield{edition}\space%
\printlist{publisher}\space%
\finentry%
}
\DeclareBibliographyDriver{techreport}
{%
{\UniCn\printnames{author}}%
{\UniLight\space(\printfield{year}):}\printfield{title}\adddot%
\UniLight\newline\nobreak%
\printlist{location}:\space%
\printfield{edition}\space%
\printlist{publisher}\space%
\finentry%
}
答案1
因为没有得到答案,所以我自己又回去做了一遍。其实很简单,你只需要想出来就可以了。
\usepackage{needspace}
% The number determines how many lines of space the entry takes.
\AtEveryBibitem{\needspace{3\baselineskip}}
值得注意的是,这两个命令都必须包含在 biblatex 之后。