我试图通过在\href
标题周围放置带有链接的 来将标题链接到参考书目条目中的文章。但是,当我这样做时,会导致标题中的单词无法正确地转换为小写。一个明显的解决方案是将标题放入 bib 文件中,并按照参考书目样式要求使用大写字母,但我想知道是否有一种简单的方法可以让 BibTeX 像平常一样格式化标题,而无需手动修复标题。
梅威瑟:
\documentclass{article}
\usepackage{natbib}
\usepackage{hyperref}
\begin{filecontents}{my.bib}
@unpublished{Sample,
Author = {Sample},
Title = {\href{}{A Title in Title Case}},
Year = {0000},
Note = {Note}
}
\end{filecontents}
\begin{document}
\bibliographystyle{plain}
\nocite{Sample}
\bibliography{my}
\end{document}
这会产生不需要的大写字母:
[1] 示例。标题为首字母大写的标题。注:0000。
省略标题中的 \href 可产生所需的大写字母:
[1] 示例。标题采用大写字母。注意,0000。
答案1
您可以通过不直接写作来解决您的问题\href
:您提供了该条目的链接,因此从语义上讲它属于该Url
字段:
@unpublished{Sample,
Author = {Sample},
Title = {A Title in Title Case},
Year = {0000},
Url = {...},
Note = {Note}
}
然后你只需要一个\bibliographystyle
可以title
链接到的url
。你可以自己创建它:在你的 TeX 安装中,你可以找到带有样式的文件plain
,plain.bst
(您也可以在 CTAN 上找到它). 将其复制到名为 的 TeX 文件的目录中link.bst
。这将是我们的起点。
首先,你必须添加字段url
:在文件顶部,link.bst
你会发现一个以以下内容开头的列表:
ENTRY
{ address
author
下面type
添加一行
url
现在 BibTeX 知道url
,但忽略了该字段。要添加链接,请搜索块
FUNCTION {format.title}
{ title empty$
{ "" }
{ title "t" change.case$ }
if$
}
此块负责显示标题。将其替换为
FUNCTION {format.title}
{ title empty$
{ "" }
{ title "t" change.case$
url empty$
{ }
{ "\href{" url * "}{" * swap$ * "}" * }
if$
}
if$
}
如果给出了,这将\href{<url>}{...}
围绕标题Url
。
如果您保存更改,则可以\bibliographystyle{link}
使用新样式。在 MWE 中,您还必须替换
\usepackage{natbib}
经过
\usepackage[numbers]{natbib}
因为link
使用数字作为引用。这是从继承而来的plain
。可以使用类似 的样式plainnat
作为基础,而改用natbib
类似 Author-Year 的引用。
例子:
\documentclass{article}
\usepackage[numbers]{natbib}
\usepackage{hyperref}
\begin{filecontents}{my.bib}
@unpublished{Sample,
Author = {Sample},
Title = {A Title in Title Case},
Url = {http://eyample.tld/},
Year = {0000},
Note = {Note}
}
\end{filecontents}
\begin{document}
\bibliographystyle{link}
\nocite{Sample}
\bibliography{my}
\end{document}