如何防止专有名词被 LaTex 中的 bst 文件转换为小写?

如何防止专有名词被 LaTex 中的 bst 文件转换为小写?

我的书目包含如下内容:

RK Sawyer,《即兴创作和创作过程:杜威、科林伍德和自发性美学》

问题在于,标题中的专有名词(例如“Collingwood”)被转换为小写,而它们不应该这样。它应该像这样:

RK Sawyer,《即兴创作和创作过程:杜威、科林伍德和自发性美学》

另一个示例也删除了必要的标点符号:

G. Deleuze,《斯宾诺莎情感概念讲座记录》,

这应该是:

G. Deleuze,《斯宾诺莎情感概念讲座记录》,

我已经检查过它们在我的 bibtex 文件中是正确的。我正在使用IEEEtranS.bst,这就是导致这些问题的原因(我猜)。建议?

我必须进一步编辑 bib 文件以添加括号或其他内容,这似乎是一个糟糕的设计,而且至少由于 bib 文件是用 Zotero 生成的,所以这很不方便。我不想每次重新导出 bib 文件时都必须重新编辑 bib 文件。

答案1

IEEEtranS.bst我在工作目录中保存了一份副本并将其重命名为myIEEEtrans.bst

我的测试文件是:

\documentclass{article}

\usepackage{filecontents}

\begin{filecontents}{mwebib.bib}
@ARTICLE{article-full,
   author = {L[eslie] A. Aamport},
   title = {The Gnats and Gnus Document Preparation System},
   journal = {G-Animal's Journal},
   year = 1986,
   volume = 41,
   number = 7,
   pages = "73+",
   month = jul,
   note = "This is a full ARTICLE entry",
}

@BOOK{book-full,
   author = "Donald E. Knuth",
   title = "Seminumerical Algorithms",
   volume = 2,
   series = "The Art of Computer Programming",
   publisher = "Addison-Wesley",
   address = "Reading, Massachusetts",
   edition = "Second",
   month = "10~" # jan,
   year = "1981",
   note = "This is a full BOOK entry",
}
\end{filecontents}

\begin{document}
\cite{article-full} and \cite{book-full}

\bibliographystyle{myIEEEtranS}
\bibliography{mwebib}
\end{document}

我在myIEEEtrans.bst函数内部进行了format.articles.title如下更改(第 1442 行):

FUNCTION {format.article.title}
{ title duplicate$ empty$ 'skip$
    { this.to.prev.status
      this.status.std
      "t" write$ 
%      "t" change.case$
    }
  if$
  "title" bibinfo.check
  duplicate$ empty$ 'skip$
    { quote.close 'this.status.quote :=
      is.last.char.not.punct
        { punct.std 'this.status.punct := }
        { punct.no 'this.status.punct := }
      if$
      select.language
      "``" swap$ *
      cap.status.std
    }
  if$
}

此后我得到了以下输出:

在此处输入图片描述

相关内容