Zotero设置毕业论文/中文期刊参考文献格式

大家在使用zotero时很容易遇到的问题:

  1. 英文参考文献中有多个作者时出现“等”,而不是用"et al"
  2. 引文最后面有不需要的DOI号,或者论文链接
  3. 对于一些期刊分类上会出现OL字样,即[J/OL]
  4. 作者名为全大写

本文主要解决以上几个问题,有下面几个特性:

  1. 根据中英文文献自动切换用“等”还是用"et al"
  2. 引文最后去掉了DOI号以及文章链接
  3. 去掉期刊分类的OL字样
  4. 作者名改为首字母大写

为了节省大家时间先提供我修改好的cls文件:gitee链接
样式预览:
在这里插入图片描述
如果达到目的,下面就可以不用看了。
这里分享两个别人的zotero一些使用经验: zotero软件教程
Chinese-STD-GB-T-7714-related-csl

1. word 参考文献样式

如果默认的话,把参考文献放进去,它的缩进是这样的

如果通过手工调整,下一次再刷新引文目录,它又会恢复成原样。
所以这种情况,我们可以在word中使用自带的参考文献专用的样式【书目】:在这里插入图片描述
该样式可能需要修改的地方就是段落里面的悬挂缩进大小了,我用的0.68cm,或0.86cm也行:在这里插入图片描述
其它就基本就保持和正文一样。然后选择全部参考文献,应用样式即可
这样它就会自动变为标准缩进了,之后即便刷新引文目录它也能一直保持这个格式。
在这里插入图片描述

2. Zotero引文变交叉引用

已知Zotero插入的引文是没办法跳转的(就是点一下文件标号就跳转到引文目录对应文献的位置)。
这个可以用宏来解决:Zotero如何在word中引用跳转到参考文献/建立超链接
上面这个贴子我自己照着操作了一遍,确实有效。但最好是在所有文献插入完毕后再使用,使用前最好备一下份。

3. csl文件使用方法

csl是zotero引文样式文件,使用时依次点击【编辑】> 【首选项】>【引用】,然后点上面的加号
在这里插入图片描述
再选中刚才下载的csl文件即可。
导入时可能会提示:"D:\Downloads\GBT-7714-2015-En-NoDOL_URL_OL.csl"不是一个有效的 CSL 1.0.2 样式文件,你可能不能和Zotero一起正常工作。,请忽略提示,点击OK继续即可。
然后样式列表里就会有刚才导入的文件,若不想要了点下面的减号即可删除。
在这里插入图片描述
上面给的链接是gitee的,若是不会下了,也可以打开后全选复制到一个本地文件,将扩展名改为csl再导入也行。

4. 引文样式修改

其实在zotero中自带有几个中文期刊引文样式:China National Standard GB/T 7714-2015
但是依然会出现上面的几个问题,所以咱们可以在它官方提供的引文样式文件中进行修改,即可满足咱的使用要求。
首先我们点击上上面截图页面里面的【样式编辑器】,选中一个基础样式,进行更改。
在这里插入图片描述
也可以复制到本地编辑器里改了再导入。主要修改以下几个地方:

<macro name="accessed-date">
    <date variable="accessed" form="numeric" prefix="[" suffix="]"/>
  </macro> -->

上面这个是引用日期,不需要了直接注释掉

  <macro name="author">
    <names variable="author">
      <name>
        <!-- 这一行是姓名全大写 ,
        可取值:“lowercase”,“uppercase”,“capitalize-first”,“capitalize-all”,“sentence”,“title”
      -->
        <!-- <name-part name="family" text-case="uppercase"/> -->
        <!-- 这一行是姓名首字母大写 -->
        <name-part name="family" text-case="capitalize-first"/>
        <name-part name="given"/>
      </name>
      <substitute>
        <names variable="composer"/>
        <names variable="illustrator"/>
        <names variable="director"/>
        <choose>
          <if variable="container-title" match="none">
            <names variable="editor"/>
          </if>
        </choose>
      </substitute>
    </names>
  </macro>

