修改 plainnat.bst,为“title”字段的内容添加下划线

修改 plainnat.bst,为“title”字段的内容添加下划线

写一本书。我的大部分参考资料都是学术文章,其中一些有十几位作者。在尝试了许多不同的书目样式之后,使用natbib这种plainnat样式是我唯一真正喜欢的除了我希望字段的内容title带有下划线,因为作者人数超过十几人,浏览参考书目时很难看清字段的author结束和title开始位置。我特别不希望使用斜体,因为斜体可能会引发阅读障碍,但下划线通常没问题。

plainnat.bst思考我需要修改的部分(显然是在本地副本中)是

FUNCTION {format.title}
{ title empty$
    { "" }
    { title "t" change.case$ }
  if$
}

我无法弄清楚究竟如何修改它以便标题带有下划线。

帮助?

答案1

书目plainnat样式对字段内容采用“句子样式” title,这意味着title字段中除第一个单词和花括号中的项目之外的所有单词都会转换为小写。

保留句子样式,同时强调title字段的内容 - 不仅适用于类型的条目@article,而且适用于所有其他类型的条目 - 我建议您按如下方式进行:

  • 复制文件plainnat.bst并将副本重命名为plainnat-ul.bst。(不要直接修改 TeX 发行版的文件。)

  • 在文本编辑器中打开文件plainnat-ul.bst。你用于 tex 文件的编辑器就可以了。

  • 在函数之后emphasize插入一个新函数,其调用underline方式如下:

    FUNCTION {underline}
    { duplicate$ empty$
        { pop$ "" }
        { "\ul{" swap$ * "}" * }
      if$
    }
    
  • 然后,找到函数format.title。在此函数中,将行

        { title "t" change.case$ }
    

        { title "t" change.case$ underline }
    

    将内置函数change.case$和新创建的函数underline应用于字段的内容title

  • 将文件保存plainnat-ul.bst在包含主 tex 文件的目录中,或保存在 BibTeX 搜索的目录中。如果选择后者,请确保适当更新 TeX 发行版的文件名数据库。

  • 在您的主 tex 文件中,更改\bibliographystyle{plainnat-ul}\bibliographystyle{plainnat}并执行完整的重新编译循环:LaTeX、BibTeX,然后再执行两次 LaTeX。


以下是 MWE(最小工作示例及其输出:

在此处输入图片描述

\documentclass{article}
% create a test bibliography "on the fly":
\begin{filecontents}[overwrite]{mybib.bib}
@misc{a,author="Anne Author",title="Lots of Thoughts",year=3001}
\end{filecontents}

\usepackage{soul} % for "\ul" macro
\usepackage{natbib}
\bibliographystyle{plainnat-ul}

\begin{document}
\nocite{*}
\bibliography{mybib}
\end{document}

答案2

好吧,我想到了一个可行的办法。它需要使用soul包装,因为\underline{}包装不好。

我添加了以下功能:

FUNCTION {underline}
{ duplicate$ empty$
    { pop$ "" }
    { "\ul{" swap$ * "}" * }
  if$
}

(基于`FUNCTION {强调}}

然后FUNCTION {article}我在里面注释掉一行并添加了新的:

%format.title "title" output.check
title underline "title" output.check

这至少满足了我对文章案例的期望。

相关内容