goLaTeX - Mein LaTeX-Forum

Mein LaTeX-Forum


Login  | Registrieren
Direktlinks:
Zuletzt aktive Beiträge
Unbeantwortete Beiträge
[Erweitert]

Forenstatistik:
Beiträge: 98040
Top-Poster: Johannes_B (5059)

Wir begrüßen unseren neuesten Benutzer Cantle.

Links:


Mit Unterstützung von DANTE e.V.: Deutschsprachige Anwendervereinigung TeX. Danke den Mitgliedern!





Forum
      Option
[Erweitert]
  • Diese Seite weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Automatischer Check Felder vorhanden pro Item

 

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2019, 13:59     Titel: Automatischer Check Felder vorhanden pro Item
  Antworten mit Zitat      
Hallo,

Gibts es eine Möglichkeit oder eine Routine in der man definiert, dass ein Bibeintrag bestimmte Felder beinhalten muss?

Sprich, ich definiere, dass für den Typ „book“ mindestens folgende Felder vorhanden sein müssen:

Author, year, title, publisher, adresss

In der bib-Datei sind dann folgende Infos enthalten, also „adress“ fehlt:

@book{Andretta.2005 author = {Andreas, Susie}, year = {2005},
title = {Information literacy}, publisher = {Chandos}, address = {Oxford},

Wenn also „adress“ bei Books fehlt, ist es dann möglich, dass dies im Literaturverzeichnis rot markiert wird, da es fehlt. Mir ist schon bewusst, dass biblatex, diesen fehlenden Eintrag dann gar nicht erst ins Literaturverzeichnis aufnimmt, aber vielleicht habt ihr ja Denkanstöße oder eine Tip wie es funktionieren kann, damit pro Item also z.B. „book“ eine konsistente Datenbasis gegeben ist.

Einen schönen sonnigen Tag wünsche ich und bedanke mich im Voraus.

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2019, 14:01     Titel:
  Antworten mit Zitat      
adress bitte im Bespiel wegdenken, hab vergessen es rauszunehmen.

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2019, 14:27     Titel:
  Antworten mit Zitat      
Ich habe etwas gefunden:

[url]
https://tex.stackexchange.com/quest.....raint-type-in-biblatex-do
[/url]

und probiere das erstmal aus.

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2019, 20:43     Titel:
  Antworten mit Zitat      
Eine Möglichkeit wären in der Tat die verlinkten data model constraints. Die machen allerdings in der Ausgabe nichts rot. Du bekommst dann nur eine Warnung beim Biber-Durchlauf, wenn Du Biber mit dem Schalter --validate-datamodel (-V) aufrufst. Für die Validierung muss eine eigene .dbx-Datei geschrieben und geladen werden (hier im Beispiel mit filecontents, um alles in einer Datei zu haben, in Wirklichkeit wird man die .dbx natürlich extern haben). Die Standard-constraints verlangen recht wenig und warnen daher nicht sehr schnell. Du kannst sie Dir am Ende von blx-dm.def ansehen

Code • Öffne in Overleaf
\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}


\usepackage{filecontents}
\begin{filecontents}{moreconstraints.dbx}
\DeclareDatamodelConstraints[
  book,
  inbook,
  bookinbook,
  suppbook,
  collection,
  incollection,
  suppcollection,
  mvbook,
  mvcollection,
  proceedings,
  inproceedings,
  reference,
  inreference,
 
]{
    \constraint[type=mandatory]{
      \constraintfield{publisher
}
      \constraintfield{location}
    }
  }
\end{filecontents}

\usepackage[backend=biber, datamodel=moreconstraints, style=authoryear]{biblatex}



\begin{filecontents}{\jobname.bib}
@book{appleby,
  author  = {Humphrey Appleby
},
  title   = {On the Importance of the Civil Service},
  date    = {1980},
}
\end{filecontents}

\addbibresource{\jobname.bib}


