goLaTeX - Mein LaTeX-Forum

Mein LaTeX-Forum


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


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Umstieg von bibtex auf biblatex

 

lennnox1
Forum-Anfänger
Forum-Anfänger

Beiträge: 14
Anmeldedatum: 08.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.03.2017, 17:34     Titel: Umstieg von bibtex auf biblatex
  Antworten mit Zitat      
Hallo,

ich schreibe gerade meine Masterarbeit und möchte das Literaturverzeichnis mit biblatex gestalten.
Mein Problem hängt mit den Label zusammen. Ich habe es geschafft, dass ich im Label verschiedene Trennzeichen nutze als im Text darunter. Also bei Quellen mit einem Autor soll das Label [Name] bei zwei Autoren [Name1 und Name2] und bei mehr als 2 Autoren [Name1 et. al]. Im Beispiel funktioniert das eigentlich alles, nur manche Labels starten mit einem Leerzeichen. Also [Name et. al] und bei den anderen beiden [ Name] und [ Name1 und Name2].
Ich hoffe ich habe mein Problem genau genug beschrieben Smile. Bin ein ziemlicher Anfänger, habe jedoch versucht die einzelnen Befehle durch Kommentare zu erklären.
Vielen Dank schon mal im Voraus!

Code • Öffne in Overleaf

\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[backend=biber,citestyle=iso-authoryear,bibstyle=authortitle,sorting=nty,dashed=false,%
    maxcitenames=2,maxnames=2,natbib=true,maxbibnames=99,uniquelist=false, uniquename=false]{biblatex}
\usepackage{filecontents}      
   %Autoren Namen in Kapitälchen
\AtBeginBibliography{%
\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}}
%Sortierung der Namen
\DeclareNameAlias{sortname}{last-first}
%Trennzeichen zwischen den Namen
\renewcommand*{\multinamedelim}{\addsemicolon\space}
\renewcommand*{\finalnamedelim}{\addsemicolon\space}
%Einschub
\makeatletter
\defbibenvironment{bibliography}
{\list{\printtext[labelnumberwidth]{%
    \printfield{prefixnumber}%
    \printfield{labelnumber}}}
{\setlength{\bibhang}{0pt}%
\setlength{\leftmargin}{\bibhang}%
\setlength{\itemindent}{-\leftmargin}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}}}
{\endlist}
{\item}
\makeatother

\newcounter{maxlabelnames}
\setcounter{maxlabelnames}{2}

\DeclareNameFormat{biblabel}{%
  \ifthenelse{\value{listtotal}>\themaxlabelnames}
    {\ifthenelse{\value{listcount}=1}
      {\namepartfamily \addspace \bibstring{andothers}}
      {}%
    }
    {
      \ifthenelse{\value{listcount
}=1}
        {\namepartfamily}
        {\ifthenelse{\value{listcount}<\value{listtotal}}
          {\multinamedelim \namepartfamily}
          {\bibstring{and}\addspace\namepartfamily }%
        }%
    }%
}

\renewbibmacro{begentry}{%
\textbf{[\printnames[biblabel]{labelname}~%
           \printfield{labelyear}%
           \printfield{extrayear}]}\\}


\DefineBibliographyStrings{ngerman}{andothers={et\ al\adddot}}

\begin{filecontents}{biblatextest.bib}
@misc{A01,
  author = {Schmidt, A. and Schneider, B.
},
  year = {2001},
  title = {Alpha},
}
@misc{A02,
  author = {Meier, A. and Mueller, B. and J, Kurt
},
  year = {2001},
  title = {Alpha},
}
@misc{A03,
  author = {Lens,Markus
},
  year = {2001},
  title = {Alpha},
}
\end{filecontents}

\addbibresource{biblatextest.bib}

\begin{document}
\nocite{*}

\printbibliography[title=Literaturverzeichnis]

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.03.2017, 18:12     Titel:
  Antworten mit Zitat      
Ich habe das ganze mal etwas umgebaut. Einige Ansätze erschienen mir etwas merkwürdig. Insbesondere hast Du von iso-authoryear nichts benutzt, daher bin ich zu citestyle=authoryear gewechselt.

