【Zotero+Word】Zotero用法+Word添加参考文献解决方案

            <div id="content_views" class="htmledit_views" style="user-select: auto;">
                <h2 id="%E5%BC%95%E8%A8%80"><a name="t0"></a>引言</h2> 

Zotero 是一款文献管理器。它可以用来存储、管理和引用文献。最近由于毕设需要,我采用了Zotero帮助在Word中插入文献。因此,本文的内容仅涉及:

目录

1. Zotero的下载与安装

2. Zotero的界面介绍

3. 文献分类创建

4. 文献导入功能

4.1 插件安装

4.2 文献导入

5. 与Word协同引用文献

5.1 Word中的Zotero插件界面及功能介绍

5.2 自定义参考文献的格式

最终的csl文件


1. Zotero的下载与安装

下载链接:Zotero | Downloads

点击编辑-首选项-高级-语言,然后选择简体中文。

2. Zotero的界面介绍

打开Zotero后,界面从左至右被分为三个区域,分别是文献的分类和子分类(可以理解为目录)、选中类别下的文献列表、选中文献的具体信息。

如下图所示,我在我的文库下创建了一个类别“基于纹理细节的blabla”,用于存放毕设中要用到的所有文献。为了方便在索引的时候使用,我细分了几个子类,比如第三章的对比方法、第四章的对比方法、基于半监督学习的方法、数据集、指标...等。实际上还能进一步分类,看个人使用需求。

选中某一类方法,可以在中间的区域看到该类别下的文献列表,包括标题和作者。

选中某一篇文献,可以在最优的区域中看到相应的详细信息,包括文献类型、标题、作者的姓名、摘要、卷次、期号、页码、日期、语言、网址、DOI等。

3. 文献分类创建

如图所示,在相应的目录下点击右键-新建分类即可。这个操作有点像新建文件夹。

4. 文献导入功能

4.1 插件安装

当我们在浏览器上检索文献时,需要Zotero Connector插件来自动识别我们正在浏览的文献,并自动保存。

插件的安装链接:Zotero | Downloads

如果用的不是chrome,可以点击Zotero Connectors for other browsers

4.2 文献导入

安装完插件后,在浏览网页时, Zotero Connector 会自动感应到文献,我们只需点击右上角的图标, Zotero Connector 就可以将文献保存到所选择的文库中。

这里只举一个例子,现有一篇论文:《An Accurate Multimodal 3-D Vessel Segmentation Method Based on Brightness Variations on OCT Layers and Curvelet Domain Fundus Image Analysis》,我们在论文页(也可以是谷歌学术的搜索结果页)点击右上角的插件。

然后就会弹出这个框,可以选择我们指定的分类下,文献就会被存放到相应的路径。

到Zotero中查看,可以看到文献已经成功导入。

有的时候插件可能无法识别出文献的信息,导入后信息不完整或不准确,我们可以通过另一种方式导入。首先,我们复制文献的BibTex或DOI或arXiv ID或ISBN,然后在Zotero中手动导入文献信息。

  • BibTex

最终也能导入这篇文献。

  • DOI

回车后Zotero会自动开始检索并导入DOI对应的文献。

  • arXiv ID

导入方法和DOI是一样的,只是复制的信息是arXiv ID。

  • ISBN

导入方法和DOI是一样的,只是复制的信息是ISBN。


最右一栏的信息都是可以修改的,要是自动导入后还是有哪里不满意可以手动修改或添加。

5. 与Word协同引用文献

5.1 Word中的Zotero插件界面及功能介绍

安装了Zotero后,打开Word时会自动出现以下界面。

其中,我们常用的就是Add/Edit Citation、Add/Edit Bibliography、Document Preferences和Refresh。

  • Add/Edit Citation

在正文中添加/编辑参考文献的索引,效果图如下。

  • Add/Edit Bibliography

添加/编辑参考文献列表,效果图如下。

  • Document Preferences

点击以后会弹出以下对话框

可以看到,我们可以在这里面挑选参考文献的显示样式。所谓样式,就是我们希望参考文献的索引及列表以某种形式呈现出来。上面的例子我们选择的是GB/T 7714-2015(note,中文),如果我们将样式改为GB/T 7714-2015(author-date,中文),则参考文献的呈现形式如下图。

  • Refresh