\begin{document}
\cite{appleby}
\printbibliography
\end{document}

produziert z.B.
Code • Öffne in Overleaf
D:\Moritz\Documents\TeX\zeample>biber -V dataconstraints
INFO - This is Biber 2.12
INFO - Logfile is 'dataconstraints.blg'
INFO - Reading 'dataconstraints.bcf'
INFO - Found 1 citekeys in bib section 0
INFO - Processing section 0
INFO - Looking for bibtex format file 'dataconstraints.bib' for section 0
INFO - LaTeX decoding ...
INFO - Found BibTeX data source 'dataconstraints.bib'
WARN - Datamodel: Entry 'appleby' (dataconstraints.bib): Missing mandatory field 'publisher'
WARN - Datamodel: Entry 'appleby' (dataconstraints.bib): Missing mandatory field 'location'
INFO - Overriding locale 'de-DE' defaults 'variable = shifted' with 'variable = non-ignorable'
INFO - Overriding locale 'de-DE' defaults 'normalization = NFD' with 'normalization = prenormalized'
INFO - Sorting list 'nyt/global//global/global' of type 'entry' with template 'nyt' and locale 'de-DE'
INFO - No sort tailoring available for locale 'de-DE'
INFO - Writing 'dataconstraints.bbl' with encoding 'UTF-8'
INFO - Output to dataconstraints.bbl
INFO - WARNINGS: 2

Bei darauf folgenden LaTeX-Durchläufen werden die Warnung standardmäßig (wenn nicht mit bibwarn=false unterdrückt) auch in der .log-Datei wiederholt.

Wenn Du wirklich eine visuelle Warnung in der Ausgabe möchtest, dann kannst Du das anders aufziehen. Wir können ausnutzen, dass Biber uns mit einer source map in die Felder der .bib-Einträge schreiben lässt. Wenn wir das mit overwrite=false machen, wird vorhandener Feldinhalt nicht überschrieben, was bedeutet, dass wir nur in leere Felder schreiben. Wenn wir da jetzt eine kleine Nachricht hinterlassen, das etwas fehlt, wird diese im Literaturverzeichnis angezeigt als wäre sie der eigentliche Feldinhalt.

Code • Öffne in Overleaf
\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

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

\usepackage{xcolor}

\newrobustcmd*{\missingfield}[1]{%
  \textcolor{red}{Field \texttt{#1} missing}%
  \PackageWarningNoLine{biblatex}{%
    Field '#1' missing in entry \thefield{entrykey}}}

\DeclareSourcemap{
  \maps[datatype=bibtex, overwrite=false]{
    \map{
      \pertype{book
}\pertype{collection}\pertype{proceedings}
      \pertype{inbook}\pertype{incollection}\pertype{inproceedings}
      \step[fieldset=publisher, fieldvalue={\missingfield{publisher}}]
    }
    \map{
      \pertype{book
}\pertype{collection}\pertype{proceedings}
      \pertype{inbook}\pertype{incollection}\pertype{inproceedings}
      \step[fieldset=location, fieldvalue={\missingfield{location}}]
    }
  }
}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{appleby,
  author  = {Humphrey Appleby
},
  title   = {On the Importance of the Civil Service},
  date    = {1980},
  publisher = {Pub \& Co.},
}
\end{filecontents}

\addbibresource{\jobname.bib}


\begin{document}
\cite{appleby}
\printbibliography
\end{document}

Der Befehl muss robust sein, damit er beim Schreiben der Anweisung für Biber in die .bcf-Datei nicht ungewollt expandiert wird.

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.04.2019, 13:05     Titel:
  Antworten mit Zitat      
Vielen Dank Smile

Neues Thema eröffnen Neue Antwort erstellen



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


  Datenschutzerklärung | Impressum | FAQ | goLaTeX RSS Button RSS-Feed

Copyright © 2008 - 2019 goLaTeX.de