![Unterscheiden Sie zwischen allen Eintragstypen in Biblatex (z. B. Mathemathik vs. Doktorarbeit).](https://rvso.com/image/335494/Unterscheiden%20Sie%20zwischen%20allen%20Eintragstypen%20in%20Biblatex%20(z.%20B.%20Mathemathik%20vs.%20Doktorarbeit)..png)
Ich bin vor kurzem auf Biblatex umgestiegen, was bisher großartig ist, aber nicht so einfach wie Biblatex. Ich bin auf ein Problem gestoßen, das ich bisher nicht lösen konnte:
Meine Bibliographie enthält reports, techreports, mastersthesis
und phdthesis,
neben einigen articles
und books
. Wie im Biblatex-Dokument geschrieben, sind die ersten beiden mit @reports
und der dritte und vierte mit zugeordnet @thesis
. Der Grund dafür scheint unklar und da ich unterschiedliche Formatierungsoptionen für die vier Einträge habe, ist es nicht möglich, sie zu kombinieren. Die Kombination scheint im biblatex.def
Folgenden angeordnet zu sein. \DeclareDriverSourceMap
Während ich mich daran arbeitete, eine eigene Datei für einen benutzerdefinierten Bibliographiestil zu definieren *.bbx
, habe ich auch unterschiedliche Darstellungen für alle vier Einträge definiert.
\DeclareBibliographyDriver{report}{ ...
...
\DeclareBibliographyDriver{phdthesis}{...
Aber biblatex verweist immer noch darauf biblatex.def
und ignoriert meine Einträge. Wie kann ich die Befehle im \DeclareDriverSourceMap
Abschnitt unterdrücken oder erneuern? Die bevorzugte Option wäre, etwas Code in die *.bbx
Datei einzufügen, wenn nicht anders möglich, würde auch die Präambel gehen. Aber mit meinem MWE scheint eine erneute Deklaration in der Präambel nicht möglich zu sein.
Hier ist das MWE:
\begin{filecontents*}{Beispielbibliographie.bib}
@PHDTHESIS{Mus15,
Title = {Doktorarbeit ABC},
Author = {Wax Mustermann},
School = {XY Universität},
Year = {2015},
Note = {ISBN unbekannt},
}
@MASTERSTHESIS{Mus10,
Title = {Bachelorarbeit DEF},
Author = {Martina Musterfrau},
School = {XY Universität},
Year = {2010},
Note = {Max Mustermann},
Type = {unveröffentlichte Bachelorarbeit},
}
@ARTICLE{Gan11,
Title = {GHI},
Author = {T. Gantenbein},
Journal = {Journal für Beispiele},
Year = {2011},
Number = {8},
Pages = {1001-1010},
Volume = {43},
}
\end{filecontents*}
\begin{filecontents}{Beispiel.bbx}
\ProvidesFile{Beispiel.bbx}
\RequireBibliographyStyle{standard}
\ExecuteBibliographyOptions{labelalpha,sorting=anyt}
\DeclareFieldFormat{labelalphawidth}{\mkbibbrackets{#1}}
\DeclareFieldFormat{shorthandwidth}{\mkbibbrackets{#1}}
\defbibenvironment{bibliography}
{\list
{\printtext[labelalphawidth]{%
\printfield{prefixnumber}%
\printfield{labelalpha}%
\printfield{extraalpha}}}
{\setlength{\labelwidth}{\labelalphawidth}%
\setlength{\leftmargin}{\labelwidth}%
\setlength{\labelsep}{\biblabelsep}%
\addtolength{\leftmargin}{\labelsep}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}}%
\renewcommand*{\makelabel}[1]{##1\hss}}
{\endlist}
{\item}
\defbibenvironment{shorthand}
{\list
{\printfield[shorthandwidth]{shorthand}}
{\setlength{\labelwidth}{\shorthandwidth}%
\setlength{\leftmargin}{\labelwidth}%
\setlength{\labelsep}{\biblabelsep}%
\addtolength{\leftmargin}{\labelsep}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}%
\renewcommand*{\makelabel}[1]{##1\hss}}}
{\endlist}
{\item}
\renewcommand*{\labelnamepunct}{\addcolon\addspace}
\renewcommand{\mkbibnamefamily}[1]{\textsc{#1}}
\DeclareFieldFormat[article,inbook,incollection,inproceedings,patent,thesis,unpublished]{title}{#1\isdot}
\DeclareBibliographyDriver{mastersthesis}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit\newblock
\printfield{school}%
\newunit\newblock
\printfield{type}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\printfield{year}%
\newunit\newblock
{}%
}
\DeclareBibliographyDriver{phdthesis}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit\newblock
\printfield{school}%
\newunit\newblock
\printfield{year}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
{}%
}
\endinput
\end{filecontents}
\documentclass[12pt,halfparskip,BCOR0pt,DIV12]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{lipsum}
\DeclareDriverSourcemap[datatype=bibtex]{
\map{
\step[fieldset=day, null]
}
}
\usepackage[backend=bibtex, bibstyle=Beispiel, citestyle=alphabetic, firstinits=true, isbn=false, doi=false, url=false, maxbibnames=99]{biblatex}
\bibliography{Beispielbibliographie.bib}
\begin{document}
\lipsum[1] \cite{Gan11,Mus10,Mus15}
\lipsum[2]
\printbibliography[title=Literaturverzeichnis]
\end{document}
Antwort1
Sie werden feststellen, dass s mit @techreport
abgebildet werden , während und beide mit bzw. abgebildet werden . Es gibt also eine Möglichkeit, die Typen zu unterscheiden, allerdings nicht über den Eintragstyp, sondern über das Feld.@report
type = {techreport}
@phdthesis
@mastersthesis
@thesis
type = {phdthesis}
type = {mastersthesis}
type
Ich hätte gedacht, dass die Ausgabe für die Typen ausreichend ähnlich ist, sodass es ausreicht, jeweils einen Treiber zu haben (was genau ist der Unterschied zwischen der erwarteten Ausgabe für @mastersthesis
und @phdtehsis
außer der Zeichenfolge, die bereits automatisch anzeigt, ob wir eine MA- oder PhD-Arbeit haben?), das hängt natürlich von der genauen Ausgabe ab, die Sie suchen, aber Sie können es mit gegen den Typ prüfen \iffieldequalstr{type}{techreport}{Ohh, a @techreport}{just a normal @report}
.
Zum Beispiel
\DeclareBibliographyDriver{report}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author}%
\setunit{\printdelim{nametitledelim}}\newblock
\usebibmacro{title}%
\newunit\newblock
\printtext{\iffieldequalstr{type}{techreport}{Ohh, a @techreport}{just a normal @report}}
\newunit\newblock
\usebibmacro{finentry}}
Wenn Sie die Neuzuordnung unbedingt unterdrücken müssen, biblatex.def
können Sie die Tatsache ausnutzen, dass biblatex
immer nur eine Sourcemapping-Direktive beliebigen Typs akzeptiert werden kann. Wenn Sie also hinzufügen
\DeclareDriverSourcemap[datatype=bibtex]{
\map{
\step[fieldset=day, null]
}
}
zur Präambel Ihres Dokuments werden die Standardzuordnungen ignoriert.