在 biblatex 中引用作者的全名

在 biblatex 中引用作者的全名

我如何引用作者的全名(=名字+姓氏)biblatex

@book{Gladwell2005,
    author = {Gladwell, Malcolm},
    address = {New York, NY},
    publisher = {Back Bay Books},
    title = {Blink: The Power of Thinking Without Thinking},
    year = {2005},
}

然后我想引用马尔科姆·格拉德威尔全名的书。所以我要找的是某种\citefullauthorname宏。

答案1

人们可以\DeclarenameAlias{labelname}{<whatever>}在新的作者引用命令中使用。

\documentclass{article}

\usepackage{biblatex}

\DeclareCiteCommand{\citeauthorfirstlast}
  {\boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \DeclareNameAlias{labelname}{first-last}%
   \usebibmacro{prenote}}
  {\ifciteindex
     {\indexnames{labelname}}
     {}%
   \printnames{labelname}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\DeclareCiteCommand{\citeauthorlastfirst}
  {\boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \DeclareNameAlias{labelname}{last-first}%
   \usebibmacro{prenote}}
  {\ifciteindex
     {\indexnames{labelname}}
     {}%
   \printnames{labelname}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@book{Knu86,
  author = {Knuth, Donald E.},
  year = {1986},
  title = {The \TeX book},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}

\citeauthorfirstlast{Knu86}

\citeauthorlastfirst{Knu86}

\citeauthor{Knu86}

\printbibliography

\end{document}

在此处输入图片描述

答案2

您可以定义自己的引用命令,例如此命令,它将完整打印所有名称;

\DeclareCiteCommand*{\citeauthor}
{\defcounter{maxnames}{99}%
\defcounter{minnames}{99}%
\defcounter{uniquename}{2}%
\boolfalse{citetracker}%
\boolfalse{pagetracker}%
\usebibmacro{prenote}}
{\ifciteindex{\indexnames{labelname}}{}%
\printnames{labelname}}
{\multicitedelim}
{\usebibmacro{postnote}}

您可以像这样使用它\citeauthor*{Gladwell2005}(请务必使用带星号的版本)。

来源

答案3

以下是我的做法:

\nocite{reid1806analysis} Thomas Reid (1806, p.~91) pointed out the same problem
and reprimanded Aristotle severely for this and other errors.

是的,如果我更改 Reid 引文,这会导致冗余和出错。但它会生成正确的输出,不需要调试 LaTeX/BibTeX arcana,而且我还有博士学位要完成。

相关内容