goLaTeX - Mein LaTeX-Forum

Mein LaTeX-Forum


Login  | Registrieren
Forum
      Option
[Erweitert]
  • Diese Seite weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Diverse Feinanpassungen für Biblatex Literaturverzeichnis

 

Tassadar
Forum-Newbie
Forum-Newbie

Beiträge: 8
Anmeldedatum: 05.09.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2017, 00:18     Titel: Diverse Feinanpassungen für Biblatex Literaturverzeichnis
  Antworten mit Zitat      
Hi Leute,

ich habe jetzt fast den ganzen Tag damit verbracht mein Literaturverzeichnis umzudefinieren um diesen nervigen Vorgaben der Uni zu entsprechen.

Habe zwar viel erreicht, aber an den letzten Punkten verzweifel ich einfach, finde nichts und wäre für Hilfe mega dankbar!

Im Endeffekt geht es darum, dass der Literaturverzeichniseintrag in dem Minimalbeispiel wie folgt angezeigt werden soll:

Nachname, Initialen. (Jahr). Titel des Kapitels oder Beitrags. In Initial(en).
Nachname (Hrsg.), Titel des Herausgeberwerks (S. Seitenzahlen). Erscheinungsort: Verlag.

Was also geändert werden müsste ist folgendes:
- kein Doppelpunkt nach "In"
- kein "," nach dem Booktitle
- Seitenzahlen in Klammern

Ich wäre sososo dankbar für Hilfe!

Code • Öffne in Overleaf


\documentclass[
paper=A4,
11pt,
headings=big,
listof=leveldown,
listof=numbered,
numbers=noenddot,
bibliography=totoc
]{scrartcl}




%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%         Bibliography Formatierungen     %%%%%%%%%%%%%%%%%%%%
% Bibliography Formatierungen

\usepackage[
   backend = biber,
   style = authoryear,
   sorting = nyt,
   doi = true,
   url = false,
   isbn = false,
   eprint = false
   
]{biblatex}
   
%%%%%%%%%%%%%%%%%%%%         Formatierungen für Verzeichnis  %%%%%%%%%%%%%%%%%%%%
% "&" statt "und" verwenden
\AtBeginBibliography{%
   \renewcommand{\finalnamedelim}{\addspace\&\space}}

% immer "Nachname, V."
\DeclareNameFormat{sortname}{%
   \usebibmacro{name:last-first}
   {\namepartfamily}
   {\namepartgiveni}
   {\namepartprefix}
   {\namepartsuffix}%
}%

% Herausgeber als "V. Nachname"
\DeclareNameFormat{first-last}{%
   \usebibmacro{name:first-last}
   {\namepartfamily}
   {\namepartgiveni}
   {\namepartprefix}
   {\namepartsuffix}%
}%
\DeclareNameAlias{editor}{first-last}

