1

I want to cite a book. I got the following bibliographic information from 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},}

Unfortunately, the formatted bibliographic entry does not show the number of pages (stored in the entry's pages field). It comes out as

Jean-Luc Brylinski. Loop spaces, characteristic classes and geometric quantization, volume 107 of Progress in Mathematics. Birkhäuser Boston, Inc., Boston, MA, 1993.

What changes should I make so that it also mentions the number of pages?

Minimal working example is

\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}

Self contained MWE (requires a modern LaTeX installation for the [overwrite] feature)

\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}
14
  • You can make this a better example by including the bib entry in the example using the filecontents env to generate a bib file that can then be included in the \bibliography line. Then you have a truly self contained example. Besides this example will not print anything as nothing is cited – daleif Mar 25 '20 at 13:08
  • 2
    The plain style does not consider the pages field for @book types. To be honest. I've never seen that in a bibliography for a book. It is not particularly relevant for the reader – daleif Mar 25 '20 at 13:14
  • Which style do you suggest to consider page numbers for book types? @daleif – Praphulla Koushik Mar 25 '20 at 13:18
  • No idea, as mentioned I've never seen it specified and as a reader it would just be irrelevant data. – daleif Mar 25 '20 at 13:19
  • 1
    Counter question: why would they include MRNUMBER? Why does some services include the entire abstract. Some may use it, some may not. That is all up to the style. Each bibstyle will for each entry type have a list of required fields, a list of optional fields (included if present, no error it is not present), the rest is ignored. So plain will ignore PAGES for @book (which to me seems fair), another style may choose to include it. It is all down to the separation of the content and the formatting. – daleif Mar 25 '20 at 14:17
2

I suggest you proceed as follows:

  • Find the file plain.bst in your TeX distribution. Make a copy of this file and call the copy, say, plain-bookpages.bst. (Do not edit an original, unrenamed file of your TeX distribution directly.)

  • Open the file plain-bookpages.bst in a text editor. The program you use to edit your tex files will do fine.

  • In the file plain-bookpages.bst, find the BibTeX function book. In my copy of the file, this function starts on line 557.

  • Immediately before this function, insert the following code chunk, which contains two BibTeX functions -- bibinfo.check and 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$
    }
    
  • In the book function, find the following line:

          publisher "publisher" output.check
    

    Immediately before this line, insert the following line:

          format.book.pages output
    
  • Save the file plain-bookpages.bst either in the folder that contains your main tex file(s) or in a folder that's searched by BibTeX. If you choose the second option, be sure to update the filename database of your TeX distribution suitably. If the preceding sentence sounds like gibberish to you, I recommend you choose the first option.

  • In your main tex file, change the instruction \bibliographystyle{plain} to \bibliographystyle{plain-bookpages} and perform a full recompile cycle -- LaTeX, BibTeX, and LaTeX twice more -- to fully propagate all changes.

Happy BibTeXing!

By the way, I think it's wrong that MathSciNet combines information about they entry's publisher and the publisher's address in a single field; it's better to keep track of separate publisher and address fields. I also think it's wrong of mathscinet to lowercase most words in the title field.

Here's the output of a full MWE (minimum working example) that employs the newly created plain-bookpages bib style:

enter image description here

And, for comparison, here's how the entry is formatted if the plain bibliography style is employed:

enter image description here

A final comment: I can't help but remark that there is a very good reason for why virtually all bibliography styles ever programmed are set up to ignore the pages field in entries of type @book. What's this reason, you may ask? Well, it's that the pages field in entries of type @book is pretty much guaranteed to be of no interest whatsoever to readers. Bibliographic information is supposed to help readers obtain copies of bibliographic entries of interest, either from a library (physical or electronic) or from a bookstore. That's why the publisher field is relevant for entries of type @book. The contents of the pages field, in comparison, serve no comparable purpose.

\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}
1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.