19.1 Invoking texi2any from a Shell

To process a Texinfo file, invoke texi2any followed by the name of the Texinfo file. Also select the format you want to output with the appropriate command line option (default is Info). Thus, to create the Info file for Bison, type the following to the shell:

texi2any --info bison.texi

You can specify more than one input file name; each is processed in turn. If an input file name is ‘-’, standard input is read.

The texi2any program accepts many options. Perhaps the most basic are those that change the output format. By default, texi2any outputs Info.

Each command line option is either a long name preceded by ‘--’ or a single letter preceded by ‘-’. You can use abbreviations for the long option names as long as they are unique.

For example, you could use the following shell command to create an Info file for bison.texi in which lines are filled to only 68 columns:

texi2any --fill-column=68 bison.texi

You can write two or more options in sequence, like this:

texi2any --no-split --fill-column=70 ...

(This would keep the Info file together as one possibly very long file and would also set the fill column to 70.)

The options are (approximately in alphabetical order):

--commands-in-node-names

This option now does nothing, but remains for compatibility. (It used to ensure that @-commands in node names were expanded throughout the document, especially @value. This is now done by default.)

--conf-dir=dir

Prepend dir to the directory search list for finding customization files that may be loaded with --init-file (see below). The dir value can be a single directory, or a list of several directories separated by the usual path separator character (‘:’ on Unix-like systems, ‘;’ on Windows).

--css-include=file

When producing HTML, literally include the contents of file, which should contain Cascading Style Sheets specifications, in the ‘<style>’ block of the HTML output. If file is ‘-’, read standard input. See HTML CSS.

--css-ref=url

When producing HTML, add a ‘<link>’ tag to the output which references a cascading style sheet at url. This allows using standalone style sheets.

-D var
-D 'var value'

Cause the Texinfo variable var to be defined. This is equivalent to @set var in the Texinfo file (see Flags: @set, @clear, conditionals, and @value).

The argument to the option is always one word to the shell; if it contains internal whitespace, the first word is taken as the variable name and the remainder as the value. For example, -D 'myvar someval' is equivalent to @set myvar someval.

--docbook

Generate DocBook output (rather than Info).

--document-language=lang

Use lang to translate Texinfo keywords which end up in the output document. The default is the locale specified by the @documentlanguage command if there is one, otherwise English (see @documentlanguage ll[_cc]: Set the Document Language).

--dvi

Generate a TeX DVI file using texi2dvi, rather than Info (see texi2any Printed Output).

--dvipdf

Generate a PDF file using texi2dvi --dvipdf, rather than Info (see texi2any Printed Output).

--enable-encoding
--disable-encoding

By default, or with --enable-encoding, output accented and special characters in Info and plain text output based on the document encoding. With --disable-encoding, 7-bit ASCII transliterations are output. Also obeyed in other output formats for index keys sorting and for some plain text output.

--epub3

Generate EPUB 3 output.

--error-limit=limit
-e limit

Report limit errors before aborting (on the assumption that continuing would be useless); default 100.

--fill-column=width
-f width

Specify the maximum number of columns in a line; this is the right-hand edge of a line. Paragraphs that are filled will be filled to this width. (Filling is the process of breaking up and connecting lines so that lines are the same length as or shorter than the number specified as the fill column. Lines are broken between words.) The default value is 72.

--footnote-style=style
-s style

Set the footnote style to style: either ‘end’ for the end node style (the default) or ‘separate’ for the separate node style. The value set by this option overrides the value set in a Texinfo file by a @footnotestyle command (see Footnote Styles).

In Info, when the footnote style is ‘separate’, texi2any makes a new node containing the footnotes found in the current node. When the footnote style is ‘end’, texi2any places the footnote references at the end of the current node.

In HTML, when the footnote style is ‘end’, or if the output is not split, footnotes are put at the end of the output. If set to ‘separate’, and the output is split, they are placed in a separate file.

--force
-F

Ordinarily, if the input file has errors, the output files are not created. With this option, they are preserved.

--help
-h

