有没有办法在 biblatex-chicago 中的 \textcite 命令中包含作者的名字?这就是我想要实现的:
这是我目前所取得的成就:
这是 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
没有中间名的概念,并且所有中间名都被视为名字的一部分。
它不再相关,但不要用它(\citeyear{<key>})
来获取年份James Hathaway and Michelle Foster (\citeyear{Hathaway.2014})
,而是用它\autocite*{<key>}
来获取删除作者姓名的真实引用
James Hathaway and Michelle Foster \autocite*{Hathaway.2014}