写一本书。我的大部分参考资料都是学术文章,其中一些有十几位作者。在尝试了许多不同的书目样式之后,使用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
这至少满足了我对文章案例的期望。