goLaTeX - Mein LaTeX-Forum

Mein LaTeX-Forum


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


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Probleme mit \renewbibmacro*{date+extrayear} seit Update

 

Verena
Forum-Anfänger
Forum-Anfänger

Beiträge: 13
Anmeldedatum: 18.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.02.2018, 22:17     Titel: Probleme mit \renewbibmacro*{date+extrayear} seit Update
  Antworten mit Zitat      
Liebe alle,

seit einem Update habe ich folgendes Problem, das ich einfach nicht gelöst bekomme:
Im Literaturverzeichnis (Monographie) soll die Auflage hochgestellt vor der Jahreszahl stehen. Das hatte eigentlich auch funktioniert, doch seit dem Update steht die Jahreszahl zwar hochgestellt, jedoch hinter dem Buchtitel.
Ich denke, das Problem liegt in der Einheit \renewbibmacro*{date+extrayear}, aber weiter komme ich leider nicht. Habe diverse Vorschläge aus dem Internet versucht, aber die Auflagenanzahl möchte einfach nicht mehr vor die Jahreszahl.

Über Hilfe wäre ich sehr sehr dankbar, da ich jetzt einfach nicht mehr weiterkomme.


Code • Öffne in Overleaf




\documentclass[paper=a4, 12pt, oneside, headsepline, headings=optiontoheadandtoc]{scrbook}
%\usepackage[paper=a4paper, left=25mm, right=25mm, top=30mm, bottom=30mm]{geometry} %Seitenränder ändern

\usepackage[french, ngerman]{babel}
\usepackage[backend=biber, style=authoryear-comp, isbn=false, dashed=false, maxitems=2, maxnames=3, uniquename=false]{biblatex}
%\renewcommand{\postnotedelim}{\addcolon\addspace}       %für Punkt statt Komma in Kurzverweisen zwischen Autor und Seitenangabe
\usepackage[utf8]{inputenc}
\usepackage[babel, german=quotes]{csquotes}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{lmodern}
\usepackage{xcolor, colortbl}
\usepackage{enumerate}
\usepackage{pdfpages}

