### 9.11 Chart Options ¶

Chart options are global settings that impact overall chart appearance or set defaults for chart elements. Chart options can be specified at any place in the input file, but typically they are specified before anything else. The syntax is as below.

    option = value, ... ;

The following chart options are defined.

`msc`

  This option takes a chart design name as parameter and sets, how the chart will be drawn. It is usually specified as the first thing in the file before any other chart option. However, it can be specified multiple times, in which case its effect takes place downward from the chart option. If not specified then the ‘`plain`’ design is used. Note that this option can be overridden from the command line and also from the Windows GUI. Also note that only full designs can be applied with the ‘`=`’ symbol, partial designs shall use ‘`+=`’. See Chart Designs for more on chart designs.

`hscale`

  This option takes a number or `auto`, and specifies the default horizontal distance between entities. The default is 1, so to space entities wider apart, use a larger value. When specifying `auto` entity positions will be automatically set according to the spacing needs of elements. In this case the `pos` attribute of entities will be ignored except when influencing the order of the entities. See the end of Defining Entities for examples. Similar to `msc`, if you specify this attribute multiple times, the last one takes precedence.

`numbering`

  This option takes `yes` or `no` value, the default is no. Any element you define will take the default value of its `number` attribute from this option. See more on numbering in Numbering.

`compress`

  This option takes a boolean value, and defaults to off. Any element you define will take the default value of its `compress` attribute from this option. See more on numbering in Compression and Vertical Spacing.

`vspacing`

  Can be set to a number interpreted in pixels or to the string `compress`. Governs how much vertical space is added before each element (can be negative). This option is another form (superset) of the `compress` option; `compress=yes` is equivalent to `vspacing=compress`, whereas `compress=no` is equivalent to `vspacing=0`.

`angle`

  Specifies the default value for arrow slanting. Its value is measured in degrees, can take values from 0 to 45 degrees and its default value is zero.

`indicator`

  Similar to the `compress` option above this chart option can be used to influence the default value of the `indicator` attribute for grouped entities and boxes. The simplest way to turn all indicators on or off is to specify this chart option at the beginning of the file.

`auto_heading`

  Sets the default value for the ‘`auto_heading`’ attribute of ‘`newpage`’ commands. Setting to yes will cause all ‘`newpage;`’ commands to create an entity heading on the subsequent page making additional ‘`heading;`’ commands unnecessary. The default is no.

`classic_parallel_layout`

  If set to yes, parallel blocks are laid out with an old algorithm, which allows and ignores overlaps between the elements in the different parallel blocks. Defaults to no, and is kept only for backwards compatibility.

`pedantic`

  This option takes a boolean value. It defaults to no, but can also be set by the command line or using `Edit|Preferences...` on Windows. When turned on, then all entities must be defined before being used. If an entity name is not recognized in an arrow or box definition an error is generated. However, the implicit definition is accepted. Setting pedantic affects only the definitions after it and you can set it multiple times on and off. However it makes little sense.

`text.ident`
`text.format`
`text.color`
`text.wrap`

  This chart option can be used to set the default text format. It will be the default for all labels. Any styles or attributes specified will overwrite the formatting specified here. Its syntax is the same as that of the `text.*` attributes.

`numbering.pre`
`numbering.post`

  These options specify what shall be prepended and appended to label numbers. Their default value is the empty string and a semicolon followed by a space, respectively. The value of these options are ignored when a label number is inserted due to the ‘`\N`’ escape sequence. See Numbering for more.

`numbering.format`

  Specifies the format of automatic numbering for labels. Can be an arbitrary string (usually quoted) and may also contain formatting escapes. Any occurrence of ‘`123`’, ‘`arabic`’, ‘`iii`’, ‘`roman`’, ‘`abc`’, ‘`letters`’ (or uppercase versions) will be replaced to the actual number in the specified format. The string can contain multiple of the strings above, that will be interpreted as a multi-level numbering format. It is an error to describe more levels than the chart has at the location of the option. In this case an error is printed and the option is not changed. Describin fewer levels will result in Msc-generator omitting the top level numbers from labels. For example, if the numbering is at 2.4.1 and one specifies ‘`123.123`’ for number format, Msc-generator will display only 4.1. Such truncation, however, will not change the number of levels, merely how the number is displayed.

`numbering.append`

  This option can be used to append a new level to numbering. Its syntax is the same as for `numbering.format`. E.g., opening a second level of arabic numbers separated by a colon from the first level can be done by specifying ‘`.123`’ (use quotation marks). It is possible to add more than levels at once. All added levels start from the value of 1 (or ‘`i`’ or ‘`a`’, for roman numbers or letters, respectively).

`numbering.increment`

  Sets the amount added to the number for every new numbered element. Specifying negative values will make counting go backwards.

`background.color`
`background.gradient`

  These are similar to `fill.*` attributes and specify the background color of the chart. By default the background is set to white in the plain design of every language. You can change the background color multiple times, each change taking effect at the place where you issue the background chart option. This is usefult to split your chart to multiple sections visually. By setting `background.color=none` the background will be transparent for the rest of the chart.

`file.info`

  It takes a (quoted) string of human-readable text as value. It is useful to describe what is this file and what it contains. It is used so far only to annotate design libraries, so that if you open an OLE object with a shape not present in your system you can get some info on what file it is from. You can specifythis option multiple times their values get concatenated.

`file.url`

  It takes a quoted URL as value providing a potential place to download this file from.

`comment.line.*`
`comment.fill.*`

  If you have comments on the chart these govern the background of the comments and the attributes of the line separating the comments from the chart. As with background changing them applies downwards from the point of the chart option. See Notes and Comments for more information on comments.