如何处理按字母顺序排列的 citestyle 中超过 3 位作者的两个单词姓氏

如何处理按字母顺序排列的 citestyle 中超过 3 位作者的两个单词姓氏

在我的工作中,我想引用一篇有三位以上作者的论文,但其中一位作者的姓氏由两个单词组成,如下例所示:

\documentclass[11pt,a4paper]{article}

\usepackage[style=alphabetic,backend=biber,citestyle=alphabetic]{biblatex} 
\addbibresource{\jobname.bib}
\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@article{key,
  author = {Obama, Barack and Author, Alpha and Buthor, Beta and Cuthor, Gamma},
  year = {2002},
  title = {Title},
  publisher = {Publisher},
}

@article{key2,
  author = {De Gaulle, Charles and Author, Alpha and Buthor, Beta and Cuthor, Gamma},
  year = {2001},
  title = {Title},
  publisher = {Publisher},
}
\end{filecontents}

\begin{document}

\cite{key}

\cite{key2}

\printbibliography

\end{document}

不幸的是,这会产生 胸围中的两个单词姓氏

姓氏“De Gaulle”的前三个字母是“De”。除了布局混乱之外,还可能存在问题,因为有了这个空间,引用就变得容易被破坏:

在此处输入图片描述

是否有任何常见的建议来处理此问题? 我也尝试在现有出版物中找到同一篇论文的字母顺序引用示例,但似乎使用数字引用样式非常常见。

答案1

根据作者的风格和国家惯例,可以这样写

author = {de Gaulle, Charles},

代替 author = {De Gaulle, Charles},

如果名称前缀以小写字母开头,biblatex则将其识别为名称前缀并使用不同的规则。

\documentclass[11pt,a4paper]{article}

\usepackage[style=alphabetic, backend=biber]{biblatex}

\begin{filecontents}{\jobname.bib}
@article{key,
  author    = {Obama, Barack and Author, Alpha and Buthor, Beta and Cuthor, Gamma},
  year      = {2002},
  title     = {Title},
  publisher = {Publisher},
}
@article{key2,
  author    = {de Gaulle, Charles and Author, Alpha and Buthor, Beta and Cuthor, Gamma},
  year      = {2001},
  title     = {Title},
  publisher = {Publisher},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
\autocite{key,key2}

\printbibliography
\end{document}

[奥巴+02;高+01]

如果您使用该选项useprefix=true,,即

\usepackage[style=alphabetic, backend=biber, useprefix=true,]{biblatex}

你得到

[Oba+02;dGau+01]


如果这里不适合使用名称前缀,你可以biblatex至少用 来忽略标签生成时的空格\DeclareNolabel。默认设置\nolabel{\regexp{[\p{P}\p{S}\p{C}]+}}只忽略标点符号和控制字符。我们可以通过添加 来忽略空格\p{Z}

\documentclass[11pt,a4paper]{article}

\usepackage[style=alphabetic, backend=biber]{biblatex} 

\DeclareNolabel{
  \nolabel{\regexp{[\p{P}\p{S}\p{C}\p{Z}]+}}
}

\begin{filecontents}{\jobname.bib}
@article{key,
  author    = {Obama, Barack and Author, Alpha and Buthor, Beta and Cuthor, Gamma},
  year      = {2002},
  title     = {Title},
  publisher = {Publisher},
}
@article{key2,
  author    = {De Gaulle, Charles and Author, Alpha and Buthor, Beta and Cuthor, Gamma},
  year      = {2001},
  title     = {Title},
  publisher = {Publisher},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
\autocite{key,key2}

\printbibliography
\end{document}

[欧巴+02;德+01]


如果这些选项都不适合您,您仍然可以使用以下方法在本地覆盖标签的名称部分label

\documentclass[11pt,a4paper]{article}

\usepackage[style=alphabetic, backend=biber]{biblatex} 


\begin{filecontents}{\jobname.bib}
@article{key,
  author    = {Obama, Barack and Author, Alpha and Buthor, Beta and Cuthor, Gamma},
  year      = {2002},
  title     = {Title},
  publisher = {Publisher},
}
@article{key2,
  author    = {De Gaulle, Charles and Author, Alpha and Buthor, Beta and Cuthor, Gamma},
  label     = {Gaul},
  year      = {2001},
  title     = {Title},
  publisher = {Publisher},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
\autocite{key,key2}

\printbibliography
\end{document}

[奥巴+02;高卢01]

相关内容