国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于LaTeX的高校畢業(yè)論文在線自動編排系統(tǒng)的設(shè)計與實現(xiàn)

2023-01-31 08:55孫祥輝孫道強
計算機應(yīng)用與軟件 2022年12期
關(guān)鍵詞:畢業(yè)論文章節(jié)參考文獻

孫祥輝 楊 雨 孫道強

(平頂山學(xué)院計算機學(xué)院 河南 平頂山 467000)

0 引 言

撰寫畢業(yè)論文是高校學(xué)生完成學(xué)業(yè)的重要環(huán)節(jié),我國高校畢業(yè)論文有規(guī)定的格式及要求,雖然使用一般的編輯排版軟件也能夠完成,但是都相當(dāng)麻煩、耗時。如使用文檔編輯排版軟件WORD或WPS撰寫畢業(yè)論文總是花費師生大量寶貴時間去調(diào)整文章的格式,十分不方便,并且耗費精力。因此,研究并設(shè)計一套適用、便捷的高校畢業(yè)論文編輯和自動排版系統(tǒng)具有重要的現(xiàn)實意義。

目前,關(guān)于在線文檔的編排,國內(nèi)外有了一些相關(guān)的研究及產(chǎn)品,比如谷歌的在線文檔編輯平臺Google Docs、Overleaf的在線LaTeX論文共享編輯平臺、百度文檔、騰訊文檔、釘釘文檔,上述相關(guān)平臺要么對中文論文的支持不太友好,要么不太滿足高校畢業(yè)生的畢業(yè)論文撰寫格式需求。Bahls等[1]研究了LaTeX軟件對科學(xué)、技術(shù)、工程和數(shù)學(xué)方向本科生論文寫作過程的影響。Gong等[2]研究了利用VBA采用OLE自動化技術(shù)進行格式調(diào)整的探索。魏子然[3]研究Tex環(huán)境排版系統(tǒng)下的多語言文檔排版的開發(fā)。Déjean等[4]研究了面向PDF的內(nèi)容和格式抽取的工作。王福貴等[5]研究并搭建了基于ASP.NET的在線LaTeX編譯環(huán)境,為在線題庫和數(shù)學(xué)公式系統(tǒng)的開發(fā)提供了思路,但該系統(tǒng)不支持畢業(yè)論文的編輯和排版。張釕[6]研究了PapersCloud平臺的設(shè)計和搭建并提供了三種編輯科研論文的方式,為科研人員在線編排論文提供了方便,但該平臺在高校畢業(yè)論文的課題申報、選題管理、過程管理、答辯、推優(yōu)等管理對接方面比較欠缺。黃嵐[7]結(jié)合自己多年從事編輯工作的經(jīng)驗,探討了在科技論文排版中使用可視化LaTeX編輯器LyX模板的體會。此外,國內(nèi)不少“雙一流”高?;径加凶约旱腖aTeX畢業(yè)論文模板,但是基本上都是本地版本,需要學(xué)生在本地安裝Tex編譯軟件,且要求學(xué)生掌握很多LaTeX命令才可以使用,無形之中又增加了學(xué)生的負擔(dān),進而限制了很多文科專業(yè)學(xué)生的推廣和使用,因此亟待設(shè)計并開發(fā)一款可定制化、方便易用的基于LaTeX的高校畢業(yè)論文在線自動編排系統(tǒng)。

LaTeX是由Leslie Lamport開發(fā)的Tex擴展命令集合,可以使文章內(nèi)容與排版格式分離,由于LaTeX在數(shù)學(xué)公式顯示、論文結(jié)構(gòu)排版方面的出色效果,已成為國際學(xué)術(shù)論文發(fā)表的主流文稿準(zhǔn)備格式[8-13]。眾多期刊都提供專用的排版和參考文獻類包文件供投稿者下載并快速格式化手稿為擬投稿標(biāo)準(zhǔn)格式,然而,目前大多數(shù)期刊都沒提供在線編排功能,LaTeX編排工作基本都是在本地完成然后上傳到投稿系統(tǒng)。此外,LaTeX需要使用者在計算機編程方面有一些基礎(chǔ),且其在所見即所得方面還比較欠缺,這樣在一定程度上限制了基于LaTeX的排版系統(tǒng)的推廣和使用。為此,本文采用B/S架構(gòu)與MVC設(shè)計模式開發(fā)一套基于LaTeX的高校論文在線自動編排系統(tǒng)(簡稱細思(Thesis)論文在線編排系統(tǒng)),輔助師生在掌握少量LaTeX知識甚至零基礎(chǔ)的情況下使用該系統(tǒng)輕松完成畢業(yè)論文的編輯排版工作,將主要注意力投入到論文內(nèi)容質(zhì)量提升上去,撰寫出更高質(zhì)量的畢業(yè)論文。

