毛 星,李艷娜,董 里
(應急管理部天津消防研究所 《消防科學與技術》編輯部 天津 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程序語言編寫,實現了頁面、段落和字體格式的一鍵調整,圖表等編號的一致性、連貫性檢查,表格和圖片格式的一鍵調整,科技名詞和敏感詞的高亮顯示,以及量和單位的規范化,重復詞句高亮顯示等功能。
在日常編輯工作中實際應用該程序,取得了較好的效果,大幅減少了修改格式等重復勞動,同時減少了編號不連貫、科技名詞和單位不規范,以及敏感詞等方面的疏漏。后期還有許多可以逐步提高的內容,如分欄、分隔符、頁眉頁腳等的自動處理,科技名詞和敏感詞在高亮的同時提示正確的寫法,參考文獻的規范化,提高程序運行速度等。