Prev Next Index-> contents reference index search external Up-> overview latex LatexMacro overview-> License why Install get_started running files titles+headings cross format spellchecking latex other browser glossary whatsNew latex-> symbol diacritical stdfun subsup frac sqrt array left_right under_over stackrel latexfont latexcomment LatexMacro mathml LatexMacro Headings-> Syntax ---..Definition ---..Usage Definition ---..Global Scope ---..Section Scope ---..Name ---..Text ---..M ---..N ---..JK Usage Examples ---..No Arguments ---..Two Arguments ---..Using Pound Sign in a Macro ---..Recursion ---..Mathml Restrictions Nonstandard

The Latex Macro Preprocessor

Syntax

Definition

Usage
\Name  \Name{A1} ... {AM}

Definition
When running OMhelp with the -xml command line option, Latex macros can be defined and used in latex mode.

Global Scope
Macros defined using a \newcommand in the root section have global scope; i.e., are defined for all sections. This avoids having to entirely reprocess all the macros for each section (which could be time consuming for large numbers of macros). It is suggested that you put all these macros in one file using an inline latex command. (You cannot use a displayed latex command when you are just defining macros and there is no output to be displayed.)

Section Scope
Macros defined in sections, other than the root section, are limited in scope to the section they are defined in; i.e., they do not affect any other sections.

Name
The sequence of upper or lower case letters Name specifies the name of the macro.

Text
For K = 0 , ... , N , TextK is a sequence of characters. The character # does not appear in TextK except if directly preceded by a back slash; i.e., \#. In addition, TextK does not contain any } characters unless preceded by a matching { character.

M
The decimal digit M is between one and nine inclusive. It specifies the number of arguments connected to the corresponding \Name macro. If M is not present in the macro definition, it is implicitly zero in the discussion below.

N
The number of replacements made with each use of the macro is denoted by N .

JK
For K = 1 , ... , N , the decimal digit JK is between one and M . It specifies which argument is placed directly before TextK in the macro expansion.

Usage
If the macro \Name is defined with no arguments, the macro usage       \Name  has the replacement value       Text0  corresponding to the definition of \Name . If the macro \Name is defined with M arguments, the macro usage       \Name{A1} ... {AM}  has the replacement value       Text0 A1 Text_1 ... TextN-1 AN TextN  where N , and TextK for K = 1 , .. , N , corresponds to the definition of \Name .

Examples

No Arguments

Restrictions
If two macros are defined with the same value of Name, an error message is printed and OMhelp stops.

Nonstandard
Latex macros in OMhelp are different from those in standard Section 3.4.1 of Lamport's book . The following is a list of these differences:
1. It is ok (not an error) to redefine any of the standard Latex commands.
2. Macro replacement values cannot use other macros; i.e., the values of   Text_K in an macro definition, and the value of   A_J in a macro usage, cannot use other macros.
3. Macros defined in sections, other than the root section , have local scope; i.e., do not affect any other sections.

Input File: latex/LatexMacro.omh