Seite 1 von 1

Eigener Zitierstil hat Kommafehler

Verfasst: Sa 20. Jun 2015, 08:53
von kla4dj
Hallo,

ich habe einen veralteten Zitierstil von meinem Lehrstuhl vorgegeben bekommen, der mir jedoch fälschlicherweise statt (ROTH 2005, S. 7) alle indirekten Zitate mit (ROTH, 2005, S. 7) ausgibt. Leider finde ich auch nach mehrmaligen drüberschauen nicht den Fehler. Vielleicht hängt das auch damit zusammen, dass ich ein absoluter TeX-Noob bin. Könnte mir da vielleicht jemand bitte den entscheidenen Tipp geben ;-)

Hier mal meine Zitations.tex

Autorstil.tex
\usepackage%
[%
	style = authoryear-comp,		% authoryear-comp oder 
	backend = biber,
	natbib = true,
	hyperref = true,
	maxnames = 2,
	isbn = true,
	doi = true, 			% DOIs im LitVZ
	language = german,
	texencoding=utf8,
%	bibencoding=utf8,
	firstinits = true,		% Vornamen abkürzen
	uniquename = init,
	%backref = true,		% Seitenzahlen der Verweise im LitVZ
	dashed = false, 		% Falls mehrere gleiche Autoren auftauchen, werden die Einträge mit 
							% einem Strich abgekürzt. S.a. http://projekte.dante.de/DanteFAQ/BiblatexStile --> autoryear
]{biblatex}


\setcounter{secnumdepth}{3}							%	Kapitelnummerierung mit fünf Ebenen ermöglichen
\setcounter{tocdepth}{3}								%	Eintrag ins Inhaltsverzeichnis bis Ebene 4

% Nachnames-Formatierung (im Text) anpassen
\renewcommand*{\mkbibnamelast}[1]{\textsc{#1}}

% Im Literaturverzeichnis immer nach "Nachname, Vorname" formatieren. Siehe auch
% http://projekte.dante.de/DanteFAQ/BiblatexReihenfolgeAutoren
% \DeclareNameAlias{sortname}{last-first}	% Einfache Variante, formatiert allerdings nicht den Herausgeber!
\DeclareNameFormat{default}{%
\iffirstinits
{\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}}			% Wenn Vorname nur mit Initialien, dann dieses Makro ansonsten
{\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}}%		% dieses (mit Initialien). s.a. Link oben.
\usebibmacro{name:andothers}}

