\citep* funktioniert nicht

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


Lena91

\citep* funktioniert nicht

Beitrag von Lena91 »

Hallo,

ich bin Anföngerin bei Latex und möchte meine Bachelorarbeit damit schreiben.

Ich hoffe mein Minimalbespiel ist nicht zu viel, will nur nicht das was wichtiges fehlt.

Ich habe folgendnes Problem:

Ich möchte gerne beim Ersten zitieren alle Namen im Text, beim weiteren Zitieren nur noch den ersten Autor und u.a.

Das klappt auch ganz gut.
Nun möchte ich das ganze noch optional in die Klammer setzen (ABER MIT ALLEN NAMEN, so wie /citet*).

Aber
\parencite*{Huper.2007c}
\citep*[202]{Huper.2007c}

funktionieren nicht.

Kann mir da jmd. helfen?
\documentclass[12pt,a4paper]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[babel,german=quotes]{csquotes}
\usepackage{url}
\usepackage[babel,german=quotes]{csquotes}
\usepackage[ngerman]{babel}
\usepackage[style=authoryear,citestyle=authoryear,natbib=true,backend=biber, maxcitenames=1, maxbibnames=99]{biblatex}

%Namenssortierung Nachname Vorname
\DeclareNameAlias{sortname}{last-first}

%Doppelpunkt nach Jahreszahl
\renewcommand{\postnotedelim}{\addcolon\addspace}

