=include name
-=head1 SYNOPSYS
+=head1 SYNOPSIS
-I<(to be) Depriciated commands>
+=over 4
+
+=item B<to be deprecated commands>
+
+=over 4
+
+=item B<PRINT> : I<vname> : I<CF> : I<format>
+
+=item B<GPRINT> : I<vname> : I<CF> : I<format>
+
+=item B<HRULE> : I<value> # I<color> [ :I<legend> ]
+
+=item B<STACK> : I<vname> # I<color> [ :I<legend> ]
+
+=back
+
+=item B<available commands>
+
+=over 8
+
+=item B<PRINT> : I<vname> : I<format>
+
+=item B<GPRINT> : I<vname> : I<format>
-[B<PRINT:>I<vname>B<:>I<CF>B<:>I<format>]
-[B<GPRINT:>I<vname>B<:>I<CF>B<:>I<format>]
-[B<HRULE:>I<value>B<#>I<rrggbbaa>[B<:>I<legend>]]
-[B<STACK:>I<vname>[B<#>I<rrggbbaa>[B<:>I<legend>]]]
+=item B<COMMENT> : I<text>
-I<(soon) available commands>
+=item B<VRULE> : I<vname> # I<color> [ : I<legend> ]
-[B<PRINT:>I<vname>B<:>I<format>]
-[B<GPRINT:>I<vname>B<:>I<format>]
-[B<COMMENT:>I<text>]
-[B<VRULE:>I<vname>B<#>I<rrggbbaa>[B<:>I<legend>]]
-[B<LINE>{I<width>}B<:>I<vname>[B<#>I<rrggbbaa>[B<:>I<legend>]]][B<:STACK>]
-[B<AREA:>I<vname>[B<#>I<rrggbbaa>[B<:>I<legend>]]][B<:STACK>]
+=item B<LINE>{I<width>} : I<vname> # I<color> [ : I<legend> ] [ : STACK ]
-I<to be implemented commands>
+=item B<AREA> C<:> I<vname> C<#> I<color> [ C<:> I<legend> ] [ C<:> C<STACK> ]
-[B<SHIFT:>I<vname>]
-[B<PART:>I<vname>B<#>I<rrggbbaa>[B<:>I<legend>]]
+=item B<PART> : I<vname> B<#> I<rrggbbaa> [ B<:> I<legend> ]
+
+=item B<TICK> : I<vname> B<#> I<rrggbbaa> [ : I<fraction> [ : I<legend> ] ]
+
+=back
+
+=item B<to be implemented commands>
+
+=over 8
+
+=item B<SHIFT> : I<vname> , I<offset>
+
+=back
+
+=back
=head1 DESCRIPTION
=head1 PRINT
-B<PRINT:>I<vname>B<:>I<CF>B<:>I<format>
+=over 4
+
+=item B<PRINT> : I<vname> : I<CF> : I<format>
-I<Depriciated. Use the new form of this command in new scripts.>
+I<Deprecated. Use the new form of this command in new scripts.>
The first form of this command is to be used with B<CDEF> I<vname>s.
-B<PRINT:>I<vname>B<:>I<format>
+=item B<PRINT> : I<vname> : I<format>
Depending on the context, either the value component or the time
component of a B<VDEF> is printed using I<format>. It is an error
=item *
-B<%#.#le> (where # is an optional number) prints like 1.2346e+04
+B<%#.#le> prints like 1.2346e+04. Optional numbers # are field width and
+decimal precision
=item *
-B<%#.#lf> prints like 12345.6789
+B<%#.#lf> prints like 12345.6789, with optional field width and precision
=item *
-B<%s> place this after B<%le> or B<%lf>. This will be replaced by the
+B<%s> place this after B<%le>, B<%lf> or B<%lg>. This will be replaced by the
appropriate SI magnitude unit and the value will be scaled
accordingly (123456 -> 123.456 k)
=item *
-B<%U, %W> week number of the current year with either the first sunday or
-the first monday determining the first week
+B<%U, %W> week number of the current year with either the first Sunday or
+the first Monday determining the first week
=item *
=back
+=back
+
=head1 GRAPH
-B<GPRINT:>I<vname>B<:>I<CF>B<:>I<format>
+=over 4
+
+=item B<GPRINT> : I<vname> : I<CF> : I<format>
-I<Depriciated. Use the new form of this command in new scripts.>
-This is the same as B<PRINT> but now it is printed inside the graph.
-See L<PRINT> for more information.
+I<Deprecated. Use the new form of this command in new scripts.>
+This is the same as C<PRINT> but now it is printed inside the graph.
-B<GPRINT:>I<vname>B<:>I<format>
+=item B<GPRINT> : I<vname> : I<format>
-This is the same as B<PRINT> but now it is printed inside the graph.
-See L<PRINT> for more information.
+This is the same as C<PRINT> but now it is printed inside the graph.
-B<COMMENT:>I<text>
+=item B<COMMENT> : I<text>
Text is printed literally in the legend section of the graph
-B<HRULE:>I<value>B<#>I<rrggbbaa>[B<:>I<legend>]
+=item B<HRULE> : I<value> # I<color> [ :I<legend> ]
Draw an horizontal line at I<value>. Its color is composed from three
hexadecimal numbers specifying the color components (00 is off, FF is
printed in the legend section. I<value> can be a variable from a B<VDEF>.
It is an error to use I<vname>s from B<DEF> or B<CDEF> here.
-B<VRULE:>I<time>B<#>I<rrggbbaa>[B<:>I<legend>]
+=item B<VRULE> : I<vname> # I<color> [ : I<legend> ]
Draw a vertical line at I<time>. Its color is composed from three
hexadecimal numbers specifying the color components (00 is off, FF is
printed in the legend section. I<time> may be a number or a variable
from a B<VDEF>. It is an error to use I<vname>s from B<DEF> or B<CDEF> here.
-B<LINE>{I<width>}B<:>I<vname>[B<#>I<rrggbbaa>[B<:>I<legend>]][B<:STACK>]
+=item B<LINE>{I<width>} : I<vname> # I<color> [ : I<legend> ] [ : STACK ]
Draw a line of the specified width into the graph. If the color
is not specified, the drawing is done 'blind'. This is useful when
stacked on top of the previous element which can be a B<LINEx> or
an B<AREA>
-B<AREA:>I<vname>[B<#>I<rrggbbaa>[B<:>I<legend>]][B<:STACK>]
+=item B<AREA> C<:> I<vname> C<#> I<color> [ C<:> I<legend> ] [ C<:> C<STACK> ]
-See B<LINEx>, however the area between the x-axis and the line will
+See B<LINE>, however the area between the x-axis and the line will
also be filled.
-B<STACK:>I<vname>[B<#>I<rrggbbaa>[B<:>I<legend>]]
+=item B<STACK> : I<vname> # I<color> [ :I<legend> ]
-I<Depriciated. Use the B<STACK> modifiers on the other commands.>
+I<Deprecated. Use the B<STACK> modifiers on the other commands.>
I<Note: the comments on stacking are still valid...>
Repeats the last B<LINEx> or B<AREA> however it doesn't start at the
x-axis but rather on top of the previous element. This implies that
there needs to be something to stack on. An invisible B<LINEx> or
-B<AREA> is something you can stack on!
+B<AREA> is something you can stack on, an unknown value is not!
Note: When you stack on something that was I<unknown>, the whole
stack will be I<unknown> for that point in time. If the beginning
B<LINEx> or B<AREA> it gets stacked on is not unknown. Use a CDEF
instruction with B<IF> and B<UN> to do so.
-B<THE NEXT STUFF IS NOT YET IMPLEMENTED>
+=item B<PART> : I<vname> B<#> I<rrggbbaa> [ B<:> I<legend> ]
+
+B<RRDtool> has now support for B<pie charts>. If you include the
+B<PART> command, the canvas is extended to make room for a chart
+The size of the canvas is determined by the lesser of
+L<width and height|rrdgraph/item_Size>.
+
+Pie parts will be concatenated, the first one will start at the
+top and parts will be created clockwise. The size of the part
+is defined by the value part of the L<VDEF|rrdgraph_data/VDEF>
+function. It should return a number between 0 and 100, being a
+percentage. Providing wrong input will produce undefined results.
+
+=item B<TICK> : I<vname> B<#> I<rrggbbaa> [ : I<fraction> [ : I<legend> ] ]
+
+Plot a tick mark (a vertical line) for each value of I<vname> that is
+non-zero and not *UNKNOWN*. The I<fraction> argument specifies the
+length of the tick mark as a fraction of the y-axis; the default value
+is 0.1 (10% of the axis). Note that the color specification is not
+optional.
+
+=back
+
+B<THE NEXT COMMAND IS NOT YET IMPLEMENTED>
+
+=over 4
-B<SHIFT:>I<offset in seconds>
+=item B<SHIFT> : I<vname> , I<offset>
Using this command B<RRDtool> will graph the following elements
with the specified offset. For instance, you can specify an
week. Make sure to notify the viewer you did so...
The offset will be valid until the next B<SHIFT> command, which
can have an offset of zero to restore normal graphing.
-As with the other grapher elements, you can specify a number or
+As with the other graphing elements, you can specify a number or
a variable here.
-B<RRDtool> has now support for B<pie charts>. If you include the
-B<PART> command, the canvas is extended to make room for a chart
-(or, if no other graph elements are used, the canvas is solely
-used for the pie chart). The size of the canvas is determined by
-the lesser of L<width and height|rrdgraph/item_Size>.
-
-B<PART:>I<vname>B<#>I<rrggbbaa>[B<:>I<legend>]
-
-Draw a part of pie. Pie parts will be concatenated, the first one
-will start at the top and parts will be created clockwise.
-The size of the part is defined by the value part of
-the L<VDEF|rrdgraph_data/VDEF> function. It should return
-a number between 0 and 100, being a percentage.
-Providing wrong input will produce undefined results.
+=back
+
+=head1 NOTES on legend arguments
+
+=head2 Escaping the colon
+
+In a ':' in a I<legend> argument will mark the end of the legend. To
+enter a ':' into a legend, the colon must be escaped with a backslash '\:'.
+Beware, that many environments look for backslashes themselves, so it may
+be necessary to write two backslashes so that one is passed onto rrd_graph.
+
+=head2 String Formatting
+
+The text printed below the actual graph can be formated by appending special
+escaped characters at the end of a text. When ever such a character occurs,
+all pending text is pushed onto the graph according to the character
+specified.
+
+Valid markers are: B<\j> for justified, B<\l> for left aligned, B<\r> for
+right aligned and B<\c> for centered. In the next section there is an
+example showing how to use centered formating.
+
+Normally there are two space characters inserted between every two items
+printed into the graph. The space following a string can be suppressed by
+putting a B<\g> at the end of the string. The B<\g> also ignores any space
+inside the string if it is at the very end of the string. This can be used
+in connection with B<%s> to suppress empty unit strings.
+
+ GPRINT:a:MAX:%lf%s\g
+
+A special case is COMMENT:B<\s> this inserts some additional vertical space
+before placing the next row of legends.
+
+If you are using the proportional font in your graph, you can use tab characters
+or the sequence B<\t> to lin-up legend elements. Note that the tabs inserted are
+relative to the start of the current legend element!
=include see_also