diff options
Diffstat (limited to 'Build/source/utils/asymptote/doc/asymptote.texi')
-rw-r--r-- | Build/source/utils/asymptote/doc/asymptote.texi | 429 |
1 files changed, 212 insertions, 217 deletions
diff --git a/Build/source/utils/asymptote/doc/asymptote.texi b/Build/source/utils/asymptote/doc/asymptote.texi index 39467931e05..6645b03a2cd 100644 --- a/Build/source/utils/asymptote/doc/asymptote.texi +++ b/Build/source/utils/asymptote/doc/asymptote.texi @@ -51,6 +51,7 @@ file LICENSE in the top-level source directory). * Installation:: Downloading and installing * Tutorial:: Getting started * Drawing commands:: Four primitive graphics commands +* Bezier curves:: Path connectors and direction specifiers * Programming:: The @code{Asymptote} vector graphics language * LaTeX usage:: Embedding @code{Asymptote} commands within @code{LaTeX} * Base modules:: Base modules shipped with @code{Asymptote} @@ -165,8 +166,8 @@ Base modules Graphical User Interface -* GUI Installation:: Installing @code{xasy} -* GUI Usage:: +* GUI installation:: Installing @code{xasy} +* GUI usage:: @end detailmenu @end menu @@ -282,7 +283,7 @@ We recommend subscribing to new release announcements at @noindent Users may also wish to monitor the @code{Asymptote} forum: @quotation -@url{http://sourceforge.net/forum/monitor.php?forum_id=409349} +@url{http://sourceforge.net/projects/asymptote/forums/forum/409349} @end quotation @noindent @@ -483,6 +484,7 @@ configuration variables @code{paperwidth} and @code{paperheight}. @cindex @code{texpath} @cindex @code{texcommand} @cindex @code{dvips} +@cindex @code{dvisvg} @cindex @code{convert} @cindex @code{display} @cindex @code{animate} @@ -492,6 +494,7 @@ The following configuration variables normally do not require adjustment: texpath texcommand dvips +dvisvg convert display animate @@ -766,61 +769,61 @@ make uninstall @node Tutorial @chapter Tutorial @cindex tutorial -@emph{An excellent user-written @code{Asymptote} tutorial is also available -from} - -@url{http://www.artofproblemsolving.com/Wiki/index.php/Asymptote:_Basics} +@cindex batch mode +To draw a line from coordinate (0,0) to coordinate (100,100), +create a text file @code{test.asy} containing +@verbatiminclude diagonal.asy @noindent -To draw a line from coordinate (0,0) to coordinate (100,100) using -@code{Asymptote}'s interactive mode, type at the command prompt: +Then execute the command @verbatim -asy -draw((0,0)--(100,100)); +asy -V test @end verbatim +@noindent +Alternatively, @code{MSDOS} users can drag and drop @code{test.asy} onto the +Desktop @code{asy} icon (or make @code{Asymptote} the default +application the extension @code{asy}). + +@noindent +@cindex @code{-V} +This method, known as @emph{batch mode}, outputs a @code{PostScript} +file @code{test.eps}. The @code{-V} option opens up a @code{PostScript} +viewer window so you can immediately view the result: @sp 1 @center @image{diagonal} - @cindex @code{bp} @cindex @code{pair} -The units here are @code{PostScript} "big points" -(1 @code{bp} = 1/72 @code{inch}); @code{--} means join with a linear segment. -In @code{Asymptote} coordinates like @code{(0,0)} and -@code{(1000,100)} are called @emph{pairs}. +@noindent +The @code{--} connector joins the two points @code{(0,0)} and +@code{(100,100)} with a linear segment. +Another method is @emph{interactive mode}, where @code{Asymptote} reads +individual commands as they are entered by the user. To try this out, enter +@code{Asymptote}'s interactive mode by clicking on the +@code{Asymptote} icon or typing the command @code{asy}. +Then type +@verbatim +draw((0,0)--(100,100)); +@end verbatim +@noindent +followed by @code{Enter}, to obtain the above image. @cindex tab completion @cindex arrow keys -At this point you can type in further draw commands, which will be added -to the displayed figure, or type @code{quit} to exit interactive mode. -You can use the arrow keys in interactive mode to edit previous lines -(assuming that you have support for the @acronym{GNU} @code{readline} library -enabled). The tab key will automatically complete unambiguous words; -otherwise, hitting tab again will show the possible choices. Further -commands specific to interactive mode are described in @ref{Interactive mode}. - -@cindex batch mode -In batch mode, @code{Asymptote} reads commands directly from a -file. To try this out, type -@verbatiminclude diagonal.asy - +@cindex erase +@cindex quit @noindent -into a file, say test.asy. Then execute this file with the -@code{MSDOS} or @code{UNIX} command +At this point you can type further @code{draw} commands, which will be added +to the displayed figure, @code{erase} to clear the canvas, @verbatim -asy -V test +input test; @end verbatim @noindent -@code{MSDOS} users can drag and drop the file onto the -Desktop @code{asy} icon or make @code{Asymptote} the -default application for files with the extension @code{asy}. - -@noindent -@cindex @code{-V} -The @code{-V} option opens up a @code{PostScript} -viewer window so you can immediately view the encapsulated -@code{PostScript} output. By default the output will be written to the -file @code{test.eps}; the prefix of the output file may be changed with -the @code{-o} command-line option. +to execute all of the commands contained in the file @code{test.asy}, +or @code{quit} to exit interactive mode. +You can use the arrow keys in interactive mode to edit previous lines. +The tab key will automatically complete unambiguous words; +otherwise, hitting tab again will show the possible choices. Further +commands specific to interactive mode are described in @ref{Interactive mode}. @cindex @code{cycle} One can draw a line with more than two points and create a cyclic path @@ -829,9 +832,13 @@ like this square: @sp 1 @center @image{square} -It is often inconvenient to work directly with @code{PostScript} coordinates. -The next example draws a unit square scaled to width 101 bp and height -101 bp. The output is identical to that of the previous example. +In @code{Asymptote} coordinates like (0,0) and (100,100) are called +@emph{pairs}. The pairs in the previous examples are expressed in +@code{PostScript} "big points" (1 @code{bp} = 1/72 @code{inch}). +However, it is often inconvenient to work directly in +@code{PostScript} coordinates. The next example draws a unit square +scaled to width 101 @code{bp} and height +101 @code{bp}. The output is identical to that of the previous example. @verbatim size(101,101); draw((0,0)--(1,0)--(1,1)--(0,1)--cycle); @@ -840,16 +847,16 @@ draw((0,0)--(1,0)--(1,1)--(0,1)--cycle); For convenience, the path @code{(0,0)--(1,0)--(1,1)--(0,1)--cycle} may be replaced with the predefined variable @code{unitsquare}, or equivalently, @code{box((0,0),(1,1))}. - @cindex @code{inches} @cindex @code{cm} @cindex @code{mm} @cindex @code{pt} One can also specify the size in @code{pt} (1 @code{pt} = 1/72.27 @code{inch}), -@code{cm}, @code{mm}, or @code{inches}. +@code{cm}, @code{mm}, or @code{inches}. +Two nonzero size arguments (or a single size argument) restrict the +size in both directions, preserving the aspect ratio. If 0 is given as a size argument, no restriction is made in that direction; -the overall scaling will be determined by the other direction -(@pxref{size}): +the overall scaling will be determined by the other direction (@pxref{size}): @verbatiminclude bigsquare.asy @sp 1 @center @image{bigsquare} @@ -861,12 +868,7 @@ To make the user coordinates represent multiples of exactly @code{1cm}: unitsize(1cm); draw(unitsquare); @end verbatim - -One can also specify different @math{x} and @math{y} unit sizes: -@verbatim -unitsize(1cm,2cm); -draw(unitsquare); -@end verbatim +@noindent Adding labels is easy in @code{Asymptote}; one specifies the label as a double-quoted @code{LaTeX} string, a @@ -884,11 +886,12 @@ coordinate, and an optional alignment direction: @code{N=(0,1)}, @code{NE=unit(N+E)}, and @code{ENE=unit(E+NE)}, etc., which along with the directions @code{up}, @code{down}, @code{right}, and @code{left} are defined as pairs in the @code{Asymptote} base -module @code{plain}. A user who has a local variable named @code{E} +module @code{plain} (a user who has a local variable named @code{E} may access the compass direction @code{E} by prefixing it with the name -of the module where it is defined: @code{plain.E}. +of the module where it is defined: @code{plain.E}). -This example draws a path that approximates a quarter circle: +This example draws a path that approximates a quarter circle, +terminated with an arrowhead: @verbatiminclude quartercircle.asy @sp 1 @center @image{quartercircle} @@ -899,7 +902,7 @@ interconnected with @cindex @code{--} @cindex @code{..} @code{--}, which denotes a straight line segment, or @code{..}, which -denotes a cubic spline. +denotes a cubic spline (@pxref{Bezier curves}). @cindex @code{unitcircle} @anchor{unitcircle} @cindex @code{unitcircle} @@ -910,116 +913,11 @@ connects smoothly back to the initial node, as in this approximation path unitcircle=E..N..W..S..cycle; @end verbatim -@cindex Bezier -@anchor{Bezier} -@cindex direction specifier -Each interior node of a cubic spline may be given a -direction prefix or suffix @code{@{dir@}}: the direction of the pair -@code{dir} specifies the direction of the incoming or outgoing tangent, -respectively, to the curve at that node. Exterior nodes may be -given direction specifiers only on their interior side. - -A cubic spline between the node @math{z_0}, with postcontrol point -@math{c_0}, and the node @math{z_1}, with precontrol point @math{c_1}, -is computed as the Bezier curve -@sp 1 -@center @image{bezier,,,(1-t)^3*z_0+3t(1-t)^2*c_0+3t^2(1-t)*c_1+t^3*z_1 for 0 <=t <= 1.} - -As illustrated in the diagram below, the third-order midpoint (@math{m_5}) -constructed from two endpoints @math{z_0} and @math{z_1} and two control points -@math{c_0} and @math{c_1}, is the point corresponding to @math{t=1/2} on -the Bezier curve formed by the quadruple (@math{z_0}, @math{c_0}, -@math{c_1}, @math{z_1}). This allows one to recursively construct the -desired curve, by using the newly extracted third-order midpoint as an -endpoint and the respective second- and first-order midpoints as control -points: -@sp 1 -@center @image{bezier2} - -Here @math{m_0}, @math{m_1} and @math{m_2} are the first-order -midpoints, @math{m_3} and @math{m_4} are the second-order midpoints, and -@math{m_5} is the third-order midpoint. -The curve is then constructed by recursively applying the algorithm to -(@math{z_0}, @math{m_0}, @math{m_3}, @math{m_5}) and -(@math{m_5}, @math{m_4}, @math{m_2}, @math{z_1}). - -In fact, an analogous property holds for points located at any -fraction @math{t} in @math{[0,1]} of each segment, not just for -midpoints (@math{t=1/2}). - -The Bezier curve constructed in this manner has the following properties: -@itemize @bullet - -@item It is entirely contained in the convex hull of the given four points. - -@item It starts heading from the first endpoint to the first control point -and finishes heading from the second control point to the second endpoint. - -@end itemize - -@cindex @code{controls} -The user can specify explicit control points between two nodes like this: -@verbatim -draw((0,0)..controls (0,100) and (100,100)..(100,0)); -@end verbatim - -However, it is usually more convenient to just use the -@code{..} operator, which tells @code{Asymptote} to choose its own -control points using the algorithms described in Donald Knuth's -monograph, The MetaFontbook, Chapter 14. -The user can still customize the guide (or path) by specifying -direction, tension, and curl values. - -The higher the tension, the straighter the curve is, and the more -it approximates a straight line. -@cindex @code{tension} -@cindex @code{and} -@cindex @code{atleast} -One can change the spline tension from its default value of 1 to any -real value greater than or equal to 0.75 (cf. John D. Hobby, Discrete and -Computational Geometry 1, 1986): -@verbatim -draw((100,0)..tension 2 ..(100,100)..(0,100)); -draw((100,0)..tension 2 and 1 ..(100,100)..(0,100)); -draw((100,0)..tension atleast 1 ..(100,100)..(0,100)); -@end verbatim - -@cindex @code{curl} -The curl parameter specifies the curvature at the endpoints of a path -(0 means straight; the default value of 1 means approximately circular): -@verbatim -draw((100,0){curl 0}..(100,100)..{curl 0}(0,100)); -@end verbatim - -@cindex @code{MetaPost ...@ } -@cindex @code{::} -The @code{MetaPost ...} path connector, which requests, when possible, an -inflection-free curve confined to a triangle defined by the -endpoints and directions, is implemented in @code{Asymptote} as the -convenient abbreviation @code{::} for @code{..tension atleast 1 ..} -(the ellipsis @code{...} is used in @code{Asymptote} to indicate a -variable number of arguments; @pxref{Rest arguments}). For example, -compare -@verbatiminclude dots.asy -@sp 1 -@center @image{dots} -@noindent -with -@verbatiminclude colons.asy -@sp 1 -@center @image{colons} - -@cindex @code{---} -@cindex @code{&} -The @code{---} connector is an abbreviation for @code{..tension atleast -infinity..} and the @code{&} connector concatenates two paths, after -first stripping off the last node of the first path (which normally -should coincide with the first node of the second path). - @cindex @code{PostScript} subpath @cindex @code{^^} @cindex @code{path[]} @cindex superpath +@noindent An @code{Asymptote} path, being connected, is equivalent to a @code{Postscript subpath}. The @code{^^} binary operator, which requests that the pen be moved (without drawing or affecting @@ -1032,6 +930,7 @@ initial point of the right-hand path, may be used to group several @center @image{superpath} @cindex evenodd +@noindent The @code{PostScript} even-odd fill rule here specifies that only the region bounded between the two unit circles is filled (@pxref{fillrule}). In this example, the same effect can be achieved by using the default @@ -1043,17 +942,21 @@ filldraw(unitcircle^^reverse(g),yellow,black); @cindex @code{unitbox} The @code{^^} operator is used by the @code{box(triple, triple)} function in -@code{three.asy} to construct the edges of a cube @code{unitbox} -without retracing steps: +the module @code{three.asy} to construct the edges of a +cube @code{unitbox} without retracing steps (@pxref{three}): @verbatiminclude cube.asy @sp 1 @center @image{cube} See section @ref{graph} (or the online @code{Asymptote} gallery and external links posted at @url{http://asymptote.sourceforge.net}) for -further examples, including two and three-dimensional scientific +further examples, including two and interactive three-dimensional scientific graphs. Additional examples have been posted by Philippe Ivaldi at -@url{http://piprim.tuxfamily.org/asymptote/}. +@url{http://www.piprime.fr/asymptote/}. +A user-written @code{Asymptote} tutorial is available at +@verbatim +http://www.artofproblemsolving.com/Wiki/index.php/Asymptote:_Basics +@end verbatim @node Drawing commands @chapter Drawing commands @@ -1637,6 +1540,114 @@ produce a CD label: @sp 1 @center @image{CDlabel} @verbatiminclude CDlabel.asy + +@node Bezier curves +@chapter Bezier curves +@cindex Bezier curves +@cindex direction specifier +Each interior node of a cubic spline may be given a +direction prefix or suffix @code{@{dir@}}: the direction of the pair +@code{dir} specifies the direction of the incoming or outgoing tangent, +respectively, to the curve at that node. Exterior nodes may be +given direction specifiers only on their interior side. + +A cubic spline between the node @math{z_0}, with postcontrol point +@math{c_0}, and the node @math{z_1}, with precontrol point @math{c_1}, +is computed as the Bezier curve +@sp 1 +@center @image{bezier,,,(1-t)^3*z_0+3t(1-t)^2*c_0+3t^2(1-t)*c_1+t^3*z_1 for 0 <=t <= 1.} + +As illustrated in the diagram below, the third-order midpoint (@math{m_5}) +constructed from two endpoints @math{z_0} and @math{z_1} and two control points +@math{c_0} and @math{c_1}, is the point corresponding to @math{t=1/2} on +the Bezier curve formed by the quadruple (@math{z_0}, @math{c_0}, +@math{c_1}, @math{z_1}). This allows one to recursively construct the +desired curve, by using the newly extracted third-order midpoint as an +endpoint and the respective second- and first-order midpoints as control +points: +@sp 1 +@center @image{bezier2} + +Here @math{m_0}, @math{m_1} and @math{m_2} are the first-order +midpoints, @math{m_3} and @math{m_4} are the second-order midpoints, and +@math{m_5} is the third-order midpoint. +The curve is then constructed by recursively applying the algorithm to +(@math{z_0}, @math{m_0}, @math{m_3}, @math{m_5}) and +(@math{m_5}, @math{m_4}, @math{m_2}, @math{z_1}). + +In fact, an analogous property holds for points located at any +fraction @math{t} in @math{[0,1]} of each segment, not just for +midpoints (@math{t=1/2}). + +The Bezier curve constructed in this manner has the following properties: +@itemize @bullet + +@item It is entirely contained in the convex hull of the given four points. + +@item It starts heading from the first endpoint to the first control point +and finishes heading from the second control point to the second endpoint. + +@end itemize + +@cindex @code{controls} +The user can specify explicit control points between two nodes like this: +@verbatim +draw((0,0)..controls (0,100) and (100,100)..(100,0)); +@end verbatim + +However, it is usually more convenient to just use the +@code{..} operator, which tells @code{Asymptote} to choose its own +control points using the algorithms described in Donald Knuth's +monograph, The MetaFontbook, Chapter 14. +The user can still customize the guide (or path) by specifying +direction, tension, and curl values. + +The higher the tension, the straighter the curve is, and the more +it approximates a straight line. +@cindex @code{tension} +@cindex @code{and} +@cindex @code{atleast} +One can change the spline tension from its default value of 1 to any +real value greater than or equal to 0.75 (cf. John D. Hobby, Discrete and +Computational Geometry 1, 1986): +@verbatim +draw((100,0)..tension 2 ..(100,100)..(0,100)); +draw((100,0)..tension 2 and 1 ..(100,100)..(0,100)); +draw((100,0)..tension atleast 1 ..(100,100)..(0,100)); +@end verbatim + +@cindex @code{curl} +The curl parameter specifies the curvature at the endpoints of a path +(0 means straight; the default value of 1 means approximately circular): +@verbatim +draw((100,0){curl 0}..(100,100)..{curl 0}(0,100)); +@end verbatim + +@cindex @code{MetaPost ...@ } +@cindex @code{::} +The @code{MetaPost ...} path connector, which requests, when possible, an +inflection-free curve confined to a triangle defined by the +endpoints and directions, is implemented in @code{Asymptote} as the +convenient abbreviation @code{::} for @code{..tension atleast 1 ..} +(the ellipsis @code{...} is used in @code{Asymptote} to indicate a +variable number of arguments; @pxref{Rest arguments}). For example, +compare +@verbatiminclude dots.asy +@sp 1 +@center @image{dots} +@noindent +with +@verbatiminclude colons.asy +@sp 1 +@center @image{colons} + +@cindex @code{---} +@cindex @code{&} +The @code{---} connector is an abbreviation for @code{..tension atleast +infinity..} and the @code{&} connector concatenates two paths, after +first stripping off the last node of the first path (which normally +should coincide with the first node of the second path). + @node Programming @chapter Programming @cindex programming @@ -2214,7 +2225,7 @@ path ellipse(pair c, real a, real b) @end verbatim This example illustrates the use of all five guide connectors discussed -in @ref{Tutorial}: +in @ref{Tutorial} and @ref{Bezier curves}: @verbatiminclude join.asy @sp 1 @center @image{join} @@ -2257,7 +2268,7 @@ is returned). @item pair point(path p, real t); This returns the coordinates of the point between node @code{floor(t)} and @code{floor(t)+1} corresponding to the cubic spline parameter -@code{t-floor(t)} (@pxref{Bezier}). If @code{t} lies outside the range +@code{t-floor(t)} (@pxref{Bezier curves}). If @code{t} lies outside the range [0,@code{length(p)}], it is first reduced modulo @code{length(p)} in the case where @code{p} is cyclic or else converted to the corresponding endpoint of @code{p}. @@ -2272,7 +2283,7 @@ two directions is returned. @item pair dir(path p, real t, bool normalize=true); returns the direction of the tangent to path @code{p} at the point between node @code{floor(t)} and @code{floor(t)+1} corresponding to the -cubic spline parameter @code{t-floor(t)} (@pxref{Bezier}). +cubic spline parameter @code{t-floor(t)} (@pxref{Bezier curves}). @cindex @code{accel} @item pair accel(path p, int t, int sign=0); @@ -3403,7 +3414,7 @@ pair min(picture pic, user=false); pair max(picture pic, user=false); pair size(picture pic, user=false); @end verbatim -calculate the @code{PostScript} bounds that picture @code{pic} would +calculate the bounds that picture @code{pic} would have if it were currently fit to a frame using its default size specification. If @code{user} is @code{false} the returned value is in @code{PostScript} coordinates, otherwise it is in user coordinates. @@ -6061,9 +6072,9 @@ structure. Link to the documentation for the @code{geometry} module are posted here: @url{http://asymptote.sourceforge.net/links.html}, including an extensive set of examples, -@url{http://piprim.tuxfamily.org/asymptote/geometry/index.html}, and an index: +@url{http://www.piprime.fr/files/asymptote/geometry/}, and an index: @quotation -@url{http://piprim.tuxfamily.org/asymptote/geometry/modules/geometry.asy.index.type.html} +@url{http://www.piprime.fr/files/asymptote/geometry/modules/geometry.asy.index.type.html} @end quotation @node trembling @@ -6072,7 +6083,7 @@ including an extensive set of examples, This module, written by Philippe Ivaldi and illustrated in the example @code{floatingdisk.asy}, allows one to draw wavy lines, as if drawn by hand. Further examples are posted at -@url{http://piprim.tuxfamily.org/asymptote/trembling/index.html} +@url{http://www.piprime.fr/files/asymptote/trembling/} @node stats @section @code{stats} @@ -6573,7 +6584,7 @@ or @code{xmax} specifies that the corresponding axis limit will be automatically determined from the picture limits. The optional @code{arrow} argument takes the same values as in the @code{draw} command (@pxref{arrows}). The axis is drawn before any -existing objects in the current picture unless @code{above=true}. +existing objects in @code{pic} unless @code{above=true}. The axis placement is determined by one of the following @code{axis} types: @table @code @@ -6734,7 +6745,7 @@ or @code{ymax} specifies that the corresponding axis limit will be automatically determined from the picture limits. The optional @code{arrow} argument takes the same values as in the @code{draw} command (@pxref{arrows}). The axis is drawn before any -existing objects in the current picture unless @code{above=true}. +existing objects in @code{pic} unless @code{above=true}. The tick type is specified by @code{ticks} and the axis placement is determined by one of the following @code{axis} types: @@ -6796,7 +6807,7 @@ This convenience routine draws both @math{x} and @math{y} axes on picture @code{pic} from @code{min} to @code{max}, with optional labels @code{xlabel} and @code{ylabel} and any arrows specified by @code{arrow}. The axes are drawn on top of -existing objects in the current picture only if @code{above=true}. +existing objects in @code{pic} only if @code{above=true}. @item @verbatim @@ -6814,7 +6825,7 @@ The optional integer array @code{divisor} specifies what tick divisors to try in the attempt to produce uncrowded tick labels. A @code{true} value for the flag @code{opposite} identifies an unlabelled secondary axis (typically drawn opposite a primary axis). The axis is drawn before -any existing objects in the current picture unless @code{above=true}. +any existing objects in @code{pic} unless @code{above=true}. The tick locator @code{ticklocate} is constructed by the routine @verbatim ticklocate ticklocate(real a, real b, autoscaleT S=defaultS, @@ -7560,6 +7571,9 @@ The keyboard shortcuts are: @item m: rendering mode (solid/mesh/patch) @item e: export @item c: show camera parameters +@item p: play animation +@item r: reverse animation +@item : step animation @item +: expand @item =: expand @item >: expand @@ -8235,7 +8249,7 @@ as illustrated in the examples @code{vectorfield3.asy} and This module, contributed by Philippe Ivaldi, can be used for drawing 3D grids. Here is an example (further examples can be found in -@code{grid3.asy} and at @url{http://piprim.tuxfamily.org/asymptote/grid3/}): +@code{grid3.asy} and at @url{http://www.piprime.fr/files/asymptote/grid3/}): @verbatiminclude grid3xyz.asy @sp 1 @center @image{grid3xyz} @@ -8328,7 +8342,7 @@ shading behaviour is the default shading behavior for a surface. An example of @code{tube} is provided in the file @code{trefoilknot.asy}. Further examples can be found at -@url{http://piprim.tuxfamily.org/asymptote/tube/}. +@url{http://www.piprime.fr/files/asymptote/tube/}. @node flowchart @section @code{flowchart} @@ -8604,7 +8618,7 @@ implements a number of explicit numerical integration schemes for ordinary differential equations. @node Options -@chapter Options +@chapter Command-line options @cindex options @cindex command-line options Type @code{asy -h} to see the full list of command-line options @@ -8800,6 +8814,9 @@ and must be entered immediately after the prompt: @cindex @code{help} @item help view the manual; +@item erase +erase @code{currentpicture}; +@cindex @code{input} @item reset reset the @code{Asymptote} environment to its initial state, except for changes to the settings module (@pxref{settings}), the current directory @@ -8869,12 +8886,12 @@ preliminary Graphical User Interface (@acronym{GUI}) @code{xasy} included with The modified figure can then be saved as a normal @code{Asymptote} file. @menu -* GUI Installation:: Installing @code{xasy} -* GUI Usage:: +* GUI installation:: Installing @code{xasy} +* GUI usage:: @end menu -@node GUI Installation -@section GUI Installation +@node GUI installation +@section GUI installation @cindex GUI installation As @code{xasy} is written in the interactive scripting language @@ -8911,8 +8928,8 @@ cd Imaging-1.1.7b1 python setup.py install @end verbatim -@node GUI Usage -@section GUI Usage +@node GUI usage +@section GUI usage @cindex GUI usage @cindex @code{deconstruct} @@ -8937,33 +8954,11 @@ elements will be individually deconstructed (@pxref{add}). @node PostScript to Asymptote @chapter @code{PostScript} to @code{Asymptote} @cindex @code{pstoedit} -The excellent @code{PostScript} editor @code{pstoedit} (version 3.45 or later; -available from @url{http://pstoedit.net}) includes an +The excellent @code{PostScript} editor @code{pstoedit} (version 3.50 or later; +available from @url{http://sourceforge.net/projects/pstoedit/}) includes an @code{Asymptote} backend. Unlike virtually all other @code{pstoedit} backends, this driver includes native clipping, even-odd fill rule, -@code{PostScript} subpath, and full image support. - -For full functionality, the patch @code{pstoedit-3.45asy.patch} -in the @code{patches} directory should be applied. On @code{UNIX} systems, as -the root user, place -@quotation -@url{http://prdownloads.sourceforge.net/pstoedit/pstoedit-3.45.tar.gz} -@end quotation -@noindent -in the @code{Asymptote} source directory, and type: - -@verbatim -tar -zxf pstoedit-3.45.tar.gz -cd pstoedit-3.45 -patch -p1 < ../patches/pstoedit-3.45asy.patch -autoconf -./configure --prefix=/usr -make install -@end verbatim - -@noindent -Then try: - +@code{PostScript} subpath, and full image support. Here is an example: @noindent @code{asy -V @value{Datadir}/doc/asymptote/examples/venn.asy} @noindent @@ -8992,7 +8987,7 @@ Questions on installing and using @code{Asymptote} that are not addressed in the @acronym{FAQ} should be sent to the @code{Asymptote} forum: @quotation -@url{http://sourceforge.net/forum/forum.php?forum_id=409349} +@url{http://sourceforge.net/projects/asymptote/forums/forum/409349} @end quotation @noindent Including an example that illustrates what you are trying to do will help @@ -9309,4 +9304,4 @@ Melenchuk, Martin Wiebusch, and Stefan Knorr. @c LocalWords: usplinetype vsplinetype leftbutton middlebutton rightbutton @c LocalWords: rotateY rotateZ wheelup zoomin wheeldown zoomout TeXLive @c LocalWords: viewportshift signedint signedness psview multiplatform nowarn -@c LocalWords: singlereal singleint writeoverloaded tubegranularity +@c LocalWords: singlereal singleint writeoverloaded tubegranularity dvisvg |