输入 后latex -help
,您可以获得所有命令行参数的列表。据我所知,原始 TeX/LaTeX 书籍中没有提到这些。所以,我想知道它们是如何诞生的,更重要的是,它们如何演变。
例如,添加一个标志来将记录消息的宽度更改为无限制,或者禁用有关文件包含的消息以及其他想法可能会很有用。
如果有人感兴趣的话,下面是我在我的机器上得到的输出:
Usage: pdftex [OPTION]... [TEXNAME[.tex]] [COMMANDS]
or: pdftex [OPTION]... \FIRST-LINE
or: pdftex [OPTION]... &FMT ARGS
Run pdfTeX on TEXNAME, usually creating TEXNAME.pdf.
Any remaining COMMANDS are processed as pdfTeX input, after TEXNAME is read.
If the first line of TEXNAME is %&FMT, and FMT is an existing .fmt file,
use it. Else use `NAME.fmt', where NAME is the program invocation name,
most commonly `pdftex'.
Alternatively, if the first non-option argument begins with a backslash,
interpret all non-option arguments as a line of pdfTeX input.
Alternatively, if the first non-option argument begins with a &, the
next word is taken as the FMT to read, overriding all else. Any
remaining arguments are processed as above.
If no arguments or options are specified, prompt for input.
-draftmode switch on draft mode (generates no output PDF)
-enc enable encTeX extensions such as \mubyte
-etex enable e-TeX extensions
[-no]-file-line-error disable/enable file:line:error style messages
-fmt=FMTNAME use FMTNAME instead of program name or a %& line
-halt-on-error stop processing at the first error
-ini be pdfinitex, for dumping formats; this is implicitly
true if the program name is `pdfinitex'
-interaction=STRING set interaction mode (STRING=batchmode/nonstopmode/
scrollmode/errorstopmode)
-ipc send DVI output to a socket as well as the usual
output file
-ipc-start as -ipc, and also start the server at the other end
-jobname=STRING set the job name to STRING
-kpathsea-debug=NUMBER set path searching debugging flags according to
the bits of NUMBER
[-no]-mktex=FMT disable/enable mktexFMT generation (FMT=tex/tfm/pk)
-mltex enable MLTeX extensions such as \charsubdef
-output-comment=STRING use STRING for DVI file comment instead of date
(no effect for PDF)
-output-directory=DIR use existing DIR as the directory to write files in
-output-format=FORMAT use FORMAT for job output; FORMAT is `dvi' or `pdf'
[-no]-parse-first-line disable/enable parsing of first line of input file
-progname=STRING set program (and fmt) name to STRING
-recorder enable filename recorder
[-no]-shell-escape disable/enable \write18{SHELL COMMAND}
-shell-restricted enable restricted \write18
-src-specials insert source specials into the DVI file
-src-specials=WHERE insert source specials in certain places of
the DVI file. WHERE is a comma-separated value
list: cr display hbox math par parend vbox
-synctex=NUMBER generate SyncTeX data for previewers if nonzero
-translate-file=TCXNAME use the TCX file TCXNAME
-8bit make all characters printable by default
-help display this help and exit
-version output version information and exit
Email bug reports to [email protected].
答案1
命令行选项是在从 unix tex 派生的 web2c 实现中,具体来说
/source/texk/web2c/lib/texmfmp.c
从哪里开始
/* texmfmp.c: Hand-coded routines for TeX or Metafont in C. Originally
written by Tim Morgan, drawing from other Unix ports of TeX. This is
a collection of miscellany, everything that's easier (or only
possible) to do in C.
This file is public domain. */
/* This file is included from, e.g., texextra,c after
#define EXTERN
#include <texd.h>
to instantiate data from texd.h here. The ?d.h file is what
#defines TeX or MF, which avoids the need for a special
Makefile rule. */
我认为各个选项已经随着时间的推移而发展,主要是在 Karl Berry 对 texlive 工作的管理下。
请注意,记录消息的宽度的特定特征可以在文件中配置,texmf.cnf
而不是在命令行开关中配置。