1 項目概述

1.1 開發(fā)環(huán)境

項目運行環(huán)境采用Tex的發(fā)行版MikTex,在Windows系統(tǒng)下使用命令XeLaTeX和BibTex編譯Tex源文件及參考文獻生成PDF文件。使用安全性和穩(wěn)定性都比較好的Java語言作為開發(fā)語言,同時使用輕便的開源數(shù)據(jù)庫MySQL進行數(shù)據(jù)存儲和管理,用Chrome瀏覽器或360瀏覽器極速模式進行生成PDF文件的在線預(yù)覽。整個開發(fā)平臺采用開源軟件Eclipse進行搭建與實現(xiàn)。

1.2 主要開發(fā)工具及技術(shù)

(1) MikTex:Tex是由Donald Knuth創(chuàng)造的基于底層編程語言的電子排版系統(tǒng),MikTex是目前常用的Tex編譯引擎,可以邊下邊編譯,在編譯過程中缺少哪個sty文件可實時下載,比較方便。

(2) Java:Sun公司推出的一種簡單、安全、穩(wěn)定、跨平臺且開源編程語言,廣泛應(yīng)用于企業(yè)級Web應(yīng)用開發(fā)和移動應(yīng)用開發(fā)。

(3) Eclipse IDE:一款著名的跨平臺開源集成開發(fā)環(huán)境軟件,通過插件可以擴展包括Java在內(nèi)的主流編程語言的開發(fā)工作。

(4) BootStrap4:來自Twitter,包含了豐富的Web組件,利用這些組件,可以快速地搭建一個漂亮、功能完備的網(wǎng)站。

(5) Ajax:通過在后臺與服務(wù)器進行少量數(shù)據(jù)交換,Ajax可以使網(wǎng)頁實現(xiàn)異步更新。在不刷新整體頁面的情況下加載部分組件,進而實現(xiàn)本系統(tǒng)的交互。

(6) SSH:一種流行的Web應(yīng)用程序開源框架,支持?jǐn)?shù)據(jù)庫移植,穩(wěn)定程度高同時后期維護時需求技術(shù)成本低。

(7) PDFObject.js:一款開源的嵌入PDF組件,實現(xiàn)PDF文件的簡單在線預(yù)覽功能。

(8) Apache Commons Exec:Java進程管理工具,調(diào)用外部進程實現(xiàn)編譯功能,也是本系統(tǒng)中調(diào)用LaTeX軟件的關(guān)鍵技術(shù)。

2 總體框架及特色

2.1 系統(tǒng)的體系結(jié)構(gòu)

細思(Thesis)論文在線編排系統(tǒng)后臺使用的是SSH架構(gòu)搭建的服務(wù)器,前端是基于MVC的設(shè)計思想,采用MySQL數(shù)據(jù)庫存儲用戶論文信息。前端和后臺之間利用請求響應(yīng)修改數(shù)據(jù)進而修改論文的Tex源文件,實現(xiàn)了數(shù)據(jù)的動態(tài)更新。使用JAVA語言開發(fā)Web項目,用戶無須搭建LaTeX運行環(huán)境即可實現(xiàn)在線編輯和排版論文,其編譯運行的流程如圖1所示。

圖1 系統(tǒng)流程

2.2 系統(tǒng)模塊劃分和特色

為了實現(xiàn)系統(tǒng)層次分明,減少耦合,系統(tǒng)總體劃分為三部分:文件管理模塊、LaTeX引擎宏封裝模塊、數(shù)據(jù)編輯模塊。

(1) 文件管理模塊:創(chuàng)建、修改論文的Tex源文件以及呈列生成的文件。在編譯論文的Tex源文件之前,該模塊獲取論文信息創(chuàng)建或者修改Tex源文件,待系統(tǒng)編譯完成后該模塊清除多余編譯文件,呈列出生成的論文文件以便下載。

