我有以下书目设置
\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{csquotes}
\usepackage{filecontents}
\usepackage[backend=biber,
style=ieee-alphabetic,
maxnames=99,
maxcitenames=2,
minalphanames=1, maxalphanames=1,
giveninits=true,
useprefix=false,
doi=false, isbn=false, url=false,
backref=false,
dashed=false,
]{biblatex}
\renewcommand*{\labelalphaothers}{}
\DeclareLabelalphaTemplate{
\labelelement{
\field[final]{shorthand}
\field{label}
\field{labelname}
}
\labelelement{
\field{year}
}
}
\begin{filecontents}{\jobname.bib}
@article{Garcia1984,
author = {García Lopéz, Frank and Orwell, George},
title = {1984},
year = {1948},
journal = {Books About Big Brothers},
volume = {5},
number = {42},
pages = {100--111},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\cite{Garcia1984}.
\printbibliography
\end{document}
输出如下:
您是否认为在书目标签中只显示第一作者的两个姓氏中的第一个姓氏是可能的,所以[加西亚1984]? 如果这样更方便的话,我可以只使用第二个名字,但了解西班牙人/拉丁美洲人以及他们如何使用他们的名字后,我认为前者是更好的选择。
在参考书目条目中,名称应保持原样,因此FG洛佩斯或者F. García L.没有选择。
提前致谢!
答案1
强制标签使用特定名称的一种方法是使用字段shortauthor
。
\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[
backend=biber,
style=ieee-alphabetic,
maxnames=99, maxcitenames=2, minalphanames=1, maxalphanames=1,
giveninits=true, useprefix=false,
doi=false, isbn=false, url=false,
dashed=false,
]{biblatex}
\renewcommand*{\labelalphaothers}{}
\DeclareLabelalphaTemplate{
\labelelement{
\field[final]{shorthand}
\field{label}
\field{labelname}
}
\labelelement{
\field{year}
}
}
\begin{filecontents}{\jobname.bib}
@article{Garcia1984,
author = {García Lopéz, Frank and Orwell, George},
shortauthor = {García, Frank and Orwell, George},
title = {1984},
year = {1948},
journal = {Books About Big Brothers},
volume = {5},
number = {42},
pages = {100--111},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\cite{Garcia1984}.
\printbibliography
\end{document}
另一个更复杂的选择是尝试扩展名称格式以包含两个姓氏,其中只有一个用于引用标签。人们可能会采用类似于Bibtex/Biber:如何使用埃塞俄比亚惯例引用作者?,根据冰岛语系统编制的书目或者在 BibLaTeX 中指定作者假名。
答案2
另一种方法是对标签进行后处理,例如如果您使用无法更改的参考书目。
您必须在名称和年份之间添加一个分隔符,以便后处理宏可以在那里将其拆分,然后拆分空格后的部分。
\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{csquotes}
\usepackage{filecontents}
\usepackage[backend=biber,
style=ieee-alphabetic,
maxnames=99,
maxcitenames=2,
minalphanames=1, maxalphanames=1,
giveninits=true,
useprefix=false,
doi=false, isbn=false, url=false,
backref=false,
dashed=false,
]{biblatex}
\renewcommand*{\labelalphaothers}{}
\let\MYSEP\relax
\DeclareLabelalphaTemplate{
\labelelement{
\field[final]{shorthand}
\field{label}
\field{labelname}
}
\labelelement{\literal{\MYSEP}} % <<=======
\labelelement{
\field{year}
}
}
\DeclareFieldFormat{labelalpha}{\expandafter\extractfirsta#1\MYSEP}
\def\extractfirsta#1\MYSEP#2\MYSEP{\extractfirstb#1 \MYSEP{#2}}
\def\extractfirstb#1 #2\MYSEP#3{#1#3}
\begin{filecontents}{\jobname.bib}
@article{Garcia1984,
author = {García Lopéz, Frank and Orwell, George},
title = {1984},
year = {1948},
journal = {Books About Big Brothers},
volume = {5},
number = {42},
pages = {100--111},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\cite{Garcia1984}.
\printbibliography
\end{document}