Add a --list-fonts option, since getting PostScript names out of TrueType
[sgt/halibut] / doc / running.but
index d871459..6d6cb7a 100644 (file)
+\versionid $Id$
+
 \C{running} Running Halibut
 
-Running Halibut is very simple. You provide a set of input files on
-its command line, and it produces a set of output files.
+\I{running Halibut}In the simplest case, running Halibut is very
+easy. You provide a set of input files on its \i{command line}, and
+it produces a set of output files.
 
-\c $ halibut intro.but getting-started.but reference.but index.but
-\e   bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+\c $ halibut intro.but gettingstarted.but reference.but index.but
+\e   bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 
-This will generate a large set of output files:
+This will generate a large set of \i{output files}:
 
-\b \c{output.txt} will be a plain ASCII text version of the input
+\b \i\c{output.txt} will be a \i{plain text} version of the input
 document.
 
-\b \c{output.hlp} and \c{output.cnt} will be a Windows Help version
-of the same thing. (Most of the text is in \c{output.hlp};
-\c{output.cnt} contains additional contents data used by the Windows
-help topic selector. If you lose the latter, the former should still
-be usable, but it will look less modern.)
+\b \i\c{output.hlp} and \i\c{output.cnt} will be an old-style
+\i{Windows Help} version of the same thing. (Most of the text is in
+\c{output.hlp}; \c{output.cnt} contains additional contents data
+used by the Windows help topic selector. If you lose the latter, the
+former should still be usable, but it will look less modern.)
 
 \lcont{
-Note that Halibut does not require any external software such as a
-Help compiler. It \e{directly} generates Windows Help files, and
-therefore it doesn't need to be run on Windows to do so: it can
-generate them even when run from an automated script on a Unix
-machine.
+
+Note that to do this Halibut does not require any external software
+such as a \i{Help compiler}. It \e{directly} generates old-style
+Windows Help files, and therefore it doesn't need to be run on
+Windows to do so: it can generate them even when run from an
+automated script on a Unix machine.
+
 }
 
-\b \c{output.1} will be a Unix man page.
+\b \c{output.1} will be a Unix \i{\cw{man} page}.
 
-\b The set of files \c{*.html} will contain an HTML version of the
-document. If you have configured Halibut to generate more than one
-HTML file (the default), then the file \c{Contents.html} will be the
-topmost one that users should be directed to initially. If you have
-configured Halibut to generate a single file, it will be called
+\b The set of files \c{*.html} will contain an \i{HTML} version of
+the document. If you have configured Halibut to generate more than
+one HTML file (the default), then the file \c{Contents.html} will be
+the topmost one that users should be directed to initially. If you
+have configured Halibut to generate a single file, it will be called
 \c{Manual.html}.
 
