我想引用一本書。我從 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
欄位中)。結果是
讓-呂克·布林斯基。循環空間、特徵類和幾何量化,《數學進展》第 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 行開始。緊接著之前在此函數中,插入以下程式碼區塊,其中包含兩個 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 搜尋的資料夾中。如果您選擇第二個選項,請務必適當更新 TeX 發行版的檔案名稱資料庫。如果前面這句話對你來說聽起來像是胡言亂語,我建議你選擇第一個選項。在你的主 tex 檔案中,將指令更改
\bibliographystyle{plain}
為\bibliographystyle{plain-bookpages}
並執行完整的重新編譯週期——LaTeX、BibTeX 和 LaTeX 兩次——以完全傳播所有變更。
BibTeXing 快樂!
順便說一句,我認為這是錯誤的MathSciNet 將有關條目出版商和出版商地址的資訊合併在一個欄位中;最好跟踪單獨的publisher
字段address
。我還認為 mathscinet 將該字段中的大多數單字小寫是錯誤的title
。
以下是採用新建立的圍兜樣式的完整 MWE(最小工作範例)的輸出plain-bookpages
:
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}