(2) LaTeX引擎封裝宏包模塊:用于實現(xiàn)對LaTeX功能模塊的宏封裝,快速創(chuàng)建LaTeX的圖、表、引用等功能代碼,簡化LaTeX語言的使用。

(3) 數(shù)據(jù)編輯模塊:通過Web頁面實現(xiàn)對論文各個模塊信息的修改與添加,結(jié)合LaTeX排版系統(tǒng)格式與內(nèi)容分離的特性實現(xiàn)模塊的修改不影響其他模塊的排版效果。

按照功能將系統(tǒng)的模塊進行劃分,如圖2所示。

圖2 系統(tǒng)功能模塊劃分

2.3 數(shù)據(jù)庫的設(shè)計

以論文的不同模塊劃分實體,所有實體通過user_id外鍵與當(dāng)前用戶綁定,通過用戶id可將該用戶的一篇論文的所有模塊組合起來形成一篇完整的論文,表與表之間相互獨立且被唯一主鍵標(biāo)識符合數(shù)據(jù)庫表設(shè)計第三范式,保證了數(shù)據(jù)的低冗余,消除了表之間的傳遞依賴,系統(tǒng)的E-R圖如圖3所示。

圖3 系統(tǒng)E-R圖

對應(yīng)于系統(tǒng)的功能模塊劃分,數(shù)據(jù)庫共設(shè)計了9張表。每個表的詳細信息見表1。

表1 數(shù)據(jù)庫表信息

續(xù)表1

3 關(guān)鍵技術(shù)的設(shè)計及實現(xiàn)

3.1 宏替換編輯器

LaTeX排版的強大和關(guān)鍵之處在于LaTeX標(biāo)簽語言命令,但是命令眾多不易記憶且論文章節(jié)的內(nèi)容是復(fù)雜的、不確定的,涉及節(jié)、小節(jié)、圖片、表格、公式、列表、各種數(shù)學(xué)環(huán)境、算法環(huán)境、抄錄環(huán)境及引用等眾多元素。因此為降低沒有代碼基礎(chǔ)的使用者的門檻,細思(Thesis)論文在線編排系統(tǒng)利用BoosStrap4開發(fā)設(shè)計了一個模態(tài)框編輯器,簡稱LaTeX模板引擎宏替換編輯器,如圖4所示,通過點擊對應(yīng)的圖標(biāo)按鈕并記錄光標(biāo)位置,調(diào)用JavaSrcipt創(chuàng)建并插入LaTeX模板引擎宏命令到Textarea組件(論文編輯框)中選中的位置。通過該編輯器還可以初始化LaTeX命令環(huán)境的相關(guān)參數(shù)。對于熟悉LaTeX命令的用戶,可在章節(jié)內(nèi)容中書寫更加美觀的LaTeX排版命令。

圖4 LaTeX模板引擎宏替換編輯器

例如,在創(chuàng)建論文章節(jié)時,用戶可點擊編輯器工具欄中的小節(jié)、小小節(jié)按鈕分別輸入小節(jié)、小小節(jié)的名稱,系統(tǒng)將會創(chuàng)建小節(jié)(subsection{小節(jié)})與小小節(jié)(subsubsection{})的LaTeX命令,實現(xiàn)小節(jié)的創(chuàng)建,同時宏替換編輯器會自動生成該對應(yīng)節(jié)的引用名label{sec:UUID},如果需要修改節(jié)名稱,通過修改{}中的文字即可。系統(tǒng)編譯源文件時,文章中的章節(jié)與其小節(jié)將會被自動編號。

點擊圖片按鈕,選擇圖片并提交后,系統(tǒng)根據(jù)文件路徑生成以下圖片環(huán)境,其LaTeX的模板代碼如圖5所示。

圖5 插入圖片

