Anpassungen im Literaturverzeichnis mit biblatex+biber

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


muhm8diekuh

Anpassungen im Literaturverzeichnis mit biblatex+biber

Beitrag von muhm8diekuh »

Hallo liebe TeXter,

da es an anderer Stelle gewünscht wurde, habe ich hier eine neue Frage zum Thema Literaturverzeichnis modifizieren mit biblatex.
Ich möchte gerne mit hochgestellten Nummern zitieren und die Referenzen in der Bibliographie dann auch mit hochgestellten Nummern aufführen. Wie kann ich die Zahlen der Referenzen hochstellen direkt vor den ersten Autor?
Die Referenzen sollen außerdem folgendermaßen aussehen:
Simpson HJ. Springfield Is My Hometown. Journal of Journals. 1990;2(14):143-149.
Nachname VN. Titel. Journal. Jahr;Volume(Number):Seite-Seite.
Das ist mir auch gelungen bis auf ein Leerzeichen zwischen (Number): und den Seiten. Es will einfach nicht weg! :D

Hier das Minimalbeispiel:
\documentclass[a4paper,12pt]{article}
\usepackage[includefoot,includehead,left=2.5cm,right=2.5cm,top=2cm,bottom=1.5cm]{geometry} %Seitenränder
\usepackage[utf8]{inputenc} 							%UTF-Zeichensatz (Umlaute etc.)
\usepackage[american]{babel}							%Sprachpaket (amerikanisches Englisch)
%--------Biblatex Paket inkl. Anpassungen----------------------------------------------------------------------------------------
\usepackage{csquotes} 										%Zitierte Texte werden entsprechend den Regeln Ihrer Hauptsprache gesetzt
\usepackage[
style=numeric-comp,												%Stil des Literaturverzeichnisses
%style=phys,
backend=biber,														%Biber statt bibtex als “backend” (programm)
autocite=superscript,											%Zitieren mit \autocite bewirkt, dass die Referenz hochgestellt wird
sorting=none, 														%Literaturverzeichnis wird in der Reihenfolge, in der die Referenzen genannt werden sortiert
giveninits=true, 													%Vornamen als Initialien
maxbibnames=6,														%maximal 6 Namen in der Literaturliste
minbibnames=3,														%mindestens 3 Namen in der Literaturliste
isbn=false,																%keine ISBN Nummern in den Referenzen
url=false,																%keine URL
doi=false,																%kein doi
eprint=false, 														%keine eprint Einträge
terseinits=true,													%s.u. Punkt nach dem letzten Autor
]{biblatex} 															%Biblatex Paket für Referenzen (JabRef/Mendeley)
\addbibresource{biblatex-examples.bib}
%---------------Bibliography Anpassungen--------------------------------------------------------------------------------------
\DeclareNameAlias{default}{last-first}						%Nachname, Vorname
\renewcommand*{\revsdnamepunct}{} 								%Komma zwischen Nachnamen und Vornamen entfernen
\renewcommand*{\finalnamedelim}{\addcomma\space}	%Entfernt 'and' zwischen den letzten beiden Namen
\DeclareFieldFormat[article]{title}{#1}						%Titel von Artikeln nicht in Anführungszeichen
\renewbibmacro*{in:}{}														%löscht alle 'In:'
%Enfernt die Punkte nach den Initialen (mit terseinits=true in den Optionen für biblatex)
%https://tex.stackexchange.com/questions/65438/removing-full-stop-after-first-name-initial-in-biblatex-for-all-authors
\renewbibmacro*{name:last-first}[4]{
  \ifuseprefix
    {\usebibmacro{name:delim}{#3#1}%
     \usebibmacro{name:hook}{#3#1}%
     \ifblank{#3}{}{%
       \ifcapital
         {\mkbibnameprefix{\MakeCapital{#3}}\isdot}
     {\mkbibnameprefix{#3}\isdot}%
       \ifpunctmark{'}{}{\bibnamedelimc}}%
     \mkbibnamelast{#1}\isdot
     \ifblank{#4}{}{\bibnamedelimd\mkbibnameaffix{#4}\isdot}%
%      \ifblank{#2}{}{\addcomma\bibnamedelimd\mkbibnamefirst{#2}\isdot}}% DELETED
     \ifblank{#2}{}{\bibnamedelimd\mkbibnamefirst{#2}\isdot}}% NEW
    {\usebibmacro{name:delim}{#1}%
     \usebibmacro{name:hook}{#1}%
     \mkbibnamelast{#1}\isdot
     \ifblank{#4}{}{\bibnamedelimd\mkbibnameaffix{#4}\isdot}%
%      \ifblank{#2#3}{}{\addcomma}% DELETED
     \ifblank{#2}{}{\bibnamedelimd\mkbibnamefirst{#2}\isdot}%
     \ifblank{#3}{}{\bibnamedelimd\mkbibnameprefix{#3}\isdot}}}
%Punkt nach journal
%https://tex.stackexchange.com/questions/249010/adding-comma-after-journal-name-in-biblatex
\renewbibmacro*{journal+issuetitle}{%
  \usebibmacro{journal}%
  \setunit*{\adddot\space}%
  \iffieldundef{series}%
    {}%
    {\newunit%
     \printfield{series}%
     \setunit{\addspace}}%
		%Jahreszahl (issue+date) VOR Volumen und Issue (volume+number+eid)		
		\usebibmacro{issue+date}%
		\setunit{\addsemicolon}%
		\usebibmacro{volume+number+eid}%
		\setunit{\addcolon}%
		\usebibmacro{issue}%
	\newunit}%
%Klammern um Jahreszahlen entfernen
\renewbibmacro*{issue+date}{%
  \setunit{\adddot\space}%
    \iffieldundef{issue}%
      {\usebibmacro{date}}%
      {\printfield{issue}%
       \setunit*{\addspace}%
       \usebibmacro{date}}%
  \newunit}%
%Issue/Number des Journals in Klammern mit anschließendem Doppelpunkt
%%https://tex.stackexchange.com/questions/248740/how-to-modify-numeric-comp-style-in-biblatex
\renewbibmacro*{volume+number+eid}{%
	\isdot%
	\printfield{volume}%
	\setunit*{}%
	\iffieldundef{number}{}{%
		\printtext[parens]{%
			\printfield{number}}%
		\printtext{:}%
	\setunit{\addcolon}}}%
%'pp' bei Seitenzahlangabe entfernen
%\renewcommand\newunitpunct{\adddot\space}
\DefineBibliographyStrings{english}{%
page = {},
pages = {},}		
%---------------------------------------------------------------------------------------------------

\begin{document}
Lorem ipsum dolor \autocite{aksin} sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore \autocite{herrmann} et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris \autocite{murray} nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
\printbibliography
\end{document}
Wäre super, wenn jemand einen Tipp hätte.
LG

Gast

Beitrag von Gast »

Ich habe das alles mal ein bisschen überarbeitet. Einige Links waren schon recht alt und haben inzwischen eingebaute, einfachere Lösungen. Ein paar Methoden fand ich auch fragwürdig (Unterdrücken der "pp." durch Umdefinieren des pages-bibstrings, die Definition von volume+number+eid).
\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[
style=numeric-comp,
backend=biber,
autocite=superscript,
sorting=none,
giveninits=true,
maxbibnames=6,
minbibnames=3,
isbn=false,
url=false,
doi=false,
eprint=false,
terseinits=true,
]{biblatex}
\addbibresource{biblatex-examples.bib}

% aus: phys.bbx
\DeclareFieldFormat{labelnumberwidth}{\mkbibsuperscript{#1}}
\setlength{\biblabelsep}{0pt}

\DeclareNameAlias{default}{family-given}
\renewcommand*{\revsdnamepunct}{}
\renewcommand*{\finalnamedelim}{\multinamedelim}
\DeclareFieldFormat[article]{title}{#1}
\renewbibmacro*{in:}{}

\renewbibmacro*{journal+issuetitle}{%
  \usebibmacro{journal}%
  \newunit
  \printfield{series}%
  \newunit
  \usebibmacro{date}%
  \setunit{\addsemicolon}%
  \usebibmacro{volume+number+eid}%
  \setunit{\addcolon\space}%
  \usebibmacro{issue}%
  \newunit}%

\DeclareFieldFormat[article,periodical]{number}{\mkbibparens{#1}}
\renewbibmacro*{volume+number+eid}{%
  \printfield{volume}%
  \printfield{number}%
  \setunit{\addcomma\space}%
  \printfield{eid}}

\renewcommand*{\bibpagespunct}{\addcolon}
\DeclareFieldFormat{pages}{#1}

\begin{document}
Lorem ipsum dolor \autocite{aksin} sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore \autocite{herrmann} et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris \autocite{murray} nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
\printbibliography
\end{document}

muhm8diekuh

Beitrag von muhm8diekuh »

Wow! Das funktioniert doch schon um einiges besser.
Ja, einige Methoden waren etwas bescheiden, aber besser habe ich es nicht hinbekommen. Die Vorschläge sind doch deutlich einfacher und übersichtlicher. Vielen Dank!

Antworten