			Format parameters
			=================

Note: This file will be soon removed from the abcm2ps distribution.
====  The format parameters documentation is now online:
	http://moinejf.free.fr/abcm2ps-doc/index.html

The general layout of the printed scores may be changed in many ways.

For example, when running the program, one or more format files may
be specified as program arguments using the command line option -F
(see the file options.txt).
A format file contains a sequence of lines where empty and lines
beginning with a '%' are ignored.
Each line contains a pair consisting of the  parameter name
(without the "%%") and the associated value(s).

Alternatively one or more format parameters may be specified directly
as run time argument pairs using the following syntax.
The first argument is the format parameter name preceded by two dashes
(eg. --vocalfont) and the second argument is the new value.
If the value contains spaces, it should be enclosed by quotes when
the program is run from a shell. For example, the following
command will run abcm2ps on the file myfile.abc changing the format
parameter vocalfont to 'Arial 13'.
 
	abcm2ps --vocalfont 'Arial 13' myfile.abc

Format parameters may be specified inside an ABC tune in one of two
ways. Pseudo-comments are specified by beginning a line with '%%'.
The syntax is simply:

	%%parameter_name new_value

Alternatively, a parameter change may be indicated inside the body of
the tune using the I: information field. For example:

	CDEF | [I:annotationfont Arial 13] "^bla" GABc |

The keyword "lock" may appear at the end of a parameter value.
After such a keyword has been found, the parameter will not be changed
anymore unless "lock" appears again.
It is implicitly appended in the command line arguments so that these
parameters take precedence and override any other changes.

example:
	abcm2ps --vocalfont 'Arial 13' myfile.abc
in myfile.abc:
	%%vocalfont Times-Roman *		% <- ignored
	%%vocalfont Helvetica * lock		% <- vocalfont = 'Helvetica 13'


Scope
-----

This section describes the meaning of the 'Scope:' found in the following
command descriptions. This concept is tied to the way the music is
generated.

All the commands appearing in the program arguments (including those in
format files) are inserted as pseudo-comments at the head of the ABC file
to be processed. Then, the whole source is parsed. The music is generated
as ABC music elements are processed, but it is not directly written to the
output file. Instead, it is buffered until some event occurs. This may be
either the end of a tune, the end of a page (page full, %%newpage or new tune
with %%splittune), or some specific music element or command (see 'restart'
below). At this moment, if the output file was still empty, the global output
parameters are written (PostScript global definitions), and then the buffered
music is written.

Here are the possible values of 'Scope:':

- 'page'
	Each output page has specific information (dimensions,
	header/footer, ...) which needs to be known at the time a new page
	is opened in the output file. As the exact moment of writing
	the buffered music may not be known, the commands of scope 'page'
	should be set near the beginning of the ABC file or at least
	immediately after a 'newpage' command is issued.

- 'tune'
	Commands with the scope 'tune' have to do with the tune headers
	(title, composer, tempo...) and footers (lyrics after tune and
	notes).
	They behave either globally or locally depending on their placement.

	When they appear outside a tune, they apply to the tunes which are
	yet to be processed. The parameter values are said to be 'global'.

	When they appear inside a tune, they apply locally to only this
	tune, the remaining tunes assume the global values again.
	In this case, since the exact write moment is not known, such
	commands should appear in the tune header or immediately after
	the first K:.

- 'generation'
	As explained above, the generation of the music is done element
	by element, independently of the buffering and file output.
	It starts at the beginning of a tune and stops naturally at the end
	of this tune, but it may be interrupted and restarted when
	encountering some specific information field (T: only) or command
	(see 'restart' below).
	The commands with a scope 'generation' are globally applied to each
	generation sequence (between start and stop). In other words, when
	a parameter is changed many times in a generation sequence, only the
	last value is used. This value remains for the next generation
	phases. They have the same global and local behaviour as the 'tune'
	commands, i.e. when starting the generation a new tune, all
	parameters have the global value.

- 'immediate'
	Such commands are executed as they are found in the source file.
	Their effects are immediate and apply to the next music elements.
	Some of them may do a generation restart (see 'restart' below).

- 'voice'
	Commands with this scope may appear only inside tunes and apply
	to the current voice only. Their main scope type may be
	'generation' or 'immediate'. There is no associated global value.

- 'restart'
	This information indicates that the execution of the command
	is preceded by a stop of the generation (see 'generation' above)..


Common value types
------------------

A <boolean> value may be:
	- 'true', 'yes', '1' or (empty)
	- 'false', 'no' or '0'
Only the first character is checked.

<int> is a whole number, usually positive.

<encoding> may be either 'native' or any other string in which case
'utf-8' is assumed (default value).
It is used only for PostScript output without pango.
When the <encoding> is not 'native', the utf-8 characters are replaced by
the name of their glyphs as they appear in the font files. This is done
thanks to an internal table which contains the ASCII and most Latin
characters. This table may be extended by the command %%glyph to handle more
characters (see the addition of '...'  ellipsis - in the file sample.abc).

<float> is a number which may have a decimal point number (eg. 0.5).

<size> is used in font definitions. It is expressed in graphic points
(see <unit>).

<unit> is a dimension of which the unit is defined by the suffix:
- 'pt' or no suffix: graphic points,
- 'in': inches, or
- 'cm': centimeters.
The height of a 5 lines staff is always 24pt.

<font>, <encoding> and <size> appear in font definitions.
They may be specified as '*' (asterisk), in which case their values
remain unchanged.
<encoding> may be omitted, in which case its value defaults to 'utf-8'
for the first declaration of the font or it remains unchanged.
When <size> is omitted, it remains unchanged.
Examples:
%%vocalfont Arial 12		% Arial utf-8 12pt
%%vocalfont Times-Roman		% Times-Roman utf-8 12pt
%%vocalfont * 13		% Times-Roman utf-8 13pt
%%vocalfont UKaiCN-UTF8-H native % UKaiCN-UTF8-H native 13pt


