Erster Versuch mit Biblatex - fast, aber nicht ganz

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


Hannes Hegel
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 54
Registriert: Mi 20. Jan 2016, 19:42

Erster Versuch mit Biblatex - fast, aber nicht ganz

Beitrag von Hannes Hegel »

Hallo!

Ich sitze gerade schon an meinem Literaturverzeichnis und bin soweit auch recht zufrieden. Zwei Dinge muss und ein paar würde ich allerdings noch ändern, falls möglich.

Hier mein MM - ich hoffe, dass es so stimmt.
\documentclass[
11pt,
a4paper,
headsepline,
cleardoublepage=empty,
headings=small,
openright
bibtotoc, DIV10
]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[babel,german=guillemets]{csquotes}
\usepackage{comment}

\usepackage[babel=other,style=authoryear-icomp,backend=biber,sorting=nyt]{biblatex}

\apptocmd{\UrlBreaks}{\do\f\do\m}{}{}
\setcounter{biburllcpenalty}{9000}
\setcounter{biburlucpenalty}{9000}

\addbibresource{bibliographie.bib} % ----- s.u.
 
\title{Bibliography management: \texttt{biblatex} package}
\author{Share\LaTeX}
\date{ }
 
\begin{document}

\raggedright
\defbibfilter{online}{type=online}
\defbibfilter{nonline}{not type=online}

\printbibliography[notkeyword={norm},filter={nonline},title={Literatur}]
\printbibliography[keyword=norm,title={Normen}]
\printbibliography[filter=online,title={Online-Quellen}]


\end{document}
und je ein Beispiel meiner Quellen
@book{Baniotopoulos2011,
	editor = "Charalambos Baniotopoulos and Claudio Borri and Theodore Stathopoulos",
	location = "Udine",
	hyphenation="english",
	number = "531",
	series = "{CISM Courses and Lectures}",
	title = "{Environmental Wind Engineering and Design of Wind Energy Structures}",
	year = "2011"
}

@online{Stat2016,
	url = "http://region.statistik-nord.de/detail/10000000000000/2/0/227752/",
	key = "web",
	hyphenation = "ngerman",
	title="Daten für meine Region: Hamburg",
	author={{Statistikamt Nord}},
	shortauthor={StatN},
	year = "2015",
	urldate={2016-04-23},
	urltime={10:52}
}

@misc{VDI2067,
	author = "{Verein Deutscher Ingenieure}",
	hyphenation = "ngerman",
	shortauthor={VDI},
	title = "{VDI Richtlinie 2067 Blatt 1}",
	year = "2000",
	keywords ={norm}
}

Die zwei wichtigsten Punkte sind, dass ich als Referenzart im Text durchgängig gerne [Name1 JJJJ] hätte. Nach jetzigem Stand ist es (Name1, Name2 und Name3 JJJJ). Ich brauche aber nur einen Namen sowie eckige Klammern.

Die nice-to-have's sind
  • Sprache im Verzeichnis abhängig von Quelle: hyphenation hab ich bei Schlosser dafür gefunden, funktioniert so aber irgendwie nicht

    Die drei Kategorien (Literatur/Normen/Online-Quellen) könnten platzsparender untereinander platziert sein, ohne jeweil auf einer neuen Seite anzufangen

    Anstatt der Punkte als Trennungszeichen z.B. zwischen Autor und Titel wären Kommata oder Doppelpunkte besser, außerdem das Jahr ganz am Ende

    Dann hab ich noch als item sowas wie "urltime"- bekomme ich das irgendwie verarbeitet?
Wie gesagt, richtig wichtig ist gerade nur die Referenz im Text. Also falls mir da irgendwer weiterhelfen könnte wäre das super!

edit: Eine Sache ist mir noch aufgefallen, die eigentlich auch zu den wichtigen gehört: Die Zweit- und Drittautoren im Verzeichniseintrag werden mit Vorname Name genannt, eigentlich wäre auch hier wie bei den Erstautoren Name, Vorname schöner.

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2466
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Re: Erster Versuch mit Biblatex - fast, aber nicht ganz

Beitrag von Bartman »

Für hyphenation und langid fehlte beim Laden des Pakets babel die Option english.
\begin{filecontents*}{bibliographie.bib}
@book{Baniotopoulos2011,
   editor = "Baniotopoulos, Charalambos and Borri, Claudio and Stathopoulos, Theodore",
   location = "Udine",
   langid="english", % hyphenation durch langid ersetzt
   number = "531",
   series = "{CISM Courses and Lectures}",
   title = "{Environmental Wind Engineering and Design of Wind Energy Structures}",
   date = "2011"
}