%S. vor Seitenangabe entfernen
\DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{multipostnote}{#1}
\renewbibmacro*{chapter+pages}{%
	\printfield{chapter}%
	\setunit{\bibpagespunct}%
	\printfield{pages}%
	\newunit}
	
%Slash zwischen Autoren
\newcommand*{\bibmultinamedelim}{\addslash\space}%
\newcommand*{\bibfinalnamedelim}{\addslash\space}%

\renewcommand*{\multinamedelim}{/}
\renewcommand*{\finalnamedelim}{/}

\AtBeginBibliography{%
	\let\multinamedelim\bibmultinamedelim
	\let\finalnamedelim\bibfinalnamedelim
}
\renewcommand*{\labelnamepunct}{\addcolon\space}

\addbibresource{referenzen2.bib}	% benötigt referenzen.bib

\nocite{*}

\begin{document}


\citeauthor*{Huper.2007b} schrieben \citeyear{Huper.2007b} ein interessantes Buch über blablabla.\newline
\citeauthor{Huper.2007b} schrieben \citeyear{Huper.2007b} ein interessantes Buch über blablabla.\newline


ich will \citet*[223]{Huper.2007b} zitieren\newline
ich will \citet[223]{Huper.2007b} zitieren\newline
ich will \parencite{Huper.2007b} zitieren\newline

ich will \citet*{Huper.2007c} fanden herraus\newline
ich will \citet{Huper.2007c} zitieren\newline
ich will \parencite{Huper.2007c} fanden herraus\newline
ich will \citep[202]{Huper.2007c}\newline

ich will \citet[200]{Domenig.2007}\newline

%\makeatletter
%\renewcommand{\@cite}[2]{({#1\if@tempswa , #2\fi})}
%\renewcommand{\@biblabel}[1]{(#1)}
%\makeatother



% Literaturverzeichnis
\renewcommand{\refname}{Literatur- und Quellenverzeichnis}
\addcontentsline{toc}{section}{Literatur- und Quellenverzeichnis}

\printbibliography


\end{document}

Hier noch die referenzen2.bib
@book{Domenig.2007,
 year = {2007},
 title = {{Transkulturelle Kompetenz. Lehrbuch f{\"u}r Pflege-, Gesundheits- und Sozialberufe}},
 address = {Bern},
 publisher = {{Verlag Hans Huber}},
 editor = {Domenig, Dagmar}
}


@incollection{Huper.2007b,
 author = {H{\"u}per, Christa and Kerkow-Weil, Rosemarie},
 title = {{Schmerz im Migrationskontext}},
 publisher = {{Verlag Hans Huber}},
 editor = {Domenig, Dagmar},
 booktitle = {{Transkulturelle Kompetenz. Lehrbuch f{\"u}r Pflege-, Gesundheits- und Sozialberufe}},
 year = {2007},
 address = {Bern}
}

@incollection{Huper.2007c,
 author = {H{\"u}per5 Christa and Kerkow-Weil5 Rosemarie and Kerkow-Weil2 Rosemarie2 and Kerkow-Weil3W Rosemarie3},
 title = {{Schmerz im Migrationskontext}},
 publisher = {{Verlag Hans Huber}},
 editor = {Domenig, Dagmar},
 booktitle = {{Transkulturelle Kompetenz. Lehrbuch f{\"u}r Pflege-, Gesundheits- und Sozialberufe}},
 year = {2007},
 address = {Bern}
}


Gast

Beitrag von Gast »

Das scheint mir fast ein Bug in biblatex zu sein, eine in nicht allen Fällen absolut äquivalente aber für Deine Anwendung hoffentlich ausreichende Lösung ist
\makeatletter
\renewrobustcmd*{\citep}{%
  \@ifstar
    {\AtNextCitekey{\defcounter{maxnames}{999}}%
     \parencite}
    {\parencite}}
\makeatother

MWE
\documentclass[12pt,a4paper]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[babel,german=quotes]{csquotes}
\usepackage[style=authoryear, natbib=true, backend=biber, maxcitenames=1, maxbibnames=99]{biblatex}

\addbibresource{biblatex-examples.bib}

\makeatletter
\renewrobustcmd*{\citep}{%
  \@ifstar
    {\AtNextCitekey{\defcounter{maxnames}{999}}%
     \parencite}
    {\parencite}}
\makeatother

\begin{document}
\citet*[223]{aksin} vs \citep*[223]{aksin}

\citet[223]{aksin} vs \citep[223]{aksin}

\printbibliography
\end{document}
In Deinem Beispiel lädst Du einige Pakete doppelt, in Deinem echten Dokument ist das hoffentlich nicht der Fall.

Das
\renewbibmacro*{chapter+pages}{%
   \printfield{chapter}%
   \setunit{\bibpagespunct}%
   \printfield{pages}%
   \newunit}
ist überflüssig, da es mit dem Standard identisch ist.

Statt
\newcommand*{\bibmultinamedelim}{\addslash\space}%
\newcommand*{\bibfinalnamedelim}{\addslash\space}%

\renewcommand*{\multinamedelim}{/}
\renewcommand*{\finalnamedelim}{/}

\AtBeginBibliography{%
   \let\multinamedelim\bibmultinamedelim
   \let\finalnamedelim\bibfinalnamedelim
}
ist
\renewcommand*{\multinamedelim}{\addslash}
\renewcommand*{\finalnamedelim}{\addslash}

\AtBeginBibliography{%
   \renewcommand*{\multinamedelim}{\addslash\space}%
   \renewcommand*{\finalnamedelim}{\addslash\space}%
}
etwas schöner und kann Probleme beim Umbrechen vermeiden. Wobei ich Leerzeichen um Schrägstriche für gruselig halte.

Statt \addcontentsline{toc}{section}{Literatur- und Quellenverzeichnis} gibt es Optionen der Dokumentenklasse, um die Bibliographie dem Inhaltsverzeichnis hinzuzufügen.

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Ist mir gestern durch die Lappen gegangen, aber das ist ein Crosspost zu LaTeX-community.org.
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

Gast

Beitrag von Gast »

Ich habe dem biblatex-Bugtracker mein Leid geklagt (plk/biblatex #354).

Eine Änderung wurde bereits vorgenommen, die sorgt allerdings nicht in allen Fällen für eine Lösung.

Eine hoffentlich etwas robusterer Vorschlag ist
\makeatletter
\newrobustcmd*{\AtEveryCitekeyLocal}{\appto\blx@hook@citekey}

\renewrobustcmd*{\citep}{%
  \@ifstar
    {\AtNextCite{\AtEveryCitekeyLocal{\defcounter{maxnames}{999}}}%
     \parencite}
    {\parencite}}
\makeatother

Lena91

Beitrag von Lena91 »

Danke, ich bin gerade unterwegs und hab mein Laptop nicht dabei aber ich probiere es morgen gleich mal aus.

@Gast: Die unschönen Commandos sind zusammrnkopiert. Ich habe so viele Stunden gebraucht um überhaupt den quatsch mit den Name/ Name, Jahr: Seitenzahl hinzukriegen....


Genau also mir ging es nur darum, dass ich
(Hüper/ Kerkow-Weil, 2007: 21)
(Hüper u.a., 2007: 21)
zitieren kann. Das zweite funktioniert, das erste noch nicht...

Aber ich denke mit den geposteten Passagen sollte es gefixt sein. Danke.
Lg Lena

Gast

Beitrag von Gast »

Du kannst das übrigens auch automatisieren. Mit
\AtEveryCitekey{\ifciteseen{}{\defcounter{maxnames}{999}}}
bekommst Du bei jedem Erstzitat alle Namen und bei allen folgenden Zitaten dann die Normale Ausgabe mit maxcitenames.
Damit das funktioniert benötogst Du die Option citetracker=context (oder citetracker=true, citetracker=contrict, citetracker=strict).


MWE
\documentclass[12pt,a4paper]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[babel,german=quotes]{csquotes}
\usepackage[style=authoryear, natbib=true, backend=biber, maxcitenames=1, maxbibnames=99, citetracker=context]{biblatex}

\addbibresource{biblatex-examples.bib}

\AtEveryCitekey{\ifciteseen{}{\defcounter{maxnames}{999}}}

\begin{document}
\citep[223]{aksin} and \citep[223]{aksin}

\citep[223]{sigfridsson} and \citep[223]{sigfridsson}

\printbibliography
\end{document}

Lena91

Beitrag von Lena91 »

Danke an alle. Hab die letzte Variante mit der automatischen Autorenanzahl benutzt. :-) Klappt super.

Antworten