將短書目串移到註腳引用的下一行

將短書目串移到註腳引用的下一行

我使用 BibLaTeX 和命令\footcite- 將參考書目資料放入腳註中。我想避免在行尾放置短關鍵字“W:”(“In:”的翻譯)。該行\renewcommand{\intitlepunct}{\addcolon\nobreakspace}僅對使用命令放置的參考書目內容有影響\printbibliography(請參閱:參考書目中的書目串後立即防止斷行)。

在此輸入影像描述

根據 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 中的換行符。蘇爾曼。但您也想將“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}

在此輸入影像描述

相關內容