准备 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."