每当我们在Zotero中更新了某个文献的相关信息后(或是对Word中的样式做出了改变),点击Refresh可以会自动刷新参考文献,显示最新的信息。

5.2 自定义参考文献的格式

可以看出,目前的参考文献格式与学位论文中的要求有所不同,无论是索引处还是参考文献列表处。因此,我们需要按照学位论文的要求,自定义参考文献的格式,也就是自定义一个可用的模板,就无需手动调整每一篇参考文献的格式了。

5.2.1 寻找可用的模板作为修改基础

Zotero本身提供GB/T 7714-2015的模板,我们可以首先获取该模板,看看这个模板是否直接可用。

在搜索框中输入GB/T,就会自动弹出相关的模板。由于我们刚刚试过了note和author-date都不符合要求,我们再下载numeric的模板看看。

点击后,我们发现numeric也成为了可选的样式,选择后点击ok。

然后我们就看到参考文献的格式变成了下图的样子,基本符合学位论文的要求,但仍有需要修改的地方。

5.2.2 明确修改需求

接下来我们要明确需要有哪些地方是需要修改的,为此,我们需要多添加一些不同的参考文献看看。

目前来看有这几个问题:

  • 作者的姓名完全大写了,实际上应为首字母大写。
  • 英文文献中,如果作者人数较多会显示中文“等”,实际上应显示为“et al.”。
  • 期刊论文的文献类型显示了[J/OL],实际上应显示[J],类似的还有会议论文。
  • arXiv的预印本文献类型显示未[M],实际上应显示为[DB/OL]。
  • 会议论文不需要显示DOI、链接和引用日期。

明确问题后,我们就可以直接在当前模板的基础上,修正格式。由于我引用的都是英文文献(仅包含期刊文章、会议论文、arxXiv的预印本以及标识为[EB/OL]的数据集),所以中文文献中存在的格式问题没有修正。不介意的朋友可以直接拉到最后,用我修改后的模板即可。

5.2.3 csl文件结构

为了修改模板,我们首先导出模板对应的文件。

点击Document Preferences-管理样式,选中numeric模板后点击样式编辑器

紧接着,我们来到以下界面。可以看出,模板本质是xml,在下方还能实时地看到该样式对应的效果,不过我们现在用不上这个功能。

点击另存为,保存该模板到一个待会还能找得到的路径,自定义一个文件名。

然后我们来到刚刚保存的路径,打开文件。我个人喜欢用notepad++看,感觉比较清楚。

打开后可以看到,这个文件非常地长,里面有一些中文注释。我这里直接分析一下这个xml的结构。

拉到最底,我们看到两行很显眼的中文注释:正文中引用的文献标注格式、参考文献表格式,这两部分分别对应着正文中的标注、正文后的参考文献列表的呈现形式。

其中,正文中的数字标注的格式比较简单,格式的名字叫citation-layout,内容包含一个变量citation-number(其实就是标注对应的数字)。

在文档的末尾有一段代码定义了一种布局,大概的意思就是citation-number显示时不仅显示变量值本身(比如1、2、3...),而且会带一个前缀(prefix)“[”和一个后缀(suffix)“]”。换句话说,每次显示标注,也就是参考文献的索引时,一定是[1]、[2]这样的形式。


 
 
  1. <layout>
  2. <text variable="citation-number" prefix="[" suffix="]"/>
  3. </layout>

参考文献列表的格式定义比较复杂,格式的名字叫entry-layout。

这段代码去掉实际的内容,其实下面这样的形式。通过这个标签,说明这个layout具体是什么格式要分类讨论。


 
 
  1. <macro name="entry-layout">
  2. <choose>
  3. <if type="article-journal article-magazine article-newspaper" match="any"> <!-- 如果文献类型是 期刊文章、杂志文章、报纸文章 中 的 任意一种(match=any) -->
  4. </if>
  5. <else-if type="periodical"> <!-- 如果文献类型是 periodical -->
  6. </else-if>
  7. <else-if type="patent"> <!-- 如果文献类型是 专利 -->
  8. </else-if>
  9. <else-if type="paper-conference" variable="container-title" match="any"> <!-- 如果 文献类型是会议论文 或 变量container-title(比如会议论文集名称、期刊名称)存在-->
  10. </else-if>
  11. <else> <!-- 如果不是以上任何一种情况 -->
  12. </else>
  13. </choose>
  14. </macro>

