TEX(1) General Commands Manual TEX(1)

tex, virtex, initex - 文字格式化和排版

tex [options] [commands]

這份手冊頁並不全面。此版本的 TeX 完整的文件可以從 info 檔案或者手冊 Web2C: A TeX implementation 中找到。

TeX 格式化指定的檔案中包含著命令的文字,輸出一個裝置無關的檔案 (稱為 DVI ,即 “裝置無關” DeVice Independent 的縮寫)。在 The TeXbook 中講述了 TeX 的功能和語言。 TeX 通常與一個大型的預編譯的宏包同時使用,有一些特定的排版系統,例如 LaTeX, 通常需要很多宏包的支援。

這個版本的 TeX 透過檢視它的命令列,查詢自身是以什麼名稱被呼叫的。 initexvirtex 都是到可執行檔案 tex 的符號連結。當作為 initex 呼叫時 (或者使用了 --ini 選項時),它可以用於將宏預編譯,輸出到一個 .fmt 檔案中。當作為 virtex 呼叫時,它將使用 plain 格式。當以任何其他名稱呼叫時,TeX 將使用那個名稱作為要使用的格式名稱。例如,當作為 tex 呼叫時,將使用 tex 格式,這與 plain 格式是相同的。 plain 格式中定義的命令記載在 The TeXbook 中。其他常用的格式包括 latexamstex

呼叫 TeX 時,命令列給出的 commands 被傳遞給它作為輸入的第一行。(但是通常將擴充套件的引數作為輸入的第一行要簡單許 多,因為 UNIX 命令直譯器總是會 “吃掉” 或者錯誤地解釋 TeX 的符號,例 如反斜槓,除非你引用它們。) 同 The TeXbook 書中描述的一致,第一行應當以一個檔名開始,或者是一個控制序列 \controlsequence, 或者是一個格式名稱 &formatname.

通常的用法是輸入

tex paper
來處理 paper.tex 。名稱 paper 將作為任務名 (``jobname''),也用來產生輸出檔名。 如果 TeX 沒有在第一行獲得一個檔名,jobname 將是 texput 。當查詢一個檔案時,TeX 查詢帶有和不帶預設副檔名 (.tex) 的檔案,除非名稱中已包含了此副檔名。如果 paper 是任務名(``jobname''),錯誤訊息的日誌記錄,包含著比通常螢幕上顯示的內容更加詳細的內容,將儲存為 paper.log ,輸出檔案將儲存為 paper.dvi

這個版本的 TeX 可以檢視檔案 paper.tex 的第一行,看它是否以特殊序列 %& 開始。如果第一行以 %&format --translate-file tcxname 開始,那麼 TeX 將使用指定的格式和轉換表 tcxname 來處理原始檔。格式名稱和 --translate-file 轉換定義都可以被忽略,但是不能同時忽略。這個設定超越了基於可執行檔名稱的格式選擇。 選項 --parse-first-line 或者配置中的變數 parse_first_line 控制了是否允許這樣的行為。

在 TeX 的錯誤提示下回應 e 將使得系統預設的編輯器被啟動,修改當前檔案的當前行。環境變數 TEXEDIT 可以用來修改所用的編輯器。它可以包含一個字串 "%s",指定檔名要替換的位置,以及字串 "%d",指定行號 (如果有的話) 要替換的位置。例如,要使用 emacs ,可以這樣設定 TEXEDIT 字串,使用 sh 命令

TEXEDIT="emacs +%d %s"; export TEXEDIT

為了方便,庫中有一個檔案 null.tex ,內容為空。當 TeX 找不到可能的輸入時,它會一直讓使用者輸入另一個檔名;如果不想輸入任何東西,回應 `null' 可以跳出這個迴圈。也可以輸入 EOF 字元 (通常是 control-D)。

這個版本的 TeX 可以解釋下列命令列選項。


列印錯誤訊息,以 file:line:error 的形式,與大多數編譯器格式化訊息的方式相似。

使用 format 作為要使用的格式名,而不是呼叫 TeX 的名稱或者 %& 一行指定的內容。

列印幫助資訊,然後退出。

成為 initex ,用於轉儲格式 (dump formats);如果呼叫的程式名是 initex ,那麼隱含這個選項。

設定互動模式。mode 可以是 batchmode, nonstopmode, scrollmode, 和 errorstopmode 其中之一。這些模式的含義與相應的 \commands 相同。

將 DVI 輸出傳送到一個 socket,同時像通常那樣輸出到檔案。這個選項是否可用取決於安裝程式的選擇。

--ipc 類似,並且同時也在另一段啟動伺服器。這個選項是否可用取決於安裝程式的選擇。

使用 name 作為作業名,而不是從輸入檔名獲得。

根據位掩碼,設定路徑搜尋除錯標誌。細節請參見 Kpathsea 手冊頁。

啟用 mktexfmt ,這裡 fmt 必須是 tex 或者 tfm 之一。

啟用 MLTeX 擴充套件。

禁用 mktexfmt 這裡 fmt 必須是 tex 或者 tfm 之一。

使用 string 作為 DVI 檔案的註釋,而不是時間。

如果主輸入檔案的第一行以 %& 開始,就解釋它,從中查詢一個轉儲名稱或者一個 --translate-file 選項。

偽裝是程式 name 。這對所用格式和搜尋路徑都有影響。

啟用檔名記錄。這將在一個副檔名為 .fls 的檔案中記錄輸入和輸出中開啟的所有檔案。

啟用 \write18{command} 結構。 command 可以是任何 Bourne shell 命令。出於安全原因,這個結構通常被禁止。

使用 tcxname 轉換表。

顯示版本資訊,然後退出。

參見 Kpathsearch 庫的文件 (手冊頁的 `Path specifications' 節點) 來檢視使用環境變數的精確的細節。 kpsewhich 實用工具可以用來查詢變數的值。

