修改 .bst 文件,将页码放在末尾

修改 .bst 文件,将页码放在末尾

我的问题很简单,但我徒劳地寻找答案。目前,我的参考书目样式 (.bst) 为文章提供了以下结果:

Baumgärtel Hans,《Julius Weisbach与新市场艺术在实践中的指导》,《山地施工、木材加工和相关科学》杂志,13(1),第 371-377 页,1961 年。

我希望在日期后显示页码,因此请这样做:

Baumgärtel Hans,《Julius Weisbach 和新市场艺术在实践中的指导》,Zeitschrift für Bergbau, Hüttenwesen und verwandteWissenschaften,13 (1),1961 年,第 371-377 页。

这是该功能,我曾尝试使用它,但我真的不明白它是如何工作的:

FUNCTION {article}
{ output.bibitem
  format.authors "author" output.check
  author format.key output new.block
  format.title quote "title" output.check
  new.block
  crossref missing$
    { journal emphasize "journal" output.check
      eid empty$

    { format.vol.num.pages output } %
    { format.vol.num.eid output }
  if$
  format.date "year" output.check
}
{ format.article.crossref output.nonnull

  eid empty$
    { format.pages output }
    { format.eid output }
  if$
}
  if$
  format.issn output
  format.doi output
  format.url output
  new.block
  note output
  fin.entry
}

如果你能帮助我,我将提前致谢......托马斯

所有使用的软件包的列表:

\usepackage{appendix} \usepackage{bredele} % Appel de bredele.sty %\usepackage[sectionbib]{natbib} %\usepackage{bibtopics} \usepackage[round]{natbib} \usepackage{amsmath} \usepackage[nodisplayskipstretch]{setspace} % pour virer les espaces dans les environnements equation et alig\usepackage{etoolbox} % it\usepackage{array} \usepackage[bottom]{footmisc} % pour coller les notes en bas de page \usepackage{array} % pour centrer verticalement dans les tableaux \usepackage{multirow}

\usepackage[T1]{fontenc} % un peu superflu, pour tenter d'améliorer l'hyphenation 
\usepackage{lmodern} % un peu superflu, pour tenter d'améliorer l'hyphenation 
\usepackage{index} % pour l'index 
\usepackage{splitidx} % REMPLACE 
\usepackage{multind}  %
\usepackage[T1]{fontenc} % NEW %
\usepackage[utf8]{inputenc} % NEW 
\usepackage{colortbl}% pour les lignes en gris %
\usepackage{etoolbox} % pour utiliser \BeforeBeginEnvironment 
\usepackage{french}[babel] 
\usepackage{array} 
\usepackage{lscape} 
\usepackage[table]{xcolor} % mettre des cases de tableau en couleur %\usepackage{hyperref} % met des liens %
\usepackage{appendix} 
\usepackage{chngcntr} 
\usepackage[compact]{titlesec} 
\usepackage{tikz} % pour des diagrammes simples 
\usepackage[strict]{changepage} % pour mettre de grandes marges sur les pages d'annexes \usepackage{enumitem} \setlist{nolistsep} 
\usepackage{framed} % pour mettre des textes dans des boites

答案1

将原始文件保存abbrvnat.bst在您的工作目录中并将其重命名为例如。mod-abbrvnat.bst

现在您必须修改两个函数:format.vol.num.pagesarticle

修改如下:

  • 535 行

    FUNCTION {format.vol.num.pages}
    { volume field.or.null
      number empty$
        'skip$
        { "\penalty0 (" number * ")" * *
          volume empty$
            { "there's a number but no volume in " cite$ * warning$ }
            'skip$
          if$
        }
      if$
      format.date "year" output.check %<-new
      pages empty$
        'skip$
        { duplicate$ empty$
            { pop$ format.pages }
            { ", \penalty0 " * pages n.dashify * }%<-comma new, old :
          if$
        }
      if$
    }
    
  • 700 行

    FUNCTION {article}
    { output.bibitem
      format.authors "author" output.check
      author format.key output
      new.block
      format.title "title" output.check
      new.block
      crossref missing$
        { journal emphasize "journal" output.check
          eid empty$
            { format.vol.num.pages output }
            { format.vol.num.eid output }
          if$
    %      format.date "year" output.check%<commented
        }
        { format.article.crossref output.nonnull
          eid empty$
            { format.pages output }
            { format.eid output }
          if$
        }
      if$
      format.issn output
      format.doi output
      format.url output
      new.block
      note output
      fin.entry
    }
    

经过此修改后,mwe 提供以下内容:

\documentclass [12pt,a4]{book}
\usepackage[utf8]{inputenc}
\usepackage{natbib}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{Baumgaertel,
 title={Julius Weisbach und die Einführung der neuen Markscheidekunst in die Praxis},
 author={Baumgärtel, Hans},
 journal="Zeitschrift für Bergbau, Hüttenwesen und verwandteWissenschaften",
 volume={13},
 number={1},
 pages={pp~371 -- 377},
 year={1961} 
}
\end{filecontents}
\begin{document}
\cite{Baumgaertel}

\bibliographystyle{mod-abbrvnat}
\bibliography{\jobname}

\end{document}

在此处输入图片描述

请注意,其他情况需要进行更多修改。我建议使用biblatex

相关内容