关于Zotero参考文献格式调整

1.参考文献格式选择

选用的是“China National Standard GB/T 7714-2005 (numernic, 中文)”具体添加方法就不细说了,网上资源很多。

2.格式调整-作者

首字母大写:在样式编辑器中,找到“主要责任者”和“专著主要责任者”中的“name”字段,将<name-part name="family" text-case="uppercase"/>改为<name-part name="family" />,保存即可。

3.格式调整-等、et al
在最新版的zotero中,该文献格式文件中已有方法,在样式编辑器中找到最后几行

  <!-- 取消这部分注释可以使用 CSL-M 的功能支持双语 -->
    <!-- <layout locale="en"><text variable="citation-number" prefix="[" suffix="]"/><text macro="entry-layout"/></layout> -->

按照提示,将注释取消掉即可,取消后为

<!-- 取消这部分注释可以使用 CSL-M 的功能支持双语 -->
<layout locale="en"><text variable="citation-number" prefix="[" suffix="]"/><text macro="entry-layout"/></layout>

如此,该样式已经支持中英文了。但测试后会发现,若英文文献的信息列表中language字段为空或中文,参考文献格式仍然会在第三个作者后出现“等”。

Chen Z, Yao B, Wang Q, 等.

针对该问题,修改文献信息中的language字段为en即可。
4.格式调整-非电子文献出现url
把与电子文献不相关的字段中,关于url、DOI的代码都给注释掉,如 <text macro="url-doi"/><text variable="URL"/>、 <text variable="DOI" prefix="DOI:"/>等。可以边修改,边观察。

5.格式调整-期刊标识符出现OL
在文献类型标识中,找到代码块

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

删除URL,可以解决问题,但电子资源是否能正常引用,没测试。
修改前:

[1] CHEN Z, YAO B, WANG Q, 等. Accurate Motion Control of Linear Motors With Adaptive Robust Compensation of Nonlinear Electromagnetic Field Effect[J/OL]. IEEE/ASME Transactions on Mechatronics, 2013, 18(3): 1122-1129. DOI:10.1109/TMECH.2012.2197217.

修改后:

[1] Chen Z, Yao B, Wang Q, et al. Accurate Motion Control of Linear Motors With Adaptive Robust Compensation of Nonlinear Electromagnetic Field Effect[J]. IEEE/ASME Transactions on Mechatronics, 2013, 18(3): 1122-1129.

6.针对批量修改文献信息问题
1)单篇文献,可以手动进行语言的修改,若有多篇甚至几十篇,工作量就很大了。目前网上利用JavaScript的方法

zoteroPane = Zotero.getActiveZoteroPane();
items = zoteroPane.getSelectedItems();
var rn=0; //计数替换条目个数
var lan="en"; //替换的语言
for (item of items) {
var la = item.getField("language");
if (la=="")  //如果为空则替换
 {item.setField("language", lan);
rn+=1;
 await item.saveTx();
}
}
return rn+"个条目语言被替换为"+lan+"。"

该方法可以实现,但若文献列表中,存在本地导入的PDF文献,恰好又没有获取到元数据。item.setField("language", lan);会因该文献信息不存在language字段而报错,停止运行。因此该方法存在2个问题:

1.若文献列表中存在本地导入的PDF文件就报错;
2.部分中文文献的language也会被赋值为en,除非只选取英文文献。明明可以一步解决的问题,为啥要这么麻烦呢

2)为了解决问题1,仔细查看2种文献的区别,发现本地文献的 "itemType"属性为"attachment",包括文献列表中的附件,也是同样的属性。参考Zotero官网提供的代码成功识别附件文件。

if (item.isAttachment()) 
{
// find out about attachment 
	continue;          
}

为了解决问题2,定义了函数用于判断标题是否为中文

function  isChina(s){
        var  index = escape(s).indexOf("%u");
        if(index < 0)
          {return false;}
        else
          {return true;}
    }  

通过对文献题目进行判断,来执行对language幅值en还是zh-CN

if (la=="")//如果为空则替换
    if(isChina(Title)==false)
     {
         item.setField("language", lan);
         re+=1;
         await item.saveTx();
    }
    else if(isChina(Title))
    {
        item.setField("language", "zh-CN");
         rc+=1;
         await item.saveTx();
    }

7.其他小调整
由于学校的文献格式为,多个页码之间用“,”而不是“+”;若期号为个位数,则前面的“0”需要删除。如2013,23(05):1-7+9.需要调整为2013,23(5):1-7,9.该部分调整通过修改文献基本信息即可实现。完整脚本附上:

zoteroPane = Zotero.getActiveZoteroPane();
items = zoteroPane.getSelectedItems();
   function  isChina(s){
        var  index = escape(s).indexOf("%u");
        if(index < 0)
          {return false;}
        else
          {return true;}
    }  

var re=0; //计数英文替换条目个数
var rc=0;//计数中文替换条目个数
var lan="en"; //替换的语言

for (item of items) {
    if (item && !item.isNote()) {
        if (item.isAttachment()) {
            // find out about attachment
            continue;
        }
    }
    var la =item.getField("language");
    var Title=item.getField("title");
    var Page=item.getField("pages");
    var issue=item.getField("issue");
    var index=Page.indexOf("+");
    if (index>0)
    {
        var page=Page.substring(0,index)+','+Page.substring(index+1);
        item.setField("pages",page);
         await item.saveTx();
    }
    if (issue[0]==0)
    {
        issue=issue.substring(1);
        item.setField("issue",issue);
         await item.saveTx();
    }
 
    if (la=="")//如果为空则替换
        if(isChina(Title)==false)
         {
             item.setField("language", lan);
             re+=1;
             await item.saveTx();
        }
        else if(isChina(Title))
        {
            item.setField("language", "zh-CN");
             rc+=1;
             await item.saveTx();
        }
}
return re+"个条目语言被替换为"+lan+";"+rc+"个条目语言被替换为"+"zh-CN。"

使用时,全选文献列表的中文献,运行即可

2个条目语言被替换为en;3个条目语言被替换为zh-CN。

修改后的参考文献格式为

[1] 顿晓晗, 周建中, 张勇传, 等. 水库实时防洪风险计算及库群防洪库容分配互用性分析[J]. 水利学报, 2019, 50(2): 209-217,224.
[2] Chen Z, Yao B, Wang Q, et al. Accurate Motion Control of Linear Motors With Adaptive Robust Compensation of Nonlinear Electromagnetic Field Effect[J]. IEEE/ASME Transactions on Mechatronics, 2013, 18(3): 1122-1129.

第一次码字,觉得有用的话,给个赞吧!

  • 44
    点赞
  • 102
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值