如何引用作者的全名?

如何引用作者的全名?

我正在尝试创建 biblatex 命令的版本,以引用作者的完整姓名。下面的代码似乎让我完成了一半,尽管它只使用名字的首字母,而不是完整名字(或者更好的是,完整名字加上中间名的首字母),我更喜欢后者。

如果还有其他方法可以改进以下宏定义,我也会很高兴知道。

\newrobustcmd*{\nextcitefullname}{%
    \AtNextCite{\DeclareNameAlias{labelname}{given-family}}% from https://tex.stackexchange.com/a/537722/303
}

% Not sure if I should be using \DeclareCiteCommand here instead.
\NewDocumentCommand \citeauthorfullname { s } {
    \nextcitefullname
    \IfBooleanTF #1 { \citeauthor* } { \citeauthor }
}
\NewDocumentCommand \Citeauthorfullname { s } {
    \nextcitefullname
    \IfBooleanTF #1 { \Citeauthor* } { \Citeauthor }
}
\NewDocumentCommand \textcitefullname { } {
    \nextcitefullname
    \textcite
}
\NewDocumentCommand \Textcitefullname { } {
    \nextcitefullname
    \textcite
}

通过上述内容,我将在我的文档中得到例如“D. Hume”,而不是“David Hume”。

答案1

您的代码在标准样式和默认设置下可以正常工作。它可以稍微简化,但它可以完成预期的工作。

但是,如果您(或您的样式)指定了该giveninits选项,代码将不会为您提供完整的名字。在这种情况下,您需要通过将此选项的内部切换设置为 来本地对抗该选项false

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[
  backend=biber,
  style=authoryear,
  giveninits=true, uniquename=init, 
  natbib
]{biblatex}

\newrobustcmd*{\nextcitefullname}{%
  \AtNextCite{%
    \DeclareNameAlias{labelname}{given-family}%
    \togglefalse{abx@bool@giveninits}}}

\newcommand\citeauthorfullname{%
  \nextcitefullname\citeauthor}
  
\newcommand\Citeauthorfullname{%
  \nextcitefullname
  \Citeauthor}
  
\newcommand\textcitefullname{%
  \nextcitefullname
  \textcite}
  
\newcommand\Textcitefullname{%
  \nextcitefullname
  \textcite}

\addbibresource{biblatex-examples.bib}

\begin{document}
Lorem \autocite{sigfridsson}

\citeauthor{sigfridsson}

\citeauthorfullname{sigfridsson}

\citeauthor{aksin}

\citeauthor*{aksin}

\citeauthorfullname{aksin}

\citeauthorfullname*{aksin}

Lorem \autocite{sigfridsson}

\printbibliography
\end{document}

Özge Aksın、Hayati Türkmen、Levent Artok、Bekir Çetinkaya、Chaoying Ni、Orhan Büyükgüngör 和 Erhan Özkal


正如评论中提到的,biblatex没有中间名的概念,因此没有简单的方法只显示名字和缩写中间名。另请参阅https://github.com/plk/biblatex/issues/1094在 biblatex 中仅缩写中间名使用 BibLaTeX 的参考书目:不要缩写第一个名字,并缩写所有其他名字BibLaTeX:如何仅保留第一个名字?

相关内容