![仅在引文和参考书目中显示姓氏](https://linux22.com/image/408456/%E4%BB%85%E5%9C%A8%E5%BC%95%E6%96%87%E5%92%8C%E5%8F%82%E8%80%83%E4%B9%A6%E7%9B%AE%E4%B8%AD%E6%98%BE%E7%A4%BA%E5%A7%93%E6%B0%8F.png)
我想在使用 biblatex 和 biber 时,在引文和参考书目中仅显示姓氏(作者、编辑等)。我已经尝试过:
\renewcommand*{\mkbibnamefirst}[1]{}
\renewcommand*{\mkbibnameprefix}[1]{}
\renewcommand*{\mkbibnameaffix}[1]{}
但这会在省略部分的位置留下多余的空格。有什么想法吗?
答案1
细节将取决于风格(您不会在问题中显示),但一般方法应该如下。
首先,我们定义一种只打印姓氏的名称格式。然后我们告诉biblatex
将这种新格式用于default
格式,sortname
(与作品相关的主要名称,通常是author
或editor
,在authoryear
- 和authortitle
-like 书目中)和(在- 和-like 引文中的labelname
格式)。authoryear
authortitle
根据您的风格,可能并非所有这些都是必要的,您也可能需要重新定义更多的名称格式。
如果您无条件地抑制名字,您应该确保该uniquename
功能已关闭uniquename=false
(再次,是否必须这样做取决于风格)。
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear, backend=biber, uniquename=false]{biblatex}
\DeclareNameFormat{family}{%
\usebibmacro{name:family}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}%
\usebibmacro{name:andothers}}
\DeclareNameAlias{default}{family}
\DeclareNameAlias{sortname}{default}
\DeclareNameAlias{labelname}{default}
\addbibresource{biblatex-examples.bib}
\begin{document}
\autocite{sigfridsson,cicero,gaonkar:in}
\printbibliography
\end{document}