当前位置:首页 » 《资源分享》 » 正文

Zotero+Word学位论文中添加参考文献

9 人参与  2024年11月04日 16:00  分类 : 《资源分享》  评论

点击全文阅读


引言

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]这样的形式。

    <layout>      <text variable="citation-number" prefix="[" suffix="]"/>    </layout>

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

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

<macro name="entry-layout">    <choose>          <if type="article-journal article-magazine article-newspaper" match="any"> <!-- 如果文献类型是 期刊文章、杂志文章、报纸文章 中 的 任意一种(match=any) -->      </if>            <else-if type="periodical"> <!-- 如果文献类型是 periodical -->      </else-if>            <else-if type="patent"> <!-- 如果文献类型是 专利 -->      </else-if>            <else-if type="paper-conference" variable="container-title" match="any"> <!-- 如果 文献类型是会议论文 或  变量container-title(比如会议论文集名称、期刊名称)存在-->      </else-if>            <else> <!-- 如果不是以上任何一种情况 -->      </else>          </choose>  </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”,定位到文献类型标识,可以看到以下代码。

<macro name="type-code">    <group delimiter="/">      <choose>        <if type="article">          <choose>            <if variable="archive">              <text value="A"/>            </if>            <else>              <text value="M"/>            </else>          </choose>        </if>        <else-if type="article-journal article-magazine periodical" match="any">          <text value="J"/>        </else-if>        <else-if type="article-newspaper">          <text value="N"/>        </else-if>        <else-if type="bill collection legal_case legislation regulation" match="any">          <text value="A"/>        </else-if>        <else-if type="book chapter" match="any">          <text value="M"/>        </else-if>        <else-if type="dataset">          <text value="DS"/>        </else-if>        <else-if type="map">          <text value="CM"/>        </else-if>        <else-if type="paper-conference">          <text value="C"/>        </else-if>        <else-if type="patent">          <text value="P"/>        </else-if>        <else-if type="post post-weblog webpage" match="any">          <text value="EB"/>        </else-if>        <else-if type="report">          <text value="R"/>        </else-if>        <else-if type="software">          <text value="CP"/>        </else-if>        <else-if type="standard">          <text value="S"/>        </else-if>        <else-if type="thesis">          <text value="D"/>        </else-if>        <else>          <text value="Z"/>        </else>      </choose>      <choose>        <if variable="URL DOI" match="any">          <text value="OL"/>        </if>      </choose>    </group>  </macro>

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

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

      <choose>        <!-- <if variable="URL DOI" match="any"> -->        <if type="article-journal paper-conference" match="none">          <text value="OL"/>        </if>      </choose>

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

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

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

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

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

首先定位到相关的macro

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

  <!-- 获取和访问路径以及 DOI -->  <macro name="url-doi">        <choose>            <if type="post post-weblog webpage" match="any">                <group delimiter=". ">                  <text variable="URL"/>                  <!-- <text variable="DOI" prefix="DOI:"/> -->                </group>            </if>            <else-if type="article">              <choose>                <if variable="archive" match="none">                    <group delimiter=". ">                      <text variable="URL"/>                      <!-- <text variable="DOI" prefix="DOI:"/> -->                    </group>                </if>              </choose>            </else-if>        </choose>  </macro>

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

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

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

    <choose>        <if type="paper-conference" match="none">            <text macro="accessed-date"/>        </if>    </choose>

效果如下图。

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

            <group delimiter=", ">  <!-- 用逗号隔开卷号和年 -->                <text macro="issued-year"/>                <text variable="volume"/> <!-- 对会议增加了卷号 -->            </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的模板。


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/182342.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1