Literaturverzeichnis: zweite Datumsangabe

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


amgfreak
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Fr 5. Apr 2019, 02:01

Literaturverzeichnis: zweite Datumsangabe

Beitrag von amgfreak »

Hallo liebe Forenmitglieder,

im Umgang mit Biblatex bin ich absoluter Anfänger. Ich habe angefangen, die Formatierung meines Literaturverzeichnisses zu gestalten, hänge ich nun aber an zwei Punkten. Der Eintrag für ein Buch im Literaturverzeichnis soll nach dem Schema "Nachname, V. (Jahr): Titel. Auflage, Verlag, Ort (Jahr)" erfolgen.
Nun zu den Fragen:
1. Wie kann ich festlegen, dass nach dem Titel ein Punkt gesetzt wird und damit von der Standardeinstellung von "\newunitpunct" abgewichen wird? Ich habe es geschafft, dass anstelle des Kommas ein Semikolon oder ein Doppelpunkt gesetzt wird. Verwende ich jedoch "\adddot", so wird mir ein Punkt gesetzt und direkt im Anschluss ein Komma, was natürlich nicht gewünscht ist. Schreibe ich in das Bib-File an das Ende einen Punkt, dann wird hingegen kein Komma gesetzt.

2. Das Jahr des Titels soll zwei Mal vorkommen, ein Mal in Klammern fettgedruckt hinter den Klammern, das funktioniert. Nun habe ich aber keine Idee, wie ich das Jahr ein zweites Mal hinter den Ort bekomme. Die Information ist zwar bei Büchern redundant, aber laut Vorlage explizit so vorgegeben. Hat hierzu jemand eine Idee?
\documentclass[a4paper, 12pt]{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{subcaption}
\usepackage{graphicx}
\usepackage[babel,german=quotes]{csquotes}
%\bibliographystyle{unsrt}
\usepackage[backend=bibtex,style=authortitle-ibid,sorting=none,bibstyle=authoryear-comp,firstinits=true,notetype=footonly,autocite=footnote, isbn=false,doi=false,url=false,eprint=false]{biblatex}
\bibliography{./BibTeX/library}

\begin{document}

\section{Stand der Technik}

\subsection{Wissenschaftliche Grundlagen}
\label{02_Wissenschaftliche Grundlagen}

Die Verwendung von Armaturen reicht historisch weit zurück.\footcite{FranzMariaFeldhaus.1914}.
\begin{figure}[h]
\begin{center}
\includegraphics[width=\textwidth]{./Bilder/VentileDaVinci}
\caption{Armaturentwürfe von Da Vinci \cite{FranzMariaFeldhaus.1914}}
\label{AbbVentileDaVinci}
\subcaption*{foobar}
\end{center}
\end{figure}
\\
Eintreten unzulässiger Betriebszustände verhindern sollen \cite{Kecke.1994}.
\newpage

\renewcommand{\labelnamepunct}{\addcolon\space} %Doppelpunkt hinter Autor
\renewcommand{\newunitpunct}{\addcomma\space}

\renewcommand{\multinamedelim}{\addslash} % Trennzeichen bei mehreren Autoren mit forward slash
\renewcommand{\finalnamedelim}{\addslash} % Trennzeichen vor letztem Autor mit forward slash 
\DeclareFieldFormat*{title}{#1\adddot} % Buchtitel nicht kursiv
\DeclareFieldFormat[book]{date}{\textbf{#1}}

\DeclareNameAlias{sortname}{family-given} % alle Autoren in Reihenfolge Nachname, Vorname
\DeclareNameFormat{family-given}{%
\mkbibbold{%
\usebibmacro{name:family-given}{\namepartfamily}{\namepartgiveni}%
}}% Name der Autoren fett drucken

\renewbibmacro*{publisher+location+date}{%
\printlist{publisher}%
\setunit*{\addcomma\space}%
\printlist{location}%
\setunit*{\addcomma\space}%
\usebibmacro{date}%
\newunit}


\printbibliography
\end{document}
Im Bib-File sind die Bücher wie folgt eingetragen:
@book{FranzMariaFeldhaus.1914,
 abstract = {Ein Handbuch f{\"u}r Arch{\"a}ologen und Historiker, Museen und Sammler, Kunsth{\"a}ndler und Antiquare (Classic Reprint).},
 author = {Franz Maria Feldhaus},
 year = {1914},
 title = {Die Technik der Vorzeit, der Geschichtlichen Zeit und der Naturv{\"o}lker},
 url = {https://archive.org/details/dietechnikdervor00feld},
 address = {Leipzig},
 publisher = {Engelmann}
}

@book{Kecke.1994,
 author = {Kecke, Hans J. and Kleinschmidt, Paul},
 year = {1994},
 title = {Industrie-Rohrleitungsarmaturen},
 address = {D{\"u}sseldorf},
 publisher = {VDI-Verl.},
 isbn = {3184011496}
}
Im Literaturverzeichnis sieht es folgendermaßen aus:
Bild


Noch eine dritte Frage, bei der ich mir nicht sicher bin, ob sie an dieser Stelle korrekt platziert ist: Wie kann ich festlegen, dass in der Fußnote lediglich die Angabe "Autor (Jahr)." steht?

Vielen Dank schon einmal für Eure Hilfe!
amgfreak[/img]
Dateianhänge
Screen Shot 2019-04-05 at 12.01.03.png
Screen Shot 2019-04-05 at 12.01.03.png (46.04 KiB) 2010 mal betrachtet
Zuletzt geändert von amgfreak am Fr 5. Apr 2019, 15:23, insgesamt 1-mal geändert.

amgfreak
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Fr 5. Apr 2019, 02:01

Punkt hinter (Buch-)Titel

Beitrag von amgfreak »

Gerade bin ich auf die Lösung gestoßen, wie auch "\adddot" als Trennzeichen akzeptiert wird, es geht bestimmt auch eleganter, aber immerhin funktioniert es mit "\printunit":
\DeclareFieldFormat*{title}{#1\printunit{\adddot\space}}
Bei den restlichen Punkten bin ich leider noch nicht weitergekommen...

Gast

Beitrag von Gast »

Bist Du Dir sicher, dass
style=authortitle-ibid, sorting=none, bibstyle=authoryear-comp,
das ist, was Du möchtest?
Was wäre denn stattdessen mit
style=authoryear-comp,
Punkt 2 sollte sich mit der Option mergedate=false erledigen lassen. Allerdings müsste man dann ein paar andere Details anpassen.

Ich gehe davon aus, dass Du eine moderne biblatex-Version besitzt. Getestet ist der Code mit der aktuellen Version 3.12.

Punkt 1 würde ich nicht dadurch lösen, dass ich \printunit im FieldFormat verstecke, da sollten eigentlich keine Zeichensetzung hin. Stattdessen würde ich das title-Makro umdefinieren.

Ich habe den gesamten Code modernisiert und eine etwas kompliziertere Lösung für den Fettdruck eingebaut, die mir aber eher zusagt.

Obwohl es geht, halte ich es für keine gute Idee, die ganzen Definitionen für biblatex erst im Dokument vorzunehmen. Solche Dinge gehören eigentlich in die Präambel.

Statt BibTeX (backend=bibtex) sei Dir Biber (backend=biber) wärmstens empfohlen. Nur mit Biber kannst Du alle biblatex-Funktionen echt nutzen.
\documentclass[a4paper, 12pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[autostyle, german=quotes]{csquotes}
\usepackage[backend=biber,
  style=authoryear-comp, mergedate=false,
  giveninits=true, uniquename=init,
  autocite=footnote, punctfont=true,
  isbn=false, doi=false, url=false, eprint=false]{biblatex}

\DeclareDelimFormat[bib]{nametitledelim}{\addcolon\space}
\renewcommand{\newunitpunct}{\addcomma\space}

\DeclareDelimFormat{multinamedelim}{\addslash}
\DeclareDelimAlias{finalnamedelim}{multinamedelim}

\DeclareNameAlias{sortname}{family-given} 

\makeatletter
\renewbibmacro*{author}{%
  \printtext[bold]{%
  \ifboolexpr{
    test \ifuseauthor
    and
    not test {\ifnameundef{author}}
  }
    {\usebibmacro{bbx:dashcheck}
       {\bibnamedash}
       {\usebibmacro{bbx:savehash}%
        \printnames{author}%
        \iffieldundef{authortype}
          {\setunit{\printdelim{nameyeardelim}}}
          {\setunit{\printdelim{authortypedelim}}}}%
     \iffieldundef{authortype}
       {}
       {\usebibmacro{authorstrg}%
        \setunit{\printdelim{nameyeardelim}}}}%
    {\global\undef\bbx@lasthash
     \usebibmacro{labeltitle}%
     \setunit*{\printdelim{nonameyeardelim}}}%
  \usebibmacro{date+extradate}}}

\renewbibmacro*{bbx:editor}[1]{%
  \printtext[bold]{%
  \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+extradate}}}

\renewbibmacro*{bbx:translator}[1]{%
  \printtext[bold]{%
  \ifboolexpr{
    test \ifusetranslator
    and
    not test {\ifnameundef{translator}}
  }
    {\usebibmacro{bbx:dashcheck}
       {\bibnamedash}
       {\printnames{translator}%
        \setunit{\printdelim{translatortypedelim}}%
        \usebibmacro{bbx:savehash}}%
     \usebibmacro{#1}%
     \clearname{translator}%
     \setunit{\printdelim{nameyeardelim}}}%
    {\global\undef\bbx@lasthash
     \usebibmacro{labeltitle}%
     \setunit*{\printdelim{nonameyeardelim}}}%
  \usebibmacro{date+extradate}}}
\makeatother


\renewbibmacro*{title}{%
  \ifboolexpr{
    test {\iffieldundef{title}}
    and
    test {\iffieldundef{subtitle}}
  }
    {}
    {\printtext[title]{%
       \printfield[titlecase]{title}%
       \setunit{\subtitlepunct}%
       \printfield[titlecase]{subtitle}}%
     \newunit}%
  \printfield{titleaddon}%
  \printunit{\addperiod\space}}

\renewbibmacro*{publisher+location+date}{%
  \printlist{publisher}%
  \setunit*{\addcomma\space}%
  \printlist{location}%
  \setunit*{\addcomma\space}%
  \usebibmacro{date}%
  \newunit}

%\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{FranzMariaFeldhaus.1914,
 author    = {Franz Maria Feldhaus},
 year      = {1914},
 title     = {Die Technik der Vorzeit, der Geschichtlichen Zeit und der Naturvölker},
 url       = {https://archive.org/details/dietechnikdervor00feld},
 address   = {Leipzig},
 publisher = {Engelmann}
}
@book{Kecke.1994,
 author    = {Kecke, Hans J. and Kleinschmidt, Paul},
 year      = {1994},
 title     = {Industrie-Rohrleitungsarmaturen},
 address   = {Düsseldorf},
 publisher = {VDI-Verl.},
 isbn      = {3184011496}
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}
Armaturentwürfe von Da Vinci \cite{FranzMariaFeldhaus.1914}

Eintreten unzulässiger Betriebszustände verhindern sollen \cite{Kecke.1994}.

\printbibliography
\end{document}

amgfreak
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Fr 5. Apr 2019, 02:01

Beitrag von amgfreak »

Puh, vielen Dank, das ist ja der Wahnsinn! :shock:
Es funktioniert schonmal fast alles, ich versuche nun nur noch nachzuvollziehen, was du da gemacht hast, um ggf. spätere Änderungen auch selbst verwirklichen zu können. Es ist sogar nur die vordere Jahreszahl fett, perfekt.
Eine Frage hätte ich noch: Wie bekomme ich den Titel nicht kursiv geschrieben?

authoryear-comp ist vollkommen ausreichend, das habe ich direkt abgeändert. Ich war mir nicht sicher, was der Unterschied zwischen bibstyle und style ist und habe am Ende erst einmal beides genommen.

Nochmals vielen, vielen Dank!
Deine Anmerkungen werde ich beherzigen, die Definitionen in die Präambel vorzuziehen und biber zu verwenden. Mit letzterem habe ich manchmal das Problem, dass er mir gar kein Literaturverzeichnis macht, deshalb war bislang bibtex in Verwendung.

Gast

Beitrag von Gast »

Ein Großteil der Befehle sollte (zumindest nach Konsultation der Anleitung) mehr oder weniger klar sein. Namen und Positionen sollten hinreichend ähnlich zum ursprünglichen Code sein, dass man da eine Verbindung machen kann.

Interessant ist der große und unhandliche Block mit \renewbibmacro*{author}, \renewbibmacro*{bbx:editor} und \renewbibmacro*{bbx:translator}. Diese Makros sind im authoryear-Stil dazu da, den Autor/Herausgeber/Übersetzter in der Anfangsposition und das Jahr auszugeben. Da das fett sein soll, habe ich zu der Standarddefinition einfach nur ein \printtext[bold] dazugeschummelt. Die Originaldefinitionen zum Vergleich findest Du in authoryear.bbx: https://github.com/plk/biblatex/blob/47 ... #L202-L268

Das title-Makro hat sich auch nur minimal verändert, nämlich mit dem \printunit{\addperiod\space} ganz am Ende. Das Original ist in biblatex.def: https://github.com/plk/biblatex/blob/47 ... 2722-L2734 Die Idee mit dem \printunit hattest Du ja auch schon. Ich finde es nur hier schöner als im FieldFormat. \printunit statt dem sonst oft verwendeten \setunit ist nötig, damit das Zeichen nicht von nachfolgenden Aufrufen von \setunit überschrieben wird. Erklärt ist dieser punctuation tracker in der Anleitung und z.B. bei https://tex.stackexchange.com/a/196318/35864

Zu den kursiven Titeln gibt es mehrere Methoden, die alle leicht unterschiedliche Ergebnisse haben. Wenns recht ist verweise ich auf https://tex.stackexchange.com/q/462133/35864 Wenn nach der Lektüre des Beitrages noch Fragen sind, dann werde ich die gerne beantworten.

Der Unterschied zwischen bibstyle und style ist, dass style=<style> eine Kurzform für bibstyle=<style>, citestyle=<style> ist. Wenn Du also style=A, bibstyle=B schreibst, dann heißt das letztendlich bibstyle=B, citestyle=A. Ich rate immer dazu, so wenig Optionen wie möglich zu setzen. Im besten Fall nehmen überflüssige Optionen nur Platz weg. Im schlimmsten Fall können sie zu Verwirrung und vermeidbaren Fehlern führen. (In Deinem Beispiel wäre sorting=none meiner Meinung nach verheerend gewesen. Zitiert mal die beiden Beispielquellen in umgekehrter Reihenfolge.)

Wenn es mit Biber zunächst nicht ging, liegt das höchstwahrscheinlich daran, dass Du (oder wahrscheinlicher: Dein Editor) immer noch BibTeX aufruft, obwohl eigentlich Biber gefragt wäre. Bei https://www.texwelt.de/wissen/fragen/19 ... nem-editor steht, wie man den Editor zur Biber-Mitarbeit bekommt.

Antworten