我正在撰写一篇期刊论文,希望将数据集列在参考文献中
[数据集] 作者;年份;数据集标题;数据存储库或档案;版本(如果有);持久标识符(例如 DOI),
其中开头的“[dataset]”是文字。其他参考文献(文章、书籍等)的类型不需要以这种方式添加前缀。我已经在以下链接中看到了针对它的解决方案
但无法理解。请帮我提供可用的代码。我的代码可在
https://www.overleaf.com/1777417966pvxjpytpthkj
我的书目文件名mybibfile.bib
包含以下内容
@article{gross2010multi,
title={Multi-pie},
author={Gross, Ralph and Matthews, Iain and Cohn, Jeffrey and Kanade, Takeo and Baker, Simon},
journal={Image and Vision Computing},
volume={28(5)},
number={5},
pages={807--813},
year={2010},
publisher={Elsevier}
}
我的 LaTex 代码使用 bibtex。请给出你的建议。我的 LaTex 代码是
\documentclass[review]{elsarticle}
\usepackage{array}
\bibliographystyle{model5-names}
\biboptions{authoryear}
\begin{document}
\begin{frontmatter}
\title{xyz}
\author{abc}
\corref{mycorrespondingauthor}
\cortext[mycorrespondingauthor]{Corresponding author}
\address{Research Scholar,}
\ead{[email protected]}
\begin{abstract}
jhjasvhjsh hjshjhjvhjsvh jjkjbkjbkjk jvkjvzjvkjvkj
\end{abstract}
\begin{keyword}
abc \sep xyz.
\end{keyword}
\end{frontmatter}
\section{Introduction}
Text-only mode can also be used for someone who is blind or hard of seeing and only needs the text read to them \citep{gross2010multi}.
\bibliography{mybibfile}
\end{document}
```````
答案1
我遇到了同样的问题。我不得不编辑参考书目样式才能使其正常工作。以下是我所做的:
编辑:在这种情况下,我使用了model5-names.bst
Elsevier 期刊的。(如果我没记错的话,我相信它是用于 APA 引用的)。
首先,我创建了一个 bbl 函数来打印“[Dataset]”。您可以复制一个现有的并进行编辑,对我来说,这是可行的:
FUNCTION {bbl.datasetbracket}
{ "[Dataset]" }
其次,我检查了我的数据集的引用类型。在本例中,它是article
。
我找到名为 的块FUNCTION{article}
,复制它,并将其重命名为datasetype
。最后,我将我的bbl.datasetbracket
函数添加到其中。
FUNCTION {datasetype}
{ "%Type = Article" write$
output.bibitem
bbl.datasetbracket
format.authors "author" output.check
author format.key output
format.date "year" output.check
date.block
format.title "title" output.check
new.block
crossref missing$
{
journal
"journal" bibinfo.check
emphasize
"journal" output.check
", " *
format.vol.num.pages output
}
{ format.article.crossref output.nonnull
format.pages output
}
if$
print.url output
print.doi output
print.eprint output
print.pubmed output
new.block
format.note output
fin.entry
}
现在我只需将我的 bib 文件中的参考文献称为@datasetype{blabla, ...}
答案2
灵感来自用户2434449,这里有一个稍微小一点的版本,对我来说效果更好。它避免了 BibTex 错误:“文字堆栈不为空”。
- 无需创建
FUNCTION {bbl.datasetbracket}
,直接输出 中的文本FUNCTION {datasetype}
,然后跟write$
。 - 我建议使用
FUNCTION {misc}
而不是FUNCTION{article}
作为克隆的起点,以避免出现缺少日志的警告。 - 请注意,Overleaf 似乎缓存了 Bibtex 结果,我不得不注释/取消注释整个
\bibliographystyle
命令,然后在中间重新编译以使来自.bst
文件的更改出现。
因此,我的食谱如下:
- 打开相应的
.bst
文件,我使用哈佛\bibliographystyle{model2-names.bst}
风格爱思唯尔医学图像分析杂志。 - 转到该函数
FUNCTION {misc}
并将块复制到新函数FUNCTION {datasettype}
(我避免使用该名称dataset
以避免与 BibLatex 中现有内容发生冲突。) "[dataset] " write$
在第一个后添加output.bibitem
,参见下面的示例。@datasettype{...}
在您的文件中使用.bib
。- 和是的,我确实认为 Elsevier 需要更新他们的模板来正确解决和记录这个问题!
FUNCTION {datasettype}
{ "%Type = Dataset" write$
output.bibitem
"[dataset] " write$
format.authors output
author format.key output
format.date "year" output.check
date.block
format.title output
new.block
howpublished "howpublished" bibinfo.check output
new.block
print.url output
print.doi output
print.eprint output
print.pubmed output
format.note output
fin.entry
}