删除 bst 文件中字段后的逗号

删除 bst 文件中字段后的逗号

关于我的先前的问题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}

给出

A.爱因斯坦,《人体电动力学变化》。物理学年鉴322,891 (1905)。

title请注意和字段中更正的大写字母journal。还请注意字段周围的双花括号title。它们抑制了句子大小写功能,否则该功能会将英语句子大小写规则应用于德语标题(这会导致拼写错误的输出)。通常我强烈而不是用双花括号保护整个title字段。我认为最好只保护那些需要大小写保护的单词,而不要使用句子大小写机制。参见BibTeX 在创建 .bbl 文件时丢失大写字母。但我觉得这是例外。

相关内容