%ED%85%8D%EC%8A%A4%20%EB%8F%84%EC%9B%80%EB%A7%90.png)
에 관해 두 가지 질문이 있습니다 biblatex
.
MathSciNet의 참고문헌 항목이 있으며 여기에는 여러 필드가 있습니다. 예를 들어 다음과 같습니다.
@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}, }
다음 명령을 사용하는 동안:
{ %%%% biblatex usage \usepackage[style=numeric, backend=biber, backref, bibencoding=utf8, sorting=nyt]{biblatex} \addbibresource{ref.bib} }
그런 다음 biber로 컴파일하면 "MRNUMBER", "MRCLASS" 또는 "MRREVIEWER"에서 데이터를 얻지 못합니다.
내 질문은: 내 참고문헌에 대한 이러한 데이터나 기타 관련 데이터를 얻으려면 어떻게 해야 합니까? 이를 수행하는 표준 클래스가 있습니까?
내 이전 .bib 파일은 수동으로 컴파일되었으며 현재 MathSciNet 기능을 사용하여 가지고 있는 정보가 없습니다. 여러 파일에 걸쳐 수백 개의 참고문헌 항목에 이러한 정보를 자동으로 추가할 수 있습니까
.bib
?
답변1
amsrefs에서 biblatex로 전환mrnumber
이미 참고문헌에서 쇼를 만드는 방법을 보여주었 으므로 여기서도 보여 mrclass
드리겠습니다 mrreviewer
.
아이디어는 동일합니다. 먼저 .dbx
새 필드가 포함된 새 데이터 모델 파일( )을 정의하고 datamodel
옵션을 사용하여 로드합니다. 그런 다음 해당 필드에 대한 형식이 필요하고 마지막으로 mrinfo
표준 매크로( ) 중 하나에서 호출되는 bibmacro( )의 필드를 인쇄해야 합니다 doi+eprint+url
.
\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}
biblatex
두 번째 문제의 경우 전혀 관련이 없으므로 새로운 질문을 하는 것이 좋습니다 . 쿼리할 수 있습니다.https://mathscinet.ams.org/mrlookup귀하의 .bib
항목으로 결과를 얻으십시오. 귀하의 author
및 title
필드가 정확하고 MathSciNet의 정보와 일치하는 한 올바른 항목을 제공해야 합니다. 파이썬 도구https://pypi.org/project/bibupdate/그냥 그렇게 하는 것 같습니다.