Citeauthor-Befehl Thema ist als GELÖST markiert

Erstellung eines Literaturverzeichnisses mit BibTeX, Biber, BibLaTeX und Co.


Ben_NRW

Citeauthor-Befehl

Beitrag von Ben_NRW »

Hallo @all :-D

leider halte ich jetzt schon mehrere Tage nach einer Lösung Ausschau ohne wirklich etwas brauchbares gefunden zu haben =(

Ich versuche meine Zitierungen im Test anzupassen. Dabei geht es um folgendes:

Der Befehl citeauthor soll mir dabei helfen, die zitierten Autoren wie folgt aussehen zu lassen:
bla bla bla Hilgert, J.; Hoffmann, M. und Panse, A. bla bla bla.

Hieran ist mir wichtig, dass die Auflistung wie folgt aussieht: Name Komma Vorname(abgekürzt) Semikolon (nächster Name und beim letzten Namen ein "und"). Das erreiche ich mit dem Code
\DeclareNameFormat{default}{%
\ifuseprefix
{\usebibmacro{name:last-first}{#1}{#4}{#5}{#8}}
{\usebibmacro{name:last-first}{#1}{#4}{#6}{#8}}%
\usebibmacro{name:andothers}}

\DeclareCiteCommand{\citeauthor}
{\boolfalse{citetracker}%
	\boolfalse{pagetracker}%
	\usebibmacro{prenote}}
{\ifciteindex
	{\indexnames{labelname}}
	{}%
	\printnames[citename]{labelname}}
{\multicitedelim}
{\usebibmacro{postnote}}

\renewcommand*{\multinamedelim}{\addsemicolon\addspace}
Soweit so gut, denn dass bekomme ich auch noch hin =) Allerdings werden durch den letzten Befehl auch anderen cite-Befehle verändert und es sieht wie folgt aus:
bla bla bla (Hilgert; Hoffmann und Panse, 2015).

Ich möchte nämlich bei der Angabe in Klammern (wie man es sonst auch gewohnt ist) die Namen nicht durch ein Semikolon, sondern durch ein einfaches Komma getrennt haben - sprich es soll dann wie folgt aussehen, wenn ich wieder den normalen \cite Befehl verwende:
bla bla bla (Hilgert, Hoffmann und Panse, 2015).

Meine Frage nun: Wie kann ich den Code dementsprechend umbauen? Oder gibt es einen alternativen Code, der die Formatierungen nicht allesamt, sondern nur getrennt voneinander verändert?

Vielen Dank für eure Mühe und Hilfe!!!

Viele Grüße Ben

Gast

Beitrag von Gast »

Ich halte es für keine überragende Idee, das default-Namensformat so zu verändern,
\DeclareNameAlias{default}{last-first}
sollte reichen (ja nach Wunsch eventuell mit firstinits=true).

Deine Änderung von \multinamedelim kannst Du \citeauthor-lokal machen

MWE
\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear,maxnames=999,firstinits=true]{biblatex}

\DeclareNameAlias{default}{last-first}

\DeclareCiteCommand{\citeauthor}
  {\renewcommand*{\multinamedelim}{\addsemicolon\addspace}%
   \boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \usebibmacro{prenote}}
  {\ifciteindex
     {\indexnames{labelname}}
     {}%
   \printnames[citename]{labelname}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\addbibresource{biblatex-examples.bib}
\begin{document}
\cite{herrmann} und \citeauthor{herrmann}

\printbibliography
\end{document}

Ben_NRW

Citeauthor-Befehl

Beitrag von Ben_NRW »

DAS IST ES!!!!

TAUSEND DANK :D :D :D

Das default-Namensformat muss ich anscheinend jedoch so verändern, da ich die Vornamen sonst nicht abgekürzt hinbekomme, aber so oder so läuft es jetzt jedenfalls - die Idee mit dem lokalen anlegen des Befehls ist brilliant :-D

Ich hoffe es ist so richtig, dass ich nun den Status auf "beantwortet" gesetzt habe? Wenn das nicht geklappt haben sollte, dann sagt bitte nochmal bescheid =)

Gast

Beitrag von Gast »

Die abgekürzten Vornamen bekämst Du mit firstinits=true. Allerdings werden dann alle Vornamen abgekürzt.

Wenn Du das nicht möchtest, würde ich Dir empfehlen, statt
\DeclareNameFormat{default}{%
\ifuseprefix
  {\usebibmacro{name:last-first}{#1}{#4}{#5}{#8}}
  {\usebibmacro{name:last-first}{#1}{#4}{#6}{#8}}%
\usebibmacro{name:andothers}}
lieber

\DeclareNameFormat{cacitename}{%
\ifuseprefix
  {\usebibmacro{name:last-first}{#1}{#4}{#5}{#8}}
  {\usebibmacro{name:last-first}{#1}{#4}{#6}{#8}}%
\usebibmacro{name:andothers}}
zu schreiben und dann
\DeclareCiteCommand{\citeauthor}
  {\renewcommand*{\multinamedelim}{\addsemicolon\addspace}%
   \boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \usebibmacro{prenote}}
  {\ifciteindex
     {\indexnames{labelname}}
     {}%
   \printnames[cacitename]{labelname}}
  {\multicitedelim}
  {\usebibmacro{postnote}}
zu verwenden.

Ben_NRW

Beitrag von Ben_NRW »

Cool DANKE, das funktioniert rein auf den ersten Blick betrachtet genauso gut :-D

Mich interessiert nur gerade worin denn da der Unterschied besteht? Also ich sehe natürlich was du an den beiden Einträgen verändert hast, aber wieso ist das deiner Meinung nach vorteilhafter?

Viele Grüße

Gast

Beitrag von Gast »

Das Namensformat default wird noch für anderen Namensausgaben genutzt (für alle, bei denen nichts spezielles angegeben ist). Die Änderung kann so zu unerwünschten Nebeneffekten führen. Ich lasse immer gerne so viel wie möglich im Originalzustand, falls man später noch etwas ändern möchte.

Wenn Du beispielsweise Deine Redefinition von default, nutzt werden bestimmte Namen nur mit abgekürzten Vornamen gesetzt, während z.B. die Autoren in der Bibliographie den gesamten Vornamen bekommen, denn die nutzen das Format sortname.

Wenn Du natürlich gleich firstinits=true setzt, dann kannst Du \printnames[default]{labelname} schreiben (denn wir bekommen automatisch nur Initialen), und einfach nur \DeclareNameAlias{default}{last-first} setzen.

Vergleiche einfach mal die Ausgaben von
\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear,maxnames=999]{biblatex}

\DeclareNameFormat{default}{%
\ifuseprefix
  {\usebibmacro{name:last-first}{#1}{#4}{#5}{#8}}
  {\usebibmacro{name:last-first}{#1}{#4}{#6}{#8}}%
\usebibmacro{name:andothers}}

\DeclareCiteCommand{\citeauthor}
  {\renewcommand*{\multinamedelim}{\addsemicolon\addspace}%
   \boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \usebibmacro{prenote}}
  {\ifciteindex
     {\indexnames{labelname}}
     {}%
   \printnames[citename]{labelname}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\addbibresource{biblatex-examples.bib}
\begin{document}
\cite{nietzsche:ksa}

\citeauthor{herrmann}

\printbibliography
\end{document}
\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear,maxnames=999]{biblatex}

\DeclareNameFormat{cacitename}{%
\ifuseprefix
  {\usebibmacro{name:last-first}{#1}{#4}{#5}{#8}}
  {\usebibmacro{name:last-first}{#1}{#4}{#6}{#8}}%
\usebibmacro{name:andothers}}

\DeclareCiteCommand{\citeauthor}
  {\renewcommand*{\multinamedelim}{\addsemicolon\addspace}%
   \boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \usebibmacro{prenote}}
  {\ifciteindex
     {\indexnames{labelname}}
     {}%
   \printnames[cacitename]{labelname}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\addbibresource{biblatex-examples.bib}
\begin{document}
\cite{nietzsche:ksa}

\citeauthor{herrmann}

\printbibliography
\end{document}
und
\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear,maxnames=999,firstinits=true]{biblatex}

\DeclareNameAlias{default}{last-first}

\DeclareCiteCommand{\citeauthor}
  {\renewcommand*{\multinamedelim}{\addsemicolon\addspace}%
   \boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \usebibmacro{prenote}}
  {\ifciteindex
     {\indexnames{labelname}}
     {}%
   \printnames[citename]{labelname}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\addbibresource{biblatex-examples.bib}
\begin{document}
\cite{nietzsche:ksa}

\citeauthor{herrmann}

\printbibliography
\end{document}
Achte dabei auf die Herausgeber des Werkes (Giorgio Colli und Mazzino Montinari) und die Autoren in der Bibliographie, diese werden mit byeditor gesetzt, was in den Standardeinstellungen einfach als default voreingestellt ist. \citeauthor tut immer dasselbe.

Es kommt also ein bisschen auf den Rest an. Da wusste ich bei Dir nicht so viel und befürworte daher eine minimalinvasive Lösung.

Antworten