Saída atual

Saída atual

Há um ano, @moeweinventou uma maneirautilizar biblatex-chicagoapenas o sobrenome do autor (sem título) ao citar uma referência cujo autor só aparece na bibliografia como o autor dessa referência (ou seja, apenas uma obra desse autor é citada).

Desde então, percebi que esta solução apresenta problemas com \headlesscitee, em notas de rodapé, com \textcite. Existe alguma maneira de tornar a saída (veja abaixo) sensata?

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}

Saída atual

1 headlesscite e textcite em notas de rodapé

Headlesscite aqui: .

Em uma nota de rodapé.1

Com textcite.2

Com textcite, mas sem número de página.3

2 com questões ibid incluídas

Citação repetida.4

Citação repetida com textcite.5

Citação repetida com textcite, mas sem número de página.6

onde estão as notas de rodapé:

  1. Worman, 1.

  2. Worman (, 1) diz o contrário.

  3. Worman () diz o contrário.

  4. Ibid., 1.

  5. Worman (, 1) diz o contrário.

  6. Worman () diz o contrário.

Saída desejada

1 headlesscite e textcite em notas de rodapé

Sem cabeça, cite aqui: Worman.

Em uma nota de rodapé.1

Com textcite.2

Com textcite, mas sem número de página.3

2 com questões ibid incluídas

Citação repetida.4

Citação repetida com textcite.5

Citação repetida com textcite, mas sem número de página.6

onde estão as notas de rodapé:

  1. Worman, 1.

  2. Worman (1) diz o contrário.

  3. Worman diz o contrário.

  4. Ibid., 1.

  5. Worman (1) diz o contrário.

  6. Worman diz o contrário.

Responder1

Não tenho certeza se esse código funcionará em todas as situações, então você deve testar com muito cuidado.

Mas talvez dê um ponto de partida.

\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}

saída

informação relacionada