Jetzt muss ich mich doch noch einmal melden, da die Thematik doch noch nicht ganz so gelöst ist, wie ich das mir erhofft hatte.
Und zwar geht es um die von MoeWe bereits angesprochene Warnung:
WARN - Overwriting field 'year' with year value from field 'date' for entry
Ich habe dabei durchaus verstanden, wieso ich diese Warnung erhalten und was im Hintergrund geschieht, allerdings hängt genau damit mein Problem zusammen.
Warum auch immer - aber gegen die Vorgabe kann ich leider nichts machen - müssen unsere angegebenen Internetquellen (aus sich von BibLaTeX) 3 verschiedene Daten enthalten:
Verfasser (Erscheinungsjahr): Titel, <Internetadresse>(Änderungsdatum) [Zugriffsdatum]
Dabei KANN das Änderungsdatum mit dem Erscheinungsdatum/-jahr übereinstimmen muss es aber natürlich nicht.
Zusätzlich kann es natürlich auch noch sein, dass eines oder sogar beide Daten nicht bekannt sind.
In diesen Fällen soll für das Erscheinungsjahr ein "o.J." und für das Änderungsdatum ein "keine Datumsangabe" erscheinen. (Leider behandelt auch die Github-Vorlage diese Fälle nicht.)
Aktuell wird das Feld year (Erscheinungsjahr) in erster Linie durch das date (Änderungsdatum) überschrieben. Sollte dieses allerdings leer sein, wird year von urldate (Zugriffsdatum) überschrieben.
Außerdem habe ich festgestellt, dass das Feld date, wenn dieses leer und dafür year vorhanden ist, durch year überschrieben wird.
Mein Wunsch bzw. Ziel wäre es, eine Lösung für den Dokumententyp ONLINE zu haben, bei dem ich Erscheinungsjahr, Änderungsdatum und Zugriffsdatum getrennt und unabhängig von einander eintragen oder auch freilassen kann (entweder komplett leer oder mit "o.J."/"keine Datumsangabe", das ist egal) und die Felder dementsprechend im obigen Format ausgegeben werden.
Dabei sollen diese ganzen Änderungen natürlich keine Auswirkungen auf die anderen Dokumententypen haben.
Ich habe bereits versucht eigene Lösungsansätze mit origdate (oder auch eine Pfuschlösung mit eventdate) versucht, allerdings sind diese Ansätze bislang - vermutlich an meiner eigenen LaTeX-(In-)Kompetenz - gescheitert.
Ich habe mir auch bereits überlegt meine aktuelle Lösung einfach zu lassen und den Rest im nachhinein händisch zu korrigieren - hätte aber doch schon gerne die Möglichkeit das Dokument final direkt ohne zusätzliche anschließende Änderungen auszugeben!
Wenn jemand hierfür eine Lösung kennt oder mir sogar dabei helfen würde eine zu erstellen, wäre ich demjenigen SEHR dankbar!
Abschließend natürlich noch mein aktueller Stand nur für die ONLINE-Typen als "MWE":
%Schriftgröße, Layout, Papierformat, Art des Dokuments:
\documentclass[12pt,
bibliography=totoc,
paper=a4,
titlepage,
listof=entryprefix,
listof=totoc,
index=totoc,
DIV=calc,
twoside, %oneside / twoside
ngerman
]{scrartcl}
\usepackage{filecontents}
\begin{filecontents}{Literatur_bsp.bib}
@online{ABC.2019,
author = {ABC, DEF},
title = {GoLaTeX-Forum},
url = {posting.php?mode=reply&f=15&t=23931#review},
urldate = {2021-02-15},
abstract = {},
pagetotal = {16},
location = {o.O.},
file = {PDF:pdf},
year = {2019},
date = {2020-01-01}
}
@online{Test1.2019,
author = {Ohne, Jahr},
title = {GoLaTeX-Forum},
url = {posting.php?mode=reply&f=15&t=23931#review},
urldate = {2021-02-15},
abstract = {},
pagetotal = {16},
location = {o.O.},
file = {PDF:pdf},
year = {},
date = {2020-01-01}
}
@online{Test2.2019,
author = {Ohne, Änderungsdatum},
title = {GoLaTeX-Forum},
url = {posting.php?mode=reply&f=15&t=23931#review},
urldate = {2021-02-15},
abstract = {},
pagetotal = {16},
location = {o.O.},
file = {PDF:pdf},
year = {2019},
date = {}
}
@online{Test3.2019,
author = {Beides, NichtVorhanden},
title = {GoLaTeX-Forum},
url = {posting.php?mode=reply&f=15&t=23931#review},
urldate = {2021-02-15},
abstract = {},
pagetotal = {16},
location = {o.O.},
file = {PDF:pdf},
year = {},
date = {}
}
\end{filecontents}
%Deutsche Sprachunterstützung und Silbentrennung
\usepackage[ngerman]{babel}
%Zeichensatz auswählen | Umlaute ermöglichen:
\usepackage[utf8]{inputenc}
%Zeichensatz Kompatibilität:
\usepackage[T1]{fontenc}
\usepackage{lmodern}
%Datum formatieren:
\usepackage[yyyymmdd]{datetime}
\renewcommand{\dateseparator}{-}
%Literaturverzeichnis | Zitation | URL
\usepackage{url} %Bib-Datei mit URL-Packet exportieren!
\urlstyle{same} %URLs nicht in Schreibmaschinenschrift
\usepackage[babel, german=quotes]{csquotes}
\usepackage[style=ext-authoryear-ibid, %style=ext-authoryear-ibid, %um "Ebd." (ebenda) für sich-wiederholende Fussnoten zu nutzen %style=ext-authoryear,
mergedate=false,
date=iso, %iso dateformat für YYYY-MM-DD
urldate=iso,
innamebeforetitle, %InCollections Autor/Herausgeber vor Titel
dashed=true, %Substitution vorhandener wiederholender Autorennamen
useprefix=true, % 'von' im Namen beachten (beim Anzeigen)
maxbibnames=99,
maxcitenames=2,
sorting=nyt,
uniquelist=false,
uniquename=minfull,
mincrossrefs=1,
isbn=false,
doi=false,
url=false,
backend=biber]
{biblatex}
%\AtBeginBibliography{\singlespacing} %Einzeiliges Literaturverzeichnis
\ExecuteBibliographyOptions[online]{mergedate=false}
%Ändern der Ausgabe von Namen und Floskeln:
%\DefineBibliographyStrings{ngerman}{andothers={et\addabbrvspace al\adddot}} % et al. statt u.a
\renewcommand{\finentrypunct}{\addspace}
\renewcommand{\multicitedelim}{\addsemicolon\space} %
%Doppelpunkt nach Autor + Jahr:
\renewcommand*{\labelnamepunct}{\addcolon\addspace}
%Titel-Interpunktion:
\renewcommand{\newunitpunct}{\addcomma\addspace}
%Komma nach dem Titel + Untertitel
\renewcommand{\titleaddonpunct}{\newunitpunct}
%Gedankenstrich zwischen Titel und Untertitle:
\renewcommand{\subtitlepunct}{\addspace--\space}
\renewcommand{\titleaddonpunct}{\addspace--\space}
\bibliography{Literatur_bsp}
%Felder ausschließen, damit sie nicht prozessiert werden und nicht im Verzeichnis landen:
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map{
\step[fieldset=addendum, null]
\step[fieldset=note, null]
\step[fieldset=abstract, null]
\step[fieldset=eventdate, null]
\step[fieldset=file, null]
\step[fieldset=language, null]
\step[fieldset=pagetotal, null]
\step[fieldset=eprint, null]
\step[fieldset=titleaddon, null]
}
}
}
%Aufräumen die Felder werden laut Leitfaden nicht benötigt.
\AtEveryBibitem{%
\ifentrytype{book}{
\clearfield{issn}%
\clearfield{doi}%
\clearfield{isbn}%
\clearfield{url}%
\clearfield{eprint}%
}{}
\ifentrytype{collection}{
\clearfield{issn}%
\clearfield{doi}%
\clearfield{isbn}%
\clearfield{url}%
\clearfield{eprint}%
\clearfield{volume}%
\clearfield{series}%
\clearfield{note}%
\clearfield{language}%
\clearfield{editor}%
\clearfield{byeditor}%
}{}
\ifentrytype{incollection}{
\clearfield{issn}%
\clearfield{doi}%
\clearfield{isbn}%
\clearfield{url}%
\clearfield{eprint}%
\clearfield{series}%
\clearfield{publisher}%
\clearfield{editor}%
\clearfield{byeditor}%
\clearfield{pagetotal}%
\clearfield{number}%
}{}
\ifentrytype{article}{
\clearfield{issn}%
\clearfield{doi}%
\clearfield{isbn}%
\clearfield{url}%
\clearfield{eprint}%
}{}
\ifentrytype{inproceedings}{
\clearfield{issn}%
\clearfield{doi}%
\clearfield{isbn}%
\clearfield{url}%
\clearfield{eprint}%
}{}
%Allgemein
\clearfield{abendum}%
\clearfield{note}%
\clearfield{abstract}%
\clearfield{eventdate}%
\clearfield{file}%
\clearfield{language}%
\clearfield{pagetotal}%
}
%Änderungen an der Darstellung im Literaturverzeichnis
\renewcommand*{\finentrypunct}{}%Kein Punkt am Ende des Literaturverzeichnisses
\DeclareFieldFormat{editortype}{\mkbibparens{#1}}%
\DeclareDelimFormat{editortypedelim}{\addspace}%
\DeclareFieldFormat{translatortype}{\mkbibparens{#1}}%
\DeclareDelimFormat{translatortypedelim}{\addspace}%
\DeclareDelimFormat[bib,biblist]{innametitledelim}{\addcomma\space}%
\DeclareFieldFormat{citetitle}{#1}%
\DeclareFieldFormat{title}{#1}%
\DeclareFieldFormat{booktitle}{#1}%
\DeclareFieldFormat{journaltitle}{#1}%
%Nach Title muss ein Komma statt einem Punkt kommen:
\renewbibmacro*{title}{%
\ifboolexpr{
test {\iffieldundef{title}}
and
test {\iffieldundef{subtitle}}
}
{}
{\printtext[title]{%
\printfield[titlecase]{title}%
\setunit{\subtitlepunct}%
\printfield[titlecase]{subtitle}}%
\newunit}%
\printfield{titleaddon}%
\printunit{\addcomma\addperiod\space}}
%Namen kursiv schreiben
\renewcommand{\mkbibnamefamily}{\mkbibemph}%
\renewcommand{\mkbibnamegiven}{\mkbibemph}%
\renewcommand{\mkbibnamesuffix}{\mkbibemph}%
\renewcommand{\mkbibnameprefix}{\mkbibemph}%
%----------------------
%ONLINE Quellen:
%----------------------
\DeclareFieldFormat{urldate}{\mkbibbrackets{\bibstring{urlseen}\space#1}} %Eckige Klammern um das Zugriffsdatum einer URL
\DefineBibliographyStrings{ngerman}{urlseen = {Zugriff}} %"besucht am" in "Zugriff" ändern (Leitfaden)
%Reihenfolge ändern:
\DeclareBibliographyDriver{online}{%
\usebibmacro{introcite:plain}%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/editor+others/translator+others}%
\setunit{\printdelim{nametitledelim}}\newblock
\usebibmacro{title}%
\newunit
\usebibmacro{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\usebibmacro{version}%
\newunit
\usebibmacro{note}%
\newunit\newblock
\usebibmacro{organization+location+date}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}
}
\usepackage{xpatch}
\xpatchbibdriver{online}
{\usebibmacro{organization+location+date}\newunit\newblock}
{}
{}{}
\DeclareFieldFormat[online]{date}{\mkbibparens{#1}}%
\DeclareFieldFormat{urltime}{\addspace #1\addspace Uhr}%
\DeclareFieldFormat{urldate}{%urltime zu urldate hinzufügen
[Zugriff\addspace#1\printfield{urltime}] %\addcolon entfernt
}
\DeclareFieldFormat[online]{url}{<\url{#1}>}
\renewbibmacro{url+urldate}{%
\usebibmacro{url}%
\ifentrytype{online}
{\setunit{}% %\addspace entfernt, da laut Leitfaden kein Leerzeichen zwischen URL und Änderungsdatum
\iffieldundef{year}
{\printtext[date]{keine Datumsangabe}}
{\usebibmacro{date}}}%
{}%
\setunit*{\addspace}%
\usebibmacro{urldate}
}
%% Anzeige des Jahres nach dem Stichwort (usera) im Literaturverzeichnis
%% Wenn das Jahr bei Online-Quellen nicht explizit angegeben wurde, wird nach
%% dem Stichwort 'o. J.' ausgegeben. Nach der URL steht dann 'keine
%% Datumsangabe'. Ist das Jahr definiert, wird es an beiden Stellen ausgegeben.
%% Das Zugriffsdatum (urldate) spielt hier keine Rolle.
%% Für Nicht-Online-Quellen wird nichts geändert.
\renewbibmacro{date+extradate}{%
\printtext[parens]{%
\printfield{usera}%
\setunit{\printdelim{titleyeardelim}}%
\ifentrytype{online}
{\setunit{\addspace\addcomma\addspace}%
\iffieldundef{year}
{\bibstring{nodate}}
{\printlabeldateextra}}%
{\printlabeldateextra}}}
%% Anzeige des Jahres nach dem Stichwort (usera) in der Fussnote
%% das Stichwort hat der Aufrufer hier schon ausgegeben.
%% siehe auch Kommentar zu: \renewbibmacro{date+extradate}
\renewbibmacro{cite:labeldate+extradate}{%
\ifentrytype{online}
{\setunit*{\addspace\addcomma\addspace}%
\iffieldundef{year}
{\bibstring{nodate}}
{\printlabeldateextra}}%
{\printlabeldateextra}}
\DefineBibliographyStrings{german}{
nodate = {{}o.\adddot\addspace J\adddot},
andothers = {\textit{et\addabbrvspace al\adddot}}
}
%Abstände und Formatierung Literaturverzeichnis setzen
\DeclareNameAlias{sortname}{family-given}% <- eingefügt %Autorennamen im Literaturverzeichnis immer Nachname, Vorname
\DeclareNameAlias{default}{sortname}% %Anpassung der Herausgeber von Sammelwerken an die normalen Werke
\DeclareDelimFormat[bib, parencite]{multinamedelim}{\addcomma\space}% %Setzt für Textzitate und das Literaturverzeichnis die Trennung zwischen Autoren auf Komma
\DeclareDelimAlias[bib]{finalnamedelim}{multinamedelim}% %Setzt nur für das Literaturverzeichnis die Trennung des letzten Autors ebenfalls auf Komma (nicht aber für Textzitate)
%
%Formatierung Literaturverzeichnis
\setlength{\bibhang}{1cm}
\setlength{\bibinitsep}{18pt} %Abstand zwischen verschiedenen Anfangsbuchstaben
%Erweiterte Verweise
\usepackage[colorlinks, linkcolor = black, citecolor = black, filecolor = black, urlcolor = blue, breaklinks=true]{hyperref}
\begin{document}
Lorem ipsum dolor sit amet \parencites[vgl.][S.0]{ABC.2019}.
Test1: Autor (o.J.): Titel, <HTML>,(2020-01-01) [2021-02-15] \parencites[vgl.][S.1]{Test1.2019}
Test2: Autor (2019): Titel, <HTML>,(keine Datumsangabe) [2021-02-15] \parencites[vgl.][S.2]{Test2.2019}
Test3: Autor (o.J.): Titel, <HTML>,(keine Datumsangabe) [2021-02-15] \parencites[vgl.][S.3]{Test3.2019}
%Literaturverzeichnis(se)
\defbibfilter{Quellentypen}{ %Filter für Quellenverzeichnis erstellen
\type{misc}
\or \type{thesis}
}
\printbibliography[nottype={online}, nottype={misc}, nottype={thesis}, title={Literaturverzeichnis}, heading=bibnumbered] %Ausschließen mehrerer Typen funktioniert
\printbibliography[type=online, title={Internetquellen}, heading=subbibliography]
\printbibliography[filter=Quellentypen, title={Quellenverzeichnis}, heading=subbibliography] %filter=Quellentypen %Einschließen mehrerer Typen nur über Filter, da sonst AND
\end{document}