毛 星,李艷娜,董 里
(應(yīng)急管理部天津消防研究所 《消防科學(xué)與技術(shù)》編輯部 天津 300381)
科技論文在通過(guò)審稿之后,還需要經(jīng)過(guò)編輯加工、校對(duì)等步驟,才能正式發(fā)表,而編輯校對(duì)工作往往比較繁瑣,容易出現(xiàn)疏漏差錯(cuò),同時(shí)存在大量重復(fù)性勞動(dòng)。隨著投稿逐步實(shí)現(xiàn)以電子版 Word文檔為主,在新技術(shù)條件下的自動(dòng)校對(duì)也成為可能。通過(guò)Word的 VBA宏功能以及樣式功能,可以將日常的格式調(diào)整等工作交由程序自動(dòng)化完成,有利于編輯減少重復(fù)勞動(dòng),將時(shí)間精力用于稿件內(nèi)容審核、了解相關(guān)專(zhuān)業(yè)發(fā)展動(dòng)態(tài)等方面,更好地發(fā)揮編輯的主動(dòng)性、創(chuàng)造性,在程序完善、穩(wěn)定運(yùn)行的情況下,還能夠降低編輯工作的失誤率。
編輯常用的黑馬校對(duì)軟件校對(duì)時(shí)主要集中在字詞的錯(cuò)誤用法和敏感詞的識(shí)別,同時(shí)查錯(cuò)率也有待提高。此外,也有很多同行針對(duì)自己的工作需要研究了VBA在排版校對(duì)中的應(yīng)用。如崔玉潔等[1]通過(guò) VBA技術(shù)實(shí)現(xiàn)了文檔敏感詞、重復(fù)詞句的標(biāo)注及格式調(diào)整;侯修洲等[2-4]利用VBA編程語(yǔ)言實(shí)現(xiàn)了Word文檔的 XML結(jié)構(gòu)化標(biāo)記,并能夠在此基礎(chǔ)上自動(dòng)校對(duì)文檔的連續(xù)性和一致性,同時(shí)自動(dòng)加工參考文獻(xiàn);鄭小光等[5]建立了量名稱(chēng)、符號(hào)、科技名詞等的查詢(xún)數(shù)據(jù)庫(kù);王紅劍等[6]編制了自動(dòng)校對(duì)程序,將可能錯(cuò)誤及需要重點(diǎn)校對(duì)的地方進(jìn)行標(biāo)注。
綜合以上研究成果,針對(duì)本刊實(shí)際情況,筆者基于 VBA編寫(xiě)開(kāi)發(fā)了論文自動(dòng)編校程序,可實(shí)現(xiàn)格式調(diào)整等一系列功能的自動(dòng)化。
宏是一系列 Word命令和指令,這些命令和指令組合在一起,形成了一個(gè)單獨(dú)的命令,以實(shí)現(xiàn)任務(wù)執(zhí)行的自動(dòng)化。如果在Microsoft Word中反復(fù)執(zhí)行某項(xiàng)任務(wù),可以使用宏自動(dòng)執(zhí)行該任務(wù)。
以Word 2016為例,點(diǎn)擊視圖選項(xiàng)卡中的宏按鈕下方的小箭頭,選擇“錄制宏…”,或直接點(diǎn)擊窗口最下方的錄制宏按鈕,輸入自定義的名稱(chēng)后即可開(kāi)始錄制一段新的宏。錄制過(guò)程中,把需要重復(fù)使用的操作完整地進(jìn)行一次,Word就會(huì)將這段操作記錄下來(lái),轉(zhuǎn)換成相應(yīng)的 VBA代碼,并以輸入的名稱(chēng)保存下來(lái),以便后期調(diào)用、查看及修改。
在此基礎(chǔ)上,通過(guò)編寫(xiě) VBA程序代碼,還可以實(shí)現(xiàn) Word現(xiàn)有菜單功能以外的其他自定義功能,如選中全體表格或圖片、修改數(shù)據(jù)的格式、單位標(biāo)準(zhǔn)化、參考文獻(xiàn)格式標(biāo)準(zhǔn)化、敏感詞高亮提示等。
樣式是許多格式的集合體,任何文字段落格式,包括字體字號(hào)、段距行距、對(duì)齊方式等,都可以整合到一個(gè)樣式中。樣式工具欄位于開(kāi)始選項(xiàng)卡中,在現(xiàn)有的樣式上右鍵修改格式即可制作樣式,或先在頁(yè)面上對(duì)文字設(shè)置好格式,然后選中這段文字,在樣式上點(diǎn)右鍵更新該樣式以匹配所選內(nèi)容,即可記錄該樣式。將標(biāo)題、作者、單位、正文、參考文獻(xiàn)等均按照編輯部的格式要求排好,然后分別記錄樣式,就得到了合適的樣式集,將該樣式集另存為新樣式集,即可在以后編輯文檔時(shí)反復(fù)調(diào)用。圖1為結(jié)合本刊實(shí)際情況設(shè)定的樣式集。
圖1 樣式工具欄及其右鍵菜單Fig.1 Style toolbar and its right-click menu
將樣式和宏結(jié)合,在錄制宏時(shí)直接調(diào)用事先存好的樣式集,可以進(jìn)一步縮減宏的代碼量和運(yùn)行時(shí)間。
通過(guò)簡(jiǎn)單的錄制宏即可實(shí)現(xiàn)頁(yè)面、段落和字體等格式的一鍵化調(diào)整。開(kāi)始宏的錄制后,首先選中自定義的樣式集,然后根據(jù)實(shí)際需要設(shè)置頁(yè)邊距、段落間距、行間距、字體字號(hào)等。這里,可先將全文均設(shè)置為正文字體字號(hào),標(biāo)題等特殊字體在后期編輯校對(duì)過(guò)程中再逐一選擇相應(yīng)樣式調(diào)整。
需要注意的是,在使用宏修改文章格式之前,應(yīng)將文章大致瀏覽一遍,去除可能會(huì)造成程序運(yùn)行出錯(cuò)的因素,如分隔符、頁(yè)眉頁(yè)腳等,將圖片位置設(shè)置為嵌入文本行中,同時(shí)調(diào)整文章各部分的順序,如根據(jù)本刊要求,應(yīng)按照摘要、正文、英文摘要、參考文獻(xiàn)的順序排列等。
科技論文的連續(xù)性原則要求圖表序號(hào)、公式序號(hào)、章節(jié)序號(hào)按照順序出現(xiàn),不能中斷[2],但在編校過(guò)程中,會(huì)出現(xiàn)圖表的增刪或位置移動(dòng)等情況,這時(shí)就需要修改當(dāng)前圖表和接下來(lái)所有圖表的編號(hào),容易出現(xiàn)遺漏情況。圖表編號(hào)連續(xù)性的自動(dòng)編校,在減少工作量的同時(shí)降低了差錯(cuò)率。為實(shí)現(xiàn)這一功能,首先需將自動(dòng)編號(hào)轉(zhuǎn)換為靜態(tài)編號(hào),具體代碼為[1]:
Sub 編號(hào)轉(zhuǎn)換()
ActiveDocument.Content.ListFormat.Convert NumbersToText
End Sub
接下來(lái),可通過(guò)圖片下方第1個(gè)非空白段落為圖題,表格上方第1個(gè)非空白段落為表題的方式識(shí)別圖題和表題。識(shí)別出圖題和表題后,即可判斷編號(hào)是否連續(xù)。判斷表格編號(hào)連貫性的代碼如下(這段代碼將表格上方未能按順序標(biāo)明的表格標(biāo)題用藍(lán)色突出顯示,同時(shí)將正文中出現(xiàn)的表格序號(hào)也用藍(lán)色突出顯示,便于編輯核實(shí)是否引用了正確的表格):
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
基于類(lèi)似思路,可完成圖標(biāo)題和公式編號(hào)的一致連貫性檢查。
作者投遞的科技論文稿件中往往存在大量圖表,但格式通常不符合編輯部的統(tǒng)一要求,如果逐一修改,工作重復(fù)而繁瑣,也可以通過(guò)編寫(xiě)宏實(shí)現(xiàn)批量修改表格和圖的格式。要實(shí)現(xiàn)這一功能,首先需要選中文章中所有表格和圖,選中所有表格可以通過(guò)如下代碼實(shí)現(xiàn):
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
具體表格格式可根據(jù)編輯部自身要求通過(guò)錄制宏記錄下來(lái),結(jié)合全選表格操作即可實(shí)現(xiàn)表格格式的批量修改。選中圖片則可以通過(guò)查找替換功能的特殊格式-圖形實(shí)現(xiàn),而這一操作也可以錄制為宏。
編輯部應(yīng)對(duì)新華社公布的禁用詞和慎用詞予以重視,如《新華社新聞報(bào)道中的禁用詞》中列出的一百余條詞匯,覆蓋時(shí)政和社會(huì)生活、法律法規(guī)、民族宗教、國(guó)際關(guān)系等多個(gè)方面,科技期刊中雖然涉及不多,但非常敏感,必須引起重視。專(zhuān)業(yè)性較強(qiáng)的科技名詞也都有標(biāo)準(zhǔn)的提法要求,如量的中文名稱(chēng)需標(biāo)準(zhǔn)化,避免使用已廢棄的名稱(chēng)、跟科學(xué)家姓名有關(guān)的量名稱(chēng)需采用正確譯法、優(yōu)先使用推薦的名稱(chēng)等。憑經(jīng)驗(yàn)在通讀校對(duì)時(shí)人為鑒別,難免會(huì)有疏漏。為此,建立詞匯數(shù)據(jù)庫(kù),將需要注意的詞匯添加進(jìn)數(shù)據(jù)庫(kù)中,然后編寫(xiě)宏代碼將文章與數(shù)據(jù)庫(kù)進(jìn)行比對(duì),高亮顯示可能出錯(cuò)的科技名詞和敏感詞,以提示編輯注意修改。為實(shí)現(xiàn)這一功能,首先用 Excel建立一個(gè)相關(guān)詞匯數(shù)據(jù)庫(kù),如圖2所示,然后通過(guò)編寫(xiě)程序,將稿件內(nèi)容與數(shù)據(jù)庫(kù)中內(nèi)容比對(duì),并用藍(lán)色顯示數(shù)據(jù)庫(kù)中有的詞匯。宏代碼如下:
Sub術(shù)語(yǔ)()
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:術(shù)語(yǔ).xlsx")
Set Sheet1=Book1.Worksheets("相關(guān)詞匯")
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 相關(guān)詞匯Excel數(shù)據(jù)庫(kù)Fig.2 Related vocabulary Excel database
可以根據(jù)實(shí)際情況逐步補(bǔ)充修正數(shù)據(jù)庫(kù),而這一操作不需要修改代碼,只要修改 Excel文檔即可,編輯部的同事均可協(xié)助完成。經(jīng)過(guò)一段時(shí)間的積累,匯集了大家的經(jīng)驗(yàn),完善的數(shù)據(jù)庫(kù)可以提供全面的相關(guān)詞匯支持,同時(shí)電腦程序也可保證不會(huì)出現(xiàn)看漏看錯(cuò)的情況。
規(guī)定要求,文章中數(shù)量和單位之間應(yīng)由1個(gè)空格隔開(kāi)。這一操作數(shù)量巨大,且容易出現(xiàn)疏漏情況。通過(guò)查找替換,可簡(jiǎn)單地實(shí)現(xiàn)在數(shù)量和單位之間加空格的操作。關(guān)鍵代碼如下所示:
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
而要實(shí)現(xiàn)單位的標(biāo)準(zhǔn)化,如單位的國(guó)際符號(hào)需規(guī)范、大小寫(xiě)正斜體需正確、使用法定單位等,則需要借助與科技名詞和敏感詞比對(duì)類(lèi)似的方法,建立Excel表格保存常用單位可能的錯(cuò)誤形式,與稿件對(duì)比后將需要注意的詞突出顯示,提示編輯修改,程序運(yùn)行后的最終效果如圖3所示。這 2部分可以合用1張表格,以減少程序打開(kāi)關(guān)閉文檔次數(shù)以及循環(huán)查找次數(shù),縮短運(yùn)行時(shí)間。
圖3 不規(guī)范的術(shù)語(yǔ)查找結(jié)果Fig.3 Irregular term search results
作者在寫(xiě)稿過(guò)程中,可能出現(xiàn)重復(fù)字,甚至整句、整段重復(fù)的筆誤。針對(duì)這些問(wèn)題,添加重復(fù)詞句查找標(biāo)注功能,只要有 2段連續(xù)的字符是重復(fù)的,不管長(zhǎng)度多少都會(huì)將第 2段字符標(biāo)注為藍(lán)色。關(guān)鍵代碼如下:
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
可將編譯好的程序復(fù)制到其他電腦上供多人使用,包括術(shù)語(yǔ)的Excel文檔、樣式集和VBA代碼。其中,Excel文檔需按照程序代碼中的路徑放置。
在默認(rèn)路徑安裝Office的情況下,樣式集的復(fù)制可將設(shè)定好的樣式集另存為新樣式集,然后復(fù)制到其他電腦的如下文件夾中。
C:Users用戶(hù)名AppDataRoamingMicrosoftQuickStyles
VBA代碼的復(fù)制,首先選中開(kāi)發(fā)工具選項(xiàng)卡—Visual Basic,打開(kāi)VB編輯器,即可進(jìn)行代碼的導(dǎo)入導(dǎo)出操作,或?qū)⒋a復(fù)制為文本,再在需要的電腦中打開(kāi)VB編輯器粘貼。
筆者基于 VBA編寫(xiě)開(kāi)發(fā)了論文自動(dòng)編校程序,根據(jù)實(shí)際要求設(shè)定樣式集,在此基礎(chǔ)上利用宏的錄制功能,結(jié)合VBA程序語(yǔ)言編寫(xiě),實(shí)現(xiàn)了頁(yè)面、段落和字體格式的一鍵調(diào)整,圖表等編號(hào)的一致性、連貫性檢查,表格和圖片格式的一鍵調(diào)整,科技名詞和敏感詞的高亮顯示,以及量和單位的規(guī)范化,重復(fù)詞句高亮顯示等功能。
在日常編輯工作中實(shí)際應(yīng)用該程序,取得了較好的效果,大幅減少了修改格式等重復(fù)勞動(dòng),同時(shí)減少了編號(hào)不連貫、科技名詞和單位不規(guī)范,以及敏感詞等方面的疏漏。后期還有許多可以逐步提高的內(nèi)容,如分欄、分隔符、頁(yè)眉頁(yè)腳等的自動(dòng)處理,科技名詞和敏感詞在高亮的同時(shí)提示正確的寫(xiě)法,參考文獻(xiàn)的規(guī)范化,提高程序運(yùn)行速度等。