Zotero APA 7th 中文CSL引文样式修改
2024-03-11 12:05:33

问题

最近开始做毕业论文了,以前用的CSL样式都是用随便选的,基本上是倾向于哪个好看用哪个,然后用Zotero自动插入到Word里面,但是问题是学校要求的APA格式,与Zotero自带的APA格式不一样。

主要问题有:

  1. Zotero自带的APA格式,附带DOI,而学校不要求
  2. 学校要求英文的期号要斜体,中文的期刊名字要斜体,而卷次、期号不要斜体,跟Zotero自带的APA格式不一样
  3. 学习要求的引文前面带序号,而Zotero自带的APA格式没有序号
  4. Zotero自带的APA格式,中文和英文字体都是等线,学校要求中文是宋体,英文是Times New Roman

解决问题

先解决前两个问题的一半,利用Visual CSL Editor网站,修改Zotero自带的APA格式。

  1. 先点击Search By name,输入APA,然后点击Edit,进入编辑

search

  1. 先删除DOI,点击DOI,然后点击右上方的减号,即可删除,注意可能有多个DOI,都要删除

delete doi

  1. 添加序号,点击作者姓名,再点击左侧的Group,点击加号,选择Text,将生成的Text移到author-bib(macro)前面,选择Type为variable,选择citation-number,并改成prefix and suffix即可生成序号

添加序号

  1. 修改序号样式,整体选中引用,修改delimiter为空格即可

修改样式

  1. 修改一个小问题,书名后的句号没了,之间点击书名,在suffix中加入句号即可

句号

  1. 最后一步,把所有的issue number都改成斜体,方便在Word中整体修改

斜体

  1. 最后点击Style,Save style,再点击download即可,最好修改格式的Title名字,防止与原来的APA格式混淆

保存

  1. 导入到Zotero中,点击编辑,首选项,引用,点击样式,点击下方的加号,导入即可

导入

下面解决另一半

导入到Word中的引用的中文的卷次、期号还是斜体,我选择使用VBA宏来解决这个问题,即再导入引用之后,利用宏,将中文卷次、期号全部改成不斜体

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Attribute VB_Name = "NewMacros1"
Sub AdjustStyles()
Dim doc As Document
Set doc = ActiveDocument

Dim para As Paragraph
Dim regex As Object
Set regex = CreateObject("VBScript.RegExp")

regex.Pattern = ".*[\u4e00-\u9fa5]+, \d+.*"

For Each para In doc.Paragraphs
If regex.Test(para.Range.text) Then
para.Range.Font.Italic = False
End If
Next para

regex.Pattern = "([\u4e00-\u9fa5]+), \d+.*"

For Each para In doc.Paragraphs
Dim matches As Object
Set matches = regex.Execute(para.Range.text)

For Each match In matches
Dim matchRange As Range
Set matchRange = para.Range.Duplicate
matchRange.Find.text = match.SubMatches(0)
matchRange.Find.Execute
matchRange.Font.Italic = True
Next match
Next para
End Sub

使用方法:

在Word中导入.bas文件

  1. 在“开发工具”选项卡上,单击“Visual Basic”。如果你看不到“开发工具”选项卡:

    • 单击“文件” > “选项”。
    • 单击“自定义功能区”,然后在“主选项卡”下选择“开发工具”复选框。
    • 单击“确定”。
  2. 转到“开发人员” > “Visual Basic”。

  3. 转到“文件” > “导入文件”。

  4. 在“导入文件”对话框中,转到包含所需.bas文件的文件夹。

  5. 选择.bas文件,然后单击“打开”。

在Word中运行宏

  1. 选择所有引用。

  2. 单击“视图” > “宏” > “查看宏”。

  3. 在“宏名称”列表下,单击要运行的宏。

  4. 单击“运行”。

至此,前面两个问题已解决。

解决第三个问题

在Word中设置默认的中文字体为“宋体”,默认的英文字体为“Times New Roman”

字体

使用演示

演示

脚本更新

之前写脚本的时候没有关注到期刊后面的数字有很多种情况,像下面的表格里这样,有诸如44(2),51-56、2,1-3等等,之前的脚本只能识别其中几种,导致这部分别的中文不能变成斜体,然而在演示的时候,我只会挑其中一部分展示,也就是说只要格式不一样,中文有可能不会变成斜体,我就以为脚本有问题从而重新修改,从而忽略了根本的问题,现在修改了脚本,只要是中文,数字,数字,不管数字有没有带括号、横线都算,都变成斜体,应该解决了这个问题。

期刊+卷次
外语教学, 44(2), 51–56.
现代外语, 44(2), 233–245.
海外英语, 2, 1–3.
外语教学, 40(3), 63–68.
今古文创, 6, 22–24.
解放军外国语学院学报, 45(3), 120–128.
中国外语, 16(3), 39–46.

上述所有文件和代码都可以在我的Github上下载

参考资料

[1] Zotero + CSL编辑器,自定义文献引用格式,创建PPT中的短文献引用. (n.d.) https://zhuanlan.zhihu.com/p/185026280.

[2] 丁布. (n.d.) Zotero引用文獻樣式:中文、英文APA合併版本 / Zotero Citation Style: APA Chinese & English Edition. https://blog.pulipuli.info/2014/08/zoteroapa-zotero-citation-style-apa.html.

[3] 丁布. (n.d.) Zotero引用文獻樣式之中文APA. https://blog.pulipuli.info/2011/05/zoteroapa.html.

[4] 粥F. (n.d.) 【Zotero & Mendeley 中文CSL引文样式】《世界经济与政治》. https://zhuanlan.zhihu.com/p/111316221.

[5] 粥F. (n.d.) 【Zotero & Mendeley 中文CSL引文样式】几本国际关系中文核心期刊. https://zhuanlan.zhihu.com/p/290725487.

Prev
2024-03-11 12:05:33
Next