Biblatex
将前缀后面的所有内容视为姓氏。例如,在名字“Carlos de Souza Carvalho Pinto”中,namepartfamily
是“Souza Carvalho Pinto”,使用authortitle
和giveninits
这是在参考书目中显示的内容:
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
答案2
供您参考,这里有一种方法,无需使用数据biblatexml
格式对数据进行格式化,其部分动机是克服bibtex
名称解析例程中的此类限制。使用biblatexml
,首字母会自动生成(例程支持 Unicode),或者您可以根据需要手动指定首字母。此外,我们只需将名称格式例程更改为使用前缀首字母而不是完整前缀。您需要biblatex
3.4 和biber
2.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}