上述代碼中caption{圖片名稱}用于設(shè)置圖片的名稱、label{pic:UUID}用于設(shè)置圖片引用標(biāo)識,同時在用戶點擊時光標(biāo)所在位置生成 ef{pic:UUID}標(biāo)簽命令用于自動引用當(dāng)前插入的圖片,其中UUID是使用算法生成的32位字符串,它能保證同一篇論文的label標(biāo)識符不會因為重復(fù)而產(chǎn)生引用錯誤。如需調(diào)整圖的顯示位置,修改自由組合調(diào)整htbp即可,實現(xiàn)圖顯示在代碼所在頁的當(dāng)前位置h、頂部t、底部b或者該頁的任意位置p。

此外,針對理工科論文需要輸入眾多數(shù)學(xué)公式的問題,為避免記憶大量的LaTeX符號,用戶可以首先點擊公式環(huán)境按鈕,就會生成一個公式環(huán)境,同時產(chǎn)生一個引用標(biāo)記label{equ:UIUD},通過MathType編輯軟件(或者WPS教育版LaTeX公式)獲取對應(yīng)公式的LaTeX代碼,然后復(fù)制公式到LaTeX編輯環(huán)境中即可,在需要引用它的地方使用 ef{equ:UIUD}命令就可實現(xiàn)對公式的自動排序和引用。

論文中代表性的元素還有表格和列表,需要用戶傳入初始化參數(shù)來初始化表格、列表并自動生成對應(yīng)的LaTeX語言宏替換,如表格環(huán)境接收參數(shù)后就可以創(chuàng)建出m行n列的表格,效果如圖6所示。同時表格環(huán)境與圖片環(huán)境相似,都存在label與caption標(biāo)簽用于引用與聲明表格名稱,該模塊里也通過算法保證對應(yīng)表格序號不會產(chǎn)生重復(fù)標(biāo)示的功能。

圖6 插入表格

3.2 系統(tǒng)編譯和及時編譯功能

由于Java語言具有強大的靈活性與兼容性,同時安全性比較高,因此本系統(tǒng)利用Java Web服務(wù)器調(diào)用LaTeX編譯引擎來實現(xiàn)Tex源文件的編譯。傳統(tǒng)的外部程序調(diào)用通過Runtime類調(diào)用exe可執(zhí)行文件的方式,但在執(zhí)行CMD命令有一些缺點,例如當(dāng)程序的執(zhí)行存在大量輸出時會造成線程的阻塞,而當(dāng)程序執(zhí)行異常時因為錯誤輸出流沒有被接收同樣也會導(dǎo)致線程的阻塞。

為了解決上述的問題,在本系統(tǒng)中使用了第三方開源項目CommandExec,Apache Commons Exec的多線程操作模式。自動創(chuàng)建三個進程來處理執(zhí)行標(biāo)準(zhǔn)輸入流,標(biāo)準(zhǔn)輸出流和錯誤輸出流,用來避免程序運行阻塞問題。

用戶使用系統(tǒng)的生成文件模塊編譯論文的Tex源文件,通過調(diào)用自定義的工具類CreateMode讀取數(shù)據(jù)庫中的相關(guān)信息,創(chuàng)建或更新用戶的Tex源文件,最后通過Commons Exec功能類調(diào)用LaTeX的編譯命令對用戶的Tex源文件進行編譯,生成論文的PDF文件。使用CommandExec調(diào)用LaTeX編譯引擎的代碼片段如下:

//獲取調(diào)用工具

CommandLine=CommandLine.parse

("cmd/c cd"+filepath+" & xeLaTeX main.Tex");

DefaulTexecutor executor=new DefaulTexecutor();

//創(chuàng)建輸出流用于接收錯誤信息

ByteArrayOutputStream bos

=newByteArrayOutputStream();

executor.setStreamHandler

(new PumpStreamHandler(bos,bos));

try {

//執(zhí)行調(diào)用獲取返回值

exitValue=executor.execute(CommandLine)

}

catch (ExecuteException e)

{log.info(e.tostring());

}

系統(tǒng)編譯時調(diào)用該方法,當(dāng)編譯結(jié)果返回為0時代表第一次的編譯順利完成,為了生成論文目錄,系統(tǒng)開始第二次編譯,返回為0時代表第二次的編譯也順利通過,當(dāng)返回值為1時,代表編譯過程中發(fā)生錯誤,系統(tǒng)開始進行異常處理,接收編譯時產(chǎn)生的錯誤信息,并將錯誤信息保存在當(dāng)前用戶的錯誤日志文件中,返回錯誤提示告知用戶查看錯誤日志,結(jié)束當(dāng)前編譯進程。

