Nur \cite mit Kapitälchen, \footcite nicht

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Nur \cite mit Kapitälchen, \footcite nicht

Re: Nur \cite mit Kapitälchen, \footcite nicht

von UvW » Di 23. Jun 2020, 15:11

Super. Vielen Dank!!

Re: Nur \cite mit Kapitälchen, \footcite nicht

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}

Re: Nur \cite mit Kapitälchen, \footcite nicht

von UvW » Mo 22. Jun 2020, 09:23

Wow. Ok vielen Dank.

Das einzige was noch nicht passt, ist dass \textcite auch ein Hochzahl mit \footcite einfügt.

Was ich versuche ist mit folgender Eingabe:

Wie \textcite{nussbaum] in seinem Paper beschreibt, passiert... Diese Beschreibung findet sich auch in weiteren Quellen \footcite{sigfridsson}

folgende Ausgabe zu bekommen:

Wie NUSSBAUM in seinem Paper beschreibt, passiert... Diese Beschreibung findet sich auch in weiteren Quellen^1

Re: Nur \cite mit Kapitälchen, \footcite nicht

von MoeWe » Fr 19. Jun 2020, 16:49

UvW hat geschrieben:
Fr 19. Jun 2020, 13:45

Ok. Ich dachte man kann den Befehl

\footcite

direkt beeinflussen. Daher habe ich auf das MWE verzichtet.

Kann man schon, aber man muss in den allermeisten Fällen für solche Dinge den genutzten Stil wissen, um gewisse Kleinigkeiten korrekt einrichten zu können.

Hier scheint es mir auf den ersten Blick relativ simpel den \textcite-Code von verbose-ibid.cbx zu authoryear-icomp zu transplantieren.

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

\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}
\printbibliography
\end{document}

Re: Nur \cite mit Kapitälchen, \footcite nicht

von UvW » Fr 19. Jun 2020, 13:45

Ok. Ich dachte man kann den Befehl

\footcite

direkt beeinflussen. Daher habe ich auf das MWE verzichtet. Ich benutze

\usepackage[style=authoryear-ibid, backend=biber, maxcitenames=2]{biblatex}

damit bei wiederholter Quellenangabe ein

ebd.

angegeben wird.

Lässt sich das verknüpfen?

Mein MWE:

\documentclass[a4paper, 12pt]{scrreprt}
\usepackage[utf8]{inputenc} 
\usepackage[T1]{fontenc} % Textsonderzeichen
\usepackage[ngerman]{babel} % Umlaute
\usepackage{lmodern} % Schriftstil

\usepackage[style=authoryear-ibid, backend=biber, maxcitenames=2]{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}}
\makeatother

\TurnIntoContextSensitiveCommand{mkbibnamefamily}

\DefineContextSensitiveCommand{mkbibnamefamily}[1]{#1}
\DefineContextSensitiveCommand[textcite]{mkbibnamefamily}[1]{\textsc{#1}}


\addbibresource{biblatex-examples.bib}


\begin{document}
Lorem \textcite{sigfridsson} \\
ipsum \textcite{nussbaum} \\
dolor \textcite{nussbaum}\\
sit \footcite[Vgl.][10]{sigfridsson} \\
amet \footcite[Vgl.][23]{sigfridsson}
\printbibliography
\end{document}

Re: Nur \cite mit Kapitälchen, \footcite nicht

von MoeWe » Fr 19. Jun 2020, 09:35

Nimm doch einfach meinen Code (insbes. also style=verbose,). Da ist keine Jahreszahl in \textcite. Wenn Du weiterhin Deinen Code nutzen möchtest, dann musst Du \textcite dort anpassen. Wie das geht, kann ich Dir aber nur sagen, wenn Du den status quo in einem Minimalbeispiel mit uns teilst.

Re: Nur \cite mit Kapitälchen, \footcite nicht

von UvW » Fr 19. Jun 2020, 09:33

Super!! Vielen Dank MoeWe, für die schnelle Antwort.

mit dem Befehl

\textcite

gibt er mir jetzt aber noch die Jahreszahl mit. Kann ich das noch unterdrücken, dass ich lediglich den Namen des Autors/ der Autoren in Kapitälchen bekomme?

In dem Bereich von Latex kenne ich mich leider überhaupt nicht aus.

Viele Grüße

Re: Nur \cite mit Kapitälchen, \footcite nicht

von MoeWe » Do 18. Jun 2020, 18:36

Wir könnten das Format je nach delimiter context umstellen. Eigentlich wird der delimiter context nur für Zeichensetzung verwendet, aber niemand hindert uns daran, das System auch für andere Zwecke zu gebrauchen.

Man kann die Idee etwas verallgemeinern. Mit \TurnIntoContextSensitiveCommand kannst Du einen Befehl wie \mkbibnamefamily in einen context sensitive macro verwandeln. Mit \DefineContextSensitiveCommand kannst Du dann die kontextabhängigen Definitionen angeben. Wenn das optionale Argument leer bleibt, dann definierst Du den globalen Kontext. Mit optionalem Argument ist die Definition speziell für den angegebenen Kontext. Für die Befehlsdefinition nutzt \DefineContextSensitiveCommand die gleiche Syntax wie \(re)newcommand, nur dass Du hier den Backslash im Befehlsnamen weglässt.

\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=verbose, backend=biber]{biblatex}

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

\TurnIntoContextSensitiveCommand{mkbibnamefamily}

\DefineContextSensitiveCommand{mkbibnamefamily}[1]{#1}
\DefineContextSensitiveCommand[textcite]{mkbibnamefamily}[1]{\textsc{#1}}


\addbibresource{biblatex-examples.bib}


\begin{document}
Lorem \textcite{sigfridsson}
ipsum \textcite{nussbaum}
\printbibliography
\end{document}

Nur \cite mit Kapitälchen, \footcite nicht

von UvW » Do 18. Jun 2020, 14:14

Hallo zusammen,

ich würde gerne für meine Ausarbeitung zwei Citationsarten verwenden: \cite und \footcite Im Fließtext soll lediglich der Autor als Kapitälchen erscheinen:

Nach \cite{Winkler.2020} ist die Aussage...

Nach WINKLER ist die Aussage...

in der Fußzeile soll dann die genaue Quellenangabe stehen:

 Diese Aussagen werden durch die Quelle bestätigt \footcite[Vgl.][16]{Winkler.2020}

(Fußnote) Vgl. Winkler (2020), S.16.

Mit

\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}

erhalte ich auch die Kapitälchen. Der Befehl beeinflusst aber auch die \footcite und erstellt dort ebenfalls Kapitälchen. Dort möchte ich aber keine Kapitälchen haben (s. Beispiel oben). Wie kann ich nur die \cite Anwendung abändern?

Danke für Eure Hilfe


Nach oben