Datum zu Eintragstyp @misc hinzufügen

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


Zoid
Forum-Century
Forum-Century
Beiträge: 104
Registriert: Do 12. Mär 2020, 13:48

Datum zu Eintragstyp @misc hinzufügen

Beitrag von Zoid »

Moin moin,

ich habe über Citavi einige persönliche Gespräche eingetragen, welche im Literaturverzeichnis meiner Arbeit einbinden will. Die entsprechenden Einträge werden als @misc in die Bib-Datei abgespeichert. Die Einträge sehen soweit auch gut aus, aber leider wird kein Datum angezeigt, wann die Gespräche stattgefunden haben. Ich habe in Citavi ein neuen Feld hinzugefügt, welches das Datum zeigt. in der Bib-Datei finde ich das Datum dann unter dem Eintrag "userb={01.01.2022}". Wie kann ich nun dieses Datum noch im Literaturverzeichnis ergänzen?

Ich habe alternativ schon versucht, die Gespräche als @personal zu exportieren und mir den Stil selber zusammenzubasteln, aber leider werden dabei die Hälfte der Felder ignoriert. Wenn ich beispielsweise "\printfield={editor}" in die Layoutdatei schreibe, erscheint die Information aus diesem Feld nicht im Literaturverzeichnis.

So sieht der Eintrag in der Bib-Datei aus:
@personal{Meier.2022,
author = {Meier, Max},
title = {Information for nothing important},
editor = {Müller, Anna},
editortype = {collaborator},
abstract = {},
date = {2022},
usera = {2022},
userb = {01.01.2022},
type = {Dialog},
location = {Online}
}
Ich hätte es gerne als:
Meier, Max (2022): Information for nothing important. In collab. with A. Müller. Dialog. Online. 01.01.2022

Wie könnte ich das hinbekommen?

Vielen Dank und viele Grüße :D

gast.

Re: Datum zu Eintragstyp @misc hinzufügen

Beitrag von gast. »

Verwendest du biblatex? Ohne vollständiges Minimalbeispiel sehe ich nicht, warum du das Datum nicht als urldate eingibst. Übrigens müssen bei biblatex Datumsangaben im ISO-Format sein. Wie das dann ausgegeben wird, ist u. a. abhängig von Stil und Sprache.

gast.

Re: Datum zu Eintragstyp @misc hinzufügen

Beitrag von gast. »

Vergiss meinen Kommentar. Ich hatte nicht beachtet, dass du schon seit fast zwei Jahren dabei bist und mehrere Dutzend Posts hast. Du willst vermutlich schlicht kein vollständiges Minimalbeispiel zeigen. Das ist natürlich dein gutes Recht und ich will dich nicht dazu nötigen.

Zoid
Forum-Century
Forum-Century
Beiträge: 104
Registriert: Do 12. Mär 2020, 13:48

Re: Datum zu Eintragstyp @misc hinzufügen

Beitrag von Zoid »

Dachte die Frage kann man kürzer beantworten. Aber kann gerne ein "Minimalbeispiel" geben. Ist halt nur leider etwas größer, da ich nicht weiß, welche Funktionen sich gegenseitig aushebeln etc.

Hauptdokument:
\documentclass[english,12pt,a4paper]{scrreprt}

\usepackage[backend=biber,
	style=authoryear,
	maxcitenames=1,
	maxbibnames=7,
	isbn=false,
	doi=false,
	giveninits=true,
	uniquename=false,
	uniquelist=false,
	url=false]{biblatex}	% Literaturverzeichnis mit Datei
\addbibresource{literaturelayout.bib}
\addbibresource{literature.bib}


\begin{document}

\nocite{Meier.2022}

\printbibliography

