仅使用姓氏作为 namepartfamily,而不是前缀后的所有内容

仅使用姓氏作为 namepartfamily,而不是前缀后的所有内容

Biblatex将前缀后面的所有内容视为姓氏。例如,在名字“Carlos de Souza Carvalho Pinto”中,namepartfamily是“Souza Carvalho Pinto”,使用authortitlegiveninits 这是在参考书目中显示的内容:

Souza Carvalho Pinto,C. de

但我想要的是:

Pinto,C. de SC

将名称设置为“Pinto, Carlos de Souza Carvalho”不太方便,但我可以使用它,但前缀也会被缩写:

Pinto,C. d. SC

有什么想法可以修复此问题吗?


平均能量损失

\begin{filecontents}{\jobname.bib}
@book{blabla,
 author = {Charles-Jean de La Vallée Poussin}}
\end{filecontents}

\documentclass{article}

\usepackage[backend=biber, bibstyle=authortitle, giveninits]{biblatex}
\addbibresource{\jobname.bib}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\begin{document}
  \nocite{*}
  \printbibliography
\end{document}

答案1

使用biblatex扩展名称格式,您可以将 PLK 和 Ulrike Fischer 的答案组合成

@book{blabla,
  author = {family=Pinto, given=Carlos de Souza Carvalho, given-i=C {de\nopunct} S C},
}

获得

在此处输入图片描述

答案2

供您参考,这里有一种方法,无需使用数据biblatexml格式对数据进行格式化,其部分动机是克服bibtex名称解析例程中的此类限制。使用biblatexml,首字母会自动生成(例程支持 Unicode),或者您可以根据需要手动指定首字母。此外,我们只需将名称格式例程更改为使用前缀首字母而不是完整前缀。您需要biblatex3.4 和biber2.5,因为biblatexml这些版本在处理方面有很多改进:

\documentclass{article}
\usepackage[bibstyle=authortitle, giveninits]{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bltxml}
<bltx:entries xmlns:bltx="http://biblatex-biber.sourceforge.net/biblatexml">
  <bltx:entry id="test" entrytype="book">
    <bltx:names type="author">
      <bltx:name>
        <bltx:namepart type="family">Pinto</bltx:namepart>
        <bltx:namepart type="given">Carlos</bltx:namepart>
        <bltx:namepart type="prefix">
          <bltx:namepart initial="de">de</bltx:namepart>
          <bltx:namepart>Souza</bltx:namepart>
          <bltx:namepart>Carvalho</bltx:namepart>
        </bltx:namepart>
      </bltx:name>
    </bltx:names>
  </bltx:entry>
</bltx:entries>
\end{filecontents*}

\addbibresource[datatype=biblatexml]{\jobname.bltxml}

\DeclareNameFormat{family-given/given-family}{%
  \ifnumequal{\value{listcount}}{1}
    {\ifgiveninits
       {\usebibmacro{name:family-given}
         {\namepartfamily}
         {\namepartgiveni}
         {\namepartprefixi}
         {\namepartsuffix}}
       {\usebibmacro{name:family-given}
         {\namepartfamily}
         {\namepartgiven}
         {\namepartprefixi}
         {\namepartsuffix}}%
     \ifboolexpe{%
       test {\ifdefvoid\namepartgiven}
       and
       test {\ifdefvoid\namepartprefix}}
       {}
       {\usebibmacro{name:revsdelim}}}
    {\ifgiveninits
       {\usebibmacro{name:given-family}
         {\namepartfamily}
         {\namepartgiveni}
         {\namepartprefixi}
         {\namepartsuffix}}
       {\usebibmacro{name:given-family}
         {\namepartfamily}
         {\namepartgiven}
         {\namepartprefixi}
         {\namepartsuffix}}}%
  \usebibmacro{name:andothers}}

\begin{document}
\nocite{*}
\printbibliography
\end{document}

在此处输入图片描述

答案3

你可以通过以下输入获得你想要的输出:

@book{blabla,
 author = {Charles-Jean {\relax de La\nopunct} Vallée Poussin}}

在此处输入图片描述

问题自然在于,这会对表示进行硬编码。此外,与 egreg 一样,我不认为这个名字应该这样写,但也许你只是用它作为一个例子。

相关内容