Print a message with available options and basic usage, then exit successfully.

--html

Generate HTML output (rather than Info). By default, the HTML output is split into one output file per node, and the split output is written into a subdirectory based on the name of the input file. See Generating HTML.

-I dir

Append dir to the directory search list for finding files that are included using the @include command. By default, texi2any searches only the current directory. If dir is not given, the current directory is appended. The dir value can be a single directory or a list of several directories separated by the usual path separator character (‘:’ on Unix-like systems, ‘;’ on Windows).

--ifdocbook
--ifhtml
--ifinfo
--iflatex
--ifplaintext
--iftex
--ifxml

For the given format, process ‘@ifformat’ and ‘@format’ commands, and do not process ‘@ifnotformat’, regardless of the format being output. For instance, if --iftex is given, then ‘@iftex’ and ‘@tex’ blocks will be read, and ‘@ifnottex’ blocks will be ignored.

--no-ifdocbook
--no-ifhtml
--no-ifinfo
--no-iflatex
--no-ifplaintext
--no-iftex
--no-ifxml

For the given format, do not process ‘@ifformat’ and ‘@format’ commands, and do process ‘@ifnotformat’, regardless of the format being output. For instance, if --no-ifhtml is given, then ‘@ifhtml’ and ‘@html’ blocks will not be read, and ‘@ifnothtml’ blocks will be.

--info

Generate Info output. By default, if the output file contains more than about 300,000 bytes, it is split into shorter subfiles of about that size. The name of the output file and any subfiles is determined by the input file name, or by @setfilename, if present (see Setting the Output File Name). See Tag Files and Split Files.

--init-file=file

Load file as code to modify the behavior and output of the generated manual. It is customary to use the .pm or the .init extensions for these customization files, but that is not enforced; the file name can be anything. The --conf-dir option (see above) can be used to add to the list of directories in which these customization files are searched for.

--internal-links=file

In HTML mode, output a tab-separated file containing three columns: the internal link to an indexed item or item in the table of contents, the name of the index (or table of contents) in which it occurs, and the term which was indexed or entered. The items are in the natural sorting order for the given element. This dump can be useful for post-processors.

--latex

Generate LaTeX output.

--macro-expand=file
-E file

Output the Texinfo source, with all Texinfo macros expanded, to file. Normally, the result of macro expansion is used internally by texi2any and then discarded.

--no-headers

Do not include menus or node separator lines in the output.

When generating Info, this is the same as using --plaintext, resulting in a simple plain text file. Furthermore, output is to standard output unless overridden with -o. (This behavior is for backward compatibility.)

When generating HTML, and output is split, also output navigation links only at the beginning of each file. If output is not split, do not include navigation links at the top of each node at all. See Generating HTML.

--node-files
--no-node-files

With --node-files, when generating HTML, create redirection files for anchors and any nodes not already output with the file name corresponding to the node name (see HTML Cross-reference Node Name Expansion). This makes it possible for section- and chapter-level cross-manual references to succeed (see HTML Cross-reference Configuration: htmlxref.cnf).

If the output is split, this is enabled by default. If the output is not split, --node-files enables the creation of the redirection files, in addition to the monolithic main output file. --no-node-files suppresses the creation of redirection files in any case. This option has no effect with any output format other than HTML. See Generating HTML.

--no-validate
--no-pointer-validate

Suppress the pointer-validation phase of texi2any—a dangerous thing to do. This can also be done with the @novalidate command (see Formatting Partial Documents).

If you do not suppress pointer validation, texi2any will check the validity of cross-references and menu entries in the Texinfo file, as well as node pointers if they are given explicitly.

--no-warn

Suppress warning messages (but not error messages).

--number-footnotes
--no-number-footnotes

With --no-number-footnotes, suppress automatic footnote numbering. By default, footnotes are numbered sequentially within a node, i.e., the current footnote number is reset to 1 at the start of each node.

--number-sections
--no-number-sections

With --number-sections (the default), output chapter, section, and appendix numbers as in printed manuals. This works only with hierarchically structured manuals. You should specify --no-number-sections if your manual is not normally structured.