再加上被码掉的内容,我们可以理解,不同类型的文献使用不同的layout。比如期刊文章(article-journal)对应的是article-in-periodical-layout;专利对应的是patent-layout...

那么这些layout又是什么组成的呢?我们在文档中直接搜索(Ctrl+F)相应的layout名称,可以查看到相关的定义。

可以看到,article-in-periodical-layout由author(作者)、title(标题)、periodical-publishing(出版信息)、url-doi(链接和DOI)几个部分组成。

值得注意的是,这个layout使用了标签,其含义为其中的各个text模块被“.”隔开,且最后一个text模块以“.”收尾。举个例子,就是下面这种形式。

作者.标题.出版信息.

继续搜索这些模块的相关定义。以author为例,这里定义了姓是所有字母大写、名的格式没有定义,应该是用了默认的格式。

再看看periodical-publishing的相关定义,出现了choose标签。可以看出,这个模块会根据文献的类型是否属于article-newspaper决定是显示issued-date还是issued-year。

总结:由于整个csl文件比较长,我们只需修改其中很小的几个点,所以无需真的看完每一行的内容,大概了解一下这些格式是怎么定义的即可。

梳理下来可以知道,模板根据文献类型(type)定义并采用了不同的layout,每种layout又由不同的模块组成(比如author、title),每个模块会根据文献类型(type)的不同采用不同的显示格式(比如大小写、隔断符、结尾符、加括号[]等)和显示内容(Zotero中记录的每篇文献对应的信息,比如title、URL、DOI、author等)。

5.2.4 csl文件修改

知道整个csl文件的逻辑以后,我们就可以对着需求快速地找到要修改的地方了。

  • 作者的姓名完全大写了,实际上应为首字母大写。

我们找到author对应的macro,然后把文字的显示形式改为首字母大写。

可以看到,作者的姓名已经变为首字母大写了。

  • 英文文献中,如果作者人数较多会显示中文“等”,实际上应显示为“et al.”。

我们按照中文注释的指示,取消掉下行的注释以支持英语。

效果如下图,部分文献被改过来了,但是第一篇文献依然会显示“等”。

这是因为第一篇文献在Zotero中没有被设置语言,改成“en”即可。

如果嫌手动改很多篇文献比较麻烦的话,可以参考[Zotero]批量修改条目(文献)语言 - 知乎给出的方法用脚本批量修改。

文献[1]也修改成功。

  • 期刊论文的文献类型显示了[J/OL],实际上应显示[J],类似的还有会议论文。

搜索“type-code”,定位到文献类型标识,可以看到以下代码。


 
 
  1. <macro name="type-code">
  2. <group delimiter="/">
  3. <choose>
  4. <if type="article">
  5. <choose>
  6. <if variable="archive">
  7. <text value="A"/>
  8. </if>
  9. <else>
  10. <text value="M"/>
  11. </else>
  12. </choose>
  13. </if>
  14. <else-if type="article-journal article-magazine periodical" match="any">
  15. <text value="J"/>
  16. </else-if>
  17. <else-if type="article-newspaper">
  18. <text value="N"/>
  19. </else-if>
  20. <else-if type="bill collection legal_case legislation regulation" match="any">
  21. <text value="A"/>
  22. </else-if>
  23. <else-if type="book chapter" match="any">
  24. <text value="M"/>
  25. </else-if>
  26. <else-if type="dataset">
  27. <text value="DS"/>
  28. </else-if>
  29. <else-if type="map">
  30. <text value="CM"/>
  31. </else-if>
  32. <else-if type="paper-conference">
  33. <text value="C"/>
  34. </else-if>
  35. <else-if type="patent">
  36. <text value="P"/>
  37. </else-if>
  38. <else-if type="post post-weblog webpage" match="any">
  39. <text value="EB"/>
  40. </else-if>
  41. <else-if type="report">
  42. <text value="R"/>
  43. </else-if>
  44. <else-if type="software">
  45. <text value="CP"/>
  46. </else-if>
  47. <else-if type="standard">
  48. <text value="S"/>
  49. </else-if>
  50. <else-if type="thesis">
  51. <text value="D"/>
  52. </else-if>
  53. <else>
  54. <text value="Z"/>
  55. </else>
  56. </choose>
  57. <choose>
  58. <if variable="URL DOI" match="any">
  59. <text value="OL"/>
  60. </if>
  61. </choose>
  62. </group>
  63. </macro>

