使用字母书目样式时,自定义特定书目条目的引文外观

使用字母书目样式时,自定义特定书目条目的引文外观

我使用 bibtex\bibliographystyle{alpha}

运行正常。我的问题与以下商品有关。

@book{sga1,
       key = {{SGA1}},
     TITLE = {Rev\^etements \'etales et groupe fondamental},
     NOTE = {S{\'e}minaire de G{\'e}om{\'e}trie Alg{\'e}brique du Bois
          Marie 1960--1961 (SGA 1),
          Dirig{\'e} par Alexandre Grothendieck. Augment{\'e} de deux
          expos{\'e}s de M. Raynaud,
          Lecture Notes in Mathematics, Vol. 224},
     PUBLISHER = {Springer-Verlag},
     ADDRESS = {Berlin},
     YEAR = {1971},
     PAGES = {xxii+447},
 }

传统上将这本书称为 SGA1。但在文本中,它显示为 SGA71,这合乎逻辑,但很丑陋。有没有办法自定义此特定项目,使其在文本中显示为 SGA1,而不修改其年份?

答案1

以下方法可行。我们创建一个新样式,mylabel如果存在则使用标签,alpha否则使用默认标签

  1. 查找文件alpha.bst(在我的计算机上它位于目录中<TEXMF>/bibtex/bst/base)并alpha2.bst在您的工作目录中创建一个名为的副本。

  2. 在任意编辑器中打开该文件。

  3. 在一开始,有一个名为的长列表ENTRY{...},在那里添加一行:

    mylabel
    
  4. 找到FUNCTION {output.bibitem}(在我的版本中它在第 86 行)并按如下方式修改它:

    FUNCTION {output.bibitem}
    { newline$
      "\bibitem[" write$
      mylabel empty$ 'label 'mylabel if$ write$
      "]{" write$
      cite$ write$
      "}" write$
      newline$
      ""
      before.all 'output.state :=
    }
    
  5. 保存并关闭文件。

  6. 打开您的.bib文件并添加:

    mylabel={SGA1},
    
  7. 在您的.tex文件中,将您的样式更改为\bibliographystyle{alpha2}

  8. 跑步latexbibtexlatexlatex

  9. TeXing 快乐!

相关内容