Node:Command Syntax, Next:, Previous:Refilling Paragraphs, Up:Top



@-Command Syntax

The character @ is used to start special Texinfo commands. (It has the same meaning that \ has in plain TeX.) Texinfo has four types of @-command:

1. Non-alphabetic commands.
These commands consist of an @ followed by a punctuation mark or other character that is not part of the alphabet. Non-alphabetic commands are almost always part of the text within a paragraph, and never take any argument. The two characters (@ and the other one) are complete in themselves; none is followed by braces. The non-alphabetic commands are: @., @:, @*, @SPACE, @TAB, @NL, @@, @{, and @}.
2. Alphabetic commands that do not require arguments.
These commands start with @ followed by a word followed by left- and right-hand braces. These commands insert special symbols in the document; they do not require arguments. For example, @dots{} => ..., @equiv{} => ==, @TeX{} => `TeX', and @bullet{} => .
3. Alphabetic commands that require arguments within braces.
These commands start with @ followed by a letter or a word, followed by an argument within braces. For example, the command @dfn indicates the introductory or defining use of a term; it is used as follows: In Texinfo, @@-commands are @dfn{mark-up} commands.
4. Alphabetic commands that occupy an entire line.
These commands occupy an entire line. The line starts with @, followed by the name of the command (a word); for example, @center or @cindex. If no argument is needed, the word is followed by the end of the line. If there is an argument, it is separated from the command name by a space. Braces are not used.

Thus, the alphabetic commands fall into classes that have different argument syntaxes. You cannot tell to which class a command belongs by the appearance of its name, but you can tell by the command's meaning: if the command stands for a glyph, it is in class 2 and does not require an argument; if it makes sense to use the command together with other text as part of a paragraph, the command is in class 3 and must be followed by an argument in braces; otherwise, it is in class 4 and uses the rest of the line as its argument.

The purpose of having a different syntax for commands of classes 3 and 4 is to make Texinfo files easier to read, and also to help the GNU Emacs paragraph and filling commands work properly. There is only one exception to this rule: the command @refill, which is always used at the end of a paragraph immediately following the final period or other punctuation character. @refill takes no argument and does not require braces. @refill never confuses the Emacs paragraph commands because it cannot appear at the beginning of a line.