关于我的先前的问题在bst
文件编辑中(并使用那里描述的相同bst
文件),我尝试在书目输出中添加一个标题,并在末尾添加一个句号。这似乎很有效,但标题后面的句号后面附加了一个讨厌的逗号。我不知道这个逗号从何而来,也不知道如何删除它。也许它是在每个字段后添加的通用分隔符。删除它的最简单方法是什么?
". " *
我通过向 format.title添加以下内容,在标题末尾附加了一个句点:
FUNCTION {format.title}
{ title empty$
{ "" }
{ title ". " * "t" change.case$
% title "t" change.case$ % original line
}
if$
}
format.title "title" output.check
然后我通过添加以下行来为文章添加标题FUNCTION {article}
:
FUNCTION {article}
{ output.bibitem
format.authors "author" output.check
crossref missing$
{ format.title "title" output.check % added this line
journal
emphasize
"journal" output.check
add.blank
format.vol.num.pages output
format.date "year" output.check
}
{ format.article.crossref output.nonnull
format.pages output
}
if$
new.sentence
format.note output
fin.entry
}
MWE 与以前一样,但输出已改变(标题后显示不需要的逗号)。
\documentclass{article}
\usepackage{scicite}
\begin{document}
According to the theory of special relativity~\cite{einstein1905}, \ldots
\bibliography{a}
\bibliographystyle{Science}
\end{document}
Bib文件(a.bib):
@article{einstein1905,
title={Zur elektrodynamik bewegter k{\"o}rper},
author={Einstein, Albert},
journal={Annalen der physik},
volume={322},
number={10},
pages={891--921},
year={1905},
publisher={Wiley Online Library}
}
完整bst
文件可以访问这里。
样式scicite
文件可以访问这里。
答案1
我不会修改format.title
宏来添加自己的标点符号。相反,你可以告诉 BibTeX 在标题后开始一个新句子,方法是
FUNCTION {article}
{ output.bibitem
format.authors "author" output.check
crossref missing$
{ format.title "title" output.check
new.sentence
journal
emphasize
"journal" output.check
add.blank
format.vol.num.pages output
format.date "year" output.check
}
{ format.article.crossref output.nonnull
format.pages output
}
if$
new.sentence
format.note output
fin.entry
}
然后
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{einstein1905,
title = {{Zur Elektrodynamik bewegter K{\"o}rper}},
author = {Einstein, Albert},
journal = {Annalen der Physik},
volume = {322},
number = {10},
pages = {891--921},
year = {1905},
}
\end{filecontents}
\begin{document}
According to the theory of special relativity~\cite{einstein1905}, \ldots
\bibliography{\jobname}
\bibliographystyle{Science-user001}
\end{document}
给出
title
请注意和字段中更正的大写字母journal
。还请注意字段周围的双花括号title
。它们抑制了句子大小写功能,否则该功能会将英语句子大小写规则应用于德语标题(这会导致拼写错误的输出)。通常我强烈而不是用双花括号保护整个title
字段。我认为最好只保护那些需要大小写保护的单词,而不要使用句子大小写机制。参见BibTeX 在创建 .bbl 文件时丢失大写字母。但我觉得这是例外。