背景
最近写论文,引用文献用的zotero生成的内容作为.bib文件,发现zotero对中文论文(如国内的学位论文、中文期刊等)的引用格式很长,可读性太差。我使用的是Better BibTeX对参考文件的格式进行管理。
问题复现
原有参考文件格式是这样
auth.lower + shorttitle(3,3) + year
对于中文期刊,如:
生成引用是
XuHuoJiBoDaoJiChengGuangXueXiangKongZhenXinPianSheJiNanDianYuTuPo2024
可以说这种是又臭又长,既不利于读,也不方便使用。
原因应该是对中文不支持,将中文标题当成一整个词,毕竟英文标题是正常的。
问题解决
Better BibTeX官网有个选项是ideographs,可以将象形文字转为单个单词
这是兼容中英文的。于是可以将引用格式设置为:
auth.lower+'_'+shorttitle.ideographs.select(1,3)+'_'+year
- 第一作者姓氏,不空格,小写
- 不同字段间加“_”增强可读性
- 标题前“3”个单词(shorttitle似乎是可以过滤掉一些虚词)
- 年份
修改完格式后,保存,建议重启zotero。
成功后格式变为:Xu_HuoJiBo_2024。如果没有变化,可以手动改一下标题,保存,再改回标题就可以。(可能是因为设置了修改后才运行,所以需要修改一下才会有变化)
另外
我修改后遇到问题,重启报错,可能是中间改了几次导致有时候格式错误了。重启报错如下:
Better BibTeX: could not set default cacheRetaincould not set default for cacheRetainto boolean false (Componentreturned failure code: 0x8000ffff(NS ERROR UNEXPECTED)[nslPrefBranch.setBoolPref]), valuecurrently set to number 1
查了一下,GitHub主页有对应的情况,我转发一下:
大概意思是,这个是这是意外的情况,不知道怎么来的,也很难修复这个bug。解决办法是:
删掉prefs.js文件中的extensions.zotero.translators.better-bibtex.cacheRetain字段
C:\Users\<User Name>\AppData\Roaming\Zotero\Zotero\Profiles\<randomstring>\prefs.js
extensions.zotero.translators.better-bibtex.cacheRetain
删除后不再报错。至此结束。
PS:Better BibTeX for Zotero有好多介绍,太牛了,学不完。如果这篇有写的不对的地方欢迎指正。大家有好的引用格式也欢迎分享。