% keine " " um Titel und für Bücher kursiv
\DeclareFieldFormat[article]{title}{#1\isdot}
\DeclareFieldFormat[book]{title}{\textit{#1}\isdot}
\DeclareFieldFormat[incollection]{title}{#1\isdot}

% keine "S." bei Seitenangabe
\DeclareFieldFormat[article]{pages}{#1}

% kein "In:" vor Journal (eventuell löscht es auch andere "In")
\renewbibmacro{in:}{%
   \ifentrytype{article}{}{\printtext{\bibstring{in}\intitlepunct}}}


% Komma zwischen Journal und Volume
\renewbibmacro*{journal+issuetitle}{%
   \usebibmacro{journal}%
   \setunit*{\addcomma\addspace}%<--da
   \iffieldundef{series}
   {}
   {\newunit
      \printfield{series
}%
      \setunit{\addspace}}%
   \usebibmacro{volume+number+eid}%
   \setunit{\addspace}%
   \usebibmacro{issue+date}%
   \setunit{\addcolon\space}%
   \usebibmacro{issue}%
   \newunit}



\DefineBibliographyStrings{ngerman}{andothers={et \addabbrvspace al\adddot},editor = {(Hrsg.),},editors = {(Hrsg.),}}


\DeclareBibliographyDriver{incollection}{%
   \usebibmacro{bibindex}%
   \usebibmacro{begentry}%
   \usebibmacro{author/translator+others}%
   \setunit{\labelnamepunct}\newblock
   \usebibmacro{title}%
   \newunit
   \printlist{language}%
   \newunit\newblock
   \usebibmacro{byauthor}%
   \newunit\newblock
   \usebibmacro{in:}%
   \begingroup % NEU
   \renewbibmacro*{date+extrayear}{} % NEU
   \usebibmacro{editor+others} % NEU
   \setunit{\addcolon\space} % NEU
   \endgroup % NEU
   \usebibmacro{maintitle+booktitle}%
   \newunit\newblock
   % \usebibmacro{byeditor+others}% NEU
   % \newunit\newblock % NEU
   \printfield{edition}%
   \newunit
   \iffieldundef{maintitle}
   {\printfield{volume}%
      \printfield{part}}
   {}%
   \newunit
   \printfield{volumes}%
   \newunit\newblock
   \usebibmacro{series+number}%
   \newunit\newblock
   \printfield{note}%
   \newunit\newblock
   \usebibmacro{chapter+pages}%
   \newunit\newblock
   \usebibmacro{publisher+location+date}%
   \newunit\newblock
   \iftoggle{bbx:isbn}
   {\printfield{isbn}}
   {}%
   \newunit\newblock
   \usebibmacro{doi+eprint+url}%
   \newunit\newblock
   \usebibmacro{addendum+pubstate}%
   \newunit\newblock
   \usebibmacro{pageref}%
   \usebibmacro{finentry}}
\makeatletter
\renewbibmacro*{bbx:editor}[1]{%
   \ifboolexpr{
      test \ifuseeditor
      and
      not test {\ifnameundef{editor
}}
   }%
   {\printnames{editor}%
      \setunit{\space}%
      \usebibmacro{bbx:savehash}
      \usebibmacro{#1}%
      \clearname{editor}%
      \setunit{\addspace}
   }%
   {\global\undef\bbx@lasthash
      \usebibmacro{labeltitle
}%
      \setunit*{\addspace}
   }%
   \usebibmacro{date+extrayear}
}
\makeatother

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\addbibresource{LitDaten.bib}
\usepackage{filecontents}  
\begin{filecontents}{LitDaten.bib}
@incollection{Kruger1980,
address = {T{\"{u
}}bingen},
author = {Kr{\"{u}}ger, Hans-Peter},
booktitle = {Klinische Psychologie und Psychotherapie},
editor = {Schulz, Wolfgang},
file = {:C$\backslash$:/Users/Julian/AppData/Local/Mendeley Ltd./Mendeley Desktop/Downloaded/Kr{\"{u}}ger - 1968 - Selbst- und Fremdbeurteilung in Diagnostik und Psychotherapie.pdf:pdf},
pages = {339--350},
publisher = {DGVT},
title = {{Selbst- und Fremdbeurteilung in Diagnostik und Psychotherapie}},
year = {1980}
}
\end{filecontents}

%Verlinkungen in der PDF
\usepackage[breaklinks=true, linkbordercolor={1 1 1}, citebordercolor={1 1 1}, urlbordercolor={1 1 1}]{hyperref}  
\usepackage[ngerman]{babel}      % Spracheinstellung
\usepackage[utf8]{inputenc}      % deutsche Umlaute
\usepackage[T1]{fontenc}      % Trennung bei deutschen Umlauten
\usepackage[babel,german=quotes]{csquotes}

\begin{document}

\parencite{Kruger1980} \\
\printbibliography

\end{document}

 
Private Nachricht senden Benutzer-Profile anzeigen

Tassadar
Forum-Newbie
Forum-Newbie

Beiträge: 8
Anmeldedatum: 05.09.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2017, 10:46     Titel:
  Antworten mit Zitat      
Ok, Problem 3 ist gelöst durch folgenden einfachen Code:

Code • Öffne in Overleaf

\DeclareFieldFormat[incollection]{pages}{(S. #1)}
 


Ist vielleicht nicht die schöne/korrekte Art es zu machen, aber es Funktioniert.

Bleiben noch zwei Probleme.
Ich bin nach wie vor dankbar für Hilfe!
Private Nachricht senden Benutzer-Profile anzeigen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2017, 11:12     Titel:
  Antworten mit Zitat      
Probier es mal mit
Code • Öffne in Overleaf
\documentclass[
paper=A4,
11pt,
headings=big,
listof=leveldown,
listof=numbered,
numbers=noenddot,
bibliography=totoc
]{scrartcl}

\usepackage[
   backend = biber,
   style = authoryear,
   giveninits = true,
   url = false,
   isbn = false,
   eprint = false
   
]{biblatex}
   
\AtBeginBibliography{%
   \renewcommand{\finalnamedelim}{\addspace\&\space}}

\DeclareNameAlias{sortname}{family-given}

\DeclareFieldFormat[article]{title}{#1\isdot}
%\DeclareFieldFormat[book]{title}{\textit{#1}\isdot}% geht auch so, ist dann zwar \emph, aber das kann auch Vorteile haben
\DeclareFieldFormat[incollection]{title}{#1\isdot}

\DeclareFieldFormat[article]{pages}{#1}

\renewcommand*{\intitlepunct}{\addspace}

\renewbibmacro{in:}{%
   \ifentrytype{article}{}{\printtext{\bibstring{in}\intitlepunct}}}

% Komma zwischen Journal und Volume
\renewbibmacro*{journal+issuetitle}{%
   \usebibmacro{journal}%
   \setunit*{\addcomma\addspace}%<--da
   \iffieldundef{series}
   {}
   {\newunit
      \printfield{series
}%
      \setunit{\addspace}}%
   \usebibmacro{volume+number+eid}%
   \setunit{\addspace}%
   \usebibmacro{issue+date}%
   \setunit{\addcolon\space}%
   \usebibmacro{issue}%
   \newunit}

\DefineBibliographyStrings{ngerman}{andothers={et \addabbrvspace al\adddot}}

\DeclareBibliographyDriver{incollection}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \setunit{\printdelim{nametitledelim}}\newblock
  \usebibmacro{title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{in:}%
  \usebibmacro{in:editor+others} % NEU
  \setunit{\addcomma\space}\newblock
  \usebibmacro{maintitle+booktitle}%
  \newunit\newblock
  \usebibmacro{byeditor+others}
  \newunit\newblock
  \printfield{edition}%
  \newunit
  \iffieldundef{maintitle}
    {\printfield{volume}%
     \printfield{part}}
    {}%
  \newunit
  \printfield{volumes}%
  \newunit\newblock
  \usebibmacro{series+number}%
  \newunit\newblock
  \printfield{note}%
  \setunit{\addspace}%
  \usebibmacro{in:chapter+pages}%
  \newunit\newblock
  \usebibmacro{publisher+location+date}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \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}}


\DeclareFieldFormat{editortype}{\mkbibparens{#1}}
\DeclareDelimFormat{editortypedelim}{\addspace}

% wird in der kommenden Version 3.8 nicht mehr benötigt
% BEGIN
\makeatletter
\renewbibmacro*{bbx:editor}[1]{%
  \ifboolexpr{
    test \ifuseeditor
    and
    not test {\ifnameundef{editor
}}
  }
    {\usebibmacro{bbx:dashcheck}
       {\bibnamedash}
       {\printnames{editor}%
        \setunit{\printdelim{editortypedelim}}%
        \usebibmacro{bbx:savehash}}%
     \usebibmacro{#1}%
     \clearname{editor}%
     \setunit{\printdelim{nameyeardelim}}}%
    {\global\undef\bbx@lasthash
     \usebibmacro{labeltitle
}%
     \setunit*{\printdelim{nonameyeardelim}}}%
  \usebibmacro{date+extrayear}}
\makeatother
% STOP

\newbibmacro*{in:editor+others}{%
  \ifnameundef{editor}
    {}
    {\printnames{editor
}%
     \setunit{\printdelim{editortypedelim}}%
     \usebibmacro{editor+othersstrg}%
     \clearname{editor}}}

\newbibmacro*{in:chapter+pages}{%
  \ifboolexpr{not test {\iffieldundef{chapter}} or not test {\iffieldundef{pages}}}
    {\printtext[parens]{%
       \printfield{chapter}%
       \setunit{\bibpagespunct}%
       \printfield{pages}}}
    {}%
  \newunit}


\addbibresource{LitDaten.bib}
\usepackage{filecontents}  
\begin{filecontents}{LitDaten.bib}
@incollection{Kruger1980,
address = {T{\"{u
}}bingen},
author = {Kr{\"{u}}ger, Hans-Peter},
booktitle = {Klinische Psychologie und Psychotherapie},
editor = {Schulz, Wolfgang},
pages = {339--350},
publisher = {DGVT},
title = {Selbst- und Fremdbeurteilung in Diagnostik und Psychotherapie},
year = {1980}
}
\end{filecontents}

%Verlinkungen in der PDF
\usepackage[breaklinks=true, linkbordercolor={1 1 1}, citebordercolor={1 1 1}, urlbordercolor={1 1 1}]{hyperref}  
\usepackage[ngerman]{babel}      % Spracheinstellung
\usepackage[utf8]{inputenc}      % deutsche Umlaute
\usepackage[T1]{fontenc}      % Trennung bei deutschen Umlauten
\usepackage[babel,german=quotes]{csquotes}

\begin{document}
\parencite{Kruger1980}
\printbibliography
\end{document}


Ich habe auch einen Teil des schon vorhandenen Codes behutsam angepasst, sieh es Dir mal an.

Tassadar
Forum-Newbie
Forum-Newbie

Beiträge: 8
Anmeldedatum: 05.09.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2017, 13:04     Titel:
  Antworten mit Zitat      
Erstmal vielen vielen vielen Dank!!!

Bzgl. deiner Änderungen:

Code • Öffne in Overleaf

\DeclareNameFormat{first-last}{%
   \usebibmacro{name:first-last}
   {\namepartfamily}
   {\namepartgiveni}
   {\namepartprefix}
   {\namepartsuffix}%
}%
\DeclareNameAlias{editor}{first-last}
 


hattest du rausgenommen, brauche ich aber, da der Herausgeber im Stil V. Nachname dargestellt werden soll.
In Anlehnung an deine Änderung ist aber natürlich das hier viel schöner:

Code • Öffne in Overleaf

\DeclareNameAlias{editor}{given-family}
 



Code • Öffne in Overleaf

\renewcommand*{\intitlepunct}{\addspace}
 


führt bei mir dazu, dass dann nach dem "In" ein Space zuviel ist. Habe es daher abgeändert zu:

Code • Öffne in Overleaf

\renewcommand*{\intitlepunct}{}
 



Habe versucht die anderen Änderungen bei mir einzubauen, aber wenn ich deine Lösung einfach auf meine draufkopiere zerschießt er mir an irgendeiner Stelle irgendwas...

Kannst du nochmal kurz hervorheben, was die entscheidenden Punkte sind um das Komma hinter dem Booktitle wegzubekommen?
Dann versuche ich das für mich anzupassen.

Vielen vielen Dank aber auf jeden Fall!!!
Private Nachricht senden Benutzer-Profile anzeigen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2017, 13:18     Titel:
  Antworten mit Zitat      
Tassadar hat Folgendes geschrieben:
Code • Öffne in Overleaf
\DeclareNameFormat{first-last}{%
   \usebibmacro{name:first-last}
   {\namepartfamily}
   {\namepartgiveni}
   {\namepartprefix}
   {\namepartsuffix}%
}%
\DeclareNameAlias{editor}{first-last}

hattest du rausgenommen, brauche ich aber, da der Herausgeber im Stil V. Nachname dargestellt werden soll.

In Anlehnung an deine Änderung ist aber natürlich das hier viel schöner:
Code • Öffne in Overleaf
\DeclareNameAlias{editor}{given-family}

Hupps, da habe ich mich vertan. Ich würde dann
Code • Öffne in Overleaf
\DeclareNameAlias{default}{given-family}

empfehlen. Oder, wenn es wirklich nur der editor sein soll, eben \DeclareNameAlias{editor}{given-family}.

Tassadar hat Folgendes geschrieben:
Code • Öffne in Overleaf
\renewcommand*{\intitlepunct}{\addspace}

führt bei mir dazu, dass dann nach dem "In" ein Space zuviel ist. Habe es daher abgeändert zu:
Code • Öffne in Overleaf
\renewcommand*{\intitlepunct}{}

Das liegt daran, dass der Code
Code • Öffne in Overleaf
   \begingroup % NEU
   \renewbibmacro*{date+extrayear}{} % NEU
   \usebibmacro{editor+others} % NEU
   \setunit{\addcolon\space} % NEU
   \endgroup % NEU

ungewollte Leerzeichen erzeugt. Du musst die % direkt nach der schließenden Klammer haben, sonst wird ein Leerzeichen erzeugt. Siehe https://tex.stackexchange.com/q/7453/

Zitat:
Habe versucht die anderen Änderungen bei mir einzubauen, aber wenn ich deine Lösung einfach auf meine draufkopiere zerschießt er mir an irgendeiner Stelle irgendwas...

Kannst du nochmal kurz hervorheben, was die entscheidenden Punkte sind um das Komma hinter dem Booktitle wegzubekommen?
Dann versuche ich das für mich anzupassen.

Ich war davon ausgegangen, dass der gezeigte Code Deine Änderungen an biblatex vollständig abbildet. Dann ist mein Code - zumindest meiner Meinung nach - so auf jeden Fall vorzuziehen. Was genau geht denn kaputt und was hast Du sonst noch in Deinem Dokument an Modifikationen für biblatex?

Das Komma wird mit
Code • Öffne in Overleaf
\setunit{\addspace}%
  \usebibmacro{in:chapter+pages}%

statt
Code • Öffne in Overleaf
\newunit\newblock
  \usebibmacro{in:chapter+pages}%

oder gar
Code • Öffne in Overleaf
\newunit\newblock
  \usebibmacro{chapter+pages}%

zu einem Leerzeichen, wenn die Seitenzahl folgt.

Tassadar
Forum-Newbie
Forum-Newbie

Beiträge: 8
Anmeldedatum: 05.09.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2017, 14:35     Titel:
  Antworten mit Zitat      
Habe alle Fehler gefunden. Lag daran, dass ich in der Zwischenzeit selber versucht hatte die Probleme zu lösen und es manchmal Kollisionen gab.
Waren zwei drei Kleinigkeiten und hatte vor allem übersehen das
Code • Öffne in Overleaf

\DefineBibliographyStrings{ngerman}{andothers={et \addabbrvspace al\adddot}}
 


In der gekürzten Fassung zu übernehmen.

Mega gut! Vielen, vielen Dank!!!

Jetzt müsste ich es nur noch umfassend verstehen. Very Happy
Private Nachricht senden Benutzer-Profile anzeigen

Tassadar
Forum-Newbie
Forum-Newbie

Beiträge: 8
Anmeldedatum: 05.09.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2017, 14:38     Titel:
  Antworten mit Zitat      
Achso eine Sache wäre doch noch...

Ich musste das folgende auskommentieren

Code • Öffne in Overleaf

   {\usebibmacro{bbx:dashcheck}
   {\bibnamedash}
 


Da ich sonst eine Fehlermeldung bekomme:

File ended while scanning use of \@argdef.

Aber scheint zumindest vom Ergebnis her bei mir kein Problem zu machen.
Wofür wären die Zeilen gedacht?[/code]
Private Nachricht senden Benutzer-Profile anzeigen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2017, 14:46     Titel:
  Antworten mit Zitat      
Mhhh, das kann ich nicht ganz nachvollziehen. Bei mir trat das Problem nicht auf. Auch mit Overleaf bekomme ich das Problem nicht, wenn ich auf "Öffne in Overleaf" klicke.

Der Code ist dazu da, die dashed-Funktion auszuführen. Dabei wird der Autorenname durch einen Strich ersetzt, wenn er in der Bibliographie ein zweites Mal auftritt. Wenn Du die zwei genannten Zeilen entfernst, dann bekommst Du diesen Strich nie. (Was aber mit dashed=false als Option besser erreicht wird.)

Tassadar
Forum-Newbie
Forum-Newbie

Beiträge: 8
Anmeldedatum: 05.09.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2017, 14:52     Titel:
  Antworten mit Zitat      
Gut, dass wir drüber sprechen. ^^

Dann liegt es nämlich daran, dass ich dieses "Problem" in der Zwischenzeit selbst angegangen bin, da ich nicht möchte, dass er die Autoren durch Striche ersetzt.

Ich hatte es so gemacht:

Code • Öffne in Overleaf

%\makeatletter
%\newbibmacro*{bbx:dashcheck}[2]{#2}
%\makeatother
 


Aber auch hier ist deine Lösung mit

Code • Öffne in Overleaf

dashed = false
 


natürlich klar zu bevorzugen.

Dann bleibt mir wohl nur nochmal ein abschließendes

Vielen, vielen Dank!!!
Private Nachricht senden Benutzer-Profile anzeigen

Neues Thema eröffnen Neue Antwort erstellen



Options and Permissions
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen
.

goLaTeX ist Teil der goForen
goForen.de goMATLAB.de goLaTeX.de goPCB.de


  Impressum | FAQ | goLaTeX RSS Button RSS-Feed

Copyright © 2008 - 2017 goLaTeX.de