Friday, April 24, 2009

仔細研究了一下各種xxTeX,yyTeX

其實一點也不仔細,因為涉及的名詞太多了,不得不佩服各位TeXpert,竟然可以花那麼多業餘時間仔細鑽研艱深晦澀的tex,
包括什麽TeXbook, metafun之類的東西。
一切從newsmth這貼開始:
http://www.newsmth.net/bbscon.php?bid=460&id=258983

裏面詳細介紹了關於xxTeX的各種複雜關係,基本上裏面討論的我只懂30%
這裡用我自己的話簡要總結一下一個小時內看的一些東西(混亂ing,不保證100%正確 - -!!):

1. 最早的tex是由knuth開發的,是最原始的編譯引擎。而其他pdftex,pdflatex,,xetex,luatex之類的,也是引擎,類似不同編譯器之間的關係。
2. latex,plain tex,context是語法,也就是類似于不同的程式設計語言。
3. texlive,miktex等是發行版,類似fedora和ubuntu的關係。
4. winedt,texworks之類是前端,類似于編輯器。
5. tex本身不支持中文(只考慮了英文相關的一些編碼),而xetex,luatex就是爲了支持unicode而設計的。
    xetex使用latex,而luatex使用context。
    但是xetex似乎只是一個過渡產品,luatex的設計理念據說更理想,但是目前非常不成熟。
    作者也說將來如果luatex成熟了,就投向它的陣營。

由於xetex與latex語法兼容,因此我們可以直接使用xetex編譯以往的latex文檔。
因此這也是我現階段的學習目標:先從pdflatex慢慢過渡到xetex,將來luatex成熟了,再開始使用它,學習context語法。
不過看了下context的語法,似乎比latex好看多了。

這裡給出幾個很好的鏈結:
  1. http://www.tug.org/levels.html:from tex user group,詳細地介紹了LaTeX,plain tex,texlive,MikTeX,luatex,xetex,等一大堆的級別與定義。
  2. http://code.google.com/p/way2ctx/downloads/list:context學習筆記
  3. http://blog.csdn.net/ramacess/archive/2007/08/02/1723279.aspx:tex中文化現狀
  4. http://tex.loria.fr/formats/context/LaTeX2ConTeXt.pdf:從latex向context轉型

5 comments:

Anonymous said...

>latex,plain tex,context是語法,也就是類似于不同的程式設計語言。

latex, plain tex, context本质上都是tex宏语言。并不是语法。相当于MFC, QT, GTKMM之间的区别。都是符合C++语法的,但写出来看上去很不一样。

>xetex使用latex,而luatex使用context。

这个是不正确的。latex, context都可以在 xetex和luatex上跑。


>但是xetex似乎只是一個過渡產品,luatex的設計理念據說更理想,但是目前非常不成熟。

xetex和luatex都有各自的应用范围和优势,谈不上谁成熟和谁理想的。

>作者也說將來如果luatex成熟了,就投向它的陣營。

恭维之辞。不过xetex确实很少再会做改动了,因为也没啥可改了。

--Yue Wang

Ivan Z. G. Xiao said...

阿.....大侠大驾光临,不胜感激
其实我知道很多是自己肤浅的理解
刚接触latex其实只有半年,
XeTeX与LaTeX我都没有用过,也不知道究竟有没时间精力去深入研究..
不过按照你这么说,看来随便选一个去学都可以了?

Anonymous said...

我的建议就是如果你学TeX是为了发期刊文章,那就用LaTeX吧,如果发的不是中文期刊,最好XeTeX和LuaTeX都别去碰它。直接用pdfTeX是最好的,满足您一切需求。
而如果是为了完成文档项目或者仅仅为了折腾,那一般而言ConTeXt对于版面的控制能力比裸的LaTeX要强大方便得多。当然彼此都能够做对方能够做到事情,只是简单复杂而已。
XeTeX和LuaTeX的开发有明显的不同,一个是直接用外部库一站式解决问题,一个是尽量暴露所有TeX引擎细节来让开发者获得最大的自由,但一般来说对于一个搞文档而不是搞宏包的人来说两个引擎其实也没太大从差别的。当然,XeTeX的开发对LaTeX用户更友好,也提供大量附属宏包,而LuaTeX的开发始终和ConTeXt紧密结合在一起的。
如果不是数学公式密集型的文档,Adobe InDesign说不定更适合一般人,呵呵。

Ivan Z. G. Xiao said...

I see.
那么看来先用好LaTex是正解了.
不过你说ConTeXt对于版面的控制能力方便,又说得我有点心动了. 但我也不清楚究竟强大在什么方面. 起码我现在山寨地用着latex倒也能完成一般的工作. 就是画图比较麻烦而已, 一般是用pgf/tikz来弄一下.

InDesign就不考虑了, 没钱.

Anonymous said...

我的建议就是如果你学TeX是为了发期刊文章,那就用LaTeX吧,如果发的不是中文期刊,最好XeTeX和LuaTeX都别去碰它。直接用pdfTeX是最好的,满足您一切需求。
而如果是为了完成文档项目或者仅仅为了折腾,那一般而言ConTeXt对于版面的控制能力比裸的LaTeX要强大方便得多。当然彼此都能够做对方能够做到事情,只是简单复杂而已。
XeTeX和LuaTeX的开发有明显的不同,一个是直接用外部库一站式解决问题,一个是尽量暴露所有TeX引擎细节来让开发者获得最大的自由,但一般来说对于一个搞文档而不是搞宏包的人来说两个引擎其实也没太大从差别的。当然,XeTeX的开发对LaTeX用户更友好,也提供大量附属宏包,而LuaTeX的开发始终和ConTeXt紧密结合在一起的。
如果不是数学公式密集型的文档,Adobe InDesign说不定更适合一般人,呵呵。