私はいくつかのテキストで、MR、Zbl、arxiv、時にはdoiへのハイパーリンクを含む、きれいにフォーマットされた参考文献を何度か見たことがあります。たとえば、次のようなものです(この紙):
- Boris Albar と Daniel Gonçalves。Kr マイナー自由グラフの三角形について。2013 年。arXiv:1304.5468。
- 河原林健一、宋子霞。独立数とクリークマイナー。グラフ理論誌、56(3):219–226、2007年。doi:10.1002/jgt.20268。 氏:2355127。
- Alexandr V. Kostochka. 与えられた平均頂点次数を持つグラフの最小 Hadwiger 数。Metody Diskret. Analiz.、38:37–58、1982。MR:0713722、Zbl:0544.05037。
このようなものを取得するにはどの BibTeX スタイルを使用できますか? どのフィールドが使用され、どのようにフォーマットされますか?
これを手動で(BibTeX なしで)行うにはどうすればよいでしょうか?
答え1
biblatex
こういうことはとても得意です。
biblatex
各エントリに対して指定できる宛先は 1 つだけなのでeprint
、異なる電子プリント タイプごとに新しいフィールドを作成します。
biblatex
そのためには、逐語的フィールドを提供し、すべてのエントリ タイプで有効にするように要求する必要があります。 *これは、データモデル ( .dbx
) ファイルを介して行われます。そのファイルは、以下の例で で作成されますがfilecontents
、実際にはおそらくこれを行わず、.dbx
TeX が見つけられる場所にファイルをコピーするだけです。
このファイルをext-eprint.dbx
\ProvidesFile{ext-eprint.dbx}[2016/09/11 extended stand-alone eprint fields]
\DeclareDatamodelFields[type=field,datatype=verbatim]{arxiv,mr,zbl,jstor,hdl,pubmed,googlebooks,pmcid}
\DeclareDatamodelEntryfields{arxiv,mr,zbl,jstor,hdl,pubmed,googlebooks,pmcid}
\DeclareDatamodelFields[type=field,datatype=literal]{arxivclass}
\DeclareDatamodelEntryfields{arxivclass}
次に、データモデル ファイルをロードする必要があります。 と呼ばれる場合、ロード時にext-eprint.dbx
オプションdatamodel=ext-eprint
を に渡します。biblatex
任意のエイリアスを追加することができます
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map{
\step[fieldsource=pmid, fieldtarget=pubmed]
}
}
}
そしてもちろん、これらの電子プリントにはフォーマットが必要であり、一般的なパターンは非常に似ています
\makeatletter
\DeclareFieldFormat{arxiv}{%
arXiv\addcolon\space
\ifhyperref
{\href{http://arxiv.org/\abx@arxivpath/#1}{%
\nolinkurl{#1}%
\iffieldundef{arxivclass}
{}
{\addspace\texttt{\mkbibbrackets{\thefield{arxivclass}}}}}}
{\nolinkurl{#1}
\iffieldundef{arxivclass}
{}
{\addspace\texttt{\mkbibbrackets{\thefield{arxivclass}}}}}}
\makeatother
\DeclareFieldFormat{pmcid}{%
PMCID\addcolon\space
\ifhyperref
{\href{http://www.ncbi.nlm.nih.gov/pmc/articles/#1}{\nolinkurl{#1}}}
{\nolinkurl{#1}}}
\DeclareFieldFormat{mr}{%
MR\addcolon\space
\ifhyperref
{\href{http://www.ams.org/mathscinet-getitem?mr=MR#1}{\nolinkurl{#1}}}
{\nolinkurl{#1}}}
\DeclareFieldFormat{zbl}{%
Zbl\addcolon\space
\ifhyperref
{\href{http://zbmath.org/?q=an:#1}{\nolinkurl{#1}}}
{\nolinkurl{#1}}}
\DeclareFieldAlias{jstor}{eprint:jstor}
\DeclareFieldAlias{hdl}{eprint:hdl}
\DeclareFieldAlias{pubmed}{eprint:pubmed}
\DeclareFieldAlias{googlebooks}{eprint:googlebooks}
biblatex
eprint
bibmacroはeprint情報を印刷するために使用するので、そこに新しいタイプを追加するだけです
\renewbibmacro*{eprint}{%
\printfield{arxiv}%
\newunit\newblock
\printfield{jstor}%
\newunit\newblock
\printfield{mr}%
\newunit\newblock
\printfield{zbl}%
\newunit\newblock
\printfield{hdl}%
\newunit\newblock
\printfield{pubmed}%
\newunit\newblock
\printfield{pmcid}%
\newunit\newblock
\printfield{googlebooks}%
\newunit\newblock
\iffieldundef{eprinttype}
{\printfield{eprint}}
{\printfield[eprint:\strfield{eprinttype}]{eprint}}}
ムウェ
\documentclass[a4paper,12pt]{article}%
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{filecontents}
\begin{filecontents*}{ext-eprint.dbx}
\ProvidesFile{ext-eprint.dbx}[2016/09/11 extended stand-alone eprint fields]
\DeclareDatamodelFields[type=field,datatype=verbatim]{arxiv,mr,zbl,jstor,hdl,pubmed,googlebooks,pmcid}
\DeclareDatamodelEntryfields{arxiv,mr,zbl,jstor,hdl,pubmed,googlebooks,pmcid}
\DeclareDatamodelFields[type=field,datatype=literal]{arxivclass}
\DeclareDatamodelEntryfields{arxivclass}
\end{filecontents*}
\begin{filecontents*}{\jobname.bib}
@article{ContEp,
author = {Mark G. Frei and Hitten P. Zaveri and Susan Arthurs and Gregory K. Bergey and Christophe Jouny and Klaus Lehnertz and Jean Gotman and Ivan Osorio and Theoden I. Netoff and Walter J. Freeman and John Jefferys and Gregory Worrell and Michel Le Van Quyen and Steven J. Schiff and Florian Mormannn},
title = {Controversies in epilepsy},
subtitle = {Debates held during the Fourth International Workshop on Seizure Prediction},
journaltitle = {Epilepsy \& Behavior},
volume = {19},
number = {1},
pages = {4-16},
date = {2010-09},
doi = {10.1016/j.yebeh.2010.06.009},
pmcid = {PMC2943379},
pmid = {20708976},
}
@article{frege,
author = {Gottlob Frege},
title = {The Thought},
subtitle = {A Logical Inquiry},
journaltitle = {Mind},
series = {newseries},
volume = {65},
number = {259},
jstor = {2251513},
date = {1956-07},
pages = {289-311},
}
@online{hawking,
author = {S. W. Hawking},
title = {Information Preservation and Weather Forecasting for Black Holes},
arxiv = {1401.5761},
arxivclass = {hep-th},
date = {2014-01-22},
}
@online{albar,
author = {B. Albar and D. Gon{\c c}alves},
title = {On triangles in $K_r$-minor free graphs},
arxiv = {1304.5468},
year = 2013,
}
@article{kawa,
author = {Ken-ichi Kawarabayashi and Zi-Xia Song},
title = {Independence number and clique minors},
journal = {J. Graph Theory},
volume = 56,
number = 3,
pages = {219-226},
year = 2007,
doi = {10.1002/jgt.20268},
mr = {2355127},
}
@article{kostochka,
author = {A. V. Kostochka},
title = {On the minimum of the Hadwiger number for graphs with given mean degree of vertices},
journal = {Metody Diskretn. Anal.},
volume = {38},
pages = {37--58},
year = {1982},
mr = {0713722},
zbl = {0544.05037},
}
\end{filecontents*}
\usepackage[backend=biber, style=authoryear-icomp, dashed=true, datamodel=ext-eprint]{biblatex}
\usepackage{hyperref}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map{
\step[fieldsource=pmid, fieldtarget=pubmed]
}
}
}
\makeatletter
\DeclareFieldFormat{arxiv}{%
arXiv\addcolon\space
\ifhyperref
{\href{http://arxiv.org/\abx@arxivpath/#1}{%
\nolinkurl{#1}%
\iffieldundef{arxivclass}
{}
{\addspace\texttt{\mkbibbrackets{\thefield{arxivclass}}}}}}
{\nolinkurl{#1}
\iffieldundef{arxivclass}
{}
{\addspace\texttt{\mkbibbrackets{\thefield{arxivclass}}}}}}
\makeatother
\DeclareFieldFormat{pmcid}{%
PMCID\addcolon\space
\ifhyperref
{\href{http://www.ncbi.nlm.nih.gov/pmc/articles/#1}{\nolinkurl{#1}}}
{\nolinkurl{#1}}}
\DeclareFieldFormat{mr}{%
MR\addcolon\space
\ifhyperref
{\href{http://www.ams.org/mathscinet-getitem?mr=MR#1}{\nolinkurl{#1}}}
{\nolinkurl{#1}}}
\DeclareFieldFormat{zbl}{%
Zbl\addcolon\space
\ifhyperref
{\href{http://zbmath.org/?q=an:#1}{\nolinkurl{#1}}}
{\nolinkurl{#1}}}
\DeclareFieldAlias{jstor}{eprint:jstor}
\DeclareFieldAlias{hdl}{eprint:hdl}
\DeclareFieldAlias{pubmed}{eprint:pubmed}
\DeclareFieldAlias{googlebooks}{eprint:googlebooks}
\renewbibmacro*{eprint}{%
\printfield{arxiv}%
\newunit\newblock
\printfield{jstor}%
\newunit\newblock
\printfield{mr}%
\newunit\newblock
\printfield{zbl}%
\newunit\newblock
\printfield{hdl}%
\newunit\newblock
\printfield{pubmed}%
\newunit\newblock
\printfield{pmcid}%
\newunit\newblock
\printfield{googlebooks}%
\newunit\newblock
\iffieldundef{eprinttype}
{\printfield{eprint}}
{\printfield[eprint:\strfield{eprinttype}]{eprint}}}
\begin{document}
\nocite{baez/online,wassenberg,hawking,albar,kawa,kostochka,frege,ContEp}
\printbibliography
\end{document}
* ドキュメントでは外部データモデルファイルを2.9以降では、biblatex
ロードすることを推奨していますが、ドキュメント自体でも動作します。§4.5.3を参照してください。\DeclareDatamodelFields
\DeclareDatamodelEntryfields
データモデル仕様のbiblatex
ドキュメンテーションバージョン\DeclareDatamodel...
コマンドはファイルに外部化する必要があります.dbx
。データ モデル マクロはプリアンブルでは使用できません。
答え2
このようなカスタム書式変更は、最近開発されたBibulousプロジェクト(http://nzhagen.github.io/bibulous/)。OPの例では、データベースファイルがあります
@arxiv{one,
author = {B. Albar and D. Gon{\c c}alves},
title = "{On triangles in K\_r-minor free graphs}",
eprint = {1304.5468},
year = 2013
}
@article{two,
author = {Ken-ichi Kawarabayashi and Zi-Xia Song},
title = {Independence number and clique minors},
journal = {J. Graph Theory},
volume = 56,
number = 3,
pages = {219-226},
year = 2007,
doi = {10.1002/jgt.20268},
mr = {2355127}
}
@article{three,
author = {A. V. Kostochka},
title = {On the minimum of the Hadwiger number for graphs with given mean degree of vertices},
journal = {Metody Diskretn. Anal.},
volume = {38},
pages = {37--58},
year = {1982},
mr = {0713722},
zbl = {0544.05037}
}
これらのデータベース エントリに対して、次のように、、、およびフィールドzbl
をmr
使用するカスタマイズされたテンプレートを作成できますdoi
。eprint
TEMPLATES:
arxiv = <au>. <title>. <year>. arXiv: \href{http://arxiv.org/abs/<eprint>}{<eprint>}.
article = <au>. <title>. <journal>, <volume>[(<number>)]:[<startpage>--<endpage>|<startpage>|<eid>|], <year>.[ doi: \href{http://dx.doi.org/<doi>}{<doi>}.][ MR: \href{http://www.ams.org/mathscinet-getitem?mr=MR<mr>}{<mr>}.][ Zbl: \href{http://zbmath.org/?q=an:<zbl>}{<zbl>}.]
上記のスニペットは実際には完全なスタイルテンプレートファイルであることに注意してください。次のLaTeXメインファイルを使用すると
\documentclass{article}
\usepackage[colorlinks=True,urlcolor=blue,citecolor=blue,breaklinks=true]{hyperref}
\begin{document}
\nocite{one,two,three}
\bibliographystyle{mybst}
\bibliography{mybib}
\end{document}
OP が要求したフォーマットされた参考文献リストを取得します。