使用 biblatex 宏在姓名首字母后使用不间断空格

使用 biblatex 宏在姓名首字母后使用不间断空格

我想强制 biber/biblatex 在作者姓名首字母和姓氏之间放置不间断空格。示例:

\documentclass{article}

\usepackage[backend=biber,natbib=true]{biblatex}

\newcommand*{\person}[2]{\citename{#1}[#2]{author}}

\DeclareNameFormat{firstinits-last}{%
  \usebibmacro{name:first-last}{#1}{#4}{#5}{#7}%
  \usebibmacro{name:andothers}}

\DeclareNameAlias{sci}{firstinits-last}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@misc{latour,
    AUTHOR      = {Latour, Bruno},
    OPTIONS     = {dataonly=true}
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}
Foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar. 
\person{latour}{sci} says about the ``new object'' that emerges\ldots
\end{document}

B.这会在和之间产生换行符Latour

在此处输入图片描述

我看过这个问题,但建议的代码在这里没有任何效果:

\renewcommand*{\mkbibnamefirst}[1]{{\let~\,#1}}
\renewcommand*{\mkbibnamefirst}[1]{{\iffirstinits{\let~\,}{}#1}}

B. Latour在这个例子中我该如何将其呈现为B.~Latour(正常的不间断空格)?

答案1

现在,名称各部分之间有一系列不同的灵活分隔符(使用 Biber 时)。它们是\bibnamedelima、 到 \bibnamedelimd加号\bibnamedelimi和 标记命令\revsdnamepunct。手册中描述了它们的完整用例:基本上,\bibnamedelima/\bibnamedelimb在名字之间或姓氏之间(IE表示姓名同一“部分”内的间隙),而 \bibnamedelimc/\bibnamedelimd表示名字和姓氏之间(“部分”之间)的间隙。当转换为首字母时\bibnamedelimi,在名字部分的首字母后面,替换\bibnamedelima/ \bibnamedelimb。因此,根据设置,在当前情况下,要么适用\bibnamedelimc,要么\bibnamedelimd适用(参见手册):这只是改变定义的问题

\documentclass{article}

\usepackage[backend=biber,natbib=true]{biblatex}

\newcommand*{\person}[2]{\citename{#1}[#2]{author}}

\DeclareNameFormat{firstinits-last}{%
  \usebibmacro{name:first-last}{#1}{#4}{#5}{#7}%
  \usebibmacro{name:andothers}}

\DeclareNameAlias{sci}{firstinits-last}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@misc{latour,
    AUTHOR      = {Latour, Bruno},
    OPTIONS     = {dataonly=true}
}
\end{filecontents}
\renewcommand*\bibnamedelimc{\addnbspace}
\renewcommand*\bibnamedelimd{\addnbspace}
\addbibresource{\jobname.bib}

\begin{document}
Foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar. 
\person{latour}{sci} says about the ``new object'' that emerges\ldots
\end{document}

我在这里改变了两个设置,但它d适用于当前情况。

相关内容