aboutsummaryrefslogtreecommitdiffstats
path: root/doc/user/dia_link
diff options
context:
space:
mode:
Diffstat (limited to 'doc/user/dia_link')
-rw-r--r--doc/user/dia_link133
1 files changed, 107 insertions, 26 deletions
diff --git a/doc/user/dia_link b/doc/user/dia_link
index b71f9d5..f3a80fb 100644
--- a/doc/user/dia_link
+++ b/doc/user/dia_link
@@ -4,15 +4,26 @@
@Begin
@PP
@Code "@Diag" has one basic symbol for creating links, called
-link. @Index { @Code "@Link" symbol from @Code "@Diag" }
+diagrams. @RawIndex { diagrams }
+diagrams.link @SubIndex { @Code "@Link" symbol }
+link.diagrams @Index { @Code "@Link" symbol (diagrams) }
{@Code "@Link"}. It draws a link between two points or nodes
given by {@Code from} and {@Code to} options, along a path
+diagrams. @RawIndex { diagrams }
+diagrams.from @SubIndex { @Code "from" option }
+from.diagrams @Index { @Code "from" option (diagrams) }
+diagrams. @RawIndex { diagrams }
+diagrams.to @SubIndex { @Code "to" option }
+to.diagrams @Index { @Code "to" option (diagrams) }
given by a {@Code path} option:
-@ID @Code {
-"@Link"
-" path { ... }"
-" from { ... }"
-" to { ... }"
+diagrams. @RawIndex { diagrams }
+diagrams.path @SubIndex { @Code "path" option }
+path.diagrams @Index { @Code "path" option (diagrams) }
+@ID @Code @Verbatim {
+@Link
+ path { ... }
+ from { ... }
+ to { ... }
}
Unlike {@Code "@Node"}, {@Code "@Link"} has no following object.
@PP
@@ -72,6 +83,13 @@ relative to each other, except that no promise of a sensible result is
made for two nodes very close together.
@PP
@Code "@Link" has two options, @Code bias and {@Code radius}, that may be
+diagrams. @RawIndex { diagrams }
+diagrams.bias @SubIndex { @Code "bias" option }
+bias.diagrams @Index { @Code "bias" option (diagrams) }
+diagrams. @RawIndex { diagrams }
+diagrams.radius @SubIndex { @Code "radius" option }
+radius. @RawIndex { @Code "radius" option }
+radius.in.diagrams @SubIndex { in diagrams }
used to fine-tune the path. The @Code "bias" option determines the
maximum distance that a curve is permitted to stray:
@CD @Tab
@@ -108,10 +126,10 @@ a semicircle at the right in an {@Code rvlcurve}.
Lout has no idea where the path is wandering, and cannot take it into
account when placing a diagram on the page:
@ID {
-@Code {
-"@Link"
-" path { ccurve }"
-" bias { 2c }"
+@Code @Verbatim {
+@Link
+ path { ccurve }
+ bias { 2c }
}
||7ct
@Diag vstrut { no } {
@@ -130,6 +148,15 @@ in the setup file, where they apply to every link in every diagram of the
document, unless overridden.
@PP
There are {@Code pathstyle}, {@Code pathdashlength} and {@Code pathwidth}
+diagrams. @RawIndex { diagrams }
+diagrams.pathstyle @SubIndex { @Code "pathstyle" option }
+pathstyle.diagrams @Index { @Code "pathstyle" option (diagrams) }
+diagrams. @RawIndex { diagrams }
+diagrams.pathdashlength @SubIndex { @Code "pathdashlength" option }
+pathdashlength.diagrams @Index { @Code "pathdashlength" option (diagrams) }
+diagrams. @RawIndex { diagrams }
+diagrams.pathwidth @SubIndex { @Code "pathwidth" option }
+pathwidth.diagrams @Index { @Code "pathwidth" option (diagrams) }
options which affect the appearance of the path in the same way as the
{@Code outlinestyle}, {@Code outlinedashlength} and {@Code outlinewidth}
options of {@Code "@Node"} affect the outline. When {@Code pathstyle}
@@ -137,15 +164,20 @@ contains just one value (as opposed to a sequence of values) @Code "@Diag"
tries to divide the path into fewer segments than it would otherwise, to
make dashed and dotted paths look as good as possible. There is also
a {@Code pathgap} option which affects only @Code doubleline paths; it
+diagrams. @RawIndex { diagrams }
+diagrams.pathgap @SubIndex { @Code "pathgap" option }
+pathgap.diagrams @Index { @Code "pathgap" option (diagrams) }
determines the gap between the centres of the two lines.
@PP
The @Code "@Link" symbol has an @Code arrow option, which adds an
-arrow. @Index { arrows }
+diagrams. @RawIndex { diagrams }
+diagrams.arrow.opt @SubIndex { @Code "arrow" option }
+arrow.opt.diagrams @Index { @Code "arrow" option (diagrams) }
arrowhead to the end of the link:
@ID {
-@Code {
-"@Link"
-" arrow { yes }"
+@Code @Verbatim {
+@Link
+ arrow { yes }
}
||7ct
@Diag {
@@ -160,9 +192,9 @@ arrowhead to the end of the link:
Its value may be {@Code no} (the default), {@Code yes}, {@Code forward}
(which is the same as {@Code yes}), {@Code back}, or {@Code both}:
@ID {
-@Code {
-"@Link"
-" arrow { both }"
+@Code @Verbatim {
+@Link
+ arrow { both }
}
||7ct
@Diag {
@@ -177,17 +209,26 @@ Its value may be {@Code no} (the default), {@Code yes}, {@Code forward}
@Code "@Link" has three options for controlling the appearance of
arrowheads: {@Code arrowstyle}, {@Code arrowwidth}, and
{@Code arrowlength}. Although every link symbol has these options, for
+diagrams. @RawIndex { diagrams }
+diagrams.arrowstyle @SubIndex { @Code "arrowstyle" option }
+arrowstyle.diagrams @Index { @Code "arrowstyle" option (diagrams) }
+diagrams. @RawIndex { diagrams }
+diagrams.arrowwidth @SubIndex { @Code "arrowwidth" option }
+arrowwidth.diagrams @Index { @Code "arrowwidth" option (diagrams) }
+diagrams. @RawIndex { diagrams }
+diagrams.arrowlength @SubIndex { @Code "arrowlength" option }
+arrowlength.diagrams @Index { @Code "arrowlength" option (diagrams) }
consistency it is almost always better to set the corresponding options
to the @Code "@Diag" symbol, which applies them to every arrow in the
diagram:
-@ID @Code {
-"@Diag"
-" arrowstyle { solid }"
-" arrowwidth { 0.3f }"
-" arrowlength { 0.5f }"
-"{"
-" ..."
-"}"
+@ID @Code @Verbatim {
+@Diag
+ arrowstyle { solid }
+ arrowwidth { 0.3f }
+ arrowlength { 0.5f }
+{
+ ...
+}
}
This shows the default values: a solid arrowhead like the ones above,
@Code "0.3f" wide (across) and @Code "0.5f" long. The @Code "arrowwidth"
@@ -245,15 +286,55 @@ base to its point, and hence can and does ensure that the link path does
not overstrike and thicken the point of the arrow.
}
@PP
-It is possible to place an arbitrary object at the beginning or
+Corresponding with {@Code arrowstyle}, {@Code arrowwidth}, and
+{@Code arrowlength}, there are {@Code backarrowstyle},
+{@Code backarrowwidth}, and {@Code backarrowlength} options which
+diagrams. @RawIndex { diagrams }
+diagrams.backarrowstyle @SubIndex { @Code "backarrowstyle" option }
+backarrowstyle.diagrams @Index { @Code "backarrowstyle" option (diagrams) }
+diagrams. @RawIndex { diagrams }
+diagrams.backarrowwidth @SubIndex { @Code "backarrowwidth" option }
+backarrowwidth.diagrams @Index { @Code "backarrowwidth" option (diagrams) }
+diagrams. @RawIndex { diagrams }
+diagrams.backarrowlength @SubIndex { @Code "backarrowlength" option }
+backarrowlength.diagrams @Index { @Code "backarrowlength" option (diagrams) }
+determine the style and size of the back arrow; it doesn't have
+to be the same style or size as the forward arrow:
+@ID {
+@Code @Verbatim {
+@Link
+ arrow { both }
+ backarrowstyle { circle }
+}
+||7ct
+@Diag {
+1c @High 3c @Wide
+//
+@Link
+ from { 0,0 }
+ to { 1,1 }
+ arrow { both }
+ backarrowstyle { circle }
+}
+}
+It is also possible to place an arbitrary object at the beginning or
end of a link, using the @Code "fromlabel" and @Code "tolabel" options
of Section {@NumberOf dia_labe}.
@PP
To save time in common cases, @Code "@Diag" provides link symbols,
each of which is just @Code "@Link" with one of the standard paths
already set: {@Code "@Line"}, {@Code "@Curve"}, {@Code "@CCurve"},
+diagrams. @RawIndex { diagrams }
+diagrams.line @SubIndex { @Code "@Line" symbol }
+line.diagrams @Index { @Code "@Line" symbol (diagrams) }
+diagrams. @RawIndex { diagrams }
+diagrams.curve @SubIndex { @Code "@Curve" symbol }
+curve.diagrams @Index { @Code "@Curve" symbol (diagrams) }
{@Code "@RVLCurve"}, and so on. There are also symbols in which
the @Code "arrow" option is set to @Code yes in addition: {@Code "@Arrow"},
+diagrams. @RawIndex { diagrams }
+diagrams.arrow.sym @SubIndex { @Code "@Arrow" symbol }
+arrow.sym.diagrams @Index { @Code "@Arrow" symbol (diagrams) }
{@Code "@CurveArrow"}, {@Code "@CCurveArrow"}, {@Code "@RVLCurveArrow"},
and so on. See the summary (Section {@NumberOf dia_summ}) for the
full list of these symbols. You will still need the @Code "arrow" option