\input{01_Header/Zitate_und_Literaturverzeichnis/biblatex_Jahreszahl_Anpassungen.tex}
\input{01_Header/Zitate_und_Literaturverzeichnis/biblatex_article_Anpassungen.tex}
\input{01_Header/Zitate_und_Literaturverzeichnis/biblatex_patent_Anpassungen.tex}
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
\AtEveryBibitem{%
\renewcommand*{\mkbibnamelast}[1]{\textsc{#1}}
% Ursprüngliche Formatierung von Zitaten verwenden (lokal für Kopf der Einträge)
\let\multinamedelim\myOriginalMultiNameDelim
\let\finalnamedelim\myOriginalFinalNameDelim

\cite{\thefield{entrykey}}\\
\renewcommand*{\mkbibnamelast}[1]{#1}
% Die neue Formatierung wieder aktivieren -> siehe Hook "\AtBeginBibliography{"
  \let\multinamedelim\myBibMultiNameDelim				% \let heißt renewcommand (multiNameDelim) --> (eignenen Stil)
  \let\finalnamedelim\myBibFinalNameDelim
}%

\AtBeginBibliography{%
\setcounter{maxnames}{99}
\renewcommand*{\mkbibnamelast}[1]{#1}
}

% Zwischen zwei Autoren als Begrenzung einen Semikolon anstatt Komma:
\newcommand*{\myBibMultiNameDelim}{\addsemicolon\space} % Eigenen Stil definieren und weiter unten zuweisen
\newcommand*{\myBibFinalNameDelim}{\addsemicolon\space} %
\renewcommand*{\labelnamepunct}{\addcolon\space} %

\AtBeginBibliography{%
% In neuen Befehl speichern bevor überschrieben
\let\myOriginalMultiNameDelim\multinamedelim
% In neuen Befehl speichern bevor überschrieben
\let\myOriginalFinalNameDelim\finalnamedelim
% Neuen Befehl zuordnen - wurde mit newcommand etwas weiter oben definiert
  \let\multinamedelim\myBibMultiNameDelim				% \let heißt renewcommand (multiNameDelim) --> (eignenen Stil)
  \let\finalnamedelim\myBibFinalNameDelim
}
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % %

biblatex_Jahreszahl_Anpassungen.tex
% Quick Solution: Wir hängen die Jahreszahl vor die Ausgabe der Notizen / Seitenzahlen.
\renewbibmacro*{note+pages}{%
  \printfield{year}%
  \newunit
  \printfield{note}%
  \setunit{\bibpagespunct}%
  \printfield{pages}%
  \newunit}

\renewbibmacro*{chapter+pages}{%
  \printfield{year}%
  \newunit
  \printfield{chapter}%
  \setunit{\bibpagespunct}%
  \printfield{pages}%
  \newunit}
  
biblatex_article_Anpassungen.tex
\DeclareBibliographyDriver{article}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \setunit{\labelnamepunct}\newblock
  \usebibmacro{title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{bytranslator+others}%
  \newunit\newblock
  \printfield{version}%
  \newunit\newblock
  %\usebibmacro{in:}%
  \usebibmacro{journal+issuetitle-mod}%
  \newunit
  \usebibmacro{byeditor+others}%
  \newunit
  \usebibmacro{note+pages-mod}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{issn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}}

\renewbibmacro*{author}{%
  \ifboolexpr{
    test \ifuseauthor
    and
    not test {\ifnameundef{author}}
  }
    {\usebibmacro{bbx:dashcheck}
       {\bibnamedash}
       {\usebibmacro{bbx:savehash}%
        \printnames{author}%
	\iffieldundef{authortype}
	  {\setunit{\addspace}}
	  {\setunit{\addcomma\space}}}%
     \iffieldundef{authortype}
       {}
       {\usebibmacro{authorstrg}%
	\setunit{\addspace}}}%
    {\global\undef\bbx@lasthash
     \usebibmacro{labeltitle}%
     \setunit*{\addspace}}%
  %\usebibmacro{date+extrayear}%
  }
    
    
\newbibmacro*{journal+issuetitle-mod}{%
  \usebibmacro{journal}%
  \setunit*{\addspace}%
  \iffieldundef{series}
    {}
    {\newunit
     \printfield{series}%
     \setunit{\addspace}}%
  \usebibmacro{volume+number+eid-mod}%
  \setunit{\addspace}%
  \usebibmacro{issue+date}%
  \setunit{\addcolon\space}%
  \usebibmacro{issue}%
  \newunit}
  
\newbibmacro*{volume+number+eid-mod}{%
  \printfield{volume}%
  %\setunit*{\adddot}%
  %\printfield{number}%
  \addspace
  \printtext{(}%
   	\printfield{year}%
  \printtext{)}%
  \addspace
  \printfield{number}%
  \setunit{\addcomma\space}%
  \printfield{eid}}
  
% Jahreszahl wurde schon ausgegeben, muss nicht nochmal passieren.  
\newbibmacro*{note+pages-mod}{%
  \printfield{note}%
  \setunit{\bibpagespunct}%
  \printfield{pages}%
  \newunit}


biblatex_patent_Anpassungen.tex
%MA

\DeclareBibliographyDriver{patent}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  Schutzrecht:\addspace%
  \printfield{number}\addspace%
  \printfield{type}\addspace%
  \printtext[parens]{%
  	\printfield{note}% veroffentlichungsdatum
}%
  \newunit\newblock
  \usebibmacro{byholder}%
  \newunit\newblock
  \printfield{year}% anmeldedatum
  \newunit\newblock
  \usebibmacro{author}%
  \setunit{\labelnamepunct}\newblock
  \usebibmacro{title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \setunit*{\addspace}%
  \iflistundef{location}
    {}
    {\setunit*{\addspace}%
     %\printtext[parens]{%
       \printlist[][-\value{listtotal}]{location}}%
	 %  }%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}}


...

Verfasst: Sa 20. Jun 2015, 09:49
von nixversteh
Hallo kla4dj,

liefre bitte ein lauffähiges Beispiel, Mini wird das wohl eher nicht sein ;-)

Gruß

Martin

Verfasst: Sa 20. Jun 2015, 11:11
von Gast
Bei mir tritt mit dem von Dir oben gezeigten Code-Schnipseln das Problem nicht auf, gibt es noch mehr Code, der biblatex beeinflussen könnte?

Du solltest dabei besonders auf \nameyeardelim achten, vielleicht hilft auch einfach
\renewcommand*{\nameyeardelim}{\addspace}
weiter (wenn Dein Stil nicht zu viele Veränderungen vorgenommen hat, ist das der relevante Befehl).

Verfasst: Sa 20. Jun 2015, 11:15
von Gast
Nach kurzer weiterer Betrachtung fällt mir auf, dass das Problem bei der natbib-Option liegt, wird natbib=true als Option übergeben, so lädt biblatex blx-natbib.def und die ändert den \nameyeardelim zu \addcomma\space.

Wenn Du die natbib-Option nicht brauchst, kannst Du sie ausschalten, oder einfach
\renewcommand*{\nameyeardelim}{\addspace}
nutzen.

PS: Sorry, dass mir die Idee erst kam, nachdem ich oben schon etwas geschrieben hatte ...

Verfasst: Sa 20. Jun 2015, 11:49
von kla4dj
Die Lösung mit der Codezeile hat das erwünschte Ergebnis gebracht. Vielen Dank dafür!

Nur erzeugt mir das jetzt aber das Problem, wenn ich zwei Autoren mit Seitenangabe zitiere, dass kein Semikolon mehr gesetzt wird. :lol:


\cites[S. 5]{A_01}{B_01} führt zu HANSMANN 2001, S. 5 YOOMEL 2002

Verfasst: Sa 20. Jun 2015, 12:50
von Johannes_B
Lies dir am besten mal durch, wie man das richtig macht, und erstelle dann eien ordentlichen Stil. Bei diesen ganzen Schnipseln kann doch kein Mensch mehr durchblicken. Das würde auch euren Nutzern dieArbeit mehr als erleichtern.

Modifizieren eines biblatex-Stils

Verfasst: Sa 20. Jun 2015, 16:45
von Gast
Für das Semikolon zwischen den Zitaten ist \multicitedelim zuständig.

Soweit ich sehen kann, ändert Dein Code den Standard
\newcommand*{\multicitedelim}{\addsemicolon\space}
nicht, Du kannst es natürlich trotzdem mit
\renewcommand*{\multicitedelim}{\addsemicolon\space}
versuchen, um den Standard wiederherzustellen, sollte er geändert worden sein.

Besonders am Anfang deines Codes geschehen aber einige Dinge, über deren Sinn und Zweck ich mir nicht ganz im klaren bin und obwohl da eigentlich nichts mit \multicitedelim passieren sollte, kann ich nicht ausschließen, dass dort oder sonstwo die Funktion von \multicitedelim ausgehebelt wird.