我正在使用特定的参考书目样式,目前无法按照我想要的方式对其进行修改;)
复制步骤:
- 下载http://acl2016.org/files/acl2016.zip
- 提取
acl2016.bib
、acl2016.sty
和acl2016.bst
使用这个最小的工作示例:
\documentclass[10pt]{article} \usepackage{acl2016} \begin{document} \cite{Aho:72} \newcite{Aho:72} \bibliography{acl2016} \bibliographystyle{acl2016} \end{document}
这导致
(Aho and Ullman, 1972) Aho and Ullman (1972)
我想使用另一种字体颜色(例如蓝色)来表示年份,但仅限于年份。并且只有当我引用\cite
或\newcite
不在参考书目列表中时,颜色才会改变。我该如何使用样式来实现这一点acl2016
?
答案1
如果你使用该特定样式在某处提交作品,则不应更改它。否则,修改 .bst 文件并不是一件容易的事,所以我的建议是使用biblatex
和hyperref
。
这样,年份就不仅仅是另一种颜色了,它还是一个指向参考文献的链接。默认的参考文献样式可能不是您期望/需要/想要的,但它biblatex
是一个非常可配置的包。
\documentclass{article}
\usepackage[colorlinks,citecolor=blue]{hyperref}
\usepackage[style=authoryear,natbib=true]{biblatex}
\addbibresource{IEEEexample.bib}
\begin{document}
Bla bla bla \citep{IEEEexample:articleetal} bla bla.
\printbibliography
\end{document}
例如,据我所知,下面的代码准确地重现了您的 MWE:
\documentclass[10pt]{article}
\usepackage{acl2016}
\usepackage[colorlinks,citecolor=blue]{hyperref}
\usepackage[style=authoryear,natbib=true]{biblatex}
\addbibresource{acl2016.bib}
\DeclareBibliographyDriver{book}{%
\printnames{author}\newunit%
\printfield{year}\newunit%
\printfield{title}\newunit%
\printlist{publisher}\newunit%
\printlist{location} \finentry}
\DeclareNameAlias{sortname}{first-last}
\begin{document}
\citep{Aho:72}
\citet{Aho:72}
\printbibliography
\end{document}