Code • Öffne in Overleaf
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{csquotes}
\usepackage[backend=biber,citestyle=authoryear,bibstyle=authortitle,sorting=nty,dashed=false,%
    maxcitenames=2,maxbibnames=99,uniquelist=false, uniquename=false, natbib=true]{biblatex}
\usepackage{filecontents}      
\AtBeginBibliography{\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}}
\DeclareNameAlias{sortname}{family-given}

\setlength{\bibhang}{0pt}% wirklich nur wenns denn sein muss

\AtBeginBibliography{%
  \renewcommand*{\multinamedelim}{\addsemicolon\space}%
  \renewcommand*{\finalnamedelim}{\multinamedelim}}

% Siehe http://tex.stackexchange.com/q/11827/35864, plus ein paar Modifikationen
\newcounter{mymaxcitenames}
\AtBeginDocument{%
  \setcounter{mymaxcitenames}{\value{maxnames}}%
}

\makeatletter
\renewbibmacro*{begentry}{%
  \printtext[brackets]{\printtext[bold]{%
    \begingroup
    \renewcommand*{\multinamedelim}{\addcomma\space}%
    \renewcommand*{\finalnamedelim}{%
      \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
      \addspace\bibstring{and}\space}%
    \csuse{blx@hook@cite}%
    \csuse{blx@hook@citekey}%
    \citetrackerfalse\pagetrackerfalse\backtrackerfalse
    \defcounter{maxnames}{\value{mymaxcitenames}}%
    \usebibmacro{cite}%
    \endgroup
    }}%
  \newline
}
\makeatother

\DefineBibliographyStrings{ngerman}{andothers={et\addabbrvspace al\adddot}}

\begin{filecontents}{\jobname.bib}
@misc{A01,
  author = {Schmidt, A. and Schneider, B.
},
  year = {2001},
  title = {Alpha},
}
@misc{A02,
  author = {Meier, A. and Mueller, B. and J, Kurt
},
  year = {2001},
  title = {Alpha},
}
@misc{A03,
  author = {Lens,Markus
},
  year = {2001},
  title = {Alpha},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}
\cite{A01,A02,A03}

\printbibliography[title=Literaturverzeichnis]
\end{document}

lennnox1
Forum-Anfänger
Forum-Anfänger

Beiträge: 14
Anmeldedatum: 08.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.03.2017, 18:42     Titel:
  Antworten mit Zitat      
Vielen Dank deine Lösung läuft perfekt! Very Happy
Ich habe noch eine Frage und zwar wie kann ich den Platz zwischen zwei Einträgen erhöhen?

MfG
Private Nachricht senden Benutzer-Profile anzeigen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.03.2017, 18:46     Titel:
  Antworten mit Zitat      
Code • Öffne in Overleaf
\setlength{\bibitemsep}{\itemsep}

Natürlich kannst Du das auch vergrößern: \setlength{\bibitemsep}{2\itemsep} oder irgendetwas anderes eingeben: \setlength{\bibitemsep}{0.2cm}

lennnox1
Forum-Anfänger
Forum-Anfänger

Beiträge: 14
Anmeldedatum: 08.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.03.2017, 19:58     Titel:
  Antworten mit Zitat      
Danke auch das hat super geklappt. Ich versuche mich gerade daran den String bei Url und Urldate zu ändern. Die Vorgabe von meinem Professor ist wie folgt:

[Wenz 1998]

WENZ, Karin: Formen der Mündlichkeit und Schriftlichkeit in digitalen Medien. In: Linguistik Online, 1. April 2000 [Zugriff am: 25. Mai 2000]. Verfügbar unter: http://viadrina.euv-frankfurt-o.de/~wjournal/wenz.htm


Mein Ist-Zustand ist jedoch, dass das Zugriffsdatum am Ende kommt und die Strings passen nicht.
Private Nachricht senden Benutzer-Profile anzeigen

Bartman
Forum-Meister
Forum-Meister


Beiträge: 1034
Anmeldedatum: 16.07.09
Wohnort: Hessische Provinz
Version: Windows 7 64 Bit MiKTeX 2.9 32-Bit
     Beitrag Verfasst am: 09.03.2017, 02:32     Titel:
  Antworten mit Zitat      
Gib bitte den Quelltext für Deinen Literatureintrag an, damit man nicht raten muss, was wozu gehört.
Private Nachricht senden Benutzer-Profile anzeigen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.03.2017, 09:49     Titel:
  Antworten mit Zitat      