為了便于及時編譯、預(yù)覽單個章節(jié)的排版效果,修改有誤的地方,本系統(tǒng)編譯窗口采用異步加載模式,用戶點擊編譯按鈕后可繼續(xù)撰寫章節(jié)內(nèi)容而不用等待編譯過程,待章節(jié)編譯完成后右面的編譯窗口自動刷新顯示該章排版效果。及時編譯模塊界面如圖7和圖8所示。

圖7 及時編譯(左部分)

圖8 及時編譯(右部分)

3.3 參考文獻的編排

使用ibitem[顯示符號]{引用標(biāo)簽}可簡單實現(xiàn)LaTeX的參考文獻引用,但不能保證參考文獻的引用順序與最終的參考文獻列表順序一致。本系統(tǒng)通過建立BibTex數(shù)據(jù)庫的方式來實現(xiàn)靈活的文獻引用,格式使用國標(biāo)GB/TB7714-2005《文后參考文獻著錄規(guī)則》所對應(yīng)的bst文件(當(dāng)然也可以是自定義文獻格式)確保學(xué)位論文里參考文獻符合國家規(guī)范。

系統(tǒng)提供BibTex文獻格式的輸入表單,如圖9所示,表單包括引用標(biāo)識、文獻顯示名(便于使用者區(qū)別不同的參考文獻)、文獻內(nèi)容(即BibTex格式的引用文獻整體)三部分構(gòu)建一個可識別的BibTex格式的引用文獻,其中文獻內(nèi)容需用戶在CNKI知網(wǎng)、百度學(xué)術(shù)、谷歌學(xué)術(shù)等網(wǎng)站輸入文獻的名字后復(fù)制出BibTex格式的參考文獻填入,然后修改BibTex格式的引用文獻整體的第一個字段為英文字母加年份后作為該參考文獻的引用標(biāo)識兩個地方務(wù)必完全一致。上述三項輸入提交后就會向參考文獻bib庫添加一條記錄。該文獻被引用后系統(tǒng)將在源文件編譯時展示被引用的參考文獻。

圖9 參考文獻的添加

3.4 其他關(guān)鍵技術(shù)

(1) 論文題目的智能切分換行。由于每個用戶的論文題目長度是不定的,需要封面論文題目根據(jù)封面設(shè)定的下劃線長度進行自動的判斷換行。本系統(tǒng)通過接收用戶輸入的論文題目字符串,遍歷判斷每一個字符的大小,長度到達7.5 cm(即設(shè)定的長度)添加繪制一個長度為7.5 cm的下劃線的LaTeX代碼命令,并填寫該段的分割字符串,參照國家標(biāo)準(zhǔn)和學(xué)位論文規(guī)范,論文題目超出三行提示論文題目過長,令用戶精簡后重新輸入。

(2) 在線預(yù)覽PDF文件。用戶既可以在撰寫時對單個章節(jié)進行編譯并進行快速預(yù)覽,也可在論文完成后對整體進行編譯預(yù)覽,細思(Thesis)論文在線編排系統(tǒng)使用開源插件PDFObject實現(xiàn)論文在線預(yù)覽與章節(jié)的單獨預(yù)覽,通過在線預(yù)覽方式讓用戶查看當(dāng)前論文的排版效果,省去下載后才能查看文件的麻煩。使用PDFObject的動態(tài)綁定組件的功能在Web頁面中的某一組件內(nèi)動態(tài)展示當(dāng)前的PDF論文文件。

4 系統(tǒng)的實現(xiàn)及應(yīng)用

4.1 系統(tǒng)主要功能的實現(xiàn)

4.1.1論文封面

用戶登錄系統(tǒng)后通過該模塊可填寫封面信息,可選擇插入自己學(xué)校的論文封面Logo,為保證美觀,系統(tǒng)給出合適的圖片分辨率用于參考,界面如圖10所示。題目信息由用戶輸入,后臺會自動智能切分換行,其他信息會自動讀取用戶自己的個人注冊信息,并允許修改,封面日期可通過時間日期插件由用戶自行選取,用戶點擊提交后,系統(tǒng)將自動封裝其內(nèi)容成為LaTeX模板引擎文本并存入數(shù)據(jù)庫。論文封面信息如圖11所示,編譯時系統(tǒng)替換Tex源文件中的描述字符進而生成論文封面的模板文件,編譯后生成的論文封面如圖12所示。

