Umstieg von bibtex auf biblatex

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


Gast

Beitrag von Gast »

Hochinteressant! Das liegt an einer etwas komplizierten Standarddefinition von \DeclareFieldFormat{extrayear}. Wir brauchen nur
\DeclareFieldFormat{extrayear}{\mknumalph{#1}}
Im Ganzen (ich habe einen Fehler - \iffieldundef{urlyear} - behoben und ein paar fehlende % ergänzt.)
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{csquotes}
\usepackage{filecontents}
\usepackage[backend=biber,citestyle=authoryear,bibstyle=authortitle, sorting=cnyt,dashed=false,%
    maxcitenames=2,maxbibnames=99,uniquelist=false, uniquename=false, natbib=true, urldate=comp,isbn=false,doi=false,bibencoding=utf8,dateabbrev=false]{biblatex}    


\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},
}
@misc{A04,
  author = {Lens,Markus},
  year = {2001},
  title = {Alpha2},
}

@online{A06,
author  = {ABB,Ltd},
title   = {YuMi: Zusammen in die Zukunft der Automatisierung},
urldate = {2017-06-24},
url     = {https://library.e.abb.com/public/b1185932b22144a2996a200c5e4db75b/Datenblat%20YuMi_lowres.pdf}
}
@online{A05,
author  = {ABB,Ltd},
title   = {Roboterbasiertes Kleben mit integriertem Applikationssystem},
urldate = {2017-04-05},
url     = {https://library.e.abb.com/public/6ad9965ec28d9cfdc125775900470106/Datenblatt_Kleben_highres.pdf}
}

\end{filecontents}

\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}
\AtEveryCite{\renewcommand*{\mkbibnamefamily}[1]{#1}}
\DeclareNameAlias{sortname}{family-given}

\setlength{\bibhang}{0pt}% wirklich nur wenns denn sein muss
\setlength{\bibitemsep}{5pt}
\DeclareFieldFormat[thesis]{title}{\textit{#1\isdot}}
\DeclareFieldFormat[inbook]{title}{\textit{#1\isdot}}
\DeclareFieldFormat[article]{title}{\textit{#1\isdot}}
\DeclareFieldFormat[incollection]{title}{\textit{#1\isdot}}
\DeclareFieldFormat[inproceedings]{title}{\textit{#1\isdot}}
\DeclareFieldFormat[thesis]{title}{\textit{#1\isdot}}


\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}}%
   \renewcommand*{\nameyeardelim}{\space}
}

\DeclareFieldFormat{extrayear}{\mknumalph{#1}}




 
\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},
   phdthesis = {Dissertation},
   mathesis  = {Masterarbeit},
}

\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}}


\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map[overwrite=true]{
      \pertype{standard}
      \step[fieldsource=institution, match=\regexp{\ADIN\Z}, 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]
      \step[fieldsource=shorthand]
      \step[fieldset=sortkey, origfieldval]
    }
    \map[overwrite=true]{
      \pertype{standard}
      \step[fieldsource=institution, match=\regexp{\AVDI\Z}, final]
      \step[fieldset=shorthand, origfieldval]
      \step[fieldset=shorthand, fieldvalue={~}, append]
      \step[fieldsource=number, final]
      \step[fieldset=shorthand, origfieldval, append]
      \step[fieldsource=shorthand]
      \step[fieldset=sortkey, origfieldval]
    }
  }
}
\DeclareBibliographyDriver{standard}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \printfield{type}%
  \setunit{\addcomma\space}\newblock
  \printlist{institution}%
  \setunit{\addspace}%
  \printfield{number}%
  \setunit{\addspace}\newblock
  \printfield{month}%
  \setunit{\addspace}%
  \printfield{year}%
  \newunit\newblock
  \usebibmacro{title}%
  \usebibmacro{finentry}}

%Doppelpunkt hinter den Namen
\renewcommand*{\labelnamepunct}{\addcolon\addspace}

\DeclareSortingScheme{cnyt}{
  \sort{
    \field{presort}
  }
  \sort[final]{
    \field{sortkey}
    \field{shorthand}
  }
  \sort{
    \field{sortname}
    \field{author}
    \field{editor}
    \field{translator}
    \field{sorttitle}
    \field{title}
  }
  \sort{
    \field{sortyear}
    \field{year}
  }
  \sort{
    \field{sorttitle}
    \field{title}
  }
  \sort{
    \field{volume}
    \literal{0}
  }
}


\addbibresource{\jobname.bib}

\begin{document}
\citep{A03,A04,A05,A06}

\cite{A03,A04,A05,A06}

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

Antworten