我在使用 maxcitename=1 时遇到了问题,有时 latex 只引用第一作者,但有时引用 3 位作者。这似乎完全是随机的,但我可能只在文本中引用一位作者,如果有更多作者,那么我想添加“et al”。
这是我正在使用的包
\usepackage[backend=biber,style=authoryear,maxcitenames=1,maxbibnames=99,autocite=inline]{biblatex}
另外,我来自冰岛,所以我们在按字母顺序排列作者时会使用名字。我该如何改变这种情况呢?我的参考书目始终是:
最后1,第一个1,第一个2 最后2,第一个3 最后3 ........
并且只有名字不同,但其他的都是我想要的,我该如何解决这个问题。
答案1
你没有给我们太多的信息,但第一期看起来可能是在 biblatex 中使用“et al.”时,限制为一位作者.biblatex
尝试使名称的截断列表也具有唯一性,以便Rakel Hönnudóttir and Harpa Þorsteinsdóttir and Elísa Viðarsdóttir
和Rakel Hönnudóttir and Harpa Þorsteinsdóttir and Anna Björk Kristjánsdóttir
不会都缩写为Rakel Hönnudóttir 等人。可以使用 关闭该功能uniquelist=false
。
第二个unique
特征uniquename
可能会导致名字出现在一些引文中,而不出现在其他引文中,请参阅biblatex,authoryear 样式:文内引用显示某些参考书目条目的名字首字母,Biblatex:某些来源的文本中只有名字 - 为什么?和含有 Biber 的文献会产生奇怪的引用:名字出现不规律。
对于另一个问题,让我解释一下biblatex
(以及 BibTeX)如何处理名称。
对于 BibTeX/Biber,名称可以由四个部分组成,其中最重要的部分是名和姓. 我所知道的几乎所有风格都是基于这样的假设:名是给定的名称和姓是姓在较新的版本中,biblatex
这一点通过正式指定名称部分为家庭和给定名字。这种观点和整个名字体系很大程度上受到英美惯例的影响,并且适用于许多西方名字,也相当适用于东斯拉夫惯例(至少是俄罗斯形式)。
此外,在英美世界,姓氏主要用于识别个人。可以添加名字或首字母以避免歧义,但并不总是这样做。
因此如果你输入一个冰岛名字,例如
author = {Katrín Jakobsdóttir},
Katrín
被正确识别为名字,但Jakobsdóttir
被视为姓氏。特别是biblatex
将主要使用雅各布斯多蒂尔指那个人。
一个简单的解决方案是在文件中提供名称时将其放在括号中.bib
。
author = {{Katrín Jakobsdóttir}},
并且(仅将单个名称括在括号中,而不是一次将多个名称括起来!)
author = {{Katrín Jakobsdóttir} and {Jóhanna Sigurðardóttir}},
那样卡特琳·雅各布斯多蒂尔和约翰娜西于尔扎多蒂尔被解析为姓氏,导致在引用中使用全名。该名称将被视为一个单位,不会以相反的顺序显示为 *雅各布斯多蒂尔,卡特琳。
\documentclass[icelandic]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear, backend=biber, mincitenames=1, maxcitenames=1, maxbibnames=999]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{four,
author = {{Katrín Jakobsdóttir}},
title = {Four},
date = {1984},
}
@book{five,
author = {{Jóhanna Sigurðardóttir}},
title = {Five},
date = {1985},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\cite{four}
\cite{five}
\printbibliography
\end{document}
如果您的参考书目中只有冰岛名称或希望以冰岛方式处理外国名称,您可以重新定义名称格式并进行处理。
\documentclass[icelandic]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear, backend=biber, mincitenames=1, maxcitenames=1, maxbibnames=999]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{one,
author = {Guðbjörg Gunnarsdóttir},
title = {One},
date = {1980},
}
@book{two,
author = {Rakel Hönnudóttir and Harpa Þorsteinsdóttir and Anna Björk Kristjánsdóttir},
title = {Two},
date = {1982},
}
@book{three,
author = {Rakel Hönnudóttir and Harpa Þorsteinsdóttir and Elísa Viðarsdóttir},
title = {Three},
date = {1983},
}
@book{four,
author = {Katrín Jakobsdóttir},
title = {Four},
date = {1984},
}
@book{five,
author = {Jóhanna Sigurðardóttir},
title = {Five},
date = {1985},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\DeclareNameAlias{default}{given-family}
\DeclareNameAlias{sortname}{default}
\DeclareNameAlias{labelname}{default}
\DeclareSortingNamekeyTemplate{
\keypart{
\namepart{given}
}
\keypart{
\namepart{prefix}
}
\keypart{
\namepart{family}
}
\keypart{
\namepart{suffix}
}
}
\begin{document}
\cite{one}
\cite{two}
\cite{three}
\cite{four}
\cite{five}
\printbibliography
\end{document}
埃塞俄比亚的命名系统与冰岛的系统相似。参见Bibtex/Biber:如何使用埃塞俄比亚惯例引用作者?用于处理埃塞俄比亚名字的实施。
输入格式比较繁琐,但是这个解决方案实现了冰岛语名字的独特性。
\documentclass[icelandic]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage{filecontents}
\begin{filecontents*}{icelandic-names.dbx}
\DeclareDatamodelConstant[type=list]{nameparts}{prefix,family,suffix,given,middle,patronymic,papponymic}
\end{filecontents*}
\begin{filecontents*}{\jobname.bib}
@BOOK{one,
author = {given=Guðbjörg, patronymic=Gunnarsdóttir, nametemplates=icelandic},
title = {One},
date = {1983}
}
@book{four,
author = {given=Katrín, patronymic=Jakobsdóttir, nametemplates=icelandic},
title = {Four},
date = {1984},
}
@book{five,
author = {given=Jóhanna, patronymic=Sigurðardóttir, nametemplates=icelandic},
title = {Five},
date = {1985},
}
@book{six,
author = {given=Guðrún Eva, patronymic=Mínervudóttir, nametemplates=icelandic},
title = {Six},
date = {1976},
}
@book{seven,
author = {given=Vilborg, patronymic=Dagbjartsdóttir, nametemplates=icelandic},
title = {Seven},
date = {1987},
}
@book{eight,
author = {given=Katrín, patronymic=Jónsdóttir, nametemplates=icelandic},
title = {Eight},
date = {1988},
}
\end{filecontents*}
\usepackage[style=authoryear,datamodel=icelandic-names]{biblatex}
\addbibresource{biblatex-examples.bib}
\addbibresource{\jobname.bib}
\DeclareSortingNamekeyTemplate[icelandic]{
\keypart{
\namepart{given}
}
\keypart{
\namepart{patronymic}
}
\keypart{
\namepart{papponymic}
}
}
\DeclareUniquenameTemplate[icelandic]{
\namepart[base=true]{given}
\namepart[disambiguation=full]{patronymic}
\namepart[disambiguation=full]{papponymic}
}
\DeclareNameAlias{sortname}{family-given}
\DeclareNameFormat{given-family}{%
\ifsortingnamekeytemplatename{icelandic}
{\usebibmacro{name:icelandic}
{\namepartgiven}
{\namepartpatronymic}
{\namepartpapponymic}}
{\ifgiveninits
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffix}}
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}}}%
\usebibmacro{name:andothers}}
\DeclareNameFormat{family-given}{%
\ifsortingnamekeytemplatename{icelandic}
{\usebibmacro{name:icelandic}
{\namepartgiven}
{\namepartpatronymic}
{\namepartpapponymic}}
{\ifgiveninits
{\usebibmacro{name:family-given}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffix}}
{\usebibmacro{name:family-given}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}}}%
\usebibmacro{name:andothers}}
\DeclareNameFormat{labelname}{%
\ifuniquenametemplatename{icelandic}
{\usebibmacro{labelname:icelandic}}
{\usebibmacro{labelname:western}}%
\usebibmacro{name:andothers}}
\newbibmacro{labelname:icelandic}{%
\iffieldequalstr{uniquepart}{base}
{\usebibmacro{name:icelandic}
{\namepartgiven}
{\empty}
{\empty}}
{\iffieldequalstr{uniquepart}{patronymic}
{\usebibmacro{name:icelandic}
{\namepartgiven}
{\namepartpatronymic}
{\empty}}
{\usebibmacro{name:icelandic}
{\namepartgiven}
{\namepartpatronymic}
{\namepartpapponymic}}}}
\newbibmacro{labelname:western}{%
\ifcase\value{uniquename}%
\usebibmacro{name:family}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}%
\or
\ifuseprefix
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffixi}}
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefixi}
{\namepartsuffixi}}%
\or
\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}%
\fi}
\newbibmacro*{name:icelandic}[3]{%
\usebibmacro{name:delim}{#1#2#3}%
\usebibmacro{name:hook}{#1#2#3}%
\mkbibicegiven{#1}%
\ifdefvoid{#2}{}{\bibnamedelimd\mkbibicepat{#2}\isdot}%
\ifdefvoid{#3}{}{\bibnamedelimd\mkbibicepap{#3}\isdot}}
\let\mkbibicegiven\mkbibnamefamily
\let\mkbibicepat\mkbibnamegiven
\let\mkbibicepap\mkbibnamegiven
\begin{document}
\textcite{one,sigfridsson,knuth:ct:a,knuth:ct:b,knuth:ct:c,cicero,geer,five,six,seven}
\textcite{five}
\textcite{four}
\textcite{eight}
\printbibliography
\end{document}
given
理论上,如果您只对冰岛名称使用和,则逻辑可能会颠倒partonymic
,这样除非另有说明,所有名称都会被解析为冰岛语。