Я хочу процитировать книгу. Я получил следующую библиографическую информацию из 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 Progress in Mathematics. 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 (для этой [overwrite]
функции требуется современная установка LaTeX)
\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
Я предлагаю вам действовать следующим образом:
Найдите файл
plain.bst
в вашем дистрибутиве TeX. Сделайте копию этого файла и назовите копию, скажем,plain-bookpages.bst
. (Не редактируйте исходный, неименованный файл вашего дистрибутива TeX напрямую.)Откройте файл
plain-bookpages.bst
в текстовом редакторе. Программа, которую вы используете для редактирования tex-файлов, подойдет.В файле
plain-bookpages.bst
найдите функцию BibTeXbook
. В моей копии файла эта функция начинается на строке 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 — чтобы полностью распространить все изменения.
Счастливого BibTeXинга!
Кстати, я думаю, что этонеправильныйчто 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}