本文档(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
.bst
plain.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
条目。
- 在您的机器上找到它
vancouver.bst
(使用kpsewhich vancouver.bst
)。如果您在计算机上找不到它,请从http://mirrors.ctan.org/biblio/bibtex/contrib/vancouver/vancouver.bst - 将文件复制到 LaTeX 可以找到的位置(参见https://texfaq.org/FAQ-inst-wlcf(对于一次性
.tex
文件目录来说就可以了)和改名文件,例如,vancouver-type.bst
。 打开
vancouver-type.bst
并搜索FUNCTION {format.type}
(该函数应该在 ll. 912-918 中),将整个函数替换为FUNCTION {format.type} { type empty$ { "" } { inbrackets type } %%{ add.blank "[" type * "]" * } if$ }
也就是说,将定义中的第二行从 更改
'skip$
为{ "" }
。- 在文件顶部添加有关更改的简短注释,用您的姓名或姓名首字母签名并添加更改的日期。
最后,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
字段留空。