實現一個介於TeX/LaTeX和Word之間的論文寫作軟體,難度主要在哪?
當前寫論文的軟體主要是TeX系列和Word。
TeX寫論文當然很強大,但我認為TeX系列的上手比較困難,對於非理科非計算機專業的學生學者來說都不易上手。(雖然說一旦上手就會很爽)另外TeX在國內的使用情況也不是很好,很多年級比較大的教授老師比較難以接受。另一方面,Word看起來簡單,但是想要排出簡潔優美的論文板式恐怕比用TeX還要更麻煩一點。所以我想實現一個基於TeX的論文寫作軟體。主要的面向對象是學生和科研人員。主要的想法是由我來提供模板,比如說計算機領域各大會議的論文模板。當然這些模板是隱藏在後台的,用戶只要列好自己的目錄提綱,然後在我提供的每個模塊的textarea中填寫內容就好了,不去擔心排版的問題。做之前我還要深入的學習一下TeX和LaTeX,但在這之前我想問一下各位熟悉排版和TeX的人,主要的難點大概在哪?
如有沒說清的地方歡迎詢問,我會補充。
@Clerk 校長暫時休長假去了。受朋友所託,雖是自己基本是外行,不可不答。但是作為一個程序員,我的視角可能會有所不同。
在我看來,最大的障礙不是技術,是用戶習慣。比如提問者說的下面這一點:主要的想法是由我來提供模板,比如說計算機領域各大會議的論文模板。當然這些模板是隱藏在後台的,用戶只要列好自己的目錄提綱,然後在我提供的每個模塊的textarea中填寫內容就好了,不去擔心排版的問題。
你沒有發現么?很多國外的期刊和會議就是有自己定義的 LaTeX 文檔格式啊。實際上對於標準的會議期刊,你只要關注基本的 LaTeX 結構就行了,根本不需要關注排版問題。LaTeX 能幾乎壟斷科技論文投稿格式這麼多年屹立不倒,靠的也就是用戶習慣。
如果自己提供一個軟體,那麼就得提供這些主要期刊支持的模板。如果真的為讀者考慮,還得提供導入功能,保證新的模板能夠被接受。理論上來說這裡沒有什麼技術難度,多數是力氣活;但計算機這個行當,技術問題都能找到人解決,難的就是力氣活。
至於所謂 TeX 上手困難的說法,我得說這種理由很流行,但我絕對不認同。比如題目說明中說「很多年紀比較大的教授老師比較難以接受」,他們是真的因為 TeX 上手困難而難以接受,還是因為他們根本沒有真正在乎過認真做論文投稿?就我觀察到的一些國內科技類前輩的做為來看,我寧可相信是後者。
--- 吐槽完畢,現在回來認真分析需求 ---
我的理解是,提問者希望能得到這樣一個軟體(為了簡化討論,暫時不考慮支持多平台):- 它本質上基於 TeX 或者 LaTex。接受標準的 TeX/LaTex 版式,而且應該能夠生成 DVI 或 PDF 等主流輸出。
- 支持至少是主流(當然怎麼定義主流還需要再斟酌)的論文模板。
- 支持 Word 那樣的所見即所得編輯方法。盡量避免手工輸入 TeX/LaTeX 的命令。
- 避免出現過多的 Ad-Hoc 版式。換言之,用戶操作中不應當經常出現針對某段文字單獨定義字體、格式之類的操作。
大體分析如下:
- 我個人不同意完全模仿所見即所得。這不符合 TeX 的編輯風格,而且也不能避免 Ad-Hoc 版式泛濫的問題。
- 頭兩者主要是後端問題和管理各種模板的匯入的表示問題,不能算非常複雜的操作。
- 第三點比較難,主要是在各個字體的選擇和版式的實時顯示問題。如果實時編譯 LaTeX 代碼,恐怕效率上不能令人滿意(這裡還沒有考慮到傳統 CJK 的二次編譯問題)。我個人的建議是需要一個解釋性的中間格式。我們將 LaTeX 模板的命令轉換成某種可解釋的中間格式保存在內存中,顯示時通過預編譯載入版式。這個不會很容易,但至少 TeXmacs 都做到了,說明技術上並非不可能。另外,LuaTeX 提供的 Lua 腳本似乎很適合做這個用途。
- 作為一個更關注用戶習慣的人,我其實更關心最後一條。因為我對 Word 的編輯方式最大的不滿就在這裡。
- 版式定義階段。這個階段里,用戶只能定義或者輸入外界模板。界面上有各種版式定義符號,比如字型大小、正斜體、對中、編號等等。編好了版式,用戶需要將其存為模板文件。
- 編輯階段。這個階段里用戶的主要任務是輸入內容,或者套用版式。這時界面上只有預定義的版式列表,沒有具體的版式定義符號。用戶可以退回版式定義階段增加新的模板,但不能在這個模式里直接編輯模板。
- 輸出階段。版式和內容確定之後,用戶可以將其最終輸出為 LaTeX 源代碼,DVI 或者 PDF。
這樣設計正好與通常投稿版式編寫中模板和正文概念分離的做法相吻合。由於避免了 Ad-Hoc 版式,設計上也會相對簡單。代價是用戶可能會失去一些靈活性,但我認為這種靈活性是值得的。
僅是個人想法,拋磚引玉吧。說句很俗的話,所有的難度都和錢掛鉤。
研發和測試都需要錢,有的甚至是燒錢。我目前看過實現最好的是Infty Project。他們的編輯器很好玩:
和LyX,TeXmacs比起來,這個編輯器的速度足夠快,並且足夠小。
數學支持是使用MathML做起來的。免費版的效果還不錯,我偶爾會玩玩。這個軟體之所以沒做成Office那樣大的傢伙,一部分是資金問題。但是最大的問題是:要不要再做個類似Word的輪子出來。沒必要,即使做出來也沒有多少人買。從軟體開發者的角度來看,實現難度不大,但是開發周期很長。
看看LibreOffice的源代碼就知道這種大型辦公軟體是如何做出來的。不想往深處答了,滿足不了某些期待八卦甚至乾貨的群眾。在 @Clerk 之前先拋個磚。
你的第一個要求是介於 Word 和 LaTeX 之間。現在有一個叫 Lyx 的軟體 http://www.lyx.org,也許已經達到你的要求,我自己沒有用過,口碑不錯。
你的第二個要求是模版寫作。
首先不存在通用的論文模版,各期刊的要求各有差別,各種奇葩。如果你的軟體非常流行,像 LaTeX 和 Word 一樣受到各個大學和期刊的青睞,那麼他們可能各自提供相應模版,這是最好情況。但就算這樣,軟體也不可能代替人完成所有的排版動作,讓人 ?完全不去擔心排版的問題? 是不可能的。具體我在這個問題下有論述 http://www.zhihu.com/question/20235227 寫論文時會出現各種變態需求,無法預知。因此模版這種方式,還要有足夠的調整空間才行。模版的作用,最終也就是方便起頭而已。提一下,我覺得 Pandoc http://johnmacfarlane.net/pandoc/ 在使用體驗上和你說的很像。用 markdown 語言寫 LaTeX,方便易學。但是要達到論文的格式標準,仍然要在生成 LaTeX 後人工修改。個人覺得沒必要,排優美獨特的文本本來在邏輯上就是一件複雜的事,LaTex已經最大程度地簡化了這個過程。樓主只要自己弄好模板就好
TeXmacs 就是介於 TeX 和 Word 之間的軟體,實現時可以參考它的代碼
沒有相關知識,無從評價其難度,不過你所設想的工具已經有了完善的實現,TeXmacs, 王垠盛讚之為無可比擬。重造輪子,意義很大?
我覺得如果實現一個類似markdown的標記語言編輯器之類的。。光針對論文會不會挺棒的?
其實不用做了,因為已經有人做出來了。
有除了lyx之外,scientific workplace以及bakoma tex都是非常好的編輯工具,bakoma一邊打一邊自動渲染
模板sci workplace也齊備,只是填空格的形式最大的難度就是已經有LaTeX了。
年紀多大的教授年輕點的,五十歲的教授人家手擼彙編的學生時代你還沒成受精卵吧我認為沒啥必要
Latex最蛋疼的就是插圖了,其他都挺好。
我使過一個,adobe 的framemaker。
如果不是論文中有很多的數學公式,word也足夠了。我們這行兒反正就是這樣。
我覺著啊,首先好多人比較latex和word,是不恰當的。
word是字處理軟體,有很強的排版功能。latex是排版軟體或者說語言,也帶字處理功能。拿latex排版比word排版。我讀書還比nba打球的強呢。framemaker,感覺像是一個介乎tex和word之間的軟體。界面是word的所見即所得(latex標榜的所見即所想,打死我也不信。否則我看著一堆01也能看出美女來)。它對文字中插入的公式處理的比較好。另外插入圖表,交叉引用也很方便。我覺得這對寫論文還是比較重要的。單獨起一行的公式的格式word處理得也很好,犯不上使latex。framemaker還有book的功能,將分章節的文件會總成書,適合畢業論文。
framemaker上手也不太容易,用著也挺彆扭,但是感覺上軟體做得挺好,應該屬於字處理軟體和排版軟體結合上固有的困難吧。然後我斗膽說一句:易用度和排版效果完全壓倒latex。我現在覺得latex快成皇帝的排版軟體了,你不能質疑它的效果以及易用度,否則是自己水平不行。framemaker就是正版挺貴的,latex免費的開發環境倒是有的是。
說不上做廣告,只是覺得這個軟體現在還挺冷門兒,離完美也差得遠,但綜合來看比word和latex強的不是一星半點兒。希望能在軟體工具上幫幫還在鏖戰論文的弟兄。推薦閱讀:
※博導對博士畢業要求太高,我還要不要讀他的博士?
※社科論文如何寫出深度?
※外國學術界怎麼看SCI/EI?
※sci ei sciencedirect elsevier 知網這些有什麼區別?
※在論文抄襲的檢查上,知網與paperpass誰更具權威?