tex%20Hilfe.png)
Ich habe zwei Fragen zu biblatex
.
Ich habe Bibliographieeinträge von MathSciNet und diese haben mehrere Felder. Ein solches sieht beispielsweise so aus:
@article {Gratzer2013, AUTHOR = {Gr\"{a}tzer, G.}, TITLE = {The order of principal congruences of a bounded lattice}, JOURNAL = {Algebra Universalis}, FJOURNAL = {Algebra Universalis}, VOLUME = {70}, YEAR = {2013}, NUMBER = {1}, PAGES = {95--105}, ISSN = {0002-5240}, MRCLASS = {06B10 (06A06)}, MRNUMBER = {3073941}, MRREVIEWER = {S. Parameshwara Bhatta}, DOI = {10.1007/s00012-013-0242-3}, URL = {https://doi.org/10.1007/s00012-013-0242-3}, }
Während Sie den folgenden Befehl verwenden:
{ %%%% biblatex usage \usepackage[style=numeric, backend=biber, backref, bibencoding=utf8, sorting=nyt]{biblatex} \addbibresource{ref.bib} }
und dann beim Kompilieren mit Biber bekomme ich die Daten von „MRNUMBER“ oder „MRCLASS“ oder „MRREVIEWER“ nicht.
Meine Frage ist: Was muss ich tun, um diese oder andere relevante Daten für meine Bibliographie zu erhalten? Gibt es eine Standardklasse, die dies tut?
Meine alten .bib-Dateien wurden manuell kompiliert und enthalten nicht die Informationen, die ich derzeit mit der MathSciNet-Funktion habe. Ist es möglich, diese Informationen automatisch zu Hunderten von Bibliographieeinträgen in mehreren
.bib
Dateien hinzuzufügen?
Antwort1
Umstellung von amsrefs auf biblatexmrnumber
zeigt bereits, wie Sie die Anzeige in der Bibliographie vornehmen können , daher zeigen wir hier auch mrclass
und .mrreviewer
Die Idee ist die gleiche. Zuerst definieren wir eine neue Datenmodelldatei ( .dbx
) mit den neuen Feldern und laden diese mit der datamodel
Option. Dann brauchen wir Formate für diese Felder und schließlich müssen wir die Felder in einem Bibmacro ( ) drucken, mrinfo
das in einem der Standardmakros ( doi+eprint+url
) aufgerufen wird.
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage{filecontents}
\begin{filecontents*}{mrnumber.dbx}
\DeclareDatamodelFields[type=field,datatype=literal]{mrnumber,mrclass}
\DeclareDatamodelFields[type=list, datatype=name]{mrreviewer}
\DeclareDatamodelEntryfields{mrnumber,mrclass,mrreviewer}
\end{filecontents*}
\usepackage[style=numeric, backend=biber, sorting=nyt, datamodel=mrnumber]{biblatex}
\usepackage{hyperref}
\DeclareFieldFormat{mrnumber}{%
\ifhyperref
{\href{http://www.ams.org/mathscinet-getitem?mr=1#1}{MR#1}}
{MR#1}}
\DeclareFieldFormat{mrclass}{#1}
\DeclareNameAlias{bymrreviewer}{byeditor}
\newbibmacro*{mrinfo}{%
\printfield{mrnumber}%
\iffieldundef{mrclass}
{\setunit*{\addcomma\space}}
{\setunit*{\addspace}}%
\printfield{mrclass}%
\setunit*{\addcomma\space}%
\ifnameundef{mrreviewer}
{}
{\bibstring{byreviewer}%
\setunit{\addspace}%
\printnames[bymrreviewer]{mrreviewer}}}
\newtoggle{bbx:mrinfo}
\DeclareBibliographyOption[boolean]{mrinfo}[true]{\settoggle{bbx:mrinfo}{#1}}
\ExecuteBibliographyOptions{mrinfo}
\renewbibmacro*{doi+eprint+url}{%
\iftoggle{bbx:doi}
{\printfield{doi}}
{}%
\newunit\newblock
\iftoggle{bbx:mrinfo}
{\usebibmacro{mrinfo}}
{}%
\newunit\newblock
\iftoggle{bbx:eprint}
{\usebibmacro{eprint}}
{}%
\newunit\newblock
\iftoggle{bbx:url}
{\usebibmacro{url+urldate}}
{}}
\begin{filecontents*}{\jobname.bib}
@article{gratzer,
author = {Grätzer, G.},
title = {The order of principal congruences of a bounded lattice},
journal = {Algebra Universalis},
volume = {70},
year = {2013},
number = {1},
pages = {95--105},
mrclass = {06B10 (06A06)},
mrnumber = {3073941},
mrreviewer = {S. Parameshwara Bhatta},
doi = {10.1007/s00012-013-0242-3},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\begin{document}
\cite{gratzer,sigfridsson}
\printbibliography
\end{document}
Zum zweiten Thema schlage ich vor, dass Sie eine neue Frage stellen, da dies nichts damit zu tun hatbiblatex
überhaupt nicht damit zusammenhängt. Sie könnten fragenhttps://mathscinet.ams.org/mrlookupmit Ihren .bib
Eingaben und erhalten Sie das Ergebnis. Solange Ihre author
undtitle
Felder korrekt sind (und mit den Informationen auf MathSciNet übereinstimmen), sollten Sie den richtigen Eintrag erhalten. Das Python-Toolhttps://pypi.org/project/bibupdate/scheint genau das zu tun.