TEX(1)

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

SYNOPSIS 总览
tex [options] [commands]

DESCRIPTION 描述
这份手册页并不全面。此版本的 TeX 完整的文档可以从 info 文件或者手册 Web2C: A TeX implementation 中找到。

TeX 格式化指定的文件中包含着命令的文本，输出一个设备无关的文件 (称为 DVI ，即 “设备无关” DeVice Independent 的缩写)。在 The TeXbook 中讲述了 TeX 的功能和语言。 TeX 通常与一个大型的预编译的宏包同时使用，有一些特定的排版系统，例如 LaTeX, 通常需要很多宏包的支持。

这个版本的 TeX 通过查看它的命令行，查找自身是以什么名称被调用的。 initex 和 virtex 都是到可执行文件 tex 的符号链接。当作为 initex 调用时 (或者使用了 --ini 选项时)，它可以用于将宏预编译，输出到一个 .fmt 文件中。当作为 virtex 调用时，它将使用 plain 格式。当以任何其他名称调用时，TeX 将使用那个名称作为要使用的格式名称。例如，当作为 tex 调用时，将使用 tex 格式，这与 plain 格式是相同的。 plain 格式中定义的命令记载在 The TeXbook 中。其他常用的格式包括 latex 和 amstex 。

调用 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)。

OPTIONS 选项
这个版本的 TeX 可以解释下列命令行选项。

--file-line-error-style
    打印错误消息，以 file:line:error 的形式，与大多数编译器格式化消息的方式相似。

--fmt format
    使用 format 作为要使用的格式名，而不是调用 TeX 的名称或者 %& 一行指定的内容。

--help
    打印帮助信息，然后退出。

--ini
    成为 initex ，用于转储格式 (dump formats)；如果调用的程序名是 initex ，那么隐含这个选项。

--interaction mode
    设置交互模式。mode 可以是 batchmode, nonstopmode, scrollmode, 和 errorstopmode 其中之一。这些模式的含义与相应的 \commands 相同。

--ipc
    将 DVI 输出发送到一个 socket，同时像通常那样输出到文件。这个选项是否可用取决于安装程序的选择。

--ipc-start
    与 --ipc 类似，并且同时也在另一段启动服务器。这个选项是否可用取决于安装程序的选择。

--jobname name
    使用 name 作为作业名，而不是从输入文件名获得。

--kpathsea-debug bitmask
    根据位掩码，设置路径搜索调试标志。细节请参见 Kpathsea 手册页。

--maketex fmt
    启用 mktexfmt ，这里 fmt 必须是 tex 或者 tfm 之一。

--mltex
    启用 MLTeX 扩展。

--no-maketex fmt
    禁用 mktexfmt 这里 fmt 必须是 tex 或者 tfm 之一。

--output-comment string
    使用 string 作为 DVI 文件的注释，而不是时间。

--parse-first-line
    如果主输入文件的第一行以 %& 开始，就解释它，从中查找一个转储名称或者一个 --translate-file 选项。

--progname name
    伪装是程序 name 。这对所用格式和搜索路径都有影响。

--recorder
    启用文件名记录。这将在一个扩展名为 .fls 的文件中记录输入和输出中打开的所有文件。

--shell-escape
    启用 \write18{command} 结构。 command 可以是任何 Bourne shell 命令。出于安全原因，这个结构通常被禁止。

--translate-file tcxname
    使用 tcxname 转换表。

--version
    显示版本信息，然后退出。

ENVIRONMENT 环境
参见 Kpathsearch 库的文档 (手册页的 `Path specifications' 节点) 来查看使用环境变量的精确的细节。 kpsewhich 实用工具可以用来查询变量的值。

警告：在大多数 TeX 格式中，不能直接传给 TeX 带有 ~ 的文件名，因为 ~ 是一个有特殊意义的字符，它将被扩展，不会作为文件名的一部分。其他程序，例如 Metafont，没有这个问题。

TEXMFOUTPUT
    通常，TeX 将输出文件放在当前目录。如果不能在那里创建任何输出文件，它试着在环境变量 TEXMFOUTPUT 指定的目录中创建它。这个参数没有默认值。例如，假设命令是 tex paper 并且当前目录不可写，如果 TEXMFOUTPUT 设置为 /tmp ，TeX 试图创建 /tmp/paper.log (还有 /tmp/paper.dvi ，如果产生了任何输出。)

TEXINPUTS
    \input 和 \openin 文件的搜索路径。它们一般应当以 ``.'' 开始，使得用户文件可以先于系统文件被找到。空路径成分将被替换为 texmf.cnf 文件中定义的路径。例如，设置 TEXINPUTS 为 ".:/home/usr/tex:" 来将当前目录和 ``/home/user/tex'' 添加到标准的搜索路径之前。

TEXEDIT
    切换为编辑器的命令模板。默认值通常是 vi ，在 TeX 编译时进行设置。

FILES 文件
下面提到的文件的位置在各个系统中是不相同的。使用 kpsewhich 实用工具来找到它们的位置。

texmf.cnf
    配置文件。它包含着搜索路径的定义，还有其他配置参数，例如 parse_first_line.

tex.pool
    编码的文本，是 TeX 的提示消息。

texfonts.map
    文件名映射定义。

*.tfm
    TeX 字体的度量的文件。

*.fmt
    简写的 TeX 格式 (.fmt) 文件。

$TEXMFMAIN/tex/plain/base/plain.tex
    基本的宏包，在 TeXbook 中有详细描述。

BUGS
这个版本的 TeX 实现了大量的可选的扩展。实际上，其中大部分与 TeX 的定义有或多或少的冲突。当启用这样的扩展时，TeX 启动时打印的提示信息将是 TeXk 而不是 TeX 。

这个版本的 TeX 在面积增加或减少时不能捕获算术下溢错误。这种情况很少见，但是一旦出现，产生的 DVI 文件将是无效的。

SEE ALSO 参见
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).

TRIVIA 提醒
TeX，如果发音正确的话，与 ``blecchhh'' 押韵 (rhymes)。使用 typewriter 字体时，正确的拼写是 ``TeX'' 而不是 ``TEX'' 或者 ``tex''。

AUTHORS 作者
TeX 的设计者是 by Donald E. Knuth，他用他的 Web 系统实现了它。后来，它分别被 Stanford 的 Howard Tricky 和 Cornell 的 Pavel Curtis 移植到了 Unix。当前随 Unix TeX 发行的这个版本使用了 Web 到 C 的翻译系统 (web2c) 来产生， (web2c) 最初由 Tomas Rokicki 和 Tim Morgan 实现。