--output=file
-o file

Specify that the output should be directed to file. This overrides any file name specified in a @setfilename command found in the Texinfo source. If neither @setfilename nor this option are specified, the input file name is used to determine the output name. See Setting the Output File Name.

If file is ‘-’, output goes to standard output and ‘--no-split’ is implied.

If file is a directory or ends with a ‘/’ the usual rules are used to determine the output file name (namely, use @setfilename or the input file name) but the files are written to the file directory. For example, ‘texi2any -o bar/ foo.texi’, with or without --no-split, will write bar/foo.info, and possibly other files, under bar/.

When generating HTML and output is split, file is used as the name for the directory into which all files are written. For example, ‘texi2any -o bar --html foo.texi’ will write bar/index.html, among other files.

When generating EPUB a container directory for the files and directories needed for the EPUB format is created, as well as the EPUB output file. If file corresponds to a directory, the container directory is placed within file. The EPUB output file is never put in this directory. If file corresponds to a file, it is used for the EPUB output file name.

--output-indent=val

This option now does nothing, but remains for compatibility. (It used to alter indentation in XML/DocBook output.)

-P path

Prepend path to the directory search list for @include. If path is not given, the current directory is prepended. See ‘-I’ above.

--paragraph-indent=indent
-p indent

Set the paragraph indentation style to indent. The value set by this option overrides the value set in a Texinfo file by an @paragraphindent command (see @paragraphindent: Controlling Paragraph Indentation). The value of indent is interpreted as follows:

asis

Preserve any existing indentation (or lack thereof) at the beginnings of paragraphs.

0’ or ‘none

Delete any existing indentation.

num

Indent each paragraph by num spaces.

The default is to indent by two spaces, except for paragraphs following a section heading, which are not indented.

--pdf

Generate a PDF file using texi2dvi --pdf, rather than Info (see texi2any Printed Output).

--plaintext

Output a plain text file (rather than Info): do not include menus or node separator lines in the output. This results in a straightforward plain text file that you can (for example) send in email without complications, or include in a distribution (for example, an INSTALL file).

With this option the output goes to standard output by default, instead of to a file with a name based on the input file name or @setfilename; this can be overridden with -o.

--ps

Generate a PostScript file using texi2dvi --ps, rather than Info (see texi2any Printed Output).

--set-customization-variable var=value
-c var=value

Set the customization variable var to value. The = is optional, but both var and value must be quoted to the shell as necessary so the result is a single word. Many aspects of texi2any behavior and output may be controlled by customization variables, beyond what can be set in the document by @-commands and with other command line switches. See Customization Variables.

--split=how
--no-split

When generating Info, by default large output files are split into smaller subfiles, of approximately 300k bytes. When generating HTML, by default each output file contains one node (see Generating HTML). --no-split suppresses this splitting of the output.

Alternatively, --split=how may be used to specify at which level the HTML output should be split. The possible values for how are:

chapter

The output is split at @chapter and other sectioning @-commands at this level (@appendix, etc.).

section

The output is split at @section and similar.

node

The output is split at every node. This is the default.

Plain text output can be split similarly to HTML. This may be useful for extracting sections from a Texinfo document and making them available as separate files.

--split-size=num

Keep Info files to at most num characters if possible; default is 300,000. (However, a single node will never be split across Info files.)

--transliterate-file-names

Enable transliteration of non-ASCII characters in node names for the purpose of file name creation. See HTML Cross-reference 8-bit Character Expansion.

-U var

Cause var to be undefined. This is equivalent to @clear var in the Texinfo file (see Flags: @set, @clear, conditionals, and @value).

--verbose

Cause texi2any to display messages saying what it is doing. Normally, texi2any only outputs messages if there are errors or warnings.

--version
-V

Print the version number, then exit successfully.

--Xopt str

Pass str (a single shell word) to texi2dvi; may be repeated (see texi2any Printed Output).

--xml

Generate Texinfo XML output (rather than Info).