@online{Stat2016,
   url = "http://region.statistik-nord.de/detail/10000000000000/2/0/227752/",
   sortkey = "web",
   langid = "ngerman",
   title="Daten für meine Region: Hamburg",
   author={{Statistikamt Nord}},
   shortauthor={StatN},
   date = "2015",
   urldate={2016-04-23},
   urltime={10:52}
}

@misc{VDI2067,
   author = "{Verein Deutscher Ingenieure}",
   langid = "ngerman",
   shortauthor={VDI},
   title = "{VDI Richtlinie 2067 Blatt 1}",
   date = "2000",
   keywords ={norm}
}
\end{filecontents*}

\documentclass[
	headsepline,
	cleardoublepage=empty,
	headings=small,
	openright,
	bibtotoc,
	DIV10
]{scrbook}

\usepackage[utf8]{inputenc}
\usepackage[english, ngerman]{babel} % english hinzugefügt
\usepackage[autostyle, german=guillemets]{csquotes} % babel durch autostyle ersetzt
\usepackage[
	autolang=other, % babel durch autolang ersetzt
	style=authoryear-icomp,
	backend=biber,
	sorting=nyt,
	maxcitenames=1 % Begrenzung der im Verweis gezeigten Autorennamen
]{biblatex}

\addbibresource{bibliographie.bib}

\apptocmd{\UrlBreaks}{\do\f\do\m}{}{}
\setcounter{biburllcpenalty}{9000}
\setcounter{biburlucpenalty}{9000}
 
