von MoeWe » Mo 22. Jun 2020, 18:49
Wenn Du die Fußnote nicht automatisch direkt am Namen erzeugt haben möchtest, dann nutzt Du besser \citeauthor (das trotz des Namens wie andere Zitat-Befehle auch labelname ausgibt, also z.B. auch den editor, wenn es keinen author gibt) und gibst \footcite manuell an.
Du musst dann das mkbibnamefamily-Format für citeauthor anpassen, aber das geht mit \DefineContextSensitiveCommand ja ganz einfach.
Wenn Du \textcite dann in der neuen Form gar nicht mehr brauchst, könnte die Definition von oben natürlich wieder weg, aber ich lasse sie mal vorsichtshalber drin.
\documentclass[a4paper, 12pt]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{lmodern}
\usepackage[style=authoryear-ibid, backend=biber, maxcitenames=2, autocite=footnote]{biblatex}
\usepackage[german=quotes]{csquotes}
\makeatletter
\newrobustcmd{\TurnIntoContextSensitiveCommand}[1]{%
\csdef{#1}{%
\ifcsundef{#1@\blx@delimcontext}
{\csuse{#1@global}}
{\csuse{#1@\blx@delimcontext}}}}
\newcommand{\DefineContextSensitiveCommand}[2][global]{%
\csundef{#2@#1}%
\expandafter\newcommand\expandafter{\csname #2@#1\endcsname}}
\renewbibmacro*{textcite}{%
\ifnameundef{labelname}
{\printfield[citetitle]{labeltitle}}
{\printnames{labelname}}}
\newbibmacro*{textcite:init}{%
\citetrackerfalse%
\pagetrackerfalse%
\iffirstcitekey
{\global\undef\cbx@lasthash}
{}}
\newbibmacro*{textcite:count}{%
\stepcounter{textcitetotal}%
\ifnumgreater{\value{uniquelist}}{\value{maxnames}}
{\ifnumgreater{\value{uniquelist}}{\value{textcitemaxnames}}
{\setcounter{textcitemaxnames}{\value{uniquelist}}}
{}}
{\ifnumless{\value{labelname}}{\value{maxnames}}
{\ifnumgreater{\value{labelname}}{\value{textcitemaxnames}}
{\setcounter{textcitemaxnames}{\value{labelname}}}
{}}
{\ifnumgreater{\value{maxnames}}{\value{textcitemaxnames}}
{\setcounter{textcitemaxnames}{\value{maxnames}}}
{}}}}
\DeclareCiteCommand{\cbx@textcite}
{\usebibmacro{textcite:init}}
{\iffieldequals{namehash}{\cbx@lasthash}
{}
{\iffirstcitekey
{}
{\textcitedelim}%
\stepcounter{textcitecount}%
\usebibmacro{textcite}%
\savefield{namehash}{\cbx@lasthash}}}
{}
{}
\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite\footcite]
{\usebibmacro{textcite:init}%
\gdef\cbx@savedkeys{}%
\DeferNextCitekeyHook}
{\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0}
{\protected@xappto\cbx@footcite@args{%
(\thefield{multiprenote})(\thefield{multipostnote})}}
{}%
\xappto\cbx@savedkeys{\thefield{entrykey},}%
\iffieldequals{namehash}{\cbx@lasthash}
{}
{\usebibmacro{textcite:count}%
\savefield{namehash}{\cbx@lasthash}}%
\ifnumequal{\value{citecount}}{\value{citetotal}}
{\protected@xappto\cbx@textcite@args{{\cbx@savedkeys}}%
\protected@xappto\cbx@footcite@args{%
[\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}%
\iflastcitekey
{\protected@xappto\cbx@textcite@args{\thefield{postpunct}}%
\protected@xappto\cbx@footcite@args{\nopunct}}
{}}
{}}
{}
{}
% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
% the normal textcite context
\DeclareDelimcontextAlias{cbx@textcite}{textcite}
\newrobustcmd{\cbx@textcite@init}[3]{%
\setcounter{textcitetotal}{0}%
\setcounter{textcitecount}{0}%
\setcounter{textcitemaxnames}{0}%
\def\cbx@textcite@args{#1}\def\cbx@footcite@args{#2}#3%
\cbx@textcite@args\@empty\cbx@footcite@args\@empty}
\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{}
\DeclareMultiCiteCommand{\textcites}
[\cbx@textcites@init\cbx@textcites\footcites]{\textcite}{}
\let\cbx@textcites@init\cbx@textcite@init
\pretocmd{\cbx@textcites@init}{%
\UseNextMultiCiteHook%
\AtNextMultiCite{%
\renewbibmacro{multiprenote}{}%
\renewbibmacro{multipostnote}{}}}{}{}
\makeatother
\TurnIntoContextSensitiveCommand{mkbibnamefamily}
\DefineContextSensitiveCommand{mkbibnamefamily}[1]{#1}
\DefineContextSensitiveCommand[textcite]{mkbibnamefamily}[1]{\textsc{#1}}
\DefineContextSensitiveCommand[citeauthor]{mkbibnamefamily}[1]{\textsc{#1}}
\addbibresource{biblatex-examples.bib}
\begin{document}
Lorem \textcite{sigfridsson}
ipsum \textcite{nussbaum}
dolor \textcite{nussbaum}
sit \autocite[Vgl.][10]{sigfridsson}
amet \autocite[Vgl.][23]{sigfridsson}
Oder manuell \citeauthor{sigfridsson} und erst später das ganze Zitat\footcite{sigfridsson}
\printbibliography
\end{document}
Wenn Du die Fußnote nicht automatisch direkt am Namen erzeugt haben möchtest, dann nutzt Du besser `\citeauthor` (das trotz des Namens wie andere Zitat-Befehle auch `labelname` ausgibt, also z.B. auch den `editor`, wenn es keinen `author` gibt) und gibst `\footcite` manuell an.
Du musst dann das `mkbibnamefamily`-Format für `citeauthor` anpassen, aber das geht mit `\DefineContextSensitiveCommand` ja ganz einfach.
Wenn Du `\textcite` dann in der neuen Form gar nicht mehr brauchst, könnte die Definition von oben natürlich wieder weg, aber ich lasse sie mal vorsichtshalber drin.
```
\documentclass[a4paper, 12pt]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{lmodern}
\usepackage[style=authoryear-ibid, backend=biber, maxcitenames=2, autocite=footnote]{biblatex}
\usepackage[german=quotes]{csquotes}
\makeatletter
\newrobustcmd{\TurnIntoContextSensitiveCommand}[1]{%
\csdef{#1}{%
\ifcsundef{#1@\blx@delimcontext}
{\csuse{#1@global}}
{\csuse{#1@\blx@delimcontext}}}}
\newcommand{\DefineContextSensitiveCommand}[2][global]{%
\csundef{#2@#1}%
\expandafter\newcommand\expandafter{\csname #2@#1\endcsname}}
\renewbibmacro*{textcite}{%
\ifnameundef{labelname}
{\printfield[citetitle]{labeltitle}}
{\printnames{labelname}}}
\newbibmacro*{textcite:init}{%
\citetrackerfalse%
\pagetrackerfalse%
\iffirstcitekey
{\global\undef\cbx@lasthash}
{}}
\newbibmacro*{textcite:count}{%
\stepcounter{textcitetotal}%
\ifnumgreater{\value{uniquelist}}{\value{maxnames}}
{\ifnumgreater{\value{uniquelist}}{\value{textcitemaxnames}}
{\setcounter{textcitemaxnames}{\value{uniquelist}}}
{}}
{\ifnumless{\value{labelname}}{\value{maxnames}}
{\ifnumgreater{\value{labelname}}{\value{textcitemaxnames}}
{\setcounter{textcitemaxnames}{\value{labelname}}}
{}}
{\ifnumgreater{\value{maxnames}}{\value{textcitemaxnames}}
{\setcounter{textcitemaxnames}{\value{maxnames}}}
{}}}}
\DeclareCiteCommand{\cbx@textcite}
{\usebibmacro{textcite:init}}
{\iffieldequals{namehash}{\cbx@lasthash}
{}
{\iffirstcitekey
{}
{\textcitedelim}%
\stepcounter{textcitecount}%
\usebibmacro{textcite}%
\savefield{namehash}{\cbx@lasthash}}}
{}
{}
\DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite\footcite]
{\usebibmacro{textcite:init}%
\gdef\cbx@savedkeys{}%
\DeferNextCitekeyHook}
{\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0}
{\protected@xappto\cbx@footcite@args{%
(\thefield{multiprenote})(\thefield{multipostnote})}}
{}%
\xappto\cbx@savedkeys{\thefield{entrykey},}%
\iffieldequals{namehash}{\cbx@lasthash}
{}
{\usebibmacro{textcite:count}%
\savefield{namehash}{\cbx@lasthash}}%
\ifnumequal{\value{citecount}}{\value{citetotal}}
{\protected@xappto\cbx@textcite@args{{\cbx@savedkeys}}%
\protected@xappto\cbx@footcite@args{%
[\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}%
\iflastcitekey
{\protected@xappto\cbx@textcite@args{\thefield{postpunct}}%
\protected@xappto\cbx@footcite@args{\nopunct}}
{}}
{}}
{}
{}
% textcite has nested \DeclareCiteCommand definitions for textcite and we want to use
% the normal textcite context
\DeclareDelimcontextAlias{cbx@textcite}{textcite}
\newrobustcmd{\cbx@textcite@init}[3]{%
\setcounter{textcitetotal}{0}%
\setcounter{textcitecount}{0}%
\setcounter{textcitemaxnames}{0}%
\def\cbx@textcite@args{#1}\def\cbx@footcite@args{#2}#3%
\cbx@textcite@args\@empty\cbx@footcite@args\@empty}
\DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{}
\DeclareMultiCiteCommand{\textcites}
[\cbx@textcites@init\cbx@textcites\footcites]{\textcite}{}
\let\cbx@textcites@init\cbx@textcite@init
\pretocmd{\cbx@textcites@init}{%
\UseNextMultiCiteHook%
\AtNextMultiCite{%
\renewbibmacro{multiprenote}{}%
\renewbibmacro{multipostnote}{}}}{}{}
\makeatother
\TurnIntoContextSensitiveCommand{mkbibnamefamily}
\DefineContextSensitiveCommand{mkbibnamefamily}[1]{#1}
\DefineContextSensitiveCommand[textcite]{mkbibnamefamily}[1]{\textsc{#1}}
\DefineContextSensitiveCommand[citeauthor]{mkbibnamefamily}[1]{\textsc{#1}}
\addbibresource{biblatex-examples.bib}
\begin{document}
Lorem \textcite{sigfridsson}
ipsum \textcite{nussbaum}
dolor \textcite{nussbaum}
sit \autocite[Vgl.][10]{sigfridsson}
amet \autocite[Vgl.][23]{sigfridsson}
Oder manuell \citeauthor{sigfridsson} und erst später das ganze Zitat\footcite{sigfridsson}
\printbibliography
\end{document}
```