6.1.7 @var{metasyntactic-variable}

Use the @var command to indicate metasyntactic variables. A metasyntactic variable is something that stands for another piece of text. For example, you should use a metasyntactic variable in the documentation of a function to describe the arguments that are passed to that function.

Do not use @var for the names of normal variables in computer programs. These are specific names, so @code is correct for them. For example, the Emacs Lisp variable texinfo-tex-command is not a metasyntactic variable; it is properly formatted using @code.

Do not use @var for environment variables either; @env is correct for them (see the next section).

The effect of @var in the Info file is to change the case of the argument to all uppercase. In the printed manual, the argument is output in slanted type. 4

For example,

To delete file @var{filename},
type @samp{rm @var{filename}}.


To delete file filename, type ‘rm filename’.

(Note that @var may appear inside @code, @samp, @file, etc.)

Write a metasyntactic variable all in lowercase without spaces, and use hyphens to make it more readable. Thus, the Texinfo source for the illustration of how to begin a Texinfo manual looks like this:

\input texinfo
@@settitle @var{name-of-manual}

This produces:

\input texinfo
@settitle name-of-manual

In some documentation styles, metasyntactic variables are shown with angle brackets, for example:

..., type rm <filename>

However, that is not the style that Texinfo uses.



In TeX output, @var currently uses a slanted typewriter font in code contexts such as @code or @example. We plan to change this in the next release to use a variable-width, slanted roman font in all contexts. To avoid this change, set the ‘txicodevaristt’ flag using @set; specify ‘@clear txicodevaristt’ to make this change now (see @set and @value). Note that this flag does nothing in LaTeX output.