圖10 學(xué)校信息

圖11 論文封面數(shù)據(jù)

圖12 封面排版效果

4.1.2論文摘要、致謝、附錄

論文的摘要、致謝、附錄等模塊相似,系統(tǒng)只需要接收用戶的數(shù)據(jù)信息便可完成固定格式的排版任務(wù),例如摘要部分操作流程為:用戶填入摘要信息,包括中文與英文摘要內(nèi)容和關(guān)鍵詞,填寫英文題目,關(guān)鍵詞需要用分隔符號自行分割,在后期可通過修改按鈕修改自己的摘要信息。封面與摘要完成后用戶便可編譯文件查看最基本的排版效果,便于及時地進行調(diào)整。

4.1.3論文目錄

在LaTeX排版中節(jié)、圖片、表格的排序都是通過計數(shù)器自動設(shè)置的,目錄的生成通過 ableofcontents命令實現(xiàn),系統(tǒng)將會自動根據(jù)章節(jié)內(nèi)容中的section、subsection、subsubsection自動劃分為三級目錄,在功能實現(xiàn)時調(diào)用兩次XeLaTeX的編譯命令實現(xiàn)目錄的生成,目錄的最終效果如圖13所示。

圖13 目錄排版效果

4.1.4章節(jié)

論文的正文部分是由章節(jié)構(gòu)成,通過使用LaTeX模板引擎宏替換編輯器,點擊相應(yīng)的功能模塊,即可在當(dāng)前光標(biāo)位置生成一段LaTeX功能代碼,用戶通過簡單地補充即可完成對應(yīng)元素的輸入操作。章節(jié)的輸入編輯界面如圖14所示,排版效果如圖15所示。

圖14 填寫章節(jié)信息

圖15 章節(jié)排版效果

4.1.5參考文獻

用戶通過參考文獻添加頁面添加參考文獻條目,首先通過輸入擬引用的文獻標(biāo)題在CNKI知網(wǎng)、百度學(xué)術(shù)、谷歌學(xué)術(shù)等網(wǎng)站復(fù)制出BibTex格式的參考文獻到文獻內(nèi)容框中。

接下來修改BibTex格式的引用文獻整體的第一個字段作為該文獻的引用標(biāo)示,并拷貝該標(biāo)示到引用標(biāo)示框,拷貝BibTex格式中的title里的內(nèi)容到文獻顯示名框,然后點擊提交即可。系統(tǒng)章節(jié)中引用某一文獻時,點擊該參考文獻后的引用按鈕將會彈出cite{}命令,將引用標(biāo)示拷貝進來即可。參考文獻的添加如圖16所示,排版后顯示效果如圖17所示。

圖16 添加參考文獻演示

圖17 參考文獻排版效果

4.1.6錯誤排查

在LaTeX排版系統(tǒng)中,所有的排版效果都是通過命令標(biāo)簽實現(xiàn)的,不熟悉LaTeX排版語言的用戶可能會誤用LaTeX的命令符,當(dāng)不符合語法規(guī)范時將會拋出錯誤。細思(Thesis)論文在線編排系統(tǒng)在論文編譯時可通過標(biāo)準(zhǔn)錯誤輸出流獲取錯誤信息并將其存放在錯誤日志中,用戶可通過查看錯誤日志底部信息大致了解錯誤發(fā)生的大概范圍。整篇畢業(yè)論文的錯誤集中顯示可能難以排查,所以系統(tǒng)設(shè)計了單章編譯的方式,可單個章節(jié)地排查錯誤的位置,圖18所示為錯誤使用&字符時的錯誤頁面顯示效果,用戶通過讀取Warning這幾行可大致判斷錯誤發(fā)生的大致位置,通過對該位置附近進行檢查進而排除相關(guān)的錯誤。

圖18 錯誤排查

4.1.7論文生成與文件下載