关键在于最后一小块,这段的意思是只要文献含有URL或DOI,就会在文献类型标识中加一个OL。

按照需求,我们将这段逻辑改为:只有文献类型既不是期刊文章又不是会议论文时(match="none"),在标识中加一个OL。如果这个逻辑在你的论文中不适用,你也可以按照自己的逻辑用等标签进行修改。


 
 
  1. <choose>
  2. <!-- <if variable="URL DOI" match="any"> -->
  3. <if type="article-journal paper-conference" match="none">
  4. <text value="OL"/>
  5. </if>
  6. </choose>

效果如下,期刊文章和会议论文中的OL被去除。

  • arXiv的预印本文献类型显示未[M],实际上应显示为[DB/OL]。

预印本的type在这个判断逻辑下会落在红色箭头的位置,把原来的M改为DB即可。

效果如下,预印本的文献类型标识正确显示未[DB/OL]。

  • 会议论文不需要显示DOI、链接和引用日期。

首先定位到相关的macro

发现该模块是在任何情况下都显示URL和DOI的,因此我们只需增加一个判断逻辑,令DOI不显示,令URL只在EB和DB的类型下显示。


 
 
  1. <!-- 获取和访问路径以及 DOI -->
  2. <macro name="url-doi">
  3. <choose>
  4. <if type="post post-weblog webpage" match="any">
  5. <group delimiter=". ">
  6. <text variable="URL"/>
  7. <!-- <text variable="DOI" prefix="DOI:"/> -->
  8. </group>
  9. </if>
  10. <else-if type="article">
  11. <choose>
  12. <if variable="archive" match="none">
  13. <group delimiter=". ">
  14. <text variable="URL"/>
  15. <!-- <text variable="DOI" prefix="DOI:"/> -->
  16. </group>
  17. </if>
  18. </choose>
  19. </else-if>
  20. </choose>
  21. </macro>

效果如下图,期刊文章、会议论文不再显示url和DOI,预印本和数据集依然显示url。

可以看到,第二篇文献虽然是会议论文,但是显示了引用日期,定位到相关的macro(先找到paper-conference对应的layout,查看由哪些模块组成,发现有个叫publishing的模块)。最后一行显示,会有个引用日期相关的模块。

我们将逻辑修改为“只有不是会议论文时才显示引用日期”即可(不用ban掉期刊文章的原因是期刊文章本来就不包含publishing这个模块)。


 
 
  1. <choose>
  2. <if type="paper-conference" match="none">
  3. <text macro="accessed-date"/>
  4. </if>
  5. </choose>

效果如下图。

  • 会议论文需要显示卷号(考虑到小部分的会议论文会有卷号,我们加上这条修改)。


 
 
  1. <group delimiter=", "> <!-- 用逗号隔开卷号和年 -->
  2. <text macro="issued-year"/>
  3. <text variable="volume"/> <!-- 对会议增加了卷号 -->
  4. </group>
5.2.5 csl文件应用

最后拉到最顶,重命名这个模板的title,然后保存。

接下来我们只需在Word中选择该模板,然后Refresh。

会弹窗,没关系,选ok就可以。

样式添加成功,然后选择我们刚刚导入的Mystyle模板,点ok。

没变化就Refresh一下。

最终参考文献的格式调整完成。

最终的csl文件

点击链接下载即可:https://github.com/cxxxin/Zotero-gbt-7014-2015-csl.git


由于研究生的学位论文用的是GB7714-87,我在上面的链接中增加了修改后的GB7714-87的模板。

原文链接:https://blog.csdn.net/weixin_42480907/article/details/137222424
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值