\end{document}
literatur.bib:
@personal{Meier.2022,
author = {Meier, Max},
title = {Information for nothing important},
editor = {Müller, Anna},
editortype = {collaborator},
abstract = {},
date = {2022},
usera = {2022},
userb = {01.01.2022},
type = {Dialog},
location = {Online}
}
literaturlayout.tex:
\AtBeginBibliography{%

\DeclareDelimFormat[cite]{nameyeardelim}{\addcomma\space}	%fügt ein Komma zwischen Autor und Jahr bei \cite hinzu
\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}}	% Kapitälchen für Einträge im Literaturverzeichnis
\DeclareFieldFormat[article,thesis,incollection,inproceedings]{title}{\mkbibemph{#1}}		% entfernt `` bei Titel von Artikel und Thesis
\DeclareFieldFormat[standard]{title}{{#1}}		% Titel nicht kursiv für standard
\DeclareDelimFormat{finalnamedelim}{\addspace\&\space}	% tauscht ``und'' gegen ``&'' im Literaturverzeichnis
\DefineBibliographyStrings{ngerman}{andothers = {{et\,al\adddot}},}	% ersetzen von u.a. zu et al.
\DeclareFieldFormat{url}{\url{#1}}	% entfernt URL: vor https://www...
\urlstyle{same}	% passt Schriftart von URL an Dokumentschriftart an
\DeclareFieldFormat{urldate}{\bibopenbracket#1\bibclosebracket}	% ändert Darstellung von URL-Datum zu kurz und eckigen Klammern
\DeclareNameAlias{sortname}{family-given}	% ändert Reihenfolge ab zweiten Autoreneintrag zu Nachname,Vorname
\DeclareDelimFormat[bib,biblist]{nametitledelim}{\addcolon\space} % Doppelpunkt hinter Jahr statt Punkt
\newcommand*{\bibmultinamedelim}{\addsemicolon\space}% 
\AtBeginBibliography{%
  \let\multinamedelim\bibmultinamedelim
}
\DeclareNosort{
  % strip some diacritics when sorting names
  \nosort{setnames}{\regexp{[\x{2bf}\x{2018}]}}
}

\DeclareFieldFormat{urldate}{(Accessed:\,\thefield{urlday}.\thefield{urlmonth}.\thefield{urlyear})}


\newbibmacro*{usera}{%
\iffieldundef{usera}%
{}
{\printfield[]{usera}}}

\newbibmacro*{userb}{%
\iffieldundef{userb}%
{}
{\printfield[]{userb}}}

\newbibmacro*{userc}{%
\iffieldundef{userc}%
{}
{\printfield[]{userc}}}

\DeclareBibliographyDriver{personal}{%
  \usebibmacro{author/editor+others/translator+others}%
  \addcolon\addspace
  \newunit\newblock
  \printfield{title}%
  \newunit\newblock
  .\addspace In\addspace collab.\addspace with\addspace
  \printfield{editor}
  \newunit\newblock
  \printfield{type}
  \newunit\newblock
  \printfield{location}
  \newunit\newblock
  \printfield{userb}
  \usebibmacro{finentry}
  }

MoeWe
Forum-Meister
Forum-Meister
Beiträge: 801
Registriert: Fr 30. Aug 2019, 15:35
Kontaktdaten:

Re: Datum zu Eintragstyp @misc hinzufügen

Beitrag von MoeWe »

Ich würde Dir ans Herz legen, den Code in biblatex.def und standard.bbx mal genauer zu studieren und Deinen Code danach zu modellieren. Das Schreiben eines eigenen drivers ist schon keine Kleinigkeit. Um dabei die richtigen Idiome zu nutzen und nicht die vielen sinnvollen Funktionen von biblatex auszuhebeln, bedarf es eben ein wenig Kenntnis des Codes. Ich glaube, ich hatte Dir schon die DTK-Artikel von Dominik Waßenhoven (zu finden in https://archiv.dante.de/DTK/PDF/komoedie_2008_2.pdf und https://archiv.dante.de/DTK/PDF/komoedie_2008_4.pdf) verlinkt, die die Grundprinzipien von biblatex-Stilen erläutern (die Artikel sind schon über zehn Jahre alt: einige Dinge gehen heute einfacher, aber die Grundideen sind dieselben).

So hatte ich schon in viewtopic.php?p=117824#p117824 darauf hingewiesen, dass Deine eigenen driver sich recht deutlich von den Standard-Definitionen und ihren Idiomen unterscheiden. Auch in viewtopic.php?p=113046#p113046 habe ich eine Reihe von Dingen angemerkt, die bei Deinem Code unüblich sind, und Verbesserungen vorgeschlagen. (In viewtopic.php?p=117954#p117954 hat Bartman gezeigt, wie man das Datumsformat bei urldate mit biblatex besser ändert.)

Grundsätzlich gilt: Wenn Du ein noch nicht für von einem bestimmten Typ genutztes Feld nutzbar machen möchtest, musst Du das Feld irgendwo im driver unterbringen. Das kann entweder durch Redefinition des drivers direkt passieren oder dadurch, dass Du ein in dem driver genutztes Bibmacro umdefinierst. Um zu sehen, was sich da anbietet, muss man den driver und die involvierten Bibmacros untersuchen.

Wenn Du einen neuen Typen erstellen möchtest, dann solltest Du den eigentlich bei biblatex anmelden. Wie das richtig geht, steht bei https://tex.stackexchange.com/q/175776/35864.

Dein größtes Problem im Code ist \printfield{editor}. Das müsste \printnames{editor} sein. biblatex unterscheidet nämlich zwischen Namensfeldern, Listenfeldern und "normalen" Feldern ("name lists", "(literal) lists", "fields"), die mit unterschiedlichen \print...-Befehlen gedruckt werden (\printnames, \printlist, \printfield). Die biblatex-Dokumentation listet zu jedem Feld den Feldtypen auf. (Siehe auch https://tex.stackexchange.com/q/430833/35864.)

date = {2022},
usera = {2022},
userb = {01.01.2022},
sieht für mich äußerst redundant aus. Eigentlich sollte es doch reichen, biblatex einmal zu sagen, wann das Gespräch geführt wurde. Dann kann der Stil entscheiden, wie das ausgegeben wird. Wenn Du ein natives Datumsfeld wie date nutzen möchtest, dann muss das Datum allerdings im ISO-Format (yyyy-mm-dd) angegeben werden.
date = {2022-01-01},
Bei einem authoryear-Stil steht das Jahr normalerweise direkt hinter dem Namen. Wenn das Datum etwas feiner ist, dann wird das dort auch ausgegeben. Die authoryear-Stile haben aber die mergedate-Option, mit der man das ändern kann.
\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[backend=biber, style=authoryear, mergedate=basic]{biblatex}

\begin{filecontents}{\jobname.bib}
@misc{elk,
  author    = {Anne Elk},
  title     = {A Theory on Brontosauruses},
  date      = {1972-10-30},
  publisher = {Monthy \& Co.},
  location  = {London},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
Lorem \autocite{sigfridsson,elk}

\printbibliography
\end{document}
vielleicht reicht Dir das ja schon.

Zoid
Forum-Century
Forum-Century
Beiträge: 104
Registriert: Do 12. Mär 2020, 13:48

Re: Datum zu Eintragstyp @misc hinzufügen

Beitrag von Zoid »

Danke für die Mühe. Die Antwort hilft mir aber leider nicht weiter, da ich kein Feld mit der Kennung "date" unter "@misc" habe. Zumindest nicht dann, wenn ich bei Citavi eine "persönliche Mitteilung" eintrag, was nun mal ein Gespräch oder eine Mail ist. Rumpfuschen in der bib-Datei werde ich jetzt nichts, weil ich mir dann alles beim nächsten Exportieren aus Citavi um die Ohren fliegt. Dann muss ich einfach akzeptieren, dass es bei den Quellenangaben zu den ganzen Gesprächen kein Datum gibt. Nicht schön, aber besser, als gar keine Quellenangabe zu nennen.

Zoid
Forum-Century
Forum-Century
Beiträge: 104
Registriert: Do 12. Mär 2020, 13:48

Re: Datum zu Eintragstyp @misc hinzufügen

Beitrag von Zoid »

Meine improvisierte Lösung ist jetzt den Datumseintrag im Feld "Medium" bei Citavi vorzunehmen. Das klappt aber nur, wenn das Feld von keinen anderen @misc Einträgen genutzt wird. Dann tauchte irgendwo das Datum auf. Vorteil dabei ist, dass man das Datum direkt im gewünschten Format eintragen kann und dann auch angezeigt bekommt, weil es nicht als Datum, sondern als Text gesehen wird.
Technisch vielleicht sehr verkehrt, aber auf dem Papier kommt es der gewünschten Lösung am nächsten und im Zeit/Leistungs Vergleich ist es nicht zu schlagen :wink:

Antworten