1年前、@moewe方法を考案した参考文献を引用するbiblatex-chicago
際、その著者が参考文献の著者としてのみ参考文献目録に記載される場合(つまり、その著者の著作が 1 つだけ引用される場合)、著者の姓のみ(タイトルなし)を使用します。
それ以来、私はこの解決策が および\headlesscite
、脚注では で問題に遭遇することに気づきました\textcite
。出力 (下記参照) を意味のあるものにする方法はありますか?
MWE:
\documentclass{article}
\usepackage[%
ibidtracker=true,
notes,
singletitle,
short]{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}
\section{headlesscite and textcite in footnotes}
Headlesscite here: \headlesscite{worman}.
\mancite
In a footnote.\footcite[1]{worman}
\mancite
With textcite.\footnote{\Textcite[1]{worman} says otherwise.}
\mancite
With textcite but no page number.\footnote{\Textcite{worman} says otherwise.}
\section{with ibid issues thrown in}
Repeated citation.\footcite[1]{worman}
Repeated citation with textcite.\footnote{\Textcite[1]{worman} says otherwise.}
Repeated citation with textcite but no page number.\footnote{\Textcite{worman} says otherwise.}
\end{document}
現在の出力
1 脚注内の見出しなし引用とテキスト引用
ヘッドレス引用はこちら: .
脚注1
textcite.2 を使用
テキスト引用あり、ページ番号なし。3
2 同上問題も含め
繰り返し引用.4
textcite.5 による繰り返し引用
テキスト引用で繰り返し引用されているが、ページ番号がない。6
脚注は次のとおりです。
ワーマン、1。
ワーマン(1)はそうではないと言う。
ワーマン()はそうではないと言います。
同上、1.
ワーマン(1)はそうではないと言う。
ワーマン()はそうではないと言います。
望ましい出力
1 脚注内の見出しなし引用とテキスト引用
Headlessciteはこちら:Worman。
脚注1
textcite.2 を使用
テキスト引用あり、ページ番号なし。3
2 同上問題も含め
繰り返し引用.4
textcite.5 による繰り返し引用
テキスト引用で繰り返し引用されているが、ページ番号がない。6
脚注は次のとおりです。
ワーマン、1。
ウォーマン(1)はそうではないと言う。
ウォーマンはそうではないと言う。
同上、1.
ウォーマン(1)はそうではないと言う。
ウォーマンはそうではないと言う。
答え1
このコードがすべての状況で機能するかどうかはまったくわかりませんので、慎重にテストする必要があります。
しかし、おそらくそれは出発点を与えるでしょう。
\documentclass{article}
\usepackage[%
ibidtracker=true,
notes,
singletitle,
short]{biblatex-chicago}
\addbibresource{biblatex-examples.bib}
% ------------------------------------------------------------------------------
% cite:short modified by moewe from https://tex.stackexchange.com/a/408916/87678
% ------------------------------------------------------------------------------
\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}?
% ------------------------------
% Make \headlesscite more robust
% ------------------------------
\DeclareCiteCommand{\headlesscite}
{\usebibmacro{hlcprenote}}
{\usebibmacro{citeindex}%
\toggletrue{cms@headlessnote}%
\ifsingletitle
{}
{\usebibmacro{clear+labelname}%
\clearname{labelname}}%
\usebibmacro{cite}%
\global\toggletrue{cms@noidem}}
{\multicitedelim}
{\usebibmacro{cite:postnote}}
\DeclareCiteCommand{\headlessparencite}[\mkbibparens]
{\usebibmacro{hlcprenote}}
{\usebibmacro{citeindex}%
\toggletrue{cms@headlessnote}%
\ifsingletitle
{}
{\usebibmacro{clear+labelname}%
\clearname{labelname}}%
\usebibmacro{cite}%
\global\toggletrue{cms@noidem}}
{\multicitedelim}
{\usebibmacro{cite:postnote}}
\DeclareCiteCommand{\headlessparenshortcite}[\mkbibparens]
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\ifboolexpr{%
togl{cms@firstshort}%
and
not test {\iffieldundef{shorthand}}%
}%
{\usebibmacro{cite:shorthand}}%
{\toggletrue{cms@headlessnote}%
\toggletrue{cms@shortnote}%
\togglefalse{cms@fullnote}%
\ifsingletitle
{}
{\clearname{labelname}}%
\usebibmacro{cite:short}}%
\global\toggletrue{cms@noidem}}
{\multicitedelim}
{\usebibmacro{cite:postnote}}
% ---------------------------------------
% Make \textcite in footnotes more robust
% ---------------------------------------
\renewcommand*{\postnotewrapper}{%
\iftoggle{cms@modpostnote}%
{\ifboolexpr{%
test {\iffieldstart{postnote}{,}}%
or
test {\iffieldstart{postnote}{\bibrangessep}}%
}%
{\setunit{\addcomma}}% w/ or w/o \addspace?
{\ifboolexpr{%
test {\iffieldstart{postnote}{;}}%
or
test {\iffieldstart{postnote}{:}}%
or
test {\iffieldstart{postnote}{.}}%
}%
{}{\setunit{\postnotedelim}}}}%
{\setunit{\postnotedelim}}}%
\renewcommand{\foottextcite}{%
\headlessparenshortcite}
\renewcommand{\foottextcites}{%
\headlessparenshortcites}
\DeclareCiteCommand{\headlessparenshortcite}
{\ifboolexpr{
test {\ifsingletitle}
and
test {\iffieldundef{postnote}}
}
{}
{\addspace\bibopenparen}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\ifboolexpr{%
togl{cms@firstshort}%
and
not test {\iffieldundef{shorthand}}%
}%
{\usebibmacro{cite:shorthand}}%
{\toggletrue{cms@headlessnote}%
\toggletrue{cms@shortnote}%
\togglefalse{cms@fullnote}%
\clearname{labelname}%
\setunit{\addspace}%
\usebibmacro{cite:short}%
}%
\global\toggletrue{cms@noidem}}
{\multicitedelim}
{\ifboolexpr{
test {\ifsingletitle}
and
test {\iffieldundef{postnote}}
}
{\usebibmacro{cite:postnote}}
{\usebibmacro{cite:postnote}%
\bibcloseparen}}
\begin{document}
\null\vfill
\section{headlesscite and textcite in footnotes}
Headlesscite here: \headlesscite[1]{worman}.
\mancite
In a footnote.\footcite{worman}
\mancite
With textcite.\footnote{\Textcite[1]{worman} says otherwise.}
\mancite
With textcite but no page number.\footnote{\Textcite{worman} says otherwise.}
\section{with ibid issues thrown in}
Repeated citation.\footcite[1]{worman}
Repeated citation with textcite.\footnote{\Textcite[1]{worman} says otherwise.}
Repeated citation with textcite but no page number.\footnote{\Textcite{worman} says otherwise.}
\end{document}