我经常想以这种方式内联引用:
Please read the book "Title of my book" from Author.
或者
Please read the book "Title of my book" (Author 2001).
两者都需要使用两个“cite”命令,因此引用两次。
Please read the book \citetitle{A01} from \citeauthor{A01}
Please read the book \citetitle{A01} \parencite{A01}
这让我很困扰,因为我计划做一些关于引用的统计数据(哪位作者被引用最多,...),而且我猜(我还没有研究过这个问题)这会产生一些问题。
\textcite
也好不到哪里去,它无法按照我的风格(芝加哥)打印标题。我无法使用,\fullcite
因为它无法与文本集成。
有没有办法用一个命令引用标题和作者(内联)?
如果需要,请进行 MWE:
\begin{filecontents}{\jobname.bib}
@article{A01,
author = {Author, A.},
date = {2001},
title = {An article title}},
journaltitle = {A journal},
number = {1},
pages = {1--4},
}
\end{filecontents}
\documentclass{article}
\usepackage{csquotes}
\usepackage[authordate]{biblatex-chicago}
\usepackage{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
I encourage you to read the book \citetitle{A01} \parencite{A01}.
\printbibliography
\end{document}
答案1
我们可以定义两个新的 cite 命令\ppracite
和\pprbcite
。
\DeclareCiteCommand{\ppracite}
{\usebibmacro{prenote}}
{\ifciteindex
{\indexfield{indextitle}}
{}%
\printfield[citetitle]{labeltitle}%
\setunit{\addspace}%
\printtext[parens]{\usebibmacro{cite}}}
{\multicitedelim}
{\usebibmacro{postnote}}
\NewBibliographyString{pprby}
\DefineBibliographyStrings{english}{pprby = {by}}
\DeclareCiteCommand{\pprbcite}
{\usebibmacro{prenote}}
{\ifciteindex
{\indexfield{indextitle}}
{}%
\printfield[citetitle]{labeltitle}%
\setunit{\addspace}%
\bibstring{pprby}%
\setunit{\addspace}%
\printnames{labelname}}
{\multicitedelim}
{\usebibmacro{postnote}}