List of the format parameters
-----------------------------

  abc2pscompat <bool>
	Default: 0
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Handle old abc2ps tunes.

		When set, 'M' becomes the !tenuto! decoration and a pitch
		translation may be done for the bass and alto clefs
		(respectively, 2 and 1 octaves down).

		It is preferable to rewrite the old tunes to comply with
		the current standard rather than using this parameter.
		For example, you could include in the tune,
			U: M = !tenuto!
		and/or:
			K:C clef=bass octave=-2
		and the old tune would be interpreted correctly.

  abcm2ps <char> [<char>]*
	Default: %
	Compilation: none
	Command line: none
	Scope: immediate
	Description:
		Change the pseudo-comment prefix(es).

		By default, pseudo-comments are lines starting with two percent
		signs ("%%"). This command redefines a list of possible second
		characters of these commands (up to 3 different characters).
		This permits to avoid conflicts with pseudo-comments of other
		programs and also to have a simple conditional generation.
		Example 1:

			%%abcm2ps *
			%*voice Mib	% the voices which name contains "Mib"
			%*transpose -3	% are transposed a minor third lower
			%*voice end
			%*abcm2ps %	% restore standard pseudo-comments

		Example 2:
		   - tune.abc:
			X:1
			...
			K:C
			%			% default 4 staves
			%Fstaves [(S A) (T B)]	% 2 staves
			%Sstaves S		% Soprano only
			%Astaves A		% Alto only
			V:S
			...
			V:A
			...
			V:T
			...
			V:B
			...
		   - command line:
			abcm2ps --abcm2ps %A tune.abc	# generate alto only

  alignbars <int>
	Default: 0
	Compilation: none
	Command line: none
	Scope: immediate, restart and restart after <int> music lines
	Description:
		Align the bars of the next <int> music lines.
		Such an alignment works only when there is only one
		voice (i.e. no V:, %%staves or %%score are permitted).

  aligncomposer <int>
	Default: 1
	Compilation: none
	Command line: none
	Scope: tune
	Description:
		This parameter specifies where the composer field
		is displayed.

		A negative value means 'on the left', 0 means 'center',
		and a positive value means 'on the right'.

  annotationfont <font> [<encoding>] [<size>]
	Default: Helvetica 12
	Compilation: none
	Command line: none
	Scope: immediate
	Description:
		Set the annotation font.

  autoclef <bool>
	Default: 1
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		When this parameter is false, the voices which don't contain
		a 'clef=' in K: or V: use the treble clef, according to the
		ABC standard.
		When true, the clefs and possibly the clef changes for these
		voices are determined from the note pitches and inserted
		automatically.

  barsperstaff <int>
	Default: 0
	Compilation: none
	Command line: -B<int>
	Scope: generation
	Description:
		Try to typeset with <int> bars on each line.

  beginps ["nosvg"]
	Default: none
	Compilation: none
	Command line: none
	Scope: immediate
	Description:
		This command introduces a PostScript sequence that
		ends with '%%endps' and which will be included in the
		PostScript output file.

		Such a sequence cannot be greater than 128 Kb.

		When the output file format is SVG (command options '-g',
		'-v' or '-X'), the PostScript code is executed by the
		small abcm2ps PS interpreter. Sequences which cannot
		be executed (as font redefinitions) must be skipped
		checking the presence of the symbol 'svg':

		/svg where {pop} {
		.. PostScript code which cannot be executed by abcm2ps ..
		} ifelse

		When the option "nosvg" is present, the sequence is not
		executed on SVG output.

  beginsvg
	Default: none
	Compilation: none
	Command line: none
	Scope: immediate
	Description:
		This command introduces a SVG sequence that ends with
		'%%endsvg' and which will be included in the SVG output file.

		It allows adding a CSS to the generated SVG files.

		The sequence is ignored when the SVG output file has begun
		to be written (for example if it is found after the first
		K: information field).

  begintext [<option>]
	Default: none
	Compilation: none
	Command line: none
	Scope: immediate, restart
	Description:
		Start printing the free text of the followng lines up to
		%%endtext.

		When a line of text starts with '%%', these characters are
		removed.

		When a sequence %%begintext .. %%endtext appears inside a
		tune, blank lines must be replaced with '%%' to prevent
		them from being confused with the end of the tune marker.

		<option> may be:
		    'obeylines':	  keep lines as they are (default)
		    'align' or 'justify': justify the lines
		    'ragged' or 'fill':	  fill the lines
		    'center':		  center the lines
		    'skip':		  don't print the lines
							(same as comments)
		    'right':		  align at the right side
		When <option> is omitted, it defaults to the %%textoption
		value.

		Inside the free text, an empty line starts a new paragraph.
		Page breaks (start of new pages) cannot occur in the middle
		of a paragraph.

  bgcolor <color>
	Default: none
	Compilation: none
	Command line: none
	Scope: page
	Description:
		This parameter defines the background color of SVG images.
		The <color> may be a color name (like 'white') or
		a hexadecimal RGB color (like '#faf0e6').
		When not set, the SVG images are transparent.

  botmargin <unit>
	Default: 1cm
	Compilation: none
	Command line: none
	Scope: page
	Description:
		Set the page bottom margin.

  breaklimit <float>
	Default: 0.7
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		This parameter is used with 'maxshrink' to adjust the
		place where automatic music line breaks may occur.

		To know how many music symbols will be in a music line,
		the width of each symbol is computed by:
			width = minimal_space * 'maxshrink'
				+ natural_space * (1 - 'maxshrink')
		When the sum of all the symbol widths is greater than
			(paper width - margins) * 'breaklimit'
		and smaller than (paper width - margins), a line break
		may occur.

		The value <float> is limited between 0.5 (line breaks may
		occur when the line is 50% full) and 1 (the music line is
		split at the exact computed symbol).

  breakoneoln <bool>
	Default: 1
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		When set, a space (beam break) is inserted after each end of
		(ABC source) line.
		This prevents a beam from being continued between two music
		lines.
		(don't confuse this parameter with %%continueall or
		%%linebreak)

  bstemdown <bool>
	Default: 0
	Compilation: none
	Command line: none
	Scope: immediate, voice
	Description:
		When set, the stem of the note in the middle of the
		staff goes downwards. Otherwise, it goes upwards
		or downwards according to either the previous or
		following note.

  cancelkey <bool>
	Default: 0
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		When set, the accidentals associated with the last key
		signature are cancelled using naturals prior to
		introducing the new key signature.

  center <line of text>
	Default: none
	Compilation: none
	Command line: none
	Scope: immediate, restart
	Description:
		Print one line of centered text.

  clef <clef_name>[<clef_line>][<octave_indication>]
	Default: none
	Compilation: none
	Command line: none
	Scope: immediate, voice
	Description:
		Insert a clef change.

		<clef_name> may be:
			treble (same as G2)
			alto (same as C3)
			tenor (same as C4)
			bass (same as F4)
			perc (same as P2)
			G
			C
			F
			P
			none (to avoid clefs on the next music lines)
			"<user_clef_name>" (<user_clef_name> is the name of
				a PostScript function which  draws the clef
				glyph)

		<clef_line> gives the number of the line on which the note of
		the clef is defined. When omitted, it defaults according to
		the clef name: line #3 for "C", line #4 for "F" and line #2
		for the other clefs.

		<octave_indication> is either
		- "+8" or "-8", in which case a '8' is drawn above or below
		  the clef without octave transposition.
		- "^8" or "_8", in which case a '8' is drawn above or below
		  the clef with octave transposition.

		There should be no space in the %%clef value.
		Example:
			%%clef bass	% same as K: clef=bass

  combinevoices <int>
	Default: 0
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Define how notes of different voices in a same staff
		may be combined.
		<int> may be:
			- < 0: the voices are displayed as written
			- 0: the rests of same duration are displayed
				as one rest
			- 1: the notes of same duration are combined
				to chords except when there could be
				a second, a unison or a voice inversion
			- > 1: the notes of same duration are always combined
				to chords

  composerfont <font> [<encoding>] [<size>]
	Default: Times-Italic 14
	Compilation: none
	Command line: none
	Scope: tune
	Description:
		Set the composer font.

  composerspace <unit>
	Default: 0.2cm
	Compilation: none
	Command line: none
	Scope: tune
	Description:
		Set the vertical space above the composer.

  contbarnb <bool>
	Default: 0
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		If not set, the bar number of the second repeat(s) is reset to
		the number of the first repeat.
		If set, the bars are sequentially numbered.

  continueall <bool>
	Default: 0
	Compilation: none
	Command line: -c
	Scope: generation
	Description:
		When true, all line breaks of the tune are ignored.
		This parameter is deprecated in favour of '%%linebreak <none>'
		plus 'linewarn 0'.

  custos <bool>
	Default: 0
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		When set, a custos is added at the end of each music line.
		This parameter works with single voice tunes only.

  dateformat <text>
	Default: "%b %e, %Y %H:%M"
	Compilation: none
	Command line: none
	Scope: page
	Description:
		Define the format of the date and time.
		The possible values of this parameter are described in the
		manual pages of date(1) and strftime(3).
		Note: the '%'s must be escaped as '\%' if the is not enclosed
		in double quotes (otherwise it is taken as the start of a
		comment).

  deco <name> <c_func> <ps_func> <h> <wl> <wr> [<str>]
	Default: none
	Compilation: none
	Command line: none
	Scope: immediate
	Description:
		Define a decoration.
		This command assumes a good knowledge of the abcm2ps internals.
		The arguments are:
		<name>: name of the decoration. If it is the name of an
			existing decoration, this one is redefined.
		<c_func>: index of a C function (defined in deco.c).
			The possible values are:
			0, 1, 2: the decoration goes near the note, possibly
					inside the staff.
				0: 'dot' and 'tenuto'
				1: 'slide'
				2: 'arpeggio'
			3, 4, 5: the decoration goes near the note but outside
					the staff. It is usually printed above
					the staff.
				3: general
				4: below the staff
				5: long 'trill' (with start and stop)
			6, 7: the decoration is tied to the staff (dynamic
					marks). It is generally printed below
					the staff.
				6: general
				7: long dynamic (with start and stop)
		<ps_func>: postscript function name or '-' for the start
			of a long decoration.
		<h>: decoration height.
			It is the minimum height for +arpeggio+.
		<wl> and <wr>: left and right widths.
			These values are actually used for general dynamic
			marks only.
		<str>: text to display (for some postscript functions
			- see code).
		The decorations, which names begin with 'head-', prevent the
		note head(s) to be drawn.
		See deco.abc for examples.

  decoration <character>
	Default: !
	Compilation: none
	Command line: none
	Scope: immediate
	Description:
		Define the decoration separator.
		It may be set only to '!' (default) or '+' (for compatibility
		with the ABC standard 2.0).

  dblrepbar <bar>
	Default: :][:
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Define how the double repeat bars (::, :|: :||:) are drawn.

  dynalign <bool>
	Default: 1
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		When true, the dynamic marks are horizontally aligned.

  dynamic <int>
	Default: 0
	Compilation: none
	Command line: none
	Scope: immediate, voice
	Description:
		Set the position of the dynamic informations (crescendo,
		diminuendo..).
		<int> may be:
			0 or 'auto' for automatic position (it depends on
				the presence and position of lyrics)
			1 or 'above' above the staff
			2 or 'below' below the staff
			3 or 'hidden' don't print
		When this parameter appears outside a tune or inside a tune
		header, it applies to all voices. When it appears inside
		a tune body, it applies to the current voice only.

  EPS <eps_file>
	Default: 0
	Compilation: none
	Command line: -f
	Scope: immediate, restart
	Description:
		Include the file <eps_file> (Encapsulated PostScript).

		The file content is left or right aligned, or centered
		according to the current value of '%%textoption'.

  flatbeams <bool>
	Default: 0
	Compilation: none
	Command line: -f
	Scope: generation
	Description:
		Draw flat beams.

  font <font> [[<encoding>] <scale>]
	Default: none
	Compilation: none
	Command line: none
	Scope: page
	Description:
		Define a font and its encoding.

		This parameter is required with PostScript output when
		specific fonts are defined later in ABC files/tunes.

		<scale> is the width factor to apply to the Time-Roman
		character width. It is needed to adjust the string width
		when the computation using the default scale gives
		erroneous values:
			- if the strings collide with other elements,
			  set <scale> to a value lower than 1.0.
			- if there is too much space between elements
			  because of the strings, set it to a value
			  greater than 1.0.
		Note that the <scale> is not applied immediately: it will
		used only in further font assignment.

  footer <text>
	Default: none
	Compilation: none
	Command line: none
	Scope: page
	Description:
		Specify the text to be printed at the bottom of each page.
		There may be one or two lines in the footer.
		To specify 2 lines, put the 2 characters "\n" (not
		a real 'newline') as a separator in the command.
		In each line, 3 areas may be defined: left, center and
		right.
		These areas are separated by tabulations (real TABs,
		not "\t") and may be empty (if the left area is empty,
		double quote the string - see sample3.abc for example).
		The prefix '$' introduces variable substitution:
			- '$d' is the date and time of the last modification
			   of the current ABC input file,
			- '$D' is the current date and time,
			- '$F' is the current input file name,
			- '$Ix' is any header information type ('x' is a
			   letter range 'A' to 'Z').
			- '$P' is the current page number,
			- '$P0' and '$P1' are also the page number, but apply
			   only to the even ('0') or odd ('1') page numbers,
			- '$T' is the current tune title,
			- '$V' is 'abcm2ps-' followed by the program version.
		For example, the command line option '-N3' is the same
		as:
			%%header "$P0		$P1"
		(note the 2 TABs).
		If the footer (or header) begins with '-' (hyphen/minus),
		it is not printed on the first page.

  footerfont <font> [<encoding>] [<size>]
	Default: Times-Roman 12
	Compilation: none
	Command line: none
	Scope: page
	Description:
		Set the footer font.
		Note that the footer is not scaled.

  format <filename>
	Default: none
	Compilation: none
	Command line: none
	Scope: immediate
	Description:
		Load the format (or PostScript) file <filename>.
		When found in the command line, this parameter is
		equivalent to '-F'.

  gchord <int>
	Default: 0
	Compilation: none
	Command line: none
	Scope: immediate, voice
	Description:
		Set the position of the guitar chords.
		<int> may be:
			0 or 'auto' for automatic position (usually
				above the staff)
			1 or 'above' above the staff
			2 or 'below' below the staff
			3 or 'hidden' don't print
		When this parameter appears outside a tune or inside a tune
		header, it applies to all voices. When inside a tune body,
		it applies to the current voice only.

  gchordbox <bool>
	Default: 0
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Draw a box around the guitar chords.
		This value may be set to 'true' by the option "box"
		in %%gchordfont.

  gchordfont <font> [<encoding>] <size> ["box"]
	Default: Helvetica 12
	Compilation: none
	Command line: none
	Scope: immediate
	Description:
		Set the guitar chord font.
		If "box" is present, a box is drawn around the guitar chords.

  glyph <unicode> <glyph_name>
	Default: none
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Set the name of a unicode glyph.

		This command is useful for PostScript output without pango.
		<unicode> is a hexadecimal value, and <name> is the name of
		the associated glyph in the font files.

  graceslurs <bool>
	Default: 1
	Compilation: none
	Command line: -G
	Scope: generation
	Description:
		Draw slurs on grace notes.

  gracespace <float> <float> <float>
	Default: 6.5 8.0 12.0
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Define the space before, inside and after the grace notes.

  gstemdir <int>
	Default: 0
	Compilation: none
	Command line: none
	Scope: immediate, voice
	Description:
		Set the direction of the stems of the grace notes.
		<int> may be:
			0 or 'auto' for automatic position
			1 or 'up' stem up
			2 or 'down' stem down
			3 or 'opposite' opposite direction of the next note
		When this parameter appears outside a tune or inside a tune
		header, it applies to all voices. When inside a tune body,
		it applies to the current voice only.

  header <text>
	Default: none
	Compilation: none
	Command line: none
	Scope: page
	Description:
		Set the text printed at the top of each page.
		See 'footer' above for the header syntax.

  headerfont <font> [<encoding>] [<size>]
	Default: Times-Roman 12
	Compilation: none
	Command line: none
	Scope: page
	Description:
		Set the header font.
		Note that the header is not scaled by %%scale.

  historyfont <font> [<encoding>] [<size>]
	Default: Times-Roman 16
	Compilation: none
	Command line: none
	Scope: tune
	Description:
		Set the history font.

  hyphencont <bool>
	Default: 1
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		If set, when a word of lyric under staff ends with a hyphen,
		put a hyphen in the next line.

  indent <unit>
	Default: 0
	Compilation: none
	Command line: -I<unit>
	Scope: tune
	Description:
		Indent the first line of the tune by <unit>.

  infofont <font> [<encoding>] [<size>]
	Default: Times-Italic 14
	Compilation: none
	Command line: none
	Scope: tune
	Description:
		Set the infoline font.

  infoline <bool>
	Default: 0
	Compilation: none
	Command line: none
	Scope: tune
	Description:
		Display the rhythm (R:) and area (A:) on a same line
		before the first music line:
			Rhythm (Area)

  infoname <uppercase letter> [<information name>]
	Default:
		R "Rhythm: "
		B "Book: "
		S "Source: "
		D "Discography: "
		N "Notes: "
		Z "Transcription: "
		H "History: "
	Compilation: none
	Command line: none
	Scope: tune
	Description:
		Define the name of the information fields which may be
		printed after the tunes.
		Note: For being printed, a field must be set to 'on' in a
		%%writefields parameter and have an information name.
		When <information name> is not present, the field name is
		removed. This is usefull to change the field order.
		Examples:

		%%infoname G "Group: "	% display the group
		%%writefields G 1

		%%infoname N		% notes after the other fields
		%%infoname N "Notes: "

  infospace <unit>
	Default: 0
	Compilation: none
	Command line: none
	Scope: tune
	Description:
		Set the vertical space above the infoline.

  keywarn <bool>
	Default: 1
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		When set, if a key signature change occurs at the
		beginning of a music line, a cautionary key signature
		is added at the end of the previous line.

  landscape <bool>
	Default: 0
	Compilation: none
	Command line: -l
	Scope: page
	Description:
		Set the page orientation to landscape.

  leftmargin <unit>
	Default: 1.8cm
	Compilation: none
	Command line: -m<unit>
	Scope: page, restart
	Description:
		Set the page left margin.

  linebreak <list of linebreak separators>
	Default: <EOL>
	Compilation: none
	Command line: none
	Scope: immediate
	Description:
		Define the character(s) which break(s) the music lines.
		The <list of linebreak separators> is a blank separated
		list of none, one or more of:
			<EOL> (End Of Line of any system)
			$
			!
			<none>
		For compatibility, when <EOL> is in the list, the character
		'!' does a linebreak if it does not introduce a decoration.
		If the value '<none>' occurs alone or if the list is empty,
		the program computes the linebreaks automatically. This
		replaces the deprecated '%%continueall 1'.

  lineskipfac <float>
	Default: 1.1
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Set the factor for spacing between lines of text.

  linewarn <bool>
	Default: 1
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		When set, raise a warning when there are too few or
		too many elements in a music line.

  maxshrink <float>
	Default: 0.65
	Compilation: none
	Command line: -a<float>
	Scope: generation
	Description:
		Set how much to compress horizontally when music line breaks
		are automatic.
		<float> must be between 0 (natural spacing)
		and 1 (max shrinking).

  maxstaffsep <unit>
	Default: 2000pt
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Set the maximum staff system separation.

  maxsysstaffsep <unit>
	Default: 2000pt
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Set the maximum staves separation inside a system.
		This values applies to all staves when global or in
		the tune header. Otherwise, it defines the maximum
		vertical offset of the next staff.

  measurebox <bool>
	Default: 0
	Compilation: none
	Command line: trailing 'b' at end of -j or -k - see measurenb.
	Scope: generation
	Description:
		Draw a box around the measure numbers.
		This value may be set to 'true' by the option "box"
		in %%measurefont.

  measurefirst <int>
	Default: 1
	Compilation: none
	Command line: -b<int>
	Scope: tune
	Description:
		Start numbering the measures of the tune from <int>.
		This parameter is obsolete and should be replaced by
		'%%setbarnb' in the tune header.

  measurefont <font> [<encoding>] <size> ["box"]
	Default: Times-Italic 14
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Set the measure font.
		If "box" is present, a box is drawn around the measure
		numbers.

  measurenb <int>
	Default: -1
	Compilation: none
	Command line: -j<int>[b] or -k<int>[b]
	Scope: generation
	Description:
		If positive, draw the measure number every <int> bars.
		If <int> = 0, the measure number appears only on the
		left of the staff systems.
		On the command line only, if a trailing 'b' is present,
		a box is also drawn around the measure numbers.

  micronewps <bool>
	Default: 0
	Compilation: none
	Command line: none
	Scope: page
	Description:
		If set, use the new PostScript function to draw the microtonal
		accidentals.
		(see "Microtone" in features.txt for more information)

  multicol <command>
	Default: 0
	Compilation: none
	Command line: none
	Scope: immediate, restart
	Description:
		Define multicolumn printing.

		<command> may be:
		    'start':	save the current vertical position and the
				left and right margins. Then, these margins
				may be changed to print music or text.
		    'new':	reset the vertical offset at the place of
				the previous '%%multicol start', and restore
				the left and right margins.
		    'end':	restore the left and right margins, and skip
				down to a safe place.
		(see 'sample3.abc' for an example).
		This command may also be used to group some tunes and text in
		a same page.

  musiconly <bool>
	Default: 0
	Compilation: none
	Command line: -M
	Scope: generation
	Description:
		If true, don't output the lyrics under staff.

  musicspace <unit>
	Default: 0.2cm
	Compilation: none
	Command line: none
	Scope: tune
	Description:
		Set the vertical space above the first staff.

  newpage [<int>]
	Default: none
	Compilation: none
	Command line: none
	Scope: immediate, restart
	Description:
		Continue printing on a new page and optionally restart page
		numbering from <int>.

  notespacingfactor <float>
	Default: 1.414
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Set the note spacing factor to <float> (range 1..2).

		This value is used to compute the natural spacing of
		the notes. The base spacing of the crotchet is always
		40 pts. When the duration of a note type is twice the
		duration of an other note type, its spacing is multiplied
		by this factor.
		The default value causes the note spacing to be multiplied
		by 2 when its duration is multiplied by 4, i.e. the
		space of the semibreve is 80 pts and the space of the
		semiquaver is 20 pts.
		Setting this value to 1 sets all note spacing to 40 pts.

  oneperpage <bool>
	Default: 0
	Compilation: none
	Command line: -1
	Scope: page
	Description:
		Output one tune per page.

  ornament <int>
	Default: 0
	Compilation: none
	Command line: none
	Scope: immediate, voice
	Description:
		Set the position of the ornaments (mordent, trill..).
		<int> may be:
			0 or 'auto' for automatic positioning (usually above
				the staff)
			1 or 'above' above the staff
			2 or 'below' below the staff
			3 or 'hidden' don't print
		When this parameter appears outside a tune or inside a tune
		header, it applies to all voices. When it is inside a tune
		body, it applies to the current voice only.

  pageheight <unit>
	Default: PAGEHEIGHT
	Compilation: PAGEHEIGHT= (A4: 29.7cm - US: 11in)
	Command line: none
	Scope: page
	Description:
		Set the page height.

  pagewidth <unit>
	Default: PAGEWIDTH
	Compilation: PAGEWIDTH= (A4: 21.0cm - US: 8.5in)
	Command line: none
	Scope: page
	Description:
		Set the page width.

  pango <bool>
	Default: 1
	Compilation: HAVE_PANGO
	Command line: none
	Scope: generation
	Description:
		Enable or disable PostScript output with pango.

		This command works only when abcm2ps is compiled with
		pango/freetype support.
		By default, pango is used for texts containing characters
		that are not ASCII nor Latin. Its advantage is that it
		searches for a replacement font when a character does not
		exist in the current font.
		Trick: this parameter may be set to '2' to force pango
		to be used for all texts.

  parskipfac <float>
	Default: 0.4
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Set the factor for spacing between text paragraphs.

  partsbox <bool>
	Default: 0
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Draw a box around the part names.
		This value may be set to 'true' by the option "box"
		in %%partsfont.

  partsfont <font> [<encoding>] <size> ["box"]
	Default: Times-Roman 15
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Set the part font.
		If "box" is present, a box is drawn around the part names.

  partsspace <unit>
	Default: 0.3cm
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Set the vertical space above a new part.

  pdfmark <int>
	Default: 0
	Compilation: none
	Command line: none
	Scope: page
	Description:
		When set to a non null value, the PostScript output file
		contains marks which may be used by the PS to PDF translators
		to create a PDF index of the tunes.
		If <int> is greater than 1, generate pdfmarks for titles and
		subtitles, otherwise, if <int> is 1, generate pdfmarks
		for the main titles only.

  postscript <text>
  ps <text>
	Default: none
	Compilation: none
	Command line: none
	Scope: immediate
	Description:
		Define a line to be included in the PostScript output
		file.
		This parameter may be used to override any PostScript
		function or to define new functions for use in a 'deco'
		format.
		See 'beginps' above.

  repbra <bool>
	Default: 1
	Compilation: none
	Command line: none
	Scope: generation, voice
	Description:
		The repeat brackets are normally displayed as they are found
		in a voice. %%repbra 0' prevents displaying them for the
		current voice.

  repeat [<n> [k]]
	Default: none
	Compilation: none
	Command line: none
	Scope: immediate
	Description:
		Try to replace a sequence by one or many repeat signs.

		When placed after a bar, <n> indicates the number of measures
		to be repeated (it may be only one or two). <k> indicates how
		many times the previous measure is to be repeated.

		When placed after a note or rest, <n> indicates the number of
		notes and rests to be repeated, and <k> how many times this
		repetition occurs.

		When omitted, <n> and <k> default to 1.
		No check is done on the equality of the sequences.
		See 'sample5.abc' for examples.

  repeatfont <font> [<encoding>] [<size>]
	Default: Times-Roman 13
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Set the repeat number/text font.

  rightmargin <unit>
	Default: 1.8cm
	Compilation: none
	Command line: none
	Scope: page, restart
	Description:
		Set the page right margin.

  scale <float>
	Default: 0.75
	Compilation: none
	Command line: -s<float>
	Scope: generation, restart
	Description:
		Set the page scale factor.
		Note that the header and footer are not scaled.

  score <definition>
	Description:
		Controls the layout of multivoiced tunes.
		See the ABC standard version 2.1 for description.

  sep [<h1> <h2> <len>]
	Default: none
	Compilation: none
	Command line: none
	Scope: immediate, restart
	Description:
		Print a separator (centered line) of length <len> with
		space <h1> above and space <h2> below
		(defaults: h1 = h2 = 0.5cm,len = 3.0cm).

  setbarnb <int>
	Default: none
	Compilation: none
	Command line: none
	Scope: immediate
	Description:
		Set the number of the next measure.

		When this command appears at the beginning of the tune
		(after K:), only the 2nd measure will have the new number.
		It must appear in the tune header to set the first measure.

  setdefl <bool>
	Default: 0
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		When true, output some indications about the note, chord
		and/or decorations for customization purpose. These
		indications are stored in the PostScript variable 'defl'.

  setfont-1 <font> [<encoding>] <size>
  setfont-2 <font> [<encoding>] <size>
  setfont-3 <font> [<encoding>] <size>
  setfont-4 <font> [<encoding>] <size>
	Default: Times-Roman 0
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Set the alternate fonts for strings.
		In most strings, the current font may be changed
		by "$n" (n = 0, 1 .. 4 - "$0" resets the font to
		its default value).
		Note: <size> is mandatory at the first definition.

  shiftunison <int>
	Default: 0
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Set the way voice unison is displayed.
		<int> may be:
		'0': for one note head if possible
		'1': for two shifted notes when one note is dotted
		     and the other one is not,
		'2': also for two shifted notes when one note is a
		     minim (half note) and the other one has some flags,
		'3': for two shifted notes on all unison cases.

  slurheight <float>
	Default: 1.0
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Set the slur height factor.

  splittune <bool>
	Default: 0
	Compilation: none
	Command line: -0
	Scope: page
	Description:
		If false, a tune starts on a new page when it does not
		fit in the current one. If true, there is no page
		check, and the tune may be splitted.

  squarebreve <bool>
	Default: 0
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Display the breve notes in square format.

  staff <["+" | "-"] int>
	Default: none
	Compilation: none
	Command line: none
	Scope: immediate, voice
	Description:
		Put the next symbols of the current voice on the staff <int>
		(1..n - see sample4.abc for example), or on the <+int>th or
		<-int>th staff.

  staffbreak [<unit>] ["f"]
	Default: none
	Compilation: none
	Command line: none
	Scope: immediate, voice
	Description:
		Set a break in the current staff.

		<unit> gives the width of the break (in points, inches or cm)
		and defaults to 0.5 cm.
		As a side effect, when the width exceeds 0.5 cm and when all
		the voices have the same staffbreak, the left side of the
		staff system is redrawn.
		When "f" is not present, the staff break is removed if it
		occurs at the start or end of the music line.

  stafflines <int>
	Default: 5
	Compilation: none
	Command line: none
	Scope: generation, voice
	Description:
		Set the number of lines of the staff of the current voice.

  staffnonote <int>
	Default: 1
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		This parameter is used to decide if a staff must be displayed
		when it contains no visible note.
		The possible values are:
		- 0: don't display the staff when it contains only
		     invisible rests and notes,
		- 1: don't display the staff when it contains only
		     rests and invisible notes,
		- 2: always display the staff.

  staffscale <float>
	Default: 1
	Compilation: none
	Command line: none
	Scope: generation, voice
	Description:
		Set the scale of the staff of the current voice.

  staffsep <unit>
	Default: 46pt
	Compilation: none
	Command line: -d<unit>
	Scope: generation
	Description:
		Do not put a staff system closer than <unit> from the
		previous system.

  staffwidth <unit>
	Default: none
	Compilation: none
	Command line: -w<unit>
	Scope: page
	Description:
		Adjust the page right margin so that the staff width
		is <unit>.

  staves <definition>
	Description:
		This command is deprecated. Use %%score instead.
		See 'features.txt' for description.

  stemdir <int>
	Default: 0
	Compilation: none
	Command line: none
	Scope: immediate, voice
	Description:
		Set the direction of the stems.
		<int> may be:
			0 or 'auto' for automatic positioning
			1 or 'up' stem up
			2 or 'down' stem down
		When this parameter appears outside a tune or inside a tune
		header, it applies to all voices. When inside a tune body,
		it applies to the current voice only.
		This parameter may also be set using the parameter 'stem='
		in the K: and V: information fields.

  stemheight <float>
	Default: 20.0
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Set the stem height.

  straightflags <bool>
	Default: 0
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Have straight flags on the stems for bagpipe tunes.

  stretchlast <float>
	Default: 0.8
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Stretch the last music line of a tune when it exceeds
		the <float> fraction of the page width.
		<float> range is 0.0 to 1.0.

  stretchstaff <bool>
	Default: 1
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Stretch underfull music lines inside a tune.

  subtitlefont <font> [<encoding>] [<size>]
	Default: Times-Roman 16
	Compilation: none
	Command line: none
	Scope: tune
	Description:
		Set the subtitle font.

  subtitlespace <unit>
	Default: 0.1cm
	Compilation: none
	Command line: none
	Scope: tune
	Description:
		Set the vertical space above the subtitle.

  sysstaffsep <unit>
	Default: 36pt
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Do not place the staves closer than <unit> inside a system.
		This values applies to all staves when global or in
		the tune header. Otherwise, it defines the minimum
		vertical offset of the next staff.

  tablature [#<int>] [pitch=<pitch>] [[<unit-1>] <unit-2>] <unit-3> \
			<head-func> <note-func> [<bar-func>]
	Default: none
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Define a tablature for the current voice.

		<int> gives the tablature number (from 1 to 8, default=1).
		<pitch> is the pitch of the instrument. It looks like a
			normal ABC note. When present, the pitch of each
			note is given as argument to the note function.
			When absent, the information about the note(s)
			is given by one or many lyrics (w:).
		<unit-1> specifies the width of the header (left side of
			the music line).
		<unit-2> specifies the tablature height above the staff.
		<unit-3> specifies the tablature height under the staff.
		<head-func> is the PostScript function called at start
			of a new music line.
		<note-func> is the PostScript function called at each note.
		<bar-func> is the PostScript function called at each bar.

		The arguments of the PostScript functions depend on the
		presence of the pitch.
		When the pitch is absent, the stack contains:
			- head function:
				- the music line width,
				- the x and y offsets,
				- the number of w: lines.
			- note function:
				- the string as defined by the 'w:' line.
				- the x and y offsets.
				- the w: line number (0 .. n-1).
			- bar function:
				- the ABC bar as a string.
				- the x and y offsets.
				- the w: line number (0 .. n-1).
		Otherwise (pitch present), the PS origins are translated to
		the tablature area and the stack contains:
			- head function:
				- the instrument pitch with a single
				  uppercase letter and a sharp or flat.
			- note function:
				- the octave (0 is 'C') letting pitch >= 0
				  and < 36
				- the pitch in 12th of octave on 3 octaves
				  (0..35 - it may be not a whole number with
				  microtone)
				- the x offset
			- the bar function is never called.

		For examples of tablatures without pitch, see:
			'accordion.abc'
			'http://moinejf.free.fr/abc/banjo.abc',
			'http://moinejf.free.fr/abc/bataille.abc'
			'http://moinejf.free.fr/abc/tabyf1.abc'
		For examples of tablatures with pitch, look at
			flute.fmt
		and try:
			abcm2ps sample.abc -e1 -F flute.fmt -T1 -T3

  tempofont <font> [<encoding>] [<size>]
	Default: Times-Bold 15
	Compilation: none
	Command line: none
	Scope: tune
	Description:
		Set the tempo font.

  text <text>
	Default: none
	Compilation: none
	Command line: none
	Scope: immediate, restart
	Description:
		Print one line of text using the current value of
		'%%textoption'.

  textfont <font> [<encoding>] [<size>]
	Default: Times-Roman 16
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Set the text font.

  textoption <int>
	Default: 0 (obeylines)
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Set the default text option.
		This option is used for the text between '%%begintext' and
		'%%endtext', '%%text' and '%%EPS'.
		<int> may be an integer or a keyword. The values are:
			0: obeylines
			1: justify
			2: fill
			3: center
			4: skip
			5: right
		When <int> is 4 (skip), there is no output of texts
		(%%text, %%center, %%begintext..%%endtext...) and %%EPS.

  textspace <unit>
	Default: 0.5cm
	Compilation: none
	Command line: none
	Scope: tune
	Description:
		Set the vertical space above the history.

  timewarn <bool>
	Default: 0
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		When set, if a time signature change occurs at the
		beginning of a music line, a cautionary time signature
		is added at the end of the previous line.

  titlecaps <bool>
	Default: 0
	Compilation: none
	Command line: none
	Scope: tune
	Description:
		When set, print the titles in uppercase letters.

  titlefont <font> [<encoding>] [<size>]
	Default: Times-Roman 20
	Compilation: none
	Command line: none
	Scope: tune
	Description:
		Set the title font.

  titleformat <text>
	Default: none
	Compilation: none
	Command line: none
	Scope: tune
	Description:
		Define the format of the tune title.
		This format overrides the standard way to display the
		tune title. Then, parameters as %%titleleft, %%infoline
		and also  %%writefields are not used.
		The format is a set of letters, numbers, commas and
		plus and minus signs. Unrecognized characters are ignored.

		A letter gives the ABC header information type. It may be any
		type range 'A' to 'Z', but 'I', 'L', 'M', 'U' and 'V'.

		Alignment is defined by a number and/or a minus sign
		following the letter. It may be:
			'0' for 'center',
			'1' for 'right align'
			'-1' (or '-') for 'left align'.
		When absent, alignment defaults to center ('0').

		A plus sign ('+') may appear between two fields
		in which case these fields are concatenated (this works
		only with fields of the same type and same alignment).

		A comma defines a box edge. In each box, the fields are
		vertically added in their alignment zones.

		Example:
			%%titleformat R-1 P-1 Q-1 T C1 O1 , T + T N1
		displays:
		- in the 1st box:
		    - on the left: the rhythm, part and tempo
		    - in the middle: the main title (only)
		    - on the right: the composer and origin
		- in the 2nd box:
		    - in the middle: the concatenated subtitles
		    - on the right: the notes

		When <text> is empty, the default standard tune format is
		set back.

  titleleft <bool>
	Default: 0
	Compilation: none
	Command line: none
	Scope: tune
	Description:
		Output the title on the left (instead of centered).

  titlespace <unit>
	Default: 0.2cm
	Compilation: none
	Command line: none
	Scope: tune
	Description:
		Set the vertical space above the title.

  titletrim <bool>
	Default: 1
	Compilation: none
	Command line: none
	Scope: tune
	Description:
		When set, if the last word of a title starts with a capital
		letter and is preceded by a comma and a space, this word is
		moved at the head. For example: the title
			T:Clair de la lune, Au
		is printed as
			Au Clair de la lune
			
  topmargin <unit>
	Default: 1cm
	Compilation: none
	Command line: none
	Scope: page
	Description:
		Set the page top margin.

  topspace <unit>
	Default: 0.8cm
	Compilation: none
	Command line: none
	Scope: page
	Description:
		Set the vertical space above the tunes and on the top of
		the continuation pages.

  transpose <int> [ "#" | "b" ]
	Default: 0
	Compilation: none
	Command line: none
	Scope: immediate - see below
	Description:
		Transpose the music.

		<int> is a signed number of semitones.
		When "#" or "b" is present, the new key signature(s) will have
		sharps or flats in case of enharmonic keys.

		When this command appears in a global definition (format file
		or file header), it applies to all voices of all the following
		tunes.
		When it appears in a tune header, it applies to all voices.
		When inside a tune body, it applies to the current voice only.

		Note 1: Transposition of key signatures with explicit or
			added accidental list does not work.
		Note 2: The transposition is always relative to the ABC source
			(it does not depend on a previous %%transpose command).

  tuplets <int> <int> <int>
	Default: 0 0 0
	Compilation: none
	Command line: none
	Scope: immediate
	Description:
		Define how to draw the tuplets.
		The first <int> tells when to draw:
			0: auto (draw when no beam on some note of the tuplet)
			1: never
			2: always
		The second <int> tells what to draw:
			0: a square bracket
			1: a slur
			2: do beam extension on rests (does not work yet)
		The third <int> tells which value to print:
			0: a simple number (value of 'p')
			1: no value
			2: a ratio ('p':'q')

  user <char> [ = ] <decoration>
	Default: none
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Define a user decoration.
		This parameter is the same as the information field U:.
		In may be used in format files to change default decorations.

  vocal <int>
	Default: 0
	Compilation: none
	Command line: none
	Scope: immediate, voice
	Description:
		Set the position of the lyrics.
		<int> may be:
			0 or 'auto' for automatic position (usually above
				the staff)
			1 or 'above' above the staff
			2 or 'below' below the staff
			3 or 'hidden' don't print
		When this command appears outside a tune or inside a tune
		header, it applies to all voices. When inside a tune body,
		it applies to the current voice only.

  vocalabove <bool>
	Default: 0
	Compilation: none
	Command line: none
	Description:
		Force the vocals to be above the staff.
		This command is obsolete. Use "%%vocal above' instead.

  vocalfont <font> [<encoding>] [<size>]
	Default: Times-Bold 13
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Set the font of the lyrics under staves.

  vocalspace <unit>
	Default: 23pt
	Compilation: none
	Command line: none
	Scope: generation
	Description:
		Set the vertical space above the lyrics under the staves.

  voicefont <font> [<encoding>] [<size>]
	Default: Times-Bold 13
	Compilation: none
	Command line: none
	Scope: tune
	Description:
		Set the font of the voice names.

  voicescale <float>
	Default: 1
	Compilation: none
	Command line: none
	Scope: generation, voice
	Description:
		Set the scale of
		- all voices when in the tune header,
		- the current voice when found in the tune body.
		The <float> value must be in the range [0.6 .. 1.5].

  volume <int>
	Default: 0
	Compilation: none
	Command line: none
	Scope: immediate, voice
	Description:
		Set the position of the volume decorations (!p!, !fff!...).
		<int> may be:
			0 or 'auto' for automatic position (usually below
				the staff)
			1 or 'above' above the staff
			2 or 'below' below the staff
			3 or 'hidden' don't print
		When this parameter appears outside a tune or inside a tune
		header, it applies to all voices. When inside a tune body,
		it applies to the current voice only.

  vskip <unit>
	Default: Times-Roman 16
	Compilation: none
	Command line: none
	Scope: immediate, restart
	Description:
		Skip vertical space of height <unit>.

  wordsfont <font> [<encoding>] [<size>]
	Default: Times-Roman 16
	Compilation: none
	Command line: none
	Scope: tune
	Description:
		Set the font of the lyrics at end of tune.

  wordsspace <unit>
	Default: 0cm
	Compilation: none
	Command line: none
	Scope: tune
	Description:
		Set the vertical space above the lyrics at the end of
		the tune.

  writefields <list> <bool>
	Default: COPQTWw 1
	Compilation: none
	Command line: -M, -x
	Scope: generation

	Description:
		<list> is an unsorted list of ASCII letters, each being
		the type of an information field.
		<bool> indicates whether the information field(s) is to be
		displayed or not.


Pseudo-commands used for external formatting
--------------------------------------------

  break <symbol selection> [ [ "," | " " ] <symbol selection> ]*
	Insert a music line break after the selected symbol(s).

	This command may appear only in the tune header or in a %%tune
	sequence.
	There may be many %%break commands in a %%tune sequence.

  clip [ <start symbol> ]  "-" [ <end symbol> ]
	Define the subset of the tune(s) to be printed.

	<start symbol> and <end symbol> are <symbol selection>s (see below).
	The starting and ending symbols are included in the clip.
	This command may appear only in a %%tune sequence.
	There may be only one %%clip command in a %%tune sequence.

  select [ <tune index list> ] [ <regular expression> ]
	Select a subset of tunes in an ABC file to be printed.

	<tune index list> is a comma separated list of tune numbers.
	Each selector applies to the current ABC file.
	A tune number may be:
	- a single index value as indicated in the 'X:' field,
	- a range of such values.
	  A range is indicated as <first_index> "-" [ <last_index> ].
	  The last index may be omitted meaning 'last tune of file'.
	The <regular expression> applies to the tune headers on their whole.
	An empty %%select selects all the tunes of the next ABC files.

	Command line examples:
		abcm2ps voices.abc -e 1,3-5 newfeatures.abc -e5-
		abcm2ps sample2.abc -eclefs voices.abc -e 'K:C\s'

	ABC file example:
		%%select C:.*Bach
		%%abc-include voices.abc
		%%abc-include sample5.abc

	Note: Such selections may give strange results when there are global
	definitions in the ABC files (before and between the tunes).

  tune [ <regular expression> ]
	Select the tune(s) to which the following options will be applied.

	The options are pseudo-comments (starting with %%), up to an other
	'%%tune' command. The command "%%tune end" may be used to mark the
	end of the options.

	The options are inserted at start of the tunes (after the first K:)
	whose header matches the <regular expression>.
	When an option is %%score or %%staves, it replaces a %%score or
	%%staves of the tune. There may be many such options, each one
	replacing one %%staves/score of the tune.
	%%tune may appear only in a global definition (command line,
	format file or file header).
	When the <regular expression> is the same as the one of a previous
	%%tune, all the previous tune options for this regular expression
	are removed.
	When the <regular expression> is absent, all the tune options of
	all tunes are removed.
	ABC file example:
	  Remove the 'ossia' part from sample5.abc of the abcm2ps package

		%%tune Bach
		%%leftmargin 1cm lock
		%%rightmargin 1cm lock
		%%scale 0.7
		%%staves {(1 2) (3 4)}
		%%staves {(1 2) (3 4)}
		%%staves {(1 2) (3 4)}
		%%abc-include sample5.abc

  voice [ <regular expression> ]
	Select the voice(s) to which the following options will be applied.

	The options are pseudo-comments (starting with %%), up to an other
	'%%voice', '%%tune' or %%score/%%staves command.
	The command "%%voice end" may be used to mark the end of the options
	for the last voice.

	The commands are inserted before the first symbol of each voice which
	identifier or full name match the <regular expression>.
	%%voice may appear only in a global definition (command line,
	format file,r file header or %%tune option list).
	When the <regular expression> is the same as the one of a previous
	%%voice, all the previous voice options for this regular expression
	are removed.
	When the <regular expression> is absent, all the global or tune
	related voice options are removed.
	ABC file example:
	  Print 'Tridal a ra va c'halon' with 4 staves, lyrics at the top
	  and with a 'tenor' clef.

		%%select Tridal
		%%tune Tridal
		%%staves S A T B
		%%voice S
		%%vocal up
		%%voice T
		%%clef G,-8
		%%abc-include voices.abc

  <symbol selection>
	The <symbol selection> used in %%break and %%clip permits the
	localisation of a music symbol (note, rest or bar - only).
	It has the following format:

		<measure number> [ ":" <time numerator> "/" <time denominator> ]

	<measure_number> is the measure number as it is displayed with
	"%%measurenb 1"	or '-j1'.
	Note that this number may change when changing the %%contbarnb value.
	In the case %%contbarnb is not set, the repeat sequences may be
	identified by a letter after the measure number as "10b" (second
	repeat sequence).

	<time numerator> and <time denominator> define the fraction of a
	whole note which gives the time offset of the symbol in the selected
	measure.
	The numerator is numbered starting from 0. The value 0 (default)
	selects the measure bar. To select the first note of a measure,
	set the fraction to a small value as "5:1/64".

  <regular expression>
	  Such expressions are a subset of Perl regular expressions:
		^	match beginning of the string
		$	match end of the string
		|	start an alternate sequence
		()	grouping
		.	match any character
		[...]	match any character from set
		[^...]	match any character but ones from set
		\s	match whitespace
		\S	match non-whitespace
		\d	match decimal digit
		+	match one or more times
		*	match zero or more times
		?	match zero or once
		\xDD	match byte with hex value 0xDD
		\meta	match one of the meta character: ^$().[*+?\

  Examples:
	- transpose up by two semitones all the voices which names contain
	  the characters "Bb":

		abcm2ps tune1.abc --voice Bb --transpose 2 --voice end

	- display only the 2 first measures of the tunes which titles start
	  with "Gloria":

		abcm2ps tune2.abc --tune 'T:Gloria' --clip -3 --tune end

	  (note: "-3" means "include the bar starting the measure 3")
