Год назад, @moeweпридумал способиспользовать biblatex-chicago
только фамилию автора (без названия) при цитировании источника, автор которого указан в библиографии только как автор этого источника (т. е. цитируется только одна работа этого автора).
С тех пор я понял, что это решение сталкивается с проблемами с \headlesscite
и, в сносках, с \textcite
. Есть ли способ сделать вывод (см. ниже) разумным?
МВЭ:
\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 headlesscite и textcite в сносках
Headlessцитата здесь: .
В сноске.1
С текстците.2
С текстовой ссылкой, но без номера страницы.3
2 с добавленными проблемами там же
Повторное цитирование.4
Повторное цитирование с помощью textcite.5
Повторная ссылка с текстовым текстом, но без номера страницы.6
где сноски:
Ворман, 1.
Ворман (, 1) утверждает иное.
Ворман () утверждает иное.
Там же, 1.
Ворман (, 1) утверждает иное.
Ворман () утверждает иное.
Желаемый результат
1 headlesscite и textcite в сносках
Headlessцитата здесь: Worman.
В сноске.1
С текстците.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}