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.
第一次码字,觉得有用的话,给个赞吧!