'@book' 유형의 항목에 대해 '페이지' 필드를 인쇄하도록 BibTeX에 어떻게 지시합니까?

'@book' 유형의 항목에 대해 '페이지' 필드를 인쇄하도록 BibTeX에 어떻게 지시합니까?

나는 책을 인용하고 싶다. 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필드에 저장됨). 다음과 같이 나옵니다.

장 뤽 브릴린스키. 루프 공간, 특성 클래스 및 기하학적 양자화, 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(해당 [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.bstTeX 배포판에서 파일을 찾으세요 . 이 파일의 복사본을 만들고 복사본을 호출합니다 plain-bookpages.bst. (TeX 배포판의 이름이 변경되지 않은 원본 파일을 직접 편집하지 마십시오.)

  • plain-bookpages.bst텍스트 편집기에서 파일을 엽니다 . tex 파일을 편집하는 데 사용하는 프로그램은 제대로 작동합니다.

  • 파일에서 plain-bookpages.bstBibTeX 함수를 찾으세요 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}

관련 정보