#### 42.2.6 Assigning a macro or variable to a configuration variable

When you assign a value to a configuration variable, and the value includes the name of a macro or a macro variable, whether or not that name should be enclosed in quotes depends on the context:

- In a *Config PI marker, a value is always assigned literally, as is, so you can either include or omit quotes around the name of a macro or variable.
- In a macro, a value is assigned literally only if it is enclosed in quotes. If the value includes a macro name, the entire value should be quoted. Such a value may not contain a quote.

For example:

HTMConfig: [StyleCodeAfter]=<$macafter>

HTML Macro: <$$[StyleCodeAfter]="<$macafter>">

Angle brackets get processed in a macro

When you assign a value to a configuration variable in a macro, and the value contains any < or > characters (angle brackets), absent enclosing quotes DITA2Go processes each angle bracket as the start or end of a macro, instead of assigning the entire value as a string. That is, DITA2Go would try to figure out if maybe the string is something else first. When the value includes a > character that it is not in quotes, the macro ends prematurely. In this example:

<$$[StyleCodeAfter]=<hr>>

DITA2Go would assign only <hr to the configuration variable, because the > after <hr would be taken as the end of the macro; and then DITA2Go would drop the real ending > into the current text.

Unquoted variables are evaluated in a macro

When you assign a macro variable to a configuration variable in a macro:

- Enclose the macro variable name in quotes if you want the macro variable to be evaluated later, at run time.
- Do not enclose the macro variable name in quotes if you want the macro variable to be evaluated immediately, so the configuration setting gets the current value of the macro variable instead of just its name.

Previous Topic: 42.2.5 Adding a new configuration setting on the fly

Next Topic: 42.2.7 Understanding fixed-key vs. variable-key settings

Parent Topic: 42.2 Overriding settings with PI markers or macros

Sibling Topics:

42.2.1 Determining the extent of a configuration override

42.2.2 Overriding settings with configuration PI markers

42.2.3 Overriding settings with macros

42.2.4 Assigning values to configuration variables

42.2.5 Adding a new configuration setting on the fly

42.2.7 Understanding fixed-key vs. variable-key settings

42.2.8 Overriding fixed-key configuration settings

42.2.9 Overriding variable-key configuration settings

42.2.10 Assigning HTML table and graphic groups with overrides