从 SIAM bibtex 样式中删除“Tech. Rep.”输出

从 SIAM bibtex 样式中删除“Tech. Rep.”输出

我在使用 SIAM bibtex 样式时遇到以下问题。请考虑以下 bib 条目

@TECHREPORT{Pap1,
  author = {Author One},
  title = {Paper Title},
  institution = {My Institute},
  year = {2011},
  number = {XXX/YY-ZZ},
  month = {December},
}

\nocite{Pap1}
\bibliographystyle{siam} 
\bibliography{bibfile}

生成参考书目。然后输出是

 A. ONE, Paper title, Tech. Rep. XXX/YY-ZZ, My Institute, December 2011.

我怎样才能从输出中删除“Tech. Rep.”?在 bibtex 条目中设置 type={} 没有帮助,type={~} 会删除“Tech. Rep.”但在数字前插入不需要的空格。

答案1

在这个特殊情况下

type={\unskip\space},

似乎有效。

答案2

对于“unsrtnat”风格有一个类似的问题,也许这对其他人有帮助(也可能适用于其他风格):

  1. 将“unsrtnat.bst”文件复制到 LaTeX 项目目录中并重命名。就我而言,我将其复制
    C:\Users\<username>\AppData\Local\Programs\MiKTeX\bibtex\bst\natbib\unsrtnat.bst
    C:\Users\<username>\my_latex_projects\project_01\unsrtnat-custom.bst
  2. 在文本编辑器中打开新unsrtnat-custom.bst文件并找到负责处理techreport类型的函数,在我的情况下:
FUNCTION {techreport}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  new.block
  format.title "title" output.check
  new.block
  format.tr.number output.nonnull
  institution "institution" output.check
  address output
  format.date "year" output.check
  format.url output
  new.block
  note output
  fin.entry
}

我们可以看到format.tr.number问题在于:

FUNCTION {format.tr.number}
{ type empty$
    { "Technical Report" }
    'type
  if$
  number empty$
    { "t" change.case$ }
    { number tie.or.space.connect }
  if$
}
  1. 相应地调整函数。我的项目中不需要报告编号,因此我只需format.tr.number output.nonnull从中删除包含的行FUNCTION {techreport}即可,即:
FUNCTION {techreport}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  new.block
  format.title "title" output.check
  new.block
  institution "institution" output.check
  address output
  format.date "year" output.check
  format.url output
  new.block
  note output
  fin.entry
}
  1. 更改 LaTeX 项目中的参考书目样式,即更改\bibliographystyle{unsrtnat}\bibliographystyle{unsrtnat-custom}

相关内容