Probier es mal mit
Code • Öffne in Overleaf
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{csquotes}
\usepackage[backend=biber,citestyle=authoryear,bibstyle=authortitle,sorting=nty,dashed=false,%
    maxcitenames=2,maxbibnames=99,uniquelist=false, uniquename=false, natbib=true, urldate=comp]{biblatex}
\usepackage{filecontents}      
\AtBeginBibliography{\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}}
\DeclareNameAlias{sortname}{family-given}

\setlength{\bibhang}{0pt}% wirklich nur wenns denn sein muss

\AtBeginBibliography{%
  \renewcommand*{\multinamedelim}{\addsemicolon\space}%
  \renewcommand*{\finalnamedelim}{\multinamedelim}}

% Siehe http://tex.stackexchange.com/q/11827/35864, plus ein paar Modifikationen
\newcounter{mymaxcitenames}
\AtBeginDocument{%
  \setcounter{mymaxcitenames}{\value{maxnames}}%
}

\makeatletter
\renewbibmacro*{begentry}{%
  \printtext[brackets]{\printtext[bold]{%
    \begingroup
    \renewcommand*{\multinamedelim}{\addcomma\space}%
    \renewcommand*{\finalnamedelim}{%
      \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
      \addspace\bibstring{and}\space}%
    \csuse{blx@hook@cite}%
    \csuse{blx@hook@citekey}%
    \citetrackerfalse\pagetrackerfalse\backtrackerfalse
    \defcounter{maxnames}{\value{mymaxcitenames}}%
    \usebibmacro{cite}%
    \endgroup
    }}%
  \newline
}
\makeatother

\DefineBibliographyStrings{ngerman}{%
  andothers = {et\addabbrvspace al\adddot},
  urlseen = {Zugriff am},
  urlfrom = {verfügbar unter},
}

\renewbibmacro*{issue+date}{%
  \setunit{\addcomma\space}%
  \printfield{issue}%
  \setunit*{\addspace}%
  \usebibmacro{date}%
  \newunit}

