Wie weise ich BibTeX an, das Feld „Seiten“ für Einträge vom Typ „@book“ zu drucken?

Wie weise ich BibTeX an, das Feld „Seiten“ für Einträge vom Typ „@book“ zu drucken?

Ich möchte ein Buch zitieren. Folgende bibliografischen Angaben habe ich von 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},}

Leider zeigt der formatierte bibliografische Eintrag nicht die Anzahl der Seiten (die im pagesFeld des Eintrags gespeichert sind). Es erscheint

Jean-Luc Brylinski. Schleifenräume, charakteristische Klassen und geometrische Quantisierung, Band 107 von Progress in Mathematics. Birkhäuser Boston, Inc., Boston, MA, 1993.

Welche Änderungen muss ich vornehmen, damit auch die Seitenzahl angegeben wird?

Minimales Arbeitsbeispiel ist

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

Eigenständiges MWE (erfordert für diese [overwrite]Funktion eine moderne LaTeX-Installation)

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

Antwort1

Ich schlage vor, dass Sie wie folgt vorgehen:

  • Suchen Sie die Datei plain.bstin Ihrer TeX-Distribution. Erstellen Sie eine Kopie dieser Datei und nennen Sie die Kopie beispielsweise plain-bookpages.bst. (Bearbeiten Sie eine ursprüngliche, nicht umbenannte Datei Ihrer TeX-Distribution nicht direkt.)

  • Öffnen Sie die Datei plain-bookpages.bstin einem Texteditor. Das Programm, das Sie zum Bearbeiten Ihrer Tex-Dateien verwenden, ist dafür geeignet.

  • Suchen Sie in der Datei plain-bookpages.bstnach der BibTeX-Funktion book. In meiner Kopie der Datei beginnt diese Funktion in Zeile 557.

  • Unmittelbar bevorFügen Sie für diese Funktion den folgenden Codeblock ein, der zwei BibTeX-Funktionen enthält – bibinfo.checkund 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$
    }
    
  • Suchen Sie in der bookFunktion nach der folgenden Zeile:

          publisher "publisher" output.check
    

    Unmittelbar bevorFügen Sie in diese Zeile die folgende Zeile ein:

          format.book.pages output
    
  • Speichern Sie die Datei plain-bookpages.bstentweder in dem Ordner, der Ihre Haupt-Tex-Datei(en) enthält, oder in einem Ordner, der von BibTeX durchsucht wird. Wenn Sie die zweite Option wählen, aktualisieren Sie unbedingt die Dateinamendatenbank Ihrer TeX-Distribution entsprechend. Wenn Ihnen der vorangehende Satz wie Kauderwelsch vorkommt, empfehle ich Ihnen, die erste Option zu wählen.

  • Ändern Sie in Ihrer Haupt-Tex-Datei die Anweisung \bibliographystyle{plain}und \bibliographystyle{plain-bookpages}führen Sie einen vollständigen Neukompilierungszyklus durch – LaTeX, BibTeX und LaTeX noch zweimal –, um alle Änderungen vollständig zu übernehmen.

Viel Spaß beim BibTeXen!

Übrigens, ich denke, es istfalschdass MathSciNet Informationen über den Herausgeber des Eintrags und die Adresse des Herausgebers in einem einzigen Feld kombiniert; es ist besser, separate publisherund addressFelder im Auge zu behalten. Ich denke auch, dass es falsch von MathSciNet ist, die meisten Wörter in dem Feld klein zu schreiben title.

Hier ist die Ausgabe eines vollständigen MWE (Minimum Working Example), das den neu erstellten plain-bookpagesBib-Stil verwendet:

Bildbeschreibung hier eingeben

Und zum Vergleich: So wird der Eintrag formatiert, wenn der plainBibliografiestil verwendet wird:

Bildbeschreibung hier eingeben

Ein letzter Kommentar: Ich kann nicht umhin, anzumerken, dass es einen sehr guten Grund dafür gibt, warum praktisch alle jemals programmierten Bibliographiestile so eingerichtet sind,ignorierendas pagesFeld in Einträgen vom Typ @book. Was ist der Grund dafür, fragen Sie sich vielleicht? Nun, es ist so, dass das pagesFeld in Einträgen vom Typ @bookfür Leser ziemlich sicher überhaupt nicht von Interesse ist. Bibliografische Informationen sollen Lesern helfen, Kopien interessanter bibliografischer Einträge zu erhalten, entweder aus einer Bibliothek (physisch oder elektronisch) oder aus einem Buchladen. Deshalb ist das publisherFeldIstrelevant für Einträge vom Typ @book. Der Inhalt des pagesFeldes dient im Vergleich dazu keinem vergleichbaren Zweck.

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

verwandte Informationen