網路城邦
上一篇 回創作列表 下一篇   字體:
TeX核心第九次更新,版本為3.14159265,兼談class與package
2014/10/27 11:05:31瀏覽764|回應0|推薦0

LaTeX是TeX的宏(marcos,也有譯成巨集),每個LaTeX指令,最後都會轉換成TeX指令,進行排板的工作,TeX是排版運算的核心,它決定了文件何處要斷行等等的演算工作。本月(2014年10月)的12日,TeX核心發布了第九次更新,為3.14159265,修正了一個2008年發現的一個bug。TeX的開發者與維護者Donald Ervin Knuth,今年也76歳了,很可能是他本人維護TeX的最後一個版本。他的願望是這個版本是最終的無bug修正的版本,希望能成為完美的pi。不知道他的書(我肯定是看不懂)是否來的及寫完。

LaTeX class的類型,有article, report, book, letter等,主要用來對應文章格式,報告格式,書本格式,信件格式。如果對它們有與趣,想要知道是如何運作的,可以參考這裡, 它對article.cls的內容作完整的介紹。

如當LaTeX讀取到tex文件中的\documentclass{article}後,就會尋找article.cls檔案的內容,來設定文章如何編排。article.cls的內容,包括了紙張的基本設定、字體字型的基本設定、目錄、摘要、主文、註腳⋯基本上,可以從這裡開始學起,或是LaTeX論壇中,有的人會發布他的成果,可以從中學習。

套件(package,也有譯做宏包)和類型文件格式差不多,其主要設定在同名的sty檔案,如CJK,就會找cjk.sty的內容,來運作字型的工作。套件不會更動類型內的大框架,但會對裡面編排的部分,做出改變。如文字字型(如CJK,使用中文type1字)、頁首頁尾(fancyhdr,常用的套件)、多欄主文(multicol)⋯有本書名為LaTeX Companion,對這些LaTeX的套件有許多介紹,網路上可以找到這本書的第三章。裡面就有不少實用的套件應用,如文繞圖,畫重點等等有趣的運用。

如果想要練習開發類型和套件,可以參考LaTeX類型、套件指南(檔名clsguide.pdf)建議僅量使用LaTeX的命令來寫,比較容易管理程式碼。目前LaTeX是執行LaTeX2e,所以用LaTeX2e的指令來寫,例如:多用\newcommand, \renewcommand 或是 \providecommand,少用\def 指令。多用\newenvionment 或 \renewenvironment, 少用 \def\foo{} 和\def\endfoo{}。

如果要改動長度單位,請多使用\setlength。

如果要改動盒子(boxes),多使用 \sbox, \mbox, \parbox,少用TeX指令如\setbox, \hbox及\box。

如要顯示訊息,用\PackageError, \PackageWarning或\PackageInfo,少用\@latexerr, \@warning, \wlog。

如需要宣告參數(options),用\DeclareOption, \ProcessOptions比\ds@或\@options好。

多使用LaTeX命令會更有效率和更省電腦記憶體。例如以下的程式碼:

\def\ds@draft{\overfullrule 5pt}

\@options

應改寫成:

\DeclareOption{draft}{\setlegth{\overfullrule}{5pt}}

\PrecessOptions\relax

這些的都排版工作的預設工作,平時在使用class或package時,只是使用其中定義好的指令而己,使我們只要努力於文件內容的寫作即可,如果對現在的排版結果不滿意,那麼只有自己寫class或package一途來改進了。和寫程式引用framework的方式一樣,這些class或是package等同framework的設定。

( 興趣嗜好電腦3C )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=paraquat&aid=18194313