Auflage hochgestellt nach dem Erscheinungsjahr

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


OliverRoy
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Mo 6. Mär 2017, 18:18

Auflage hochgestellt nach dem Erscheinungsjahr

Beitrag von OliverRoy »

Hallo,

ich bin ein relativer Latex-Neuling. Habe bereits Hausarbeiten und Protokolle mit Texmaker geschrieben. Diese waren aber allesamt ohne strenge Vorgaben beim Literaturverzeichnis.
Diesmal sieht das etwas anders aus. Folgendermaßen soll mein Literaturverzeichnis aussehen:

Nachname des Autors in Kapitälchen, Anfangsbuchstabe des Vornamen des Autors. (Erscheinungsjahr^Auflage): Buchtitel (nicht kursiv). Erscheinungsort: Verlag.

Die Nachnamen in Kapitälchen habe ich bereits herausbekommen, genauso wie den Buchtitel, der nicht kursiv sein soll.

Ich habe bisher nur herausgefunden, wie man die Auflage hochgestellt bekommt und wie man sie vor das Jahr bekommt. Ich brauche die Auflage jedoch hinter dem Jahr. Hier komme ich leider nicht weiter.

Kann mir jemand helfen? Ich wäre wirklich sehr dankbar.

Gast

Beitrag von Gast »

Nutzt Du denn biblatex wie es in den wichtigen Hinweisen vorgeschlagen wird? Wenn ja (und auch wenn nein), was hast Du denn bisher? Welchen Stil verwendest Du? Zeig uns doch bitte ein Minimalbeispiel für den Anfang.

Hier ist ein ähnliches Problem http://golatex.de/auflage-hochgestellt- ... tellt.html vielleicht reicht Dir das schon als Inspiration.

OliverRoy
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Mo 6. Mär 2017, 18:18

Beitrag von OliverRoy »

Ja genau, ich verwende biblatex. Den Thread habe ich gelesen und bekomme das damit auch hin, die Auflage vors Jahr zu bekommen, aber ich weiß nicht, was ich ändern müsste, damit ich sie dahinterbekomme. So gut sind meine Kenntnisse leider nicht.
Das habe ich bisher:
\documentclass[a4paper, 12pt]{scrartcl} 
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc} 
\usepackage[ngerman]{babel}
\usepackage[babel,german=quotes]{csquotes} 
\usepackage[style=authoryear]{biblatex} 
\AtBeginDocument{
   \renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}
\AtBeginBibliography{
   \renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}
}

% Doppelpunkt nach dem Jahr im Literaturverweis
\renewcommand*{\postnotedelim}{\addcolon}

% Seitenangabe ohne automatischen Zusatz
\DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{multipostnote}{#1}
\bibliography{vulkanismus} %Verweis auf den Namen der Citavi-Datei
\usepackage[breaklinks]{hyperref}
\setcounter{biburllcpenalty}{7000}
\setcounter{biburlucpenalty}{8000}
%%%
% Hier wird Eingestellt, dass Autorennamen in Kapitälchen stehen.
%%%
\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}
%%%
\renewcommand*{\labelnamepunct}{\addcolon\space}