論文撰寫完成后,用戶可通過論文生成模塊編譯源文件生成完整的論文,編譯成功完成后,用戶可以通過預(yù)覽界面查看論文最終排版效果。生成的PDF文件和Tex源文件均可以供用戶下載,一個用戶的所有論文文件均存放在該用戶的文件夾下,通過IO流獲取所有文件名稱并設(shè)置返回響應(yīng)的響應(yīng)頭為文件類型,通過IO流讀取并下載文件,用戶的論文PDF文件使用紅色字體標(biāo)識,更容易找到該文件。

圖19為用戶文件列表,其中.tex后綴的文件為用戶論文各個模塊的Tex源文件,main.tex引用整合其他模塊源文件。main.pdf為生成的論文文件,系統(tǒng)名稱即可得到自己的畢業(yè)論文,論文也做了防下載設(shè)置,外部訪問PDF文件或者其他任何文件的請求都會被攔截,從而確保了所有論文文件的安全。

圖19 論文生成與文件下載

4.2 系統(tǒng)的應(yīng)用

細思(Thesis)論文在線編排系統(tǒng)在河南某高校2020屆畢業(yè)生部分院系進行了推廣使用,通過對師生進行簡單的系統(tǒng)使用培訓(xùn),大都迅速地掌握了使用方法,很快就完成了論文的編輯和排版工作,生成了格式規(guī)范的畢業(yè)設(shè)計(論文),達到了學(xué)校的要求。通過對運行中師生的反饋意見進行了完善和修改,最終該系統(tǒng)被該校選定為全校的畢業(yè)論文(設(shè)計)排版系統(tǒng),后續(xù)將與該校的畢業(yè)設(shè)計(論文)管理系統(tǒng)實現(xiàn)無縫對接,將課題申報、學(xué)生選題管理、過程管理(包含任務(wù)書下發(fā)、開題、過程指導(dǎo)記錄,中期檢查、中間版的存檔)、論文庫檢索、論文評閱、查重檢測、論文推優(yōu)等模塊有機融合,從而為高校畢業(yè)生提供適用、便捷的畢業(yè)論文編輯排版工具。

5 結(jié) 語

本文基于LaTeX排版技術(shù),采用B/S架構(gòu)與MVC設(shè)計模式,利用Web程序收集用戶論文數(shù)據(jù),通過編寫并實現(xiàn)自定義的LaTeX模板引擎宏替換編輯器對用戶數(shù)據(jù)封裝形成LaTeX語言文本,通過CommandExec調(diào)用LaTeX編譯引擎命令生成符合各高校規(guī)范的畢業(yè)論文,該系統(tǒng)提供源文件和生成文件一鍵下載,對后期的修改編輯和功能擴展提供非常友好的支持。該系統(tǒng)可令師生以更多的精力投入到科學(xué)問題的解決之中,而無須考慮排版問題,也不用記憶復(fù)雜的LaTeX排版命令,就可以輕松地實現(xiàn)規(guī)范的論文排版,為高質(zhì)量完成畢業(yè)論文提供強有力的輔助工具。

猜你喜歡
畢業(yè)論文章節(jié)參考文獻
The Muted Lover and the Singing Poet:Ekphrasis and Gender in the Canzoniere*
“本科畢業(yè)論文要不要取消”為何長期無解
高中數(shù)學(xué)章節(jié)易錯點提前干預(yù)的策略研究
素養(yǎng)之下,美在引言——《“推理與證明”章節(jié)引言》一節(jié)比賽課的實錄
高等院校音樂本科畢業(yè)論文教學(xué)和寫作的問題透視與思考
Study on the physiological function and application of γ—aminobutyric acid and its receptors
我的月子畢業(yè)論文
我的月子畢業(yè)論文
The Review of the Studies of Trilingual Education in inghai
八仙過海,各顯神通
广昌县| 特克斯县| 海宁市| 隆安县| 新蔡县| 汾阳市| 黄骅市| 呼图壁县| 黄石市| 黄大仙区| 东阳市| 竹溪县| 广宁县| 理塘县| 玛纳斯县| 讷河市| 洪湖市| 稻城县| 尼玛县| 榕江县| 武山县| 安西县| 淳化县| 昌吉市| 伽师县| 宜昌市| 南汇区| 乐东| 神木县| 秭归县| 吉首市| 勃利县| 湛江市| 教育| 襄樊市| 察隅县| 长治市| 门头沟区| 鄂托克前旗| 鲁山县| 诸城市|