% Eckige Klammern bei \parencite 
\DeclareCiteCommand{\parencite}[\mkbibbrackets]
{\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

 
\begin{document}

\autocite{Baniotopoulos2011} \autocite{Stat2016} \autocite{VDI2067}

\raggedright
\defbibfilter{online}{type=online}
\defbibfilter{nonline}{not type=online}

\printbibliography[
	notkeyword={norm},
	filter={nonline}%,
%    title={Literatur}
]
\printbibliography[keyword=norm,title={Normen}]
\printbibliography[filter=online,title={Online-Quellen}]

\end{document}

Hannes Hegel
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 54
Registriert: Mi 20. Jan 2016, 19:42

Beitrag von Hannes Hegel »

Vielen Dank @bartman! Das ist genau so, wie es sein soll.

Mir ist noch eine Sache aufgefallen, und zwar werden die online-quellen seltsam geordnet - zwei quellen mit gleichem author und year erscheinen nicht untereinander. gibt es da noch andere einstellmöglichkeiten?
\begin{filecontents*}{bibliographie.bib}
@book{Baniotopoulos2011,
   editor = "Baniotopoulos, Charalambos and Borri, Claudio and Stathopoulos, Theodore",
   location = "Udine",
   langid="english", % hyphenation durch langid ersetzt
   number = "531",
   series = "{CISM Courses and Lectures}",
   title = "{Environmental Wind Engineering and Design of Wind Energy Structures}",
   date = "2011"
}

@online{ALKIS,
	title={ALKIS® in Hamburg},
	url={https://www.hamburg.de/bsw/alkis/},
	urldate={2016-04-30},
	author={{Landesbetrieb Geoinformation und Vermessung}},
	shortauthor={LBGV},
	langid="ngerman",
	year={2016}
}

@online{Geo-Portal,
	key = "web",
	url = "http://www.geoportal-hamburg.de/Geoportal/geo-online/index.html",
	year = "2016",
	title="GEO-Portal Hamburg",
	author={{Landesbetrieb Geoinformation und Vermessung}},
	shortauthor={LBGV},
	langid = "ngerman",
	urldate={2016-04-23},
	urltime={14:52}
}

@online{MasterplanHH2013,
	url = {http://www.hamburg.de/contentblob/4050236/data/masterplan-klimaschutz.pdf},
	localfile = "/home/benutzer1n/Dokumente/06 Studium/!HAW/00 BA Thesis/Literatur/Bibliographie/Normen und Erlasse/masterplan-klimaschutz.pdf",
	langid = "ngerman",
	institution = "Senat der FHH",
	title = "{Masterplan Klimaschutz}",
	shortauthor={FHH},
	author={{Senat der Freien und Hansestadt Hamburg}},
	year = "2013",
	urldate={2012-04-24},
	type = "{Drucksache 20/8493}",
	urltime={16:58}
}

@misc{VDI2067,
   author = "{Verein Deutscher Ingenieure}",
   langid = "ngerman",
   shortauthor={VDI},
   title = "{VDI Richtlinie 2067 Blatt 1}",
   date = "2000",
   keywords ={norm}
}
\end{filecontents*}

\documentclass[
   headsepline,
   cleardoublepage=empty,
   headings=small,
   openright,
   bibtotoc,
   DIV10
]{scrbook}

\usepackage[utf8]{inputenc}
\usepackage[english, ngerman]{babel} % english hinzugefügt
\usepackage[autostyle, german=guillemets]{csquotes} % babel durch autostyle ersetzt
\usepackage[
   autolang=other, % babel durch autolang ersetzt
   style=authoryear-icomp,
   backend=biber,
   sorting=nyt,
   maxcitenames=1 % Begrenzung der im Verweis gezeigten Autorennamen
]{biblatex}

\addbibresource{bibliographie.bib}

\apptocmd{\UrlBreaks}{\do\f\do\m}{}{}
\setcounter{biburllcpenalty}{9000}
\setcounter{biburlucpenalty}{9000}
 
% Eckige Klammern bei \parencite
\DeclareCiteCommand{\parencite}[\mkbibbrackets]
{\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

 
\begin{document}

\autocite{Baniotopoulos2011} \autocite{Stat2016} \autocite{VDI2067}

\raggedright
\defbibfilter{online}{type=online}
\defbibfilter{nonline}{not type=online}

\printbibliography[
   notkeyword={norm},
   filter={nonline}%,
%    title={Literatur}
]
\printbibliography[keyword=norm,title={Normen}]
\printbibliography[filter=online,title={Online-Quellen}]

\end{document}

Gast

Beitrag von Gast »

Die Namen werden mit
\DeclareNameAlias{sortname}{family-given}
gleich behandelt (in älteren Versionen brauchst Du last-first statt family-given).

Die Sortierung ist hinüber, da Du ein key-Feld in Geo-Portal hast, das ist ein Alias für sortkey und sorgt dafür, dass der Eintrag unter "w" wie "web" sortiert wird. Mach das Feld weg und die Sortierung funktioniert wieder.

Platzsparende wäre vielleicht
\printbibliography[notkeyword=norm, nottype=online]
\printbibliography[heading=subbibliography,keyword=norm, title={Normen}]
\printbibliography[heading=subbibliography,type=online, title={Online-Quellen}]
dann sind die anderen zwei Überschriften der ersten Untergeordnet oder
\printbibliography[heading=subbibliography,notkeyword=norm, nottype=online]
\printbibliography[heading=subbibliography,keyword=norm, title={Normen}]
\printbibliography[heading=subbibliography,type=online, title={Online-Quellen}]
dann sind alle auf der gleichen Ebene, bräuchten aber noch ein \chapter dazu.

Du kannst Dein System mit den Filtern übrigens so vereinfachen, wie ich es hier getan habe, type und nottype tun es auch.

Einen Doppelpunkt zwischen Jahr und Titel gibt es mit
\renewcommand*{\labelnamepunct}{\addcolon\space}
Das Jahr würde ich in einem Autor-Jahr-Stil nicht nach hinten schieben, wenn Du das trotzdem möchtest, kannst Du bibstyle=authortitle probieren (da gehen dann aber Dinge kaputt - tu es also nicht, das extrayear fehlt) oder mit mergedate rumspielen (z.B. mergedate=false, siehe [d]authoryear-icomp[/d]).

Das Feld urltime ist biblatex nicht bekannt und relativ unüblich, ich würde es einfach weglassen, das Datum sollte ausreichen.

Beispiel (Achtung! filecontents überschreibt eine eventuell vorhandene .bib-Datei desselben Namens ohne vorherige Warnung)
\documentclass{book}

\usepackage[utf8]{inputenc}
\usepackage[english, ngerman]{babel}
\usepackage[autostyle, german=guillemets]{csquotes}
\usepackage[
   autolang=other,
   style=authoryear-icomp,
   mergedate=false,
   backend=biber,
   sorting=nyt,
   maxcitenames=1
]{biblatex}

\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{Baniotopoulos2011,
  editor    = {Baniotopoulos, Charalambos and Borri, Claudio and Stathopoulos, Theodore},
  location  = {Udine},
  langid    = {english}, % hyphenation durch langid ersetzt
  number    = {531},
  series    = {CISM Courses and Lectures},   
  title     = {Environmental Wind Engineering and Design of Wind Energy Structures},
  date      = {2011},
}

@online{ALKIS,
  title       = {ALKIS® in Hamburg},
  url         = {https://www.hamburg.de/bsw/alkis/},
  urldate     = {2016-04-30},
  author      = {{Landesbetrieb Geoinformation und Vermessung}},
  shortauthor = {LBGV},
  langid      = {ngerman},
  year        = {2016}
}

@online{Geo-Portal,
  url         = {http://www.geoportal-hamburg.de/Geoportal/geo-online/index.html},  
  year        = {2016},
  title       = {GEO-Portal Hamburg},
  author      = {{Landesbetrieb Geoinformation und Vermessung}},
  shortauthor = {LBGV},
  langid      = "ngerman",
  urldate     = {2016-04-23},
}

@online{MasterplanHH2013,
  url         = {http://www.hamburg.de/contentblob/4050236/data/masterplan-klimaschutz.pdf},
  langid      = {ngerman},
  title       = {Masterplan Klimaschutz},
  shortauthor = {FHH},
  author      = {{Senat der Freien und Hansestadt Hamburg}},
  year        = {2013},
  urldate     = {2012-04-24},
  titleaddon  = {Drucksache 20/8493},
}

@misc{VDI2067, 
  author      = {{Verein Deutscher Ingenieure}},
  langid      = {ngerman},
  shortauthor = {VDI},
  title       = {VDI Richtlinie 2067 Blatt 1},
  date        = {2000},
  keywords    = {norm}
}
\end{filecontents*}

\addbibresource{\jobname.bib}

 
\DeclareCiteCommand{\parencite}[\mkbibbrackets]
{\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

 
\DeclareNameAlias{sortname}{family-given}

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

\nocite{*}

\begin{document}
\autocite{Baniotopoulos2011} \autocite{Stat2016} \autocite{VDI2067}

\printbibliography[notkeyword=norm, nottype=online]
\printbibliography[heading=subbibliography,keyword=norm, title={Normen}]
\printbibliography[heading=subbibliography,type=online, title={Online-Quellen}]
\end{document}

Hannes Hegel
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 54
Registriert: Mi 20. Jan 2016, 19:42

Beitrag von Hannes Hegel »

Super, vielen Dank! Deinen Einwand zum Erscheinungsjahr nehme ich gleich mal auf und werde das meinem Betreuer so präsentieren. Wenn er es doch partout haben will weiß ich ja jetzt, wie es geht.

Besserwisser

Beitrag von Besserwisser »

Option bibtotoc ist übrigens veraltet. Sie führt zu einer Warnung, in der steht, wie man es inzwischen machen sollte.

Und DIV10 sollte offiziell besser DIV=10 sein.

Hannes Hegel
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 54
Registriert: Mi 20. Jan 2016, 19:42

Beitrag von Hannes Hegel »

Besserwisser hat geschrieben:Und DIV10 sollte offiziell besser DIV=10 sein.
Danke, das musste ich auch gerade feststellen. Ich hab
\KOMAoptions{DIV=11}					% recalculate the page layout with a calculated DIV value
gefunden.

Hannes Hegel
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 54
Registriert: Mi 20. Jan 2016, 19:42

Beitrag von Hannes Hegel »

edit: Es besteht leider ein Problem mit der bisherigen Lösung, das ich gerade erst entdeckt habe: Der Teil von
% Eckige Klammern bei \parencite
\DeclareCiteCommand{\parencite}[\mkbibbrackets]
{\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}}
  {\multicitedelim}
  {\usebibmacro{postnote}}
lässt die Referenzen unter sämtlichen Abbildungen sowie an EINIGEN Textstellen (wobei z.B. die Seitenangabe als option stehen bleibt) verschwinden ...

Hat da irgendwer eine Idee, was kollidieren könnte? Ich verwende
 \usepackage[labelfont={bf,sf},font={footnotesize},labelsep=colon]{caption}
 \usepackage{subcaption}
für die Bildunterschriften - aber das mit den Textstellen sieht irgendwie willkürlich aus. Aber es sind bei jedem Kompilieren die selben Stellen.

Gast

Beitrag von Gast »

Mit der Definition direkt aus authoryear-icomp.cbx sollte es klappen
\DeclareCiteCommand{\parencite}[\mkbibbrackets]
  {\usebibmacro{cite:init}%
   \usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}}
  {}
  {\usebibmacro{cite:postnote}}
Wenn das auch nicht geht, wäre ein Beispiel, das das Problem reproduziert, sehr hilfreich.

Hannes Hegel
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 54
Registriert: Mi 20. Jan 2016, 19:42

Beitrag von Hannes Hegel »

Anonymous hat geschrieben:Mit der Definition direkt aus authoryear-icomp.cbx sollte es klappen
Vielen Dank für die schnelle Hilfe, das hat geholfen!

Antworten