\DefineBibliographyStrings{german}{%
urlseen = {aufgerufen am},
andothers = {{et\,al\adddot}},}
\DeclareFieldFormat{pages}{#1}
\DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{volcitepages}{#1}
\DeclareFieldFormat{multipostnote}{#1} %zum Löschen von S. vor Seitenangabe
\renewcommand{\baselinestretch}{1.30}\normalsize %Zeilenabstand
\usepackage{setspace} %bewirkt, dass der Zeilenabstand in den Fußnoten weiterhin einfach ist
\setlength{\parindent}{1cm} %Einrückung der ersten Zeile eines neuen Absatzes
%Paket chngcntr betrifft allgemein Zählung; soll anscheinend vor Paket hyperref stehen
\usepackage{chngcntr}
\counterwithout{footnote}{chapter} %Zählung der Fußnoten verläuft durchgehend; einfach löschen, dann beginnt die Zählung für jedes Kapitel neu

\usepackage{hyperref}
\usepackage{microtype} %gegen übervolle Boxen -> Zeilenumbrüche besser kontrolliert
\setkomafont{pagehead}{\normalfont\footnotesize} %Schrifteinstellung Kopfzeile
\hyphenpenalty=5000 \tolerance=1000 %Silbentrennung wird verhindert bzw. neue Toleranzwerte dafür verteilt

\renewcaptionname{ngerman}{\figurename}{Abb.} %Bezeichnung für Abbildungen
\renewcaptionname{ngerman}{\tablename}{Tab.} %Bezeichnung für Tabellen

\addtokomafont{disposition}{\rmfamily} %Schriftart aller Kapitelüberschriften wird angepasst
\addtokomafont{section}{\normalsize} %Schriftgröße der Überschriften
\addtokomafont{subsection}{\normalsize}
\setlength{\textheight}{23cm} %Länge des Textes (vertikal) von oberster bis zu unterster Zeile einer Seite

% Seitenzahlen
\setlength{\footskip}{14mm} %bestimmt die Abstand zwischen unterster Textzeile und Seitenzahl
\addtokomafont{pagenumber}{\small} %Größe der Seitenzahl

% Fußnoten
\renewcommand{\footnotesize}{\small} %Größe der Fußnoten
\setlength{\footnotesep}{12pt} % Abstand zwischen Fußnoten
\setlength{\skip\footins}{1.00cm} %Abstand zw. Text und Fußnoten
\deffootnote[2em]{0em}{0em}{
            \makebox[2em][l]{\thefootnotemark
}}  

% eingerückte Zitate
\newenvironment{myquote}%bei quote wird das Zitat beidseitig eingerückt, bei list nicht unbedingt
   {\vspace{0pt}\begin{quote}
   %\setlength{\parskip}{0cm}
   \renewcommand{\baselinestretch}{1.00}
   \small}
   {\end{quote}\vspace{-4pt}}
   
\bibliography{DateiCitavi}
\DefineBibliographyExtras{ngerman}{\renewcommand*{\bibrangedash}{-}} %Binde- statt Gedankenstriche bei Seitenangaben
\setlength{\bibitemsep}{0,2em} %Abstand zwischen den Literaturangaben
\setlength{\bibhang}{2em} %Einzug nach jeweils erster Zeile
\AtBeginBibliography{%
  %\renewcommand*{\mkbibnamelast}[1]{\textsc{#1}} %schreibt Name des Autors in Kapitälchen, aber nur in Bibliographie
\renewcommand*{\labelnamepunct}{\addcolon\addspace}} %Doppelpunkt zwischen Autor und Titel in der Bibliographie
\renewcommand{\multinamedelim}[0]{/}
\renewcommand{\finalnamedelim}[0]{/} %Schrägstrich zw. mehreren Autoren
\DeclareFieldFormat{editortype}{\mkbibparens{#1}} %Hrsg. in Klammern                  
\DeclareNameAlias{sortname}{last-first} %Nachname bei allen Autoren zuerst

\DeclareBibliographyDriver{book}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/editor+others/translator+others}%
  \setunit{\labelnamepunct}\newblock
  \usebibmacro{maintitle+title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{byeditor+others}%
  \newunit\newblock
  \printfield{edition}%
  \newunit
  \iffieldundef{maintitle}
  \newunit\newblock
  \usebibmacro{publisher+location+date}%
   \newunit
   \setunit{\addspace}
  \usebibmacro{series+number}%
  \newunit\newblock
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{chapter+pages}%
  \newunit
  \printfield{pagetotal}%
  \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}}
   
\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%
  \renewbibmacro*{date+extrayear}{}%
   \usebibmacro{editor+others}
   \setunit{\addcolon\space} %Doppelpunkt nach (Hrsg.)
   \endgroup%
  \usebibmacro{maintitle+booktitle}%
  \newunit\newblock
  \printfield{edition}%
  \newunit
  \iffieldundef{maintitle}
   \newunit\newblock %
  \usebibmacro{publisher+location+date}%
   \newunit
   \setunit{\addspace}
   \usebibmacro{series+number}% -> Reihentitel
   \newunit\newblock
  \usebibmacro{chapter+pages}%
  \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{number}{\bibstring{volume}~#1} -> fügt "`Bd."' vor Anzahl des Reihentitels hinzu
\renewbibmacro*{series+number}{% formatiert Reihentitel
   \iffieldundef{series}%
      {}
      {\printtext[parens]{%
         \printfield{series}%
         \setunit{\addspace}%
         \printfield{number}}}}
         
\makeatletter %kein Komma zw. Namen und (Hrsg.)
\renewbibmacro*{bbx:editor}[1]{%
  \ifthenelse{\ifuseeditor\AND\NOT\ifnameundef{editor}}
    {\ifthenelse{\iffieldequals{fullhash}{\bbx@lasthash}\AND
                 \NOT\iffirstonpage\AND
         \(\NOT\boolean{bbx@inset}\OR
           \iffieldequalstr{entrysetcount}{1}\)}
       {\bibnamedash}
       {\printnames{editor} %
    \setunit{\addspace} %statt "`\addcomma\space"' nur "`\addspace"'
    \usebibmacro{bbx:savehash}}%
     \usebibmacro{#1}%
     \clearname{editor}%
     \setunit{\addspace}}%
    {\global\undef\bbx@lasthash
     \usebibmacro{labeltitle
}%
     \setunit*{\addspace}}%
  \usebibmacro{date+extrayear}}
\makeatother

\makeatletter
% Auflage wird hochgestellt und vor die Jahreszahl gerückt
\renewbibmacro*{date+extrayear}{%
  \iffieldundef{labelyear}
    {}
    {\printtext[parens]{%
         \iffieldnum{edition}{\printfield[superedition]{edition}\global\clearfield{edition}}{}%
         \iffieldsequal{year}{labelyear}
               {\printlabeldateextra}%
         {\ifdefstring\blx@dateformat@labeldate{edtf}
            {}
            {\datecircaprint
}%
          \dateeraprintpre{labelyear}%
          \printfield{labelyear}%
          \printfield{extrayear}%
          \dateuncertainprint%
          \iffieldsequal{labeldateera}{labelenddateera}
            {}
            {\dateeraprint{labelyear
}}%
          \ifdefstring\blx@dateformat@labeldate{edtf}
            {\datecircaprintedtf}
            {}%
          \iffieldundef{labelendyear}
            {}
            {\iffieldsequal{labelyear
}{labelendyear}
               {}
               {\ifdefstring\blx@dateformat@labeldate{edtf
}
                  {\slash}% strict EDTF
                  {\bibdaterangesep
                \enddatecircaprint
}%
                \dateeraprintpre{labelendyear}%
                \printfield{labelendyear}%
                \enddateuncertainprint
                \ifdefstring\blx@dateformat@labeldate{edtf}
                  {\enddatecircaprintedtf}
                  {}%
                \dateeraprint{labelendyear}}}}%
       }}}
\makeatother
\DeclareFieldFormat{edition}{\textsuperscript{#1}} %Auflagenanzahl wird hochgestellt      

\DeclareBibliographyDriver{article}{%
  \usebibmacro{author/editor}%
  \setunit{\labelnamepunct}\newblock
  \usebibmacro{title}%
   \newunit\newblock
  \usebibmacro{in:}%
  \usebibmacro{journal}%
  \setunit*{\addspace}%
  \printtext{\printfield{number}}% in BibLatex-Datei als Heftnummer definiert
  %\iffieldundef{volume}{}{\printtext[parens]{\printfield{volume}}}% in Biblatex-Datei entspricht volume dem Jahrgang; dieser soll jedoch nicht aufgeführt werden
  \setunit{\addcomma\space}%
  \printfield{pages}%
  \usebibmacro{finentry}}
   
\makeatletter
\def\thickhrulefill{\leavevmode \leaders \hrule height 1ex \hfill \kern \z@}
\def\@makechapterhead#1{%
\vspace*{-30\p@}%
  {\parindent \z@ \raggedleft \reset@font
            %\scshape -> schreibt Kapitelüberschriften in Kapitälchen
                           \textbf{\@chapapp{} \thechapter}
        \par \nobreak
        \interlinepenalty \@M
    \Large \bfseries #1\par\nobreak
\vspace*{1\p@}%
\hrulefill
\par\nobreak
    \vskip 24\p@
  }}
\def\@makeschapterhead#1{%
\vspace*{-30\p@}%
  {\parindent \z@ \raggedright \reset@font
            %\scshape
                  \vphantom{\@chapapp{} \thechapter}
        \par\nobreak
        \interlinepenalty\@M
    \Large \bfseries #1\par\nobreak
\vspace*{1\p@}%
    \hrulefill
    \par\nobreak
    \vskip 24\p@
  }}
   
\newenvironment{Dissertation_Onlinequellen}{%
  \parskip6pt \parindent0pt \raggedright
  \def\lititem{\hangindent=1cm \hangafter1}}{%
  \par\ignorespaces}    

\begin{document}

Hier steht der Text.


\singlespacing
\printbibliography

\end{document}
 
Private Nachricht senden Benutzer-Profile anzeigen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.02.2018, 23:16     Titel:
  Antworten mit Zitat      
Das Makro date+extrayear heißt jetzt date+extradate. Leider kann der Code für Abwärtskompatibilität nicht alles abfangen, daher ist es angeraten, wenn man schon so weit wie Du in das Reich der Stilschreiber vorgedrungen ist, immer nach einem Update den Changelog zu Rate zu ziehen: http://mirrors.ctan.org/macros/latex/contrib/biblatex/CHANGES.md
Dort steht im Allgemeinen was sich geändert hat, und was zu tun ist. Siehe aber auch https://github.com/plk/biblatex/issues/700 Besonders diese Änderung ist problematisch, da der Code für Abwärtskompatibilität die Situation in Fällen wie Deinem eher verschlimmert als verbessert.

Ich habe Deinen Code etwas modernisiert und das Problem beseitigt. Deine Kommentare habe ich der Übersichtlichkeit halber entfernt, damit meine besser sichtbar sind.

Deine Redefinition von @article halte ich für viel zu radikal.

Code • Öffne in Overleaf
\documentclass[paper=a4, 12pt, oneside, headsepline, headings=optiontoheadandtoc]{scrbook}
\usepackage[french, ngerman]{babel}
\usepackage[backend=biber, style=authoryear-comp, isbn=false, dashed=false, maxitems=2, maxnames=3, uniquename=false]{biblatex}
%\renewcommand{\postnotedelim}{\addcolon\addspace}
\usepackage[utf8]{inputenc}
\usepackage[babel, german=quotes]{csquotes}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

\DefineBibliographyStrings{german}{%
urlseen = {aufgerufen am},
andothers = {{et\,al\adddot}},}
\DeclareFieldFormat{pages}{#1}
\DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{volcitepages}{#1}
\DeclareFieldFormat{multipostnote}{#1}

\DefineBibliographyExtras{ngerman}{\renewcommand*{\bibrangedash}{-}}

% neue Befehle für Zeichensetzung
\DeclareDelimFormat[bib,biblist]{nametitledelim}{\addcolon\space}
\DeclareDelimFormat{multinamedelim}{\addslash}
\DeclareDelimAlias{finalnamedelim}{multinamedelim}

\DeclareFieldFormat{editortype}{\mkbibparens{#1}}% <- das reicht jetzt, um das Komma vor "Herausgeber" wegzubekommen

\DeclareNameAlias{sortname}{family-given}% <- neues Namensformat

\DeclareBibliographyDriver{book}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/editor+others/translator+others}%
  \setunit{\printdelim{nametitledelim}}\newblock% <- schönere Zeichensetzung
  \usebibmacro{maintitle+title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{byeditor+others}%
  \newunit\newblock
  \printfield{edition}%
  \newunit
  \iffieldundef{maintitle}
  \newunit\newblock
  \usebibmacro{publisher+location+date}%
   \newunit
   \setunit{\addspace}
  \usebibmacro{series+number}%
  \newunit\newblock
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{chapter+pages}%
  \newunit
  \printfield{pagetotal}%
  \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}}
   
\DeclareBibliographyDriver{incollection}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \setunit{\printdelim{nametitledelim}}\newblock% <- schönere Zeichensetzung
  \usebibmacro{title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{in:}%
  \begingroup%
  \renewbibmacro*{date+extradate}{}%
  \usebibmacro{editor+others}
  \setunit{\printdelim{nametitledelim}}\newblock
  \endgroup%
  \usebibmacro{maintitle+booktitle}%
  \newunit\newblock
  \printfield{edition}%
  \newunit
  \iffieldundef{maintitle}% <- das ist kaputt, ich weiß nicht, was es tun soll, daher kann ich es nicht retten
   \newunit\newblock %
  \usebibmacro{publisher+location+date}%
   \newunit
   \setunit{\addspace}
   \usebibmacro{series+number}%
   \newunit\newblock
  \usebibmacro{chapter+pages}%
  \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}}
   

\renewbibmacro*{series+number}{%
   \iffieldundef{series}%
      {}
      {\printtext[parens]{%
         \printfield{series}%
         \setunit{\addspace}%
         \printfield{number}}}}
         
\DeclareDelimFormat{editortypedelim}{\addspace}

% neuer Name und einfachere Definition
\renewbibmacro*{date+extradate}{%
  \iffieldundef{labelyear}
    {}
    {\printtext[parens]{%
       \iffieldnum{edition}{\printfield[superedition]{edition}\global\clearfield{edition}}{}%
       \iflabeldateisdate
         {\printdateextra}
         {\printlabeldateextra}}}}

\DeclareFieldFormat{superedition}{\textsuperscript{#1}}    

\DeclareBibliographyDriver{article}{%
  \usebibmacro{author/editor}%
  \setunit{\printdelim{nametitledelim}}\newblock
  \usebibmacro{title}%
   \newunit\newblock
  \usebibmacro{in:}%
  \usebibmacro{journal}%
  \setunit*{\addspace}%
  \printtext{\printfield{number}}%<- das sieht mir recht fishy aus. volume ist im Allgemeinen viel wichtiger als number
  \setunit{\addcomma\space}%
  \printfield{pages}%
  \usebibmacro{finentry}}
   

\addbibresource{biblatex-examples.bib}

\begin{document}
\cite{sigfridsson,malinowski,companion}
\printbibliography
\end{document}

Bartman
Forum-Meister
Forum-Meister


Beiträge: 1204
Anmeldedatum: 16.07.09
Wohnort: Hessische Provinz
Version: ---
     Beitrag Verfasst am: 12.02.2018, 00:15     Titel:
  Antworten mit Zitat      
@Verena

Code • Öffne in Overleaf
%\renewcommand{\baselinestretch}{1.30} %Zeilenabstand
\usepackage{setspace}
\setstretch{1.3}
% ...
\AtBeginBibliography{\singlespacing}

\begin{document}
\cite{sigfridsson,malinowski,companion}
%\singlespacing
\printbibliography
\end{document}


Eine Alternative zur Einstellung des Zeilenabstandes.

Code • Öffne in Overleaf
%\renewcommand{\footnotesize}{\small} %Größe der Fußnoten
\addtokomafont{footnote}{\small}


Die Anpassung von \footnotesize verändert nicht nur die Schriftgröße in den Fußnoten, sondern wirkt überall dort, wo der Befehl zum Einsatz kommt.

Quelle: Antwort von Johannes_B
Private Nachricht senden Benutzer-Profile anzeigen

Verena
Forum-Anfänger
Forum-Anfänger

Beiträge: 13
Anmeldedatum: 18.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.02.2018, 01:36     Titel:
  Antworten mit Zitat      
Wow, vielen lieben Dank! Jetzt funktioniert es wieder einwandfrei.
Danke auch für all die anderen Tipps, die wirklich sehr gut sind!

Die Anmerkung zu number ist auch völlig richtig. Ich hab das über Citavi umdefiniert (Formatierungsgründe), und in den Eintrag für number schreibt Citavi im BibLatex-File die Volume-Nummer. Sorry, wenn ich damit für Verwirrung gesorgt hab Very Happy Aber gut aufgepasst von dir! Very Happy
Private Nachricht senden Benutzer-Profile anzeigen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.02.2018, 08:48     Titel:
  Antworten mit Zitat      
Die Umdefinierung von \@makechapterhead und \@makeschapterhead ist bei KOMA-Script übrigens auch nicht die feine Art. Besser mit \RenewSectionCommand und Umdefinierung von \chapterlinesformat etc. arbeiten.

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 - 2018 goLaTeX.de