尚寶欣 宮以赫 Zhu Zhenju
([1]東北電力大學(xué)理學(xué)院 吉林·吉林 132012;[2]Kunsan National University Kunsan Jeollabuk-do Korea 54150)
EverEdit是一款由中國(guó)個(gè)人開(kāi)發(fā)的快速、輕量級(jí)、功能強(qiáng)大的純文本編輯器。通過(guò)設(shè)置“外部工具”可將它作為C、Java、PHP等語(yǔ)言的一個(gè)輕量級(jí)的IDE。
它的優(yōu)點(diǎn)有啟動(dòng)速度快、界面簡(jiǎn)潔、代碼高亮完善、代碼及關(guān)鍵字自動(dòng)補(bǔ)全等等。另外還有可自定義的代碼片段自動(dòng)補(bǔ)全功能、代碼折疊功能、大綱顯示功能,它們使得用戶(hù)可針對(duì)不同類(lèi)型的源文件進(jìn)行個(gè)性化設(shè)置。
TeX是20世紀(jì)70年代末80年代初,Donald Knuth為排版他的計(jì)算機(jī)科學(xué)巨著《The Art of Computer Programming》而設(shè)計(jì)的一個(gè)特別適合于編排高質(zhì)量數(shù)學(xué)公式的排版語(yǔ)言。LaT-eX是由TeX命令構(gòu)成的宏集合,使用它們,作者們可方便地排版出高質(zhì)量的作品,現(xiàn)在在出版界和學(xué)術(shù)界得到了廣泛使用;絕大部分SCI期刊雜志都要求作者按照LaTeX模板編寫(xiě)論文[1]。
文獻(xiàn)[2]使用EditPlus針對(duì)符號(hào)計(jì)算軟件Singuar源代碼的編寫(xiě)與運(yùn)行進(jìn)行了個(gè)性化設(shè)置。以文獻(xiàn)[2]為參考,本文在EverEdit中實(shí)現(xiàn)對(duì)LaTeX編輯編譯的設(shè)置,從而把EverEdit變成LaTeX的一個(gè)簡(jiǎn)潔的IDE。
用EverEdit編輯LaTeX文件,要充分利用EverEdit自帶的語(yǔ)法高亮、自定義代碼片段自動(dòng)補(bǔ)全命令、自定義大綱顯示等功能才能充分發(fā)揮該軟件的優(yōu)勢(shì),從而提高編輯效率、方便編譯運(yùn)行。語(yǔ)法著色文件選用安裝目錄下面syntax目錄中的tex.mac文件(它是系統(tǒng)自帶文件,為了自定義大綱顯示,我們對(duì)它進(jìn)行了局部修改)。其設(shè)置過(guò)程為:工具→設(shè)置→語(yǔ)法著色。文件類(lèi)型選TeX/LaTeX,相應(yīng)的語(yǔ)法文件選擇tex.mac。
代碼片段自動(dòng)補(bǔ)全是IDE必備的功能之一,它通過(guò)鍵入的少量字符來(lái)完成整個(gè)語(yǔ)句或語(yǔ)法結(jié)構(gòu)輸入,該功能不但可以減少使用者的記憶工作量,還極大地提升了編寫(xiě)準(zhǔn)確率。LaTeX的默認(rèn)編輯工具WinEdt中提供代碼片段功能較為單一,例如:可使用egin{a}}來(lái)完成egin{a}*end{a}的輸入。顯然該輸入方式復(fù)雜且靈活性差,且對(duì)于非環(huán)境性結(jié)構(gòu)無(wú)法補(bǔ)全。在EverEdit中可通過(guò)簡(jiǎn)單的設(shè)置使它對(duì).tex文件具有強(qiáng)大的代碼片段自動(dòng)補(bǔ)全功能,且還能具有Eclipse、NetBeans等大型IDE的熱點(diǎn)導(dǎo)航功能。
EverEdit未提供針對(duì).tex文件的代碼片段自動(dòng)補(bǔ)全文件。我們創(chuàng)建文件TeX.snippet,在該文件中定義了114個(gè)代碼片段用來(lái)進(jìn)行自動(dòng)補(bǔ)全。為使自動(dòng)補(bǔ)全功能只對(duì).tex類(lèi)型的文件可用,在tex.mac文件加入:
tex.AddSnippet"TeX.snippet"
文件TeX.snippet中的一個(gè)自動(dòng)補(bǔ)全代碼塊的形式一般由三個(gè)部分組成
(1)#t=title,author,date
(2)#g=title
(3)title{${1:title}}
author{${2:author}}
date{${3:date}}
$0
鍵入第2部分“#g=”后面的單詞(title)后,第1部分“#t=”后的內(nèi)容作為提示(見(jiàn)圖1)出現(xiàn),此時(shí)按Tab鍵,第3部分中內(nèi)容替換第2部分“#g=”后面的單詞,其效果見(jiàn)圖2。對(duì)常用的結(jié)構(gòu)進(jìn)行上述設(shè)置可大大減輕大腦記憶代碼的負(fù)擔(dān),極大地提高代碼編輯的速度。
圖1:鍵入title后的提示框
圖2:自動(dòng)補(bǔ)全效果
另外,注意${1:title}、${2:author}、${3:date}、$0表示變量,前兩個(gè)表示在第3部分之中需要修改的內(nèi)容。通過(guò) Tab或Shift+Tab鍵可使光標(biāo)在它們之間切換。最后光標(biāo)會(huì)定格在$0所在的位置,即可用EverEdit實(shí)現(xiàn)Eclipse、NetBeans等大型IDE工具所具有的熱點(diǎn)導(dǎo)航功能。
EverEdit具有能對(duì)章節(jié)內(nèi)容進(jìn)行快速定位的功能:自定義顯示大綱功能。編寫(xiě)腳本文件“TeX大綱.mac”,在“工具→設(shè)置→語(yǔ)法著色→高級(jí)”中,將顯示大綱的方式選擇為“用腳本解析”,在下面的用腳本去解析中選擇“TeX大綱.mac”。這樣,EverEdit會(huì)自動(dòng)檢測(cè)文件中的大綱文本,其效果見(jiàn)圖3。
圖3:自定義顯示大綱效果圖
我們共定義了 part、chapter、section、subsection 和 subsubsection五級(jí)大綱,為了顯示方便,上圖中只使用了三級(jí)大綱。
編輯完LaTeX源文件后,需要pdflatex.exe或ctex.exe等命令去處理源文件才能得到DVI、PS或PDF文件。當(dāng)在文件中使用交叉引用或參考文獻(xiàn)的時(shí)候,在WinEdt中,需按固定的順序點(diǎn)擊兩個(gè)或更多的菜單或按鈕才能完成最后文件的生成。方便起見(jiàn),先將它們?nèi)繉?xiě)入一個(gè)批處理文件,再把批處理文件添加在EverEdit的外部工具中,這樣只需一個(gè)命令就可生成相應(yīng)的PDF或者PS文件。
例如,為得到含交叉引用的PDF文件,需編譯正文兩次才能得到完整的DVI文件。這樣,LaTeX保證所有交叉引用正確列出。為只用一個(gè)命令就能完成上述功能,將以下命令編寫(xiě)在文件MyBibLaTex.bat中:
這樣,打開(kāi)一個(gè)TeX文件之后,直接點(diǎn)擊CrossReference按鈕就可得到含有交叉引用的PS文件和PDF文件。
此外,使用類(lèi)似的方式創(chuàng)建生成使用參數(shù)文獻(xiàn)、生成帶中文標(biāo)簽、生成指定頁(yè)面大小的PDF文件的命令。我們一共制作了14個(gè)菜單命令。
靈活使用EverEdit的關(guān)鍵字補(bǔ)全、上下文單詞補(bǔ)全、代碼片段自動(dòng)補(bǔ)全和熱點(diǎn)導(dǎo)航功,可較好的提高編輯TeX源文件的速度與質(zhì)量。使用自定義顯示大綱功能可實(shí)現(xiàn)章節(jié)內(nèi)容的快速定位。使用EverEdit中外部工具功能可使原本在WinEdt中需要多個(gè)步驟才能完成的操作在EverEdit中一鍵式完成。這使源文件編寫(xiě)者將更多的精力集中在內(nèi)容的編寫(xiě),有助于提升工作的效率與質(zhì)量。