毛 星,李艳娜,董 里
(应急管理部天津消防研究所 《消防科学与技术》编辑部 天津 300381)
科技论文在通过审稿之后,还需要经过编辑加工、校对等步骤,才能正式发表,而编辑校对工作往往比较繁琐,容易出现疏漏差错,同时存在大量重复性劳动。随着投稿逐步实现以电子版 Word文档为主,在新技术条件下的自动校对也成为可能。通过Word的 VBA宏功能以及样式功能,可以将日常的格式调整等工作交由程序自动化完成,有利于编辑减少重复劳动,将时间精力用于稿件内容审核、了解相关专业发展动态等方面,更好地发挥编辑的主动性、创造性,在程序完善、稳定运行的情况下,还能够降低编辑工作的失误率。
编辑常用的黑马校对软件校对时主要集中在字词的错误用法和敏感词的识别,同时查错率也有待提高。此外,也有很多同行针对自己的工作需要研究了VBA在排版校对中的应用。如崔玉洁等[1]通过 VBA技术实现了文档敏感词、重复词句的标注及格式调整;侯修洲等[2-4]利用VBA编程语言实现了Word文档的 XML结构化标记,并能够在此基础上自动校对文档的连续性和一致性,同时自动加工参考文献;郑小光等[5]建立了量名称、符号、科技名词等的查询数据库;王红剑等[6]编制了自动校对程序,将可能错误及需要重点校对的地方进行标注。
综合以上研究成果,针对本刊实际情况,笔者基于 VBA编写开发了论文自动编校程序,可实现格式调整等一系列功能的自动化。
宏是一系列 Word命令和指令,这些命令和指令组合在一起,形成了一个单独的命令,以实现任务执行的自动化。如果在Microsoft Word中反复执行某项任务,可以使用宏自动执行该任务。
以Word 2016为例,点击视图选项卡中的宏按钮下方的小箭头,选择“录制宏…”,或直接点击窗口最下方的录制宏按钮,输入自定义的名称后即可开始录制一段新的宏。录制过程中,把需要重复使用的操作完整地进行一次,Word就会将这段操作记录下来,转换成相应的 VBA代码,并以输入的名称保存下来,以便后期调用、查看及修改。
在此基础上,通过编写 VBA程序代码,还可以实现 Word现有菜单功能以外的其他自定义功能,如选中全体表格或图片、修改数据的格式、单位标准化、参考文献格式标准化、敏感词高亮提示等。
样式是许多格式的集合体,任何文字段落格式,包括字体字号、段距行距、对齐方式等,都可以整合到一个样式中。样式工具栏位于开始选项卡中,在现有的样式上右键修改格式即可制作样式,或先在页面上对文字设置好格式,然后选中这段文字,在样式上点右键更新该样式以匹配所选内容,即可记录该样式。将标题、作者、单位、正文、参考文献等均按照编辑部的格式要求排好,然后分别记录样式,就得到了合适的样式集,将该样式集另存为新样式集,即可在以后编辑文档时反复调用。图1为结合本刊实际情况设定的样式集。
图1 样式工具栏及其右键菜单Fig.1 Style toolbar and its right-click menu
将样式和宏结合,在录制宏时直接调用事先存好的样式集,可以进一步缩减宏的代码量和运行时间。
通过简单的录制宏即可实现页面、段落和字体等格式的一键化调整。开始宏的录制后,首先选中自定义的样式集,然后根据实际需要设置页边距、段落间距、行间距、字体字号等。这里,可先将全文均设置为正文字体字号,标题等特殊字体在后期编辑校对过程中再逐一选择相应样式调整。
需要注意的是,在使用宏修改文章格式之前,应将文章大致浏览一遍,去除可能会造成程序运行出错的因素,如分隔符、页眉页脚等,将图片位置设置为嵌入文本行中,同时调整文章各部分的顺序,如根据本刊要求,应按照摘要、正文、英文摘要、参考文献的顺序排列等。
科技论文的连续性原则要求图表序号、公式序号、章节序号按照顺序出现,不能中断[2],但在编校过程中,会出现图表的增删或位置移动等情况,这时就需要修改当前图表和接下来所有图表的编号,容易出现遗漏情况。图表编号连续性的自动编校,在减少工作量的同时降低了差错率。为实现这一功能,首先需将自动编号转换为静态编号,具体代码为[1]:
Sub 编号转换()
ActiveDocument.Content.ListFormat.Convert NumbersToText
End Sub
接下来,可通过图片下方第1个非空白段落为图题,表格上方第1个非空白段落为表题的方式识别图题和表题。识别出图题和表题后,即可判断编号是否连续。判断表格编号连贯性的代码如下(这段代码将表格上方未能按顺序标明的表格标题用蓝色突出显示,同时将正文中出现的表格序号也用蓝色突出显示,便于编辑核实是否引用了正确的表格):
Selection.Find.Replacement.Font.Color =wdColorBlue
With Selection.Find
.Text="表^#"
.Replacement.Text=""
.Forward=True
.Wrap=wdFind Continue
……
End With
Selection.Find.Execute Replace:=wd Replace All
For i=1 To Active Document.Tables.Count
Active Document.Tables(i).Cell(1,1).Select
Selection.Move Up
Selection.EndKey unit:=wd Line,Extend:=wd Extend
Selection.Find.Clear Formatting
Selection.Find.Replacement.Clear Formatting
Selection.Find.Replacement.Font.Color=wd Color Black
With Selection.Find
.Text="表" & i & ""
.Replacement.Text=""
.Forward=True
.Wrap=wd Find Stop
……
End With
Selection.Find.Execute Replace:=wd Replace All
Next End Sub
基于类似思路,可完成图标题和公式编号的一致连贯性检查。
作者投递的科技论文稿件中往往存在大量图表,但格式通常不符合编辑部的统一要求,如果逐一修改,工作重复而繁琐,也可以通过编写宏实现批量修改表格和图的格式。要实现这一功能,首先需要选中文章中所有表格和图,选中所有表格可以通过如下代码实现:
Sub Select All Tables ()
Dim temp Table As Table
Application.Screen Updating=False
Active Document.DeleteAll Editable Ranges wd Editor Everyone
For Each temp Table In Active Document.Tables
tempTable.Range.Editors.Add wd Editor Everyone
Next
Active Document.Select All Editable Ranges wd Editor Everyone
Active Document.Delete All Editable Ranges wd Editor Everyone
Application.Screen Updating=True
End Sub
具体表格格式可根据编辑部自身要求通过录制宏记录下来,结合全选表格操作即可实现表格格式的批量修改。选中图片则可以通过查找替换功能的特殊格式-图形实现,而这一操作也可以录制为宏。
编辑部应对新华社公布的禁用词和慎用词予以重视,如《新华社新闻报道中的禁用词》中列出的一百余条词汇,覆盖时政和社会生活、法律法规、民族宗教、国际关系等多个方面,科技期刊中虽然涉及不多,但非常敏感,必须引起重视。专业性较强的科技名词也都有标准的提法要求,如量的中文名称需标准化,避免使用已废弃的名称、跟科学家姓名有关的量名称需采用正确译法、优先使用推荐的名称等。凭经验在通读校对时人为鉴别,难免会有疏漏。为此,建立词汇数据库,将需要注意的词汇添加进数据库中,然后编写宏代码将文章与数据库进行比对,高亮显示可能出错的科技名词和敏感词,以提示编辑注意修改。为实现这一功能,首先用 Excel建立一个相关词汇数据库,如图2所示,然后通过编写程序,将稿件内容与数据库中内容比对,并用蓝色显示数据库中有的词汇。宏代码如下:
Sub术语()
Dim arr1 As String
Dim i As Integer,irows As Long
i=1
Set App1=Create Object("Excel.Application")
Set Book1=App1.Workbooks.Open("D:术语.xlsx")
Set Sheet1=Book1.Worksheets("相关词汇")
irows=Sheet1.UsedRange.Rows.Count
Selection.Find.Clear Formatting
Selection.Find.Replacement.Clear Formatting
For i=2 To irows
arr1=Sheet1.Cells (i,1)
With Selection.Find
.Text=arr1
.Wrap=wdFindContinue
End With
Do While Selection.Find.Execute
Selection.Font.ColorIndex=wdBlue
Loop
Next
Book1.Close (True)
App1.Quit
End Sub
图2 相关词汇Excel数据库Fig.2 Related vocabulary Excel database
可以根据实际情况逐步补充修正数据库,而这一操作不需要修改代码,只要修改 Excel文档即可,编辑部的同事均可协助完成。经过一段时间的积累,汇集了大家的经验,完善的数据库可以提供全面的相关词汇支持,同时电脑程序也可保证不会出现看漏看错的情况。
规定要求,文章中数量和单位之间应由1个空格隔开。这一操作数量巨大,且容易出现疏漏情况。通过查找替换,可简单地实现在数量和单位之间加空格的操作。关键代码如下所示:
With Selection.Find
.Text="([0-9])([a-zA-Z])"
.Replacement.Text="12"
.Forward=True
.Wrap=wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplace All
End Sub
而要实现单位的标准化,如单位的国际符号需规范、大小写正斜体需正确、使用法定单位等,则需要借助与科技名词和敏感词比对类似的方法,建立Excel表格保存常用单位可能的错误形式,与稿件对比后将需要注意的词突出显示,提示编辑修改,程序运行后的最终效果如图3所示。这 2部分可以合用1张表格,以减少程序打开关闭文档次数以及循环查找次数,缩短运行时间。
图3 不规范的术语查找结果Fig.3 Irregular term search results
作者在写稿过程中,可能出现重复字,甚至整句、整段重复的笔误。针对这些问题,添加重复词句查找标注功能,只要有 2段连续的字符是重复的,不管长度多少都会将第 2段字符标注为蓝色。关键代码如下:
Selection.Find.Replacement.Font.Color=wdColorBlue
With Selection.Find
.Text="(?{1})1"
.Replacement.Text=""
.Forward=True
.Wrap=wdFindContinue
End With
Selection.Find.Execute Replace:=wd Replace All
可将编译好的程序复制到其他电脑上供多人使用,包括术语的Excel文档、样式集和VBA代码。其中,Excel文档需按照程序代码中的路径放置。
在默认路径安装Office的情况下,样式集的复制可将设定好的样式集另存为新样式集,然后复制到其他电脑的如下文件夹中。
C:Users用户名AppDataRoamingMicrosoftQuickStyles
VBA代码的复制,首先选中开发工具选项卡—Visual Basic,打开VB编辑器,即可进行代码的导入导出操作,或将代码复制为文本,再在需要的电脑中打开VB编辑器粘贴。
笔者基于 VBA编写开发了论文自动编校程序,根据实际要求设定样式集,在此基础上利用宏的录制功能,结合VBA程序语言编写,实现了页面、段落和字体格式的一键调整,图表等编号的一致性、连贯性检查,表格和图片格式的一键调整,科技名词和敏感词的高亮显示,以及量和单位的规范化,重复词句高亮显示等功能。
在日常编辑工作中实际应用该程序,取得了较好的效果,大幅减少了修改格式等重复劳动,同时减少了编号不连贯、科技名词和单位不规范,以及敏感词等方面的疏漏。后期还有许多可以逐步提高的内容,如分栏、分隔符、页眉页脚等的自动处理,科技名词和敏感词在高亮的同时提示正确的写法,参考文献的规范化,提高程序运行速度等。