前言
概述
Zotero是一款开源的文献管理软件,笔者在使用Endnote遇到了无法处理的bug(使用Seafile云盘同步失败后,参与同步的三台本地计算机和云盘均失去了全部的论文item信息,且无法恢复),同时也忍受不了Endnote的卡、慢、蠢后终于第N+1次下定决心彻底抛弃Endnote转投向Zotero。
虽然,Zotero也有很多奇奇怪怪使用起来不够舒服的地方,但至少Zotero还有活力,还有变得更好用的希望,故推荐之。
笔者才疏学浅,对Zotero的研究也不是很深刻,本文主要目的是介绍Zotero的快捷键管理插件Zutilo中的两个选项的作用;对于别的范畴不再介绍,相信聪明的读者一定能找到更好的资源进行了解。
相信有很多朋友在安装好Zotero的快捷键管理插件后会对两个选项“Quick Copy items(alt 1) (alt 2)”感到好奇,因为不管怎么操作这两个选项似乎都没用。本文将会对如何配置这两个选项,如何使用其来使得Zotero更方便而做出介绍。
在笔者从Endnote跳转到Zotero后,一直对Endnote的两个copy复制功能:ctrl+c(复制简单引用)、ctrl+k(格式化复制 format copy)恋恋不忘,而Zotero似乎原生支持的只有格式化复制(format copy)也就是ctrl+shift+c。且,有的时候会有想要直接复制文献DOI的需求,似乎Zotero并不能提供很好的支持。为了解决这两个问题,本文找到了基于zutilo的方法,也就是下面会介绍的内容。
本文目的
- 介绍Zutilo的选项Quick Copy alt 的使用方法
- 介绍如何通过Zutilo实现对文献短引用的复制,和对DOI的复制
什么是Quick Copy item
对于 Quick Copy item 的介绍,这里直接节选 官方解释:
希望到处论文的完整引用,可以使用Zotero首选项的“导出”部分中指定的“默认输出格式”将所选项目复制到剪贴板;也可以设置Zutilo首选项中的Quick Copy Item来实现。
在默认情况下,除了Quick Copy Item外,还给用户开放了两项;类似的功能,以实现不同需求的文献引用复制:“Quick Copy alt 1”和“alt 2”。此外用户还可以通过更改配置编辑器中的extensions.zutilo.copyItems_alt_total首选项来进行扩展更多的功能。
这些扩展功能没有被配置,用户可以通过Zotero【编辑–>首选项–>高级–>常规–>高级设置–>设置编辑器】来进行配置。**(操作界面非常的不友好,笔者注)**通过配置:Extensions.zutilo.quickcopy_alt1、extensions.zutilo.quickcopy_alt2,即可实现需要的高级功能。
翻译成人话:
Quick Copy Item 只能实现最基本的format copy文献引用的格式化复制,要想实现自定义的复制(比如短引用、DOI)需要用户自行进行配置。Zutilo提供了配置这个的接口。
如何实现功能
笔者是菜鸡,这里直接引用找到的解决方案
实现效果
大概像这样,可以直接粘贴出文献的DOI和短引用
DOI的复制
一位名叫Guillawme的网友在G站上发表了他配置Quick Copy Item以实现DOI复制的方法,这是其`原文链接。具体的配置方法可以看原文,也可以看我这里的翻译版。
步骤:
-
如果Zotero开着的,先退出。
-
复制下面这段代码或者下载本文的附件,复制到 $ZOTERO_DATA_DIR/translators 中。
{ "translatorID": "d5bb4cc3-8334-4bbc-a5f0-fe66317c88e8", "label": "DOI link quick copy", "creator": "Guillaume Gaullier", "target": "txt", "minVersion": "5.0.82", "maxVersion": "", "priority": 100, "inRepository": false, "translatorType": 2, "browserSupport": "gcsbv", "configOptions": {"getCollections": false}, "displayOptions": {"exportCharset": "UTF-8", "exportNotes": false, "exportFileData": false, "useJournalAbbreviation": false}, "lastUpdated": "2020-03-29 14:36:52" } /* MIT License Copyright (c) 2020 Guillaume Gaullier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ function doExport() { var item; while (item = Zotero.nextItem()) { if (item.DOI) { var doiLink = "https://doi.org/" + item.DOI + "\n"; Zotero.write(doiLink); } else { Zotero.write("This item's DOI field is empty, or this item type does not have a DOI field.\n"); } } }
-
启动Zotero
-
如果没有安装Zutilo这个插件,那么安装他
-
按照下图操作,在高级编辑器的搜索框中键入
extensions.zutilo.quickcopy_alt
并双击修改其值为前面导入的这个配置文件的"translatorID"
,比如可以输入:export=d5bb4cc3-8334-4bbc-a5f0-fe66317c88e8
-
重启Zotero,配置即可生效。这是可以通过Zutilo选项卡中的Quick Copy Item(alt)【快速复制条目到剪切板(alt)】即可实现目标操作。
短引用的复制
所有操作和上面完全一样,只不过使用的脚本不同,笔者直接修改找到的链接为下面这样,照着上文相同的六步操作即可。
{
"translatorID": "b578986e-4ac5-4735-b938-d8f2f95b850a",
"label": "MyMarkdownLink",
"priorlabel": "Scannable Cite",
"priorcreator": "Scott Campbell, Avram Lyon, Nathan Schneider, Sebastian Karcher, Frank Bennett",
"target": "html",
"minVersion": "3.0",
"maxVersion": "",
"priority": 100,
"displayOptions": {
"exportCharset": "UTF-8"
},
"inRepository": true,
"translatorType": 2,
"browserSupport": "",
"lastUpdated": "2020-012-17 09:13:04"
}
// legal types are weird
const LEGAL_TYPES = ["bill", "case", "gazette", "hearing", "patent", "regulation", "statute", "treaty"];
const Mem = function (item) {
let lst = [];
const isLegal = LEGAL_TYPES.includes(item.itemType);
this.set = function (str, punc, slug) { if (!punc) { punc = ""; } if (str) { lst.push((str + punc)); } else if (!isLegal) { lst.push(slug); } };
this.setlaw = function (str, punc) { if (!punc) { punc = ""; } if (str && isLegal) { lst.push(str + punc); } };
this.get = function () { return lst.join(" "); };
};
// 笔者 定制版, 不需要复制 Zotero链接,只需要复制(author, year)就行了
function doExport() {
let item;
while (item = Zotero.nextItem()) {
let mem = new Mem(item);
let memdate = new Mem(item);
Zotero.write("(");
let library_id = item.libraryID ? item.libraryID : 0;
if (item.creators.length > 0) {
mem.set(item.creators[0].lastName, ",");
if (item.creators.length > 2) mem.set("et al.", ",");
else if (item.creators.length == 2) mem.set("& " + item.creators[1].lastName, ",");
}
else {
mem.set(false, ",", "anon.");
}
if (Zotero.getHiddenPref("ODFScan.includeTitle") || item.creators.length === 0) {
mem.set(item.title, ",", "(no title)");
}
mem.setlaw(item.authority, ",");
mem.setlaw(item.volume);
mem.setlaw(item.reporter);
mem.setlaw(item.pages);
memdate.setlaw(item.court, ",");
let date = Zotero.Utilities.strToDate(item.date);
let dateS = (date.year) ? date.year : item.date;
memdate.set(dateS, "", "no date");
Zotero.write(mem.get() + " " + memdate.get() + ")");
}
}
注意,这里需要修改填写的 translatorID 为export=b578986e-4ac5-4735-b938-d8f2f95b850a
上面所用到的这两个js脚本,建议直接点击链接下载(不需要CSDN积分)。
最后
如果帮到了你,麻烦点个赞呗~
最后,附上几个本人在学习zotero时看过还不错的教程:
- (56 封私信 / 85 条消息) zotero插件 - 搜索结果 - 知乎 (zhihu.com)
- 利用ZotFile对Zotero中的文献进行整理
- 重磅|最强插件Zutilo,如何彻底改造Zotero使用效率?
我把这些教程所推荐的插件上传到了CSDN,0积分可直接下载:
下载链接
有用,就点个赞呗