diff options
Diffstat (limited to 'Master/texmf-dist/doc/generic/pgf/version-for-tex4ht/en/pgfmanualse24.html')
-rw-r--r-- | Master/texmf-dist/doc/generic/pgf/version-for-tex4ht/en/pgfmanualse24.html | 1367 |
1 files changed, 0 insertions, 1367 deletions
diff --git a/Master/texmf-dist/doc/generic/pgf/version-for-tex4ht/en/pgfmanualse24.html b/Master/texmf-dist/doc/generic/pgf/version-for-tex4ht/en/pgfmanualse24.html deleted file mode 100644 index 295664b2917..00000000000 --- a/Master/texmf-dist/doc/generic/pgf/version-for-tex4ht/en/pgfmanualse24.html +++ /dev/null @@ -1,1367 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" - "http://www.w3.org/TR/html4/loose.dtd"> -<html > -<head><title>24 Arrow Tips</title> -<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> -<meta name="generator" content="TeX4ht (http://www.cis.ohio-state.edu/~gurari/TeX4ht/mn.html)"> -<meta name="originator" content="TeX4ht (http://www.cis.ohio-state.edu/~gurari/TeX4ht/mn.html)"> -<!-- html --> -<meta name="src" content="pgfmanual.tex"> -<meta name="date" content="2005-11-15 18:41:00"> -<link rel="stylesheet" type="text/css" href="pgfmanual.css"> -</head><body -> - <div class="crosslinks"><p class="noindent">[<a -href="pgfmanualse25.html" >next</a>] [<a -href="pgfmanualse23.html" >prev</a>] [<a -href="pgfmanualse23.html#tailpgfmanualse23.html" >prev-tail</a>] [<a -href="#tailpgfmanualse24.html">tail</a>] [<a -href="pgfmanual.html#pgfmanualse24.html" >up</a>] </p></div> - <h3 class="sectionHead"><span class="titlemark">24 </span> <a - id="x25-25200024"></a>Arrow Tips</h3> -<!--l. 12--><p class="noindent"> - <h4 class="subsectionHead"><span class="titlemark">24.1 </span> <a - id="x25-25300024.1"></a>Overview</h4> -<!--l. 14--><p class="noindent"> - <h5 class="subsubsectionHead"><span class="titlemark">24.1.1 </span> <a - id="x25-25400024.1.1"></a>When Does PGF Draw Arrow Tips?</h5> -<!--l. 16--><p class="noindent"><span -class="cmcsc-10"><small -class="small-caps">P</small><small -class="small-caps">G</small><small -class="small-caps">F</small></span> offers an interface for placing <span -class="cmti-10">arrow tips </span>at the end of lines. The interface works as follows: -<!--l. 19--><p class="indent"> - <ol type="1" class="enumerate1" > - <li class="enumerate" value="1" -><a - id="x25-254002x1"></a>You (or someone else) assigns a name to a certain kind of arrow tips. For example, the arrow tip <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">latex</span></span></span> - is the arrow tip used by the standard <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span -class="E">E</span>X</span></span> picture environment; the arrow tip <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">to</span></span></span> looks like the tip - of the arrow in <span class="TEX">T<span -class="E">E</span>X</span>’s <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">\to</span></span></span> command; and so on. - <!--l. 27--><p class="noindent">This is done once at the beginning of the document. - </li> - <li class="enumerate" value="2" -><a - id="x25-254004x2"></a>Inside some picture, at some point you specify that in the current scope from now on you would like - tips of, say, kind <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">to</span></span></span> to be added at the end and/or beginning of all paths. - <!--l. 33--><p class="noindent">When an arrow kind has been installed and when <span -class="cmcsc-10"><small -class="small-caps">P</small><small -class="small-caps">G</small><small -class="small-caps">F</small></span> is about to stroke a path, the following things - happen: - <ol type="a" class="enumerate2" > - <li class="enumerate" value="1" -><a - id="x25-254006x1"></a>The beginning and/or end of the path is shortened appropriately. - </li> - <li class="enumerate" value="2" -><a - id="x25-254008x2"></a>The path is stroked. - </li> - <li class="enumerate" value="3" -><a - id="x25-254010x3"></a>The arrow tip is drawn at the beginning and/or end of the path, appropriately rotated and - appropriately resized.</li></ol> - </li></ol> -<!--l. 46--><p class="indent"> In the above description, there are a number of “appropriately.” The exact details are not quite trivial and -described later on. -<!--l. 49--><p class="noindent"> - <h5 class="subsubsectionHead"><span class="titlemark">24.1.2 </span> <a - id="x25-25500024.1.2"></a>Meta-Arrow Tips</h5> -<!--l. 51--><p class="noindent">In <span -class="cmcsc-10"><small -class="small-caps">P</small><small -class="small-caps">G</small><small -class="small-caps">F</small></span>, arrows are “meta-arrows” in the same way that fonts in <span class="TEX">T<span -class="E">E</span>X</span> are “meta-fonts.” When a meta-arrow is -resized, it is not simply scaled, but a possibly complicated transformation is applied to the size. -<!--l. 56--><p class="indent"> A meta-font is not one particular font at a specific size with a specific stroke width (and with a large number of -other parameters being fixed). Rather, it is a “blueprint” (actually, more like a program) for generating such a font -at a particular size and width. This allows the designer of a meta-font to make sure that, say, the font is -somewhat thicker and wider at very small sizes. To appreciate the difference: Compare the following -texts: “Berlin” and “<object data="pgfmanual-553.svg" width="49.57451 " height="10.25916 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object>”. The first is a “normal” text, the second is the tiny version scaled -by a factor of two. Obviously, the first look better. Now, compare “<object data="pgfmanual-554.svg" width="18.70366 " height="5.6296 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object>” and “<span -class="cmr-5">Berlin</span>”. This time, the -normal text was scaled down, while the second text is a “normal” tiny text. The second text is easier to -read. - - -<!--l. 71--><p class="indent"> <span -class="cmcsc-10"><small -class="small-caps">P</small><small -class="small-caps">G</small><small -class="small-caps">F</small></span>’s meta-arrows work in a similar fashion: The shape of an arrow tip can vary according to the line width of -the arrow tip is used. Thus, an arrow tip drawn at a line width of 5pt will typically <span -class="cmti-10">not </span>be five times as large as an -arrow tip of line width 1pt. Instead, the size of the arrow will get bigger only slowly as the line width -increases. -<!--l. 78--><p class="indent"> To appreciate the difference, here are the <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">latex</span></span></span> and <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">to</span></span></span> arrows, as drawn by <span -class="cmcsc-10"><small -class="small-caps">P</small><small -class="small-caps">G</small><small -class="small-caps">F</small></span> at four different -sizes: -<!--l. 92--><p class="indent"> <object data="pgfmanual-555.svg" width="460.91939 " height="101.73952 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> -<!--l. 95--><p class="indent"> Here, by comparison, is the same arrow when it is simply “resized” (as done by most programs): -<!--l. 150--><p class="indent"> <object data="pgfmanual-556.svg" width="460.91939 " height="101.73952 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> -<!--l. 153--><p class="indent"> As can be seen, simple scaling produces arrow tips that are way too large at larger sizes and way too small at -smaller sizes. -<!--l. 158--><p class="noindent"> - <h4 class="subsectionHead"><span class="titlemark">24.2 </span> <a - id="x25-25600024.2"></a>Declaring an Arrow Tip Kind</h4> -<!--l. 160--><p class="noindent">To declare an arrow kind “from scratch,” the following command is used: -<!--l. 164--><p class="indent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox275"><span -class="cmtt-10">\pgfarrowsdeclare</span><span -class="cmtt-10">{</span><span -class="cmsy-10"><</span><span -class="cmti-10">start name</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">end name</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">extend code</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">arrow tip code</span><span -class="cmsy-10">></span><span -class="cmtt-10">}</span></span> </dt><dd -class="description"> -<a - id="dx25-256001"></a> - <!--l. 165--><p class="noindent">This command declares a new arrow kind. An arrow kind has two names, which will typically be the - same. When the arrow tip needs to be drawn, the <span -class="cmsy-10"><</span><span -class="cmti-10">arrow tip code</span><span -class="cmsy-10">> </span>will be invoked, but the canvas - transformation is setup beforehand to a rotation such that when an arrow tip pointing right is specified, - the arrow tip that is actually drawn points in the direction of the line. - <!--l. 173--><p class="noindent"><span -class="cmbx-10">Naming the arrow kind. </span>The <span -class="cmsy-10"><</span><span -class="cmti-10">start name</span><span -class="cmsy-10">> </span>is the name used for the arrow tip when it is at the - start of a path, the <span -class="cmsy-10"><</span><span -class="cmti-10">end name</span><span -class="cmsy-10">> </span>is the name used at the end of a path. For example, the arrow - kind that looks like a parenthesis has the <span -class="cmsy-10"><</span><span -class="cmti-10">start name</span><span -class="cmsy-10">></span><span class="obeylines-h"><span class="verb"><span -class="cmtt-10">(</span></span></span> and the <span -class="cmsy-10"><</span><span -class="cmti-10">end name</span><span -class="cmsy-10">></span><span class="obeylines-h"><span class="verb"><span -class="cmtt-10">)</span></span></span> so that you can say - <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">\pgfsetarrows{(-)}</span></span></span> to specify that you want parenthesis arrows and both ends. - <!--l. 182--><p class="noindent">The <span -class="cmsy-10"><</span><span -class="cmti-10">end name</span><span -class="cmsy-10">> </span>and <span -class="cmsy-10"><</span><span -class="cmti-10">start name</span><span -class="cmsy-10">> </span>can be quite arbitrary and may contain spaces. - <!--l. 186--><p class="noindent"><span -class="cmbx-10">Basics of the arrow tip code. </span>Let us next have a look at the <span -class="cmsy-10"><</span><span -class="cmti-10">arrow tip code</span><span -class="cmsy-10">></span>. This code will be - used to draw the arrow tip when <span -class="cmcsc-10"><small -class="small-caps">P</small><small -class="small-caps">G</small><small -class="small-caps">F</small></span> thinks this is necessary. The code should draw an arrow that - “points right,” which means that is should draw an arrow at the end of a line coming from the left and - ending at the origin. - <!--l. 193--><p class="noindent">As an example, suppose we wanted to declare an arrow tip consisting of two arcs, that is, we want the arrow - tip to look more or less like the red part of the following picture: - - - <!--l. 196--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-476-" ><colgroup id="TBL-476-1g"><col -id="TBL-476-1"><col -id="TBL-476-2"></colgroup><tr - valign="baseline" id="TBL-476-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-476-1-1" -class="td11"> <object data="pgfmanual-557.svg" width="80.87367 " height="31.66655 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-476-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\begin{tikzpicture}[line</span><span -class="cmtt-8"> width=3pt]</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \draw</span><span -class="cmtt-8"> (-2,0)</span><span -class="cmtt-8"> --</span><span -class="cmtt-8"> (0,0);</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \draw[red,join=round,cap=round]</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> (-10pt,10pt)</span><span -class="cmtt-8"> arc</span><span -class="cmtt-8"> (180:270:10pt)</span><span -class="cmtt-8"> arc</span><span -class="cmtt-8"> (90:180:10pt);</span> -<br><span -class="cmtt-8">\end{tikzpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - <!--l. 204--><p class="noindent">We could use the following as <span -class="cmsy-10"><</span><span -class="cmti-10">arrow tip code</span><span -class="cmsy-10">> </span>for this: - <!--l. 205--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-477-" ><colgroup id="TBL-477-1g"><col -id="TBL-477-1"></colgroup><tr - valign="baseline" id="TBL-477-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-477-1-1" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\pgfarrowsdeclare{arcs}{arcs}{...}</span> -<br><span -class="cmtt-8">{</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetdash{}{0pt}</span><span -class="cmtt-8"> </span><span -class="cmsltt-10x-x-80">%</span><span -class="cmsltt-10x-x-80"> do</span><span -class="cmsltt-10x-x-80"> not</span><span -class="cmsltt-10x-x-80"> dash</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetroundjoin</span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmsltt-10x-x-80">%</span><span -class="cmsltt-10x-x-80"> fix</span><span -class="cmsltt-10x-x-80"> join</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetroundcap</span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmsltt-10x-x-80">%</span><span -class="cmsltt-10x-x-80"> fix</span><span -class="cmsltt-10x-x-80"> cap</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpoint{-10pt}{10pt}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpatharc{180}{270}{10pt}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpatharc{90}{180}{10pt}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepathqstroke</span> -<br><span -class="cmtt-8">}</span></div> </td></tr></table> </td> -</tr></table></div> - <!--l. 218--><p class="noindent">Indeed, when the <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">...</span></span></span> is set appropriately (in a moment), we can write the following: - <!--l. 230--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"> -<table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-478-" ><colgroup id="TBL-478-1g"><col -id="TBL-478-1"><col -id="TBL-478-2"></colgroup><tr - valign="baseline" id="TBL-478-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-478-1-1" -class="td11"> <object data="pgfmanual-558.svg" width="80.87367 " height="105.32631 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-478-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\begin{tikzpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \draw[-arcs,line</span><span -class="cmtt-8"> width=3pt]</span><span -class="cmtt-8"> (-2,0)</span><span -class="cmtt-8"> </span><span -class="cmtt-8"> --</span><span -class="cmtt-8"> (0,0);</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \draw[arcs-arcs,line</span><span -class="cmtt-8"> width=1pt]</span><span -class="cmtt-8"> (-2,-1.5)</span><span -class="cmtt-8"> --</span><span -class="cmtt-8"> (0,-1);</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \useasboundingbox</span><span -class="cmtt-8"> (-2,-2)</span><span -class="cmtt-8"> rectangle</span><span -class="cmtt-8"> (0,0.75);</span> -<br><span -class="cmtt-8">\end{tikzpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - <!--l. 238--><p class="noindent">As can be seen in the second example, the arrow tip is automatically rotated as needed when the arrow is - drawn. This is achieved by a canvas rotation. - <!--l. 243--><p class="noindent"><span -class="cmbx-10">Special considerations about the arrow tip code. </span>There are several things you need to be aware of when - designing arrow tip code: - <ul class="itemize1"> - <li class="itemize">Inside the code, you may not use the <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">\pgfusepath</span></span></span> command. The reason is that this command - internally calls arrow construction commands, which is something you obviously do not want to - happen. - <!--l. 253--><p class="noindent">Instead of <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">\pgfusepath</span></span></span>, use the quick versions. Typically, you will use <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">\pgfusepathqstroke</span></span></span>, - <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">\pgfusepathqfill</span></span></span>, or <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">\pgfusepathqfillstroke</span></span></span>. - </li> - <li class="itemize">The code will be executed only once, namely the first time the arrow tip needs to be drawn. The - resulting low-level driver commands are protocoled and stored away. In all subsequent uses of the - arrow tip, the protocoled code is directly inserted. - </li> - <li class="itemize">However, the code will be executed anew for each line width. Thus, an arrow of line width 2pt - may result in a different protocol than the same arrow for a line width of 0.4pt. - </li> - <li class="itemize">If you stroke the path that you construct, you should first set the dashing to solid and setup fixed - joins and caps, as needed. This will ensure that the arrow tip will always look the same. - </li> - <li class="itemize">When the arrow tip code is executed, it is automatically put inside a low-level scope, so nothing - will “leak out” from the scope. - - - </li> - <li class="itemize">The high-level coordinate transformation matrix will be set to the identity matrix when the code - is executed for the first time.</li></ul> - <!--l. 280--><p class="noindent"><span -class="cmbx-10">Designing meta-arrows. </span>The <span -class="cmsy-10"><</span><span -class="cmti-10">arrow tip code</span><span -class="cmsy-10">> </span>should adjust the size of the arrow in accordance with the - line width. For a small line width, the arrow tip should be small, for a large line width, it should be - larger. However, the size of the arrow typically <span -class="cmti-10">should not </span>grow in direct proportion to the line - width. On the other hand, the size of the arrow head typically <span -class="cmti-10">should </span>grow “a bit” with the line - width. - <!--l. 289--><p class="noindent">For these reasons, <span -class="cmcsc-10"><small -class="small-caps">P</small><small -class="small-caps">G</small><small -class="small-caps">F</small></span> will not simply executed your arrow code within a scaled scope, where the scaling - depends on the line width. Instead, your <span -class="cmsy-10"><</span><span -class="cmti-10">arrow tip code</span><span -class="cmsy-10">> </span>is reexecuted again for each different line - width. - <!--l. 294--><p class="noindent">In our example, we could use the following code for the new arrow tip kind <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">arc'</span></span></span> (note the prime): - <!--l. 296--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-479-" ><colgroup id="TBL-479-1g"><col -id="TBL-479-1"></colgroup><tr - valign="baseline" id="TBL-479-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-479-1-1" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\newdimen\arrowsize</span> -<br><span -class="cmtt-8">\pgfarrowsdeclare{arcs'}{arcs'}{...}</span> -<br><span -class="cmtt-8">{</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \arrowsize=0.2pt</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \advance\arrowsize</span><span -class="cmtt-8"> by</span><span -class="cmtt-8"> .5\pgflinewidth</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetdash{}{0pt}</span><span -class="cmtt-8"> </span><span -class="cmsltt-10x-x-80">%</span><span -class="cmsltt-10x-x-80"> do</span><span -class="cmsltt-10x-x-80"> not</span><span -class="cmsltt-10x-x-80"> dash</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetroundjoin</span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmsltt-10x-x-80">%</span><span -class="cmsltt-10x-x-80"> fix</span><span -class="cmsltt-10x-x-80"> join</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetroundcap</span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmsltt-10x-x-80">%</span><span -class="cmsltt-10x-x-80"> fix</span><span -class="cmsltt-10x-x-80"> cap</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpoint{-4\arrowsize}{4\arrowsize}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpatharc{180}{270}{4\arrowsize}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpatharc{90}{180}{4\arrowsize}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepathqstroke</span> -<br><span -class="cmtt-8">}</span></div> </td></tr></table> </td> -</tr></table></div> - <!--l. 326--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-480-" ><colgroup id="TBL-480-1g"><col -id="TBL-480-1"><col -id="TBL-480-2"></colgroup><tr - valign="baseline" id="TBL-480-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-480-1-1" -class="td11"> <object data="pgfmanual-559.svg" width="80.87367 " height="86.35788 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-480-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\begin{tikzpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \draw[-arcs',line</span><span -class="cmtt-8"> width=3pt]</span><span -class="cmtt-8"> (-2,0)</span><span -class="cmtt-8"> </span><span -class="cmtt-8"> --</span><span -class="cmtt-8"> (0,0);</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \draw[arcs'-arcs',line</span><span -class="cmtt-8"> width=1pt]</span><span -class="cmtt-8"> (-2,-1.5)</span><span -class="cmtt-8"> --</span><span -class="cmtt-8"> (0,-1);</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \useasboundingbox</span><span -class="cmtt-8"> (-2,-1.75)</span><span -class="cmtt-8"> rectangle</span><span -class="cmtt-8"> (0,0.5);</span> -<br><span -class="cmtt-8">\end{tikzpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - <!--l. 334--><p class="noindent">However, sometimes, it can also be useful to have arrows that do not resize at all when the line width changes. - This can be achieved by giving absolute size coordinates in the code, as done for <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">arc</span></span></span>. On the other hand, you - can also have the arrow resize linearly with the line width by specifying all coordinates as multiples of - <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">\pgflinewidth</span></span></span>. - <!--l. 341--><p class="noindent"><span -class="cmbx-10">The left and right extend. </span>Let us have another look at the exact left and right “ends” of our arrow tip. Let - us draw the arrow tip <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">arc'</span></span></span> at a very large size: - <!--l. 345--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-481-" ><colgroup id="TBL-481-1g"><col -id="TBL-481-1"><col -id="TBL-481-2"></colgroup><tr - valign="baseline" id="TBL-481-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-481-1-1" -class="td11"> <object data="pgfmanual-560.svg" width="121.61049 " height="77.14032 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-481-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\begin{tikzpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \draw[help</span><span -class="cmtt-8"> lines]</span><span -class="cmtt-8"> (-2,-1)</span><span -class="cmtt-8"> grid</span><span -class="cmtt-8"> (1,1);</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \draw[line</span><span -class="cmtt-8"> width=10pt,-arcs']</span><span -class="cmtt-8"> (-2,0)</span><span -class="cmtt-8"> --</span><span -class="cmtt-8"> (0,0);</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \draw[line</span><span -class="cmtt-8"> width=2pt,white]</span><span -class="cmtt-8"> (-2,0)</span><span -class="cmtt-8"> --</span><span -class="cmtt-8"> (0,0);</span> -<br><span -class="cmtt-8">\end{tikzpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - <!--l. 353--><p class="noindent">As one can see, the arrow tip does not “touch” the origin as it should, but protrudes a little over the origin. - One remedy to this undesirable effect is to change the code of the arrow tip such that everything is - shifted half an <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">\arrowsize</span></span></span> to the left. While this will cause the arrow tip to touch the origin, the - line itself will then interfere with the arrow: The arrow tip will be partly “hidden” by the line - itself. - - - <!--l. 361--><p class="noindent"><span -class="cmcsc-10"><small -class="small-caps">P</small><small -class="small-caps">G</small><small -class="small-caps">F</small></span> uses a different approach to solving the problem: The <span -class="cmsy-10"><</span><span -class="cmti-10">extend code</span><span -class="cmsy-10">> </span>argument can be used to “tell” - <span -class="cmcsc-10"><small -class="small-caps">P</small><small -class="small-caps">G</small><small -class="small-caps">F</small></span> how much the arrow protrudes over the origin. The argument is also used to tell <span -class="cmcsc-10"><small -class="small-caps">P</small><small -class="small-caps">G</small><small -class="small-caps">F</small></span> where the “left” - end of the arrow is. However, this number is important only when the arrow is being reversed or composed - with other arrow tips. - <!--l. 368--><p class="noindent">Once <span -class="cmcsc-10"><small -class="small-caps">P</small><small -class="small-caps">G</small><small -class="small-caps">F</small></span> knows the right extend of an arrow kind, it can <span -class="cmti-10">shorten </span>lines by this amount when drawing - arrows. - <!--l. 371--><p class="noindent">Here is a picture that shows what the visualizes the extends. The arrow tip itself is shown in red once - more: - <!--l. 389--><p class="noindent"><object data="pgfmanual-561.svg" width="328.05121 " height="242.24754 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> - <!--l. 392--><p class="noindent">The <span -class="cmsy-10"><</span><span -class="cmti-10">extend code</span><span -class="cmsy-10">> </span>is normal <span class="TEX">T<span -class="E">E</span>X</span> code that is executed whenever <span -class="cmcsc-10"><small -class="small-caps">P</small><small -class="small-caps">G</small><small -class="small-caps">F</small></span> wants to know how far the - arrow tip will protrude to the right and left. The code should call the following two commands: - <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">\pgfarrowsrightextend</span></span></span> and <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">\pgfarrowsleftextend</span></span></span>. Both arguments take one argument that specifies the - size. Here is the final code for the <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">arc''</span></span></span> arrow tip: - <!--l. 399--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-482-" ><colgroup id="TBL-482-1g"><col -id="TBL-482-1"><col -id="TBL-482-2"></colgroup><tr - valign="baseline" id="TBL-482-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-482-1-1" -class="td11"> <object data="pgfmanual-562.svg" width="121.61049 " height="77.14032 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-482-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\pgfarrowsdeclare{arcs''}{arcs''}</span> -<br><span -class="cmtt-8">{</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \arrowsize=0.2pt</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \advance\arrowsize</span><span -class="cmtt-8"> by</span><span -class="cmtt-8"> .5\pgflinewidth</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfarrowsleftextend{-4\arrowsize-.5\pgflinewidth}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfarrowsrightextend{.5\pgflinewidth}</span> -<br><span -class="cmtt-8">}</span> -<br><span -class="cmtt-8">{</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \arrowsize=0.2pt</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \advance\arrowsize</span><span -class="cmtt-8"> by</span><span -class="cmtt-8"> .5\pgflinewidth</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetdash{}{0pt}</span><span -class="cmtt-8"> </span><span -class="cmsltt-10x-x-80">%</span><span -class="cmsltt-10x-x-80"> do</span><span -class="cmsltt-10x-x-80"> not</span><span -class="cmsltt-10x-x-80"> dash</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetroundjoin</span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmsltt-10x-x-80">%</span><span -class="cmsltt-10x-x-80"> fix</span><span -class="cmsltt-10x-x-80"> join</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetroundcap</span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmsltt-10x-x-80">%</span><span -class="cmsltt-10x-x-80"> fix</span><span -class="cmsltt-10x-x-80"> cap</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpoint{-4\arrowsize}{4\arrowsize}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpatharc{180}{270}{4\arrowsize}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepathqstroke</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpointorigin}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpatharc{90}{180}{4\arrowsize}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepathqstroke</span> -<br><span -class="cmtt-8">}</span> -<br><span -class="cmtt-8">\begin{tikzpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \draw[help</span><span -class="cmtt-8"> lines]</span><span -class="cmtt-8"> (-2,-1)</span><span -class="cmtt-8"> grid</span><span -class="cmtt-8"> (1,1);</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \draw[line</span><span -class="cmtt-8"> width=10pt,-arcs'']</span><span -class="cmtt-8"> (-2,0)</span><span -class="cmtt-8"> --</span><span -class="cmtt-8"> (0,0);</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \draw[line</span><span -class="cmtt-8"> width=2pt,white]</span><span -class="cmtt-8"> (-2,0)</span><span -class="cmtt-8"> --</span><span -class="cmtt-8"> (0,0);</span> -<br><span -class="cmtt-8">\end{tikzpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - </dd></dl> - - -<!--l. 450--><p class="noindent"> - <h4 class="subsectionHead"><span class="titlemark">24.3 </span> <a - id="x25-25700024.3"></a>Declaring a Derived Arrow Tip Kind</h4> -<!--l. 452--><p class="noindent">It is possible to declare arrow kinds in terms of existing ones. For these command to work correctly, the left and -right extends must be set correctly. -<!--l. 457--><p class="indent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox276"><span -class="cmtt-10">\pgfarrowsdeclarealias</span><span -class="cmtt-10">{</span><span -class="cmsy-10"><</span><span -class="cmti-10">start name</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">end name</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">old start name</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">old end name</span><span -class="cmsy-10">></span><span -class="cmtt-10">}</span></span> </dt><dd -class="description"> -<a - id="dx25-257001"></a> - <!--l. 458--><p class="noindent">This command can be used to create an alias (another name) for an existing arrow kind. - <!--l. 461--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-483-" ><colgroup id="TBL-483-1g"><col -id="TBL-483-1"><col -id="TBL-483-2"></colgroup><tr - valign="baseline" id="TBL-483-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-483-1-1" -class="td11"> <object data="pgfmanual-563.svg" width="152.74736 " height="95.84207 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-483-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\pgfarrowsdeclarealias{<}{>}{arcs''}{arcs''}</span><span -class="cmsltt-10x-x-80">%</span> -<br><span -class="cmtt-8">\begin{tikzpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetarrows{<->}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetlinewidth{1ex}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpointorigin}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpoint{3.5cm}{2cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{stroke}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \useasboundingbox</span><span -class="cmtt-8"> (-0.25,-0.25)</span><span -class="cmtt-8"> rectangle</span><span -class="cmtt-8"> (3.75,2.25);</span> -<br><span -class="cmtt-8">\end{tikzpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - </dd></dl> -<!--l. 476--><p class="indent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox277"><span -class="cmtt-10">\pgfarrowsdeclarereversed</span><span -class="cmtt-10">{</span><span -class="cmsy-10"><</span><span -class="cmti-10">start name</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">end name</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">old start name</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">old end name</span><span -class="cmsy-10">></span><span -class="cmtt-10">}</span></span> </dt><dd -class="description"> -<a - id="dx25-257002"></a> - <!--l. 477--><p class="noindent">This command creates a new arrow kind that is the “reverse” of an existing arrow kind. The - (automatically cerated) code of the new arrow kind will contain a flip of the canvas and the meanings - of the left and right extend will be reversed. - <!--l. 482--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-484-" ><colgroup id="TBL-484-1g"><col -id="TBL-484-1"><col -id="TBL-484-2"></colgroup><tr - valign="baseline" id="TBL-484-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-484-1-1" -class="td11"> <object data="pgfmanual-564.svg" width="152.74736 " height="95.84207 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-484-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\pgfarrowsdeclarereversed{arcs</span><span -class="cmtt-8"> reversed}{arcs</span><span -class="cmtt-8"> reversed}{arcs''}{arcs''}</span><span -class="cmsltt-10x-x-80">%</span> -<br><span -class="cmtt-8">\begin{tikzpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetarrows{arcs</span><span -class="cmtt-8"> reversed-arcs</span><span -class="cmtt-8"> reversed}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetlinewidth{1ex}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpointorigin}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpoint{3.5cm}{2cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{stroke}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \useasboundingbox</span><span -class="cmtt-8"> (-0.25,-0.25)</span><span -class="cmtt-8"> rectangle</span><span -class="cmtt-8"> (3.75,2.25);</span> -<br><span -class="cmtt-8">\end{tikzpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - </dd></dl> -<!--l. 499--><p class="indent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox278"><span -class="cmtt-10">\pgfarrowsdeclarecombine</span><span class="obeylines-h"><span class="verb"><span -class="cmtt-10">*</span></span></span><span -class="cmtt-10">[</span><span -class="cmsy-10"><</span><span -class="cmti-10">offset</span><span -class="cmsy-10">></span><span -class="cmtt-10">]</span><span -class="cmtt-10">{</span><span -class="cmsy-10"><</span><span -class="cmti-10">start name</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">end name</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">first start name</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">first end name</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">second start name</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">second end name</span><span -class="cmsy-10">></span><span -class="cmtt-10">}</span></span> </dt><dd -class="description"> -<a - id="dx25-257003"></a> - <!--l. 500--><p class="noindent">This command creates a new arrow kind that combines two existing arrow kinds. The first arrow kind - is the “innermost” arrow kind, the second arrow kind is the “outermost.” - - - <!--l. 504--><p class="noindent">The code for the combined arrow kind will install a canvas translation before the innermost arrow kind - in drawn. This translation is calculated such that the right tip of the innermost arrow touches the right - end of the outermost arrow. The optional <span -class="cmsy-10"><</span><span -class="cmti-10">offset</span><span -class="cmsy-10">> </span>can be used to increase (or decrease) the distance - between the inner and outermost arrow. - <!--l. 511--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-485-" ><colgroup id="TBL-485-1g"><col -id="TBL-485-1"><col -id="TBL-485-2"></colgroup><tr - valign="baseline" id="TBL-485-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-485-1-1" -class="td11"> <object data="pgfmanual-565.svg" width="152.74736 " height="95.84207 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-485-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\pgfarrowsdeclarecombine[\pgflinewidth]</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> {combined}{combined}{arcs''}{arcs''}{latex}{latex}</span><span -class="cmsltt-10x-x-80">%</span> -<br><span -class="cmtt-8">\begin{tikzpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetarrows{combined-combined}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetlinewidth{1ex}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpointorigin}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpoint{3.5cm}{2cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{stroke}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \useasboundingbox</span><span -class="cmtt-8"> (-0.25,-0.25)</span><span -class="cmtt-8"> rectangle</span><span -class="cmtt-8"> (3.75,2.25);</span> -<br><span -class="cmtt-8">\end{tikzpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - <!--l. 524--><p class="noindent">In the star variant, the end of the line is not in the outermost arrow, but inside the innermost - arrow. - <!--l. 527--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-486-" ><colgroup id="TBL-486-1g"><col -id="TBL-486-1"><col -id="TBL-486-2"></colgroup><tr - valign="baseline" id="TBL-486-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-486-1-1" -class="td11"> <object data="pgfmanual-566.svg" width="152.74736 " height="95.84207 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-486-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\pgfarrowsdeclarecombine*[\pgflinewidth]</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> {combined'}{combined'}{arcs''}{arcs''}{latex}{latex}</span><span -class="cmsltt-10x-x-80">%</span> -<br><span -class="cmtt-8">\begin{tikzpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetarrows{combined'-combined'}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetlinewidth{1ex}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpointorigin}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpoint{3.5cm}{2cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{stroke}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \useasboundingbox</span><span -class="cmtt-8"> (-0.25,-0.25)</span><span -class="cmtt-8"> rectangle</span><span -class="cmtt-8"> (3.75,2.25);</span> -<br><span -class="cmtt-8">\end{tikzpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - </dd></dl> -<!--l. 544--><p class="indent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox279"><span -class="cmtt-10">\pgfarrowsdeclaredouble</span><span -class="cmtt-10">[</span><span -class="cmsy-10"><</span><span -class="cmti-10">offset</span><span -class="cmsy-10">></span><span -class="cmtt-10">]</span><span -class="cmtt-10">{</span><span -class="cmsy-10"><</span><span -class="cmti-10">start name</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">end name</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">old start name</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">old end name</span><span -class="cmsy-10">></span><span -class="cmtt-10">}</span></span> </dt><dd -class="description"> -<a - id="dx25-257004"></a> - <!--l. 545--><p class="noindent">This command is a shortcut for combining an arrow kind with itself. - <!--l. 547--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-487-" ><colgroup id="TBL-487-1g"><col -id="TBL-487-1"><col -id="TBL-487-2"></colgroup><tr - valign="baseline" id="TBL-487-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-487-1-1" -class="td11"> <object data="pgfmanual-567.svg" width="152.74736 " height="95.84207 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-487-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\pgfarrowsdeclaredouble{<<}{>>}{arcs''}{arcs''}</span><span -class="cmsltt-10x-x-80">%</span> -<br><span -class="cmtt-8">\begin{tikzpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetarrows{<<->>}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetlinewidth{1ex}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpointorigin}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpoint{3.5cm}{2cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{stroke}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \useasboundingbox</span><span -class="cmtt-8"> (-0.25,-0.25)</span><span -class="cmtt-8"> rectangle</span><span -class="cmtt-8"> (3.75,2.25);</span> -<br><span -class="cmtt-8">\end{tikzpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - - - </dd></dl> -<!--l. 563--><p class="indent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox280"><span -class="cmtt-10">\pgfarrowsdeclaretriple</span><span -class="cmtt-10">[</span><span -class="cmsy-10"><</span><span -class="cmti-10">offset</span><span -class="cmsy-10">></span><span -class="cmtt-10">]</span><span -class="cmtt-10">{</span><span -class="cmsy-10"><</span><span -class="cmti-10">start name</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">end name</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">old start name</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">old end name</span><span -class="cmsy-10">></span><span -class="cmtt-10">}</span></span> </dt><dd -class="description"> -<a - id="dx25-257005"></a> - <!--l. 564--><p class="noindent">This command is a shortcut for combining an arrow kind with itself and then again. - <!--l. 567--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-488-" ><colgroup id="TBL-488-1g"><col -id="TBL-488-1"><col -id="TBL-488-2"></colgroup><tr - valign="baseline" id="TBL-488-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-488-1-1" -class="td11"> <object data="pgfmanual-568.svg" width="152.74736 " height="95.84207 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-488-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\pgfarrowsdeclaretriple{<<<}{>>>}{arcs''}{arcs''}</span><span -class="cmsltt-10x-x-80">%</span> -<br><span -class="cmtt-8">\begin{tikzpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetarrows{<<<->>>}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetlinewidth{1ex}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpointorigin}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpoint{3.5cm}{2cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{stroke}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \useasboundingbox</span><span -class="cmtt-8"> (-0.25,-0.25)</span><span -class="cmtt-8"> rectangle</span><span -class="cmtt-8"> (3.75,2.25);</span> -<br><span -class="cmtt-8">\end{tikzpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - </dd></dl> -<!--l. 584--><p class="noindent"> - <h4 class="subsectionHead"><span class="titlemark">24.4 </span> <a - id="x25-25800024.4"></a>Using an Arrow Tip Kind</h4> -<!--l. 586--><p class="noindent">The following commands install the arrow kind that will be used when stroking is done. -<!--l. 589--><p class="indent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox281"><span -class="cmtt-10">\pgfsetarrowsstart</span><span -class="cmtt-10">{</span><span -class="cmsy-10"><</span><span -class="cmti-10">start arrow kind</span><span -class="cmsy-10">></span><span -class="cmtt-10">}</span></span> </dt><dd -class="description"> -<a - id="dx25-258001"></a> - <!--l. 590--><p class="noindent">Installs the given <span -class="cmsy-10"><</span><span -class="cmti-10">start arrow kind</span><span -class="cmsy-10">> </span>for all subsequent strokes in the in the current <span class="TEX">T<span -class="E">E</span>X</span>-group. - If <span -class="cmsy-10"><</span><span -class="cmti-10">start arrow kind</span><span -class="cmsy-10">> </span>is empty, no arrow tips will be drawn at the start of the last segment of - paths. - <!--l. 594--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-489-" ><colgroup id="TBL-489-1g"><col -id="TBL-489-1"><col -id="TBL-489-2"></colgroup><tr - valign="baseline" id="TBL-489-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-489-1-1" -class="td11"> <object data="pgfmanual-569.svg" width="152.74736 " height="95.84207 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-489-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\begin{tikzpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetarrowsstart{latex}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetlinewidth{1ex}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpointorigin}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpoint{3.5cm}{2cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{stroke}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \useasboundingbox</span><span -class="cmtt-8"> (-0.25,-0.25)</span><span -class="cmtt-8"> rectangle</span><span -class="cmtt-8"> (3.75,2.25);</span> -<br><span -class="cmtt-8">\end{tikzpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - </dd></dl> -<!--l. 606--><p class="indent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox282"><span -class="cmtt-10">\pgfsetarrowsend</span><span -class="cmtt-10">{</span><span -class="cmsy-10"><</span><span -class="cmti-10">start arrow kind</span><span -class="cmsy-10">></span><span -class="cmtt-10">}</span></span> </dt><dd -class="description"> -<a - id="dx25-258002"></a> - - - <!--l. 607--><p class="noindent">Like <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">\pgfsetarrowsstart</span></span></span>, only for the end of the arrow. - <!--l. 608--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-490-" ><colgroup id="TBL-490-1g"><col -id="TBL-490-1"><col -id="TBL-490-2"></colgroup><tr - valign="baseline" id="TBL-490-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-490-1-1" -class="td11"> <object data="pgfmanual-570.svg" width="152.74736 " height="95.84207 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-490-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\begin{tikzpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetarrowsend{latex}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetlinewidth{1ex}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpointorigin}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpoint{3.5cm}{2cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{stroke}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \useasboundingbox</span><span -class="cmtt-8"> (-0.25,-0.25)</span><span -class="cmtt-8"> rectangle</span><span -class="cmtt-8"> (3.75,2.25);</span> -<br><span -class="cmtt-8">\end{tikzpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - </dd></dl> -<!--l. 620--><p class="indent"> <span -class="cmti-10">Warning: </span>If the compatibility mode is active (which is the default), there also exist old commands called -<span class="obeylines-h"><span class="verb"><span -class="cmtt-10">\pgfsetstartarrow</span></span></span> and <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">\pgfsetendarrow</span></span></span>, which are incompatible with the meta-arrow management. -<!--l. 626--><p class="indent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox283"><span -class="cmtt-10">\pgfsetarrows</span><span -class="cmtt-10">{</span><span -class="cmsy-10"><</span><span -class="cmti-10">start kind</span><span -class="cmsy-10">></span><span class="obeylines-h"><span class="verb"><span -class="cmtt-10">-</span></span></span><span -class="cmsy-10"><</span><span -class="cmti-10">end kind</span><span -class="cmsy-10">></span><span -class="cmtt-10">}</span></span> </dt><dd -class="description"> -<a - id="dx25-258003"></a> - <!--l. 627--><p class="noindent">Calls <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">\pgfsetarrowsstart</span></span></span> for <span -class="cmsy-10"><</span><span -class="cmti-10">start kind</span><span -class="cmsy-10">> </span>and <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">\pgfsetarrowsend</span></span></span> for <span -class="cmsy-10"><</span><span -class="cmti-10">end kind</span><span -class="cmsy-10">></span>. - <!--l. 629--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-491-" ><colgroup id="TBL-491-1g"><col -id="TBL-491-1"><col -id="TBL-491-2"></colgroup><tr - valign="baseline" id="TBL-491-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-491-1-1" -class="td11"> <object data="pgfmanual-571.svg" width="152.74736 " height="95.84207 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-491-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\begin{tikzpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetarrows{latex-to}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetlinewidth{1ex}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpointorigin}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpoint{3.5cm}{2cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{stroke}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \useasboundingbox</span><span -class="cmtt-8"> (-0.25,-0.25)</span><span -class="cmtt-8"> rectangle</span><span -class="cmtt-8"> (3.75,2.25);</span> -<br><span -class="cmtt-8">\end{tikzpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - </dd></dl> -<!--l. 642--><p class="noindent"> - <h4 class="subsectionHead"><span class="titlemark">24.5 </span> <a - id="x25-25900024.5"></a>Predefined Arrow Tip Kinds</h4> -<!--l. 646--><p class="noindent">The following arrow tip kinds are always defined: - <div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-492-" ><colgroup id="TBL-492-1g"><col -id="TBL-492-1"><col -id="TBL-492-2"></colgroup><tr - valign="baseline" id="TBL-492-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-492-1-1" -class="td11"> <a - id="dx25-259001"></a><a - id="dx25-259002"></a> <a - id="dx25-259003"></a><a - id="dx25-259004"></a> <span -class="cmtt-10">stealth-stealth </span></td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-492-1-2" -class="td11"> yields thick <object data="pgfmanual-572.svg" width="38.93684 " height="15.35175 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> and thin <object data="pgfmanual-573.svg" width="38.93684 " height="15.35175 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td> -</tr><tr - valign="baseline" id="TBL-492-2-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-492-2-1" -class="td11"> <a - id="dx25-259005"></a><a - id="dx25-259006"></a> <a - id="dx25-259007"></a><a - id="dx25-259008"></a> <span -class="cmtt-10">stealth reversed-stealth reversed </span></td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-492-2-2" -class="td11"> yields thick <object data="pgfmanual-574.svg" width="38.93684 " height="15.35175 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> and thin <object data="pgfmanual-575.svg" width="38.93684 " height="15.35175 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td> -</tr><tr - valign="baseline" id="TBL-492-3-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-492-3-1" -class="td11"> <a - id="dx25-259009"></a><a - id="dx25-259010"></a> <a - id="dx25-259011"></a><a - id="dx25-259012"></a> <span -class="cmtt-10">to-to </span></td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-492-3-2" -class="td11"> yields thick <object data="pgfmanual-576.svg" width="38.93684 " height="15.35175 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> and thin <object data="pgfmanual-577.svg" width="38.93684 " height="15.35175 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td> -</tr><tr - valign="baseline" id="TBL-492-4-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-492-4-1" -class="td11"> <a - id="dx25-259013"></a><a - id="dx25-259014"></a> <a - id="dx25-259015"></a><a - id="dx25-259016"></a> <span -class="cmtt-10">to reversed-to reversed </span></td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-492-4-2" -class="td11"> yields thick <object data="pgfmanual-578.svg" width="38.93684 " height="15.35175 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> and thin <object data="pgfmanual-579.svg" width="38.93684 " height="15.35175 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td> -</tr><tr - valign="baseline" id="TBL-492-5-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-492-5-1" -class="td11"> <a - id="dx25-259017"></a><a - id="dx25-259018"></a> <a - id="dx25-259019"></a><a - id="dx25-259020"></a> <span -class="cmtt-10">latex-latex </span></td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-492-5-2" -class="td11"> yields thick <object data="pgfmanual-580.svg" width="38.93684 " height="15.35175 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> and thin <object data="pgfmanual-581.svg" width="38.93684 " height="15.35175 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td> -</tr><tr - valign="baseline" id="TBL-492-6-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-492-6-1" -class="td11"> <a - id="dx25-259021"></a><a - id="dx25-259022"></a> <a - id="dx25-259023"></a><a - id="dx25-259024"></a> <span -class="cmtt-10">latex reversed-latex reversed </span></td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-492-6-2" -class="td11"> yields thick <object data="pgfmanual-582.svg" width="38.93684 " height="15.35175 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> and thin <object data="pgfmanual-583.svg" width="38.93684 " height="15.35175 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td> -</tr><tr - valign="baseline" id="TBL-492-7-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-492-7-1" -class="td11"> <a - id="dx25-259025"></a><a - id="dx25-259026"></a> <span -class="cmtt-10">|-| </span></td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-492-7-2" -class="td11"> yields thick <object data="pgfmanual-584.svg" width="38.93684 " height="15.35175 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> and thin <object data="pgfmanual-585.svg" width="38.93684 " height="15.35175 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td> </tr></table> -</div> -<!--l. 672--><p class="indent"> For further arrow tips, see page <a -href="pgfmanualse14.html#x15-16000014.1">176<!--tex4ht:ref: section-rules --></a>. - - - - - - - <div class="crosslinks"><p class="noindent">[<a -href="pgfmanualse25.html" >next</a>] [<a -href="pgfmanualse23.html" >prev</a>] [<a -href="pgfmanualse23.html#tailpgfmanualse23.html" >prev-tail</a>] [<a -href="pgfmanualse24.html" >front</a>] [<a -href="pgfmanual.html#pgfmanualse24.html" >up</a>] </p></div> -<!--l. 8--><p class="indent"> <a - id="tailpgfmanualse24.html"></a> -</body></html> |