-Unfortunately, in the current version, it is not possible to
-tell Halibut to generate these files under different names; so you
-will need to rename them manually after they are generated. (Even
-this won't work for the multiple-file HTML document, because there
-will be lots of internal hyperlinks between the various files which
-use their names.) Neither is it possible to tell Halibut not to
-bother generating some of the output formats, so you will need to
-delete any that you don't want.
-
-I regret this inconvenience; it arose because I was more interested
-in getting the difficult document-formatting code to work than I was
-in sorting out details like this which should be easy. At some point
-I plan to add some command-line options to configure all this.
+\b \c{output.info}, and some additional files \c{output.info-1},
+\c{output.info-2} etc., will be files suitable for use with GNU
+\c{info}.
+
+\b \c{output.pdf} will be a printable PDF manual.
+
+\b \c{output.ps} will be a printable PostScript manual.
+
+\H{running-options} \ii{Command-line options}
+
+Halibut supports command-line options in case you don't want to use
+all of Halibut's \i{output formats}, or you want to configure the
+names of your \i{output files}, or you want to supply additional
+configuration on the command line. The supported options are listed
+here.
+
+Firstly, there are options which indicate which of the output
+formats you want Halibut to generate:
+
+\dt \i\cw{--text}[\cw{=}\e{filename}]
+
+\dd Specifies that you want to generate plain text output. You can
+optionally specify a file name (e.g. \c{--text=myfile.txt}), in
+which case Halibut will change the name of the output file as well.
+
+\dt \i\cw{--html}[\cw{=}\e{filename}]
+
+\dd Specifies that you want to generate HTML output. You can
+optionally specify a file name (e.g. \c{--html=myfile.html}), in
+which case Halibut will change the name of the output file as well.
+Specifying a file name here will also cause the HTML to be output in
+\e{only} one file, instead of the usual behaviour of producing
+multiple files with links between them. If you want to produce
+multiple files and configure their names, you will need to use the
+more complete file name configuration directives given in
+\k{output-html-file} (although you may want to do so on the command
+line, using the \c{-C} option).
+
+\dt \i\cw{--xhtml}[\cw{=}\e{filename}]
+
+\dd Synonym for \c{--html}.
+
+\dt \i\cw{--winhelp}[\cw{=}\e{filename}]
+
+\dd Specifies that you want to generate old-style Windows Help
+output. You can optionally specify a file name (e.g.
+\c{--winhelp=myfile.hlp}), in which case Halibut will change the
+name of the output file as well.
+
+\lcont{
+
+Your output file name should end with \c{.hlp}; if it doesn't,
+Halibut will append it. Halibut will also generate a contents file
+(ending in \c{.cnt}) alongside the file name you specify.
+
+}
+
+\dt \i\cw{--whlp}[\cw{=}\e{filename}]
+
+\dd Synonym for \c{--winhelp}.
+
+\dt \i\cw{--hlp}[\cw{=}\e{filename}]
+
+\dd Synonym for \c{--winhelp}.
+
+\dt \i\cw{--man}[\cw{=}\e{filename}]
+
+\dd Specifies that you want to generate \cw{man} page output. You
+can optionally specify a file name (e.g. \c{--man=myfile.5}), in
+which case Halibut will change the name of the output file as well.
+
+\dt \i\cw{--info}[\cw{=}\e{filename}]
+
+\dd Specifies that you want to generate GNU \c{info} output. You can
+optionally specify a file name (e.g. \c{--info=myfile.info}), in
+which case Halibut will change the name of the output file as well.
+
+\lcont{
+
+Unless the \c{info} output format is configured not to (see
+\k{output-info}), Halibut will divide the \c{info} output into many
+small files. The extra files will have numeric suffixes on their
+names; so, for example, \c{output.info} might be accompanied by
+additional files \c{output.info-1}, \c{output.info-2} and so on.
+
+}
+
+\dt \i\cw{--pdf}[\cw{=}\e{filename}]
+
+\dd Specifies that you want to generate PDF output. You
+can optionally specify a file name (e.g. \c{--pdf=myfile.pdf}), in
+which case Halibut will change the name of the output file as well.
+
+\dt \i\cw{--ps}[\cw{=}\e{filename}]
+
+\dd Specifies that you want to generate PostScript output. You
+can optionally specify a file name (e.g. \c{--ps=myfile.ps}), in
+which case Halibut will change the name of the output file as well.
+
+If you do not specify any of the above options, Halibut will simply
+produce \e{all} of its output formats.
+
+Also, there is an option which allows you to specify an arbitrary
+\i\c{\\cfg} configuration directive (see \k{input-config}):
+
+\dt \i\cw{-C}\e{config-directive}\cw{:}\e{value}[\cw{:}\e{value}...]
+
+\dd The text following \c{-C} is expected to be a colon-separated
+list of strings. (If you need a literal colon, you can escape it
+with a backslash: \c{\\:}. If you need a literal \e{backslash}, you
+can do the same: \c{\\\\}.) These strings are used as the parts of a
+\c{\\cfg} directive. So, for example, the option
+
+\lcont{
+
+\c -Ctext-section-align:2:leftplus
+
+will translate into the configuration directive
+
+\c \cfg{text-section-align}{2}{leftplus}
+
+(Note that your shell may also take an interest in backslashes,
+particularly under Unix. You may find that the backslash with which
+you escape a colon must be doubled in order to make the shell pass
+it to Halibut at all, and to pass a doubled backslash to Halibut you
+might have to type four backslashes on your shell command line. This
+is not part of Halibut's own behaviour, and it cannot do anything
+about it.)
+
+Configuration directives created in this way take effect after all
+other input has been processed. (In most cases, this has the effect of
+overriding any other instances of the directive in the input.)
+
+}
+
+The options which set the output file names actually work by
+implicitly generating these configuration directives. When you
+specify \c{--text=myfile.txt}, for example, Halibut treats it
+identically to \c{--text -Ctext-filename:myfile.txt}. The Windows
+Help and man page formats work similarly. HTML is slightly
+different, since it also arranges for single-file output if you pass
+a filename to \c{--html}; so \c{--html=myfile.html} is equivalent to
+\c{--html -Chtml-single-filename:myfile.html -Chtml-leaf-level:0}.
+(See \k{output} for explanations of all these configuration
+directives.)
+
+In addition to these, there are also a few other options:
+
+\dt \i\cw{--input-charset}\cw{=}\e{charset}
+
+\dd Changes the default assumed \i{character set} for all input files from
+ASCII to something else. (\cw{-Cinput-charset} cannot be used for
+this, as \cw{-C} directives are processed after all other input, so
+wouldn't affect any files.)
+
+\lcont{
+
+Any \cw{\\cfg\{input-charset\}} directives within input files override
+this option.
+
+See \k{input-config} for more information about the input character set.
+
+}
+
+\dt \I{character sets, enumerating}\i\cw{--list-charsets}
+
+\dd List character sets known to Halibut.
+
+\dt \i\cw{--list-fonts}
+
+\dd List fonts known to Halibut, both those it intrinsically knows about
+and those found in its input files.
+
+\dt \i\cw{--help}
+
+\dd Print a brief help message and exit immediately. (Don't confuse
+this with \c{--winhelp}!)
+
+\dt \i\cw{--version}
+
+\dd Print information about Halibut's version number and exit
+immediately.
+
+\dt \i\cw{--licence}
+
+\dd Display Halibut's licence (see also \k{licence}) and exit
+immediately.
+
+\dt \cw{--license}
+
+\dd US English alternative spelling of \c{--licence}.
+
+\dt \i\cw{--precise}
+
+\dd Report column numbers as well as line numbers when reporting
+errors in the Halibut input files.