将短的 bibstring 移动到脚注引用的下一行

将短的 bibstring 移动到脚注引用的下一行

我正在使用 BibLaTeX 和命令\footcite- 将参考书目数据放入脚注中。我想避免在行尾放置短关键字“W:”(“In:”的翻译)。该行\renewcommand{\intitlepunct}{\addcolon\nobreakspace}仅对使用命令放置的参考书目内容有影响\printbibliography(请参阅:参考书目中的 bibstring 之后立即防止换行)。

在此处输入图片描述

根据 BibLaTeX 软件包文档(第 106 页),可以设置计数器highnamepenaltylownamepenalty以防止姓名首字母和姓氏之间的换行(?)。还有其他方法可以将姓名首字母(连同单词“i” - “and”的翻译)放在与姓氏相同的行中吗?我尝试设置\setcounter{highnamepenalty}{10000}\setcounter{lownamepenalty}{0},但没有预期的效果。我的 MWE:

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[polish]{babel}
\usepackage{polski}
\usepackage[style=verbose]{biblatex}

\usepackage{filecontents}
\begin{filecontents}{mylist.bib}
@inbook{gumplowicz2010,
    author =    {Gumplowicz, L.},
    title =     {O naturalnym prawie kształtowania się państw},
    booktitle = {Dwa życia Ludwika Gumplowicza. Wybór tekstów},
    editor =    {Mozetič, G. and Surman, J.},
    editortype =    {redactor},
    location =  {Warszawa},
    year =      {2010},
}
\end{filecontents}
\addbibresource{mylist.bib}

\setlength{\textwidth}{115mm}

\renewcommand{\intitlepunct}{\addcolon\nobreakspace}    % has no impact on output

\begin{document}
Some text\footcite{gumplowicz2010}.
\end{document}

答案1

如果要隐藏姓名首字母和姓氏之间的换行符,则需要设置lownamepenalty.highnamepenalty代表同一姓名部分的不同位,因此它会分隔两个名字。因此您需要

\defcounter{lownamepenalty}{10000}

取消“J. Surman”中的换行符。但您还想将“i”与“J. Surman”联系起来,因此您还需要

\DeclareDelimFormat{finalnamedelim}{%
  \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
  \addspace\bibstring{and}\nobreakspace}

原来的定义有\space代替\nobreakspace这里。

对于“W:”来说,故事更有趣一些。事实上

\renewcommand{\intitlepunct}{\addcolon\nobreakspace}

做正确的事,但由于\intitlepunct处理方式与其他标点符号略有不同,其效果被抵消。你可以用

\renewbibmacro*{in:}{%
  \printtext{%
    \bibstring{in}\printunit{\intitlepunct}}}

顺便说一句,使用@incolletion(这是大概无论如何,这里是正确的条目类型)而不是 ,@inbook这不会使 的不同处理变得\intitlepunct明显。

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[polish]{babel}
\usepackage{polski}
\usepackage[style=verbose]{biblatex}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@inbook{gumplowicz2010,
  author     = {Gumplowicz, L.},
  title      = {O naturalnym prawie kształtowania się państw},
  booktitle  = {Dwa życia Ludwika Gumplowicza. Wybór tekstów},
  editor     = {Mozetič, G. and Surman, J.},
  editortype = {redactor},
  location   = {Warszawa},
  year       = {2010},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\setlength{\textwidth}{115mm}

\defcounter{lownamepenalty}{10000}

\renewcommand{\intitlepunct}{\addcolon\nobreakspace}
\renewbibmacro*{in:}{%
  \printtext{%
    \bibstring{in}\printunit{\intitlepunct}}}

\DeclareDelimFormat{finalnamedelim}{%
  \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
  \addspace\bibstring{and}\nobreakspace}

\begin{document}
Some text\footcite{gumplowicz2010}.
\end{document}

在此处输入图片描述

相关内容