Next: , Previous: , Up: Defining New Texinfo Commands   [Contents][Index]


17.5 @definfoenclose: Customized Highlighting

An @definfoenclose command may be used to define a highlighting command for all the non-TeX output formats. A command defined using @definfoenclose marks text by enclosing it in strings that precede and follow the text. You can use this to get closer control of your output.

Presumably, if you define a command with @definfoenclose, you will create a corresponding command for TeX, either in texinfo.tex, texinfo.cnf, or within an ‘@iftex’ or ‘@tex’ in your document.

Write a @definfoenclose command at the beginning of a line followed by three comma-separated arguments. The first argument to @definfoenclose is the @-command name (without the @); the second argument is the start delimiter string; and the third argument is the end delimiter string. The latter two arguments enclose the highlighted text in the output.

A delimiter string may contain spaces. Neither the start nor end delimiter is required. If you do not want a start delimiter but do want an end delimiter, you must follow the command name with two commas in a row; otherwise, the end delimiter string you intended will naturally be (mis)interpreted as the start delimiter string.

If you do a @definfoenclose on the name of a predefined command (such as @emph, @strong, @t, or @i), the enclosure definition will override the built-in definition. We don’t recommend this.

An enclosure command defined this way takes one argument in braces, since it is intended for new markup commands (see Marking Text).

For example, you can write:

@definfoenclose phoo,//,\\

near the beginning of a Texinfo file to define @phoo as an Info formatting command that inserts ‘//’ before and ‘\\’ after the argument to @phoo. You can then write @phoo{bar} wherever you want ‘//bar\\’ highlighted in Info.

For TeX formatting, you could write

@iftex
@global@let@phoo=@i
@end iftex

to define @phoo as a command that causes TeX to typeset the argument to @phoo in italics.

Each definition applies to its own formatter: one for TeX, the other for everything else. The raw TeX commands need to be in ‘@iftex’. @definfoenclose command need not be within ‘@ifinfo’, unless you want to use different definitions for different output formats.

Here is another example: write

@definfoenclose headword, , :

near the beginning of the file, to define @headword as an Info formatting command that inserts nothing before and a colon after the argument to @headword.

@definfoenclose’ definitions must not be recursive, directly or indirectly.


Next: , Previous: , Up: Defining New Texinfo Commands   [Contents][Index]