準備 TeX 可以排版的文件是很容易的,只要確定本文檔案的段落之間,都有一空白列,然後執行:
tex your_text_file結果將會產生一個相同檔案名字,但副檔案為
.dvi
檔案。 TeX 內定用 10 點的 Computer Modern Roman 字型,單行行距的方式,格式化文件,並自動調整左邊和右邊的邊緣。如果你收到像 $ 一樣的錯誤信息,就在它的前面加一個反斜線 \
,再一次執行TeX 。你應該能夠用前面選擇的 .dvi
翻譯器,列印產生的檔案。TeX 輸入的一個特質是,雙引號與單引號的前面和後面,分為開始和結束,兩種不同的符號,如果你使用 Emacs 的 TeX 模態輸入,它會自動幫你做這些:
"These are ASCII-type quotes." ``These are `TeX-style' quotes.''
TeX 中用一個反斜線 (``\'') ,當作命令的開始,舉例來說,改變列距的命令為:
\baselineskip=24pt
基線是一條不含重音的字元底部的線,兩條基線之間的距離,就是 \baselineskip
的量,這裏指定為 24 點。TeX 裡的測量或尺寸,常用下列的單位:
pt % 點 : 1/72 in. pc % 鉛字體 : 12 pt. in % 吋 : 72.27 pt. cm % 公分 : 2.54 cm = 1 in. mm % 公釐 : 10 mm = 1 cm.
一些命令不指定尺寸的單位,舉例來說:
\smallskip % 大約 3 pt. \medskip % 兩個 \smallskips. \bigskip % 兩個 \medskips.
一個 \smallskip
在垂直的空間插入 3 pt 的距離,因為 TeX 會調整每一頁中斷位置,每一節標題和其他垂直的空間的單位尺寸,所以那些量都是大概量,這對水平的間隔也是相同的。
\hsize=6.5in這個命令,設定列寬為 6.5吋, TeX 藉由調整字距,裝滿每一列,如果在容忍度內, TeX 不能夠裝滿一列,它會產生一個警告訊息,而且盡可能調整好水平的間隔,格式的容忍度設定,參考 容忍度 一節。
有許多指定水平,垂直和容忍度的命令,普遍使用的命令,在下面會被提及。
在 TeX中,內定的字型是 10 pt 的 Computer Modern Roman 字型,可使用下列的命令,指定字形為斜體,粗體或打字機體:
\rm % 羅馬體 ( 內定 ). \it % 意大利斜體字 \bf % 粗體字 \tt % 打字機體 \sl % 斜體字這個命令,會在他們出現的位置,開始改變文中的字形,就像:
This text is Roman, \it and this text is italic. \bf This text is bold, and \rm this text is in Roman again.
為了要在你的文件指定字型,可使用 \font
命令:
\font\romantwelve=cmr12這創造了字型命令
\romantwelve
,將字型換成12 點 Computer Modern Roman 字型。
\romantwelve This is the Computer Modern Roman font at 12 points.字型的資料可以看 teTeX 套件中的檔案:
/usr/lib/teTeX/texmf/doc/fonts/fontname/fontname.dvi
如果你要列印一個字型的例子, TeX 下列檔案:
/usr/lib/teTeX/texmf/tex/plain/base/fontchart.tex而且在你要在提示號中,填上要列印的字型名字。
你也能由改變字型的大小,得到不同的效果,字型是依指數函數,由字型規格命令之後的 scaled \magstep
命令,來改變大小。
\font\sfmedium=cmss12 scaled \magstep 1這個命令將會使用1.2 倍的 12 點 sans serif 字型。字型從 0 到 5 ,分為五種倍率,可供放大縮小,每種倍率都以1.2 倍的大小增加。
上面提到, TeX 內定以10 點 Computer Modern Roman 的字型排版,行距,\hsize
內定為 6.5 吋,如果你要改變 \hsize
為 5.5 吋,舉例來說,使用這個命令:
\hsize=5.5in
在 TeX 中,調整水平或垂直的單位,就是這個量, dimension ,能隨改變它的定義,而被增加或減少,跟尺寸大小有關的,是 skip ,它被放在 TeX 內在的暫存器, skip 與 \newskip
命令一起被定義, \smallskip
在 TeX 定義是:
\newskip\smallskipamount \smallskipamount=3pt plus 1pt minus 1pt更簡潔的
\smallskip
命令為:
\vskip\smallskipamount
有許多的控制輸出頁的尺寸大小,這些都收集在 頁面設計 那一節。 TeX 格式段落時,會自動調整內文與左邊和右邊邊緣的距離,如果你只要調整左邊的邊緣的距離,使用這命令:
\raggedright
如果只要調整右邊的邊緣的距離,則使用 \rightline
命令:
\rightline{This is the line to be typeset.}
這 \line
命令,會儘量以填滿每一列的方法來排版:
\line{This text will be spaced to fit the entire line.}
\hfil
命令,會把它所在的那一列,都填滿,舉例來說, \rightline
命令等於:
equivalent to:
\line{\hfilThis line will be right justified.}
要以對稱中間的方式排版,則用 \centerline
命令:
\centerline{This is the line to be centered.}
為了要改變左邊邊緣的距離,如下例,改變 \hoffset
的值:
\hoffset=1.5in
\parindent
命令指定每個段落的第一行縮排的量:
\parindent=.5in
二個其他尺寸命令, \leftskip
和 \rightskip
使得在他們之後的段落,分別向左或向右縮排:
\leftskip=.5in \rightskip=.5in控制命令
\narrower
等於
\leftskip=\parindent \rightskip=\parindent也就是
\narrower
,會以 \parindent
的值,把段落邊緣變窄。
如前面所提 \baselineskip
內定行距為12 pt 。為了要使行距變成內定值的兩倍,可使用下列的命令:
\baselineskip=\baselineskip*1.6
\parskip
命令,除了保有 \baselineskip
的命令,還會額外增加段落之間的距離,其內定為不增加額外的空間,但在段落之間會多增加1 個點的距離,使內文更正確地填滿每一頁。如果要在段落之間,增加一空白列,則使用這命令:
\parskip=\baselineskip
TeX 通常會嚴格的在容忍度下格式文件。如果, 有一些理由,文件不能在容忍度下格式化,雖然 TeX 會產生一個警告訊息,它還是儘可能格式化文件。如果每一列本文太短,而被伸展太多, TeX 會警告你, \hbox
是 underfull 。如果每一列本文太長,而必須被壓縮,則會警告你, \hbox
是overfull 。
每一個 overfull \hbox
, TeX 會在每列末端,產生 實心黑色的長方形。這實心的長方形,代表不能夠在 \hbadness
參數規定內,格式化這一列。文件在指定的尺寸大小下的適合性,是用 badness來衡量,它是一個介於 0 到 10000之間數字。badness 為0 ,代表最完美, 10000 代表適合性最差, \hbadness
內定為 1000。如果你把 \hbadness
設為 10000 , TeX 永遠不會報告 underfull 。有時 TeX 允許一列,能擴充到右邊的邊緣,這是 TeX作者的美學決定的一部份,這是由內定為 0.1 pt 的 \hfuzz
參數所決定的。如果本文裝不進一列內,\tolerance
的參數會處理\hbox
overfull 的問題。 \tolerance
內定為 200 ,把設定改為1000 ,則會抑制 overfull \hbox
和實心黑色長方形的產生。
除了早先提到的左邊的邊緣,和行寬之外, TeX 也讓你可以指定頂端,末端,和垂直的間隔。像在早先提到的 \hsize
和 \hoffset
尺寸大小一樣, TeX 也提供那 \vsize
和 \voffset
命令。\vsize
內定為 8.9 吋, \voffset
內定為 0 吋。
正常地, teTeX 會把本文第一行的開端,放在離頂端下面 1 吋,且離左邊的邊緣1 吋的位置。你能用命令,讓本文更靠近每頁的頂端:
\voffset=-0.5in
如果你要增加一份文件裡的垂直空間,命令 \smallskip
, \medskip
, 和\bigskip
將會增加大約 3 , 6 , 或 12 點的空白垂直間隔。這些都是大約的量, TeX 將會以一個點,一個點的方式調整,正確地填滿每一頁。
\vfill
命令,會在每一頁的段落之間,增加一個可調整的垂直間隔,它可以無限地伸展,所以它會把每一頁,剩下的垂直間隔填滿。如果你要指定一個尺寸大小,如下指定 \vskip
為:
\vskip 10pt
\hss
和 \vss
命令類似 \hfil
和 \vfill
,但是他們可以無限地收縮和伸展。
\vskip
和 \vfill
命令,可產生彈性的長度,如果沒有內文,他們不增加空間,舉例來說,在任一頁的頂端。如果你要增加一絕對的空間,使用 \vglue
。
TeX 會儘量去填滿 \vsize
的尺寸,直到新的一頁開始。 \vfill \eject
會強迫跳行,如果不用 \vfill
,內文會繼續填滿每一頁,直到 \break
出現。
如果你要 TeX 更能夠有彈性的使用垂直標示,在你的文件中,可用 \raggedbottom
命令,然後 TeX 將會些微地調整每頁的底部邊緣,使垂直的間隔更一致。
teTeX 的頁數,內定放在每頁底部中心的位置,如果你要改變放頁數的位置和格式,你能藉由改變 \headline
和 \footline
的定義,變更標首和註腳, \footline
內定包含 \folio
命令,因此會列印頁數, \headline
內定包含 \hfil
命令,因此會列印一空白列。
\pageno
命令,如同是TeX's 的內在頁數計算器。你能藉由變更\pageno
,而改變頁數,如果 \pageno
是負的,則頁數以羅馬數字列印:
\pageno=10 \pageno=-1
不列印頁數的命令, \nopagenumbers
,可速記為:
\headline={\hfil} \footline={\hfil}
內定的 footline ,也包含字型命令 \tenrm
,將頁數字的字型,設定為 10 點羅馬字型,舉例來說,如果你要以 12 點羅馬字型,列印頁數,首先你先定義12 點羅馬字型,然後在 \footline
定義中使用,字型命令在
Font commands 這一節中會討論。
\font\twelvrm=cmr12 \footline={\hss\twelvrm\folio\hss}
你能藉由重新定義 \headline
,來制定一條 rule ,在每頁的頂端,放一個水平線:
\headline={\hrulefill}
使用 \ifodd
,指定偶數頁和奇數頁放的位置不同,它的語法如下:
\ifodd[condition][true-action]\else[false-action一個用
\headline
指定偶數頁和奇數頁擺法不同的例子,就如:
\headline={\ifodd\pageno odd-page-header \else even-page-header}如果是奇數頁,
\ifodd
就使用第一個參數,否則使用第二個參數。
TeX 只提供制定每節標題,使用 \beginsection
命令,它在內文之上,留一個空間,用粗體字列印標題,標題之後增加一個 \smallskip
,並使得下一個段落不縮排。
底下提到的LaTeX 標示章節的命令,會替每一節,標上節數,而且將會列印每一節名稱,並在標首,列印頁數,並自動地把這些章節,加入目錄表。
在 plain TeX 中你必須親自加上這些命令。\def
,允許你定義新的命令,假如你要列印章名,首先你要定義使用的字型,如果使用放大的sans serif 字型,則定義如下:
\font\chapterfontsans=cmss12 scaled \magstep 4如果你要使用高約24 個點的字型,則使用
\chapterfontsans
命令,轉變到這個字型,然而,在這個例子中,它主要被用在\chaptertitlesans
之中。它的定義為:
\def\chaptertitlesans#1{\hbox{}\bigskip\bigskip \noindent{\leftline{\chapterfontsans#1}} \par\bigskip\bigskip\noindent}第一行中,
\hbox{}\bigskip
的\hbox{}
指令,在每頁的頂端,放置一個 12 點的空間,這樣章名,既不縮排,也不會使得下個段落緊接在後,如果你在\sschaptertitle
巨集和下一個段落之間,要放置一條空白列,則最後的 \noindent
,會作用到這空白列,而非下列的段落。為了要正確地格式化,在這個例子中,使用 \sschaptertitle
:
定義裡的 #1
陳述,由第一個參數,替換到 \chaptertitlesans
; ,也就是章名, TeX 的參數以 #1
,
#2
, #3
,等等前後順序宣告,一個如何使用\chaptertitlesans
的例子如下:
\chaptertitlesans{Chapter 1} This is the starting text of the first paragraph of the chapter. The paragraph will not be indented. The chapter's title is "Chapter 1."