最近在写一篇综述,要处理大量引用文献,选用Zotero作为文献管理工具。在插入参考文献目录时需要遵循格式,奈何网上找不到《软件学报》对应的csl模板文件,所以决定自己动手修改。在此记录下自己的学习所得。
Zotero入门
关于Zotero的用法建议阅读这篇博客:文献管理软件Zotero基础及进阶示范
CSL基本概念理解
CSL是一种xml文件,专门用来描述论文中的参考文献格式,具体包括引用格式如是用数字[1]
形式引用还是用作者+年
的形式)和参考文献目录格式如作者姓名、期刊名称等显示格式)。
关于CSL文献的详细描述参见官方文档
CSL文件的工作原理如上图所示,CSL文件负责描述格式,CSL Processor负责将CSL文件渲染成最终的引用和文献目录样式。
CSL文件修改
对于CSL文件的修改,建议用在线CSL编辑器
我选用了Elsevier numeric, with titles)作为模板来修改,其样式如下图,和软件学报的要求很接近,只要将引用样式改为上标,文献目录中作者姓名的显示顺序改变一下即可.
出乎意料的简单。需要注意的是因为我的文献中英文居多,所以locale设置为了en_US,locale在左侧的Global Formatting Options
中修改。
如果想要分享自己修改好的CSL文件,建议按照官方教程上传到Github上
最后附上修改好的CSL文件:journal-of-software.csl
1
<?xml version="1.0" encoding="utf-8"?>
2
<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="sort-only" default-locale="en-US">
3
<info>
4
<title>Journal of SoftwareChinese)</title>
5
<title-short>JOS</title-short>
6
<id>http://www.zotero.org/styles/journal-of-software</id>
7
<link href="http://www.zotero.org/styles/journal-of-software" rel="self"/>
8
<link href="http://www.zotero.org/styles/elsevier-with-titles" rel="template"/>
9
<author>
10
<name>Chang YC</name>
11
<email>chang.1123@outlook.com</email>
12
</author>
13
<category citation-format="numeric"/>
14
<issn>1000-9825</issn>
15
<summary>A style for Journal of Software</summary>
16
<updated>2017-07-01T03:38:51+00:00</updated>
17
<rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
18
</info>
19
<macro name="author">
20
<names variable="author">
21
<name delimiter-precedes-last="always" initialize-with="" name-as-sort-order="all" sort-separator=" "/>
22
<label form="short" prefix=", "/>
23
<substitute>
24
<names variable="editor"/>
25
<names variable="translator"/>
26
</substitute>
27
</names>
28
</macro>
29
<macro name="editor">
30
<names variable="editor">
31
<name initialize-with="." delimiter=", " delimiter-precedes-last="always"/>
32
<label form="short" prefix=" " text-case="capitalize-first" suffix=")"/>
33
</names>
34
</macro>
35
<macro name="year-date">
36
<choose>
37
<if variable="issued">
38
<date variable="issued">
39
<date-part name="year"/>
40
</date>
41
</if>
42
<else>
43
<text term="no date" form="short"/>
44
</else>
45
</choose>
46
</macro>
47
<macro name="publisher">
48
<text variable="publisher" suffix=", "/>
49
<text variable="publisher-place" suffix=", "/>
50
<text macro="year-date"/>
51
</macro>
52
<macro name="edition">
53
<choose>
54
<if is-numeric="edition">
55
<group delimiter=" ">
56
<number variable="edition" form="ordinal"/>
57
<text term="edition" form="short"/>
58
</group>
59
</if>
60
<else>
61
<text variable="edition"/>
62
</else>
63
</choose>
64
</macro>
65
<macro name="access">
66
<choose>
67
<if variable="URL">
68
<text variable="URL"/>
69
<group prefix=" " suffix=")" delimiter=" ">
70
<text term="accessed"/>
71
<date variable="accessed" form="text"/>
72
</group>
73
</if>
74
</choose>
75
</macro>
76
<citation collapse="citation-number">
77
<sort>
78
<key variable="citation-number" sort="ascending"/>
79
</sort>
80
<layout vertical-align="sup" prefix="[" suffix="]" delimiter=",">
81
<text variable="citation-number"/>
82
</layout>
83
</citation>
84
<bibliography entry-spacing="0" second-field-align="flush">
85
<layout suffix=".">
86
<text variable="citation-number" prefix="[" suffix="]"/>
87
<text macro="author" suffix=", "/>
88
<choose>
89
<if type="bill book graphic legal_case legislation motion_picture report song" match="any">
90
<group delimiter=", ">
91
<text variable="title"/>
92
<text macro="edition"/>
93
<text macro="publisher"/>
94
</group>
95
</if>
96
<else-if type="chapter paper-conference" match="any">
97
<text variable="title" suffix=", "/>
98
<text term="in" suffix=": "/>
99
<text macro="editor" suffix=", "/>
100
<text variable="container-title" form="short" text-case="title" suffix=", "/>
101
<text macro="edition" suffix=", "/>
102
<text macro="publisher"/>
103
<group delimiter=" ">
104
<label variable="page" form="short" prefix=": "/>
105
<text variable="page"/>
106
</group>
107
</else-if>
108
<else-if type="patent">
109
<group delimiter=", ">
110
<text variable="title"/>
111
<text variable="number"/>
112
<text macro="year-date"/>
113
</group>
114
</else-if>
115
<else-if type="thesis">
116
<group delimiter=", ">
117
<text variable="title"/>
118
<text variable="genre"/>
119
<text variable="publisher"/>
120
<text macro="year-date"/>
121
</group>
122
</else-if>
123
<else>
124
<group delimiter=" ">
125
<text variable="title" suffix=","/>
126
<text variable="container-title" form="short" text-case="title" suffix="."/>
127
<text variable="volume"/>
128
<text macro="year-date" prefix="" suffix=")"/>
129
<text variable="page" form="short"/>
130
</group>
131
</else>
132
</choose>
133
<choose>
134
<if variable="DOI">
135
<text variable="DOI" prefix=". doi:"/>
136
</if>
137
<else>
138
<text macro="access" prefix=". "/>
139
</else>
140
</choose>
141
</layout>
142
</bibliography>
143
</style>