我想在参考书目中使用括号内的年份。我该如何自定义样式?
我想我必须改变FUNCTION {format.date}
,但该怎么做呢?
问候
\documentclass[pdftex,a4paper,12pt,german]{book}
\usepackage[german,ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[authoryear]{natbib}
\begin{document}
\bibliographystyle{myplainnat}
\cite{Alonso.2004}
\bibliography{Literatur}
\end{document}
@book{Alonso.2004,
author = {Alonso, Gustavo and Casati, Fabio and Kuno, Harumi and Machiraju, Vijay},
year = {2004},
title = {Web services: Concepts, architectures and applications},
url = {http://www.loc.gov/catdir/enhancements/fy0817/2004298168-d.html},
address = {Berlin},
publisher = {Springer},
isbn = {3540440089},
series = {Data-centric systems and applications}
}
现在我的参考书目如下:
G. Alonso、F. Casati、H. Kuno 和 V. Machiraju。2004 年,Web 服务:概念、架构和应用程序。以数据为中心的系统和应用程序。Springer,柏林,2004 年。
但我希望它看起来像这样:
G. Alonso、F. Casati、H. Kuno 和 V. Machiraju。(2004 年),Web 服务:概念、架构和应用程序。以数据为中心的系统和应用程序。Springer,柏林,2004 年。
括号内为第一年
答案1
您没有提供参考书目样式,但它应该像这样工作:将两行添加format.date
到
FUNCTION {format.date}
{ year duplicate$ empty$
{ "empty year in " cite$ * warning$
pop$ "" }
'skip$
if$
month empty$
'skip$
{ month
" " * swap$ *
}
if$
duplicate$ empty$ 'skip$ %% added
{ "(" swap$ * ")" *} %% added
if$
extra.label *
}
要在年份前面使用句号而不是逗号,请new.block
在年份输出之前发出命令,就像我在这里对article
类型所做的那样
FUNCTION {article}
{ output.bibitem
format.authors "author" output.check
author format.key output
new.block
format.title "title" output.check
new.block
crossref missing$
{ journal emphasize "journal" output.check
eid empty$
{ format.vol.num.pages output }
{ format.vol.num.eid output }
if$
new.block %% added
format.date "year" output.check
}
{ format.article.crossref output.nonnull
eid empty$
{ format.pages output }
{ format.eid output }
if$
}
if$
format.issn output
format.doi output
format.url output
new.block
note output
fin.entry
}
答案2
使用另一个自定义的 formate.date 函数修复地址年份问题
FUNCTION {format.dateWithSpace}
{ year duplicate$ empty$
{ "empty year in " cite$ * warning$
pop$ "" }
'skip$
if$
month empty$
'skip$
{ month
" " * swap$ *
}
if$
duplicate$ empty$ 'skip$ %% added
{ " " swap$ * "" *} %% added
if$
extra.label *
}