警告:在大多數 TeX 格式中,不能直接傳給 TeX 帶有 ~ 的檔名,因為 ~ 是一個有特殊意義的字元,它將被擴充套件,不會作為檔名的一部分。其他程式,例如 Metafont,沒有這個問題。

通常,TeX 將輸出檔案放在當前目錄。如果不能在那裡建立任何輸出檔案,它試著在環境變數 TEXMFOUTPUT 指定的目錄中建立它。這個引數沒有預設值。例如,假設命令是 tex paper 並且當前目錄不可寫,如果 TEXMFOUTPUT 設定為 /tmp ,TeX 試圖建立 /tmp/paper.log (還有 /tmp/paper.dvi ,如果產生了任何輸出。)
\input\openin 檔案的搜尋路徑。它們一般應當以 ``.'' 開始,使得使用者檔案可以先於系統檔案被找到。空路徑成分將被替換為 texmf.cnf 檔案中定義的路徑。例如,設定 TEXINPUTS 為 ".:/home/usr/tex:" 來將當前目錄和 ``/home/user/tex'' 新增到標準的搜尋路徑之前。
切換為編輯器的命令模板。預設值通常是 vi ,在 TeX 編譯時進行設定。

下面提到的檔案的位置在各個系統中是不相同的。使用 kpsewhich 實用工具來找到它們的位置。

配置檔案。它包含著搜尋路徑的定義,還有其他配置引數,例如 parse_first_line.
編碼的文字,是 TeX 的提示訊息。
檔名對映定義。
*.tfm
TeX 字型的度量的檔案。
*.fmt
簡寫的 TeX 格式 (.fmt) 檔案。
$TEXMFMAIN/tex/plain/base/plain.tex
基本的宏包,在 TeXbook 中有詳細描述。

這個版本的 TeX 實現了大量的可選的擴充套件。實際上,其中大部分與 TeX 的定義有或多或少的衝突。當啟用這樣的擴充套件時,TeX 啟動時列印的提示資訊將是 TeXk 而不是 TeX

這個版本的 TeX 在面積增加或減少時不能捕獲算術下溢錯誤。這種情況很少見,但是一旦出現,產生的 DVI 檔案將是無效的。

mf(1),
Donald E. Knuth, The TeXbook, Addison-Wesley, 1986, ISBN 0-201-13447-0.
Leslie Lamport, LaTeX - A Document Preparation System, Addison-Wesley, 1985, ISBN 0-201-15790-X.
K. Berry, Eplain: Expanded plain TeX, ftp://ftp.cs.umb.edu/pub/tex/eplain/doc.
Michael Spivak, The Joy of TeX, 2nd edition, Addison-Wesley, 1990, ISBN 0-8218-2997-1.
TUGboat (the journal of the TeX Users Group).

TeX,如果發音正確的話,與 ``blecchhh'' 押韻 (rhymes)。使用 typewriter 字型時,正確的拼寫是 ``TeX'' 而不是 ``TEX'' 或者 ``tex''。

TeX 的設計者是 by Donald E. Knuth,他用他的 Web 系統實現了它。後來,它分別被 Stanford 的 Howard Tricky 和 Cornell 的 Pavel Curtis 移植到了 Unix。當前隨 Unix TeX 發行的這個版本使用了 Web 到 C 的翻譯系統 (web2c) 來產生, (web2c) 最初由 Tomas Rokicki 和 Tim Morgan 實現。

本頁面中文版由中文 man 手冊頁計劃提供。
中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh

10 November 2001 Web2C 7.4.5