温哥华风格文件指责我弹出一个空的文字堆栈

温哥华风格文件指责我弹出一个空的文字堆栈

本文档(problem.tex)和参考书目(problem.bib)按预期工作:

\documentclass{article}
\begin{document}
This.\cite{altman}
\bibliography{problem}{}
\bibliographystyle{plain}
\end{document}

@phdthesis{altman,
  title={Districting principles and democratic representation},
  author={Altman, Micah},
  year={1998},
  school={California Institute of Technology}
}

但是,将“plain”更改为“vancouver”会导致此错误:

你不能弹出一个空的文字堆栈来输入奥特曼

执行文件 vancouver.bst 的第 1865 行时

我查看了 Wikipedia,发现 @phdthesis 条目似乎具有正确的属性。vancouver.bst 发生了什么事?我该怎么办?

答案1

vancouver.bst在设置处理空字段的代码中,type有一个小错误,导致type无论字段为空如何都会引起错误。

这意味着,如果您想避免出现错误,则字段是必需的。请注意,vancouver.bst文件type最终会自行决定哪些字段是必需的和可选的(或完全受支持),因此维基百科上的列表仅供参考,并不保证所有样式都正确无误。也就是说,基本样式(和朋友)以及 BibTeX 文档列出了大多数样式遵循的一般准则,因此维基百科上的信息是可靠的,但不能保证在所有情况下都是权威的。@phdthesis.bstplain.bst

因此,消除错误的最简单方法是提供一个type字段

@phdthesis{altman,
  title  = {Districting principles and democratic representation},
  author = {Altman, Micah},
  year   = {1998},
  school = {California Institute of Technology},
  type   = {Ph.D. thesis},
}

但您也可以进行修改vancouver.bst以接受type@phdthesis条目。

  1. 在您的机器上找到它vancouver.bst(使用kpsewhich vancouver.bst)。如果您在计算机上找不到它,请从http://mirrors.ctan.org/biblio/bibtex/contrib/vancouver/vancouver.bst
  2. 将文件复制到 LaTeX 可以找到的位置(参见https://texfaq.org/FAQ-inst-wlcf(对于一次性.tex文件目录来说就可以了)和改名文件,例如,vancouver-type.bst
  3. 打开vancouver-type.bst并搜索FUNCTION {format.type}(该函数应该在 ll. 912-918 中),将整个函数替换为

    FUNCTION {format.type}
    { type empty$
        { "" }
        { inbrackets type }
        %%{ add.blank "[" type * "]" * }
      if$
    }
    

    也就是说,将定义中的第二行从 更改'skip${ "" }

  4. 在文件顶部添加有关更改的简短注释,用您的姓名或姓名首字母签名并添加更改的日期。

最后,vancouver.bst和之间的差异vancouver-type.bst可能看起来像这样

--- vancouver.bst   2018-10-23 08:22:27.331033600 +0200
+++ vancouver-type.bst  2018-10-23 08:41:59.679102900 +0200
@@ -1,3 +1,12 @@
+%%%% `vancouver-type.bst'
+%%%% modified from `vancouver.bst' to allow empty type field in @phdthesis
+%%%% for https://tex.stackexchange.com/q/456287/35864
+%%%% MW, 2018-10-23
+%%%% original `vancouver.bst' by Folkert van der Beek
+%%%% available at https://ctan.org/pkg/vancouver
+%%%%
+%%%% unmodified original header follows
+%%%------------------------------------------------------------------
 %%
 %% This `vancouver.bst' bibliographic style file (for LaTeX/BibTeX) is
 %% generated with the docstrip utility and modified manually to meet the
@@ -911,7 +920,7 @@

 FUNCTION {format.type}
 { type empty$
-    'skip$
+    { "" }
     { inbrackets type }
     %%{ add.blank "[" type * "]" * }
   if$

如果您现在在文档中使用vancouver-type而不是vancouver,则可以将该type字段留空。

相关内容