\DeclareFieldFormat{urldate}{\mkbibbrackets{\bibstring{urlseen}\addcolon\space#1}}
\renewbibmacro*{date}{%
  \printdate
  \setunit{\addspace}%
  \usebibmacro{urldate}}

\DeclareFieldFormat{url}{\bibstring{urlfrom}\addcolon\space\url{#1}}
\renewbibmacro*{url+urldate}{%
  \usebibmacro{url}%
  \iffieldundef{urlyear}}

\begin{filecontents}{\jobname.bib}
@misc{A01,
  author = {Schmidt, A. and Schneider, B.
},
  year = {2001},
  title = {Alpha},
}
@misc{A02,
  author = {Meier, A. and Mueller, B. and J, Kurt
},
  year = {2001},
  title = {Alpha},
}
@misc{A03,
  author = {Lens,Markus
},
  year = {2001},
  title = {Alpha},
}
@article{wenz,
  author  = {Karin Wenz
},
  title   = {Formen der Mündlichkeit und Schriftlichkeit in digitalen Medien},
  journal = {Linguistik Online},  
  volume  = {1},
  number  = {1},
  date    = {1998-11-19},
%  issn    = {1615-3014},
  url     = {https://bop.unibe.ch/linguistik-online/article/view/1085},
  urldate = {2017-03-09},
%  doi     = {10.13092/lo.1.10850},
}
\end{filecontents}


\addbibresource{\jobname.bib}

\begin{document}
\cite{A01,A02,A03,wenz}

\printbibliography[title=Literaturverzeichnis]
\end{document}

lennnox1
Forum-Anfänger
Forum-Anfänger

Beiträge: 14
Anmeldedatum: 08.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.03.2017, 10:08     Titel:
  Antworten mit Zitat      
Vielen Dank für eure Hilfe das klappt wunderbar:)
Private Nachricht senden Benutzer-Profile anzeigen

lennnox1
Forum-Anfänger
Forum-Anfänger

Beiträge: 14
Anmeldedatum: 08.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.03.2017, 18:24     Titel:
  Antworten mit Zitat      
Ich habe noch eine Frage und zwar ob man das Labelfeld, für Normen wie in dem unten aufgeführten Beispiel anpassen kann? Also sowas wie wenn Type=standard soll das Label so aussehen [DIN66001:83].

Vielen Dank schon mal für eure Hilfe!

Code • Öffne in Overleaf
\begin{filecontents}{standards.bib}
@standard{DIN66001,
  TITLE = {Informationsverarbeitung; Sinnbilder und ihre Anwendung
},
  year = {1983},
  month = {Dezember},
  author = {DIN},
  institution = {DIN},
  type={Norm},
  number = {66001},
}
@Richtlinie{DIN66001,
  TITLE = {Informationsverarbeitung; Sinnbilder und ihre Anwendung
},
  year = {1983},
  month = {},
  author = {DIN
},
  institution = {DIN},
  type={Richtlinie},
  number = {66001},
}
\end{filecontents}
\begin{filecontents}{standards.dbx}
\DeclareDatamodelEntrytypes{standard}
\DeclareDatamodelFields[type=field, datatype=literal]{institution}
\DeclareDatamodelEntryfields[standard]{institution,number,type}
\end{filecontents}
\begin{filecontents}{Richtlinie.dbx}
\DeclareDatamodelEntrytypes{Richtlinie}
\DeclareDatamodelFields[type=field, datatype=literal]{institution}
\DeclareDatamodelEntryfields[Richtlinie]{institution,number,type}
\end{filecontents}
\documentclass[ngerman]{scrartcl}
\usepackage[autostyle]{csquotes}
\usepackage[backend=biber, datamodel=standards, datamodel=Richtlinie,style=alphabetic]{biblatex}
    \DeclareLabelalphaTemplate[standard]{
     \labelelement{
      \field{institution
}
      }
      \labelelement{
        \field{number
}
      }
      \labelelement{
        \literal{:
}
      }
      \labelelement{
        \field[strwidth=2,strside=right]{year
}
      }
    }
        \DeclareLabelalphaTemplate[Richtlinie]{
     \labelelement{
      \field{institution
}
      }
      \labelelement{
        \field{number
}
      }
      \labelelement{
        \literal{:
}
      }
      \labelelement{
        \field[strwidth=2,strside=right]{year
}
      }
    }
     
    \DeclareBibliographyDriver{standard}{%
      \usebibmacro{bibindex}%
      \usebibmacro{begentry}%
      \printfield{type}\setunit{\addspace}\newblock\printfield{institution}%
      \setunit{\addspace}\newblock
      \printfield{author}%
      \setunit{\addspace}\newblock
      \printfield{number}%
      \setunit{\addspace}\newblock
      \printfield{month}%
      \setunit{\addspace}
      \printfield{year}%
      \newunit\newblock
      \usebibmacro{title}%
   \usebibmacro{finentry}}
   
 \DeclareBibliographyDriver{Richtlinie}{%
      \usebibmacro{bibindex}%
      \usebibmacro{begentry}%
      \printfield{type}\setunit{\addspace}\newblock\printfield{institution}%
      \setunit{\addspace}\newblock
      \printfield{author}%
      \setunit{\addspace}\newblock
      \printfield{number}%
      \setunit{\addspace}\newblock
      \printfield{month}%
      \setunit{\addspace}
      \printfield{year}%
      \newunit\newblock
      \usebibmacro{title}%
   \usebibmacro{finentry}}
\addbibresource{standards.bib}
\usepackage[ngerman]{babel}
\begin{document}
%\autocite{DIN66001}
%\autocite{DIN66001}
\printbibliography
\end{document}
Private Nachricht senden Benutzer-Profile anzeigen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.03.2017, 18:49     Titel:
  Antworten mit Zitat      
Was hältst Du von
Code • Öffne in Overleaf
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{csquotes}
\usepackage{filecontents}
\usepackage[backend=biber,citestyle=authoryear,bibstyle=authortitle, sorting=nty,dashed=false,%
    maxcitenames=2,maxbibnames=99,uniquelist=false, uniquename=false, natbib=true, urldate=comp]{biblatex}
     
\AtBeginBibliography{\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}}
\DeclareNameAlias{sortname}{family-given}

\setlength{\bibhang}{0pt}% wirklich nur wenns denn sein muss

\AtBeginBibliography{%
  \renewcommand*{\multinamedelim}{\addsemicolon\space}%
  \renewcommand*{\finalnamedelim}{\multinamedelim}}

% Siehe http://tex.stackexchange.com/q/11827/35864, plus ein paar Modifikationen
\newcounter{mymaxcitenames}
\AtBeginDocument{%
  \setcounter{mymaxcitenames}{\value{maxnames}}%
}

\makeatletter
\renewbibmacro*{begentry}{%
  \printtext[brackets]{\printtext[bold]{%
    \begingroup
    \renewcommand*{\multinamedelim}{\addcomma\space}%
    \renewcommand*{\finalnamedelim}{%
      \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
      \addspace\bibstring{and}\space}%
    \csuse{blx@hook@cite}%
    \csuse{blx@hook@citekey}%
    \citetrackerfalse\pagetrackerfalse\backtrackerfalse
    \defcounter{maxnames}{\value{mymaxcitenames}}%
    \usebibmacro{cite}%
    \endgroup
    }}%
  \newline
}
\makeatother

\DefineBibliographyStrings{ngerman}{%
  andothers = {et\addabbrvspace al\adddot},
  urlseen = {Zugriff am},
  urlfrom = {verfügbar unter},
}

\renewbibmacro*{issue+date}{%
  \setunit{\addcomma\space}%
  \printfield{issue}%
  \setunit*{\addspace}%
  \usebibmacro{date}%
  \newunit}

\DeclareFieldFormat{urldate}{\mkbibbrackets{\bibstring{urlseen}\addcolon\space#1}}
\renewbibmacro*{date}{%
  \printdate
  \setunit{\addspace}%
  \usebibmacro{urldate}}

\DeclareFieldFormat{url}{\bibstring{urlfrom}\addcolon\space\url{#1}}
\renewbibmacro*{url+urldate}{%
  \usebibmacro{url}%
  \iffieldundef{urlyear}}

\begin{filecontents}{\jobname.bib}
@misc{A01,
  author = {Schmidt, A. and Schneider, B.
},
  year = {2001},
  title = {Alpha},
}
@misc{A02,
  author = {Meier, A. and Mueller, B. and J, Kurt
},
  year = {2001},
  title = {Alpha},
}
@misc{A03,
  author = {Lens,Markus
},
  year = {2001},
  title = {Alpha},
}
@article{wenz,
  author  = {Karin Wenz
},
  title   = {Formen der Mündlichkeit und Schriftlichkeit in digitalen Medien},
  journal = {Linguistik Online},  
  volume  = {1},
  number  = {1},
  date    = {1998-11-19},
%  issn    = {1615-3014},
  url     = {https://bop.unibe.ch/linguistik-online/article/view/1085},
  urldate = {2017-03-09},
%  doi     = {10.13092/lo.1.10850},
}
@standard{DIN66001,
  title = {Informationsverarbeitung; Sinnbilder und ihre Anwendung
},
  date = {1983-12},
  institution = {DIN},
  type={Norm},
  number = {66001},
}
\end{filecontents}

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map[overwrite=true]{
      \pertype{standard
}
      \step[fieldsource=institution, final]
      \step[fieldset=shorthand, origfieldval]
      \step[fieldsource=number, final]
      \step[fieldset=shorthand, origfieldval, append]
      \step[fieldset=shorthand, fieldvalue={:}, append]
      \step[fieldsource=date, match=\regexp{\A[0-9]{2}([0-9]{2})}]
      \step[fieldset=shorthand, fieldvalue={$1}, append]
    }
  }
}

\DeclareBibliographyDriver{standard}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \printfield{type}%
  \setunit{\addspace}\newblock
  \printlist{institution}%
  \setunit{\addspace}
  \printfield{number}%
  \setunit{\addspace}\newblock
  \printfield{month}%
  \setunit{\addspace}
  \printfield{year}%
  \newunit\newblock
  \usebibmacro{title}%
  \usebibmacro{finentry}}

\addbibresource{\jobname.bib}

\begin{document}
\cite{A01,A02,A03,wenz,DIN66001}

\printbibliography[title=Literaturverzeichnis]
\end{document}

Neues Thema eröffnen Neue Antwort erstellen Gehe zu Seite 1, 2, 3  Weiter



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