毕业论文参考文献格式CSL(有鱼也有渔)
背景Zotero基本用法插入引用文献
存在的问题csl文件简述SCL简单修改总结
背景
在撰写毕业论文时,使用文献管理软件可以帮助我们方便地引用文献。本人使用Word写论文,使用Zotero来进行文献管理,本文以之为例。在Zotero中,引文格式是由一个.csl文件来控制的。现有的Zotero中的csl文件貌似没有一个完美符合一般的毕业论文要求的(主要是中英文混用容易出现问题),为了避免在论文成文后对引用的文献逐一纠错,可以通过修改csl文件来使引文自动满足论文要求。本文简单介绍更改csl文件的方法。
Zotero基本用法
此部分很基础,比较熟悉的同学不用看。
插入引用文献
在一篇论文中,在行文过程中,使用的引文叫Citation,而论文最后的“参考文献”部分给的论文细节,被称作Bibliography。要在论文中插入文献,
将光标定位在需要插入文献的位置,点击Zotero-Add/Edit Citation。 如果需要插入英文文献,直接在弹出的窗口中输入关键词,选择所需的文献,然后回车。如果一个位置需要插入多篇文献,可以在输入一个空格后继续输入第二篇文献的关键词。(如何将文献添加进Zotero就不介绍了。) ”这个格式的,也可以通过点击Document Preferences来选择其他的格式进行显示。而选择某种格式,其实就是选择了某个scl文件。 如果你需要一种格式,而现在还没有,则在网上搜索。搜索某种格式有两种方法。
在上面的窗口中点击“管理样式”,打开Zotero首选项(也可以在Zotero软件中通过编辑-首选项来打开),在其中的“引用”选项卡中点击“获取更多样式”来搜索。 在网站https://editor.citationstyles.org/searchByName/中搜索并下载.scl文件,然后双击下载得到的.scl,则Zotero会自动打开添加格式的窗口。例如,在搜索框中输入7714,则可以看到并下载相应的.scl文件。
一个SCL文件是如何实现格式控制的呢?大家可以看看这个https://docs.citationstyles.org/en/1.0.1/primer.html。SCL文件是文本文件,是基于XML语言的。按我粗浅的理解,SCL文件中的内容会被专门的解释器来解释,并结合其他的一些文件内容(包括储存论文本身的信息文件,多国语言翻译规则等文件),最终组合形成所需的格式内容。在Zotero等程序的运行过程中,必定会有这样的解释器。 其中Item Metadata,按我的理解,可能是参考文献的信息。对于已经加入文库的文献,可以在Zotero中右击文献,导出条目,选择CSL JSON格式来导出。导出后的示例如下,大家可以看到其中的一些字段的名称。
[
{
"id": "http://zotero.org/users/6541442/items/3MY7WESQ",
"type": "article-journal",
"abstract": "In this paper, ....",
"container-title": "Acta Astronautica",
"DOI": "10.1016/j.actaastro.2018.10.031",
"ISSN": "00945765",
"journalAbbreviation": "Acta Astronautica",
"language": "en",
"page": "146-153",
"source": "DOI.org (Crossref)",
"title": "Preliminary experimental study on solid rocket fuel gas scramjet",
"URL": "https://linkinghub.elsevier.com/retrieve/pii/S0094576518311962",
"volume": "153",
"author": [
{
"family": "Yang",
"given": "Liu"
},
{
"family": "Yonggang",
"given": "Gao"
},
{
"family": "Lei",
"given": "Shi"
},
{
"family": "Zexin",
"given": "Chai"
},
{
"family": "Xiaojing",
"given": "Yu"
}
],
"accessed": {
"date-parts": [
[
"2022",
1,
13
]
]
},
"issued": {
"date-parts": [
[
"2018",
12
]
]
}
}
]
SCL简单修改
从前面可以看到,使用下载得到的“China National Standard GB/T 7714-2015 (numeric, 中文)”格式与论文所需格式比较接近了,但是还有一些小瑕疵,我们可以通过修改.scl文件来实现格式的修改。
首先找到与目标格式接近的scl文件,在此基础上修改会比较容易一点。Zotero的scl文件统一在以下位置。 用文本编辑器打开csl文件(在这里先把上图划线文件复制一份并改名叫test.csl),就可以看到其中的内容。我用的是VS Code。文件比较长,我也没有真正学过XML,但是如果用编辑器的折叠功能把最根部的层次收起来,可以发现其实整个文件只有一个节点,叫style。这里与官方介绍里的写法统一起来,写作cs:style。 cs:style的首行有一些参数,这些可以称作是这个节点的属性。能看懂的有版本号,默认地区(对应着语言,这里为中文)等。这里的属性的名称“version”、“default-locale”等,应该是解释器中规定的一些参数的名称,我们根本不知道解释器是怎么运作的,因此在此不必深究了。cs:style是本文件的根节点,其内部又有不同的子节点。从上到下,包含cs:info, cs:locale, 若干个cs:macro, cs:citation, 最后是 cs:bibliography。 cs:info里面是本scl文件的一些基本信息。 locale是干什么用的呢?在引用的参考文献中,如果作者人数超过三人,往往需要省略后面的作者,并使用“et al”,而在中文语言中,这个"et al"就会被“等”替代,类似的功能就是locale所管辖的范围。实际上,根据官方的说明,csl对语言的控制是通过每种语言对应一个locale文件来实现的,比如英文的locale文件为locales-en-GB.xml,其中规定了需要"et al"的位置应该应该写作“et al.”。中文的locale文件为 locales-zh-CN.xml,规定上述位置处应该使用“等”。locale管理的内容非常多,在此不一一重复。这些内容将被csl解释器解释成正确的语言语法。 按我的理解,cs:macro像是定义了一些变量,这些变量可以在其他位置使用。 cs:citation规定了在论文行为过程中的引用的格式。 cs:bibliography则规定了论文的“参考文献”部分的文献信息显示。 可以看到,虽然代码乍看起来比较杂乱,但其有着清晰的逻辑。cs:info 中,有若干个子节点,可以看到,这里面有本格式的名称cs:title,编号cs:id,作者等。需要说明的是,在Zotero中,每个格式都应该有自己的唯一名称及编号,因此最先要做的就是将这两个节点的值改变一下,改成你想要的内容即可。 这里将这两个值均改为“test”。
cs:locale节点规定了一些term子节点,像前面提到的locale文件,这些子节点起到的作用也是把某些特定的英文词改为中文。按我的理解和测试,本文件中的这个节点可以去掉,因为即使不用它,程序也自动加载locale文件来实现基本的中文翻译。
几个cs:macro相当于定义了几个变量,比如参考文献在引用时的作者,日期,期刊名称等。这些变量同时会有些前缀或后缀等,用来合成正确的参考文献格式。
cs:citation决定了行文中的引用方式。可以看到本csl文件是以"[1]"这样的格式引用的,而且这也符合很多期刊的要求这些内容不需要变动。
最后,最重要的来了,就是cs:bibliography节点。可以看到,其下只有一个节点cs:layout,这个layout节点就是csl规定的,在解释器运行时,对于每篇参考文献,将按照cs:layout中的各个子节点,拼接成一条参考文献的内容。在前文的Word示例中,可以看到,一些小问题,现在分别进行修改。 9.1. 对于作者数量多的英文文章,按照当前的csl,将会在英文条目中产生“等”这个中文,这可能已经让许多人疯狂了。我现在重复一下某个珠玉修改的操作:在cs:bibliography中插入一个新的节点cs:layout放在第一个节点,这个节点与现有csl中的cs:layout几乎完全一样,只是在第一行的属性中标注其语言为英文。也就是这个节点的第一行应该是这样的
最终生成的文件内容。应该是可以直接使用的。
总结
回顾一下,上面其实是一点简单的操作,但是可能困扰过不少人,列出来希望对大家有帮助。如果能让你对csl不那么发怵,并能自行修改生成所需的样式,那就更好了。 整理了一两个地址,算是本文的参考文献,也可以供大家学习。(在介绍参考文献的文章里,我还不会写参考文献。。。)
https://docs.citationstyles.org/en/1.0.1/primer.html这在上面给出过,应该是官方的文档。其实不算长,看完对csl的理解可以增多不少。https://editor.citationstyles.org/about/用于在线查找和修改csl。其中有可视化修改的功能,我觉得直接在它上面修改csl文件不是特别好用,但是如果你对照着它来看代码,将更容易看懂csl的结构。另外,使用它可以很快地生成样式的最终效果,不用每次都像本文一样在word和Zotero之间切换。https://zhuanlan.zhihu.com/p/336009544 上述可视化修改工具的视频介绍。
另外还有一个是我之前直接下载的,来源我忘记了。在最后的bibliography节点中要更加简洁一些。