我怎样才能知道biblatex-chicago
在大多数简短的引用中只使用作者的名字,而不这样shorttitle
做会造成歧义?
梅威瑟:
\documentclass{article}
\usepackage[notes]{biblatex-chicago}
\addbibresource{biblatex-examples.bib}
\begin{document}
A.\footcite[1]{worman}
B.\footcite[213]{doody}
A.\footcite[7]{worman}
\end{document}
在这个例子中,我想biblatex-chicago
注意到只有一个引文的作者姓氏是 Worman,因此从脚注 3 中省略标题,打印:
沃尔曼,7。
代替:
沃曼,角色阵容,7.
答案1
biblatex
有测试\ifsingletitle
来检测labelname
参考书目中是否只有一个标题。您可以通过将singletitle=true
选项传递给来激活它biblatex
。
然后我们只需要修改cite:short
宏,使其仅在为 false 时才打印标题\ifsingletitle
。宏定义biblatex-chicago
一开始有点令人生畏,但唯一改变的是最后几行。
\documentclass{article}
\usepackage[notes, singletitle]{biblatex-chicago}
\addbibresource{biblatex-examples.bib}
\renewbibmacro*{cite:short}{%
\usebibmacro{allshort+firstcite+xref}%
\ifthenelse{\ifnameundef{labelname}\OR%
\ifentrytype{inreference}\OR%
\ifentrytype{reference}\OR%
\ifentrytype{mvreference}}%
{\ifthenelse{\iffieldequalstr{entrysubtype}{magazine}\AND\NOT%
\ifentrytype{periodical}}% Simplify .bib creation
{\ifuseauthor%
{\ifboolexpr{%
not test {\iffieldundef{shortjournal}}%
and
((
test {\ifcitation}%
and
togl {cms@citejtabb}%
)
or
(
test {\ifbibliography}%
and
togl {cms@bibjtabb}%
))
}%
{\printfield[shortjournal]{shortjournal}\newcunit}%
{\printfield[journaltitle]{journaltitle}\newcunit}}%
{}}%
{\ifentrytype{manual}%
{\printlist{organization}\isdot\newcunit}%
{}}}%
{\ifboolexpr{%
test {\ifciteidem}%
and
not test {\ifbibliography}%
and
not test {\iffirstonpage}%
and
not togl {cms@noidem}%
and
not togl {cms@headlessnote}%
}%
{\bibstring[\mkibid]{idem\thefield{gender}}%
\classicpunct}%
{\iffieldequalstr{authortype}{anon}%
{\bibleftbracket\printnames{labelname}%
\bibrightbracket\classicpunct}%
{\iffieldequalstr{authortype}{anon?}%
{\bibleftbracket\printnames{labelname}?%
\bibrightbracket\classicpunct}%
{\printnames{labelname}%\usebibmacro{choose+labelname}%
\isdot\classicpunct}}}}%
\ifsingletitle
{}
{\ifboolexpr{%
togl {cms@allshort}%
or
test {\ifbibliography}%
}%
{\printtext[bibhyperref]{%
\printfield[citetitle]{labeltitle}}}%
{\printtext[cmshyperlink]{%
\printfield[citetitle]{labeltitle}}}}}%:\thefield{entrytype}?
\begin{document}
A.\footcite[1]{worman}
B.\footcite[213]{doody}
A.\footcite[7]{worman}
\end{document}