biblatex-chicago:文本中的名字(多于一位作者)

biblatex-chicago:文本中的名字(多于一位作者)

有没有办法在 biblatex-chicago 中的 \textcite 命令中包含作者的名字?这就是我想要实现的:

James Hathaway 和 Michelle Foster (2014) 写了一本书。在某一页上,他们写了一些特别的东西 (123)。

这是我目前所取得的成就:

这是一种简单的方法:Hathaway 和 Foster (2014) 写了一本书。在某一页上,他们写了一些特别的东西 (123)。使用 textcite 和 autocite 命令在这里很顺利。这部分实现了我想要的:James Hathaway 和 Michelle Foster (2014) 写了一本书。在某一页上,他们写了一些特别的东西 (Hathaway 和 Foster 2014, 123)。看起来,使用 citeyear 和 autocite 不相容。

这是 MWEB:

\documentclass[fontsize=10, twoside=true]{scrbook}

\usepackage[british]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{mathptmx}
\usepackage[authordate,backend=biber,isbn=false,legalnotes=false,alldates=comp]{biblatex-chicago}

\addbibresource{\jobname.bib}

\begin{filecontents}[force]{\jobname.bib}
    @book{Hathaway.2014,
        author = {Hathaway, James C. and Foster, Michelle},
        year = {2014},
        title = {The Law of Refugee Status},
        address = {Cambridge},
        publisher = {{Cambridge UP}},
        isbn = {9780511998300},
        doi = {10.1017/CBO9780511998300},
    }
\end{filecontents}

\begin{document}
    
% !BIB TS-program = biber
    
This is a straightforward way: \textcite{Hathaway.2014} wrote a book. On a certain page, they write something particular \autocite[123]{Hathaway.2014}. Using textcite and autocite commands works smoothly here.\citereset\\

This partly achieves what I want: James Hathaway and Michelle Foster (\citeyear{Hathaway.2014}) wrote a book. On a certain page, they write something particular \autocite[123]{Hathaway.2014}. Using citeyear and autocite don't go together, it seems.\citereset  
\end{document}

我如何在文本中获取两位作者的名字并保留 \autocite 命令并使其简短?此外,我想在文本中变化并使用“James Hathaway and Michelle Foster (2014)”以及“Hathaway and Foster (2014)”,具体取决于哪个版本在风格上合适。

答案1

您可以定义一个新版本,\textcite在本地更改labelname格式以输出完整的名称。

\documentclass[fontsize=10, twoside=true]{scrbook}
\usepackage[british]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{mathptmx}
\usepackage[authordate,backend=biber,isbn=false,legalnotes=false,alldates=comp]{biblatex-chicago}

\newrobustcmd*{\textcitefullname}{%
  \AtNextCite{\DeclareNameAlias{labelname}{given-family}}%
  \textcite}

\begin{filecontents}{\jobname.bib}
@book{Hathaway.2014,
  author    = {Hathaway, James C. and Foster, Michelle},
  year      = {2014},
  title     = {The Law of Refugee Status},
  address   = {Cambridge},
  publisher = {Cambridge UP},
  isbn      = {9780511998300},
  doi       = {10.1017/CBO9780511998300},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
This is a straightforward way:
\textcite{Hathaway.2014} wrote a book.
On a certain page, they write something particular \autocite[123]{Hathaway.2014}.
Using textcite and autocite commands works smoothly here.
\citereset

Tada:
\textcitefullname{Hathaway.2014} wrote a book.
On a certain page, they write something particular \autocite[123]{Hathaway.2014}.
Using textcite and autocite commands works smoothly here.
\citereset

This partly achieves what I want:
James Hathaway and Michelle Foster \autocite*{Hathaway.2014} wrote a book.
On a certain page, they write something particular \autocite[123]{Hathaway.2014}.
Using citeyear and autocite don't go together, it seems.
\citereset
\end{document}

请注意,这也会产生中间名的首字母,因为biblatex没有中间名的概念,并且所有中间名都被视为名字的一部分。

Tada:James C. Hathaway 和 Michelle Foster (2014) 写了一本书。在某一页上,他们写了一些特别的东西 (123)。在这里使用 textcite 和 autocite 命令很顺畅。


它不再相关,但不要用它(\citeyear{<key>})来获取年份James Hathaway and Michelle Foster (\citeyear{Hathaway.2014}),而是用它\autocite*{<key>}来获取删除作者姓名的真实引用

James Hathaway and Michelle Foster \autocite*{Hathaway.2014}

相关内容