上面这个是作者更改,主要修改text-case=“”,默认是uppercase表示全大写

  <!-- 获取和访问路径以及 DOI -->
  <macro name="url-doi">
    <group delimiter=". ">
      <text variable="URL"/>
      <text variable="DOI" prefix="DOI:"/>
    </group>
  </macro>

上面是显示DOI号,这一整段注释掉就可以

	<choose>
        <if variable="URL DOI" match="any">
          <text value="OL"/>
        </if>
      </choose>

上面是显示OL的,咱也将它一整段注释掉

<layout locale="en"><text variable="citation-number" prefix="[" suffix="]"/><text macro="entry-layout"/></layout>

上面这一段是用来自动识别中英文的,默认是注释掉的,咱把它取消注释即可

以上这些内容也是本人修改的主要内容,其它的基本没动。

再推荐一个可视化编辑csl文件的网站:Visual CSL Editor

5. 批量设置文献语言

上面这个虽然能根据中英文自动切换"等"和"et al"。但它是根据文献元数据里的【语言】来判断的,所以如果文献的【语言】显示不准确或为空,则这个判断就会失效。导致有部分英文文献仍然会出现中文的“等”。
在这里插入图片描述
为解决这个问题,可以使用一个插件【jasminum】它们把这个叫茉莉花插件,下载地址:github
在这里插入图片描述
使用它可以批量识别文献语言,使用方法如下图,在文献上右键即可,也可以先全选所有文献再右键
在这里插入图片描述

插件安装方法:
zotero工具栏【工具】>【附加组件】>Install Add-on From File,然后选择下载的xpi格式的插件即可
在这里插入图片描述

6. js脚本使用

如果还想要对文献做一些其它的批量修改操作,可以考虑使用javascript。
比如刚才的想要批量修改文献语言的操作,可以使用如下js代码:

/*
【功能】: 批量修改文献的[语言]字段,根据文献标题识别中英文文献,
将中文文献的[语言]字段更改为"zh-CN"或"中文"或"zh",英文文献更改为"en"或"en-US".
以便在文献引用时区分“等”和"et al".

【使用方法】:在zotero工具栏中选择[工具]>[开发者]>[Run JavaScript],
然后将本代码粘贴到[Code:]框中,再在zotero文献库中选择想要修改的文献,再点击[Run]即可。

【注意】:它仅对在zotero被选择的文献生效,若想作用于所有文献,则需在zotero
中切换到[我的文库],然后ctrl+a全选所有文献,
*/
var items = ZoteroPane.getSelectedItems();
let reg = /^[\u4e00-\u9fa5]+$/; // 正则表达式,用于匹配中文字符
let ch_ls = [];
let en_ls = [];
let num_ch = 0;
let num_en = 0;
let num_file=0;
for (let item of items) {
    var title = item.getField('title');
    //跳过没有元数据的文件,默认只要有元数据就有摘要,这个可能也不准
    if (!item.getField("abstractNote")){
        num_file += 1;
        continue;} 
    item.setField("language", "en");
    try{
        if (reg.test(title)){
            item.setField("language", item.getField("language").replace(/.*/, 'zh-CN'));
            num_ch += 1;
            ch_ls.push(title);
        }
        else {
            item.setField("language", item.getField("language").replace(/.*/, 'en-US'));
            num_en += 1;
            en_ls.push(title);
        }
    } catch(error){
        console.error("Error: ", error.message);
        return title;
    }
    await item.saveTx()
}
return "修改中文 "+num_ch+" 个,英文 "+num_en+" 个"+"跳过文件 " + num_file + "个";
// return [ch_ls, en_ls];

使用时,只需要粘贴到:zotero工具栏 > 【工具】 > 【开发者】>【Run JavaScript】
在这里插入图片描述
然后在zotero文献库里选择需要修改的文献,再运行即可

需要注意的一点是,对于上面的代码,如果某文献的时间或什么字段本来没有填入值的时候,它就会获取不到这个字段。还有些文献可以是直接把pdf拉进去的而没有识别到它的元数据,需要注意会不会报错。

更详细的api,请查看官方文档:Zotero JavaScript API

  • 209
    点赞
  • 535
    收藏
    觉得还不错? 一键收藏
  • 56
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 56
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值