\DeclareFieldFormat{citetitle}{#1\isdot}
\DeclareFieldFormat[article]{citetitle}{#1}
\DeclareFieldFormat{title}{#1\isdot}
\DeclareFieldFormat[article]{title}{#1}
\DeclareFieldFormat{booktitle}{#1\isdot}
\DeclareFieldFormat{journaltitle}{#1\isdot}
\DeclareFieldFormat{issuetitle}{#1\isdot}
\DeclareFieldFormat{maintitle}{#1\isdot}
\DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{multipostnote}{#1}


% Hier wird eingestellt, dass das feld <edition> hochgestellt dargestellt wird.
%%%
\DeclareFieldFormat{edition}{\textsuperscript{#1}}
Ich habe mal ein Foto angehängt, so sieht es bisher aus. Ich brauche eigentlich nur noch die "4" der Auflage direkt hinter dem Jahr, aber ich weiß eben nicht, wie.

Ich vermute, dass ich auch zu viel drin habe, aber ich habe ein Dokument im Internet gefunden, wo ebenfalls schon viel erklärt wurde und habe da ein bisschen mehr reingepackt.

Der zugehörige Eintrag in der vulkanismus.bib - Datei lautet:
% This file was created with Citavi 5.5.0.1

@book{Ahnert.2009,
 author = {Ahnert, F.},
 year = {2009},
 title = {Einf{\"u}hrung in die Geomorphologie},
 address = {Stuttgart},
 edition = {4},
  publisher = {Ulmer},
 }
Hoffe, dass das hilft.
Bitte um Entschuldigung, dass ich das nicht sofort eingefügt habe.

Liebe Grüße
Dateianhänge
Bisheriges Literaturverzeichnis.JPG
Bisheriges Literaturverzeichnis.JPG (15.02 KiB) 1212 mal betrachtet

Gast

Beitrag von Gast »

OK. Hier ein paar Verbesserungsvorschläge für Deinen Code inklusive der Lösung für Dein Problem. Eigentlich hätte es gereicht, alles was edition erwähnt aus meiner Antwort
Anonymous hat geschrieben:Ersetz den ganzen von dir als problematisch erkannten Block mal durch
\renewbibmacro*{date+extrayear}{%
  \iffieldundef{labelyear}
    {}
    {\printtext[parens]{%
       \printfield{edition}%
       \global\clearfield{edition}%
       \iffieldsequal{year}{labelyear}
         {\printlabeldateextra}%
         {\printfield{labelyear}%
          \printfield{extrayear}}}}}
das sollte den neuen Datumsfunktionalitäten von biblatex Rechnung tragen und nicht unnötig Sachen umdefinieren.
hinter das Jahr zu bewegen, aber inzwischen hat sich einiges geändert sodass der Code etwas länglicher und leider recht unverständlich geworden ist. Die Methode
\renewbibmacro*{date+extrayear}{%
  \iffieldundef{labelyear}
    {}
    {\printtext[parens]{%
       \iffieldsequal{year}{labelyear}
         {\printlabeldateextra}%
         {\printfield{labelyear}%
          \printfield{extrayear}}%
       \printfield{edition}%
       \global\clearfield{edition}}}}
funktioniert zwar in den meisten Fällen noch, aber dennoch ist der unten gezeigte Code heute sicherer.
\documentclass[a4paper, 12pt]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[babel,german=quotes]{csquotes}
\usepackage[style=authoryear]{biblatex}

% das reicht so
\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}

\renewcommand*{\postnotedelim}{\addcolon}

% Seitenangabe ohne automatischen Zusatz
\DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{multipostnote}{#1}

\renewcommand*{\labelnamepunct}{\addcolon\space}

% man beachte, den Unterschied hier
\DeclareFieldFormat*{citetitle}{#1}
\DeclareFieldFormat*{title}{#1}
\DeclareFieldFormat*{booktitle}{#1}
\DeclareFieldFormat*{journaltitle}{#1}
\DeclareFieldFormat*{issuetitle}{#1}
\DeclareFieldFormat*{maintitle}{#1}

\makeatletter
% ja sorry, das ist lang. früher war es kürzer, aber das ganze EDTF Gesumse, naja
\renewbibmacro*{date+extrayear}{%
  \iffieldundef{labelyear}
    {}
    {\printtext[parens]{%
       \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}}}}%
       \printfield{edition}%
       \global\clearfield{edition}}}}
\makeatother

\DeclareFieldFormat{edition}{\textsuperscript{#1}}

\begin{filecontents}{\jobname.bib}
@book{Ahnert.2009,
  author    = {Ahnert, F.},
  year      = {2009},
  title     = {Einf{"u}hrung in die Geomorphologie},
  address   = {Stuttgart},
  edition   = {4},
  publisher = {Ulmer},
}
\end{filecontents}

\addbibresource{\jobname.bib}
\begin{document}
Text \autocites[5]{Ahnert.2009}
\printbibliography
\end{document}
Nebenbei ist das hier ein echtes Minimalbeispiel. Dein Code war zwar recht hilfreich, aber nicht lauffähig.

OliverRoy
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Mo 6. Mär 2017, 18:18

Beitrag von OliverRoy »

Wow, vielen vielen Dank.

Genauso wollte ich das. :)

Antworten