ある本を引用したいのですが、MathSciNet から次の書誌情報を取得しました。
@book {Brylinski,
AUTHOR = {Brylinski, Jean-Luc},
TITLE = {Loop spaces, characteristic classes and geometric
quantization},
SERIES = {Progress in Mathematics},
VOLUME = {107},
PUBLISHER = {Birkh\"{a}user Boston, Inc., Boston, MA},
YEAR = {1993},
PAGES = {xvi+300},
ISBN = {0-8176-3644-7},
MRCLASS = {57Rxx (18G50 55P35 58F06)},
MRNUMBER = {1197353},
MRREVIEWER = {Daniel S. Freed},
DOI = {10.1007/978-0-8176-4731-5},
URL = {https://doi.org/10.1007/978-0-8176-4731-5},}
残念ながら、フォーマットされた書誌エントリにはページ数(エントリのpages
フィールドに保存されている)が表示されません。次のように表示されます。
Jean-Luc Brylinski. ループ空間、特性類、幾何量子化、Progress in Mathematics 第 107 巻。Birkhäuser Boston, Inc.、ボストン、マサチューセッツ州、1993 年。
ページ数も記載するにはどのような変更を加える必要がありますか?
最小限の動作例は
\documentclass[12pt,reqno,a4paper]{amsart}
%\usepackage[utf8]{inputenc} % not needed with up-to-date TeX systems
\usepackage[english]{babel}
\usepackage{amsmath,amsthm,amsfonts,amssymb}
\usepackage{mathtools}
\usepackage{color}
\usepackage{mathrsfs}
\usepackage[all]{xy}
\usepackage{tikz-cd}
\usepackage[normalem]{ulem} % do you *really* need it?
\usepackage{datetime}
\usepackage{hyperref}
\theoremstyle{definition}
\newtheorem{theorem}{Theorem}[section]
\newtheorem{construction}{Construction}[section]
\newtheorem{corollary}{Corollary}[section]
\newtheorem{lemma}{Lemma}[section]
\newtheorem{definition}{Definition}[section]
\newtheorem{remark}{Remark}[section]
\newtheorem{proposition}{Proposition}[section]
\newtheorem{example}{Example}[section]
\newtheorem*{question}{Question}
\newtheorem*{solution}{Solution}
\newtheorem{exercise}{Exercise}
\newcommand{\mc}{\mathcal}
\newcommand{\mf}{\mathfrak}
\newcommand{\xra}{\xrightarrow}
\newcommand{\ra}{\rightarrow}
\pagestyle{myheadings}
\textheight 9.3in
\textwidth 6.5in
\calclayout
% metadata
%\date{\today}
\title{****}
\author{***}
\begin{document}
%\today
\bibliography{****}
\bibliographystyle{plain}
\end{document}
自己完結型 MWE (この機能には最新の LaTeX のインストールが必要です[overwrite]
)
\documentclass[12pt,reqno,a4paper]{amsart}
\begin{filecontents}[overwrite]{sample.bib}
@book {Brylinski,
AUTHOR = {Brylinski, Jean-Luc},
TITLE = {Loop spaces, characteristic classes and geometric
quantization},
SERIES = {Progress in Mathematics},
VOLUME = {107},
PUBLISHER = {Birkh\"{a}user Boston, Inc., Boston, MA},
YEAR = {1993},
PAGES = {100-3010},
ISBN = {0-8176-3644-7},
MRCLASS = {57Rxx (18G50 55P35 58F06)},
MRNUMBER = {1197353},
MRREVIEWER = {Daniel S. Freed},
DOI = {10.1007/978-0-8176-4731-5},
URL = {https://doi.org/10.1007/978-0-8176-4731-5},}
\end{filecontents}
%\usepackage[utf8]{inputenc} % not needed with up-to-date TeX systems
\usepackage[english]{babel}
\usepackage{amsmath,amsthm,amsfonts,amssymb}
\usepackage{mathtools}
\usepackage{color}
\usepackage{mathrsfs}
\usepackage[all]{xy}
\usepackage{tikz-cd}
\usepackage[normalem]{ulem} % do you *really* need it?
\usepackage{datetime}
\usepackage{hyperref}
\theoremstyle{definition}
\newtheorem{theorem}{Theorem}[section]
\newtheorem{construction}{Construction}[section]
\newtheorem{corollary}{Corollary}[section]
\newtheorem{lemma}{Lemma}[section]
\newtheorem{definition}{Definition}[section]
\newtheorem{remark}{Remark}[section]
\newtheorem{proposition}{Proposition}[section]
\newtheorem{example}{Example}[section]
\newtheorem*{question}{Question}
\newtheorem*{solution}{Solution}
\newtheorem{exercise}{Exercise}
\newcommand{\mc}{\mathcal}
\newcommand{\mf}{\mathfrak}
\newcommand{\xra}{\xrightarrow}
\newcommand{\ra}{\rightarrow}
\pagestyle{myheadings}
\textheight 9.3in
\textwidth 6.5in
\calclayout
% metadata
\begin{document}
\nocite{*}
\bibliography{sample}
\bibliographystyle{plain}
\end{document}
答え1
次のように進めることをお勧めします。
TeX ディストリビューション内のファイルを見つけます
plain.bst
。このファイルのコピーを作成し、そのコピーを と呼びます。plain-bookpages.bst
(TeX ディストリビューションの元の、名前を変更していないファイルを直接編集しないでください。)テキスト エディターでファイルを開きます
plain-bookpages.bst
。Tex ファイルの編集に使用するプログラムで問題ありません。ファイル で
plain-bookpages.bst
、BibTeX 関数 を見つけますbook
。ファイルの私のコピーでは、この関数は 557 行目から始まります。直前この関数を実行するには、次のコード チャンクを挿入します。このコード チャンクには、2 つの BibTeX 関数 (
bibinfo.check
および)が含まれていますformat.book.pages
。FUNCTION {bibinfo.check} { swap$ duplicate$ missing$ { pop$ pop$ "" } { duplicate$ empty$ { swap$ pop$ } { swap$ pop$ } if$ } if$ } FUNCTION {format.book.pages} { pages "pages" bibinfo.check duplicate$ empty$ 'skip$ { " " * "pages" * } if$ }
関数内で
book
、次の行を見つけます。publisher "publisher" output.check
直前この行の代わりに、次の行を挿入します。
format.book.pages output
ファイルは
plain-bookpages.bst
、メインの tex ファイルを含むフォルダーか、BibTeX によって検索されるフォルダーに保存します。2 番目のオプションを選択する場合は、TeX ディストリビューションのファイル名データベースを適切に更新してください。前の文が意味不明に聞こえる場合は、最初のオプションを選択することをお勧めします。メインの tex ファイルで、命令
\bibliographystyle{plain}
を に変更し\bibliographystyle{plain-bookpages}
、完全な再コンパイル サイクル (LaTeX、BibTeX、LaTeX をさらに 2 回) を実行して、すべての変更を完全に伝播します。
BibTeXを楽しんでください!
ちなみに、私はそれは間違っているMathSciNet はエントリの出版社と出版社の住所に関する情報を 1 つのフィールドにまとめているので、別々のフィールドを管理する方がよいでしょうpublisher
。address
また、mathscinet がフィールド内のほとんどの単語を小文字にするのは間違っていると思いますtitle
。
plain-bookpages
新しく作成されたbib スタイルを採用した完全な MWE (最小限の動作例) の出力は次のとおりです。
比較のために、参考plain
文献スタイルが採用されている場合のエントリのフォーマットは次のようになります。
最後に一言。これまでプログラムされたほぼすべての参考文献スタイルが、無視するpages
エントリの タイプのフィールド。@book
これはなぜかと疑問に思うかもしれません。それは、pages
エントリの タイプのフィールド@book
は読者にとってまったく興味を引かないことがほぼ確実だからです。書誌情報は、読者が興味のある書誌エントリのコピーを図書館(物理的または電子的)または書店から入手するのに役立つはずです。そのため、フィールドpublisher
ははタイプ のエントリに関連します。比較すると、フィールド@book
の内容は同等の目的を果たしません。pages
\documentclass{article}
\begin{filecontents}[overwrite]{mybib.bib}
@book{Brylinski,
AUTHOR = {Brylinski, Jean-Luc},
TITLE = {Loop Spaces, Characteristic Classes and Geometric Quantization},
SERIES = {Progress in Mathematics},
VOLUME = {107},
PUBLISHER = {Birkh{\"a}user},
address = {Boston~MA},
YEAR = {1993},
PAGES = {xvi+300},
ISBN = {0-8176-3644-7},
MRCLASS = {57Rxx (18G50 55P35 58F06)},
MRNUMBER = {1197353},
MRREVIEWER= {Daniel S. Freed},
DOI = {10.1007/978-0-8176-4731-5},
URL = {https://doi.org/10.1007/978-0-8176-4731-5},
}
\end{filecontents}
\usepackage{cite}
\bibliographystyle{plain-bookpages}
\begin{document}
\nocite{Brylinski}
\raggedright
\bibliography{mybib}
\end{document}