尚寶欣 宮以赫 Zhu Zhenju
([1]東北電力大學理學院 吉林·吉林 132012;[2]Kunsan National University Kunsan Jeollabuk-do Korea 54150)
EverEdit是一款由中國個人開發的快速、輕量級、功能強大的純文本編輯器。通過設置“外部工具”可將它作為C、Java、PHP等語言的一個輕量級的IDE。
它的優點有啟動速度快、界面簡潔、代碼高亮完善、代碼及關鍵字自動補全等等。另外還有可自定義的代碼片段自動補全功能、代碼折疊功能、大綱顯示功能,它們使得用戶可針對不同類型的源文件進行個性化設置。
TeX是20世紀70年代末80年代初,Donald Knuth為排版他的計算機科學巨著《The Art of Computer Programming》而設計的一個特別適合于編排高質量數學公式的排版語言。LaT-eX是由TeX命令構成的宏集合,使用它們,作者們可方便地排版出高質量的作品,現在在出版界和學術界得到了廣泛使用;絕大部分SCI期刊雜志都要求作者按照LaTeX模板編寫論文[1]。
文獻[2]使用EditPlus針對符號計算軟件Singuar源代碼的編寫與運行進行了個性化設置。以文獻[2]為參考,本文在EverEdit中實現對LaTeX編輯編譯的設置,從而把EverEdit變成LaTeX的一個簡潔的IDE。
用EverEdit編輯LaTeX文件,要充分利用EverEdit自帶的語法高亮、自定義代碼片段自動補全命令、自定義大綱顯示等功能才能充分發揮該軟件的優勢,從而提高編輯效率、方便編譯運行。語法著色文件選用安裝目錄下面syntax目錄中的tex.mac文件(它是系統自帶文件,為了自定義大綱顯示,我們對它進行了局部修改)。其設置過程為:工具→設置→語法著色。文件類型選TeX/LaTeX,相應的語法文件選擇tex.mac。
代碼片段自動補全是IDE必備的功能之一,它通過鍵入的少量字符來完成整個語句或語法結構輸入,該功能不但可以減少使用者的記憶工作量,還極大地提升了編寫準確率。LaTeX的默認編輯工具WinEdt中提供代碼片段功能較為單一,例如:可使用egin{a}}來完成egin{a}*end{a}的輸入。顯然該輸入方式復雜且靈活性差,且對于非環境性結構無法補全。在EverEdit中可通過簡單的設置使它對.tex文件具有強大的代碼片段自動補全功能,且還能具有Eclipse、NetBeans等大型IDE的熱點導航功能。
EverEdit未提供針對.tex文件的代碼片段自動補全文件。我們創建文件TeX.snippet,在該文件中定義了114個代碼片段用來進行自動補全。為使自動補全功能只對.tex類型的文件可用,在tex.mac文件加入:
tex.AddSnippet"TeX.snippet"
文件TeX.snippet中的一個自動補全代碼塊的形式一般由三個部分組成
(1)#t=title,author,date
(2)#g=title
(3)title{${1:title}}
author{${2:author}}
date{${3:date}}
$0
鍵入第2部分“#g=”后面的單詞(title)后,第1部分“#t=”后的內容作為提示(見圖1)出現,此時按Tab鍵,第3部分中內容替換第2部分“#g=”后面的單詞,其效果見圖2。對常用的結構進行上述設置可大大減輕大腦記憶代碼的負擔,極大地提高代碼編輯的速度。

圖1:鍵入title后的提示框

圖2:自動補全效果
另外,注意${1:title}、${2:author}、${3:date}、$0表示變量,前兩個表示在第3部分之中需要修改的內容。通過 Tab或Shift+Tab鍵可使光標在它們之間切換。最后光標會定格在$0所在的位置,即可用EverEdit實現Eclipse、NetBeans等大型IDE工具所具有的熱點導航功能。
EverEdit具有能對章節內容進行快速定位的功能:自定義顯示大綱功能。編寫腳本文件“TeX大綱.mac”,在“工具→設置→語法著色→高級”中,將顯示大綱的方式選擇為“用腳本解析”,在下面的用腳本去解析中選擇“TeX大綱.mac”。這樣,EverEdit會自動檢測文件中的大綱文本,其效果見圖3。

圖3:自定義顯示大綱效果圖
我們共定義了 part、chapter、section、subsection 和 subsubsection五級大綱,為了顯示方便,上圖中只使用了三級大綱。
編輯完LaTeX源文件后,需要pdflatex.exe或ctex.exe等命令去處理源文件才能得到DVI、PS或PDF文件。當在文件中使用交叉引用或參考文獻的時候,在WinEdt中,需按固定的順序點擊兩個或更多的菜單或按鈕才能完成最后文件的生成。方便起見,先將它們全部寫入一個批處理文件,再把批處理文件添加在EverEdit的外部工具中,這樣只需一個命令就可生成相應的PDF或者PS文件。
例如,為得到含交叉引用的PDF文件,需編譯正文兩次才能得到完整的DVI文件。這樣,LaTeX保證所有交叉引用正確列出。為只用一個命令就能完成上述功能,將以下命令編寫在文件MyBibLaTex.bat中:

這樣,打開一個TeX文件之后,直接點擊CrossReference按鈕就可得到含有交叉引用的PS文件和PDF文件。
此外,使用類似的方式創建生成使用參數文獻、生成帶中文標簽、生成指定頁面大小的PDF文件的命令。我們一共制作了14個菜單命令。
靈活使用EverEdit的關鍵字補全、上下文單詞補全、代碼片段自動補全和熱點導航功,可較好的提高編輯TeX源文件的速度與質量。使用自定義顯示大綱功能可實現章節內容的快速定位。使用EverEdit中外部工具功能可使原本在WinEdt中需要多個步驟才能完成的操作在EverEdit中一鍵式完成。這使源文件編寫者將更多的精力集中在內容的編寫,有助于提升工作的效率與質量。