![哈佛克鲁沃书目,缺少文章标题](https://linux22.com/image/271979/%E5%93%88%E4%BD%9B%E5%85%8B%E9%B2%81%E6%B2%83%E4%B9%A6%E7%9B%AE%EF%BC%8C%E7%BC%BA%E5%B0%91%E6%96%87%E7%AB%A0%E6%A0%87%E9%A2%98.png)
我正在尝试按照自己喜欢的方式制作参考书目样式,我几乎成功了,但出于某种原因,我无法显示文章标题。我有作者 - 年份 - 期刊 - 卷/期/页,我想要作者 - 年份 - 标题 - 期刊 - 卷/期/页。
我使用 harvard 包和经过修改的 kluwer 样式作为参考,我发现它最适合我想要的确切样式。不过,我修改了其中的一些内容:
添加:
FUNCTION {format.url}
{ url empty$
{ "" }
{
" Available from:~\url{" * url * "}" *
}
if$
}
更改:
FUNCTION {format.bvolume}
{ volume empty$
{ "" }
{ "Vol." volume tie.or.space.connect
series empty$
'skip$
{ " of " * series emphasize * }
if$
"volume and number" number either.or.check
}
if$
}
和
FUNCTION {format.vol.num.pages}
{ "Vol. " volume field.or.null
number empty$
'skip$
{ "(" number * ")" * *
volume empty$
{ "there's a number but no volume in " cite$ * warning$ }
'skip$
if$
}
if$
pages empty$
'skip$
{ duplicate$ empty$
{ pop$ format.pages }
{ ",~p.~" * pages n.dashify * }
if$
}
if$
}
我的文章格式如下:
FUNCTION {article}
{ output.bibitem
list.label.output
" " list.year * output.nonnull
new.block
author "author" item.check
if$
title.field field.used =
{ skip$ }
{ format.title "title" output.check }
if$
crossref missing$
{ journal emphasize "journal" duplicate$ item.check
" " * format.vol.num.pages * output
}
{ format.article.crossref output.nonnull
format.pages output
}
if$
new.block
note output
fin.entry
write.url
}
运行 bibtex 时出现错误:
执行文件 kluwer.bst 的第 1362 行时,无法弹出条目 arnould 的空文字堆栈 执行文件 kluwer.bst 的第 1362 行时,无法弹出条目 arnould 的空文字堆栈 “ 2005” 在执行文件 kluwer.bst 的第 1362 行时对于条目 arnould 来说是字符串文字,而不是函数 执行文件 kluwer.bst 的第 1362 行时,无法弹出条目 arnould 的空文字堆栈 ptr=1,stack= 消费文化理论 (cct):二十年的研究 --- 执行文件 kluwer.bst 的第 1362 行时,条目 arnould 的文字堆栈不为空 等等...
请帮忙?我已经束手无策了……
答案1
好的,经过多次尝试,我终于成功让代码正常工作。新的 article 函数:
FUNCTION {article}
{ output.bibitem
list.label.output
" " list.year * output.nonnull
author "author" output.check
if$
title.field field.used =
{ skip$ }
{ format.title "title" output }
if$
crossref missing$
{ " " journal emphasize "journal" duplicate$ item.check
" " * format.vol.num.pages * output
}
{ format.article.crossref output.nonnull
format.pages output
}
if$
new.block
note output
fin.entry
write.url
}
看起来 item.check 是导致问题的原因......