Aktueller Output

Aktueller Output

Vor einem Jahr, @moeweeinen Weg gefundenbiblatex-chicagonur den Nachnamen des Autors (keinen Titel) zu verwenden, wenn eine Referenz zitiert wird, deren Autor in der Bibliographie nur als Autor dieser Referenz erscheint (d. h. es wird nur ein Werk dieses Autors zitiert).

Seitdem ist mir klar geworden, dass diese Lösung auf Probleme mit \headlessciteund in Fußnoten mit stößt \textcite. Gibt es eine Möglichkeit, die Ausgabe (siehe unten) sinnvoll zu gestalten?

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}

Aktueller Output

1 Headlesscite und Textcite in Fußnoten

Headlesscite hier: .

In einer Fußnote.1

Mit textcite.2

Mit Textzitat, aber ohne Seitenzahl.3

2 mit eingeworfenen ibid-Problemen

Wiederholtes Zitieren.4

Wiederholtes Zitieren mit textcite.5

Wiederholtes Zitieren mit Textzitat, aber ohne Seitenzahl.6

wo die Fußnoten lauten:

  1. Worman, 1.

  2. Worman (, 1) sagt etwas anderes.

  3. Worman () sagt etwas anderes.

  4. Ebd., 1.

  5. Worman (, 1) sagt etwas anderes.

  6. Worman () sagt etwas anderes.

Gewünschte Ausgabe

1 Headlesscite und Textcite in Fußnoten

Headlesscite hier: Worman.

In einer Fußnote.1

Mit textcite.2

Mit Textzitat, aber ohne Seitenzahl.3

2 mit eingeworfenen ibid-Problemen

Wiederholtes Zitieren.4

Wiederholtes Zitieren mit textcite.5

Wiederholtes Zitieren mit Textzitat, aber ohne Seitenzahl.6

wo die Fußnoten lauten:

  1. Worman, 1.

  2. Worman (1) sagt etwas anderes.

  3. Worman sagt etwas anderes.

  4. Ebd., 1.

  5. Worman (1) sagt etwas anderes.

  6. Worman sagt etwas anderes.

Antwort1

Ich bin überhaupt nicht sicher, ob dieser Code in allen Situationen funktioniert, Sie sollten ihn daher sehr sorgfältig testen.

Aber vielleicht bietet es einen Ausgangspunkt.

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

Ausgabe

verwandte Informationen