summaryrefslogtreecommitdiff
path: root/Build/source/utils/axodraw2/axodraw2-src
diff options
context:
space:
mode:
authorDenis Bitouzé <dbitouze@wanadoo.fr>2021-02-25 18:23:07 +0000
committerDenis Bitouzé <dbitouze@wanadoo.fr>2021-02-25 18:23:07 +0000
commitc6101f91d071883b48b1b4b51e5eba0f36d9a78d (patch)
tree1bf7f5a881d7a4f5c5bf59d0b2821943dd822372 /Build/source/utils/axodraw2/axodraw2-src
parent07ee7222e389b0777456b427a55c22d0e6ffd267 (diff)
French translation for tlmgr updated
git-svn-id: svn://tug.org/texlive/trunk@57912 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/utils/axodraw2/axodraw2-src')
-rw-r--r--Build/source/utils/axodraw2/axodraw2-src/AUTHORS2
-rw-r--r--Build/source/utils/axodraw2/axodraw2-src/COPYING674
-rw-r--r--Build/source/utils/axodraw2/axodraw2-src/ChangeLog37
-rw-r--r--Build/source/utils/axodraw2/axodraw2-src/INSTALL63
-rw-r--r--Build/source/utils/axodraw2/axodraw2-src/Makefile.am16
-rw-r--r--Build/source/utils/axodraw2/axodraw2-src/NEWS0
-rw-r--r--Build/source/utils/axodraw2/axodraw2-src/README58
-rw-r--r--Build/source/utils/axodraw2/axodraw2-src/axodraw2-man.pdfbin421740 -> 0 bytes
-rw-r--r--Build/source/utils/axodraw2/axodraw2-src/axodraw2-man.tex5204
-rw-r--r--Build/source/utils/axodraw2/axodraw2-src/axodraw2.sty4747
-rwxr-xr-xBuild/source/utils/axodraw2/axodraw2-src/axohelp-big.test48
-rw-r--r--Build/source/utils/axodraw2/axodraw2-src/axohelp.148
-rw-r--r--Build/source/utils/axodraw2/axodraw2-src/axohelp.c3807
-rwxr-xr-xBuild/source/utils/axodraw2/axodraw2-src/axohelp.test37
-rw-r--r--Build/source/utils/axodraw2/axodraw2-src/configure.ac10
-rw-r--r--Build/source/utils/axodraw2/axodraw2-src/example.tex18
-rw-r--r--Build/source/utils/axodraw2/axodraw2-src/test-big.ax1494
-rw-r--r--Build/source/utils/axodraw2/axodraw2-src/test-big.ax2-std1482
-rw-r--r--Build/source/utils/axodraw2/axodraw2-src/test.ax11
-rw-r--r--Build/source/utils/axodraw2/axodraw2-src/test.ax2-std3
20 files changed, 0 insertions, 16749 deletions
diff --git a/Build/source/utils/axodraw2/axodraw2-src/AUTHORS b/Build/source/utils/axodraw2/axodraw2-src/AUTHORS
deleted file mode 100644
index 6751044a870..00000000000
--- a/Build/source/utils/axodraw2/axodraw2-src/AUTHORS
+++ /dev/null
@@ -1,2 +0,0 @@
-John Collins (jcc8 at psu dot edu)
-Jos Vermaseren (t68 at nikhef dot nl)
diff --git a/Build/source/utils/axodraw2/axodraw2-src/COPYING b/Build/source/utils/axodraw2/axodraw2-src/COPYING
deleted file mode 100644
index 94a9ed024d3..00000000000
--- a/Build/source/utils/axodraw2/axodraw2-src/COPYING
+++ /dev/null
@@ -1,674 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- <program> Copyright (C) <year> <name of author>
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-<http://www.gnu.org/licenses/>.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/Build/source/utils/axodraw2/axodraw2-src/ChangeLog b/Build/source/utils/axodraw2/axodraw2-src/ChangeLog
deleted file mode 100644
index 6d8c09b545d..00000000000
--- a/Build/source/utils/axodraw2/axodraw2-src/ChangeLog
+++ /dev/null
@@ -1,37 +0,0 @@
-2016/06/02
- Release on CTAN:
- axodraw2 [v. 2.1.0b 2016/06/02]
- axohelp [v. 1.0 2016/05/23]
-2018/01/20
- axohelp has standard options (-h, --help, -v, --version)
- Change verbose option to -V instead of -v
- Include files for autoconf and automake
-2018/01/31
- Updated manual to include information on status of axodraw2 and
- axohelp in MiKTeX.
- Compiled axohelp on Windows 10 and updated axohelp.exe.
- Checked package works with MiKTeX on Windows 10 by compiling
- manual.
-2018/02/04
- Minor corrections in manual.
-2018/02/04
- Update package version number and date. Version numbers:
- axodraw2 package [v. 2.1.0b 2018/02/05]
- axodraw2.sty [v. 2.1.0b 2016/06/02]
- axohelp [v. 1.1 2018/01/23]
-2018/02/20
- Correct LinAxis in axohelp to have LH thick tickmark when offset=1
- Correct LinAxis and LogAxis to deal better with out-of-range
- arguments, and to be immune to rounding errors previously causing
- tickmarks at ends of axis being sometimes not drawn.
- Correct and simplify axohelp.test to work for TeXLive build.
- Update documentation.
- This version for release on CTAN.
- axodraw2 package [v. 2.1.1 2018/02/20]
- axodraw2.sty [v. 2.1.1 2018/02/15]
- axohelp [v. 1.2 2018/02/20]
-2019/07/30
- axohelp: Exit code on error is 1, not -1 (unsigned is more OS-independent)
- axohelp: Clean up CleanupOutput subroutine
- axohelp: Fix bug in use of identification line
- axohelp: Fix stack overflow bugs in subroutine DoOneObject
diff --git a/Build/source/utils/axodraw2/axodraw2-src/INSTALL b/Build/source/utils/axodraw2/axodraw2-src/INSTALL
deleted file mode 100644
index 1c16f0d039a..00000000000
--- a/Build/source/utils/axodraw2/axodraw2-src/INSTALL
+++ /dev/null
@@ -1,63 +0,0 @@
-MANUAL INSTALLATION of axohelp v. 1.2 and axodraw2
-==================================================
-
-
-
-A. Fully Manual Installation
-----------------------------
-
- Note: if you do not wish to use axodraw2 with pdflatex, xelatex, or
- lualatex, but will only use it with latex, then only the
- first step is needed.
-
- 1. Copy axodraw2.sty to a suitable directory for LaTeX style files.
-
- 2. Compile the axohelp program by a command line like
-
- gcc -o axohelp -Wall -O3 axohelp.c
-
- (The exact details of the command line depend on your operating
- system and which compiler you have installed for the C
- language.)
-
- 3. Move axohelp to a suitable directory for executables.
-
- 4. (Optional) Copy axodraw2-man.pdf to a suitable directory for
- LaTex package documentation.
-
- 5. (Optional) Copy axohelp.1 to a suitable directory for man pages.
-
-
-B. Using autoconf etc:
----------------------
-
- You can also make axohelp using the GNU utilities autoconf,
- automake and autoreconf (if these are installed). Doing this is
- enormous overkill for a program like axohelp with a single source
- file and with no need to make adjustments dependent on the
- operating system etc. Even so, we provide the files necessary for
- the use of autoconf and automake, since these are needed when the
- axodraw2 package is incorporated into TeXLive (which has an
- enormous automated build process). So here are the instructions
- for building with autoconf and automake. For these, it is assumed
- that the GNU utilities autoconf, automake and autoreconf are
- installed:
-
- As in Fully Manual Installation, but replace step 2 by
-
- 2'. Run
-
- autoreconf --install
- ./configure
- make
-
- Note that there are a couple of test scripts: axohelp.test, which
- gives a rudimentary test, and axohelp-big.test, which gives a
- comprehensive test on all axodraw2 objects used in the
- manual. **Warnings**: a. You could get a spurious failure of a test
- because of a mismatch between the line-endings of the test file and
- the file generated by axohelp (UNIX \n v. MS-Windows \r\n). b. You
- could also get spurious test failure because of differences in the
- effects of rounding error with your compiled axohelp and the one
- used on the test system.
-
diff --git a/Build/source/utils/axodraw2/axodraw2-src/Makefile.am b/Build/source/utils/axodraw2/axodraw2-src/Makefile.am
deleted file mode 100644
index 58c87371daf..00000000000
--- a/Build/source/utils/axodraw2/axodraw2-src/Makefile.am
+++ /dev/null
@@ -1,16 +0,0 @@
-## Makefile.am for axohelp
-##
-## Copyright (C) 2018 John Collins
-## You may freely use, modify and/or distribute this file.
-##
-
-AM_CFLAGS = $(WARNING_CFLAGS)
-
-bin_PROGRAMS = axohelp
-axohelp_SOURCES = axohelp.c
-
-## Test
-TESTS = axohelp.test
-dist_check_SCRIPTS = $(TESTS)
-CLEANFILES = test.ax2
-
diff --git a/Build/source/utils/axodraw2/axodraw2-src/NEWS b/Build/source/utils/axodraw2/axodraw2-src/NEWS
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/Build/source/utils/axodraw2/axodraw2-src/NEWS
+++ /dev/null
diff --git a/Build/source/utils/axodraw2/axodraw2-src/README b/Build/source/utils/axodraw2/axodraw2-src/README
deleted file mode 100644
index a0ab3d5333e..00000000000
--- a/Build/source/utils/axodraw2/axodraw2-src/README
+++ /dev/null
@@ -1,58 +0,0 @@
-Axodraw2 2.1.1b 2019/09/02
-==========================
-
-axodraw2.sty version is v2.1.1 2018/02/15
-axohelp.c version is 1.3 2019/08/30
-
-Axodraw2 is a package that defines macros for drawing Feynman graphs
-in LaTeX documents.
-
-It is an important development from the axodraw package, but since it
-is not completely backwards compatible, we have given the style file a
-changed name.
-
-Compared with axodraw, many new features have been added, with new
-types of line, and much more flexibility in their properties: For
-details see the documentation.
-
-In addition, it is now possible to use axodraw2 with pdflatex, as well
-as with the latex-dvips method. However with pdflatex (and also
-lualatex and xelatex), an external helper program, axohelp, is used to
-perform the geometrical calculations needed for the pdf code inserted
-in the output file. The processing involves a run of pdflatex, a run
-of axohelp, and then another run of pdflatex.
-
-The files in the distribution are:
-
- README This file
- axodraw2.sty The main style file
- axodraw2-man.pdf Documentation
- axodraw2-man.tex Source for documentation
- example.tex Example latex file for use of axodraw2
- axohelp.c Source code of axohelp
- axohelp.1 Man page for axohelp
- axohelp.test Script for testing axohelp
- test.ax1 Input file for test
- test.ax2-std Comparison output file for test
- axohelp-big.test Script for comprehensive test of axohelp
- test-big.ax1 Input file for comprehensive test
- test-big.ax2-std Comparison output file for comprehensive test
- configure.ac For use with autoconf and automake
- Makefile.am For use with autoconf and automake
- AUTHORS
- COPYING
- ChangeLog
- INSTALL
-
-
-Authors, copyright, license
----------------------------
-
-(C) 1994-2019 John Collins (jcc8 at psu dot edu) and Jos Vermaseren
-(t68 at nikhef dot nl)
-
-Axodraw2 is free software: you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation, either version 3 of the License, or (at your
-option) any later version. See the files axodraw2.sty or axohelp.c
-for more details.
diff --git a/Build/source/utils/axodraw2/axodraw2-src/axodraw2-man.pdf b/Build/source/utils/axodraw2/axodraw2-src/axodraw2-man.pdf
deleted file mode 100644
index aacb77d69db..00000000000
--- a/Build/source/utils/axodraw2/axodraw2-src/axodraw2-man.pdf
+++ /dev/null
Binary files differ
diff --git a/Build/source/utils/axodraw2/axodraw2-src/axodraw2-man.tex b/Build/source/utils/axodraw2/axodraw2-src/axodraw2-man.tex
deleted file mode 100644
index ff7bdb8073f..00000000000
--- a/Build/source/utils/axodraw2/axodraw2-src/axodraw2-man.tex
+++ /dev/null
@@ -1,5204 +0,0 @@
-\documentclass[12pt]{article}
-\usepackage{a4wide}
-% Use fix-cm or lmodern to get scaleable cm fonts
-\usepackage{longtable,fix-cm,url,units,hyperref}
-
-\usepackage{axodraw2}
-
-\def\num{$\langle$number$\rangle$}
-\def\colorname{$\langle$colorname$\rangle$}
-
-% How to typeset filenames and program names: Use \file and \program
-% to allow stylistic changes.
-% Basic definition of \file would be \def\file#1{\texttt{#1}}, but
-% that would not allow line breaks in long names. So define it by
-% \DeclareUrlCommand from url package. (We can't use \url itself,
-% because that provokes hyperref into making a hyperlink.)
-\DeclareUrlCommand\file{\urlstyle{tt}}
-
-% Similarly specify how to typeset names of programs
-\def\program#1{\texttt{#1}}
-
-% Backslash of the kind used in verbatim
-\newcommand\BS{\symbol{`\\}}
-
-% Set the name of a TeX macro (and possibly its signature).
-% In the argument, the initial backslash. Allow \{ and \} in the
-% argument. E.g. \name{SetSpace\{\#\}}}
-\newcommand\name[1]{%
- \bgroup
- \def\{{\symbol{`\{}}%
- \def\}{\symbol{`\}}}%
- \texttt{\BS#1}%
- \egroup
-}
-
-
-\hyphenation{Jaxo-Draw}
-
-
-\begin{document}
-
-%% ?? To get settings useful to test compatibility of axodraw2 with
-%% color.sty, uncomment the following line:
-%\SetColor{Blue} \color{green} \pagecolor[cmyk]{0,0.02,0.05,0}
-%% Note green is useful, because it is defined in rgb color model
-%% and the apparently equivalent Green, cmyk 1 0 1 0, looks quite
-%% different on screen. So we can test the colors are entering graphics
-%% correctly.
-
-%% ?? To test whether offsets work correctly, uncomment the following
-%% line:
-%\SetOffset(10,20) \SetScaledOffset(10,-20)
-
-
-\setcounter{page}{0}
-\thispagestyle{empty}
-\hfill \begin{minipage}{3.0cm}
-Nikhef 2015-025
-\end{minipage}
-\vspace{20mm}
-
-\begin{center}
-{\LARGE\bf\sc Manual for Axodraw Version 2}
-\end{center}
-\vspace{5mm}
-\begin{center}
-{\large John C. Collins$^{\, a}$ and J.A.M. Vermaseren$^{\, b}$}
-\vspace{1cm}\\
-{\it $^a$ Department of Physics, Pennsylvania State University, \\
-\vspace{0.1cm}
-University Park, Pennsylvania 16802, USA} \\
-\texttt{jcc8 at psu dot edu} \\
-\vspace{0.5cm}
-{\it $^b$Nikhef Theory Group \\
-\vspace{0.1cm}
-Science Park 105, 1098 XG Amsterdam, The Netherlands} \\
-\texttt{t68 at nikhef dot nl} \\
-\vspace{1.0cm}
-(2 September 2019)
-\end{center}
-\vspace{5mm}
-
-\begin{abstract}
-This is the reference manual for version two of the \LaTeX{} graphical
-style file Axodraw.
-Relative to version one,
-it has a number of new drawing primitives and many extra options, and
-it can now work with \program{pdflatex} to directly produce
-output in PDF file format (but with the aid of an auxiliary program).
-\end{abstract}
-
-\newpage
-
-\tableofcontents
-
-\newpage
-
-
-%>>#[ Introduction :
-%=========================
-\section{Introduction}
-\label{sec:intro}
-
-This is the documentation for axodraw2, a \LaTeX{} package for drawing
-Feynman graphs (and other simple graphics). This is version 2 and a
-substantial update of the original axodraw package \cite{axodraw1},
-which was released in 1994, and which has become rather popular in the
-preparation of articles in elementary-particle physics. One of its
-advantages is that its drawing primitives are included in the
-\file{.tex} document, in a human-writable form. (This also allows
-convenient production of axodraw figures by other software, e.g.,
-Jaxodraw \cite{jaxodraw1,jaxodraw2}.) This is in distinction to
-methods that use a separate program to create graphics files that are
-read in during the processing of the \LaTeX{} file. The objects
-needed in Feynman graphs are often difficult to draw at high quality
-with conventional computer graphics software.
-
-The original axodraw package has hardly been modified since its
-introduction. The new version addresses several later needs. A
-detailed list of the changes is given in Sec.\ \ref{sec:changes}.
-
-One change arises from the fact that \TeX{} (and hence \LaTeX{})
-itself does not possess sufficiently useful methods of drawing
-complicated graphics, so that the drawing of the graphics is actually
-done by inserting suitable code in the final output file (postscript
-or pdf). The original axodraw worked only with the
-\program{latex}-\program{dvips} processing chain to put the diagrams
-in the final postscript file.\footnote{A pdf file can be produced from
- the postscript file by a program like \program{ps2pdf}.} Now we
-also have in common use the \program{pdflatex} (and \program{lualatex}
-and \program{xelatex}) programs that directly produce pdf. The new
-version of axodraw works with \program{pdflatex}, \program{lualatex},
-and \program{xelatex}, as well as with the
-\program{latex}-\program{dvips} method.
-
-Furthermore, more kinds of graphical object and greater flexibility in
-their properties have been found useful for Feynman graphs. The new
-version provides a new kind of line, B\'ezier, and is able to make the
-various kinds of line doubled. There is now a very flexible
-configuration of arrows. Many of the changes correspond to
-capabilities of JaxoDraw \cite{jaxodraw1,jaxodraw2}, which is a
-graphical program for drawing Feynman graphs, and which is able to
-write and to import diagrams in the axodraw format.
-
-Finally, substantial improvements have been made in the handling of
-colors, with much better compatibility with modern packages used to
-set colors in the normal \LaTeX{} part of a document.
-
-Since some of the changes (especially in the internal coding)
-introduce incompatibilities (Sec.\ \ref{sec:compat}) with the original
-version of axodraw, the new version of the style file is given a new
-name \file{axodraw2.sty}. Then the many legacy documents (e.g., on
-\url{http://arxiv.org}) that use the old axodraw will continue to use
-the old version, and will therefore continue to be compilable without
-any need for any possible changes in the source document, and with
-unchanged output. Even so, as regards the coding of diagrams, there
-are very few backwardly incompatible changes in axodraw2.
-
-The software is available under the GNU General Public License
-\cite{GPL} version 3.
-
-
-
-%=========================
-\section{Changes}
-\label{sec:changes}
-
-\subsection{Changes relative to original, axodraw version 1}
-\label{sec:changes.wrt.1}
-
-Relative to the original version of axodraw, the current version,
-axodraw2, has the following main changes:
-\begin{itemize}
-
-\item A bug that the line bounding an oval did not have a uniform
- width has been corrected.
-
-\item A bug has been corrected that axodraw did not work with the
- revtex4 document class when \verb+\maketitle+ and two-column mode
- were used.
-
-\item Axodraw2 works both when pdf output is produced directly using
- the programs \program{pdflatex}, \program{lualatex}, and
- \program{xelatex}, as well as when a postscript file is produced by
- the \program{latex}--\program{dvips} method. The old version only
- worked when postscript output was produced. However, an auxiliary
- program is needed when using \program{pdflatex}, \program{lualatex},
- or \program{xelatex}. See Sec.\ \ref{sec:doc.compile} for how this
- is done.
-
-\item In the original axodraw, a diagram is coded inside a
- \verb+picture+ environment of \LaTeX. Now, a specialized
- \verb+axopicture+ environment is provided and preferred; it provides
- better behavior, especially when diagrams are to be scaled.
-
-\item In association with this, there are some changes in how scaling
- of diagrams is done.
-
-\item An inconsistency in length units between postscript and \TeX{}
- has been corrected. All lengths are now specified in terms of
- $\unit[1]{pt} = \unit[1/72.27]{in} = \unit[0.3515]{mm}$. Previously
- the unit length for graphics was the one defined by postscript to be
- $\unit[1]{bp} = \unit[1/72]{in} = \unit[0.3528]{mm}$.
-
-\item Substantial improvements have been made in the treatment of
- color. When named colors are used, axodraw2's use of color is
- generally compatible with that of the modern, \LaTeX-standard
- \file{color.sty} package. It also provides all the color-setting
- macros that were defined in v.\ 1 of axodraw, including those of the
- \file{colordvi.sty} package used by v.\ 1.
-
-\item The various types of line can now be produced as double lines,
- e.g.,
- \begin{axopicture}(35,5)(0,-2)
- \SetWidth{1}
- \Line[double,sep=2.5](0,2)(35,2)
- \end{axopicture}.
- This is commonly used, for example, for notating Wilson lines.
-
-\item Lines can be made from B\'ezier curves.
- Currently this is only for simple lines, not photon, gluon, or
- zigzag lines.
-
-\item Gluon, photon, and zigzag lines can be dashed.
-
-\item Macros are provided for drawing gluon circles, without the
- endpoint effects given by the corresponding gluon arc macros.
-
-\item The positions and sizes of arrows can be adjusted. See Sec.\
- \ref{sec:arrows} for all the possibilities. One example is
- \begin{axopicture}(30,6)(0,-2)
- \SetWidth{1}
- \Line[arrow,arrowpos=0.8](0,2)(30,2)
- \end{axopicture}
-
-\item Macros for drawing polygons and filled polygons are provided.
-
-\item Macros for drawing rotated boxes are provided.
-
-\item A macro \verb+\ECirc+ is provided for drawing a circle with a
- transparent interior.
-
-\item A macro \verb+\EBoxc+ is provided for drawing a box with a
- specified center.
-
-\item A macro \verb+\AxoGrid+ is provided for drawing a grid. One
- use is to provide a useful tool in designing pictures.
-
-\item Since there are now many more possibilities to specify the
- properties of a line, optional arguments to the main line drawing
- commands can be used to specify properties in a keyword style.
-
-\item A new macro named \verb+\Arc+ is introduced. With the aid of
- optional arguments, this unifies the behavior of various arc-drawing
- commands in the original axodraw.
-
-\item For consistency with the \verb+\Gluon+ macro, the
- \verb+\GlueArc+ macro has been renamed to \verb+\GluonArc+, with the old
- macro retained as a synonym.
-
-\item The behavior of arcs is changed to what we think is more natural
- behavior when the specified opening angle is outside the natural range.
-
-\item What we call macros for drawing objects with postscript text are
- now implemented within \LaTeX{} instead of relying on instructions
- inserted in the postscript code. Thus all the normal \LaTeX{}
- commands, including mathematics, can now be used in all text
- objects, with proper scaling. The placement and scaling of text
- objects are more consistent.
-
-\item Some new named colors are provided:
- \LightYellow{LightYellow}, \LightRed{LightRed},
- \LightBlue{LightBlue}, \LightGray{LightGray},
- \VeryLightBlue{VeryLightBlue}.
- (LightYellow, LightRed, LightBlue, LightGray, VeryLightBlue.)
-
-\item The macros originally specified as \verb+\B2Text+,
- \verb+\G2Text+, and \verb+\C2Text+ are now named \verb+\BTwoText+,
- \verb+\GTwoText+, and \verb+\CTwoText+. The intent of the original
- code was to define macros with names \verb+\B2Text+, etc. However
- in \TeX, under normal circumstances, macro names of more than one
- character must only contain letters, unlike typical programming
- languages that also allow digits. So the rules for \TeX{} macro
- names mean that in defining, for example
- \verb+\def\B2Text(#1,#2)#3#4{...}+, the original version of axodraw
- actually defined a macro named named \verb+\B+, obligatorially
- followed by \verb+2Text+. This caused a conflict if the user wished
- to define a macro \verb+\B+. If it is desired to retain the old
- behavior, then the following should be placed in the preamble of the
- \file{.tex} file, then the axodraw2 package should be invoked in the
- source document with the \texttt{v1compatible} option:
- \begin{verbatim}
- \usepackage[v1compatible]{axodraw2}
- \end{verbatim}
-
-\end{itemize}
-
-\subsection{Changes relative to axodraw4j distributed with JaxoDraw}
-\label{sec:changes.wrt.4j}
-
-The JaxoDraw program \cite{jaxodraw2} is distributed with a version of
-axodraw called axodraw4j. At the time of writing (July 2016), this
-was effectively a predecessor of axodraw2, but without the possibility
-of working with \program{pdflatex}. (The suffix ``4j'' is intended to
-mean ``for JaxoDraw''.)
-
-The changes in axodraw2 relative to the version of axodraw4j dated
-2011/03/22 are the following subset of those listed in Sec.\
-\ref{sec:changes.wrt.1}:
-\begin{itemize}
-\item The ability to work with \program{pdflatex}, \program{lualatex},
- and \program{xelatex}.
-\item The improvements in the handling of color and fonts.
-\item The double and arrow options for B\'ezier lines.
-\item The dash option for gluons and photons.
-\item Color option for all lines.
-\item Correction of inconsistency of length unit between \TeX{} and
- postscript.
-\item Better drawing of double gluons and photons.
-\item Addition of the macros for making gluon circles, polygons, and rotated
- boxes.
-\item Addition of the macros
- \verb+\ECirc+, \verb+\EBoxc+, and \verb+\AxoGrid+.
-\item A series of ``LongArrow'' macros for drawing lines with the
- arrow at the end. The same effect could only be achieved in
- axodraw4j with arrowpos=1 option to the basic line-drawing
- commands.
-\item A series of macros like \verb+\DashDoubleLine+ to provide access
- to the dashed and double properties in the style of the macros
- provided in v.\ 1 of axodraw. This is in addition to the optional
- arguments that allow the same effect in axodraw4j and in axodraw2.
-\item The \texttt{v1compatible} and other options are provided for the
- package.
-\item Better treatment of the scaling of objects.
-\item The treatment of ``postscript text objects'' within \LaTeX{}
- itself.
-\end{itemize}
-
-
-%---------------
-\subsection{Backward compatibility, etc}
-\label{sec:compat}
-
-The official user interface of axodraw2 is backward-compatible with
-versions 1 and 4j, with the exception of the issue mentioned above
-about the commands that had the signatures \verb+\B2Text+,
-\verb+\G2Text+, and \verb+\C2Text+ in the old version.
-
-As to behavior, there are some minor changes in the objects that are
-drawn, mostly concerning the exact dimensions of default arrows. The
-scaling of the sizes of text objects is changed. The scoping of color
-changes is substantially changed, but improved.
-
-The old axodraw only used the tools available in \LaTeX{} in the early
-1990s. The new version needs a more modern installation.
-Installations for which axodraw2 has been tested include TeXLive 2011
-and 2016.
-
-We have tested backwards compatibility by compiling the version 1
-manual with axodraw2; only a trivially modified preamble was needed.
-It also worked to compile Collins's QCD book\cite{qcdbook},
-which has a large number
-of JaxoDraw figures (processed automatically to pieces of axodraw code
-imported into the document); only changes in the preamble were needed.
-
-In addition, axodraw2 provides an \verb+axopicture+ environment inside
-of which axodraw2's graphics are coded and drawn. In the old axodraw,
-\LaTeX's \verb+picture+ environment was used instead. In axodraw2, we
-recommend only the use of \verb+axopicture+ environment, and that is
-the only method we document. However, old diagrams coded with
-\verb+picture+ environment continue to work.
-
-Some possible compatibility issues could arise because the old and new
-versions load a different set of external packages. The old version
-loaded the packages \file{epsf.sty} and \file{colordvi.sty}, and so
-macros defined by these packages were available. The new version does
-not load these now essentially-obsolete packages; so they should be
-loaded from the document if they happen to be needed. But the new
-version does define some macros for setting colors that correspond to
-those in \file{colordvi.sty}; these are defined using facilities from
-the standard \LaTeX{} \file{color.sty} package. Axodraw2 loads the
-following \LaTeX{} packages: \program{keyval}, \program{ifthen},
-\program{graphicx}, \program{color}, \program{ifxetex}. It defines
-its own set of 73 named colors which are the 68 dvips-defined names
-(as coded in \file{colordvi.sty} and used in axodraw v.\ 1), plus 5
-more.
-
-
-
-%=========================
-\section{Installation}
-\label{sec:installation}
-
-%---------------
-\subsection{Installation from standard \TeX{} distribution}
-
-At the moment that this document was updated (January 2018), axodraw2
-was part of both the main \TeX{} distributions, TeXLive and MiKTeX.
-The easiest way to install axodraw2 is therefore from the package
-manager of your \TeX{} distribution.
-
-You can also obtain axodraw2 from CTAN at
-\url{http://ctan.org/pkg/axodraw2}, and install it manually, following
-the instructions in Sec.\ \ref{sec:manual.install} below.
-
-\paragraph{\program{axohelp} in TeXLive}
-In TeXLive 2018 and later, a binary executable for the
-\program{axohelp} is provided, as part of the \program{axodraw2}
-package. So \program{axohelp} is available provided that the
-\program{axodraw2} package is installed..
-
-
-\paragraph{\program{axohelp} in MiKTeX}
-The axodraw2 package including an executable \program{axohelp.exe} was
-provided by MiKTeX when this was checked in January 2018.
-
-
-
-%---------------
-\subsection{Manual installation}
-\label{sec:manual.install}
-
-%For a manual installation, the minimum that needs to be done is to put
-For a manual installation, what needs to be done is to put the file
-\file{axodraw2.sty} in a place where it will be found by the
-\program{latex} program. If you wish to use axodraw2 with
-\program{pdflatex}, you will also need to compile the
-\program{axohelp} program --- see Sec.\ \ref{sec:axohelp} --- and put
-it in an appropriate directory. Documentation can also be installed
-if you want.
-
-%--
-\subsubsection{Style file \texorpdfstring{\protect\file{axodraw2.sty}}{axodraw2.sty}}
-
-If you merely want to try out axodraw2, just put the file
-\file{axodraw2.sty} in the same directory as the \file{.tex}
-file(s) you are working on.
-
-Otherwise, put it in an appropriate directory for a \LaTeX{} style
-file, and, if necessary, run the texhash program to ensure that the
-file is in the \TeX{} system's database of files. For example,
-suppose that you have a TeXLive system installed for all users on a
-Unix-like system (e.g., Linux or OS-X), and that TeXLive is installed,
-as is usual, under the directory \file{/usr/local/texlive}. Then an
-appropriate place for axodraw2 is in a directory
-\file{/usr/local/texlive/texmf-local/tex/latex/axodraw2}. You will
-need to run the \program{texhash} program in this last case. For such
-a system-wide installation, you may have to do these
-operations as an administrative user (e.g., root), possibly
-supplemented by running the relevant commands with the \program{sudo}
-program.
-
-If you later install the axodraw2 package from the package manager of
-your \TeX{} distribution, it's a good idea to delete the files you
-installed manually. Otherwise when you use axodraw2 in a document,
-then the wrong version of \file{axodraw2.sty} may get used. This is a
-particularly important issue after possible future updates to axodraw2
-get installed by the package manager.
-
-%--
-\subsubsection{Helper program \program{axohelp}}
-\label{sec:axohelp}
-
-If you wish to use axodraw2 with \program{pdflatex},
-\program{lualatex}, or \program{xelatex}, then you need to install the
-\program{axohelp} program. \emph{(It is useful to reiterate here that
- the standard distributions of \TeX{} currently supply the
- \program{axohelp} program. So the steps described here are only
- necessary if for some reason you wish to do a manual installation.
- One possible reason is to use a recent update of \program{axohelp},
- since TeXLive normally only supplies updated versions of binary
- executable files with the initial release of one of TeXLive's yearly
- versions.)}
-
-To install \program{axohelp} manually, you will first need to compile
-the program by a C compiler. Under a Unix-like operating system
-(linux or macOS) an appropriate shell command is
-\begin{verbatim}
- cc -o axohelp -O3 axohelp.c -lm
-\end{verbatim}
-(Note that this is a C compiler, \emph{not} a C++ compiler.) Most linux
-systems have the program \program{cc} already installed. This also applies to
-macOS(OS-X) at versions below 10.7. But on macOS version 10.7 and higher, you
-will need to install a compiler, which can be done by installing XCode
-and the associated command-line utilities. If you have the GNU
-compilers installed, you might need to use the command \program{gcc}
-instead of \program{cc}.
-
-For Microsoft Windows, you will need to have installed a C compiler,
-and use it to compile \file{axohelp.c}.
-
-Once you have the executable (named \program{axohelp} on Unix-like
-systems, or \program{axohelp.exe} on a Microsoft system), put it in a
-directory where it will be found when you run programs from the
-command line.
-
-
-%--
-\subsubsection{Testing}
-
-To test whether the installation works, you need a simple test file.
-An example is given in Sec.\ \ref{sec:example}, and is provided
-with the axodraw2 distribution as \file{example.tex}.
-
-At a command line with the current directory set to the directory
-containing the file \file{example.tex}, run the following commands:
-\begin{verbatim}
- latex example
- dvips example -o
-\end{verbatim}
-If all goes well, you will obtain a file \file{example.ps}. When
-you view it, it should contain the diagram shown in Sec.\
-\ref{sec:example}. You can make a pdf file instead by the commands
-\begin{verbatim}
- latex example
- dvipdf example
-\end{verbatim}
-A more extensive test can be made by compiling the manual.
-
-To make a pdf file directly, with \program{pdflatex}, you use the commands
-\begin{verbatim}
- pdflatex example
- axohelp example
- pdflatex example
-\end{verbatim}
-The \program{axohelp} run takes as input a file \file{example.ax1}
-produced by the first run of \program{pdflatex} and makes an output
-file \file{example.ax2}. The second run of \program{pdflatex} reads
-the \file{example.ax2} file and uses the result to place the axodraw
-objects in the \file{example.pdf} file.
-
-
-%--
-\subsubsection{Documentation}
-
-Put the documentation in a place where you can find it. If you
-installed the \file{axodraw2.sty} file in
-\file{/usr/local/texlive/texmf-local/tex/latex/axodraw2}, the
-standard place for the documentation would be
-\file{usr/local/texlive/texmf-local/doc/latex/axodraw2}.
-
-
-%=========================
-\section{Use}
-\label{sec:use}
-
-In this section we show how to use axodraw2, illustrated with an
-example.
-
-\subsection{Basic example}
-\label{sec:example}
-
-The principles of using axodraw2 are illustrated by the following
-complete \LaTeX{} document:
-\begin{verbatim}
- \documentclass{article}
- \usepackage{axodraw2}
- \begin{document}
- Example of Feynman graph using axodraw2 macros:
- \begin{center}
- \begin{axopicture}(200,110)
- \SetColor{Red}
- \Arc[arrow](100,50)(40,0,180)
- \Text(100,100){$\alpha P_1 + \beta P_2 + k_\perp$}
- \SetColor{Black}
- \Arc[arrow](100,50)(40,180,360)
- \Gluon(0,50)(60,50){5}{4}
- \Vertex(60,50){2}
- \Gluon(140,50)(200,50){5}{4}
- \Vertex(140,50){2}
- \end{axopicture}
- \end{center}
- \end{document}
-\end{verbatim}
-After compilation according to the instructions in Sec.\
-\ref{sec:doc.compile}, viewing the resulting file should show the
-following Feynman graph:
-\begin{center}
- \begin{axopicture}(200,110)
- \SetColor{Red}
- \Arc[arrow](100,50)(40,0,180)
- \Text(100,100){$\alpha P_1 + \beta P_2 + k_\perp$}
- \SetColor{Black}
- \Arc[arrow](100,50)(40,180,360)
- \Gluon(0,50)(60,50){5}{4}
- \Vertex(60,50){2}
- \Gluon(140,50)(200,50){5}{4}
- \Vertex(140,50){2}
- \end{axopicture}
-\end{center}
-See Sec.\ \ref{sec:examples} for more examples
-
-\emph{Important note about visibility of graphics objects:} If you
-view this document on a computer monitor, Feynman graphs drawn with
-narrow lines may not fully match what was intended. This is because
-of the way graphics viewers interact with the limited resolution of
-computer monitors. To see the example graphs properly, you may need to
-use a large enough magnification, or to use an actual print out.
-
-\emph{Note about sending a document to others}: If for example, you
-submit an article to arXiv.org, it is likely that their automated
-system for processing the file will not run \program{axohelp}. So together with
-the tex file, you one should also submit the \file{.ax2} file.
-
-
-%-----------------------
-\subsection{Document preparation}
-\label{sec:doc.prep}
-
-The general rules for preparation of a document are:
-\begin{itemize}
-
-\item Insert the following
- \begin{verbatim}
- \usepackage{axodraw2}
- \end{verbatim}
- in the preamble of the \file{.tex} file.
- There are some options and commands that can be used to change axodraw2's
- behavior from its default. See Secs.\ \ref{sec:invoke} and
- \ref{sec:settings} for details.
-
-\item Where you want to insert axodraw2 objects, put them inside an
- axopicture environment, specified in Sec.\ \ref{sec:env},
- \begin{verbatim}
- \begin{axopicture}(x,y)
- ...
- \end{axopicture}
- \end{verbatim}
- Here \texttt{x} and \texttt{y} denote the desired size of the box
- that is to be inserted in the document and that contains the graph.
- An optional offset can be specified (as with \LaTeX's
- \texttt{picture} environment). By default the units are
- $\unit[1]{pt} = \unit[1/72.27]{in} = \unit[0.3515]{mm}$.
-
-\end{itemize}
-Full details of all these components are in Sec.\
-\ref{sec:reference}.
-
-The design of graphs can be done manually, and this can be greatly
-facilitated with the new \verb:\AxoGrid: command. A convenient way of
-constructing diagrams is to use the graphical program
-JaxoDraw~\cite{jaxodraw1,jaxodraw2}, which is what most people
-do. This program can export axodraw code. It also uses axodraw as one
-way of making postscript and pdf files. The original version of
-axodraw was used by JaxoDraw until version 1.3. In version 2 of
-JaxoDraw, a specially adapted version of \file{axodraw.sty} is used,
-named \file{axodraw4j.sty}. The output from version 2 of
-JaxoDraw is compatible with axodraw2.
-
-
-%-----------------------
-\subsection{Document compilation}
-\label{sec:doc.compile}
-
-\subsubsection{To make a postscript file}
-\label{sec:doc.compile.ps}
-
-When a postscript file is needed, you just make the postscript file as
-usual. E.g., when the source file is \file{example.tex}, you run
-the following commands:
-\begin{verbatim}
- latex example
- dvips example -o
-\end{verbatim}
-which results in a postscript file \file{example.ps}. Of course, if
-there are cross references to be resolved, you may need multiple runs
-of \program{latex}, as usual. When needed, use of \program{bibtex},
-\program{makeindex}, and other similar programs is also as usual.
-Instead of \program{latex}, one may also use the \program{dvilualatex}
-program, which behaves like \program{latex} except for providing some
-extra capabilities that are sometimes useful.
-
-Internally, axodraw uses \TeX's \verb+\special+ mechanism to put
-specifications of postscript code into the \file{.dvi} file, and
-\program{dvips} puts this code in the postscript file. This postscript
-code performs the geometrical calculations needed to specific
-axodraw's objects, and then draws them when the file is displayed or
-printed.
-
-\emph{Important note about configuration of \program{dvips}:} You may
-possibly find that when you run \program{dvips} that it spends a lot of
-time running \program{mktexpk} to make bitmapped fonts, or that the
-postscript
-file contains bitmapped type-3 fonts. This is \emph{not} the default
-situation in typical current installations. But if you do find this
-situation, which is highly undesirable in most circumstances, you
-should arrange for \program{dvips} to use type 1 fonts. This can be
-done either by appropriately configuring your \TeX{} installation, for
-which you will have to locate instructions, or by giving
-\program{dvips} its \texttt{-V0} option:
-\begin{verbatim}
- dvips -V0 example -o
-\end{verbatim}
-Once you do this, you should see, from \program{dvips}'s output,
-symptoms of its use of type 1 fonts. \emph{Let us re-emphasize that
- you do not have to be concerned with this issue, under
- normal circumstances. But since things were different within our
- memory, we give some suggestions as to what to do in what are
- currently abnormal circumstances.}
-
-\subsubsection{To make a pdf file via \program{latex}}
-
-There are multiple methods of making pdf files for a latex document;
-we will not give all the advantages and disadvantages here.
-
-One way is to convert the postscript file, e.g., by
-\begin{verbatim}
- ps2pdf example.ps
-\end{verbatim}
-You can also produce a pdf file from the dvi file produced by
-\program{latex} by the \program{dvipdf} command, e.g,.
-\begin{verbatim}
- dvipdf example
-\end{verbatim}
-\emph{Important note:} The program here is \program{dvipdf} and
-\emph{not} the similarly named \program{dvipdfm} or \program{dvipdfmx},
-which are incompatible with axodraw. The reason why \program{dvipdf}
-works is that it internally makes a postscript file and then converts
-it to pdf.
-
-
-\subsubsection{To make a pdf file by \program{pdflatex},
- \program{lualatex}, or \program{xelatex}}
-
-A common and standard way to make a pdf file is the \program{pdflatex}
-program, which makes pdf directly. It has certain advantages, among
-which are the possibility of importing a wide variety of graphics file
-formats. (In contrast, the \program{latex} program only handles
-encapsulated postscript.)
-
-However, to use axodraw2 with \program{pdflatex}, you need an
-auxiliary program, \program{axohelp}, as in
-\begin{verbatim}
- pdflatex example
- axohelp example
- pdflatex example
-\end{verbatim}
-What happens is that during a run of \program{pdflatex}, axodraw2
-writes a file \file{example.ax1} containing specifications of its
-graphical objects. Then running \program{axohelp} reads the
-\file{example.ax1} file, computes the necessary pdf code to draw the
-objects, and writes the results to \file{example.ax2}. The next run
-of \program{pdflatex} reads \file{example.ax2} and uses it to put the
-appropriate code in the output pdf file.
-
-The reason for the extra program is that axodraw needs many
-geometrical calculations to place and draw its graphical objects.
-\LaTeX{} itself does not provide anything convenient and efficient for
-these calculations, while the PDF language does not offer sufficient
-computational facilities, unlike the postscript language.
-
-If you modify a document, and recompile with \program{pdflatex}, you
-will only need to rerun \program{axohelp} if the modifications
-involve axodraw objects. Axodraw2 will output an appropriate message
-when a rerun of \program{axohelp} is needed.
-
-If you wish to use \program{lualatex} or \program{xelatex}, instead of
-\program{pdflatex}, then you can simply run the program
-\program{lualatex} or \program{xelatex} instead of
-\program{pdflatex}. These are equally compatible with axodraw2.
-
-
-
-
-%-----------------------
-\subsection{Automation of document compilation}
-\label{sec:doc.auto.compile}
-
-It can be useful to automate the multiple steps for compiling a
-\LaTeX{} document. One of us has provided a program \program{latexmk}
-to do this --- see \url{http://www.ctan.org/pkg/latexmk/}. Here we
-show how to configure
-\program{latexmk} to run \program{axohelp} as needed when a document is
-compiled via the \program{pdflatex} route.
-
-All you need to do is to put the following lines in one of
-\program{latexmk}'s initialization files (as specified in its
-documentation):
-\begin{verbatim}
- add_cus_dep( "ax1", "ax2", 0, "axohelp" );
- sub axohelp { return system "axohelp \"$_[0]\""; }
- $clean_ext .= " %R.ax1 %R.ax2";
-\end{verbatim}
-The first two lines specify that \program{latexmk} is to make
-\file{.ax2} files from \file{.ax1} files by the \program{axohelp}
-program, whenever necessary. (After that \program{latexmk}
-automatically also does any further runs of \program{pdflatex} that are
-necessary.) The last line is optional; it adds \file{.ax1} and
-\file{.ax2} files to the list of files that will be deleted when
-\program{latexmk} is requested to do a clean up of generated,
-recreatable files.
-
-\program{Latexmk} is installed by default by the currently common
-distributions of \TeX{} software, i.e., TeXLive and MiKTeX. It has as
-an additional requirement a properly installed Perl system. For the
-TeXLive distribution, this requirement is always met.
-
-With the above configuration, you need no change in how you invoke
-\program{latexmk} to compile a document, when it uses axodraw2. For
-producing postscript, you can simply use
-\begin{verbatim}
- latexmk -ps example
-\end{verbatim}
-and for producing pdf via \program{pdflatex} you can use
-\begin{verbatim}
- latexmk -pdf example
-\end{verbatim}
-Then \program{latexmk} takes care of whatever runs are needed of all
-the relevant programs, now including \program{axohelp}, as well
-whatever, possibly multiple, runs are needed for the usual programs
-(\program{latex}, \program{pdflatex}, \program{bibtex}, etc).
-
-
-
-%>>#] Introduction :
-%>>#[ The Commands :
-
-\section{Reference}
-\label{sec:reference}
-
-\subsection{Package invocation}
-\label{sec:invoke}
-
-To use the axodraw2 package in a \LaTeX{} document, you simply put
-\begin{verbatim}
- \usepackage{axodraw2}
-\end{verbatim}
-in the preamble of the document, as normal.
-
-The \verb+\usepackage+ command takes optional arguments
-(comma-separated list of keywords) in square brackets, e.g.,
-\begin{verbatim}
- \usepackage[v1compatible]{axodraw2}
-\end{verbatim}
-The options supported by axodraw2 are
-\begin{itemize}
-\item \texttt{v1compatible}: This makes axodraw2's operation more
- compatible with v.\ 1. It allows the use of \verb+\B2Text+,
- \verb+\G2Text+, and \verb+\C2Text+ as synonyms for the macros named
- \verb+\BTwoText+, \verb+\GTwoText+, and \verb+\CTwoText+.
- (You may wish also to use the \texttt{canvasScaleisUnitLength}
- option, so that the scaling of the units in the \texttt{axopicture}
- environment is the same as it was for the \texttt{picture}
- environment used in v.\ 1.)
-\item \texttt{canvasScaleIs1pt}: Unit for canvas dimensions
- in an \texttt{axopicture} environment is fixed at $\unit[1]{pt}$,
-\item \texttt{canvasScaleIsObjectScale}: Unit for canvas dimensions
- in an \texttt{axopicture} environment are the same as those set for
- axodraw objects (by the \verb+\SetScale+ macro). This is the
- default setting, so the option need not be given.
-\item \texttt{canvasScaleIsUnitLength}: Unit for canvas dimensions
- in an \texttt{axopicture} environment is the current value of
- \verb+\unitlength+, exactly as for \LaTeX{}'s \texttt{picture}
- environment. (Thus, this corresponds to the behavior of the
- original axodraw v.\ 1, which simply used the \texttt{picture}
- environment.)
-\item \texttt{PStextScalesIndependently}: Axodraw's text objects are
- scaled by the factor set by the \verb+\SetTextScale+ command.
-\item \texttt{PStextScalesLikeGraphics}: Axodraw's text objects are
- scaled by the factor set by same factor for its graphics objects,
- i.e., the scale set by the \verb+\SetScale+ command.
-\end{itemize}
-(N.B. Default scaling factors are initialized to unity.)
-
-\emph{Note:} If you use \program{axodraw}'s commands for placing text
-and you use the standard \TeX{} Computer Modern fonts for the
-document, then when you compile your document you may get a lot of
-warning messages. These are about fonts not being available in
-certain sizes. To fix this problem invoke the package
-\program{fix-cm} in your document's preamble:
-\begin{verbatim}
- \usepackage{fix-cm}
-\end{verbatim}
-It is also possible to use the package \program{lmodern} for the same
-purpose.
-
-
-\subsection{Environment(s)}
-\label{sec:env}
-
-The graphical and other objects made by axodraw2 are placed in an
-\texttt{axopicture} environment, which is invoked either as
-\begin{verbatim}
- \begin{axopicture}(x,y)
- ...
- \end{axopicture}
-\end{verbatim}
-or
-\begin{verbatim}
- \begin{axopicture}(x,y)(xoffset,yoffset)
- ...
- \end{axopicture}
-\end{verbatim}
-Here, the \dots{} denote sequences of axodraw2 commands, as documented
-in later sections, for drawing lines, etc. The \texttt{axopicture}
-environment is just like standard \LaTeX's \texttt{picture}
-environment,\footnote{In fact, the \texttt{axopicture} is changed from
- the \texttt{picture} environment only by making some
- axodraw-specific settings. So the \texttt{picture} environment that
- was used in v.\ 1 may also be used with axodraw2; it merely has a
- lack of automation on the setting of the canvas scale relative to
- the object scale, and, in the future, other possible
- initializations.}, except for doing some axodraw-specific
-initialization. It inserts a region of size \texttt{x} by \texttt{y}
-(with default units of $\unit[1]{pt} = \unit[1/72.27]{in} =
-\unit[0.3515]{mm}$). Here \texttt{x} and \texttt{y} are set to the
-numerical values you need.
-
-The positioning of axodraw objects is specified by giving $x$ and $y$
-coordinates, e.g., for the ends of lines. The origin of these
-coordinates is, by default, at the lower left corner of the box that
-\texttt{axopicture} inserts in your document. But sometimes,
-particularly after editing a graph, you will find this is not
-suitable. To avoid changing a lot of coordinate values to get correct
-placement, you can specify an offset by the optional arguments
-\texttt{(xoffset,yoffset)} to the \texttt{axopicture} environment,
-exactly as for \LaTeX's \texttt{picture} environment. The offset
-\texttt{(xoffset,yoffset)} denotes the position of the bottom left
-corner of the box inserted in your document relative to the coordinate
-system used for specifying object positions. Thus
-\begin{verbatim}
- \begin{axopicture}(20,20)
- \Line(0,0)(20,20)
- \end{axopicture}
-\end{verbatim}
-and
-\begin{verbatim}
- \begin{axopicture}(20,20)(-10,20)
- \Line(-10,20)(10,40)
- \end{axopicture}
-\end{verbatim}
-are exactly equivalent.
-
-Within an \texttt{axopicture} environment, all the commands that can
-be used inside an ordinary \texttt{picture} environment can also be
-used.
-
-We can think of the \texttt{axopicture} environment as defining a
-drawing canvas for axodraw's graphical and text objects.
-There are possibilities for manipulating (separately) the units used
-to specify the canvas and the objects. These can be useful for
-scaling a diagram or parts of it from an originally chosen design.
-See Secs.\ \ref{sec:units} and \ref{sec:settings} for details.
-
-
-\subsection{Graphics drawing commands}
-\label{sec:commands}
-
-In this section we present commands for drawing graphical objects,
-split up by category. Later, we will give: details of options to the
-line-drawing commands, explanations of some details about specifying
-gluons and about specifying arrow parameters, and then commands for
-textual objects and for adjusting settings (e.g., separation in a
-double line). Mostly, we present the commands by means of examples.
-Note that many of the arguments of the commands, notably arguments for
-$(x,y)$ coordinate values are delimited by parentheses and commas
-instead of the brace delimiters typically used in \LaTeX.
-
-It should also be noted that some commands provide different ways of
-performing the same task. For instance
-\begin{verbatim}
- \BCirc(50,50){30}
-\end{verbatim}
-can also be represented by
-\begin{verbatim}
- \CCirc(50,50){30}{Black}{White}
-\end{verbatim}
-when the current color is black. The presence of the BCirc command has been
-maintained both for backward compatibility, and because it represents
-a convenient short hand for a common situation. This also holds for similar
-commands involving boxes and triangles. For the new Polygon, FilledPolygon,
-RotatedBox and FilledRotatedBox commands we have selected a more minimal
-scheme.
-
-Similar remarks apply to the new feature of options for line drawing
-commands. Originally in v.\ 1, a line with an arrow would be coded as
-\begin{verbatim}
- \ArrowLine(30,65)(60,25)
-\end{verbatim}
-It is now also possible to code using the general \verb+\Line+ macro,
-but with a keyword optional argument:
-\begin{verbatim}
- \Line[arrow](30,65)(60,25)
-\end{verbatim}
-One advantage of the option method is a variety of other properties of
-an individual line may also be coded, as in
-\begin{verbatim}
- \Line[arrow,arrowpos=1](30,65)(60,25)
-\end{verbatim}
-without the need to use separate global setting for the property, by
-the commands listed in Sec.\ \ref{sec:settings}, or by having a
-corresponding compulsory argument to the command.
-Which way to do things is a matter of user taste in particular
-situations.
-
-%--#[ AxoGrid :
-
-\subsubsection{Grid drawing}
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,140)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,14){LightGray}{0.5}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{axogrid}
-\verb:\AxoGrid(0,0)(10,10)(9,14){LightGray}{0.5}: \hfill \\
-This command is used in our examples to allow the reader to compare the
-coordinates in the commands with those of the actual picture. The arguments
-are first the position of the left bottom corner, then two values that tell
-the size of the divisions in the $x$ and $y$ direction. Next there are two
-values that specify how many divisions there should be in the $x$ and $y$
-direction. Then the color of the lines is given and finally the width of
-the lines. Note that if there are $(n_x,n_y)$ divisions there will be
-$n_x+1$ vertical lines and $n_y+1$ horizontal lines. The temporary use of
-this command can also be convenient when designing pictures manually.
-\end{minipage}\vspace{4mm}
-
-%--#] AxoGrid :
-%--#[ Line :
-
-\subsubsection{Ordinary straight lines}
-\label{sec:Line}
-
-
-All of the commands in this section can be given optional keyword
-arguments, which are defined in Secs.\ \ref{sec:options} and
-\ref{sec:arrows}. These can be used to specify the type of line
-(dashed, double), to specify the use of an arrow, and its parameters, and
-to specify some of the line's parameters.
-
-The basic line drawing command is \verb+\Line+:\\[3mm]
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,40)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
-\Line(10,10)(80,30)
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{line}
-\verb:\Line(10,10)(80,30): \hfill \\
-In this command we have two coordinates. The (solid) line goes from the
-first to the second.
-\end{minipage}\vspace{4mm}
-
-Examples of the use of optional arguments are:\\[3mm]
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,80)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,8){LightGray}{0.5}
-\Line[color=Magenta,arrow](10,70)(80,70)
-\Line[dash](10,50)(80,50)
-\Line[arrow,double](10,30)(80,30)
-\Line[arrow,dash,double](10,10)(80,10)
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{line.options}
-\begin{verbatim}
-\Line[color=Magenta,arrow](10,70)(80,70)
-\Line[dash](10,50)(80,50)
-\Line[arrow,double](10,30)(80,30)
-\Line[arrow,dash,double](10,10)(80,10)
-\end{verbatim}
-\end{minipage}
-\\[4mm]
-Details of the specification of arrows, together with alternative
-commands for making lines with arrows are given in Sec.\
-\ref{sec:arrows}.
-
-\vspace{4mm}
-%--#] Line :
-%--#[ DoubleLine :
-
-Alternative commands for dashed and/or double lines are:\\[3mm]
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,40)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
-\DoubleLine(10,25)(80,25){1}
-\DoubleLine[color=Red](10,15)(80,15){2}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{doubleline}
-\verb:\DoubleLine(10,25)(80,25){1}: \hfill \\
-\verb:\DoubleLine[color=Red](10,15)(80,15){2}: \hfill \\
-In this command we have two coordinates as in the Line command but two
-lines are drawn. The extra parameter is the separation between the two
-lines. Note however that everything between the lines is blanked out.
-\end{minipage}\vspace{4mm}
-
-%--#] DoubleLine :
-%--#[ DashLine :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,40)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
-\DashLine(10,25)(80,25){2}
-\DashLine(10,15)(80,15){6}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{dashline}
-\verb:\DashLine(10,25)(80,25){2}: \hfill \\
-\verb:\DashLine(10,15)(80,15){6}: \hfill \\
-In this command we have two coordinates. The dashed line goes from the
-first to the second. The extra parameter is the size of the dashes. The
-space between the dashes is transparent.
-\end{minipage}\vspace{4mm}
-
-%--#] DashLine :
-%--#[ DashDoubleLine :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,40)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
-\DashDoubleLine(10,25)(80,25){1.5}{2}
-\DashDoubleLine(10,15)(80,15){1.5}{6}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{dashdoubleline}
-\verb:\DashDoubleLine(10,25)(80,25){1.5}{2}: \hfill \\
-\verb:\DashDoubleLine(10,15)(80,15){1.5}{6}: \hfill \\
-In this command we have two coordinates. The dashed lines go from the
-first to the second. The first extra parameter is the separation between
-the lines and the second extra parameter is the size of the dashes.
-\end{minipage}\vspace{4mm}
-
-%--#] DashDoubleLine :
-%--#[ Arc :
-
-\subsubsection{Arcs}
-\label{sec:Arc}
-
-The commands in this section draw circular arcs in types corresponding
-to the straight lines of Sec.\ \ref{sec:Line}. In v.\ 1, some of
-these commands had names containing ``Arc'' and some ``CArc''. Some
-kinds had variant names containing ``Arcn'', whose the direction of
-drawing was clockwise instead of anticlockwise. In v.\ 2, we have
-tried to make the situation more consistent. First, all the old names
-have been retained, for backward compatibility. Second, a general
-purpose command \verb+\Arc+ has been introduced; in a single command,
-with the aid of optional arguments, it covers all the variants. See
-Secs.\ \ref{sec:options} and \ref{sec:arrows} for full details. The
-options can be used to specify the type of line (dashed, double,
-clockwise or anticlockwise), to specify the use of arrow, and its
-parameters, and to specify some of the line's parameters. The other
-commands in this section can also be given optional keyword arguments.
-
-The basic \verb+\Arc+ command has the form\\[3mm]
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,50)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
-\Arc(45,0)(40,20,160)
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{carc}
-\verb:\Arc(45,0)(40,20,160):\hfill \\
-In this command we have one coordinate: the center of the circle. Then
-follow the radius of the circle, the start angle and the finishing angle.
-The arc will be drawn counterclockwise.
-\end{minipage}\vspace{4mm}
-
-An example of the use of the optional parameters is:\\[3mm]
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(80,80)(-10,0)}
-\AxoGrid(0,0)(10,10)(8,8){LightGray}{0.5}
-\Arc[arrow,dash,clockwise](40,40)(30,20,160)
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{carc.opt}
-\verb:\Arc[arrow,dash,clockwise](40,40)(30,20,160):
-\end{minipage}\vspace{4mm}
-
-Alternative commands for dashed and/or double arcs are as follows.
-\vspace*{4mm}
-
-%--#] Arc :
-%--#[ DoubleArc :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,50)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
-\DoubleArc[color=Green](45,0)(40,20,160){2}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{doublearc}
-\verb:\DoubleArc[color=Green](45,0)(40,20,160){2}:\hfill \\
-In this command we have one coordinate: the center of the circle. Then
-follow the radius of the circle, the start angle and the finishing angle.
-The arc will be drawn counterclockwise. The last argument is the line
-separation of the double line.
-\end{minipage}\vspace{4mm}
-
-%--#] DoubleArc :
-%--#[ DashArc :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,50)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
-\DashArc(45,0)(40,20,160){4}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{dasharc}
-\verb:\DashArc(45,0)(40,20,160){4}:\hfill \\
-In this command we have one coordinate: the center of the circle. Then
-follow the radius of the circle, the start angle and the finishing angle.
-The arc will be drawn counterclockwise. The last argument is the size of
-the dashes.
-\end{minipage}\vspace{4mm}
-
-%--#] DashArc :
-%--#[ DashDoubleArc :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,50)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
-\DashDoubleArc(45,0)(40,20,160){2}{4}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{dashdoublearc}
-\verb:\DashDoubleArc(45,0)(40,20,160){2}{4}:\hfill \\
-In this command we have one coordinate: the center of the circle. Then
-follow the radius of the circle, the start angle and the finishing angle.
-The arc will be drawn counterclockwise. The last two arguments are the line
-separation of the double line and the size of the dashes.
-\end{minipage}\vspace{4mm}
-
-%--#] DashDoubleArc :
-%--#[ Bezier :
-
-\subsubsection{B\'ezier lines}
-\label{sec:Bezier}
-
-The commands in this section draw B\'ezier curves, specified by 4
-points. The variants are just as for straight lines, Sec.\
-\ref{sec:Line}.
-
-All of the commands in this section can be given optional keyword
-arguments, which are defined in Sec.\ \ref{sec:options}. These can be
-used to specify the type of line (dashed, double), to specify the use
-of an arrow, and its parameters, and to specify some of the line's
-parameters.
-
-The basic general purpose command is \verb+\Bezier+:\\[3mm]
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(60,60)(-25,0)}
-\AxoGrid(0,0)(10,10)(6,6){LightGray}{0.5}
-\Bezier(10,10)(75,30)(65,40)(20,50)
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{bezier}
-\verb:\Bezier(10,10)(75,30)(65,40)(20,50): \hfill \\
-Draws a cubic B\'ezier curve based on the four given points. The first
-point is the starting point and the fourth the finishing point. The
-second and third points are the two control points.
-\end{minipage}\vspace{4mm}
-
-An example of the use of optional arguments is
-\\[3mm]
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(60,60)(-25,0)}
-\AxoGrid(0,0)(10,10)(6,6){LightGray}{0.5}
-\Bezier[color=Red,arrow,double,arrowpos=1](10,10)%
- (75,30)(65,40)(20,50)
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{bezier.opt}
-\begin{verbatim}
- \Bezier[color=Red,arrow,double,arrowpos=1](10,10)%
- (75,30)(65,40)(20,50)
-\end{verbatim}
-\end{minipage}\vspace{4mm}
-
-%--#] Bezier :
-%--#[ DoubleBezier :
-Alternative ways of making dashed and/or double B\'ezier curves
-are:\\[3mm]
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(60,60)(-25,0)}
-\AxoGrid(0,0)(10,10)(6,6){LightGray}{0.5}
-\DoubleBezier(10,10)(75,30)(65,40)(20,50){1.5}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{doublebezier}
-\verb:\DoubleBezier(10,10)(75,30)(65,40)(20,50){1.5}: \hfill \\
-Draws a cubic B\'ezier curve based on the four given points.
-The first four arguments are the same as for \verb+\Bezier+.
-The final argument is the line separation.
-\end{minipage}\vspace{4mm}
-
-%--#] DoubleBezier :
-%--#[ DashBezier :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(60,60)(-25,0)}
-\AxoGrid(0,0)(10,10)(6,6){LightGray}{0.5}
-\DashBezier(10,10)(75,30)(65,40)(20,50){4}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{dashbezier}
-\verb:\DashBezier(10,10)(75,30)(65,40)(20,50){4}: \hfill \\
-Draws a cubic B\'ezier curve based on the four given points.
-The first four arguments are the same as for \verb+\Bezier+.
-The final argument is the size of the dashes.
-\end{minipage}\vspace{4mm}
-
-%--#] DashBezier :
-%--#[ DashDoubleBezier :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(60,60)(-25,0)}
-\AxoGrid(0,0)(10,10)(6,6){LightGray}{0.5}
-\DashDoubleBezier(10,10)(75,30)(65,40)(20,50){1.5}{4}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{dashdoublebezier}
-\verb:\DashDoubleBezier(10,10)(75,30)(65,40)(20,50){1.5}{4}:
-Draws a cubic B\'ezier curve based on the four given points.
-The first four arguments are the same as for \verb+\Bezier+.
-The final two arguments are the line separation and the size of the
-dashes.
-\end{minipage}\vspace{4mm}
-
-%--#] DashDoubleBezier :
-%--#[ Curve :
-
-\subsubsection{Curves}
-
-The commands in this section draw curves through an arbitrary sequence
-of points. They only exist in variants for continuous and dashed
-lines. No optional arguments are allowed.
-\vspace{4mm}
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(60,60)(-25,0)}
-\AxoGrid(0,0)(10,10)(6,6){LightGray}{0.5}
-\Curve{(5,55)(10,32.5)(15,23)(20,18)(25,14.65)(30,12.3)(40,9.5)(55,7)}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{curve}
-\verb:\Curve{(5,55)(10,32.5)(15,23)(20,18): \hfill \\
-\verb: (25,14.65)(30,12.3)(40,9.5)(55,7)}: \hfill \\
-Draws a smooth curve through the given points. The $x$ coordinates of the
-points should be in ascending order. The curve is obtained by constructing
-quadratic fits to each triplet of adjacent points and then in each interval
-between two points interpolating between the two relevant parabolas.
-\end{minipage}\vspace{4mm}
-
-%--#] Curve :
-%--#[ DashCurve :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(60,60)(-25,0)}
-\AxoGrid(0,0)(10,10)(6,6){LightGray}{0.5}
-\DashCurve{(5,55)(10,32.5)(15,23)(20,18)(25,14.65)(30,12.3)(40,9.5)(55,7)}{4}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{dashcurve}
-\verb:\DashCurve{(5,55)(10,32.5)(15,23)(20,18): \hfill \\
-\verb: (25,14.65)(30,12.3)(40,9.5)(55,7)}{4}: \hfill \\
-Draws a smooth dashed curve through the given points. The $x$ coordinates of
-the points should be in ascending order. The last argument is the size of
-the dashes.
-\end{minipage}\vspace{4mm}
-
-%--#] DashCurve :
-%--#[ Gluon :
-
-\subsubsection{Gluon lines}
-\label{sec:Gluon}
-
-The basic gluon drawing commands are \verb+\Gluon+, \verb+\GluonArc+,
-\verb+\GluonCirc+. There are also variants for dashed and double
-gluons. But arrows aren't possible.
-
-See Sec.\ \ref{sec:gluon.remarks} for additional information on the
-shape of gluon lines.
-
-All of the commands in this section can be given optional keyword
-arguments, which are defined in Sec.\ \ref{sec:options}. These can be
-used to specify the type of line (dashed, double), and to specify some
-of the line's parameters.
-\vspace{3mm}
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,40)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
-\Gluon(10,20)(80,20){5}{7}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{gluon}
-\verb:\Gluon(10,20)(80,20){5}{7}: \hfill \\
-In this command we have coordinates for the start and end of the line,
-the amplitude of the windings and the number of windings. A negative
-value for the amplitude reverses the orientation of the windings ---
-see Sec.\ \ref{sec:gluon.remarks} for details.
-\end{minipage}
-\\[4mm]
-Optional arguments can be used, e.g., \hfill \\[3mm]
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,40)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
-\Gluon[color=Blue,dash,dashsize=1,double](10,20)(80,20){4}{7}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{gluon.opt}
-\verb:\Gluon[color=Blue,dash,double](10,20)(80,20){4}{7}:
-\end{minipage}
-
-
-\vspace{4mm}
-
-%--#] Gluon :
-%--#[ DoubleGluon :
-\noindent
-Examples of the other commands for various types of gluon line are as
-follows. They can all take optional arguments.
-\\[3mm]
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,40)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
-\DoubleGluon(10,20)(80,20){5}{7}{1.3}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{doublegluon}
-\verb:\DoubleGluon(10,20)(80,20){5}{7}{1.3}:\hfill \\
-The first 6 arguments are as in the \verb+\Gluon+ command. The
-extra argument is the line separation.
-\end{minipage}\vspace{4mm}
-
-%--#] DoubleGluon :
-%--#[ DashGluon :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,40)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
-\DashGluon(10,20)(80,20){5}{7}{1}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{dashgluon}
-\verb:\DashGluon(10,20)(80,20){5}{7}{1}:\hfill \\
-The first 6 arguments are as in the \verb+Gluon+ command. The
-extra argument is the size of the dashes.
-\end{minipage}\vspace{4mm}
-
-%--#] DashGluon :
-%--#[ DashDoubleGluon :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,40)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
-\DashDoubleGluon(10,20)(80,20){5}{7}{1.3}{1}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{dashdoublegluon}
-\verb:\DashDoubleGluon(10,20)(80,20){5}{7}{1.3}{1}:\hfill \\
-The first 7 arguments are as in the \verb+DoubleGluon+
-command.
-The last two arguments are the line
-separation of the double line and the size of the dashes.
-\end{minipage}
-\vspace{8mm}
-
-%--#] DashDoubleGluon :
-%--#[ GluonArc :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,50)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
-\GluonArc(45,0)(40,20,160){5}{8}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{gluonarc}
-\verb:\GluonArc(45,0)(40,20,160){5}{8}:\hfill \\
-In this command we have one coordinate: the center of the circle. Then
-follow the radius of the circle, the start angle and the finishing angle.
-The arc will be drawn counterclockwise. The final two parameters are the
-amplitude of the windings and the number of windings.
-Like the other commands in this section, this command can take
-optional arguments, Sec.\ \ref{sec:options}.
-\end{minipage}
-\vspace{4mm}
-
-%--#] GluonArc :
-%--#[ DoubleGluonArc :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,50)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
- \DoubleGluonArc[color=Red](45,0)(40,20,160)%
- {5}{8}{1.3}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{doublegluonarc}
-\begin{verbatim}
- \DoubleGluonArc[color=Red](45,0)(40,20,160)%
- {5}{8}{1.3}
-\end{verbatim}
-The first 7 arguments are as in the \verb+GluonArc+ command. The extra
-argument is the separation in the double line.
-\end{minipage}\vspace{4mm}
-
-%--#] DoubleGluonArc :
-%--#[ DashGluonArc :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,50)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
-\DashGluonArc(45,0)(40,20,160){5}{8}{1.5}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{dashgluonarc}
-\verb:\DashGluonArc(45,0)(40,20,160){5}{8}{1.5}:\hfill \\
-The first 7 arguments are as in the \verb+GluonArc+ command. The extra
-argument is the size of the dash segments.
-\end{minipage}\vspace{4mm}
-
-%--#] DashGluonArc :
-%--#[ DashDoubleGluonArc :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,50)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
-\DashDoubleGluonArc(45,0)(40,20,160){5}{8}{1.3}{1.5}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{dashdoublegluonarc}
-\verb:\DashDoubleGluonArc(45,0)(40,20,160){5}{8}{1.3}{1.5}:\hfill \\
-The first 7 arguments are as in the \verb+GluonArc+ command. The extra
-arguments are the separation of the lines and the size of the dash
-segments.
-\end{minipage}\vspace{10mm}
-
-%--#] DashDoubleGluonArc :
-%--#[ GluonCirc :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(80,80)(-15,0)}
-\AxoGrid(0,0)(10,10)(8,8){LightGray}{0.5}
-\GluonCirc(40,40)(30,0){5}{16}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{gluoncirc}
-\verb:\GluonCirc(40,40)(30,0){5}{16}:\hfill \\
-The arguments are: Coordinates for the center of the circle, the
-radius and a phase, the
-amplitude of the gluon windings and the number of windings.
-Like the other commands in this section, this command can take
-optional arguments, Sec.\ \ref{sec:options}. The phase argument
-specifies a counterclockwise rotation of the line relative to a
-default starting point.
-\end{minipage}\vspace{4mm}
-
-%--#] GluonCirc :
-%--#[ DoubleGluonCirc :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(80,80)(-15,0)}
-\AxoGrid(0,0)(10,10)(8,8){LightGray}{0.5}
-\DoubleGluonCirc[color=Red](40,40)(30,0){5}{16}{1.3}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{doublegluoncirc}
-\verb:\DoubleGluonCirc[color=Red](40,40)(30,0){5}{16}{1.3}:\hfill \\
-The first 6 arguments are as for the \verb+GluonCirc+ command. The
-final argument is the line separation.
-\end{minipage}\vspace{4mm}
-
-%--#] DoubleGluonCirc :
-%--#[ DashGluonCirc :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(80,80)(-15,0)}
-\AxoGrid(0,0)(10,10)(8,8){LightGray}{0.5}
-\DashGluonCirc(40,40)(30,0){5}{16}{1.5}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{dashgluoncirc}
-\verb:\DashGluonCirc(40,40)(30,0){5}{16}{1.5}:\hfill \\
-The first 6 arguments are as for the \verb+GluonCirc+ command.
-The final argument is the size of the dashes.
-\end{minipage}\vspace{4mm}
-
-%--#] DashGluonCirc :
-%--#[ DashDoubleGluonCirc :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(80,80)(-15,0)}
-\AxoGrid(0,0)(10,10)(8,8){LightGray}{0.5}
-\DashDoubleGluonCirc(40,40)(30,0){5}{16}{1.3}{1.5}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{dashdoublegluoncirc}
-\verb:\DashDoubleGluonCirc(40,40)(30,0){5}{16}{1.3}{1.5}:\hfill \\
-The first 6 arguments are as for the \verb+GluonCirc+ command.
-The final 2 arguments are the line separation and the size of the
-dashes.
-\end{minipage}\vspace{4mm}
-
-%--#] DashDoubleGluonCirc :
-%--#[ Photon :
-
-\subsubsection{Photon lines}
-\label{sec:Photon}
-
-The basic drawing commands for drawing photon lines are \verb+\Photon+
-and \verb+\PhotonArc+. There are also variants for dashed and double
-photons. But arrows aren't possible.
-
-All of the commands in this section can be given optional keyword
-arguments, which are defined in Sec.\ \ref{sec:options}. These can be
-used to specify the type of line (dashed, double), and to specify some
-of the line's parameters.\vspace{3mm}
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,40)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
-\Photon(10,20)(80,20){5}{7}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{photon}
-\verb:\Photon(10,20)(80,20){5}{7}: \hfill \\
-In this command we have two coordinates, the amplitude of the wiggles and
-the number of wiggles.
-A negative value for the amplitude will reverse the orientation of the
-wiggles.
-The line will be drawn with the number of wiggles rounded to the
-nearest half integer.
-Like the other commands in this section, this command can take
-optional arguments, Sec.\ \ref{sec:options}.
-\end{minipage}\vspace{4mm}
-
-%--#] Photon :
-%--#[ DoublePhoton :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,40)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
-\DoublePhoton(10,20)(80,20){5}{7}{1.3}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{doublephoton}
-\verb:\DoublePhoton(10,20)(80,20){5}{7}{1.3}:\hfill \\
-The first 6 arguments are as in the \verb+Photon+ command. The
-extra argument is the line separation.
-\end{minipage}\vspace{4mm}
-
-%--#] DoublePhoton :
-%--#[ DashPhoton :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,40)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
-\DashPhoton[color=Red](10,20)(80,20){5}{7}{1}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{dashphoton}
-\verb:\DashPhoton[color=Red](10,20)(80,20){5}{7}{1}:\hfill \\
-The first 6 arguments are as in the \verb+Photon+ command. The
-extra argument is the size of the dashes.
-\end{minipage}\vspace{4mm}
-
-%--#] DashPhoton :
-%--#[ DashDoublePhoton :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,40)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
-\DashDoublePhoton(10,20)(80,20){5}{7}{1.3}{1}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{dashdoublephoton}
-\verb:\DashDoublePhoton(10,20)(80,20){5}{7}{1.3}{1}:\hfill \\
-The first 6 arguments are as in the \verb+Photon+
-command.
-The final 2 arguments are the line separation and the size of the
-dashes.
-\end{minipage}\vspace{10mm}
-
-%--#] DashDoublePhoton :
-%--#[ PhotonArc :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,50)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
-\PhotonArc(45,0)(40,20,160){5}{8}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{photonarc}
-\verb:\PhotonArc(45,0)(40,20,160){5}{8}:\hfill \\
-In this command we have one coordinate: the center of the circle. Then
-follow the radius of the circle, the start angle and the finishing angle.
-The arc will be drawn counterclockwise. The final two parameters are the
-amplitude of the wiggles and the number of wiggles.
-Like the other commands in this section, this command can take
-optional arguments, Sec.\ \ref{sec:options}.
-\end{minipage}\vspace{4mm}
-
-%--#] PhotonArc :
-%--#[ DoublePhotonArc :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,50)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
-\DoublePhotonArc[color=Red](45,0)(40,20,160)%
- {5}{8}{1.3}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{doublephotonarc}
-\begin{verbatim}
-\DoublePhotonArc[color=Red](45,0)(40,20,160)%
- {5}{8}{1.3}
-\end{verbatim}
-The first 7 arguments are as in the \verb+PhotonArc+ command. The extra
-argument is the separation of the double line.
-\end{minipage}\vspace{4mm}
-
-%--#] DoublePhotonArc :
-%--#[ DashPhotonArc :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,50)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
-\DashPhotonArc(45,0)(40,20,160){5}{8}{1.5}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{dashphotonarc}
-\verb:\DashPhotonArc(45,0)(40,20,160){5}{8}{1.5}:\hfill \\
-The first 7 arguments are as in the \verb+PhotonArc+ command. The
-extra argument is the size of the dash segments.
-\end{minipage}\vspace{4mm}
-
-%--#] DashPhotonArc :
-%--#[ DashDoublePhotonArc :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,50)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
-\DashDoublePhotonArc(45,0)(40,20,160){5}{8}{1.3}{1.5}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{dashdoublephotonarc}
-\verb:\DashDoublePhotonArc(45,0)(40,20,160){5}{8}{1.3}{1.5}:\hfill \\
-The first 7 arguments are as in the \verb+PhotonArc+ command. The
-extra arguments are the separation of the lines and the size of the
-dash segments.
-\end{minipage}\vspace{4mm}
-
-%--#] DashDoublePhotonArc :
-%--#[ ZigZag :
-
-\subsubsection{Zigzag lines}
-
-The basic drawing commands for drawing zigzag lines are \verb+\Zigzag+
-and \verb+\ZigzagArc+. There are also variants for dashed and double
-lines. But arrows aren't possible.
-
-All of the commands in this section can be given optional keyword
-arguments, which are defined in Sec.\ \ref{sec:options}. These can be
-used to specify the type of line (dashed, double), and to specify some
-of the line's parameters.
-\vspace{4mm}
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,40)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
-\ZigZag(10,20)(80,20){5}{7.5}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{zigzag}
-\verb:\ZigZag(10,20)(80,20){5}{7.5}: \hfill \\
-In this command we have two coordinates, the amplitude of the sawteeth and
-the number of sawteeth.
-A negative value for the amplitude will reverse the orientation of the
-sawteeth.
-The line will be drawn with the number of sawteeth rounded to the
-nearest half integer.
-\end{minipage}
-\\[3mm]
-Like the other commands in this section, this command can take
-optional arguments, Sec.\ \ref{sec:options}, e.g.,\\[3mm]
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,40)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
-\ZigZag[color=Red,double,sep=1.5](10,20)(80,20){5}{7}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{zigzag.opt}
-\verb:\ZigZag[color=Red,double,sep=1.5](10,20)(80,20){5}{7}:
-\end{minipage}\vspace{6mm}
-
-%--#] ZigZag :
-%--#[ DoubleZigZag :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,40)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
-\DoubleZigZag(10,20)(80,20){5}{7}{1.3}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{doublezigzag}
-\verb:\DoubleZigZag(10,20)(80,20){5}{7}{1.3}:\hfill \\
-The first 6 arguments are as in the \verb+ZigZag+ command. The
-extra argument is the line separation.
-\end{minipage}\vspace{4mm}
-
-%--#] DoubleZigZag :
-%--#[ DashZigZag :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,40)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
-\DashZigZag(10,20)(80,20){5}{7}{1}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{dashzigzag}
-\verb:\DashZigZag(10,20)(80,20){5}{7}{1}:\hfill \\
-The first 6 arguments are as in the \verb+ZigZag+ command. The
-extra argument is the size of the dashes.
-\end{minipage}\vspace{4mm}
-
-%--#] DashZigZag :
-%--#[ DashDoubleZigZag :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,40)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
-\DashDoubleZigZag(10,20)(80,20){5}{7}{1.3}{1}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{dashdoublezigzag}
-\verb:\DashDoubleZigZag(10,20)(80,20){5}{7}{1.3}{1}:\hfill \\
-The first 6 arguments are as in the \verb+ZigZag+ command.
-The extra arguments are the separation of the lines and the size of
-the dash segments.
-\end{minipage}\vspace{6mm}
-
-%--#] DashDoubleZigZag :
-%--#[ ZigZagArc :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,50)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
-\ZigZagArc(45,0)(40,20,160){5}{8}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{zigzagarc}
-\verb:\ZigZagArc(45,0)(40,20,160){5}{8}:\hfill \\
-In this command we have one coordinate: the center of the circle. Then
-follow the radius of the circle, the start angle and the finishing
-angle. The arc will be drawn counterclockwise. The final two
-arguments are the amplitude of the sawteeth and the number of
-sawteeth. Like the other commands in this section, this command can
-take optional arguments, Sec.\ \ref{sec:options}.
-\end{minipage}\vspace{4mm}
-
-%--#] ZigZagArc :
-%--#[ DoubleZigZagArc :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,50)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
-\DoubleZigZagArc(45,0)(40,20,160){5}{8}{1.3}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{doublezigzagarc}
-\verb:\DoubleZigZagArc(45,0)(40,20,160){5}{8}{1.3}:\hfill \\
-The first 7 arguments are as for the \verb+ZigZagArc+ command. The
-extra argument is the separation in the double line.
-\end{minipage}\vspace{4mm}
-
-%--#] DoubleZigZagArc :
-%--#[ DashZigZagArc :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,50)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
-\DashZigZagArc(45,0)(40,20,160){5}{8}{1.5}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{dashzigzagarc}
-\verb:\DashZigZagArc(45,0)(40,20,160){5}{8}{1.5}:\hfill \\
-The first 7 arguments are as for the \verb+ZigZagArc+ command. The
-extra argument is the size of the dash segments.
-\end{minipage}\vspace{4mm}
-
-%--#] DashZigZagArc :
-%--#[ DashDoubleZigZagArc :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,50)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
-\DashDoubleZigZagArc(45,0)(40,20,160){5}{8}{1.3}{1.5}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{dashdoublezigzagarc}
-\verb:\DashDoubleZigZagArc(45,0)(40,20,160){5}{8}{1.3}{1.5}:\hfill \\
-The first 7 arguments are as for the \verb+ZigZagArc+ command. The
-final 2 arguments are the separation of the lines and the size of the
-dash segments.
-\end{minipage}\vspace{4mm}
-
-%--#] DashDoubleZigZagArc :
-%--#[ Vertex :
-
-\subsubsection{Vertices, circles, ovals; other graphics}
-\label{sec:other.graphics}
-
-The commands in this section are for graphical elements other
-than those that we conceived of as lines in Feynman graphs. Many of
-these have standard uses as components of Feynman graphs\footnote{Of
- course, none of the commands is restricted to its originally
- envisaged use, or to being used to draw Feynman graphs. But
- especially the line-drawing commands have been designed from the
- point-of-view of being suitable for the needs of drawing particular
- elements of Feynman graphs.}. The commands here are mostly shown
-in association with other objects, to indicate some of their
-properties.
-\vspace{4mm}
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(80,50)(-15,0)}
-\AxoGrid(0,0)(10,10)(8,5){LightGray}{0.5}
-\Line(10,10)(70,10)
-\Photon(40,10)(40,40){4}{3}
-\Vertex(40,10){1.5}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{vertex}
-\verb:\Line(10,10)(70,10): \hfill \\
-\verb:\Photon(40,10)(40,40){4}{3}: \hfill \\
-\verb:\Vertex(40,10){1.5}: \hfill \\
-\verb+\Vertex+ gives a vertex, as is often used for connecting lines
-in Feynman graphs. It gives a fat dot. The arguments are coordinates
-(between parentheses) for its center, and the radius of the dot.
-\end{minipage}\vspace{4mm}
-
-%--#] Vertex :
-%--#[ ECirc :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(60,60)(-25,0)}
-\AxoGrid(0,0)(10,10)(6,6){LightGray}{0.5}
-\Red{\Line(0,0)(60,60)}
-\ECirc(30,30){20}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{ecirc}
-\verb:\Red{\Line(0,0)(60,60)}:\\
-\verb:\ECirc(30,30){20}:\\
-\verb+\ECirc+ draws a circle with its center at the specified
-coordinate (first two arguments) and the specified radius (third
-argument). The interior is transparent, so that it does not erase
-previously drawn material.
-If you need a filled circle, use the \verb+\Vertex+ command (to which
-we have defined a synonym \verb+\FCirc+ to match similar commands for
-other shapes).
-\end{minipage}\vspace{4mm}
-
-%--#] ECirc :
-%--#[ BCirc :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(60,60)(-25,0)}
-\AxoGrid(0,0)(10,10)(6,6){LightGray}{0.5}
-\Red{\Line(0,0)(60,60)}
-\BCirc(30,30){20}
-\Blue{\Line(60,0)(0,60)}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{bcirc}
-\verb:\Red{\Line(0,0)(60,60)}:\\
-\verb:\BCirc(30,30){20}:\\
-\verb:\Blue{\Line(60,0)(0,60)}:\\
-\verb+\BCirc+
-draws a circle with the center at the specified coordinate (first two
-arguments) and the specified radius (third argument). The interior is
-white and opaque, so that it erases previously written objects, but not
-subsequently drawn objects.
-\end{minipage}\vspace{4mm}
-
-%--#] BCirc :
-%--#[ GCirc :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(60,60)(-25,0)}
-\AxoGrid(0,0)(10,10)(6,6){LightGray}{0.5}
-\Red{\Line(0,0)(60,60)}
-\GCirc(30,30){20}{0.82}
-\Blue{\Line(60,0)(0,60)}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{gcirc}
-\verb:\Red{\Line(0,0)(60,60)}:\\
-\verb:\GCirc(30,30){20}{0.82}:\\
-\verb:\Blue{\Line(60,0)(0,60)}:\\
-\verb+\GCirc+ draws a circle with the center at the specified
-coordinate (first two arguments) and the specified radius (third
-argument). Previously written contents are overwritten and made gray
-according to the grayscale specified by the fourth argument (0=black,
-1=white).
-\end{minipage}\vspace{4mm}
-
-%--#] GCirc :
-%--#[ CCirc :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(60,60)(-25,0)}
-\AxoGrid(0,0)(10,10)(6,6){LightGray}{0.5}
-\Red{\Line(0,0)(60,60)}
-\CCirc(30,30){20}{Red}{Yellow}
-\Blue{\Line(60,0)(0,60)}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{ccirc}
-\verb:\Red{\Line(0,0)(60,60)}:\\
-\verb:\CCirc(30,30){20}{Red}{Yellow}:\\
-\verb:\Blue{\Line(60,0)(0,60)}:\\
-\verb+\CCirc+ draws a colored circle with the center at the specified
-coordinate (first two arguments) and the specified radius (third
-argument). The fourth argument is the name of the color for the circle
-itself. Its interior is overwritten and colored with the color
-specified by name in the fifth argument.
-\end{minipage}\vspace{4mm}
-
-%--#] CCirc :
-%--#[ Oval :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(80,110)(-15,0)}
-\AxoGrid(0,0)(10,10)(8,11){LightGray}{0.5}
-\Oval(40,80)(20,30)(0)
-\Oval(40,30)(20,30)(30)
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{oval}
-\verb:\Oval(40,80)(20,30)(0):\\
-\verb:\Oval(40,30)(20,30)(30):\\
-\verb:\Oval: draws an oval. The first pair of values is the center of
-the oval. The next pair forms the half-height and the half-width. The
-last argument is a (counterclockwise) rotation angle. The interior is
-transparent, so that it does not erase previously drawn material.
-\end{minipage}\vspace{4mm}
-
-%--#] Oval :
-%--#[ FOval :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(80,60)(-15,0)}
-\AxoGrid(0,0)(10,10)(8,6){LightGray}{0.5}
-\SetColor{Yellow}
-\FOval(40,30)(20,30)(30)
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{foval}
-\verb:\SetColor{Yellow}:\\
-\verb:\FOval(40,80)(20,30)(30):\\
-\verb:\FOval: draws an oval filled with the current color overwriting
-previously written material. Its arguments are the same as for the
-\verb:\Oval: command.
-\end{minipage}\vspace{4mm}
-
-%--#] FOval :
-%--#[ GOval :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(80,60)(-15,0)}
-\AxoGrid(0,0)(10,10)(8,6){LightGray}{0.5}
-\Red{\Line(0,0)(80,60)}
-\GOval(40,30)(20,30)(0){0.6}
-\Blue{\Line(80,0)(0,60)}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{goval}
-\verb:\Red{\Line(0,0)(80,60)}:\\
-\verb:\GOval(40,30)(20,30)(0){0.6}: \\
-\verb:\Blue{\Line(80,0)(0,60)}:\\
-\verb:\GOval: draws an oval with a gray interior.
-The first 5 arguments are the same as for the \verb:\Oval: command.
-The last argument indicates the
-grayscale with which the oval will be filled, overwriting previously
-written contents (0=black, 1=white).
-\end{minipage}\vspace{4mm}
-
-%--#] GOval :
-%--#[ COval :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(80,60)(-15,0)}
-\AxoGrid(0,0)(10,10)(8,6){LightGray}{0.5}
-\SetWidth{1}
-\Green{\Line(0,0)(80,60)}
-\COval(40,30)(20,30)(20){Orange}{Blue}
-\Yellow{\Line(80,0)(0,60)}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{coval}
-\verb:\Green{\Line(0,0)(80,60)}:\\
-\verb:\COval(40,30)(20,30)(20){Orange}{Blue}:\\
-\verb:\Yellow{\Line(80,0)(0,60)}:\\
-\verb:\COval: draws a colored oval.
-The first 5 arguments are the same as for the \verb:\Oval: command.
-The last two arguments are the names of two colors.
-The first is the color of the line that forms the oval and the second is
-the color of the inside.
-\end{minipage}\vspace{4mm}
-
-%--#] COval :
-%--#[ EBox :
-
-Commands for drawing boxes are in two series. For the first set, the
-box's position is specified by the coordinates of its bottom left
-corner and top right corner:\\[4mm]
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(60,50)(-25,0)}
-\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
-\EBox(10,10)(50,40)
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{ebox}
-\verb:\EBox(10,10)(50,40): \hfill \\
-Draws a box. The points specified are the bottom left corner and the top
-right corner.
-The interior is transparent, so that it does not erase previously
-drawn material.
-\end{minipage}\vspace{4mm}
-
-%--#] EBox :
-%--#[ FBox :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(60,50)(-25,0)}
-\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
-\FBox(10,10)(50,40)
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{fbox}
-\verb:\FBox(10,10)(50,40): \hfill \\
-Draws a box filled with the current color overwriting
-previously written material. Its arguments are the same as for the
-\verb:\EBox: command.
-\end{minipage}\vspace{4mm}
-
-%--#] FBox :
-%--#[ BBox :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(60,50)(-25,0)}
-\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
-\BBox(10,10)(50,40)
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{bbox}
-\verb:\BBox(10,10)(50,40): \hfill \\
-Draws a blanked-out box. The points specified are the bottom left corner
-and the top right corner.
-\end{minipage}\vspace{4mm}
-
-%--#] BBox :
-%--#[ GBox :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(60,50)(-25,0)}
-\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
-\GBox(10,10)(50,40){0.9}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{gbox}
-\verb:\GBox(10,10)(50,40){0.9}: \hfill \\
-Draws a box filled with a grayscale given by the fifth argument (black=0,
-white=1). The points specified are the bottom left corner and the top
-right corner.
-\end{minipage}\vspace{4mm}
-
-%--#] GBox :
-%--#[ CBox :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(60,50)(-25,0)}
-\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
-\SetWidth{1.5}
-\CBox(10,10)(50,40){Green}{LightRed}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{cbox}
-\verb:\CBox(10,10)(50,40){Green}{LightRed}: \hfill \\
-Draws a box in the color specified by name in the fifth argument. The
-contents are filled with the color specified by name in the sixth
-argument. The points specified are the bottom left corner and the top
-right corner.
-\end{minipage}\vspace{4mm}
-
-%--#] CBox :
-%--#[ EBoxc :
-
-For the other series of box-drawing commands, the box's position is
-specified by its center, and its width and height. The command names
-end with a ``\texttt{c}'', for ``center'':\\[3mm]
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(60,50)(-25,0)}
-\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
-\EBoxc(30,25)(40,30)
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{eboxc}
-\label{boxc}
-\verb:\EBoxc(30,25)(40,30): \hfill \\
-Draws a box. The first two numbers give the center of the box. The next two
-numbers are the width and the height of the box. Instead of \verb:\EBoxc:
-one may also use \verb:\Boxc:.
-
-There is also the similar command \verb:\FBoxc: that draws a filled box.
-\end{minipage}\vspace{4mm}
-
-%--#] EBoxc :
-%--#[ BBoxc :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(60,50)(-25,0)}
-\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
-\BBoxc(30,25)(40,30)
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{bboxc}
-\verb:\BBoxc(30,25)(40,30): \hfill \\
-Draws a box of which the contents are blanked out. The arguments are
-the same as for the \verb+\EBoxc+ command.
-\end{minipage}\vspace{4mm}
-
-%--#] BBoxc :
-%--#[ GBoxc :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(60,50)(-25,0)}
-\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
-\GBoxc(30,25)(40,30){0.9}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{gboxc}
-\verb:\GBoxc(30,25)(40,30){0.9}: \hfill \\
-Draws a box filled with a grayscale given by the fifth argument (black=0,
-white=1).
-The first 4 arguments are the same as for the \verb+\EBoxc+ command.
-\end{minipage}\vspace{4mm}
-
-%--#] GBoxc :
-%--#[ CBoxc :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(60,50)(-25,0)}
-\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
-\SetWidth{1.5}
-\CBoxc(30,25)(40,30){Brown}{LightBlue}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{cboxc}
-\verb:\CBoxc(30,25)(40,30){Brown}{LightBlue}: \hfill \\
-Draws a box in the color specified by name in the fifth argument. The
-contents are filled with the color specified by name in the sixth
-argument.
-The first 4 arguments are the same as for the \verb+\EBoxc+ command.
-\end{minipage}\vspace{4mm}
-
-%--#] BBoxc :
-%--#] CBoxc :
-%--#[ RotatedBox :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(60,50)(-25,0)}
-\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
-\RotatedBox(30,25)(40,30){30}{Red}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{rotatedbox}
-\verb:\RotatedBox(30,25)(40,30){30}{Red}: \hfill \\
-Draws a rotated box. The first two numbers give the center of the
-box. The next two numbers are the width and the height of the box. The
-fifth argument is the counterclockwise rotation angle and the sixth
-argument is the color of the box. The interior of the box is
-transparent.
-\end{minipage}\vspace{4mm}
-
-%--#] RotatedBox :
-%--#[ FilledRotatedBox :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(60,50)(-25,0)}
-\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
-\FilledRotatedBox(30,25)(40,30){30}{Blue}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{filledrotatedbox}
-\verb:\FilledRotatedBox(30,25)(40,30){30}{Blue}: \hfill \\
-Draws a rotated box.
-The first 4 arguments are the same as for the \verb+\RotatedBox+ command.
-The
-fifth argument is the counterclockwise rotation angle and the sixth
-argument is the color of the inside of the box. If a differently
-colored outline is needed, it should be written with the
-\verb+RotatedBox+ command.
-\end{minipage}\vspace{4mm}
-
-%--#] FilledRotatedBox :
-%--#[ ETri :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(60,50)(-25,0)}
-\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
-\ETri(10,20)(50,10)(40,40)
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{etri}
-\verb:\ETri(10,20)(50,10)(40,40): \hfill \\
-Draws a triangle. The three points specified are the corners of the
-triangle.
-The interior is transparent.
-
-There is also the similar command \verb:\FTri: that draws a filled triangle.
-\end{minipage}\vspace{4mm}
-
-%--#] ETri :
-%--#[ BTri :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(60,50)(-25,0)}
-\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
-\BTri(10,20)(50,10)(40,40)
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{btri}
-\verb:\BTri(10,20)(50,10)(40,40): \hfill \\
-Draws a blanked-out triangle. The three points specified are the corners of
-the triangle.
-\end{minipage}\vspace{4mm}
-
-%--#] BTri :
-%--#[ GTri :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(60,50)(-25,0)}
-\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
-\GTri(10,20)(50,10)(40,40){0.9}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{gtri}
-\verb:\GTri(10,20)(50,10)(40,40){0.9}: \hfill \\
-Draws a triangle of which the content are filled with the grayscale
-specified by the seventh argument (black=0, white=1). The three points
-specified are the corners of the triangle.
-\end{minipage}\vspace{4mm}
-
-%--#] GTri :
-%--#[ CTri :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(60,50)(-25,0)}
-\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
-\SetWidth{1}
-\CTri(10,20)(50,10)(40,40){Red}{Yellow}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{ctri}
-\verb:\CTri(10,20)(50,10)(40,40){Red}{Yellow}: \hfill \\
-Draws a triangle in the color named in the seventh argument. The
-contents are filled with the color named in the eightth argument. The
-three points specified are the corners of the triangle.
-\end{minipage}\vspace{4mm}
-
-%--#] CTri :
-%--#[ Polygon :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(60,50)(-25,0)}
-\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
-\Polygon{(10,20)(20,10)(40,20)(50,10)(45,40)(15,30)}{Red}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{polygon}
-\verb:\Polygon{(10,20)(20,10)(40,20)(50,10): \hfill \\
- \verb: (45,40)(15,30)}{Red}: \hfill \\
-Draws a polygon. The first argument is a sequence of two dimensional
-points which form the corners of the polygon. The second argument is
-the name of the color of the polygon. The interior is transparent.
-\end{minipage}\vspace{4mm}
-
-%--#] Polygon :
-%--#[ FilledPolygon :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(60,50)(-25,0)}
-\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
-\FilledPolygon{(10,20)(20,10)(40,20)(50,10)(45,40)(15,30)}{Apricot}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{filledpolygon}
-\verb:\FilledPolygon{(10,20)(20,10)(40,20)(50,10): \hfill \\
- \verb: (45,40)(15,30)}{Apricot}: \hfill \\
-Draws a polygon. The first argument is a sequence of two dimensional
-points which form the corners of the polygon. The second argument is
-the name of the color of the interior.
-\end{minipage}\vspace{4mm}
-
-%--#] FilledPolygon :
-%--#[ LinAxis :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(100,50)(-5,0)}
-\AxoGrid(0,0)(10,10)(10,5){LightGray}{0.5}
-\LinAxis(10,30)(90,30)(4,5,5,0,1)
-\LinAxis(10,10)(90,10)(4,5,5,2,1)
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{linaxis}
-\verb:\LinAxis(10,30)(90,30)(4,5,5,0,1):\\
-\verb:\LinAxis(10,10)(100,10)(4,5,5,2,1): \\
-\verb+\LinAxis+($x_1$,$y_1$)($x_2$,$y_2$)($N_D$,$d$,hashsize,offset,width) \hfill \\
- This draws a line to be used as an axis in a graph. Along the axis
- are hash marks. Going from the first coordinate to the second, the
- hash marks are on the left side if `hashsize', which is the size of the
- hash marks, is positive and on the right side if it is negative.
- $N_D$ is the number of `decades', indicated by fat hash marks, and
- $d$ is the (integer) number of subdivisions inside each decade. The offset
- parameter tells to which subdivision the first coordinate
- corresponds. When it is zero, this coordinate corresponds to a fat
- mark of a decade. Because axes have their own width, this is
- indicated with the last parameter.
-
- When arguments are outside the natural range, which is a positive
- integer for the number of subdivisions $d$, and a real value
- between 0 and $N_D$ for the offset, corrected values are used as
- follows: For $d$, it is first rounded to the nearest integer, and
- if it is zero or less, $d$ is replaced by 1. The offset is used
- modulo the number of subdivisions.
-
-\end{minipage}\vspace{4mm}
-
-%--#] LinAxis :
-%--#[ LogAxis :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(100,40)(-5,0)}
-\AxoGrid(0,0)(10,10)(10,4){LightGray}{0.5}
-\LogAxis(0,30)(100,30)(4,3,0,1)
-\LogAxis(0,10)(100,10)(4,3,3,1)
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{logaxis}
-\verb:\LogAxis(0,30)(100,30)(4,3,0,1): \hfill \\
-\verb:\LogAxis(0,10)(100,10)(4,3,3,1): \hfill \\
-\verb+\LogAxis+($x_1$,$y_1$)($x_2$,$y_2$)($N_L$,hashsize,offset,width) \hfill \\
- This draws a line to be used as a logarithmic axis in a graph. Along
- the axis are hash marks. Going from the first coordinate to the second,
- the hash marks are on the left side if `hashsize', which is the size of
- the hash marks, is positive and on the right side if it is negative.
- $N_L$ is the number of orders of magnitude, indicated by fat hash
- marks. The offset parameter tells to which subdivision the
- first coordinate corresponds. When it is zero, this coordinate
- corresponds to a fat mark, which is identical to when the value would
- have been 1. Because axes have their own width, this is indicated with
- the last parameter.
-
- When the offset is outside its natural range, which is a real
- value between 1 and 10, a corrected value is used as
- follows: If the offset is zero or less, it is replaced by 1. Then
- it is multiplied by an integer power of 10 to bring it into the
- range 1 to 10 (or equivalently, the offset's logarithm to base 10
- is used modulo 1).
-
-\end{minipage}\vspace{4mm}
-
-%--#] LogAxis :
-%>>#] The Commands :
-%>>#[ Text :
-
-\subsection{Text}
-\label{sec:text}
-
-%--#[ Implementation :
-
-Axodraw2 provides several commands for inserting text into diagrams.
-Some are for plain text, with a chosen placement and angle. Some
-allow placement of text inside boxes. There are two sets of commands.
-Some we call \TeX-text commands; these use the standard \LaTeX{} fonts
-as used in the rest of the document. The others we call
-postscript-text commands; these use a user-specified standard
-postscript font or, if the user wishes, the usual document font, at a
-user-chosen size.
-
-[\emph{Side issue:} In version 1 of axodraw, the difference between
-the classes of text command was caused by a serious implementation
-difficulty. With the then-available \LaTeX{} technology, certain
-graphic effects, could not be achieved within \LaTeX, at least not
-easily. So direct programming in postscript was resorted to, with the
-result that normal \LaTeX{} commands, including mathematics, were not
-available in the postscript-text commands. With the greatly improved
-methods now available, this has all changed, and the restrictions have
-gone. But since the commands and their basic behavior is already
-defined, we have retained the distinction between \TeX{}-text commands
-and postscript-text commands.]
-
-In the original version of Axodraw the commands for two lines inside a
-box were \verb:B2Text:, \verb:G2Text: and \verb:C2Text:. This causes
-some problems explained in Sec.\ \ref{sec:changes.wrt.1}. If you need to
-retain compatibility with v.\ 1 on this issue, e.g., with old files or
-old diagrams or for personal preference, you can use the
-\texttt{v1compatible} option when loading axodraw2 --- see Sec.\
-\ref{sec:invoke}.
-
-\vspace{4mm}
-
-%--#] Implementation :
-%--#[ Text :
-
-\subsubsection{\TeX-type text}
-
-Illustrated by examples, the commands to insert text are as follows:
-
-\medskip
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,90)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,9){LightGray}{0.5}
-\Text(10,10)[l]{left}
-\Text(45,45){centered}
-\Text(80,80)[rt]{right-top}
-\Text(20,60)(45){$e^{i\pi/4}$}
-\SetColor{Red}
-\Vertex(10,10){1.5}
-\Vertex(45,45){1.5}
-\Vertex(80,80){1.5}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{text}
-\verb:\Text(10,10)[l]{left}: \hfill \\
-\verb:\Text(45,45){centered}: \hfill \\
-\verb:\Text(80,80)[rt]{right-top}: \hfill \\
-\verb:\Text(20,60)(45){$e^{i\pi/4}$}: \hfill \\
-\verb:\SetColor{Red}: \hfill \\
-\verb:\Vertex(10,10){1.5}: \hfill \\
-\verb:\Vertex(45,45){1.5}: \hfill \\
-\verb:\Vertex(80,80){1.5}: \hfill \\
-\verb+\Text+ writes text in the current \LaTeX{} font. The most
-general form is \verb+\Text(x,y)(theta)[pos]{text}+; but either or
-both of the theta and pos arguments (and their delimiters) can be omitted.
-It puts the text
-at focal point $(x,y)$, with a rotation by anticlockwise angle theta.
-The default angle is zero, and the default position is to
-center the text horizontally and vertically at the focal point. The
-position letters are any relevant combination of `l', `r', `t', and
-`b', as in the various
-\TeX/\LaTeX{} box commands to indicate left, right, top or bottom
-adjustment with respect to the focal point. No indication means
-centered.
-\end{minipage}\vspace{4mm}
-
-%--#] Text :
-%--#[ rText :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,90)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,9){LightGray}{0.5}
-\rText(10,10)[l][l]{left-left}
-\rText(45,45)[][u]{upside}
-\rText(80,10)[r][r]{right-right}
-\rText(20,60)[][r]{$e^{i\pi}$}
-\SetColor{Red}
-\Vertex(10,10){1.5}
-\Vertex(45,45){1.5}
-\Vertex(80,10){1.5}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{rtext}
-\verb:\rText(10,10)[l][l]{left-left}: \hfill \\
-\verb:\rText(45,45)[][u]{upside}: \hfill \\
-\verb:\rText(80,10)[r][r]{right-right}: \hfill \\
-\verb:\rText(20,60)[][r]{$e^{i\pi}$}: \hfill \\
-\verb:\SetColor{Red}: \hfill \\
-\verb:\Vertex(10,10){1.5}: \hfill \\
-\verb:\Vertex(45,45){1.5}: \hfill \\
-\verb:\Vertex(80,10){1.5}: \hfill \\
-The \verb:\rText: command gives a subset of the functionality of the
-\verb+\Text+ command. It is used for backward compatibility with
-Axodraw v.\ 1. The general form of the command is
-\verb:\rText(x,y)[mode][rotation]{text}:.
-Unlike the case with the \verb:\Text: command and typical standard
-\LaTeX{} commands, if the option letters are omitted, the square
-brackets must be retained.
-The coordinates $(x,y)$ are
-the focal point of the text. The third argument is \verb+l+,
-\verb+r+, or empty to indicate the justification of the text. The
-fourth argument is \verb+l+, \verb+r+, \verb+u+, or empty to indicate
-respectively whether the text is rotated left (anticlockwise) by 90
-degrees, is rotated right (clockwise) by 90 degrees, is upside-down,
-or is not rotated. The fifth argument is the text.
-This command is retained only for backward compatibility;
-for new diagrams it is probably better to use the the \verb:\Text:.
-\end{minipage}\vspace{4mm}
-
-%--#] rText :
-%--#[ SetPFont :
-
-\subsubsection{Postscript-type text}
-\label{sec:PSText}
-
-The remaining text-drawing commands can use postscript fonts with an
-adjustable size.
-
-To set the font for later text-drawing commands in this class, the
-\verb:\SetPFont: command sets the `Postscript'
-font, e.g.,
-\begin{verbatim}
- \SetPFont{Helvetica}{20}
-\end{verbatim}
-(This font is initialized by axodraw2 to Times-Roman at 10pt.)
-The font set in this way is used in the \verb:PText:, \verb:BText:,
-\verb:GText:, \verb:CText:, \verb:BTwoText:, \verb:GTwoText: and
-\verb:CTwoText: commands. The fonts that can be used are the 35 fonts
-that are made available by Adobe and that are normally available in
-all postscript interpreters, including printers. The fonts, together
-with the names used to specify them in the normal font-setting
-commands of \TeX{} and \LaTeX{}, are shown in Table \ref{tab:Pfont}.
-
-\begin{table}
-\begin{tabular}{|l|l|l|l|}
-\hline
-Font name & \LaTeX{} & Font name & \LaTeX{} \\
-\hline
-AvantGarde-Book & pagk & Helvetica-Narrow & phvrrn\\
-AvantGarde-BookOblique & pagko & Helvetica-NarrowOblique & phvron\\
-AvantGarde-Demi & pagd & NewCenturySchlbk-Bold & pncb \\
-AvantGarde-DemiOblique & pagdo & NewCenturySchlbk-BoldItalic & pncbi \\
-Bookman-Demi & pbkd & NewCenturySchlbk-Italic & pncri \\
-Bookman-DemiItalic & pbkdi & NewCenturySchlbk-Roman & pncr \\
-Bookman-Light & pbkl & Palatino-Bold & pplb \\
-Bookman-LightItalic & pbkli & Palatino-BoldItalic & pplbi \\
-Courier-Bold & pcrb & Palatino-Italic & pplri \\
-Courier-BoldOblique & pcrbo & Palatino-Roman & pplr \\
-Courier & pcrr & Symbol & psyr \\
-Courier-Oblique & pcrro & Times-Bold & ptmb \\
-Helvetica-Bold & phvb & Times-BoldItalic & ptmbi \\
-Helvetica-BoldOblique & phvbo & Times-Italic & ptmri \\
-Helvetica-NarrowBold & phvbrn& Times-Roman & ptmr \\
-Helvetica-NarrowBoldOblique & phvbon& ZapfChancery-MediumItalic & pzcmi \\
-Helvetica & phvr & ZapfDingbats & pzdr \\
-Helvetica-Oblique & phvro & & \\
-\hline
-\end{tabular}
-\caption{Available postscript fonts and their corresponding names in
- \LaTeX.}
-\label{tab:Pfont}
-\end{table}
-If you prefer to use the normal document font (which would normally be
-Computer Modern in the common document classes), you simply leave the
-fontname empty, e.g,.
-\begin{verbatim}
- \SetPFont{}{20}
-\end{verbatim}
-As for the second, fontsize argument, leaving it empty uses the size
-that \LaTeX{} is using at the moment the text-drawing command starts,
-e.g.,
-\begin{verbatim}
- \SetPFont{Helvetica-Bold}{}
-\end{verbatim}
-\vspace{3mm}
-
-%--#] SetPFont :
-%--#[ PText :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,90)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,9){LightGray}{0.5}
-\SetPFont{Helvetica}{13}
-\PText(10,10)(0)[l]{left}
-\PText(45,45)(30)[]{centered}
-\PText(80,80)(20)[rt]{right-top}
-%\PText(20,60)(140)[]{$e^{i\pi}$}
-\SetColor{Red}
-\Vertex(10,10){1.5}
-\Vertex(45,45){1.5}
-\Vertex(80,80){1.5}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{ptext}
-\verb:\SetPFont{Helvetica}{13}: \hfill \\
-\verb:\PText(10,10)(0)[l]{left}: \hfill \\
-\verb:\PText(45,45)(30)[]{centered}: \hfill \\
-\verb:\PText(80,80)(20)[rt]{right-top}: \hfill \\
-%\verb:\PText(20,60)(90)[]{$e^{i\pi}$}: \hfill \\
-\verb:\SetColor{Red}: \hfill \\
-\verb:\Vertex(10,10){1.5}: \hfill \\
-\verb:\Vertex(45,45){1.5}: \hfill \\
-\verb:\Vertex(80,80){1.5}: \hfill \\
-The \verb:\PText: command writes %text
-in Axodraw's current Postscript font.
-The first two arguments give the focal point, the third argument is a
-rotation angle and the fourth argument is as in the various \TeX/\LaTeX{}
-box commands to indicate left, right, top or bottom adjustment with respect
-to the focal point. No indication means centered.
-
-Note that use of normal \LaTeX{} font setting commands or of math-mode
-will not normally have the desired effect.
-\end{minipage}\vspace{4mm}
-
-%--#] PText :
-%--#[ BText :
-
-\noindent
-\begin{minipage}{4.53cm}
-\begin{axopicture}{(110,110)(-10,0)}
-\AxoGrid(0,0)(10,10)(10,9){LightGray}{0.5}
-\ArrowLine(30,65)(60,25)
-\SetPFont{Bookman-Demi}{14}
-\BText(30,65){Who?}
-\SetPFont{AvantGarde-Book}{16}
-\BText(60,25){Me?}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{10.8cm}
-\label{btext}
-\verb:\ArrowLine(30,65)(60,25): \hfill \\
-\verb:\SetPFont{Bookman-Demi}{14}: \hfill \\
-\verb:\BText(30,65){Who?}: \hfill \\
-\verb:\SetPFont{AvantGarde-Book}{16}: \hfill \\
-\verb:\BText(60,25){Me?}: \hfill \\
-The \verb:\BText: command writes a centered box with text in it. It uses
-Axodraw's current Postscript font.
-\end{minipage}\vspace{4mm}
-
-%--#] BText :
-%--#[ GText :
-
-\noindent
-\begin{minipage}{4.53cm}
-\begin{axopicture}{(110,110)(-10,0)}
-\AxoGrid(0,0)(10,10)(10,9){LightGray}{0.5}
-\ArrowLine(30,65)(60,25)
-\SetPFont{Bookman-Demi}{12}
-\GText(30,65){0.9}{Why?}
-\SetPFont{Courier-Bold}{5}
-\GText(60,25){0.75}{We wanted it that way!}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{10.8cm}
-\label{gtext}
-\verb:\ArrowLine(30,65)(60,25): \hfill \\
-\verb:\SetPFont{Bookman-Demi}{12}: \hfill \\
-\verb:\GText(30,65){0.9}{Why?}: \hfill \\
-\verb:\SetPFont{Courier-Bold}{5}: \hfill \\
-\verb:\GText(60,25){0.75}{We wanted it that way!}: \hfill \\
-The \verb:\GText: command writes a centered box with text in it. It uses
-Axodraw's current Postscript font. The third argument is the grayscale
-with which
-the box will be filled. 0 is black and 1 is white.
-\end{minipage}\vspace{4mm}
-
-%--#] GText :
-%--#[ CText :
-
-\noindent
-\begin{minipage}{4.53cm}
-\begin{axopicture}{(110,110)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,9){LightGray}{0.5}
-\ArrowLine(30,65)(60,25)
-\SetPFont{Times-Bold}{15}
-\CText(30,65){LightYellow}{LightBlue}{Who?}
-\SetPFont{Courier-Bold}{14}
-\CText(60,25){Red}{Yellow}{You!}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{10.8cm}
-\label{ctext}
-\verb:\ArrowLine(30,65)(60,25): \hfill \\
-\verb:\SetPFont{Times-Bold}{15}: \hfill \\
-\verb:\CText(30,65){LightYellow}{LightBlue}{Who?}: \hfill \\
-\verb:\SetPFont{Courier-Bold}{14}: \hfill \\
-\verb:\CText(60,25){Red}{Yellow}{You!}: \hfill \\
-The \verb:\CText: command writes a centered box with text in it. It uses
-Axodraw's current Postscript font. The third argument is the color of
-the box and
-the text. The fourth argument is the color with which the box will be
-filled.
-\end{minipage}\vspace{4mm}
-
-%--#] CText :
-%--#[ BTwoText :
-\noindent
-\begin{minipage}{4.53cm}
-\begin{axopicture}{(110,110)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,9){LightGray}{0.5}
-\ArrowLine(30,65)(60,25)
-\SetPFont{Bookman-Demi}{14}
-\BTwoText(30,65){Why}{Me?}
-\SetPFont{AvantGarde-Book}{16}
-\BTwoText(60,25){You}{did it}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{10.8cm}
-\label{btwotext}
-\verb:\ArrowLine(30,65)(60,25): \hfill \\
-\verb:\SetPFont{Bookman-Demi}{14}: \hfill \\
-\verb:\BTwoText(30,65){Why}{Me?}: \hfill \\
-\verb:\SetPFont{AvantGarde-Book}{16}: \hfill \\
-\verb:\BTwoText(60,25){You}{did it}: \hfill \\
-The \verb:\BTwoText: command writes a centered box with two lines of text in
-it. It uses Axodraw's current Postscript font.
-\end{minipage}\vspace{4mm}
-
-%--#] BTwoText :
-%--#[ GTwoText :
-
-\noindent
-\begin{minipage}{4.53cm}
-\begin{axopicture}{(110,110)(-10,0)}
-\AxoGrid(0,0)(10,10)(10,9){LightGray}{0.5}
-\ArrowLine(30,65)(60,25)
-\SetPFont{Bookman-Demi}{12}
-\GTwoText(30,65){0.9}{Prove}{it!}
-\SetPFont{Courier-Bold}{11}
-\GTwoText(60,25){0.75}{Sherlock}{says so}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{10.8cm}
-\label{gtwotext}
-\verb:\ArrowLine(30,65)(60,25): \hfill \\
-\verb:\SetPFont{Bookman-Demi}{12}: \hfill \\
-\verb:\GTwoText(30,65){0.9}{Prove}{it!}: \hfill \\
-\verb:\SetPFont{Courier-Bold}{11}: \hfill \\
-\verb:\GTwoText(60,25){0.75}{Sherlock}{says so}: \hfill \\
-The \verb:\GTwoText: command writes a centered box with two lines of text in
-it. It uses Axodraw's current Postscript font. The third argument is the
-grayscale with which the box will be filled. 0 is black and 1 is white.
-\end{minipage}\vspace{4mm}
-
-%--#] GTwoText :
-%--#[ CTwoText :
-
-\noindent
-\begin{minipage}{4.53cm}
-\begin{axopicture}{(110,110)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,9){LightGray}{0.5}
-\ArrowLine(30,65)(60,25)
-\SetPFont{Times-Bold}{10}
-\CTwoText(30,65){LightYellow}{Blue}{That is}{no proof!}
-\SetPFont{Courier-Bold}{14}
-\CTwoText(60,25){Red}{Yellow}{Yes}{it is}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{10.8cm}
-\label{ctwotext}
-\verb:\ArrowLine(30,65)(60,25): \hfill \\
-\verb:\SetPFont{Times-Bold}{10}: \hfill \\
-\verb:\CTwoText(30,65){LightYellow}{Blue}: \\
- \verb:{That is}{no proof!}: \hfill \\
-\verb:\SetPFont{Courier-Bold}{14}: \hfill \\
-\verb:\CTwoText(60,25){Red}{Yellow}{Yes}{it is}: \hfill \\
-The \verb:\CTwoText: command writes a centered box with two lines of text in
-it. It uses Axodraw's current Postscript font. The third argument is
-the color of both
-the box and the text. The fourth argument is the color with which the box
-will be filled.
-\end{minipage}\vspace{4mm}
-
-%--#] CTwoText :
-%--#[ Features :
-
-Note that because you can now use \LaTeX{} commands for the text
-arguments of the commands described in this section, the effects of
-the \verb+\BTwoText+, \verb+\GTwoText+, and \verb+\CTwoText+ can be
-achieved also by the use of regular \verb:\BText: etc commands.
-Mathematics can also be used. (None of these was possible in v.\ 1 of
-axodraw.) Here are some examples: \vspace{4mm}
-
-\noindent
-\begin{minipage}{5.5cm}
-\begin{axopicture}{(150,90)(-10,0)}
-\AxoGrid(0,0)(10,10)(12,9){LightGray}{0.5}
-\SetPFont{Helvetica}{15}
-\BText(60,45){%
- \begin{minipage}{4.5cm}
- Here is boxed text in a larger size, including
- mathematics: $\alpha^2$.
- \end{minipage}%
-}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{8.5cm}
-\label{btext2}
-\begin{verbatim}
-\SetPFont{Helvetica}{15}
-\BText(70,45){%
- \begin{minipage}{4.5cm}
- Here is boxed text in a
- larger size, including
- mathematics: $\alpha^2$.
- \end{minipage}%
-}
-\end{verbatim}
-This example shows that the \verb:\BText: command can also be used
-with minipages and other \LaTeX{} methods to make more complicated
-boxed texts.
-\end{minipage}
-\vspace{4mm}
-
-\noindent
-\begin{minipage}{5.5cm}
-\begin{axopicture}{(150,90)(-10,0)}
-\AxoGrid(0,0)(10,10)(13,9){LightGray}{0.5}
-\SetPFont{}{15}
-\BText(65,45){%
- \begin{minipage}{4cm}
- \sffamily Here is boxed text in a
- large size, including
- mathematics: $\alpha^2$.
- \end{minipage}%
-}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{8.5cm}
-\label{btext2.mod}
-\begin{verbatim}
-\SetPFont{}{15}
-\BText(65,45){%
- \begin{minipage}{4cm}
- \sffamily Here is boxed text in a
- large size, including
- mathematics: $\alpha^2$.
- \end{minipage}%
-}
-\end{verbatim}
-But if you use mathematics, the text may be more elegant if you use
-the document font, which has matching fonts for text and mathematics.
-Use of a sans-serif font (by \verb:\sffamily:) may be better in a diagram.
-\end{minipage}
-\vspace{4mm}
-
-%--#] Features :
-%>>#] Text :
-%>>#[ Options :
-
-\subsection{Options}
-\label{sec:options}
-
-Almost all of axodraw2's line-drawing commands take optional
-arguments. The form here is familiar from many standard \LaTeX{}
-commands. The optional arguments are placed in square brackets after
-the command name, and are made of a comma-separated list of items of
-the form: \texttt{keyword} or \texttt{keyword=value}. The required
-arguments are placed afterwards.
-
-Optional arguments can be used to set particular characteristics of a
-line, e.g., whether it is dashed or has an arrow. They can also be
-used to set some of the line's parameters, to be used instead of
-default values. (The default values can be adjusted by commands
-listed in Sec.\ \ref{sec:settings}. Those commands are useful for
-adjusting parameters that apply to multiple lines, while the optional
-arguments are useful for setting parameters for individual lines.)
-
-The original axodraw only had different command names to determine
-whether lines were dashed, or had arrows, etc. The new version
-retains these commands,
-but now the basic commands
-(\verb:\Line:, \verb:\Arc:, \verb:\Gluon:, etc) can also be treated as
-generic commands, with the different varieties (dashed, double, and/or
-with an arrow) being set by options.
-
-The same set of options are available for all types of line. However,
-not all apply or are implemented for particular types of line. Thus,
-\texttt{clockwise} is irrelevant for a straight line, while
-\texttt{arrow} is not implemented for gluons, photons and zigzag
-lines. Warnings are given for unimplemented features, while
-inapplicable arguments are ignored.
-
-The full set of options.
-\begin{center}
-\begin{tabular}{ll}
- color=\colorname & Set the line in this color. \\
- colour=\colorname & Same as color=\colorname. \\
- dash & Use a dashed line. \\
- dsize=\num & Set the dash size (when a line is dashed). \\
- dashsize=\num & Same as dsize=\num. \\
- double & Use a double line. \\
- sep=\num & Sets the separation for a double line. \\
- linesep=\num & Same as sep=\num. \\
- width=\num & Sets line width for this line only.\\[2mm]
- clock & For arcs, makes the arc run clockwise. \\
- clockwise & For arcs, makes the arc run clockwise. \\[2mm]
- arrow & Use an arrow.\\
- flip & If there is an arrow, its direction is flipped. \\
-
- arrowpos=\num & The number should be between zero and one and\\
- & indicates where along the line the arrow should be. \\
- & 1 is at the end. 0.5 is halfway (the initial default).\\
- arrowaspect=\num & See Sec.\ \ref{sec:arrows}. \\
- arrowlength=\num & See Sec.\ \ref{sec:arrows}. \\
- arrowheight=\num & See Sec.\ \ref{sec:arrows}. \\
- arrowinset=\num & See Sec.\ \ref{sec:arrows}. \\
- arrowscale=\num & See Sec.\ \ref{sec:arrows}. \\
- arrowstroke=\num & See Sec.\ \ref{sec:arrows}. \\
- arrowwidth=\num & See Sec.\ \ref{sec:arrows}. \\
- inset=\num & Same as arrowinset.\\
-\end{tabular}
-\end{center}
-The options without an extra argument, e.g., \texttt{arrow}, are
-actually of a boolean type. That is, they can also be used with a
-suffix ``\texttt{=true}'' or ``\texttt{=false}'', e.g.,
-\texttt{arrow=true} or \texttt{arrow=false}.
-
-If an option is not provided, its default value is used. Defaults are
-no dashes, no double lines, anticlockwise arcs, no arrow and if an
-arrow is asked for, its position is halfway along the line. Other
-arrow settings are explained in Sec.\ \ref{sec:arrows}. There are
-also default values for dash size (3) and the separation of double
-lines (2).
-
-The full set of the generic line commands with their syntax is
-\begin{center}
- \begin{tabular}{l}
- \verb+\Line[options](x1,y1)(x2,y2)+ \\
- \verb+\Arc[options](x,y)(r,theta1,theta2)+ \\
- \verb+\Bezier[options](x1,y1)(x2,y2)(x3,y3)(x4,y4)+ \\
- \verb+\Gluon[options](x1,y1)(x2,y2){amplitude}{windings}+ \\
- \verb+\GluonArc[options](x,y)(r,theta1,theta2){amplitude}{windings}+ \\
- \verb+\GluonCirc[options](x,y)(r,phase){amplitude}{windings}+ \\
- \verb+\Photon[options](x1,y1)(x2,y2){amplitude}{windings}+ \\
- \verb+\PhotonArc[options](x,y)(r,theta1,theta2){amplitude}{windings}+ \\
- \verb+\ZigZag[options](x1,y1)(x2,y2){amplitude}{windings}+ \\
- \verb+\ZigZagArc[options](x,y)(r,theta1,theta2){amplitude}{windings}+ \\
- \end{tabular}
-\end{center}
-The applicability of the options is as follows
-\begin{center}
- \begin{tabular}{lcc}
- & Arrow, etc & Clockwise \\
- \verb+\Line+ & Y & N \\
- \verb+\Arc+ & Y & Y \\
- \verb+\Bezier+ & Y & N \\
- \verb+\Gluon+ & N & N \\
- \verb+\GluonArc+ & N & Y \\
- \verb+\GluonCirc+ & N & N \\
- \verb+\Photon+ & N & N \\
- \verb+\PhotonArc+ & N & Y \\
- \verb+\ZigZag+ & N & N \\
- \verb+\ZigZagArc+ & N & Y \\
- \end{tabular}
-\end{center}
-The arrow options include those for setting the arrow dimensions.
-Options not indicated in the last table apply to all cases.
-
-%{\sc The next options still have to be implemented, but it seems the most
-%sensible thing to do.}\vspace{3mm}
-%
-%The third family is the one of the shapes:
-%
-%\begin{center}
-%\begin{minipage}{14cm}
-%\begin{verbatim}
-%\Box[options](x1,y1)(x2,y2)
-%\Tri[options](x1,y1)(x2,y2)(x3,y3)
-%\Polygon[options]{(x1,y1)(x2,y2)...(xn,yn)}
-%\Circ[options](x1,y1){radius}
-%\Oval[options](x1,y1)(height,width)(rotation)
-%\end{verbatim}
-%\end{minipage}
-%\end{center}
-%
-%\noindent The options here are:
-%\begin{center}
-%\begin{tabular}{ll}
-% centered & For boxes: x1,y1 is the center. x2,y2 is width,
-% height \\
-% blanked & Inside is blanked out. \\
-% inside & (Over)write only the inside. \\
-% color,line=$<$color$>$ & Main color. \\
-% filled,fill=$<$color$>$ & When both the outline and the inside are written. \\
-% gray,grayscale=\num & Inside is in gray. Filled overwrites this. \\
-% rotation=\num & Only for centered boxes: rotation angle.
-%\end{tabular}
-%\end{center}
-%The options gray and filled imply blanked. Hence it is not needed to use
-%blanked when either of those options is used. The default values are that
-%none of these options are used.
-
-Some examples are:
-\begin{verbatim}
- \Line[double,sep=1.5,dash,dsize=4](10,10)(70,30)
- \Line[double,sep=1.5,arrow,arrowpos=0.6](10,10)(70,30)
-\end{verbatim}
-
-The options can also be used on the more explicit commands as extra
-options. Hence it is possible to use
-\begin{verbatim}
- \DoubleLine[dash,dsize=4](10,10)(70,30){1.5}
-\end{verbatim}
-instead of the first line in the previous example.
-
-One may notice that some of the options are not accessible with the more
-explicit commands. For example, it is possible to put arrows on B\'ezier
-curves only by using the option `arrow' for the B\'ezier command.
-
-%>>#] Options :
-%>>#[ Remarks about Gluons :
-%
-\subsection{Remarks about Gluons}
-\label{sec:gluon.remarks}
-
-There are 12 commands that concern gluons. This allows much freedom in
-developing one's own style. Gluons can be drawn as single solid lines, as
-double lines, as dashed lines and as dashed double lines.
-
-Gluons have an amplitude and a number of windings. By varying these
-quantities one may obtain completely different gluons as in:
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,90)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,8){LightGray}{0.5}
-\Gluon(10,70)(80,70){3}{5}
-\Gluon(10,50)(80,50){3}{9}
-\Gluon(10,30)(80,30){5}{7}
-\Gluon(10,10)(80,10){8}{9}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{gluons}
-\verb:\Gluon(10,70)(80,70){3}{5}: \hfill \\
-\verb:\Gluon(10,50)(80,50){3}{9}: \hfill \\
-\verb:\Gluon(10,30)(80,30){5}{7}: \hfill \\
-\verb:\Gluon(10,10)(80,10){8}{9}:
-\end{minipage}\vspace{4mm}
-
-One may change the orientation of the windings by reversing the
-direction in which the gluon is drawn and/or changing the sign of the
-amplitude:
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,90)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,8){LightGray}{0.5}
-\DoubleGluon(10,70)(80,70){5}{7}{1.2}
-\DoubleGluon(80,50)(10,50){5}{7}{1.2}
-\DoubleGluon(10,30)(80,30){-5}{7}{1.2}
-\DoubleGluon(80,10)(10,10){-5}{7}{1.2}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{gluonss}
-\verb:\DoubleGluon(10,70)(80,70){5}{7}{1.2}: \hfill \\
-\verb:\DoubleGluon(80,50)(10,50){5}{7}{1.2}: \hfill \\
-\verb:\DoubleGluon(10,30)(80,30){-5}{7}{1.2}: \hfill \\
-\verb:\DoubleGluon(80,10)(10,10){-5}{7}{1.2}:
-\end{minipage}\vspace{4mm}
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,70)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,7){LightGray}{0.5}
-\GluonArc(45,20)(40,20,160){5}{8}
-\GluonArc(45,0)(40,20,160){-5}{8}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{gluonarcA}
-\verb:\GluonArc(45,20)(40,20,160){5}{8}:\hfill \\
-\verb:\GluonArc(45,0)(40,20,160){-5}{8}:\hfill \\
-Here one can see that the sign of the amplitude gives a completely
-different aspect to a gluon on an arc segment.
-\end{minipage}\vspace{4mm}
-
-There are two ways of drawing a gluon circle. One is with the command
-GluonCirc and the other is an arc of 360 degrees with the GluonArc command.
-The second way has a natural attachment point, because the GluonArc
-command makes gluons with a begin- and endpoint. \vspace{4mm}
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(80,80)(-15,0)}
-\AxoGrid(0,0)(10,10)(8,8){LightGray}{0.5}
-\GluonCirc(40,40)(30,0){5}{16}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-%\label{gluoncirc}
-\verb:\GluonCirc(40,40)(30,0){5}{16}:\hfill \\
-This is the `complete circle'. If one likes to attach one or more lines to
-it one should take into account that the best places for this are at a
-distance radius+amplitude from the center of the circle. One can rotate the
-circle by using the phase argument.
-\end{minipage}\vspace{4mm}
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(80,80)(-15,0)}
-\AxoGrid(0,0)(10,10)(8,8){LightGray}{0.5}
-\GluonArc(40,40)(30,0,360){5}{16}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{gluonarc360}
-\verb:\GluonArc(40,40)(30,0,360){5}{16}:\hfill \\
-In the 360 degree arc there is a natural point of attachment. Of course
-there is only one such point. If one needs more than one such point one
-should use more than one arc segment.
-\end{minipage}\vspace{4mm}
-
-Some examples are:
-
-\begin{center} \begin{axopicture}{(460,60)(0,0)}
-\Gluon(7,30)(27,30){3}{3}
-\GluonCirc(50,30)(20,0){3}{16}
-\Gluon(73,30)(93,30){3}{3}
-\Vertex(27,30){1.5}
-\Vertex(73,30){1.5}
-%
-\Gluon(110,30)(130,30){3}{3}
-\GluonArc(150,30)(20,0,180){3}{8}
-\GluonArc(150,30)(20,180,360){3}{8}
-\Gluon(170,30)(190,30){3}{3}
-\Vertex(130,30){1.5}
-\Vertex(170,30){1.5}
-%
-\Gluon(210,30)(230,30){3}{3}
-\GluonArc(250,30)(20,0,180){-3}{8}
-\GluonArc(250,30)(20,180,360){-3}{8}
-\Gluon(270,30)(290,30){3}{3}
-\Vertex(230,30){1.5}
-\Vertex(270,30){1.5}
-%
-\DashLine(310,30)(330,30){3}
-\GluonArc(350,30)(20,-180,180){3}{16}
-\Vertex(330,30){1.5}
-%
-\DashLine(387,30)(407,30){3}
-\GluonCirc(430,30)(20,0){3}{16}
-\Vertex(407,30){1.5}
-%
-\end{axopicture} \end{center}
-This picture was generated with the code:
-\begin{verbatim}
-\begin{center} \begin{axopicture}{(460,60)(0,0)}
- \Gluon(7,30)(27,30){3}{3}
- \GluonCirc(50,30)(20,0){3}{16}
- \Gluon(73,30)(93,30){3}{3}
- \Vertex(27,30){1.5}
- \Vertex(73,30){1.5}
- \Gluon(110,30)(130,30){3}{3}
- \GluonArc(150,30)(20,0,180){3}{8}
- \GluonArc(150,30)(20,180,360){3}{8}
- \Gluon(170,30)(190,30){3}{3}
- \Vertex(130,30){1.5}
- \Vertex(170,30){1.5}
- \Gluon(210,30)(230,30){3}{3}
- \GluonArc(250,30)(20,0,180){-3}{8}
- \GluonArc(250,30)(20,180,360){-3}{8}
- \Gluon(270,30)(290,30){3}{3}
- \Vertex(230,30){1.5}
- \Vertex(270,30){1.5}
- \DashLine(310,30)(330,30){3}
- \GluonArc(350,30)(20,-180,180){3}{16}
- \Vertex(330,30){1.5}
- \DashLine(387,30)(407,30){3}
- \GluonCirc(430,30)(20,0){3}{16}
- \Vertex(407,30){1.5}
-\end{axopicture} \end{center}
-\end{verbatim}
-
-%>>#] Remarks about Gluons :
-%>>#[ Arrows :
-
-\subsection{Remarks about arrows}
-\label{sec:arrows}
-
-%--#[ General :
-
-The old Axodraw arrows were rather primitive little triangles. The JaxoDraw
-program has introduced fancier arrows which the user can also customize.
-There are parameters connected to this as shown in the figure:
-\begin{center}
-\begin{axopicture}{(150,100)(0,0)}
-\AxoGrid(0,0)(10,10)(15,10){LightGray}{0.5}
-\SetWidth{3}
-%\Line(10,50)(130,50)
-%\FilledPolygon{(140,50)(90,90)(105,50)(90,10)}{White}
-%\Polygon{(140,50)(90,90)(105,50)(90,10)}{Black}
-%\SetWidth{0.5}
-%\LongArrow(85,50)(85,90)
-%\LongArrow(90,5)(105,5)
-%\LongArrow(90,95)(140,95)
-%\SetPFont{Helvetica}{9}
-%\PText(110,85)(0)[l]{Length}
-%\PText(76,71)(90)[c]{Width}
-%\PText(110,5)(0)[l]{Inset}
-\Line[arrow,arrowinset=0.3,arrowaspect=1,arrowwidth=40,arrowpos=1,
- arrowstroke=3](10,50)(100,50)
-\SetWidth{0.5}
-\LongArrow(55,50)(55,90)
-\LongArrow(60,5)(84,5)
-\LongArrow(60,95)(140,95)
-\SetPFont{Helvetica}{9}
-\PText(100,85)(0)[l]{Length}
-\PText(46,71)(90)[c]{Width}
-\PText(90,5)(0)[l]{Inset}
-\end{axopicture}\vspace{2mm} \\
-\verb:\Line[arrow,arrowinset=0.3,arrowaspect=1,arrowwidth=40,arrowpos=1,:\\
-\verb:arrowstroke=3](10,50)(100,50):
-\end{center}
-The full set of parameters is:
-\begin{description}
-\item[aspect] A multiplicative parameter when the length is calculated
-from the width. The normal formula is:
-$\mbox{length}=2\times \mbox{width}\times \mbox{aspect}$.
-\item[inset] The fraction of the length that is taken inward.
-\item[length] The full length of the arrowhead.
-\item[position] The position of the arrow in the line as a fraction of the
-length of the line.
-\item[scale] A scale parameter for the complete arrowhead.
-\item[stroke] The width of the line that makes up the arrowhead. If the
-value is not set (default value is zero) the arrow is filled and overwrites
-whatever was there. In the case of a stroke value the contents are
-overwritten in the background color.
-\item[width] The half width of the arrowhead.
-\end{description}
-The parameters can be set in two ways. One is with one of the commands
-\begin{center}
-\begin{tabular}{ll}
-\verb:\SetArrowScale{number}: & Initial value is 1. \\
-\verb:\SetArrowInset{number}: & Initial value is 0.2 \\
-\verb:\SetArrowAspect{number}: & Initial value is 1.25 \\
-\verb:\SetArrowPosition{number}: & Initial value is 0.5 \\
-\verb:\SetArrowStroke{number}: & Initial value is 0 \\
-\end{tabular} \vspace{2mm} \\
-\end{center}
-(A complete list of commands for setting defaults is in
-Sec.\ \ref{sec:settings}.)
-These commands determine settings that will hold for all following
-commands, up to the end of whatever \LaTeX{} or \TeX{} grouping the
-default setting is given in. E.g., setting a default value inside an
-\texttt{axopicture} environment sets it until the end of the
-environment only. (Thus the settings obey the normal rules of
-\LaTeX{} for scoping.)
-
-The other way is to use one or more of these parameters as options in a
-command that uses an arrow. The general use of options is in Sec.\
-\ref{sec:options}. The options that are available are
-\begin{center}
-\begin{tabular}{ll}
- arrow & initial default=false \\
- arrowscale=\num & initial default=1 \\
- arrowwidth=\num & initial default=0 \\
- arrowlength=\num & initial default=0 \\
- arrowpos=\num & initial default=0.5 \\
- arrowinset=\num & initial default=0.2 \\
- arrowstroke=\num & initial default=0 \\
- arrowaspect=\num & initial default=1.25 \\
- flip & initial default=false
-\end{tabular}
-\end{center}
-The arrow option tells the program to draw an arrow. Without it no
-arrow will be drawn. The flip option indicates that the direction of
-the arrow should be reversed from the `natural' direction.
-
-When
-neither the width nor the length are specified, but instead both are
-given as zero, they are computed from the line width (and the line
-separation when there is a double line). The formula is:
-\begin{eqnarray}
- \mbox{Arrowwidth} & = &
- 1.2 \times \left( \mbox{linewidth}
- + 0.7 \times \mbox{separation}
- + 1
- \right)
- \times \mbox{arrowscale},
-\\
-\label{arrowlength}
- \mbox{Length} & = &
- 2 \times \mbox{arrowwidth} \times \mbox{arrowaspect}.
-\end{eqnarray}
-%If however $\mbox{linewidth} + \frac{1}{4} \times \mbox{separation} <
-%0.5$ the formula for the arrow width becomes $\mbox{arrowwidth} = 2.5
-%\times \mbox{arrowscale}$.
-If, however, $1.2 \times(\mbox{linewidth}+0.7\times\mbox{separation}+1)$ is less
-than 2.5, the formula for the arrow width becomes
-$\mbox{arrowwidth}=2.5\times\mbox{arrowscale}$.
-
-If only one of the arrowwidth or the arrowlength parameters is zero,
-it is computed from the other non-zero parameter using formula
-(\ref{arrowlength}). When both are non-zero, those are the values that
-are used.
-
-The position of the arrowhead is a bit tricky. The arrowpos parameter is a
-fraction of the length of the line and indicates the position of the center
-of the arrowhead. This means that when arrowpos is one, the arrowhead
-sticks out beyond the end of the line by half the arrowlength. When for
-instance the line width is 0.5, the default length of the arrowhead
-defaults to 6.25. Hence if one would like to compensate for this one should
-make the line 3.125 points shorter. Usually 3 pt will be sufficient.
-
-Because of backward compatibility axodraw2 has many individual commands for
-lines with arrows. We present them here, together with some `options'
-varieties.\vspace{4mm}
-
-%--#] General :
-%--#[ ArrowLine :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,80)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,8){LightGray}{0.5}
-\Line[arrow,arrowscale=2](10,70)(80,70)
-\Line[arrow,arrowpos=0.8,flip](10,50)(80,50)
-\Line[arrow](10,30)(80,30)
-\ArrowLine(10,10)(80,10)
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{arrowline}
-\verb:\Line[arrow,arrowscale=2](10,70)(80,70): \hfill \\
-\verb:\Line[arrow,arrowpos=0.8,flip](10,50)(80,50): \hfill \\
-\verb:\Line[arrow](10,30)(80,30): \hfill \\
-\verb:\ArrowLine(10,10)(80,10): \hfill \\
-The default position for the arrow is halfway (arrowpos=0.5). With the line
-command and the options we can put the arrow in any position.
-\end{minipage}\vspace{4mm}
-
-%--#] ArrowLine :
-%--#[ LongArrow :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,60)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,6){LightGray}{0.5}
-\Line[arrow,arrowpos=1](10,30)(80,30)
-\LongArrow(10,10)(80,10)
-\SetWidth{4}
-\LongArrow[arrowscale=0.8](10,50)(70,50)
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{longarrow}
-\verb:\Line[arrow,arrowpos=1](10,30)(80,30): \hfill \\
-\verb:\LongArrow(10,10)(80,10): \hfill \\
-\verb:\SetWidth{4}: \hfill \\
-\verb:\LongArrow[arrowscale=0.8](10,50)(70,50): \hfill \\
-The \verb:\LongArrow: command just places the arrowhead at the end of the
-line. The size of the arrowhead is a function of the linewidth.
-\end{minipage}\vspace{4mm}
-
-%--#] LongArrow :
-%--#[ ArrowDoubleLine :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,100)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,10){LightGray}{0.5}
-\SetArrowStroke{1}
-\Line[arrow,arrowpos=1,double,sep=5,arrowscale=1.3](10,90)(75,90)
-\Line[arrow,arrowpos=1,double,sep=2,arrowscale=1.5](10,70)(80,70)
-\Line[arrow,arrowpos=1,double,sep=2](10,50)(80,50)
-\Line[arrow,double,sep=2](10,30)(80,30)
-\ArrowDoubleLine(10,10)(80,10){2}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{arrowdoubleline}
-\verb:\SetArrowStroke{1}: \hfill \\
-\verb:\Line[arrow,arrowpos=1,double,sep=5,arrowscale=1.3]: \hfill \\
- \verb: (10,90)(75,90): \hfill \\
-\verb:\Line[arrow,arrowpos=1,double,sep=2,arrowscale=1.5]: \hfill \\
- \verb: (10,70)(80,70): \hfill \\
-\verb:\Line[arrow,arrowpos=1,double,sep=2](10,50)(80,50): \hfill \\
-\verb:\Line[arrow,double,sep=2](10,30)(80,30): \hfill \\
-\verb:\ArrowDoubleLine(10,10)(80,10){2}: \hfill \\
-As one can see, the arrows also work with double lines.
-\end{minipage}\vspace{4mm}
-
-%--#] ArrowDoubleLine :
-%--#[ ArrowDashLine :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,80)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,8){LightGray}{0.5}
-\Line[arrow,arrowpos=0.3,dash,dsize=3,arrowscale=1.5](10,70)(80,70)
-\DashArrowLine(10,50)(80,50){3}
-\Line[arrow,dash,dsize=3](10,30)(80,30)
-\ArrowDashLine(10,10)(80,10){3}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{arrowdashline}
-\verb:\Line[arrow,arrowpos=0.3,dash,dsize=3,arrowscale=1.5]: \\
- \verb:(10,70)(80,70): \\
-\verb:\DashArrowLine(10,50)(80,50){3}: \\
-\verb:\Line[arrow,dash,dsize=3](10,30)(80,30): \\
-\verb:\ArrowDashLine(10,10)(80,10){3}: \\
-We have not taken provisions for the dashes to be centered in the
-arrowhead, because at times that is nearly impossible. The commands
-\verb:\ArrowDashLine: and \verb:\DashArrowLine: are identical.
-\end{minipage}\vspace{4mm}
-
-%--#] ArrowDashLine :
-%--#[ ArrowDashDoubleLine :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,80)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,8){LightGray}{0.5}
-\SetArrowStroke{0.5}
-\Line[arrow,arrowpos=1,dash,dsize=3,double,sep=1.5,arrowscale=1.5](10,70)(80,70)
-\DashArrowDoubleLine(10,50)(80,50){1.5}{3}
-\Line[arrow,dash,dsize=3,double,sep=1.5](10,30)(80,30)
-\ArrowDashDoubleLine(10,10)(80,10){1.5}{3}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{arrowdashdoubleline}
-\verb:\SetArrowStroke{0.5}: \\
-\verb:\Line[arrow,arrowpos=1,dash,dsize=3,double: \\
- \verb:,sep=1.5,arrowscale=1.5](10,70)(80,70): \\
-\verb:\DashArrowDoubleLine(10,50)(80,50){1.5}{3}: \\
-\verb:\Line[arrow,dash,dsize=3](10,30)(80,30): \\
-\verb:\ArrowDashDoubleLine(10,10)(80,10){1.5}{3}: \\
-The \verb:\ArrowDashDoubleLine: and \verb:\DashArrowDoubleLine:
-commands are identical.
-\end{minipage}\vspace{4mm}
-
-%--#] ArrowDashDoubleLine :
-%--#[ LongArrowDashLine :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,80)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,8){LightGray}{0.5}
-\Line[arrow,arrowpos=0,dash,dsize=3,arrowscale=1.5,flip](10,70)(80,70)
-\DashLongArrowLine(10,50)(80,50){3}
-\Line[arrow,arrowpos=1,dash,dsize=3](10,30)(80,30)
-\LongArrowDashLine(10,10)(80,10){3}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{longarrowdashline}
-\verb:\Line[arrow,arrowpos=0,dash,dsize=3,arrowscale=1.5: \\
- \verb:,flip](10,70)(80,70): \\
-\verb:\DashLongArrowLine(10,50)(80,50){3}: \\
-\verb:\Line[arrow,arrowpos=1,dash,dsize=3](10,30)(80,30): \\
-\verb:\LongArrowDashLine(10,10)(80,10){3}: \\
-The commands
-\verb:\LongArrowDashLine:, \verb:\DashLongArrowLine:,
-\verb:\LongArrowDash: and \verb:\DashLongArrow: are identical.
-\end{minipage}\vspace{4mm}
-
-%--#] LongArrowDashLine :
-%--#[ ArrowArc :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,140)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,14){LightGray}{0.5}
-\Arc[arrow,arrowpos=1,clock](45,95)(40,160,20)
-\LongArrowArcn(45,80)(40,160,20)
-\Arc[arrow,arrowpos=0.5,clock](45,65)(40,160,20)
-\ArrowArcn(45,50)(40,160,20)
-\Arc[arrow,arrowpos=1](45,35)(40,20,160)
-\LongArrowArc(45,20)(40,20,160)
-\Arc[arrow,arrowpos=0.5](45,5)(40,20,160)
-\ArrowArc(45,-10)(40,20,160)
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{arrowarc}
-\verb:\Arc[arrow,arrowpos=0,flip](45,95)(40,20,160): \\
-\verb:\LongArrowArcn(45,80)(40,20,160): \\
-\verb:\Arc[arrow,arrowpos=0.5](45,65)(40,20,160): \\
-\verb:\ArrowArcn(45,50)(40,20,160): \\
-\verb:\Arc[arrow,arrowpos=1](45,35)(40,20,160): \\
-\verb:\LongArrowArc(45,20)(40,20,160): \\
-\verb:\Arc[arrow,arrowpos=0.5](45,5)(40,20,160): \\
-\verb:\ArrowArc(45,-10)(40,20,160): \\
-The \verb:Arc: and the \verb:CArc: commands are identical.
-\end{minipage}\vspace{4mm}
-
-%--#] ArrowArc :
-%--#[ ArrowDashArc :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,110)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,11){LightGray}{0.5}
-\Arc[arrow,dash,dsize=3,arrowpos=0.5,clock](45,65)(40,160,20)
-\ArrowDashArcn(45,50)(40,160,20){3}
-\Arc[arrow,dash,dsize=3,arrowpos=1](45,35)(40,20,160)
-\LongArrowDashArc(45,20)(40,20,160){3}
-\Arc[arrow,dash,dsize=3,arrowpos=0.5](45,5)(40,20,160)
-\ArrowDashArc(45,-10)(40,20,160){3}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{arrowdasharc}
-\verb:\Arc[arrow,dash,dsize=3,arrowpos=0.5]: \\
- \verb:(45,65)(40,20,160): \\
-\verb:\ArrowDashArcn(45,50)(40,20,160){3}: \\
-\verb:\Arc[arrow,dash,dsize=3,arrowpos=1]: \\
- \verb:(45,35)(40,20,160): \\
-\verb:\LongArrowDashArc(45,20)(40,20,160){3}: \\
-\verb:\Arc[arrow,dash,dsize=3,arrowpos=0.5]: \\
- \verb:(45,5)(40,20,160): \\
-\verb:\ArrowDashArc(45,-10)(40,20,160){3}: \\
-The \verb:DashArrowArc: and the \verb:ArrowDashArc: commands are identical.
-So are the commands \verb:DashArrowArcn: and \verb:ArrowDashArcn:.
-\end{minipage}\vspace{4mm}
-
-%--#] ArrowDashArc :
-%--#[ ArrowDashDoubleArc :
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(90,80)(-10,0)}
-\AxoGrid(0,0)(10,10)(9,8){LightGray}{0.5}
-\Arc[arrow,dash,dsize=3,double,sep=1.5,arrowpos=0.5](45,35)(40,20,160)
-\ArrowDashDoubleArc(45,20)(40,20,160){1.5}{3}
-\Arc[arrow,double,sep=1.5,arrowpos=0.5](45,5)(40,20,160)
-\ArrowDoubleArc(45,-10)(40,20,160){1.5}
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{arrowdashdoublearc}
-\verb:\Arc[arrow,dash,dsize=3,double,sep=1.5: \\
- \verb:,arrowpos=0.5](45,35)(40,20,160): \\
-\verb:\ArrowDashDoubleArc(45,20)(40,160,20){1.5}{3}: \\
-\verb:\Arc[arrow,double,sep=1.5,arrowpos=0.5]: \\
- \verb:(45,5)(40,20,160): \\
-\verb:\ArrowDoubleArc(45,-10)(40,20,160){1.5}: \\
-Other commands involving Long do not exist. The options can take care of
-their functionality.
-\end{minipage}\vspace{4mm}
-
-%--#] ArrowDashDoubleArc :
-%--#[ Bezier :
-
-Computing the position of the arrow in a B\'ezier curve is a bit complicated.
-Let us recall the definition of a cubic B\'ezier curve:
-\begin{eqnarray}
- x & = & x_0 (1-t)^3 + 3 x_1 t (1-t)^2 + 3 x_2 t^2 (1-t) + x_3 t^3
- \nonumber \\
- y & = & y_0 (1-t)^3 + 3 y_1 t (1-t)^2 + 3 y_2 t^2 (1-t) + y_3 t^3
-\end{eqnarray}
-Computing the length of the curve is done with the integral
-\begin{eqnarray}
- L & = & \int_0^1 dt
- \sqrt{ \left( \frac{dx}{dt} \right)^2 + \left( \frac{dy}{dt} \right )^2 },
-\end{eqnarray}
-which is an integral over the square root of a quartic polynomial. This we
-do with a 16 point Gaussian quadrature and it gives us more than enough
-accuracy\footnote{We need to compute the length of the B\'ezier curve also
-when we want to put a dash pattern on it. The exact dash size is determined
-such that an integer number of patterns fits in the line.}. Let us assume
-now that we want the arrow at 0.6 of the length. To find the exact fraction
-of the length involves finding the upper limit of the integral for which
-the length is $0.6 L$. This requires an iteration procedure till we have a
-reasonable accuracy for the position $(x,y)$. After that we have to calculate
-the derivative in this point as well.
-
-Because the B\'ezier curves are new commands in axodraw2 there is no need for
-backwards compatibility in the use of arrows. Hence all arrow commands are
-done by means of the options. Some examples are:
-\vspace{4mm}
-
-\noindent
-\begin{minipage}{3.83cm}
-\begin{axopicture}{(80,80)(-15,0)}
-\AxoGrid(0,0)(10,10)(8,8){LightGray}{0.5}
-\Bezier[arrow](10,10)(30,30)(10,50)(30,70)
-\Bezier[arrow,dash,dsize=3](30,10)(50,30)(30,50)(50,70)
-\Bezier[arrow,arrowpos=1,double,sep=1,arrowstroke=0.5](50,10)(70,30)(50,50)(70,70)
-\end{axopicture}
-\end{minipage}
-\begin{minipage}{11.5cm}
-\label{arrowbezier}
-\verb:\Bezier[arrow](10,10)(30,30)(10,50)(30,70): \\
-\verb:\Bezier[arrow,dash,dsize=3](30,10)(50,30): \\
- \verb:(30,50)(50,70): \\
-\verb:\Bezier[arrow,arrowpos=1,double,sep=1,arrowstroke: \\
- \verb:=0.5](50,10)(70,30)(50,50)(70,70):
-\end{minipage}\vspace{4mm}
-
-%--#] Bezier :
-%>>#] Arrows :
-%>>#[ Settings :
-
-\subsection{Units and scaling}
-\label{sec:units}
-
-When you have constructed a diagram, you may need to change its scale,
-to make it larger or smaller. Axodraw2 provides ways of doing this,
-for scaling diagrams without recoding all the individual coordinates.
-However the requirements for the nature of the scaling change between
-different cases. For example, suppose a diagram is designed for use in
-a journal article and you wish to use it in the slides for a seminar.
-Then you will want to enlarge both the geometric size of the diagram's
-objects and the text labels it contains. But if you wish to use a
-scaled diagram in another place in a journal article, you will wish to
-scale its lines etc, but will probably not wish to scale the text (to
-preserve its legibility).
-
-Axodraw2 therefore provides tools for the different situations, so we
-will now explain what to do. The commands to achieve this all appear
-in the list of parameter-setting commands in Sec.\ \ref{sec:settings}.
-
-
-\subsubsection{Scaling for slides}
-
-Suppose the original diagram is
-\begin{center}
-\begin{minipage}{10cm}
-\begin{verbatim}
- \SetPFont{Helvetica-Oblique}{12}
- Document text. Then diagram:
- \begin{axopicture}(60,43)
- \Arc[arrow](30,0)(30,0,180)
- \Text(30,33)[b]{$\alpha P_1$}
- \CText(30,10){Red}{Yellow}{Arc}
- \end{axopicture}
-\end{verbatim}
-\end{minipage}
-\end{center}
-to give
-\begin{center}
- \SetPFont{Helvetica-Oblique}{12}
- Document text. Then diagram:
- \begin{axopicture}(60,43)
- \Arc[arrow](30,0)(30,0,180)
- \Text(30,33)[b]{$\alpha P_1$}
- \CText(30,10){Red}{Yellow}{Arc}
- \end{axopicture}
-\end{center}
-Then you could double the scale of the diagram by
-\begin{center}
-\begin{minipage}{10cm}
-\begin{verbatim}
- \SetScale{2}
- \fontsize{24}{26}\selectfont
- \SetPFont{Helvetica-Oblique}{12}
- Document text. Then diagram:
- \begin{axopicture}(60,43)
- \Arc[arrow](30,0)(30,0,180)
- \Text(30,33)[b]{$\alpha P_1$}
- \CText(30,10){Red}{Yellow}{Arc}
- \end{axopicture}
-\end{verbatim}
-\end{minipage}
-\end{center}
-to get
-\begin{center}
- \SetScale{2}
- \fontsize{24}{26}\selectfont
- \SetPFont{Helvetica-Oblique}{12}
- Document text. Then diagram:
- \begin{axopicture}(60,43)
- \Arc[arrow](30,0)(30,0,180)
- \Text(30,33)[b]{$\alpha P_1$}
- \CText(30,10){Red}{Yellow}{Arc}
- \end{axopicture}
-\end{center}
-We have changed the size of the document font, as would be appropriate
-for a make slides for a presentation; this we did by the
-\verb+\fontsize+ command. The arc and the space inserted
-in the document for the diagram have scaled up. The label inserted by
-the \verb:\Text: command has changed to match the document font. The
-postscript text in the \verb:\CText: was specified to be at
-$\unit[12]{pt}$, but is now scaled up also.
-
-The above behavior is what axodraw2 does by default, and is what v.\ 1
-did.
-
-
-\subsubsection{Scaling within article}
-
-If you wanted to make an enlarged figure in a journal article, you
-would not change the document font. But the obvious modification to
-the previous example is
-\begin{center}
-\begin{minipage}{10cm}
-\begin{verbatim}
- \SetScale{2}
- \SetPFont{Helvetica-Oblique}{12}
- Document text. Then diagram:
- \begin{axopicture}(60,43)
- \Arc[arrow](30,0)(30,0,180)
- \Text(30,33)[b]{$\alpha P_1$}
- \CText(30,10){Red}{Yellow}{Arc}
- \end{axopicture}
-\end{verbatim}
-\end{minipage}
-\end{center}
-which gives
-\begin{center}
- \SetScale{2}
- \SetPFont{Helvetica-Oblique}{12}
- Document text. Then diagram:
- \begin{axopicture}(60,43)
- \Arc[arrow](30,0)(30,0,180)
- \Text(30,33)[b]{$\alpha P_1$}
- \CText(30,10){Red}{Yellow}{Arc}
- \end{axopicture}
-\end{center}
-The label $\alpha P_1$ is now not enlarged, since it copies the
-behavior of the document font. But the postscript text is enlarged,
-which is probably undesirable. If you were scaling down the diagram
-instead of scaling it up, the situation would be worse, because the
-postscript font would be difficult to read.
-
-So in this situation, of scaling the diagram while keeping the
-document font intact, you probably also want to leave unchanged the
-size of the postscript font. You can achieve this by the
-\verb:\PSTextScalesLikeGraphicsfalse: command:
-\begin{center}
-\begin{minipage}{10cm}
-\begin{verbatim}
- \SetScale{2}
- \PSTextScalesLikeGraphicsfalse
- \SetPFont{Helvetica-Oblique}{12}
- Document text. Then diagram:
- \begin{axopicture}(60,43)
- \Arc[arrow](30,0)(30,0,180)
- \Text(30,33)[b]{$\alpha P_1$}
- \CText(30,10){Red}{Yellow}{Arc}
- \end{axopicture}
-\end{verbatim}
-\end{minipage}
-\end{center}
-\begin{center}
- \SetScale{2}
- \PSTextScalesLikeGraphicsfalse
- \SetPFont{Helvetica-Oblique}{12}
- Document text. Then diagram:
- \begin{axopicture}(60,43)
- \Arc[arrow](30,0)(30,0,180)
- \Text(30,33)[b]{$\alpha P_1$}
- \CText(30,10){Red}{Yellow}{Arc}
- \end{axopicture}
-\end{center}
-
-To achieve this on a document-wide basis, which is probably what you
-want, you can use the \texttt{PStextScalesIndependently} option when you
-load axodraw2 --- see Sec.\ \ref{sec:invoke}.
-
-Nevertheless, if you turn off the default scaling of postscript text,
-%you may still want to scale text. To do this you can use the
-you may still want to scale text. For this you can use the
-\verb:\SetTextScale: command, as in \verb:\SetTextScale{1.2}:. This
-only has an effect when you have turned off the scaling of postscript
-text with graphics objects; but then it applies to \TeX{} text
-inserted by axodraw2's \verb:\Text: and \verb:\rText: commands, as
-well text inserted by axodraw2's ``postscript-text'' commands.
-
-If you are confused by the above, we recommend experimentation to
-understand how to achieve the effects that you specifically need. We
-could have made the set of commands and options simpler, but only at
-the expense of not being able to meet the demands of the different
-plausible situations that we could imagine and have to deal with
-ourselves.
-
-\subsubsection{Canvas and object scales}
-
-When you use \verb:\SetScale: outside an \verb:axopicture:
-environment, as above, the scaling applies to both the axodraw2
-objects and the space inserted for the \texttt{axopicture} environment
-in the document, as is natural. But you may find you need to scale a
-subset of objects inside the diagram, e.g.,
-\begin{center}
- \begin{minipage}{10cm}
- \verb:\begin{axopicture}:(\dots)\\
- \hspace*{1cm} (First block)\\
- \verb:\SetScale{0.5}:\\
- \hspace*{1cm} (Second block)\\
- \verb:\end{axopicture}:
- \end{minipage}
-\end{center}
-In this case, the units for specifying the objects in the second block
-are different from those for specifying the \verb:axopicture:
-environment's size (as well as the first block of objects). We thus
-distinguish object units from canvas units, where ``canvas'' refers to
-the \verb:axopicture: environment as a whole.
-
-Another complication is that the \LaTeX{} \verb+picture+ environment
-has is own \verb:\unitlength: parameter. In v.\ 1 of axodraw, the
-canvas scale was determined by \LaTeX's \verb:\unitlength:. But there
-was an independent unit for the object scale; this was the one
-determined by axodraw's \verb:\SetScale: command. Also, not all
-objects used the object scale. The situation therefore got quite
-confusing. In v.\ 1, if, as is often natural, you wished to scale the
-canvas as well as the objects, you would have needed to set \LaTeX's
-\verb:\unitlength: parameter as well as using axodraw's
-\verb:\SetScale: command.
-
-So now we have arranged things so that the canvas and object scales
-are tied by default, provided that you use axodraw2's \verb:\SetScale:
-command, and that axodraw diagrams are inside \verb+axopicture+
-environments (in contrast to the \verb+picture+ environment used in
-the original axodraw).
-However, it may be necessary to keep backward compatibility in some
-cases, and we weren't certain that the new behavior is exactly what is
-always desired. So in axodraw2, we have provided three choices, given
-by the \texttt{canvasScaleIs1pt}, \texttt{canvasScaleIsObjectScale},
-and \texttt{canvasScaleIsUnitLength} options when loading axodraw2 ---
-see Sec.\ \ref{sec:invoke}. Naturally,
-\texttt{canvasScaleIsObjectScale} is the default. If you wish to
-change the setting mid-document, there are corresponding commands ---
-Sec.\ \ref{sec:settings}.
-
-
-
-\subsection{Settings}
-\label{sec:settings}
-
-Axodraw2 has a number of parameters that can be set by the user. The
-parameters include defaults for line types, dimensions, etc. The
-parameters can be set either inside the axopicture environment or
-outside. If they are set outside they modify the default value for
-subsequent pictures. If set inside they only affect the current
-picture. (In general, the parameters obey the usual rules for the
-scope of \LaTeX{} variables.) In many cases, the parameters provide
-default values for a command to draw an object and can be overridden
-for a single object by using an optional parameter in invoking the
-command for the object.
-
-The unit for lengths is the current object scale, as set by the
-\verb+\SetScale+ command.
-
-\break
-
-The parameter-setting commands are:
-%\begin{center}
-%\def\arraystretch{1.4}
-%%
-%% See preamble for definition of \name
-%\def\descr#1#2{%
-% % #1 = command-syntax, #2 = description
-% \name{#1} & #2\\
-% \hline
-%}
-%\def\descrL#1#2{%
-% % #1 = command-syntax, #2 = description
-% % Set #1 on separate line
-% \multicolumn{2}{|l|}{\name{#1}} \\
-% & #2\\
-% \hline
-%}
-%\catcode`\#=13
-%\def#{\#}
-%%
-%\begin{longtable}{|p{5cm}|p{10.2cm}|}
-%\hline
-% Command & Commentary
-%\\
-%\hline
-%%
-%\descr{SetLineSep\{\#1\}}{
-% This sets the default separation of double lines. Its initial value
-% is 2.
-%}
-%%
-%\descr{SetDashSize\{\#1\}}{
-% This sets the default size for the size of the dashes of dashed
-% lines. Its initial value is 3.
-%}
-%%
-%\descr{SetWidth\{\#1\}}{
-% This sets the default width of lines. Its initial value is 1.
-%}
-%%
-%\descr{SetScale\{\#1\}}{
-% This sets a scale factor.
-% This factor applies a magnification factor to all
-% axodraw2 graphics objects. When the setting that
-% postscript-text-scales-like-graphics is set (as is true by
-% default), it also applies to axodraw2's ``postscript-text''
-% writing commands (\name{PText}, \name{BText}, etc), but not to
-% its \TeX{}-text commands (\name{Text} etc). The initial scale
-% factor is unity.
-%}
-%%
-%\descr{SetTextScale\{\#1\}}{
-% This factor applies a magnification factor to all
-% axodraw2 text objects, but \emph{only when} the setting that
-% postscript-text-scales-like-graphics is turned off.
-%}
-%%
-%\descr{SetOffset(\#1,\#2)}{
-% Sets an offset value
-% for all commands of
-% axodraw2. Its value is not affected by the scale variable.
-%}
-%%
-%\descr{SetScaledOffset(\#1,\#2)}{
-% Sets an offset for
-% all commands of axodraw2. This
-% offset is affected by the scale factor.
-%}
-%%
-%\descr{SetColor\{\#1\}}{
-% Sets the named color,
-% for both axodraw2 objects and regular text. See Sec.\
-% \ref{sec:colors} for details on using color with axodraw2.
-%}
-%%
-%\descr{textRed}{
-% Alternative command for setting named a color
-% for both axodraw2 objects and regular text. See Sec.\
-% \ref{sec:colors} for details on using color with axodraw2.
-% There is one such command for each axodraw2 named color.
-%}
-%%
-%\descr{SetPFont\{\#1\}\{\#2\}}{
-% Sets the Postscript
-% font, and its size in units of points. See Sec.\ \ref{sec:PSText}
-% for the commands that use this font, for a table of the names of
-% the fonts. An empty first argument, instead of a font name, (as in
-% \name{SetPFont\{\}\{20\}} indicates that the normal document font is
-% to be used at the indicated size. An empty second argument,
-% instead of the font size, (as in \name{SetPFont\{Helvetica\}\{\}} or
-% \name{SetPFont\{\}\{\}}) indicates that the font size is to be
-% \LaTeX's document font size at the time the text-making command is
-% executed.
-%}
-%%
-%\descr{SetArrowScale\{\#1\}}{
-% A scale parameter for the
-% entire head of an arrow.
-%}
-%%
-%\descr{SetArrowInset\{\#1\}}{
-% See Sec.\ \ref{sec:arrows}.
-%}
-%%
-%\descr{SetArrowAspect\{\#1\}}{
-% See Sec.\ \ref{sec:arrows}.
-%}
-%%
-%\descr{SetArrowPosition\{\#1\}}{
-% Determines where the
-%arrowhead is on a line. The position is the fraction of the length of the
-%line.
-%}
-%%
-%\descr{SetArrowStroke\{\#1\}}{
-% This parameter determines the linewidth of the arrowhead if it is just
-% outlined. Its initial value is zero (filled arrowhead).
-%}
-%%
-%\descr{canvasScaleOnept}{
-% Sets canvas scale to $\unit[1]{pt}$.
-%}
-%%
-%\descr{canvasScaleObjectScale}{
-% Sets canvas scale to equal the value set by \name{SetScale} in
-% units of points. This is the initial default of axodraw2,
-% unless overridden.
-%}
-%%
-%\descr{canvasScaleUnitLength}{
-% The canvas scale is the same as \LaTeX's length parameter
-% \name{unitlength}.
-%}
-%%
-%\descrL{PSTextScalesLikeGraphicsfalse}{
-% Text drawn by all of Axodraws's text commands scales with the
-% factor set by \name{SetTextScale}.
-% See Sec.\ \ref{sec:text}.
-%}
-%%
-%\descrL{PSTextScalesLikeGraphicstrue}{
-% (Default setting.) Text drawn by Axodraw's postscript-text
-% commands scales with the same factor as graphics objects, as set
-% by \name{SetScale}. Text drawn by Axodraw's \TeX{}-text
-% commands is unscaled.
-% See Sec.\ \ref{sec:text}.
-%}
-%\end{longtable}
-%\end{center}
-\begin{center}
-\def\arraystretch{1.4}
-%
-% See preamble for definition of \name
-\def\descr#1#2{%
- % #1 = command-syntax, #2 = description
- \name{#1} & #2\\
- \hline
-}
-\def\descrL#1#2{%
- % #1 = command-syntax, #2 = description
- % Set #1 on separate line
- \multicolumn{2}{|l|}{\name{#1}} \\
- & #2\\
- \hline
-}
-\def\category#1{%
- % #1 = name of category
- \multicolumn{2}{l}{#1:}
- \\
- \hline
-}
-\catcode`\#=13
-\def#{\#}
-%
-\begin{longtable}{|p{5cm}|p{10.2cm}|}
-\hline
-\endfirsthead
- Command & Commentary
-\\
-\hline
-%====================
-\category{Lines}
-%
-\descr{SetDashSize\{\#1\}}{
- This sets the default size for the size of the dashes of dashed
- lines. Its initial value is 3.
-}
-%
-\descr{SetLineSep\{\#1\}}{
- This sets the default separation of double lines. Its initial value
- is 2.
-}
-%
-\descr{SetWidth\{\#1\}}{
- This sets the default width of lines. Its initial value is 0.5.
-}
-%====================
-\category{Arrows}
-%
-\descr{SetArrowAspect\{\#1\}}{
- See Sec.\ \ref{sec:arrows}.
-}
-%
-\descr{SetArrowInset\{\#1\}}{
- See Sec.\ \ref{sec:arrows}.
-}
-%
-\descr{SetArrowPosition\{\#1\}}{
- Determines where the
-arrowhead is on a line. The position is the fraction of the length of the
-line.
-}
-%
-\descr{SetArrowScale\{\#1\}}{
- A scale parameter for the
- entire head of an arrow.
-}
-%
-\descr{SetArrowStroke\{\#1\}}{
- This parameter determines the linewidth of the arrowhead if it is just
- outlined. Its initial value is zero (filled arrowhead).
-}
-%====================
-\category{Scaling}
-%
-\descr{canvasScaleOnept}{
- Sets canvas scale to $\unit[1]{pt}$.
-}
-%
-\descr{canvasScaleObjectScale}{
- Sets canvas scale to equal the value set by \name{SetScale} in
- units of points. This is the initial default of axodraw2,
- unless overridden.
-}
-%
-\descr{canvasScaleUnitLength}{
- The canvas scale is the same as \LaTeX's length parameter
- \name{unitlength}.
-}
-%
-\descr{SetScale\{\#1\}}{
- This sets a scale factor.
- This factor applies a magnification factor to all
- axodraw2 graphics objects. When the setting that
- postscript-text-scales-like-graphics is set (as is true by
- default), it also applies to axodraw2's ``postscript-text''
- writing commands (\name{PText}, \name{BText}, etc), but not to
- its \TeX{}-text commands (\name{Text} etc). The initial scale
- factor is unity.
-}
-%
-\descr{SetTextScale\{\#1\}}{
- This factor applies a magnification factor to all
- axodraw2 text objects, but \emph{only when} the setting that
- postscript-text-scales-like-graphics is turned off.
-}
-%
-\descrL{PSTextScalesLikeGraphicsfalse}{
- Text drawn by all of Axodraws's text commands scales with the
- factor set by \name{SetTextScale}.
- See Sec.\ \ref{sec:text}.
-}
-%
-\descrL{PSTextScalesLikeGraphicstrue}{
- (Default setting.) Text drawn by Axodraw's postscript-text
- commands scales with the same factor as graphics objects, as set
- by \name{SetScale}. Text drawn by Axodraw's \TeX{}-text
- commands is unscaled.
- See Sec.\ \ref{sec:text}.
-}
-%
-%====================
-\category{Offsets}
-%
-\descr{SetOffset(\#1,\#2)}{
- Sets an offset value
- for all commands of
- axodraw2. Its value is not affected by the scale variable.
-}
-%
-\descr{SetScaledOffset(\#1,\#2)}{
- Sets an offset for
- all commands of axodraw2. This
- offset is affected by the scale factor.
-}
-%
-%====================
-\category{Color}
-%
-\descr{SetColor\{\#1\}}{
- Sets the named color,
- for both axodraw2 objects and regular text. See Sec.\
- \ref{sec:colors} for details on using color with axodraw2.
-}
-%
-\descr{textRed}{
- Alternative command for setting named a color
- for both axodraw2 objects and regular text. See Sec.\
- \ref{sec:colors} for details on using color with axodraw2.
- There is one such command for each axodraw2 named color.
-}
-%====================
-\category{Font}
-%
-\descr{SetPFont\{\#1\}\{\#2\}}{
- Sets the Postscript
- font, and its size in units of points. See Sec.\ \ref{sec:PSText}
- for the commands that use this font, for a table of the names of
- the fonts. An empty first argument, instead of a font name, (as in
- \name{SetPFont\{\}\{20\}} indicates that the normal document font is
- to be used at the indicated size. An empty second argument,
- instead of the font size, (as in \name{SetPFont\{Helvetica\}\{\}} or
- \name{SetPFont\{\}\{\}}) indicates that the font size is to be
- \LaTeX's document font size at the time the text-making command is
- executed.
-}
-%
-\end{longtable}
-\end{center}
-
-
-%>>#] Settings :
-%>>#[ Colors :
-
-\subsection{Colors}
-\label{sec:colors}
-
-\TeX{} and \LaTeX{} by themselves do not provide any means to set
-colors in a document. Instead, one must use a suitable package to
-achieve the effect; the current standard one is \file{color.sty}.
-Such a package performs its work by passing graphics commands to the
-viewable output file. Since axodraw also works in a similar fashion,
-there is a potentiality for conflicts.
-
-Axodraw version 1, released in 1994, used the package
-\file{colordvi.sty} for applying color to normal textual material,
-and its own separate methods for applying color to its graphical
-objects. They both defined the same convenient set of named colors
-that could be used, but they had to be set separately for text and
-graphics\footnote{The named colors corresponded to ones defined by the
- \program{dvips} program.}. The \file{colordvi.sty} package also had
-an important disadvantage that its color settings did not respect
-\TeX{} grouping and \LaTeX{} environments, so that a color setting
-made for text in an environment continued to apply after the end of
-the environment.
-
-Since then, the available tools, notably in the powerful
-\file{color.sty}, have greatly improved. But this has introduced
-both real and potential incompatibilities with the older methods.
-Note that \file{color.sty} is currently the most standard way for
-implementing color, and is a required part of \LaTeX{} distributions,
-as part of the graphics bundle.
-
-In the new version of axodraw, we have arranged to have compatibility
-with \file{color.sty}, while allowing as much backward compatibility
-as we could with the user interface from v.\ 1. We fully rely on
-\file{color.sty} for setting color\footnote{Except for certain hard
- wired settings in double lines and stroked arrows.}. But to keep
-the best of the old methods, we have defined all the named colors that
-were defined in the old version, together with a few extra ones. We
-have also defined color-setting commands in the style of
-\file{colordvi.sty}, but they now apply uniformly to both text and
-axodraw graphical objects, and they respect \TeX{} and \LaTeX{}
-grouping and environments.
-
-This results in some changes in behavior in certain situations. We
-think the new behavior is more natural from the user's point of view;
-but it is a change.
-
-There are two classes of graphics-drawing command in axodraw. One
-class has no explicit color argument, and uses the currently set
-color; the line-drawing commands are typical of these. Other commands
-have explicit color arguments, and these arguments are named colors.
-The named colors are a union of those axodraw defines, with those
-defined by \file{color.sty} together with any further ones defined
-by the user.
-
-\subsubsection{How to use colors}
-
-Axodraw works with named colors --- see Sec.\ \ref{sec:defined.colors}
---- which are a standard set of 68 originally defined by the \program{dvips}
-program and the \file{colordvi.sty}, plus 5 extra colors defined in
-axodraw2. (In addition there are several named colors that are
-normally defined by default by \file{color.sty}, and that can also
-be used.)
-
-To use them we have several possibilities to specify colors. Which to
-use is mostly a matter of user preference or convenience.
-\begin{itemize}
-
-\item The axodraw command \verb+\SetColor{colorname}+: sets the color
- to be the named color for everything until the end of the current
- environment (or \TeX{} group, as relevant.) The initial default
- color is Black, of course. An example:
- \begin{center}
- \begin{minipage}{4cm}
- \SetColor{Red}
- Now red is used:\\
- \begin{axopicture}(0,40)
- \Line(0,10)(40,30)
- \end{axopicture}
- \end{minipage}
- \begin{minipage}{7cm}
- \label{SetColor}
- \begin{verbatim}
- \SetColor{Red}
- Now red is used:\\
- \begin{axopicture}(0,40)
- \Line(0,10)(40,30)
- \end{axopicture}
- \end{verbatim}
- \end{minipage}
- \end{center}
-
-\item Completely equivalently, one can use the command
- \verb+\color{colorname}+ defined by the standard \file{color.sty}
- package, with any of its options, e.g., \verb+\color{Red}+ or
- \verb+\color[rgb]{1,0,0}+. In fact \verb+\SetColor+ is now a
- synonym for \verb+\color+, retained for backward compatibility.
-
-\item The named colors defined by axodraw2 are listed in Sec.\
- \ref{sec:defined.colors}. Extra ones can be defined by axodraw2's
- \verb+\newcolor+ command.
-
-\item For each of the named colors defined by axodraw2 (and others
- defined by the use of the \verb+\newcolor+ command), there is a
- macro whose name is ``text'' followed by the color name, e.g.,
- \verb+\textMagenta+. This behaves just like the corresponding call
- to \verb+\SetColor+ or \verb+\color+. Thus we have
- \begin{center}
- \begin{minipage}{4cm}
- \textMagenta
- Now magenta is used: \hfill \\
- \begin{axopicture}(0,40)
- \Line(0,10)(40,30)
- \end{axopicture}
- \end{minipage}
- \begin{minipage}{7cm}
- \label{textName}
- \begin{verbatim}
- \textMagenta
- Now magenta is used:\\
- \begin{axopicture}(0,40)
- \Line(0,10)(40,30)
- \end{axopicture}
- \end{verbatim}
- \end{minipage}
- \end{center}
- These macros correspond to macros defined by the venerable
- \file{colordvi.sty} package, but now have what is normally an advantage
- that their scope is delimited by the enclosing environment.
- \begin{center}
- \begin{minipage}{5cm}
- Normal text, then
- \begin{center}
- \Large \bf \color{Blue}
- Large, bold blue\\
- \begin{axopicture}(40,20)
- \Gluon(0,10)(40,10){4}{4}
- \end{axopicture}\\
- \end{center}
- And normal text afterward.
- \end{minipage}
- \begin{minipage}{7.7cm}
- \label{scope}
- \begin{verbatim}
- Normal text, then
- \begin{center}
- \Large \bf \color{Blue}
- Large, bold blue
- \begin{axopicture}(40,20)
- \Gluon(0,10)(40,10){4}{4}
- \end{axopicture}\\
- \end{center}
- And normal text afterward.
- \end{verbatim}
- \end{minipage}
- \end{center}
-
-\item A delimited section of text can be set in a color by using a
- macro named by the color (e.g., $\verb+\Red+$):
- \begin{center}
- \begin{minipage}{6cm}
- In the middle of black text,
- \textcolor{Red}{red text and
- \begin{axopicture}(30,10)
- \Gluon(0,5)(30,5){3}{4}
- \end{axopicture}\
- gluon%
- }.
- Then continue \dots
- \end{minipage}
- \begin{minipage}{7.3cm}
- \label{Red}
- \begin{verbatim}
- In the middle of black text,
- \Red{red text and
- \begin{axopicture}(30,10)
- \Gluon(0,5)(30,5){3}{4}
- \end{axopicture}\
- gluon%
- }.
- Then continue \dots
- \end{verbatim}
- \end{minipage}
- \end{center}
- These macros correspond to macros defined by the \file{colordvi.sty}
- package, but they now apply to axodraw objects as well.
-
-\item The same effect, for named colors, can be achieved by
- \file{color.sty}'s \verb+\textcolor+ macro. Thus
- \verb+\textcolor{Red}{...}+ is equivalent to \verb+\Red{...}+.
-
-\end{itemize}
-
-It is also possible to define new named colors, in the CMYK
-system. This means that each color is defined by four numbers. New
-colors can be introduced with the \verb:\newcolor{#1}{#2}: command as
-in \verb:\newcolor{LightRed}{0 0.75 0.7 0}:. This use of this command
-defines a named color for use in axodraw, with corresponding macros
-\verb:\LightRed: and \verb:\textLightRed{#1}:, and also makes the name
-known to \file{color.sty}. (Use of \file{color.sty}'s
-\verb:\definecolor: macro is not supported here: it will affect only
-normal \LaTeX{} text, but not axodraw objects, and it will fail to
-define the extra macros.)
-
-We define the CMYK values for the named colors in the
-\file{axodraw2.sty} file. These override the definitions provided
-by \file{color.sty} (in its file dvipsnam.def), which are the same
-(at least currently).
-
-There can be differences in how colors render on different devices.
-In principle, there should be compensations made by the driver to
-compensate for individual device properties. Our experience is however
-that such compensations are not always implemented well enough. Most
-notorious are differences between the shades of green on the screen,
-on projectors, and on output from a printer. These colors are usually
-much too light on a projector and one way to correct this is to
-redefine those colors when the output is prepared for a projector,
-e.g., by use of axodraw's \verb:\newcolor{#1}{#2}: macro. An example
-is illustrated by
-\begin{center}
- \color{green}
- \begin{axopicture}(100,20)
- \Text(25,15){color.sty's green}
- \Line[width=2](0,0)(50,0)
- \end{axopicture}
-%
- \color{Green}
- \begin{axopicture}(100,20)
- \Text(25,15){axodraw's Green}
- \Line[width=2](0,0)(50,0)
- \end{axopicture}
-\end{center}
-coded by
-\begin{verbatim}
- \color{green}
- \begin{axopicture}(100,20)
- \Text(25,15){color.sty's green}
- \Line[width=2](0,0)(50,0)
- \end{axopicture}
-%
- \color{Green}
- \begin{axopicture}(100,20)
- \Text(25,15){axodraw's Green}
- \Line[width=2](0,0)(50,0)
- \end{axopicture}
-\end{verbatim}
-On a typical screen or projector, we find that the two greens are
-quite distinct, the ``green'' being much lighter than the
-``Green''\footnote{The ``green'' is defined in the RGB scheme from the
- values $(0,1,0)$, while ``Green'' is defined in the CMYK scheme from
- the values $(1,0,1,0)$.}. But on the paper output from our
-printers, they give close results.
-
-
-
-\subsubsection{Defined named colors}
-\label{sec:defined.colors}
-
-The first set of predefined colors are those defined by dvips (and
-defined in \file{colordvi.sty}, or in \file{color.sty} with the
-use of both of its usenames and dvipsnames options). They are
-\begin{quote}
-\sloppy
-\GreenYellow{GreenYellow},
-\Yellow{Yellow},
-\Goldenrod{Goldenrod},
-\Dandelion{Dandelion},
-\Apricot{Apricot},
-\Peach{Peach},
-\Melon{Melon},
-\YellowOrange{YellowOrange},
-\Orange{Orange},
-\BurntOrange{BurntOrange},
-\Bittersweet{Bittersweet},
-\RedOrange{RedOrange},
-\Mahogany{Mahogany},
-\Maroon{Maroon},
-\BrickRed{BrickRed},
-\Red{Red},
-\OrangeRed{OrangeRed},
-\RubineRed{RubineRed},
-\WildStrawberry{WildStrawberry},
-\Salmon{Salmon},
-\CarnationPink{CarnationPink},
-\Magenta{Magenta},
-\VioletRed{VioletRed},
-\Rhodamine{Rhodamine},
-\Mulberry{Mulberry},
-\RedViolet{RedViolet},
-\Fuchsia{Fuchsia},
-\Lavender{Lavender},
-\Thistle{Thistle},
-\Orchid{Orchid},
-\DarkOrchid{DarkOrchid},
-\Purple{Purple},
-\Plum{Plum},
-\Violet{Violet},
-\RoyalPurple{RoyalPurple},
-\BlueViolet{BlueViolet},
-\Periwinkle{Periwinkle},
-\CadetBlue{CadetBlue},
-\CornflowerBlue{CornflowerBlue},
-\MidnightBlue{MidnightBlue},
-\NavyBlue{NavyBlue},
-\RoyalBlue{RoyalBlue},
-\Blue{Blue},
-\Cerulean{Cerulean},
-\Cyan{Cyan},
-\ProcessBlue{ProcessBlue},
-\SkyBlue{SkyBlue},
-\Turquoise{Turquoise},
-\TealBlue{TealBlue},
-\Aquamarine{Aquamarine},
-\BlueGreen{BlueGreen},
-\Emerald{Emerald},
-\JungleGreen{JungleGreen},
-\SeaGreen{SeaGreen},
-\Green{Green},
-\ForestGreen{ForestGreen},
-\PineGreen{PineGreen},
-\LimeGreen{LimeGreen},
-\YellowGreen{YellowGreen},
-\SpringGreen{SpringGreen},
-\OliveGreen{OliveGreen},
-\RawSienna{RawSienna},
-\Sepia{Sepia},
-\Brown{Brown},
-\Tan{Tan},
-\Gray{Gray},
-\Black{Black},
-White.
-\end{quote}
-In addition \file{axodraw2.sty} defines the following extra colors:
-\begin{quote}
-\LightYellow{LightYellow},
-\LightRed{LightRed},
-\LightBlue{LightBlue},
-\LightGray{LightGray},
-\VeryLightBlue{VeryLightBlue}.
-\end{quote}
-
-Note that \file{color.sty} by default also defines a set of other
-named colors: black, white, red, green, blue, cyan, magenta, and
-yellow (with purely lower-case names). Depending on properties of
-your screen, projector or printer, these may or may not agree with the
-similarly named axodraw colors (which have capitalized names). These
-names can also be used in the \verb+\SetColor+ and \verb+\color+
-commands and for color names to those axodraw commands that take named
-colors for arguments.
-
-
-%\subsection{Background issues on color}
-%\label{sec:color.issues}
-
-
-
-
-%>>#] Colors :
-%>>#[ Some examples :
-
-\section{Some examples}
-\label{sec:examples}
-
-\subsection{A Feynman diagram}
-
-When computing the singlet part of structure functions in polarized Deep
-Inelastic Scattering one approach is to use spin two currents to determine
-all anomalous dimensions. At the three loop level this can give diagrams
-like the following:
-\begin{center}
-\begin{axopicture}{(200,140)(0,0)}
-\SetArrowStroke{0.5}
-\SetArrowScale{0.8}
-\Photon(7,70)(37,70){4}{3}
-\Photon(7,70)(37,70){-4}{3}
-\GluonArc(70,70)(30,90,270){3}{10}
-\Line[arrow](100,100)(70,100)
-\Line[arrow](130,100)(100,100)
-\Line[arrow,arrowpos=0.25](70,100)(130,40)
-\Line[arrow](100,40)(70,40)
-\Line[arrow](130,40)(100,40)
-\Line[arrow,arrowpos=0.75](70,40)(130,100)
-\GluonArc(130,70)(30,270,450){3}{10}
-\Photon(163,70)(193,70){4}{3}
-\Photon(163,70)(193,70){-4}{3}
-\Gluon(100,100)(100,130){3}{4}
-\Gluon(100,40)(100,10){3}{4}
-\Vertex(37,70){2}
-\Vertex(163,70){2}
-\Vertex(70,100){2}
-\Vertex(70,40){2}
-\Vertex(130,100){2}
-\Vertex(130,40){2}
-\Vertex(100,100){2}
-\Vertex(100,40){2}
-\end{axopicture}
-\end{center}
-for which the code is:
-\begin{verbatim}
- \begin{center} \begin{axopicture}{(200,140)(0,0)}
- \SetArrowStroke{0.5} \SetArrowScale{0.8}
- \Photon(7,70)(37,70){4}{3}
- \Photon(7,70)(37,70){-4}{3}
- \GluonArc(70,70)(30,90,270){3}{10}
- \Line[arrow](100,100)(70,100) \Line[arrow](130,100)(100,100)
- \Line[arrow,arrowpos=0.25](70,100)(130,40)
- \Line[arrow](100,40)(70,40) \Line[arrow](130,40)(100,40)
- \Line[arrow,arrowpos=0.75](70,40)(130,100)
- \GluonArc(130,70)(30,270,450){3}{10}
- \Photon(163,70)(193,70){4}{3}
- \Photon(163,70)(193,70){-4}{3}
- \Gluon(100,100)(100,130){3}{4}
- \Gluon(100,40)(100,10){3}{4}
- \Vertex(37,70){2} \Vertex(163,70){2} \Vertex(70,100){2}
- \Vertex(70,40){2} \Vertex(130,100){2} \Vertex(130,40){2}
- \Vertex(100,100){2} \Vertex(100,40){2}
- \end{axopicture} \end{center}
-\end{verbatim}
-The diagrams can become a bit more complicated when more lines meet in a
-single vertex. One could compose some lines from straight lines and arcs,
-but in this case we selected some B\'ezier curves. The result is
-\begin{center}
-\begin{axopicture}{(200,140)(0,0)}
-\SetArrowStroke{0.5}
-\SetArrowScale{0.8}
-\Photon(7,70)(40,70){4}{3}
-\Photon(7,70)(40,70){-4}{3}
-\GluonArc(70,70)(30,180,270){3}{5}
-\Bezier[arrow](100,100)(55,100)(40,95)(40,70)
-\Line[arrow](130,100)(100,100)
-\Bezier[arrow,arrowpos=0.37](40,70)(110,70)(130,70)(130,40)
-\Line[arrow](100,40)(70,40)
-\Line[arrow](130,40)(100,40)
-\Line[arrow,arrowpos=0.75](70,40)(130,100)
-\GluonArc(130,70)(30,270,450){3}{10}
-\Photon(163,70)(193,70){4}{3}
-\Photon(163,70)(193,70){-4}{3}
-\Gluon(100,100)(100,130){3}{4}
-\Gluon(100,40)(100,10){3}{4}
-\Vertex(40,70){2}
-\Vertex(163,70){2}
-\Vertex(70,40){2}
-\Vertex(130,100){2}
-\Vertex(130,40){2}
-\Vertex(100,100){2}
-\Vertex(100,40){2}
-\end{axopicture}
-\end{center}
-for which the code is:
-\begin{verbatim}
- \begin{center}
- \begin{axopicture}{(200,140)(0,0)}
- \SetArrowStroke{0.5} \SetArrowScale{0.8}
- \Photon(7,70)(40,70){4}{3}
- \Photon(7,70)(40,70){-4}{3}
- \GluonArc(70,70)(30,180,270){3}{5}
- \Bezier[arrow](100,100)(55,100)(40,95)(40,70)
- \Line[arrow](130,100)(100,100)
- \Bezier[arrow,arrowpos=0.37](40,70)(100,70)(130,70)(130,40)
- \Line[arrow](100,40)(70,40) \Line[arrow](130,40)(100,40)
- \Line[arrow,arrowpos=0.75](70,40)(130,100)
- \GluonArc(130,70)(30,270,450){3}{10}
- \Photon(163,70)(193,70){4}{3}
- \Photon(163,70)(193,70){-4}{3}
- \Gluon(100,100)(100,130){3}{4} \Gluon(100,40)(100,10){3}{4}
- \Vertex(40,70){2} \Vertex(163,70){2} \Vertex(70,40){2}
- \Vertex(130,100){2} \Vertex(130,40){2} \Vertex(100,100){2}
- \Vertex(100,40){2}
- \end{axopicture}
- \end{center}
-\end{verbatim}
-
-%\subsection{A flowchart}
-
-%\subsection{A histogram}
-
-\subsection{A diagrammatic equation}
-
-This example is from ref~\cite{twopap}. The equations in that paper were
-rather untransparent, because each Feynman diagram represents a complicated
-two loop integral and to solve these integrals one needed many different
-recursion relations in terms of the powers of the propagators. We defined a
-number of macro's for the diagrams, each containing one picture. Here are
-three of them:
-
-\begin{verbatim}
- \def\TAA(#1,#2,#3,#4,#5,#6){
- \raisebox{-19.1pt}{ \hspace{-12pt}
- \begin{axopicture}{(50,39)(0,-4)}
- \SetScale{0.5}\SetColor{Blue}%
- \CArc(40,35)(25,90,270) \CArc(60,35)(25,270,90)
- \Line(40,60)(60,60) \Line(40,10)(60,10) \Line(50,10)(50,60)
- \Line(0,35)(15,35) \Line(85,35)(100,35)
- \SetColor{Black}\SetPFont{Helvetica}{14}%
- \PText(55,39)(0)[lb]{#5} \PText(55,36)(0)[lt]{#6}
- \PText(35,62)(0)[rb]{#1} \PText(65,62)(0)[lb]{#2}
- \PText(65,8)(0)[lt]{#3} \PText(35,8)(0)[rt]{#4}
- \SetColor{Red} \SetWidth{3}
- \Line(50,35)(50,60) \Line(40,60)(50,60)
- \CArc(40,35)(25,90,180) \Vertex(50,60){1.3}
- \end{axopicture}
- \hspace{-12pt}
- }
- }
-\end{verbatim}
-\def\TAA(#1,#2,#3,#4,#5,#6){
- \raisebox{-18.1pt}{ \hspace{-12pt}
- \begin{axopicture}{(50,39)(0,-4)}
- \SetScale{0.5}\SetColor{Blue}%
- \CArc(40,35)(25,90,270) \CArc(60,35)(25,270,90)
- \Line(40,60)(60,60) \Line(40,10)(60,10) \Line(50,10)(50,60)
- \Line(0,35)(15,35) \Line(85,35)(100,35)
- \SetColor{Black}\SetPFont{Helvetica}{14}%
- \PText(55,39)(0)[lb]{#5} \PText(55,36)(0)[lt]{#6}
- \PText(35,62)(0)[rb]{#1} \PText(65,62)(0)[lb]{#2}
- \PText(65,8)(0)[lt]{#3} \PText(35,8)(0)[rt]{#4}
- \SetColor{Red} \SetWidth{3}
- \Line(50,35)(50,60) \Line(40,60)(50,60)
- \CArc(40,35)(25,90,180) \Vertex(50,60){1.3}
- \end{axopicture}
- \hspace{-12pt}
- }
-}
-\begin{verbatim}
- \def\TABs(#1,#2,#3,#4,#5){
- \raisebox{-18.1pt}{ \hspace{-12pt}
- \begin{axopicture}{(50,39)(0,-4)}
- \SetScale{0.5}\SetColor{Blue}%
- \CArc(40,35)(25,90,270) \CArc(60,35)(25,270,90)
- \Line(40,60)(60,60) \Line(40,10)(60,10) \Line(50,10)(50,60)
- \Line(0,35)(15,35) \Line(85,35)(100,35)
- \SetColor{Black}\SetPFont{Helvetica}{14}%
- \PText(55,38)(0)[l]{#5}
- \PText(35,62)(0)[rb]{#1} \PText(65,62)(0)[lb]{#2}
- \PText(65,8)(0)[lt]{#3} \PText(35,8)(0)[rt]{#4}
- \SetColor{Red} \SetWidth{3}
- \Line(50,10)(50,60) \Vertex(50,60){1.3}
- \Line(40,60)(50,60) \CArc(40,35)(25,90,180)
- \end{axopicture}
- \hspace{-12pt}
- }
- }
-\end{verbatim}
-\def\TABs(#1,#2,#3,#4,#5){
- \raisebox{-18.1pt}{ \hspace{-12pt}
- \begin{axopicture}{(50,39)(0,-4)}
- \SetScale{0.5}\SetColor{Blue}%
- \CArc(40,35)(25,90,270) \CArc(60,35)(25,270,90)
- \Line(40,60)(60,60) \Line(40,10)(60,10) \Line(50,10)(50,60)
- \Line(0,35)(15,35) \Line(85,35)(100,35)
- \SetColor{Black}\SetPFont{Helvetica}{14}%
- \PText(55,38)(0)[l]{#5}
- \PText(35,62)(0)[rb]{#1} \PText(65,62)(0)[lb]{#2}
- \PText(65,8)(0)[lt]{#3} \PText(35,8)(0)[rt]{#4}
- \SetColor{Red} \SetWidth{3}
- \Line(50,10)(50,60) \Vertex(50,60){1.3}
- \Line(40,60)(50,60) \CArc(40,35)(25,90,180)
- \end{axopicture}
- \hspace{-12pt}
- }
-}
-\begin{verbatim}
- \def\TACs(#1,#2,#3,#4,#5){
- \raisebox{-19.1pt}{ \hspace{-12pt}
- \begin{axopicture}{(50,39)(0,-4)}
- \SetScale{0.5}\SetColor{Blue}%
- \CArc(40,35)(25,90,270) \CArc(60,35)(25,270,90)
- \Line(40,60)(60,60) \Line(40,10)(60,10) \Line(50,10)(50,60)
- \Line(0,35)(15,35) \Line(85,35)(100,35)
- \SetColor{Black}\SetPFont{Helvetica}{14}%
- \PText(53,38)(0)[l]{#5}
- \PText(35,62)(0)[rb]{#1} \PText(65,62)(0)[lb]{#2}
- \PText(65,8)(0)[lt]{#3} \PText(35,8)(0)[rt]{#4}
- \SetColor{Red} \SetWidth{3}
- \Line(40,60)(50,60) \CArc(40,35)(25,90,180)
- \end{axopicture}
- \hspace{-12pt}
- }
- }
-\end{verbatim}
-\def\TACs(#1,#2,#3,#4,#5){
- \raisebox{-19.1pt}{ \hspace{-12pt}
- \begin{axopicture}{(50,39)(0,-4)}
- \SetScale{0.5}\SetColor{Blue}%
- \CArc(40,35)(25,90,270) \CArc(60,35)(25,270,90)
- \Line(40,60)(60,60) \Line(40,10)(60,10) \Line(50,10)(50,60)
- \Line(0,35)(15,35) \Line(85,35)(100,35)
- \SetColor{Black}\SetPFont{Helvetica}{14}%
- \PText(53,38)(0)[l]{#5}
- \PText(35,62)(0)[rb]{#1} \PText(65,62)(0)[lb]{#2}
- \PText(65,8)(0)[lt]{#3} \PText(35,8)(0)[rt]{#4}
- \SetColor{Red} \SetWidth{3}
- \Line(40,60)(50,60) \CArc(40,35)(25,90,180)
- \end{axopicture}
- \hspace{-12pt}
- }
-}
-and together with two extra little macro's
-\begin{verbatim}
-\def\plus{\!+\!}
-\def\minus{\!-\!}
-\end{verbatim}
-\def\plus{\!+\!}
-\def\minus{\!-\!}
-the equations became rather transparent and easy to program. This is the
-code
-\begin{verbatim}
- \begin{eqnarray}
- \TAA({n,m},1,1,1,1,1) & = & \frac{1}{\tilde{N}\plus 5\plus n\minus
- m\minus D}\ (\ n\ \ \TAA({n+1,m},0,1,1,1,1)
- \ \ -n\ \ \TACs({n+1,m},1,1,1,1) \\ & &
- +\ \ \TAA({n,m},1,0,2,1,1)
- \ \ -\ \ \TABs({n,m},1,1,2,1)
- \ \ +m\ \ \TACs({n,m-1},1,1,1,1)
- \ \ -m\ \ \TABs({n,m-1},1,1,1,1)\ \ \ ) \, .\nonumber
- \end{eqnarray}
-\end{verbatim}
-and the equation becomes
-\begin{eqnarray}
- \TAA({n,m},1,1,1,1,1) & = & \frac{1}{\tilde{N}\plus 5\plus n\minus
- m\minus D}\ (\ n\ \ \TAA({n+1,m},0,1,1,1,1)
- \ \ -n\ \ \TACs({n+1,m},1,1,1,1) \\ & &
- +\ \ \TAA({n,m},1,0,2,1,1)
- \ \ -\ \ \TABs({n,m},1,1,2,1)
- \ \ +m\ \ \TACs({n,m-1},1,1,1,1)
- \ \ -m\ \ \TABs({n,m-1},1,1,1,1)\ \ \ ) \, .\nonumber
-\end{eqnarray}
-The diagrams are actually four-point diagrams. A momentum $P$ flows through
-the diagram (the fat red line), but because the method of computation
-involves an expansion in terms of this momentum the remaining diagrams are
-like two-point functions. Details are in the paper.
-
-%>>#] Some examples :
-%>>#[ Acknowledgements :
-
-\section*{Acknowledgements}
-
-JAMV's work is part of the research program of the ``Stichting voor
-Fundamenteel Onderzoek der Materie (FOM)'', which is financially supported
-by the ``Nederlandse organisatie voor Wetenschappelijke Onderzoek (NWO)'' and
-is also supported by the ERC Advanced Grant no.~320651, HEPGAME.
-JCC is supported in part by the U.S. Department of Energy under Grant
-No.\ DE-SC0008745.
-
-We like to thank Lucas Theussl for discussions during the development of
-axodraw2.
-
-%>>#] Acknowledgements :
-%--#[ Appendix :
-
-\appendix
-
-\section{The \program{axohelp} program: Information for developers}
-\label{sec:axohelp.devel}
-
-This appendix provides some details on how the \program{axohelp} program works.
-Most of the information is only relevant to people who wish to modify
-or extend axodraw2 and therefore may need to modify \program{axohelp} as well.
-
-The reason for \program{axohelp}'s existence is that axodraw needs to perform
-substantial geometric calculations. When axodraw is used with
-pdflatex to produce pdf output directly, suitable calculational
-facilities are not available, neither within the PDF language nor
-within \LaTeX{} itself. Therefore when axodraw is used under
-pdflatex, we use our program \program{axohelp} to perform the calculations.
-
-The mode of operation is as follows. Let us assume that the
-\file{.tex} file being compiled by the \program{pdflatex} program is
-called \file{paper.tex}. When one issues the command
-\begin{verbatim}
- pdflatex paper
-\end{verbatim}
-the reaction of the system is of course to translate all \TeX{}
-related objects into a PDF file. Most (but not all) axodraw objects
-need non-trivial calculations and hence their specifications are
-placed inside a file called \file{paper.ax1}. At the end of the
-processing \program{pdflatex} will place a message on the screen that
-mentions that the user should run the command
-\begin{verbatim}
- axohelp paper
-\end{verbatim}
-for the processing of this graphical information. In principle it is
-possible to arrange for \program{axohelp} to be invoked automatically from
-within pdflatex. But for this to be done, the running of general
-external commands from pdflatex would have to be enabled. That is a
-security risk, and is therefore normally disabled by default for
-pdflatex.
-
-When run, \program{axohelp} reads the file \file{paper.ax1}, processes the
-contents, and produces a file \file{paper.ax2}. For each axodraw
-object, it contains both the code to be placed in the pdf file, and a
-copy of the corresponding specification that was in \file{paper.ax1}.
-
-When pdflatex is run again, it sees that the file \file{paper.ax2} is
-present and reads it in to give essentially an array of objects, one
-for each processed axodraw object. Then during the processing of the
-document, whenever axodraw runs into an axodraw object in need of
-external calculation, it determines whether an exactly corresponding
-specification was present in the file \file{paper.ax2}. If not, it
-means that the graphical information in the file \file{paper.tex} has
-changed since the last run of \program{axohelp} and the graphics information is
-invalidated. In that case, at the end of the program the message to
-run \program{axohelp} will be printed again. But if instead there is an exact
-match between an axodraw object in the current \file{paper.tex} and
-its specification in \file{paper.ax2}, then the corresponding pdf code
-will be placed in the PDF file. If all axodraw commands have a proper
-match in the \file{paper.ax2} file, there will be no message in the
-paper.log file and on the screen about rerunning \program{axohelp}; then the PDF
-file should contain the correct information for drawing the axodraw
-objects (at least if there are no \TeX{} errors).
-
-In a sense the situation with \program{axohelp} is no different from the use of
-makeindex when one prepares a document that contains an index. In that
-case one also has to run \LaTeX{} once to prepare a file for the
-makeindex program, then run this program which prepares another file
-and finally run \LaTeX{} again. Note that if you submit a paper to
-arXiv.org, it is likely that their automated system for processing the
-file will not run \program{axohelp}. So together with \file{paper.tex}, you one
-should also submit the \file{.ax2} file.
-
-The complete source of the \program{axohelp} program can be found in the file
-\file{axohelp.c}. This file contains a bit less than 4000 lines of C
-code but should translate without problems with any C compiler --- see
-Sec.\ \ref{sec:axohelp} for an appropriate command line on typical
-Unix-like systems.
-
-The \program{axohelp} program functions as follows:
-\begin{enumerate}
-\item The \file{.ax1} file is located, space is allocated for it and
- the complete file is read and closed again.
-\item The input is analysed and split in individual object
- specifications, of which a list is made.
-\item The list of object specifications is processed one by
- one. Before the processing of each object specification, the system
- is brought to a default state to avoid that there is a memory of the
- previous object.
-\item In the \file{.ax2} file, for each object is written both the
- corresponding pdf code and a copy of the specification of the object
- as was earlier read from the \file{.ax1} file. Before the output
- for an object is written to the \file{.ax2} file it is optimized a
- bit to avoid superfluous spaces and linefeeds.
-\end{enumerate}
-
-Processing an object from the input involves finding the proper routine for
-it and testing that the number of parameters is correct. Some objects have
-a special input (like the Curve, DashCurve, Polygon and FilledPolygon
-commands). All relevant information is stored in an array of double
-precision numbers. Then some generic action is taken (like setting the
-linewidth and the color) and the right routine is
-called. The output is written to an array of fixed (rather large) length.
-Finally the array is optimized and written to file.
-
-A user who would like to extend the system with new objects should
-take the above structure into account. There is an array that gives
-the correspondence between axodraw object names and the corresponding
-routine in \program{axohelp}. For each object, this array also gives the number
-of parameters and whether the stroking or non-stroking color space
-should be used.
-
-Naturally, when adding new kinds of object, it is necessary to add new
-items to the just-mentioned array, and to add a corresponding
-subroutine. One should also try to do all the writing of PDF code by
-means of some routines like the ones sitting in the file in the
-section named ``PDF utilities''. This is important from the viewpoint
-of future action. When new graphical languages will be introduced and
-it will be needed to modify axodraw2 such that it can produce code for
-those languages, it should be much easier if code in the supporting
-\program{axohelp} program needs to be changed in as few places as possible.
-They form a set of graphics primitives used by other subroutines.
-Some of these subroutines in the ``PDF utilities'' section of
-\file{axohelp.c} have names similar to operators in the postscript
-language that perform the same function.
-
-%--#] Appendix :
-%>>#[ bibliography :
-
-\begin{thebibliography}{9}
-
-\bibitem{axodraw1} J.A.M. Vermaseren,
- Comput.\ Phys.\ Commun.\ {\bf 83} (1994) 45--58
-
-\bibitem{jaxodraw1} D. Binosi and L. Theussl,
- Comput.\ Phys.\ Commun.\ {\bf 161} (2004) 76--86.
-
-\bibitem{jaxodraw2}
-D. Binosi, J. Collins, C. Kaufhold, L. Theussl,
- Comput.\ Phys.\ Commun.\ {\bf 180} (2009) 1709--1715
-
-\bibitem{GPL} GNU General Public
- License. \url{http://www.gnu.org/copyleft/gpl.html}.
-
-\bibitem{qcdbook}
-J.C. Collins, ``Foundations of Perturbative QCD'' (Cambridge
- University Press, 2011).
-
-\bibitem{twopap} S. Moch and J.A.M. Vermaseren,
- Nucl.\ Phys.\ {\bf B573} (2000) 853.
- %%CITATION = NUPHA,B573,853;%%.
-
-\end{thebibliography}
-
-%>>#] bibliography :
-\end{document}
-
diff --git a/Build/source/utils/axodraw2/axodraw2-src/axodraw2.sty b/Build/source/utils/axodraw2/axodraw2-src/axodraw2.sty
deleted file mode 100644
index dc676008c80..00000000000
--- a/Build/source/utils/axodraw2/axodraw2-src/axodraw2.sty
+++ /dev/null
@@ -1,4747 +0,0 @@
-% This is axodraw2.sty
-%
-% (C) 1994-2018 by authors:
-% John Collins (jcc8 at psu dot edu)
-% Jos Vermaseren (t68 at nikhef dot nl)
-%
-%
-% Conditions of use:
-%
-% axodraw is free software: you can redistribute it and/or modify it under
-% the terms of the GNU General Public License as published by the Free
-% Software Foundation, either version 3 of the License, or (at your option)
-% any later version.
-%
-% axodraw is distributed in the hope that it will be useful, but WITHOUT ANY
-% WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-% FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
-% details.
-%
-% For the GNU General Public License see <http://www.gnu.org/licenses/>.
-%
-% Code necessities:
-%
-% 1. \ignorespaces at end of commands that draw things. Often it won't
-% matter, but occasionally a command in a picture environment
-% will set material and a following uncommented end-of-line in
-% the user's code will shift the insertion point.
-% 2. Use end-of-line comments whereever TeX might use the end-of-line as
-% a space to be typeset.
-%
-% Conventions
-%
-% 1. Any font and color changes that are supposed to be local should
-% be made local, either by explicit TeX grouping or by being
-% inside commands (e.g., box-making commands) that enforce groups.
-% Braces work, but \begingroup and \endgroup are easier to see in
-% multiline groups.
-% 2. Scaling:
-% \unitlength is the unit for the canvas (as in picture environment).
-% \axoscale is for the unit for coordinates, widths, etc
-% \axotextscale is for all text objects, BUT only when
-% PSText is NOT set to scale as graphics objects
-% When PSText is set to scale as graphics objects, PSText
-% scales by \axoscale, but TeX-text has unit scaling.
-% Given a specification of a position (x,y) as in a call to \Line,
-% the position of the point relative to the origin is
-% x_act = (x + \axoxo ) \axoscale pt + \axoxoffset \unitlength
-% y_act = (y + \axoyo ) \axoscale pt + \axoyoffset \unitlength
-% Widths and the like for lines are in units of \axoscale pt
-%
-% #[ About folds : (this line starts with one % and two tabs)
-%
-% The internals of the file have been organized in folds.
-% These are defined as a range of lines if which the first and last
-% lines have a special format. Each starts with any three characters
-% (may include tabs), then #[ for the start line and #] for the closing
-% line, then both lines need identical name fields, closed by a colon.
-% After the colon can be anything. When a fold is closed one should see
-% only the first line but with the #[ replaced by ## as in
-% ## About folds : (this line starts with one % and two tabs)
-% Folds can be nested.
-% This fold concept comes originally from the occam compiler for the
-% transputer in the second half of the 1980's although there it was
-% implemented differently. It was taken over by the STedi editor in its
-% current form. The sources of this editor are available from the form
-% home site: http://www.nikhef.nl/~form
-% Some people have managed to emulate these folds in editors like emacs
-% and vim.
-%
-% #] About folds :
-%
-\ProvidesPackage{axodraw2}[2018/10/10 v2.1.2]
-%
-% axodraw.sty file, both for .tex -> .dvi -> .ps and for .tex -> .pdf
-%
-% #[ Common LaTeX code :
-% #[ Variables :
-%
-%
-\RequirePackage{keyval}
-\RequirePackage{ifthen}
-\RequirePackage{graphicx}
-\RequirePackage{color}
-\RequirePackage{ifxetex}
-%
-%
-\DeclareOption{v1compatible}{
- \def\B2Text{\BTwoText}
- \def\G2Text{\GTwoText}
- \def\C2Text{\CTwoText}
-}
-\DeclareOption{canvasScaleIs1pt}{\canvasScaleOnept}
-\DeclareOption{canvasScaleIsObjectScale}{\canvasScaleObjectScale}
-\DeclareOption{canvasScaleIsUnitLength}{\canvasScaleUnitLength}
-\DeclareOption{PSTextScalesIndependently}{\PSTextScalesLikeGraphicsfalse}
-\DeclareOption{PSTextScalesLikeGraphics}{\PSTextScalesLikeGraphicstrue}
-
-% N.B. Option processing is deferred to end of this file, so that all
-% definitions and initializations have been done first.
-
-% Settings for pdf v. dvi/ps output:
-% We need to be able to run under latex, pdflatex, lualatex, and
-% xelatex, and use (if possible) \pdfoutput and \pdfliteral
-%
-% latex: Initially \pdfoutput is 0, and \pdfliteral is defined but
-% not usable.
-% pdflatex: Initially \pdfoutput is 1, and \pdfliteral is defined and
-% usable.
-% lualatex: same as pdflatex in versions up to 0.80
-% But in versions from 0.85, pdfouput and pdfliteral aren't
-% defined; instead \outputmode, \pdfextension literal{...}
-% are available instead.
-% xelatex: Both \pdfoutput and \pdfliteral are undefined
-% but special{pdf:literal ...} gives same effect as
-% \pdfliteral would, and we can assume pdf mode always.
-% When \pdfoutput is defined, the user can change its value to change
-% the type of output. This must be done before the first page is
-% created. But various packages (including graphics and ifpdf, as
-% well as axodraw) take actions when the package is loaded that depend
-% on current state of \pdfoutput (or its equivalent). So it is
-% reasonable to require that \pdfoutput be set only before packages
-% are loaded and not set later.
-%
-% We define \axo@pdfoutput and \axo@pdfliteral for our uses to have
-% function of \pdfoutput and \pdfliteral, but to be defined always.
-% We initialize them to a default suitable for dvi mode, and override
-% these definitions to cover the situations listed above. This needs
-% tests for whether \pdfoutput, \outputmode, etc are undefined of
-% defined. We put these inside a group, to evade the side effect that
-% \@ifundefined defines the object being tested.
-%
-% Default values:
-\newcount\axo@pdfoutput
-\axo@pdfoutput=0
-\def\axo@pdfliteral#1%
- {\PackageWarning{axo}{Bug: pdfliteral accessed but not available}}
-\bgroup
- \@ifundefined{pdfoutput}%
- {}%
- {\global\axo@pdfoutput=\pdfoutput}%
- %
- \@ifundefined{pdfliteral}%
- {}%
- {% Define \axo@pdfliteral to call \pdfliteral, so that if the
- % definition of \pdfliteral were to be overridden, we get to
- % use the changed definition
- \gdef\axo@pdfliteral#1{\pdfliteral{#1}}}%
- \@ifundefined{outputmode}%
- {}%
- {\global\axo@pdfoutput=\outputmode}
- \@ifundefined{pdfextension}%
- {}%
- {\gdef\axo@pdfliteral#1{\pdfextension literal{#1}}}
-\egroup
-\ifxetex
- \axo@pdfoutput=1
- \def\axo@pdfliteral#1{\special{pdf:literal #1}}
-\fi
-
-%
-% For communicating with axohelp with global file
-%
-\newif\ifaxo@axohelpRerun
-\axo@axohelpRerunfalse
-%
-\newcounter{axo@objectIndex}
-\setcounter{axo@objectIndex}{0}
-\newwrite\axo@spec
-\newread\axo@axohelpFile
-%
-\newcommand\axo@setObject[3]{
- \expandafter\gdef\csname axo@input@#1\endcsname{#2}
- \expandafter\gdef\csname axo@output@#1\endcsname{#3}
-}
-%
-\ifcase\axo@pdfoutput
-\else
- \IfFileExists{\jobname.ax2}%
- {{% For comparisons between current definition of object
- % and previously processed definition, spaces must be preserved.
- \obeyspaces
- \openin\axo@axohelpFile=\jobname.ax2
- }}%
- {%
- \PackageWarning{axo}{File `\jobname.ax2' not found.}
- \axo@axohelpReruntrue
- }
- \AtBeginDocument{\immediate\openout\axo@spec\jobname.ax1}
- \AtEndDocument{\immediate\closeout\axo@spec
- \ifaxo@axohelpRerun
- \PackageWarning{axodraw2}{Run `axohelp \jobname'
- and then rerun pdflatex.}
- \fi
- }
-\fi
-
-% Commands to set parameters
-%
-% Arrow scale:
-\newcommand{\AXO@DefaultArrowScale}{1}
-\newcommand\SetArrowScale[1]{%
- \renewcommand\AXO@DefaultArrowScale{#1}%
-}
-% Alternative name
-\newcommand\DefaultArrowScale[1]{\SetArrowScale{#1}}
-\SetArrowScale{1}
-
-% Arrow inset:
-\newcommand\AXO@ArrowInset{0.2}
-%\renewcommand\AXO@ArrowInset{-1 }
-\newcommand\SetArrowInset[1]{%
- \renewcommand\AXO@ArrowInset{#1}%
-}
-
-% Arrow aspect:
-\newcommand\AXO@DefaultArrowAspect{1.25}
-\newcommand\SetArrowAspect[1]{%
- \renewcommand\AXO@DefaultArrowAspect{#1}%
-}
-
-% Arrow position (fractional position along line):
-\newcommand\AXO@ArrowPos{0.5}
-\newcommand\SetArrowPosition[1]{%
- \renewcommand\AXO@ArrowPos{#1}%
-}
-
-% Arrow stroke width
-\newcommand{\AXO@DefaultArrowStroke}{0 }
-\newcommand\SetArrowStroke[1]{%
- \renewcommand\AXO@DefaultArrowStroke{#1}%
-}
-
-\newlength{\axounitlength}
-% The next two are scratch registers
-\newlength\axo@x
-\newlength\axo@y
-% Initializations
-\axounitlength=\unitlength
-\def\axocanvas{1} % How unitlength is set in axopicture environment
- % 0 => 1 pt
- % 1 => \axoscale pt
- % 2 => Don't set it
-\def\axominusone{-1}
-\def\axoone{1}
-\def\axozero{0}
-\def\axowidth{0.5}
-\def\axoscale{1.0}
-\def\axotextscale{1.0}
-\newif\ifPSTextScalesLikeGraphics
-\PSTextScalesLikeGraphicstrue
-\def\axoxoff{0}
-\def\axoyoff{0}
-\def\axoxo{0}
-\def\axoyo{0}
-\def\axoarrowsize{2}
-%
-%
-% Now the user callable routines, and their immediate helpers
-%
-% Commands for setting parameters applicable to subsequent graphical objects:
-%
-\def\SetLineSep#1{\def\AXO@Sep{#1}\ignorespaces}\relax
-\let\SetSep=\SetLineSep\relax
-\def\SetDashSize#1{\def\AXO@DashSize{#1}\ignorespaces}\relax
-\def\SetWidth#1{\def\axowidth{#1}\ignorespaces}
-\def\SetArrowSize#1{\def\axoarrowsize{#1}}
-
-\def\SetObjectScale#1{\def\axoscale{#1}\ignorespaces}
-\def\SetCanvasScale#1{\unitlength = #1 pt\ignorespaces}
-\def\SetTextScale#1{\def\axotextscale{#1}\ignorespaces}
-\let\SetScale = \SetObjectScale
-
-\def\SetOffset(#1,#2){\def\axoxoff{#1}\def\axoyoff{#2}\ignorespaces}
-\def\SetScaledOffset(#1,#2){\def\axoxo{#1}\def\axoyo{#2}\ignorespaces}
-
-\def\canvasScaleOnept{\def\axocanvas{0}}
-\def\canvasScaleObjectScale{\def\axocanvas{1}}
-\def\canvasScaleUnitLength{\def\axocanvas{2}}
-
-%
-%
-% #] Variables :
-% #[ Defining commands with optional arguments :
-%
-\def\defWithOption#1#2#3{%
- \@namedef{#1}%
- {%
- \@ifnextchar[%]
- {\@nameuse{#1@A}}%
- {\@nameuse{#1@A}[]}%
- }%
- \@namedef{#1@A}[##1]#2%
- {#3}%
-}
-%
-% #] Defining commands with optional arguments :
-% #[ axopicture :
-%
-% Version of picture environment with unitlength set to 1pt
-% as assumed by axodraw. We also store some variables and reset them
-% afterwards. This makes the picture environment also local from the
-% axodraw viewpoint. To change the global settings one should issue
-% the corresponding command from outside the axopicture environment.
-% Use: \begin{axopicture}(width,height)(xshift,yshift)
-% \end{axopicture}
-% The old use with the regular picture environment will still work,
-% but it will have the old shortcomings connected to it.
-%
-\let\OLDpicture=\picture
-\let\endOLDpicture=\endpicture
-\newenvironment{axopicture}
-{%
- \ifcase \axocanvas
- \setlength{\unitlength}{1 pt}%
- \or
- \setlength{\unitlength}{\axoscale\space pt}%
- \else
- % Leave \unitlength as whatever the user set
- \fi
- \begin{OLDpicture}%
-}
-{%
- \end{OLDpicture}%
- \ignorespacesafterend
-}
-%
-% #] axopicture :
-% #[ AXO@keys :
-%
-
-% Diagnostics for unimplemented features:
-\newif\ifAXONotImplemented
-\AXONotImplementedfalse
-\def\AXO@NOTIMPLEMENTED#1{%
- \global\AXONotImplementedtrue
- \PackageWarning{axodraw2}{#1}%
-}
-\AtEndDocument{%
- \ifAXONotImplemented
- \PackageWarningNoLine{axodraw2}{unimplemented features used
- somewhere in document}%
- \fi
-}
-
-% The next is used temporarily, it gives the result of parsing an
-% arrow-using command to give the Postscript code for setting the
-% arrow.
-%
-% Keys for optional arguments:
-% First the variables used, with some defaults.
-\newif\ifAXO@arrow
-\AXO@arrowfalse
-\newif\ifAXO@clock
-\AXO@clockfalse
-\newif\ifAXO@dash
-\AXO@dashfalse
-\newif\ifAXO@double
-\AXO@doublefalse
-\newif\ifAXO@flip % Flip arrow orientation, as in JaxoDraw
-\AXO@flipfalse
-\newif\ifAXO@linecolor % Option sets color for current line
-\AXO@linecolorfalse
-
-\def\AXO@Sep{2} % Double line separation
-\def\AXO@DashSize{3}
-
-% Then the definitions of the keys
-\define@key{axo}{arrowscale}{%
- \def\AXO@CurrentArrowScale{#1}%
-}
-\define@key{axo}{arrowwidth}{%
- \def\AXO@CurrentArrowWidth{#1}%
-}
-\define@key{axo}{arrowlength}{%
- \def\AXO@CurrentArrowLength{#1}%
-}
-% Make arrowheight a synonym for arrowlength
-\let\KV@axo@arrowheight=\KV@axo@arrowlength
-%
-\define@key{axo}{arrowpos}{%
- \def\AXO@CurrentArrowPos{#1 }
-}
-%
-\define@key{axo}{arrowaspect}{%
- \def\AXO@CurrentArrowAspect{#1 }
-}
-%
-\define@key{axo}{arrowinset}{%
- \def\AXO@CurrentArrowInset{#1 }
-}
-% Make inset a synonym for arrowinset
-\let\KV@axo@inset=\KV@axo@arrowinset
-%
-\define@key{axo}{arrowstroke}{%
- \def\AXO@CurrentArrowStroke{#1 }
-}
-%
-\define@key{axo}{arrow}[true]{%
- \AXO@boolkey{#1}{arrow}%
-}
-\define@key{axo}{clock}[true]{%
- \AXO@boolkey{#1}{clock}%
-}
-\define@key{axo}{clockwise}[true]{%
- \AXO@boolkey{#1}{clock}%
-}
-\define@key{axo}{color}{%
- \def\AXO@CurrentColor{#1}%
- \AXO@linecolortrue
-}
-% Make colour a synonym for color
-\let\KV@axo@colour=\KV@axo@color
-%
-\define@key{axo}{dash}[true]{%
- \AXO@boolkey{#1}{dash}%
-}
-\define@key{axo}{dashsize}{%
- \def\AXO@CurrentDashSize{#1 }
-}
-\define@key{axo}{dsize}{%
- \def\AXO@CurrentDashSize{#1 }
-}
-\define@key{axo}{double}[true]{%
- \AXO@boolkey{#1}{double}%
-}
-\define@key{axo}{flip}[true]{%
- \AXO@boolkey{#1}{flip}%
-}
-\define@key{axo}{linesep}{%
- \def\AXO@CurrentSep{#1}
-}
-\define@key{axo}{sep}{%
- \def\AXO@CurrentSep{#1}
-}
-\define@key{axo}{width}{%
- \def\AXO@CurrentWidth{#1}%
-}
-%
-% #] AXO@keys :
-% #[ AXO@Parse :
-%
-% Parsing of optional arguments, etc
-%
-\def\AXO@Parse#1#2{%
- % Usage: \AXO@Parse#1#2 or \AXO@Parse#1#2[#3]
- % #1 is a command for setting an object, that takes no optional argument
- % #2 and the optional #3 are keyword settings.
- % There then follow the compulsory arguments for the command in #1.
- %
- % E.g., \AXO@Parse{\AXO@Line}{double}(x1,y1)(x2,y2)
- % \AXO@Parse{\AXO@Line}{double}[arrow](x1,y1)(x2,y2)
- %
- % I will
- % (a) Set standard initial settings (arrows, etc)
- % (b) Parse the keyword settings in #2 and #3, e.g., scale = 3,
- % (c) Call #1 to make the object
- \AXO@arrowfalse
- \AXO@clockfalse
- \AXO@dashfalse
- \AXO@doublefalse
- \AXO@flipfalse
- \AXO@linecolorfalse
- \let\AXO@CurrentWidth\axowidth
- \let\AXO@CurrentArrowPos\AXO@ArrowPos
- \let\AXO@CurrentArrowWidth\relax
- \let\AXO@CurrentArrowLength\relax
- \let\AXO@CurrentArrowInset\AXO@ArrowInset
- \let\AXO@CurrentArrowScale\AXO@DefaultArrowScale
- \let\AXO@CurrentArrowStroke\AXO@DefaultArrowStroke
- \let\AXO@CurrentArrowAspect\AXO@DefaultArrowAspect
- \let\AXO@CurrentDashSize\AXO@DashSize
- \let\AXO@CurrentSep=\AXO@Sep
- \@ifnextchar[{\AXO@Options{#1}{#2}}%
- {\AXO@Options{#1}{#2}[]}%
-}
-%
-% #] AXO@Parse :
-% #[ AXO@Options :
-%
-\def\AXO@Options#1#2[#3]{%
- % #1 is command to execute, #2 and #3 are options.
- \setkeys{axo}{#2}%
- \setkeys{axo}{#3}%
- \ifx\AXO@CurrentArrowLength\relax
- \def\AXO@CurrentArrowLength{0 }%
- \fi
- \ifx\AXO@CurrentArrowWidth\relax
- \def\AXO@CurrentArrowWidth{0 }%
- \fi
- \ifAXO@arrow
- \def\AXO@ArrowArg{
- \AXO@CurrentArrowStroke \space %
- \AXO@CurrentArrowWidth \space %
- \AXO@CurrentArrowLength \space %
- \AXO@CurrentArrowInset \space %
- \AXO@CurrentArrowScale \space %
- \AXO@CurrentArrowAspect \space %
- \AXO@CurrentArrowPos \space %
- \ifcase\axo@pdfoutput
- true \space % Indicates that an arrow should be drawn.
- \else
- 1 \space % Indicates that an arrow should be drawn.
- \fi
- }%
- \else
- \ifcase\axo@pdfoutput
- \def\AXO@ArrowArg{ 0 0 0 0 0 0 0 false }%
- \else
- \def\AXO@ArrowArg{ 0 0 0 0 0 0 0 0 }%
- \fi
- \fi
- #1%
-}
-%
-\def\AXO@useopts{%
- % Override global settings by those from options
- % HACK: The \@killglue solves problem that setting color
- % causes a shift in horizontal position.
- % Motivation: From definition of \put.
- \@killglue
- \ifAXO@linecolor \SetColor{\AXO@CurrentColor}\fi
-}
-%
-% Now ensure there is a setting for the current arrow
-\AXO@Parse{}{}
-%
-% #] AXO@Options :
-% #[ AXO@varia :
-%
-% Now ensure there is a setting for the current arrow
-\AXO@Parse{}{}
-
-\def\AXO@PrependOption#1#2{%
- % Run command #1, which has an optional argument, with #2 prepended
- % to the command's optional arguments. If there are no optional
- % arguments, just run the command with #2 as the optional arguments
- \@ifnextchar[{\AXO@TwoOption{#1}{#2}}%
- {#1[#2]}%
-}
-\def\AXO@TwoOption#1#2[#3]{%
- #1[#2,#3]%
-}
-%
-% Copied from graphicx.sty, for use with boolean keys
-% Modified to do lower casing here
-\def\AXO@boolkey#1#2{%
- \lowercase{\AXO@boolkeyA{#1}}{#2}%
-}
-\def\AXO@boolkeyA#1#2{%
- \csname AXO@#2\ifx\relax#1\relax true\else#1\fi\endcsname
-}
-%
-% #] AXO@varia :
-% #[ Colors :
-%
-% Here we make an interface, compatible with both: color.sty,
-% with the commands of axodraw v. 1, and with the commands of
-% colordvi.sty (used by axodraw v. 1).
-%
-% 1. We make a set of named colors suitable for use with both
-% axodraw's commands that take color arguments and with
-% color.sty's \color command.
-% 2. We define a command \SetColor to set a named color as the
-% current color. It is now identical to \color.
-% 3. For each of the colors that we define here, we make
-% named color setting commands, e.g., \Red
-% \textRed. \Red sets its (one) argument in Red, \textRed
-% is a "declaration" that changes the current color.
-% All the commands for setting color apply to both regular LaTeX
-% material and to axodraw objects. Their setting of color
-% respects LaTeX environments and TeX groups.
-%
-% We also define
-% a. Named-color commands like \textRed and \Red for named
-% colors to give the same interface as the colordvi
-% package (and hence axodraw v. 1).
-% b. \SetColor command to set a named color.
-
-
-\let\SetColor=\color
-
-% For v. 1 compatibility:
-\def\IfColor#1#2{#1}
-
-\newcommand\newcolor[2]{%
- % Define a named color both in the color.sty style
- % and in the colordvi.sty, with also a command giving the CMYK value.
- % #1 is the color's name, #2 is its CMYK definition, space
- % separated.
- %
- % Invoke color.sty's \definecolor after change of argument format:
- \axo@new@color #1 #2\@%
- % Define commands to use this color,
- % E.g., if #1 is Red, then define \Red and \textRed:
- \expandafter\def\csname #1\endcsname##1{{\SetColor{#1}##1}\ignorespaces}
- \expandafter\def\csname text#1\endcsname{\SetColor{#1}\ignorespaces}
- % The following to give the cmyk value of a color, e.g., \cmykRed,
- % is no longer needed, since we no longer do color setting in
- % postscript and pdf code:
-%% \expandafter\def\csname cmyk#1\endcsname{#2}
-}
-
-% Command to invoke color.sty's \definecolor, which needs a translation
-% of our space-separated CMYK vector to a comma-separated vector:
-\def\axo@new@color #1 #2 #3 #4 #5\@{\definecolor{#1}{cmyk}{#2,#3,#4,#5}}
-
-
-% For consistency we define our named colors here, rather than
-% using color.sty's mechanisms. The
-% first 68 are standard colors, as defined by dvips, and
-% implemented in both colordvi.ps, and in color.sty with its
-% usenames and dvipsnames options (in the file dvipsnam.def
-% provided by the LaTeX graphics package).
-%
-% We define an extra 5 colors at the end
-%
-% The 68 dvips-defined colors are:
-%
-\newcolor{GreenYellow}{0.15 0 0.69 0}
-\newcolor{Yellow}{0 0 1 0}
-\newcolor{Goldenrod}{0 0.10 0.84 0}
-\newcolor{Dandelion}{0 0.29 0.84 0}
-\newcolor{Apricot}{0 0.32 0.52 0}
-\newcolor{Peach}{0 0.50 0.70 0}
-\newcolor{Melon}{0 0.46 0.50 0}
-\newcolor{YellowOrange}{0 0.42 1 0}
-\newcolor{Orange}{0 0.61 0.87 0}
-\newcolor{BurntOrange}{0 0.51 1 0}
-\newcolor{Bittersweet}{0 0.75 1 0.24}
-\newcolor{RedOrange}{0 0.77 0.87 0}
-\newcolor{Mahogany}{0 0.85 0.87 0.35}
-\newcolor{Maroon}{0 0.87 0.68 0.32}
-\newcolor{BrickRed}{0 0.89 0.94 0.28}
-\newcolor{Red}{0 1 1 0}
-\newcolor{OrangeRed}{0 1 0.50 0}
-\newcolor{RubineRed}{0 1 0.13 0}
-\newcolor{WildStrawberry}{0 0.96 0.39 0}
-\newcolor{Salmon}{0 0.53 0.38 0}
-\newcolor{CarnationPink}{0 0.63 0 0}
-\newcolor{Magenta}{0 1 0 0}
-\newcolor{VioletRed}{0 0.81 0 0}
-\newcolor{Rhodamine}{0 0.82 0 0}
-\newcolor{Mulberry}{0.34 0.90 0 0.02}
-\newcolor{RedViolet}{0.07 0.90 0 0.34}
-\newcolor{Fuchsia}{0.47 0.91 0 0.08}
-\newcolor{Lavender}{0 0.48 0 0}
-\newcolor{Thistle}{0.12 0.59 0 0}
-\newcolor{Orchid}{0.32 0.64 0 0}
-\newcolor{DarkOrchid}{0.40 0.80 0.20 0}
-\newcolor{Purple}{0.45 0.86 0 0}
-\newcolor{Plum}{0.50 1 0 0}
-\newcolor{Violet}{0.79 0.88 0 0}
-\newcolor{RoyalPurple}{0.75 0.90 0 0}
-\newcolor{BlueViolet}{0.86 0.91 0 0.04}
-\newcolor{Periwinkle}{0.57 0.55 0 0}
-\newcolor{CadetBlue}{0.62 0.57 0.23 0}
-\newcolor{CornflowerBlue}{0.65 0.13 0 0}
-\newcolor{MidnightBlue}{0.98 0.13 0 0.43}
-\newcolor{NavyBlue}{0.94 0.54 0 0}
-\newcolor{RoyalBlue}{1 0.50 0 0}
-\newcolor{Blue}{1 1 0 0}
-\newcolor{Cerulean}{0.94 0.11 0 0}
-\newcolor{Cyan}{1 0 0 0}
-\newcolor{ProcessBlue}{0.96 0 0 0}
-\newcolor{SkyBlue}{0.62 0 0.12 0}
-\newcolor{Turquoise}{0.85 0 0.20 0}
-\newcolor{TealBlue}{0.86 0 0.34 0.02}
-\newcolor{Aquamarine}{0.82 0 0.30 0}
-\newcolor{BlueGreen}{0.85 0 0.33 0}
-\newcolor{Emerald}{1 0 0.50 0}
-\newcolor{JungleGreen}{0.99 0 0.52 0}
-\newcolor{SeaGreen}{0.69 0 0.50 0}
-\newcolor{Green}{1 0 1 0}
-\newcolor{ForestGreen}{0.91 0 0.88 0.12}
-\newcolor{PineGreen}{0.92 0 0.59 0.25}
-\newcolor{LimeGreen}{0.50 0 1 0}
-\newcolor{YellowGreen}{0.44 0 0.74 0}
-\newcolor{SpringGreen}{0.26 0 0.76 0}
-\newcolor{OliveGreen}{0.64 0 0.95 0.40}
-\newcolor{RawSienna}{0 0.72 1 0.45}
-\newcolor{Sepia}{0 0.83 1 0.70}
-\newcolor{Brown}{0 0.81 1 0.60}
-\newcolor{Tan}{0.14 0.42 0.56 0}
-\newcolor{Gray}{0 0 0 0.50}
-\newcolor{Black}{0 0 0 1}
-\newcolor{White}{0 0 0 0}
-%
-% Our extra colors
-%
-\newcolor{LightYellow}{0 0 0.7 0}
-\newcolor{LightRed}{0 0.75 0.7 0}
-\newcolor{LightBlue}{0.7 0.5 0 0}
-\newcolor{LightGray}{0 0 0 0.1}
-\newcolor{VeryLightBlue}{0.15 0.07 0 0}
-%
-\SetColor{Black}
-%
-% #] Colors :
-% #] Common LaTeX code :
-% #[ LaTeX primitives :
-%
-% #[ Putting material
-%
-
-% Some utilities that remove extra space that creeps in, particularly
-% when extra groups are inserted before the use of \put.
-% Use the definition of \@killglue used in latex.ltx for \put,
-% but copy it here, since \@killglue is internal and not documented.
-\gdef\AXO@killglue{\unskip\@whiledim \lastskip >\z@\do{\unskip}}
-
-% Special purpose versions of \put and \special
-\long\gdef\putLen(#1,#2)#3{%
- % Like LaTeX's \put, except that #1 and #2 are lengths instead of numbers
- % giving lengths in units of \unitlength.
- \AXO@killglue\raise#2\relax
- \hbox to 0pt{\kern#1\relax #3\hss}%
- \ignorespaces
-}
-%
-\def\AxoPut(#1,#2)#3{%
- % Like \put, but shifted by axodraw's offsets.
- % This provides a way of coding the offsets in one place.
- % But we are only using it in a limited set of cases so far.
- \AXO@killglue
- \bgroup
- \axounitlength = \axoscale pt
- \axo@x = \axoxoff \unitlength
- \advance\axo@x by \axoxo \axounitlength
- \advance\axo@x by #1 \axounitlength
- \axo@y = \axoyoff \unitlength
- \advance\axo@y by \axoyo \axounitlength
- \advance\axo@y by #2 \axounitlength
- \putLen(\axo@x,\axo@y){%
- % If there are axodraw objects in #3, they should not also
- % apply shifts, that would be double
- % counting! Hence:
- \SetOffset(0,0)%
- \SetScaledOffset(0,0)%
- #3%
- }%
- \egroup
-\ignorespaces
-}
-
-\def\AXOspecial#1{%
- % Insertion of postscript code:
- % Replacement for \special{" ...}, with the color initialized
- % to the color befor the \special. (Ordinary \special{"...}
- % initializes color to black.)
- % Definitions made by \special{!...} are in dictionary SDict
- % (as stated in dvips documentation), and we save color there.
- \special{ps:: SDict begin savecolor end }%
- \special{" restorecolor #1 }%
-}
-
-\def\AXOputPS#1{%
- % Insert postscript code after allowing for offsets.
- \AxoPut(0,0){\AXOspecial{#1}}%
-}
-
-\def\AXOputPDF#1{
- % Insert pdf code after allowing for offsets.
- \AxoPut(0,0){\axo@pdfliteral{#1}}%
-}
-
-%
-% Now variables and routines for setting material in boxes (used by
-% the BText etc commands.
-%
-\newdimen\tmpX
-\newdimen\tmpY
-\newsavebox{\tmpBox}
-\newsavebox{\tmpBoxA}
-%
-\newcount\axo@tmp
-\newcount\axo@tmpA
-\newcount\axo@tmpB
-
-\newcount\bpinsp
-\bpinsp = 65782
-\newcount\ptinsp
-\ptinsp = 65536
-
-\def\AssignDecDiv#1#2#3{%
- % Assign the variable of name #1 to the result of dividing integer
- % #2 by integer #3, with result as a textual decimal. Absolute
- % accuracy: 0.001.
- % Typical use: conversion of lengths to points and big points.
- % \AssignDecDiv{cachedscale}{\unitlength}{65536}
- % \AssignDecDiv{cachedscale}{\unitlength}{\ptinsp}
- % to get length in points.
- % Notes on conversion
- % 1 sp = 2^{-16} pt = (1/65536) pt
- % 1 pt = (1/72.27) in
- % 1 bp = (1/72) in
- % 1 sp = (1/65781.76) bp
- % Use \relax at end of lines setting count registers.
- % This ensures that the code works both when the arguments are
- % given as numbers, e.g., \AxoDecDiv{100}{3}, as well as when they are
- % given as lengths, etc, e.g., \AxoDecDiv{\unitlength}{256}
- %
- \axo@tmp = #2\relax
- \axo@tmpA = \axo@tmp
- \divide \axo@tmpA by #3\relax
- \axo@tmpB=\axo@tmpA
- \multiply \axo@tmpA by #3\relax
- \advance \axo@tmp by -\axo@tmpA
- \multiply \axo@tmp by 1000
- \divide \axo@tmp by #3\relax
- \expandafter\edef\csname #1\endcsname{\the\axo@tmpB.\the\axo@tmp}%
-}
-
-\def\SetTmpBox#1{%
- % Sets the box \tmpBox to the contents of #1 set with current PS
- % font and size. Sets \tmpX and \tmpY to the dimensions of the box
- % plus some space around it, suitable for drawing an enclosing box.
- %
- % The vertical box setting numbers agree with those in axodraw's
- % postscript code, but not (28 July 2014) with the axohelp pdf code.
- % The reverse is true for the horizontal box settings.
- % We can tweak them further.
- % This is a standardized routine for use in all versions of postscript
- % textbox routines.
- % N.B. Use LaTeX's \sbox at first step, not TeX primitives to set
- % box contents; it works properly with color.
- \sbox{\tmpBox}{\UseCurrentPSFont #1}%
- \tmpX = \axofontsize pt
- \advance \tmpX by \wd\tmpBox
- \tmpY = \axofontsize pt
- \tmpY = 0.33333 \tmpY
- \advance \tmpY by \ht\tmpBox
- \advance \tmpY by \dp\tmpBox
- \AssignDecDiv{tmpXT}{\tmpX}{\ptinsp}%
- \AssignDecDiv{tmpYT}{\tmpY}{\ptinsp}%
-}
-
-\def\SetTmpBoxTwo#1#2{%
- % Equivalent of \SetTmpBox for two line commands.
- %
- % N.B. Use LaTeX's \sbox at first step, not TeX primitives to set
- % box contents; it works properly with color.
- \sbox{\tmpBox}{\UseCurrentPSFont #1}%
- \sbox{\tmpBoxA}{\UseCurrentPSFont #2}%
- \ifdim \wd\tmpBox > \wd\tmpBoxA
- \tmpX = \wd\tmpBox
- \else
- \tmpX = \wd\tmpBoxA
- \fi
- \advance \tmpX by \axofontsize pt
- \tmpY = \axofontsize pt
- \setbox\tmpBox=%
- \vbox{%
- \lineskip = 0.1 \tmpY
- \baselineskip = 1.1 \tmpY
- \vskip 0.3 \tmpY
- \hbox{\makebox[0pt]{\box\tmpBox}}%
- \hbox{\makebox[0pt]{\box\tmpBoxA}}%
- \vskip 0.3 \tmpY
- }%
- \tmpY = \ht\tmpBox
- \advance \tmpY by \dp\tmpBox
- \AssignDecDiv{tmpXT}{\tmpX}{\ptinsp}%
- \AssignDecDiv{tmpYT}{\tmpY}{\ptinsp}%
-}
-%
-% #] Putting
-% #[ Point setting and using :
-%
-\def\SetPoint#1(#2,#3){%
- % Define a named point in 2D
- \@namedef{AXO@p.X@#1}{#2}%
- \@namedef{AXO@p.Y@#1}{#3}%
-}
-\def\useX#1{%
- % Use a named point
- \@nameuse{AXO@p.X@#1}%
-}
-\def\useY#1{%
- % Use a named point
- \@nameuse{AXO@p.Y@#1}%
-}
-%
-% #] Point setting and using :
-% #[ Particle routines :
-% #[ Gluon :
-%
-\def\Gluon{%
-%
-% Draws a gluon from (x1,y1) to (x2,y2) with amplitude and number of windings
-%
- \AXO@Parse{\AXO@Gluon}{}%
-}
-%
-% #] Gluon :
-% #[ DoubleGluon :
-%
-\defWithOption{DoubleGluon}{(#2,#3)(#4,#5)#6#7#8}{%
-%
-% Draws a gluon from (x1,y1) to (x2,y2) with amplitude and number of windings
-%
- \Gluon[double,sep=#8,#1](#2,#3)(#4,#5){#6}{#7}%
-}
-%
-% #] DoubleGluon :
-% #[ DashGluon :
-%
-\defWithOption{DashGluon}{(#2,#3)(#4,#5)#6#7#8}{%
-%
-% Draws a gluon from (x1,y1) to (x2,y2) with amplitude and number of windings
-%
- \Gluon[dash,dashsize=#8,#1](#2,#3)(#4,#5){#6}{#7}%
-}
-%
-% #] DashGluon :
-% #[ DashDoubleGluon :
-%
-\defWithOption{DashDoubleGluon}{(#2,#3)(#4,#5)#6#7#8#9}{%
-%
-% Draws a gluon from (x1,y1) to (x2,y2) with amplitude and number of windings
-%
- \Gluon[double,sep=#8,dash,dashsize=#9,#1](#2,#3)(#4,#5){#6}{#7}%
-}
-%
-% #] DashDoubleGluon :
-% #[ GluonCirc :
-%
-% Draws a gluon on a circle. The center of the circle is at (#1,#2)
-% The radius and the phase angle are (#3,#4), #5 is the
-% amplitude of the gluon, and #6 is the number of windings.
-%
-\def\GluonCirc{%
-%
-% Draws a gluon from (x1,y1) to (x2,y2) with amplitude and number of windings
-%
- \AXO@Parse{\AXO@GluonCirc}{}%
-}
-%
-% #] GluonCirc :
-% #[ DoubleGluonCirc :
-%
-\defWithOption{DoubleGluonCirc}{(#2,#3)(#4,#5)#6#7#8}{%
-%
-% Draws a gluon from (x1,y1) to (x2,y2) with amplitude and number of windings
-%
- \GluonCirc[double,sep=#8,#1](#2,#3)(#4,#5){#6}{#7}%
-}
-%
-% #] DoubleGluonCirc :
-% #[ DashGluonCirc :
-%
-\defWithOption{DashGluonCirc}{(#2,#3)(#4,#5)#6#7#8}{%
-%
-% Draws a gluon from (x1,y1) to (x2,y2) with amplitude and number of windings
-%
- \GluonCirc[dash,dashsize=#8,#1](#2,#3)(#4,#5){#6}{#7}%
-}
-%
-% #] DashGluonCirc :
-% #[ DashDoubleGluonCirc :
-%
-\defWithOption{DashDoubleGluonCirc}{(#2,#3)(#4,#5)#6#7#8#9}{%
-%
-% Draws a gluon from (x1,y1) to (x2,y2) with amplitude and number of windings
-%
- \GluonCirc[double,sep=#8,dash,dashsize=#9,#1](#2,#3)(#4,#5){#6}{#7}%
-}
-%
-% #] DashDoubleGluonCirc :
-% #[ GluonArc :
-%
-\def\GluonArc{%
-% \GluonArc(x,y)(r,theta1,theta2){amplitude}{numwind}
-% draws a gluon on an arc centered at (x,y) of radius r, starting
-% at theta1, and ending at theta2, with given amplitude and
-% number of windings
-%
- \AXO@Parse{\AXO@GluonArc}{}%
-}
-%
-\let\GlueArc=\GluonArc % For backward compatibility
-%
-% #] GluonArc :
-% #[ DoubleGluonArc :
-%
-\defWithOption{DoubleGluonArc}{(#2)(#3)#4#5#6}{%
-%
-% \DoubleGluonArc(x,y)(r,theta1,theta2){amplitude}{numwind}{sep}
-% draws a gluon on an arc centered at (x,y) of radius r, starting
-% at theta1, and ending at theta2, with given amplitude and
-% number of windings
-%
- \GluonArc[double,sep=#6,#1](#2)(#3){#4}{#5}%
-}
-%
-\let\DoubleGlueArc=\DoubleGluonArc % For backward compatibility
-%
-% #] DoubleGluonArc :
-% #[ DashGluonArc :
-%
-\defWithOption{DashGluonArc}{(#2)(#3)#4#5#6}{%
-%
-% \DashGluonArc(x,y)(r,theta1,theta2){amplitude}{numwind}{dashsize}
-% draws a gluon on an arc centered at (x,y) of radius r, starting
-% at theta1, and ending at theta2, with given amplitude and
-% number of windings
-%
- \GluonArc[dash,dashsize=#6,#1](#2)(#3){#4}{#5}%
-}
-%
-\let\DashGlueArc=\DashGluonArc % For backward compatibility
-%
-% #] DashGluonArc :
-% #[ DashDoubleGluonArc :
-%
-\defWithOption{DashDoubleGluonArc}{(#2)(#3)#4#5#6#7}{%
-%
-% \DashGluonArc(x,y)(r,theta1,theta2){amplitude}{numwind}{dashsize}
-% draws a gluon on an arc centered at (x,y) of radius r, starting
-% at theta1, and ending at theta2, with given amplitude and
-% number of windings
-%
- \GluonArc[double,sep=#6,dash,dashsize=#7,#1](#2)(#3){#4}{#5}%
-}
-%
-\let\DashDoubleGlueArc=\DashDoubleGluonArc % For backward compatibility
-%
-% #] DashDoubleGluonArc :
-% #[ GluonArcn :
-%
-\defWithOption{GluonArcn}{(#2)(#3)#4#5}{%
-% \GluonArcn(x,y)(r,theta1,theta2){amplitude}{numwind}
-% draws a gluon on an arc centered at (x,y) of radius r, starting
-% at theta1, and ending at theta2, with given amplitude and
-% number of windings. The n stands for clockwise
-%
- \GluonArc[clockwise,#1](#2)(#3){#4}{#5}%
-}
-%
-\let\GlueArcn=\GluonArcn % For backward compatibility
-%
-% #] GluonArcn :
-% #[ DoubleGluonArcn :
-%
-\defWithOption{DoubleGluonArcn}{(#2)(#3)#4#5#6}{%
-%
-% \DoubleGluonArcn(x,y)(r,theta1,theta2){amplitude}{numwind}{sep}
-% draws a gluon on an arc centered at (x,y) of radius r, starting
-% at theta1, and ending at theta2, with given amplitude and
-% number of windings. Clockwise.
-%
- \GluonArc[clockwise,double,sep=#6,#1](#2)(#3){#4}{#5}%
-}
-%
-\let\DoubleGlueArcn=\DoubleGluonArcn % For backward compatibility
-%
-% #] DoubleGluonArcn :
-% #[ DashGluonArcn :
-%
-\defWithOption{DashGluonArcn}{(#2)(#3)#4#5#6}{%
-%
-% \DashGluonArc(x,y)(r,theta1,theta2){amplitude}{numwind}{dashsize}
-% draws a gluon on an arc centered at (x,y) of radius r, starting
-% at theta1, and ending at theta2, with given amplitude and
-% number of windings. Clockwise.
-%
- \GluonArc[clockwise,dash,dashsize=#6,#1](#2)(#3){#4}{#5}%
-}
-%
-\let\DashGlueArcn=\DashGluonArcn % For backward compatibility
-%
-% #] DashGluonArcn :
-% #[ DashDoubleGluonArcn :
-%
-\defWithOption{DashDoubleGluonArcn}{(#2)(#3)#4#5#6#7}{%
-%
-% \DashGluonArcn(x,y)(r,theta1,theta2){amplitude}{numwind}{dashsize}
-% draws a gluon on an arc centered at (x,y) of radius r, starting
-% at theta1, and ending at theta2, with given amplitude and
-% number of windings. Clockwise.
-%
- \GluonArc[clockwise,double,sep=#6,dash,dashsize=#7,#1](#2)(#3){#4}{#5}%
-}
-%
-\let\DashDoubleGlueArcn=\DashDoubleGluonArcn % For backward compatibility
-%
-% #] DashDoubleGluonArcn :
-% #[ Photon :
-%
-\def\Photon{%
-% \Photon[opt](x1,y1)(x2,y2){amplitude}{numwind}
-% Draws a photon from (x1,y1) to (x2,y2) with given amplitude and
-% number of windings
-% Supported options: double, sep, linesep
-%
- \AXO@Parse{\AXO@Photon}{}%
-}
-%
-% #] Photon :
-% #[ DoublePhoton :
-%
-\defWithOption{DoublePhoton}{(#2,#3)(#4,#5)#6#7#8}{%
-%
-% Draws a photon from (x1,y1) to (x2,y2) with amplitude and number of windings
-%
- \Photon[double,sep=#8,#1](#2,#3)(#4,#5){#6}{#7}%
-}
-%
-% #] DoublePhoton :
-% #[ DashPhoton :
-%
-\defWithOption{DashPhoton}{(#2,#3)(#4,#5)#6#7#8}{%
-%
-% Draws a photon from (x1,y1) to (x2,y2) with amplitude and number of windings
-%
- \Photon[dash,dashsize=#8,#1](#2,#3)(#4,#5){#6}{#7}%
-}
-%
-% #] DashPhoton :
-% #[ DashDoublePhoton :
-%
-\defWithOption{DashDoublePhoton}{(#2,#3)(#4,#5)#6#7#8#9}{%
-%
-% Draws a photon from (x1,y1) to (x2,y2) with amplitude and number of windings
-%
- \Photon[double,sep=#8,dash,dashsize=#9,#1](#2,#3)(#4,#5){#6}{#7}%
-}
-%
-% #] DashDoublePhoton :
-% #[ PhotonArc :
-%
-\def\PhotonArc{%
-% \PhotonArc(x,y)(r,theta1,theta2){amplitude}{numwind}
-% draws a photon on an arc centered at (x,y) of radius r, starting
-% at theta1, and ending at theta2, with given amplitude and
-% number of windings
-%
- \AXO@Parse{\AXO@PhotonArc}{}%
-}
-%
-% #] PhotonArc :
-% #[ DoublePhotonArc :
-%
-\defWithOption{DoublePhotonArc}{(#2,#3)(#4,#5,#6)#7#8#9}{%
-%
-% \PhotonArc(x,y)(r,theta1,theta2){amplitude}{numwind}{sep}
-% draws a photon on an arc centered at (x,y) of radius r, starting
-% at theta1, and ending at theta2, with given amplitude and
-% number of windings
-%
- \PhotonArc[double,sep=#9,#1](#2,#3)(#4,#5,#6){#7}{#8}%
-}
-%
-% #] DoublePhotonArc :
-% #[ DashPhotonArc :
-%
-\defWithOption{DashPhotonArc}{(#2,#3)(#4,#5,#6)#7#8#9}{%
-%
-% \DashPhotonArc(x,y)(r,theta1,theta2){amplitude}{numwind}{dashsize}
-% draws a photon on an arc centered at (x,y) of radius r, starting
-% at theta1, and ending at theta2, with given amplitude and
-% number of windings
-%
- \PhotonArc[dash,dashsize=#9,#1](#2,#3)(#4,#5,#6){#7}{#8}%
-}
-%
-%
-% #] DashPhotonArc :
-% #[ DashDoublePhotonArc :
-%
-\defWithOption{DashDoublePhotonArc}{(#2)(#3)#4#5#6#7}{%
-% Note that there are actually ten arguments with the optional #1,
-% which LaTeX/TeX can't handle. I consolidate the comma separated
-% arguments into one, and then pass them to \PhotonArc
-%
-% \DashPhotonArc(x,y)(r,theta1,theta2){amplitude}{numwind}{dashsize}
-% draws a photon on an arc centered at (x,y) of radius r, starting
-% at theta1, and ending at theta2, with given amplitude and
-% number of windings
-%
- \PhotonArc[double,sep=#6,dash,dashsize=#7,#1](#2)(#3){#4}{#5}%
-}
-%
-%
-% #] DashDoublePhotonArc :
-% #[ PhotonArcn :
-%
-\defWithOption{PhotonArcn}{(#2,#3)(#4,#5,#6)#7#8}{%
-% \PhotonArcn(x,y)(r,theta1,theta2){amplitude}{numwind}
-% draws a photon on an arc centered at (x,y) of radius r, starting
-% at theta1, and ending at theta2, with given amplitude and
-% number of windings
-%
- \PhotonArc[clockwise,#1](#2,#3)(#4,#5,#6){#7}{#8}%
-}
-%
-% #] PhotonArcn :
-% #[ DoublePhotonArcn :
-%
-\defWithOption{DoublePhotonArcn}{(#2)(#3)#4#5#6}{%
-% I consolidate the comma separated arguments into one, and then pass
-% them to \PhotonArc
-%
-% \PhotonArcn(x,y)(r,theta1,theta2){amplitude}{numwind}{sep}
-% draws a photon on an arc centered at (x,y) of radius r, starting
-% at theta1, and ending at theta2, with given amplitude and
-% number of windings
-%
- \PhotonArc[clockwise,double,sep=#6,#1](#2)(#3){#4}{#5}%
-}
-%
-% #] DoublePhotonArcn :
-% #[ DashPhotonArcn :
-%
-\defWithOption{DashPhotonArcn}{(#2)(#3)#4#5#6}{%
-% I consolidate the comma separated arguments into one, and then pass
-% them to \PhotonArc
-%
-% \DashPhotonArcn(x,y)(r,theta1,theta2){amplitude}{numwind}{dashsize}
-% draws a photon on an arc centered at (x,y) of radius r, starting
-% at theta1, and ending at theta2, with given amplitude and
-% number of windings.Clockwise.
-%
- \PhotonArc[clockwise,dash,dashsize=#6,#1](#2)(#3){#4}{#5}%
-}
-%
-%
-% #] DashPhotonArcn :
-% #[ DashDoublePhotonArcn :
-%
-\defWithOption{DashDoublePhotonArcn}{(#2)(#3)#4#5#6#7}{%
-% I consolidate the comma separated arguments into one, and then pass
-% them to \PhotonArc
-%
-% \DashPhotonArcn(x,y)(r,theta1,theta2){amplitude}{numwind}{dashsize}
-% draws a photon on an arc centered at (x,y) of radius r, starting
-% at theta1, and ending at theta2, with given amplitude and
-% number of windings. Clockwise.
-%
- \PhotonArc[clockwise,double,sep=#6,dash,dashsize=#7,#1](#2)(#3){#4}{#5}%
-}
-%
-%
-% #] DashDoublePhotonArcn :
-% #[ ZigZag :
-%
-\def\ZigZag{%
-% \ZigZag[opt](x1,y1)(x2,y2){amplitude}{numwind}
-% Draws a zigzag from (x1,y1) to (x2,y2) with given amplitude and
-% number of windings
-% Supported options: double, sep, linesep
-%
- \AXO@Parse{\AXO@ZigZag}{}%
-}
-%
-% #] ZigZag :
-% #[ DoubleZigZag :
-%
-\defWithOption{DoubleZigZag}{(#2,#3)(#4,#5)#6#7#8}{%
-%
-% Draws a zigzag from (x1,y1) to (x2,y2) with amplitude and number of windings
-%
- \ZigZag[double,sep=#8,#1](#2,#3)(#4,#5){#6}{#7}%
-}
-%
-% #] DoubleZigZag :
-% #[ DashZigZag :
-%
-\defWithOption{DashZigZag}{(#2,#3)(#4,#5)#6#7#8}{%
-%
-% Draws a zigzag from (x1,y1) to (x2,y2) with amplitude and number of windings
-%
- \ZigZag[dash,dashsize=#8,#1](#2,#3)(#4,#5){#6}{#7}%
-}
-%
-% #] DashZigZag :
-% #[ DashDoubleZigZag :
-%
-\defWithOption{DashDoubleZigZag}{(#2,#3)(#4,#5)#6#7#8#9}{%
-%
-% Draws a zigzag from (x1,y1) to (x2,y2) with amplitude and number of windings
-%
- \ZigZag[double,sep=#8,dash,dashsize=#9,#1](#2,#3)(#4,#5){#6}{#7}%
-}
-%
-% #] DashDoubleZigZag :
-% #[ ZigZagArc :
-%
-\def\ZigZagArc{%
-% \ZigZagArc(x,y)(r,theta1,theta2){amplitude}{numwind}
-% draws a zigzag on an arc centered at (x,y) of radius r, starting
-% at theta1, and ending at theta2, with given amplitude and
-% number of windings
-%
- \AXO@Parse{\AXO@ZigZagArc}{}%
-}
-%
-% #] ZigZagArc :
-% #[ DoubleZigZagArc :
-%
-\defWithOption{DoubleZigZagArc}{(#2,#3)(#4,#5,#6)#7#8#9}{%
-%
-% \ZigZagArc(x,y)(r,theta1,theta2){amplitude}{numwind}{sep}
-% draws a zigzag on an arc centered at (x,y) of radius r, starting
-% at theta1, and ending at theta2, with given amplitude and
-% number of windings
-%
- \ZigZagArc[double,sep=#9,#1](#2,#3)(#4,#5,#6){#7}{#8}%
-}
-%
-% #] DoubleZigZagArc :
-% #[ DashZigZagArc :
-%
-\defWithOption{DashZigZagArc}{(#2)(#3)#4#5#6}{%
-%
-% \DashZigZagArc(x,y)(r,theta1,theta2){amplitude}{numwind}{dashsize}
-% draws a zigzag on an arc centered at (x,y) of radius r, starting
-% at theta1, and ending at theta2, with given amplitude and
-% number of windings
-%
- \ZigZagArc[dash,dashsize=#6,#1](#2)(#3){#4}{#5}%
-}
-%
-%
-% #] DashZigZagArc :
-% #[ DashDoubleZigZagArc :
-%
-\defWithOption{DashDoubleZigZagArc}{(#2)(#3)#4#5#6#7}{%
-%
-% \DashZigZagArc(x,y)(r,theta1,theta2){amplitude}{numwind}{dashsize}
-% draws a zigzag on an arc centered at (x,y) of radius r, starting
-% at theta1, and ending at theta2, with given amplitude and
-% number of windings
-%
- \ZigZagArc[double,sep=#6,dash,dashsize=#7,#1](#2)(#3){#4}{#5}%
-}
-%
-%
-% #] DashDoubleZigZagArc :
-% #[ ZigZagArcn :
-%
-\defWithOption{ZigZagArcn}{(#2)(#3)#4#5}{%
-% \ZigZagArcn(x,y)(r,theta1,theta2){amplitude}{numwind}
-% draws a zigzag on an arc centered at (x,y) of radius r, starting
-% at theta1, and ending at theta2, with given amplitude and
-% number of windings
-%
- \ZigZagArc[clockwise,#1](#2)(#3){#4}{#5}%
-}
-%
-% #] ZigZagArcn :
-% #[ DoubleZigZagArcn :
-%
-\defWithOption{DoubleZigZagArcn}{(#2)(#3)#4#5#6}{%
-%
-% \ZigZagArcn(x,y)(r,theta1,theta2){amplitude}{numwind}{sep}
-% draws a zigzag on an arc centered at (x,y) of radius r, starting
-% at theta1, and ending at theta2, with given amplitude and
-% number of windings
-%
- \ZigZagArc[clockwise,double,sep=#6,#1](#2)(#3){#4}{#5}%
-}
-%
-% #] DoubleZigZagArcn :
-% #[ DashZigZagArcn :
-%
-\defWithOption{DashZigZagArcn}{(#2)(#3)#4#5#6}{%
-%
-% \DashZigZagArcn(x,y)(r,theta1,theta2){amplitude}{numwind}{dashsize}
-% draws a zigzag on an arc centered at (x,y) of radius r, starting
-% at theta1, and ending at theta2, with given amplitude and
-% number of windings.Clockwise.
-%
- \ZigZagArc[clockwise,dash,dashsize=#6,#1](#2)(#3){#4}{#5}%
-}
-%
-%
-% #] DashZigZagArcn :
-% #[ DashDoubleZigZagArcn :
-%
-\defWithOption{DashDoubleZigZagArcn}{(#2)(#3)#4#5#6#7}{%
-%
-% \DashZigZagArcn(x,y)(r,theta1,theta2){amplitude}{numwind}{dashsize}
-% draws a zigzag on an arc centered at (x,y) of radius r, starting
-% at theta1, and ending at theta2, with given amplitude and
-% number of windings. Clockwise.
-%
- \ZigZagArc[clockwise,double,sep=#6,dash,dashsize=#7,#1](#2)(#3){#4}{#5}%
-}
-%
-% #] DashDoubleZigZagArcn :
-% #] Particle routines :
-% #[ Line routines :
-% #[ Line :
-%
-\def\Line{%
-% \Line[opt](x1,y1)(x2,y2)
-% draws a line from (x1,y1) to (x2,y2). NO arrow by default.
-% Supported options: all arrow settings, all double line settings,
-% all dash line settings.
-%
- \AXO@Parse{\AXO@Line}{}%
-}
-%
-% #] Line :
-% #[ DoubleLine :
-%
-\defWithOption{DoubleLine}{(#2,#3)(#4,#5)#6}{%
-%
-% \DoubleLine[opt](x1,y1)(x2,y2){sep}
-% Draws a double line, with NO arrow by default, from (x1,y1) to (x2,y2),
-% with separation sep
-%
- \Line[arrow=false,double,sep=#6,#1](#2,#3)(#4,#5)%
-}
-%
-% #] DoubleLine :
-% #[ DashLine :
-%
-\defWithOption{DashLine}{(#2,#3)(#4,#5)#6}{%
-% \DashLine[opt](x1,y1)(x2,y2){sep}
-% Draws a line from (x1,y1) to (x2,y2) with a dash pattern of which the
-% alternating black and white pieces are approximately sep points long
-%
- \Line[dash,dashsize=#6,#1](#2,#3)(#4,#5)%
-}
-%
-% #] DashLine :
-% #[ DashDoubleLine :
-%
-\defWithOption{DashDoubleLine}{(#2,#3)(#4,#5)#6#7}{%
-% \DashDoubleLine[opt](x1,y1)(x2,y2){sep}{dashsize}
-% Draws a double line from (x1,y1) to (x2,y2) with separation sep,
-% and with a dash pattern of which the
-% alternating black and white pieces are approximately sep points long
-% Arrow off.
- \Line[arrow=off,dash,dashsize=#7,double,sep=#6,#1](#2,#3)(#4,#5)%
-}
-%
-% #] DashDoubleLine :
-% #[ ArrowLine :
-%
-\defWithOption{ArrowLine}{(#2,#3)(#4,#5)}{%
-% \ArrowLine[opt](x1,y1)(x2,y2)
-% draws a line from (x1,y1) to (x2,y2). Arrow by default.
-%
- \Line[arrow,#1](#2,#3)(#4,#5)%
-}
-%
-% #] ArrowLine :
-% #[ ArrowDoubleLine :
-%
-\defWithOption{ArrowDoubleLine}{(#2,#3)(#4,#5)#6}{%
-%
-% \ArrowDoubleLine[opt](x1,y1)(x2,y2){sep}
-% Draws a double line, with arrow by default, from (x1,y1) to (x2,y2),
-% with separation sep
-%
- \Line[arrow,double,sep=#6,#1](#2,#3)(#4,#5)%
-}
-%
-% #] ArrowDoubleLine :
-% #[ DashArrowLine :
-%
-\defWithOption{DashArrowLine}{(#2,#3)(#4,#5)#6}{%
-% \DashArrowLine[opt](x1,y1)(x2,y2){sep}
-% Draws a line from (x1,y1) to (x2,y2) with a dash pattern of which the
-% alternating black and white pieces are approximately sep points
-% long. Arrow by default.
-%
- \Line[arrow,dash,dashsize=#6,#1](#2,#3)(#4,#5)%
-}
-%
-\let\ArrowDashLine=\DashArrowLine%
-%
-% #] DashArrowLine :
-% #[ DashArrowDoubleLine :
-%
-\defWithOption{DashArrowDoubleLine}{(#2,#3)(#4,#5)#6#7}{%
-% \DashArrowDoubleLine[opt](x1,y1)(x2,y2){sep}{dashsize}
-% Draws a double line from (x1,y1) to (x2,y2) with separation sep,
-% and with a dash pattern of which the
-% alternating black and white pieces are approximately sep points long
-% Arrow on.
-%
- \Line[arrow,dash,dashsize=#7,double,sep=#6,#1](#2,#3)(#4,#5)%
-}
-%
-\let\ArrowDashDoubleLine=\DashArrowDoubleLine%
-%
-% #] DashArrowDoubleLine :
-% #[ LongArrow :
-%
-\defWithOption{LongArrow}{(#2,#3)(#4,#5)}{%
- \Line[arrow,arrowpos=1,#1](#2,#3)(#4,#5)%
-}
-%
-% #] LongArrow :
-% #[ DashLongArrowLine :
-%
-\defWithOption{DashLongArrowLine}{(#2,#3)(#4,#5)#6}{%
-% \DashLongArrowLine[opt](x1,y1)(x2,y2){sep}
-% Draws a line from (x1,y1) to (x2,y2) with a dash pattern of which the
-% alternating black and white pieces are approximately sep points
-% long. Arrow by default.
-%
-%
- \Line[arrow,arrowpos=1,dash,dashsize=#6,#1](#2,#3)(#4,#5)%
-}
-\let\DashLongArrow=\DashLongArrowLine
-\let\LongArrowDash=\DashLongArrowLine
-\let\LongArrowDashLine=\DashLongArrowLine
-%
-% #] DashLongArrowLine :
-% #] Line routines :
-% #[ Arc routines :
-% #[ Arc :
-%
-\def\Arc{%
-% \Arc[opt](x,y)(r,theta1,theta2)
-% draws an arc centered at (x,y) of radius r, starting at theta1,
-% and ending at theta2. By default: no arrow, undashed, single,
-% anticlockwise.
-% Supported options: all arrow settings, all double line settings,
-% all dash line settings, clock
-%
- \AXO@Parse{\AXO@Arc}{}%
-}
-%
-% #] Arc :
-% #[ CArc :
-%
-\let\CArc=\Arc
-%
-% #] CArc :
-% #[ DoubleArc :
-%
-\defWithOption{DoubleArc}{(#2,#3)(#4,#5,#6)#7}{%
-%
-% Draws a double lined arc segment. The center of the curve
-% is at (1,2).
-% The radius, start angle and target angle are (#3,#4,#5).
-% The arc segment runs anticlockwise
-% #6 is the separation of the lines.
-%
- \Arc[double,sep=#7,#1](#2,#3)(#4,#5,#6)%
-}
-\let\DoubleCArc=\DoubleArc
-%
-% #] DoubleArc :
-% #[ DashArc :
-%
-\defWithOption{DashArc}{(#2,#3)(#4,#5,#6)#7}{%
-%
-% Draws a dashed arc segment. The center of the curve
-% is at (1,2).
-% The radius, start angle and target angle are (#3,#4,#5).
-% The arc segment runs anticlockwise
-% #6 is the dashsize. this is rounded to make things come
-% out right.
-%
- \Arc[dash,dsize=#7,#1](#2,#3)(#4,#5,#6)%
-}
-\let\DashCArc=\DashArc
-%
-% #] DashArc :
-% #[ DashDoubleArc :
-%
-\defWithOption{DashDoubleArc}{(#2,#3)(#4,#5,#6)#7#8}{
-%
-% Draws a dashed arc segment. The center of the curve
-% is at (1,2).
-% The radius, start angle and target angle are (#3,#4,#5).
-% The arc segment runs anticlockwise
-% #6 is the line separation.
-% #7 is the dashsize. this is rounded to make things come
-% out right.
-%
- \Arc[double,sep=#7,dash,dsize=#8,#1](#2,#3)(#4,#5,#6)%
-}
-\let\DashDoubleCArc=\DashDoubleArc
-%
-% #] DashDoubleArc :
-% #[ ArrowArc :
-%
-\def\ArrowArc{%
- \AXO@PrependOption{\Arc}{arrow}%
-}
-\let\ArrowCArc=\ArrowArc
-%
-% #] ArrowArc :
-% #[ ArrowDoubleArc :
-%
-\defWithOption{ArrowDoubleArc}{(#2,#3)(#4,#5,#6)#7}{%
- \Arc[arrow,double,sep=#7,#1](#2,#3)(#4,#5,#6)%
-}
-\let\ArrowDoubleCArc=\ArrowDoubleArc
-%
-% #] ArrowDoubleArc :
-% #[ ArrowDashArc :
-%
-\defWithOption{ArrowDashArc}{(#2,#3)(#4,#5,#6)#7}{%
- \Arc[arrow,dash,dsize=#7,#1](#2,#3)(#4,#5,#6)%
-}
-\let\ArrowDashCArc=\ArrowDashArc
-\let\DashArrowCArc=\ArrowDashArc
-\let\DashArrowArc=\ArrowDashArc
-%
-% #] ArrowDashArc :
-% #[ ArrowDashDoubleArc :
-%
-\defWithOption{ArrowDashDoubleArc}{(#2,#3)(#4,#5,#6)#7#8}{%
- \Arc[arrow,double,sep=#7,dash,dsize=#8,#1](#2,#3)(#4,#5,#6)%
-}
-\let\ArrowDashDoubleCArc=\ArrowDashDoubleArc
-\let\DashArrowDoubleCArc=\ArrowDashDoubleArc
-\let\DashArrowDoubleArc=\ArrowDashDoubleArc
-%
-%
-% #] ArrowDashDoubleArc :
-% #[ LongArrowArc :
-%
-\def\LongArrowArc{%
- \AXO@PrependOption{\Arc}{arrow,arrowpos=1}%
-}
-%
-% #] LongArrowArc :
-% #[ LongDashArrowArc :
-%
-\defWithOption{LongArrowDashArc}{(#2,#3)(#4,#5,#6)#7}{%
- \Arc[arrow,arrowpos=1,dash,dsize=#7,#1](#2,#3)(#4,#5,#6)%
-}
-\let\LongArrowDashCArc=\LongArrowDashArc
-\let\LongDashArrowCArc=\LongArrowDashArc
-\let\LongDashArrowArc=\LongArrowDashArc
-%
-%
-% #] LongDashArrowArc :
-% #[ ArrowArcn :
-%
-\def\ArrowArcn{%
- \AXO@PrependOption{\Arc}{arrow,clock}%
-}
-%
-% #] ArrowArcn :
-% #[ LongArrowArcn :
-%
-\def\LongArrowArcn{%
- % \ArrowArcn, but with arrow at end by default
- \AXO@PrependOption{\Arc}{arrow, clock, arrowpos=1}%
-}
-%
-% #] LongArrowArcn :
-% #[ DashArrowArcn :
-%
-\defWithOption{DashArrowArcn}{(#2,#3)(#4,#5,#6)#7}{%
-% (x,y)(radius,start,end){dashsize}
-% Draws a dashed arc segment with an arrow in it. The center of the curve
-% is at (x,y), with given radius, start angle, and end angle
-% The arc segment runs anticlockwise
- \Arc[clock,arrow,dash,dashsize=#7,#1](#2,#3)(#4,#5,#6)%
-}
-%
-\let\ArrowDashArcn=\DashArrowArcn%
-%
-%
-% #] DashArrowArcn :
-% #] Arc routines :
-% #[ Bezier :
-%
-\def\Bezier{%
-% \Bezier[opt](x1,y1)(x2,y2)(x3,y3)(x4,y4)
-% Draws a Bezier cubic with the control points (x1,y1), (x2,y2), (x3,y3), (x4,y4)
-% Supported options: dash, dashsize and dashsize
- \AXO@Parse{\AXO@Bezier}{}%
-}
-%
-\defWithOption{DoubleBezier}{(#2,#3)(#4,#5)(#6,#7)(#8)#9}{%
-%
-% Draws a Bezier cubic with control points (x1,y1), (x2,y2),
-% (x3,y3), (x4,y4) in a double line
-%
- \Bezier[double,sep=#9,#1](#2,#3)(#4,#5)(#6,#7)(#8)%
-}
-%
-\defWithOption{DashBezier}{(#2,#3)(#4,#5)(#6,#7)(#8)#9}{%
-%
-% Draws a Bezier cubic with control points (x1,y1), (x2,y2),
-% (x3,y3), (x4,y4) with a dash pattern of which the
-% alternating black and white pieces are approximately #9 points long
-%
- \Bezier[dash,dashsize=#9,#1](#2,#3)(#4,#5)(#6,#7)(#8)%
-}
-%
-\defWithOption{DashDoubleBezier}{(#2,#3)(#4,#5)(#6)(#7)#8#9}{%
-%
-% Draws a Bezier cubic with control points (x1,y1), (x2,y2),
-% (x3,y3), (x4,y4) with a dash pattern of which the
-% alternating black and white pieces are approximately #9 points long
-% The line is a double line
-%
- \Bezier[double,sep=#8,dash,dashsize=#9,#1](#2,#3)(#4,#5)(#6)(#7)%
-}
-%
-% #] Bezier :
-% #] LaTeX primitives :
-% #[ Mixed routines :
-%
-% Here we have routines that make different calls depending on the value
-% of the variable \axo@pdfoutput
-%
-% #[ EBox :
-%
-\def\EBox(#1,#2)(#3,#4){%
-%
-% Draws a transparent box with the left bottom at (x1,y1) andthe
-% right top at (x2,y2).
-%
-\ifcase\axo@pdfoutput
- \put(\axoxoff,\axoyoff){\AXOspecial{%
- #1 \axoxo\space add #2 \axoyo\space add
- #3 \axoxo\space add #4 \axoyo\space add \axowidth\space \axoscale\space ebox }}
-\else
- \getaxohelp{EBox}{#1 #2 #3 #4 \axowidth}
- \put(\axoxoff,\axoyoff){\axo@pdfliteral{\contentspdf}}
-\fi
-}
-%
-% #] EBox :
-% #[ FBox :
-%
-\def\FBox(#1,#2)(#3,#4){%
-%
-% Draws a filled box with the left bottom at (x1,y1) and the right top
-% at (x2,y2).
-%
-\ifcase\axo@pdfoutput
- \put(\axoxoff,\axoyoff){\AXOspecial{%
- #1 \axoxo\space add #2 \axoyo\space add
- #3 \axoxo\space add #4 \axoyo\space add \axowidth\space \axoscale\space fbox }}
-\else
- \getaxohelp{FBox}{#1 #2 #3 #4 \axowidth}
- \put(\axoxoff,\axoyoff){\axo@pdfliteral{\contentspdf}}
-\fi
-}
-%
-% #] FBox :
-% #[ BBox :
-%
-\def\BBox(#1,#2)(#3,#4){%
-%
-% Draws a box with the left bottom at (x1,y1) and the right top
-% at (x2,y2). The contents are blanked out.
-%
- {%
- \SetColor{White}%
- \FBox(#1,#2)(#3,#4)%
- }%
- \EBox(#1,#2)(#3,#4)%
-}
-%
-% #] BBox :
-% #[ GBox :
-%
-\def\GBox(#1,#2)(#3,#4)#5{%
-%
-% Draws a box with the left bottom at (x1,y1) and the right top
-% at (x2,y2). The contents are in Grayscale#5 (0=black,1=white).
-%
- {%
- \color[gray]{#5}%
- \FBox(#1,#2)(#3,#4)%
- \color[gray]{0}%
- \EBox(#1,#2)(#3,#4)%
- }%
-\ignorespaces
-}
-%
-% #] GBox :
-% #[ CBox :
-%
-\def\CBox(#1,#2)(#3,#4)#5#6{%
-%
-% Draws a box with the left bottom at (x1,y1) and the right top
-% at (x2,y2). The outside is color#5 and the inside color #6.
-%
- {%
- \SetColor{#6}%
- \FBox(#1,#2)(#3,#4)%
- \SetColor{#5}%
- \EBox(#1,#2)(#3,#4)%
- }%
-\ignorespaces
-}
-%
-% #] CBox :
-% #[ EBoxc :
-%
-\def\EBoxc(#1,#2)(#3,#4){%
-%
-% Draws a centered box with the center at (x1,y1).
-% The other parameters are the width and the height.
-% Uses current color
-%
-\ifcase\axo@pdfoutput
- \put(\axoxoff,\axoyoff){\AXOspecial{%
- #1 \axoxo\space add #3 2 div sub #2 \axoyo\space add
- #4 2 div sub #1 \axoxo\space add #3 2 div add #2
- \axoyo\space add #4 2 div add \axowidth\space \axoscale\space ebox }}
-\else
- \getaxohelp{Boxc}{#1 #2 #3 #4 \axowidth}
- \put(\axoxoff,\axoyoff){\axo@pdfliteral{\contentspdf}}
-\fi
-}
-%
-\let\Boxc=\EBoxc
-%
-% #] EBoxc :
-% #[ FBoxc :
-%
-\def\FBoxc(#1,#2)(#3,#4){%
-%
-% Draws a filled centered box with the center at (x1,y1).
-% The other parameters are the width and the height.
-% Current color
-%
-\ifcase\axo@pdfoutput
- \put(\axoxoff,\axoyoff){\AXOspecial{%
- #1 \axoxo\space add #3 2 div sub #2 \axoyo\space add
- #4 2 div sub #1 \axoxo\space add #3 2 div add #2 \axoyo\space add #4 2 div add
- \axowidth\space \axoscale\space fbox }}
-\else
- \getaxohelp{FBoxc}{#1 #2 #3 #4 \axowidth}
- \put(\axoxoff,\axoyoff){\axo@pdfliteral{\contentspdf}}
-\fi
-}
-%
-% #] FBoxc :
-% #[ BBoxc :
-%
-\def\BBoxc(#1,#2)(#3,#4){%
-%
-% Draws a centered box with the center at (x1,y1).
-% The other parameters are the width and the height.
-% The contents are blanked out.
-%
-\bgroup
- \SetColor{White}%
- \FBoxc(#1,#2)(#3,#4)%
-\egroup
-\EBoxc(#1,#2)(#3,#4)%
-}
-%
-% #] BBoxc :
-% #[ GBoxc :
-%
-\def\GBoxc(#1,#2)(#3,#4)#5{%
-%
-% Draws a centered box with the center at (x1,y1).
-% The other parameters are the width and the height.
-% The contents are in Grayscale#5 (0=black,1=white).
-%
- {%
- \color[gray]{#5}%
- \FBoxc(#1,#2)(#3,#4)%
- \color[gray]{0}%
- \EBoxc(#1,#2)(#3,#4)%
- }%
-\ignorespaces
-}
-%
-% #] GBoxc :
-% #[ CBoxc :
-%
-\def\CBoxc(#1,#2)(#3,#4)#5#6{%
-%
-% Draws a centered box with the center at (x1,y1).
-% The other parameters are the width and the height.
-% The outside is color#5 and the inside color #6.
-%
- {%
- \SetColor{#6}%
- \FBoxc(#1,#2)(#3,#4)%
- \SetColor{#5}%
- \EBoxc(#1,#2)(#3,#4)%
- }%
-\ignorespaces
-}
-%
-% #] CBoxc :
-% #[ RotatedBox :
-%
-\def\RotatedBox(#1,#2)(#3,#4)#5#6{%
-%
-% Draws a centered box with the center at (#1,#2)
-% with width #3, height #4, anticlockwise rotated by #5, and in
-% color #6.
-%
- \AxoPut(#1,#2){%
- {\SetColor{#6}%
- \rotatebox{#5}{\EBoxc(0,0)(#3,#4)}%
- }}%
-}
-%
-% #] RotatedBox :
-% #[ FilledRotatedBox :
-%
-\def\FilledRotatedBox(#1,#2)(#3,#4)#5#6{%
-%
-% Draws a filled centered box with the center at (#1,#2)
-% with width #3, height #4, anticlockwise rotated by #5, and in
-% color #6.
-%
- \AxoPut(#1,#2){%
- {\SetColor{#6}%
- \rotatebox{#5}{\FBoxc(0,0)(#3,#4)}%
- }}%
-}
-%
-% #] FilledRotatedBox :
-% #[ ETri :
-%
-% Draws a triangle. No filling.
-% The corners are (x1,y1), (x2,y2), (x3,y3)
-%
-\def\ETri(#1,#2)(#3,#4)(#5,#6){%
-%
-\ifcase\axo@pdfoutput
- \put(\axoxoff,\axoyoff){\AXOspecial{%
- #1 \axoxo\space add #2 \axoyo\space add
- #3 \axoxo\space add #4 \axoyo\space add
- #5 \axoxo\space add #6 \axoyo\space add
- \axowidth\space \axoscale\space triangle }}
-\else
- \getaxohelp{ETri}{#1 #2 #3 #4 #5 #6 \axowidth}
- \put(\axoxoff,\axoyoff){\axo@pdfliteral{\contentspdf}}
-\fi
-}
-%
-% #] ETri :
-% #[ FTri :
-%
-% Draws a filled triangle.
-% The corners are (x1,y1), (x2,y2), (x3,y3)
-%
-\def\FTri(#1,#2)(#3,#4)(#5,#6){%
-%
-\ifcase\axo@pdfoutput
- \put(\axoxoff,\axoyoff){\AXOspecial{%
- #1 \axoxo\space add #2 \axoyo\space add
- #3 \axoxo\space add #4 \axoyo\space add
- #5 \axoxo\space add #6 \axoyo\space add
- \axowidth\space \axoscale\space ftriangle }}
-\else
- \getaxohelp{FTri}{#1 #2 #3 #4 #5 #6 \axowidth}
- \put(\axoxoff,\axoyoff){\axo@pdfliteral{\contentspdf}}
-\fi
-}
-%
-% #] FTri :
-% #[ BTri :
-%
-% Draws a triangle. The contents are blanked out.
-% The corners are (x1,y1), (x2,y2), (x3,y3)
-%
-\def\BTri(#1,#2)(#3,#4)(#5,#6){%
- {%
- \SetColor{White}%
- \FTri(#1,#2)(#3,#4)(#5,#6)%
- }%
- \ETri(#1,#2)(#3,#4)(#5,#6)%
-}
-%
-% #] BTri :
-% #[ GTri :
-%
-% Draws a triangle. The contents are given in Grayscale #7 (0=black,1=white)
-% The corners are (x1,y1), (x2,y2), (x3,y3)
-%
-\def\GTri(#1,#2)(#3,#4)(#5,#6)#7{%
-%
- {%
- \color[gray]{#7}%
- \FTri(#1,#2)(#3,#4)(#5,#6)%
- \color[gray]{0}%
- \ETri(#1,#2)(#3,#4)(#5,#6)%
- }%
-\ignorespaces
-}
-%
-% #] GTri :
-% #[ CTri :
-%
-% Draws a colored(#7) triangle. The contents are blanked out in color #8
-% The corners are (x1,y1), (x2,y2), (x3,y3)
-%
-\def\CTri(#1,#2)(#3,#4)(#5,#6)#7#8{%
- {%
- \SetColor{#7}%
- \FTri(#1,#2)(#3,#4)(#5,#6)%
- \SetColor{#8}%
- \ETri(#1,#2)(#3,#4)(#5,#6)%
- }%
-\ignorespaces
-}
-%
-% #] CTri :
-% #[ Vertex :
-%
-\def\Vertex(#1,#2)#3{%
-%
-% Draws a fat dot at (1,2). The radius of the dot is given by 3.
-%
-\ifcase\axo@pdfoutput
- \put(\axoxoff,\axoyoff){\AXOspecial{%
- #1 \axoxo\space add #2 \axoyo\space add #3
- \axoscale\space vertex }}
-\else
- \getaxohelp{Vertex}{#1 #2 #3 \axowidth}
- \put(\axoxoff,\axoyoff){\axo@pdfliteral{\contentspdf}}
-\fi
-}
-%
-% #] Vertex :
-% #[ ECirc :
-%
-\def\ECirc(#1,#2)#3{%
-%
-% Draws a circle at (1,2) and radius 3, with current color.
-% Nothing is written inside.
-%
-\ifcase\axo@pdfoutput
- \put(\axoxoff,\axoyoff){\AXOspecial{%
- #1 \axoxo\space add #2 \axoyo\space add #3
- \axowidth\space \axoscale\space ecirc }}%
-\else
- \getaxohelp{ECirc}{#1 #2 #3 \axowidth}%
- \put(\axoxoff,\axoyoff){\axo@pdfliteral{\contentspdf}}%
-\fi
-}
-%
-% #] ECirc :
-% #[ FCirc :
-%
-\let\FCirc=\Vertex
-%
-% #] FCirc :
-% #[ BCirc :
-%
-\def\BCirc(#1,#2)#3{%
-%
-% Draws a circle at (1,2) and radius 3 that is blanked out.
- {%
- \SetColor{White}%
- \FCirc(#1,#2){#3}
- }%
- \ECirc(#1,#2){#3}%
-}
-%
-% #] BCirc :
-% #[ GCirc :
-%
-\def\GCirc(#1,#2)#3#4{%
-%
-% Draws a circle at (1,2) and radius 3 that is blanked out.
-% Then it fills the circle with a gray scale 4 (0 = black, 1 is white)
-%
- {%
- \color[gray]{#4}%
- \FCirc(#1,#2){#3}%
- \color[gray]{0}%
- \ECirc(#1,#2){#3}%
- }%
-\ignorespaces
-}
-%
-% #] GCirc :
-% #[ CCirc :
-%
-% Draws a circle at (1,2) and radius 3 that is blanked out.
-% #4 is the color of the circle, #5 the color of the contents
-%
-\def\CCirc(#1,#2)#3#4#5{%
-%
-% Draws a circle at (1,2) and radius 3 that is blanked out.
-% #4 is the color of the circle, #5 the color of the contents
-%
-{%
- \SetColor{#5}%
- \FCirc(#1,#2){#3}%
- \SetColor{#4}%
- \ECirc(#1,#2){#3}%
-}%
-\ignorespaces
-}
-%
-% #] CCirc :
-% #[ GOval :
-%
-\def\GOval(#1,#2)(#3,#4)(#5)#6{%
-%
-% Draws a gray oval that overwrites whatever was there.
-% \GOval(x_center,y_center)(height,width)(rotation)(grayscale)
-% The grayscale: (0 = black, 1 is white)
-%
- {%
- \color[gray]{#6}%
- \FOval(#1,#2)(#3,#4)(#5)%
- \color[gray]{0}%
- \Oval(#1,#2)(#3,#4)(#5)%
- }%
- \ignorespaces
-}
-%
-% #] GOval :
-% #[ COval :
-%
-\def\COval(#1,#2)(#3,#4)(#5)#6#7{%
-%
-% Draws a colored oval that overwrites whatever was there.
-% \COval(x_center,y_center)(height,width)(rotation){color1}{color2}
-%
- {%
- \SetColor{#7}%
- \FOval(#1,#2)(#3,#4)(#5)%
- \SetColor{#6}%
- \Oval(#1,#2)(#3,#4)(#5)%
- }%
- \ignorespaces
-}
-%
-% #] COval :
-% #[ FOval :
-%
-\def\FOval(#1,#2)(#3,#4)(#5){%
-%
-% Draws a colored oval that overwrites whatever was there.
-% \FOval(x_center,y_center)(height,width)(rotation)
-% Uses current color
-%
- \ifcase\axo@pdfoutput
- \put(\axoxoff,\axoyoff)%
- {\AXOspecial{#1 \axoxo\space add #2 \axoyo\space add #3 #4 #5
- \axowidth\space \axoscale\space foval
- }}%
- \else
- \getaxohelp{FOval}{#1 #2 #3 #4 #5 \axowidth}%
- \put(\axoxoff,\axoyoff){\axo@pdfliteral{\contentspdf}}%
- \fi
-}
-%
-% #] FOval :
-% #[ Oval :
-%
-\def\Oval(#1,#2)(#3,#4)(#5){%
-%
-% Draws an oval that does not overwrite whatever was there.
-% \Oval(x_center,y_center)(height,width)(rotation)
-%
-\ifcase\axo@pdfoutput
- \put(\axoxoff,\axoyoff)%
- {\AXOspecial{#1 \axoxo\space add #2 \axoyo\space add #3 #4 #5
- \axowidth\space \axoscale\space oval
- }}%
-\else
- \getaxohelp{Oval}{#1 #2 #3 #4 #5 \axowidth}%
- \put(\axoxoff,\axoyoff){\axo@pdfliteral{\contentspdf}}%
-\fi
-}
-%
-% #] Oval :
-% #[ Polygon :
-%
-% Draws a curve through the points in argument 1.
-% The points are given as coordinates (x1,y1)(x2,y2)(x3,y3).....
-% The curve is continous and continuous in its first and second
-% derivatives. The method is linear interpolation of
-% quadratic curves.
-% Color name is argument 2.
-%
-\def\Polygon#1#2{%
- {%
- \SetColor{#2}%
- \ifcase\axo@pdfoutput
- \put(\axoxoff,\axoyoff){\AXOspecial{%
- [ \axoparray#1] \axowidth\space \axoscale\space polygon }}%
- \else
- \getaxohelp{Polygon}{"#1" \axowidth}%
- \put(\axoxoff,\axoyoff){\axo@pdfliteral{\contentspdf}}%
- \fi
- }%
- \ignorespaces
-}
-%
-% #] Polygon :
-% #[ FilledPolygon :
-%
-% Draws a curve through the points in argument 1.
-% The points are given as coordinates (x1,y1)(x2,y2)(x3,y3).....
-% The curve is continous and continuous in its first and second
-% derivatives. The method is linear interpolation of
-% quadratic curves.
-% Color name is argument 2.
-%
-\def\FilledPolygon#1#2{%
- {%
- \SetColor{#2}%
- \ifcase\axo@pdfoutput
- \put(\axoxoff,\axoyoff){\AXOspecial{%
- [ \axoparray#1] \axowidth\space \axoscale\space filledpolygon }}
- \else
- \getaxohelp{FilledPolygon}{"#1" \axowidth}%
- \put(\axoxoff,\axoyoff){\axo@pdfliteral{\contentspdf}}%
- \fi
- }%
- \ignorespaces
-}
-%
-% #] FilledPolygon :
-% #[ Curve :
-%
-% Draws a curve through the points in argument 1.
-% The points are given as coordinates (x1,y1)(x2,y2)(x3,y3).....
-% The curve is continous and continuous in its first and second
-% derivatives. The method is linear interpolation of quadratic curves.
-%
-\def\Curve#1{%
-\ifcase\axo@pdfoutput
- \put(\axoxoff,\axoyoff){\AXOspecial{[ \axoparray#1]
- \axowidth\space \axoscale\space makecurve }}
-\else
- \getaxohelp{Curve}{"#1" \axowidth}
- \put(\axoxoff,\axoyoff){\axo@pdfliteral{\contentspdf}}
-\fi
-}
-%
-% #] Curve :
-% #[ DashCurve :
-%
-% Draws a curve through the points in argument 1.
-% The points are given as coordinates (x1,y1)(x2,y2)(x3,y3).....
-% The curve is continous and continuous in its first and second
-% derivatives. The method is linear interpolation of quadratic curves.
-% Argument 2 gives a dash size.
-%
-\def\DashCurve#1#2{%
-\ifcase\axo@pdfoutput
- \put(\axoxoff,\axoyoff){\AXOspecial{[ \axoparray#1] #2
- \axowidth\space \axoscale\space makedashcurve }}
-\else
- \getaxohelp{DashCurve}{"#1" #2 \axowidth}
- \put(\axoxoff,\axoyoff){\axo@pdfliteral{\contentspdf}}
-\fi
-}
-%
-% #] DashCurve :
-% #[ LinAxis :
-%
-\def\LinAxis(#1,#2)(#3,#4)(#5,#6,#7,#8,#9){%
-%
-% Draws a line with linear hash marks along it.
-% LinAxis(x1,y1)(x2,y2)(num_decs,per_dec,hashsize,offset,width)
-% The line is from (x1,y1) to (x2,y2) and the marks are on the left side
-% when hashsize is positive, and right when it is negative.
-% num_decs is the number of accented marks, per_dec the number of
-% divisions between them and offset is the number
-% at which one starts at (x1,y1) (like if offset=2 we start at the second
-% small mark) Width is the linewidth.
-%
-\ifcase\axo@pdfoutput
- \put(\axoxoff,\axoyoff){\AXOspecial{%
- #1 \axoxo\space add #2 \axoyo\space add
- #3 \axoxo\space add #4 \axoyo\space add
- #5 #6 #7 #8 #9 \axoscale\space linaxis }}
-\else
- \getaxohelp{LinAxis}{#1 #2 #3 #4 #5 #6 #7 #8 #9}
- \put(\axoxoff,\axoyoff){\axo@pdfliteral{\contentspdf}}
-\fi
-}
-%
-% #] LinAxis :
-% #[ LogAxis :
-%
-\def\LogAxis(#1,#2)(#3,#4)(#5,#6,#7,#8){%
-%
-% Draws a line with logarithmic hash marks along it.
-% LogAxis(x1,y1)(x2,y2)(num_logs,hashsize,offset,width)
-% The line is from (x1,y1) to (x2,y2) and the marks are on the left side
-% when hashsize is positive, and right when it is negative.
-% num_logs is the number of orders of magnitude and offset is the number
-% at which one starts at (x1,y1) (like if offset=2 we start at 2)
-% When offset is 0 we start at 1. Width is the linewidth.
-%
-\ifcase\axo@pdfoutput
- \put(\axoxoff,\axoyoff){\AXOspecial{%
- #1 \axoxo\space add #2 \axoyo\space add
- #3 \axoxo\space add #4 \axoyo\space add
- #5 #6 #7 #8 \axoscale\space logaxis }}
-\else
- \getaxohelp{LogAxis}{#1 #2 #3 #4 #5 #6 #7 #8}
- \put(\axoxoff,\axoyoff){\axo@pdfliteral{\contentspdf}}
-\fi
-}
-%
-% #] LogAxis :
-% #[ AxoGrid :
-%
-\def\AxoGrid(#1,#2)(#3,#4)(#5,#6)#7#8{%
-%
-% Makes a grid with the left bottom at #1,#2
-% The increments in x and y are #3,#4
-% The number of steps in each direction are #5,#6 (there are n+1 lines)
-% #7 is the color and #8 the linewidth
-%
-{\SetColor{#7}%
- \ifcase\axo@pdfoutput
- \put(\axoxoff,\axoyoff){%
- \AXOspecial{%
- #3 #4 #5 #6
- #1 \axoxo\space add #2 \axoyo\space add
- #8 \axoscale\space axogrid
- }}%
- \else
- \getaxohelp{Grid}{#1 #2 #3 #4 #5 #6 #8}%
- \put(\axoxoff,\axoyoff){\axo@pdfliteral{\contentspdf}}%
- \fi
-}%
-\ignorespaces
-}
-%
-% #] AxoGrid :
-% #[ AXO@Arc :
-%
-% Generic Arc segment with many options.
-%
-%
-\def\AXO@Arc(#1,#2)(#3,#4,#5){%
-%
-% Draws arc centered at (#1,#2), radius #3, starting and ending
-% angles #4, #5.
-% Double, dashing, arrow, clockwise according to current settings
-%
-{\AXO@useopts
-\ifcase\axo@pdfoutput
- \put(\axoxoff,\axoyoff){%
- \AXOspecial{%
- \AXO@ArrowArg \space
- \ifAXO@flip true \else false \fi
- \ifAXO@double \AXO@CurrentSep \space \else 0 \fi
- \ifAXO@dash \AXO@CurrentDashSize \space \else 0 \fi
- \ifAXO@clock true \else false \fi
- #3 #4 #5
- #1 \axoxo\space add #2 \axoyo\space add
- \AXO@CurrentWidth\space \axoscale\space arc2
- }}%
-\else
- \getaxohelp{AxoArc}{#1 #2 #3 #4 #5
- \ifAXO@double \AXO@CurrentSep \space \else 0 \fi
- \ifAXO@dash \AXO@CurrentDashSize \space \else 0 \fi
- \AXO@ArrowArg \space
- \ifAXO@flip 1 \else 0 \fi
- \ifAXO@clock 1 \else 0 \fi
- \AXO@CurrentWidth}
- \put(\axoxoff,\axoyoff){\axo@pdfliteral{\contentspdf}}
-\fi
-}\ignorespaces
-}
-%
-% #] AXO@Arc :
-% #[ AXO@Bezier :
-%
-\def\AXO@Bezier(#1,#2)(#3,#4)(#5,#6)(#7,#8){%
-%
-% Draws a Bezier cubic with the control points (x1,y1), (x2,y2),
-% (x3,y3), (x4,y4)
-% Assumes options have been set
-%
-{\AXO@useopts
-\ifcase\axo@pdfoutput
- \put(\axoxoff,\axoyoff){\AXOspecial{%
- #1 \axoxo\space add #2 \axoyo\space add
- #3 \axoxo\space add #4 \axoyo\space add
- #5 \axoxo\space add #6 \axoyo\space add
- #7 \axoxo\space add #8 \axoyo\space add
- \AXO@ArrowArg \space
- \ifAXO@flip true \else false \fi
- \ifAXO@double \AXO@CurrentSep \space \else 0 \fi
- \ifAXO@dash \AXO@CurrentDashSize \space \else 0 \fi
- \AXO@CurrentWidth\space \axoscale\space dashdoublebezier
- }}%
-\else
- \getaxohelp{AxoBezier}{#1 #2 #3 #4 #5 #6 #7 #8
- \ifAXO@double \AXO@CurrentSep \space \else 0 \fi
- \ifAXO@dash \AXO@CurrentDashSize \space \else 0 \fi
- \AXO@ArrowArg \space
- \ifAXO@flip 1 \else 0 \fi
- \AXO@CurrentWidth}
- \put(\axoxoff,\axoyoff){\axo@pdfliteral{\contentspdf}}
-\fi
-}\ignorespaces
-}
-%
-% #] AXO@Bezier :
-% #[ AXO@GluonHelper :
-%
-\def\AXO@GluonHelper(#1,#2)(#3,#4)#5#6#7#8{%
-%
-% Draws a single gluon from (x1,y1) to (x2,y2) with amplitude #5 and number
-% of windings #6. Width #7 + #8
-% Assumes options have been set.
-% Used as helper from \AXO@Gluon
- %
-\ifAXO@arrow\AXO@NOTIMPLEMENTED{arrow not implemented for gluon}\fi
-\ifcase\axo@pdfoutput
- \put(\axoxoff,\axoyoff){%
- \AXOspecial{%
- #1 \axoxo\space add #2 \axoyo\space add
- #3 \axoxo\space add #4 \axoyo\space add
- #5 #6
- \ifAXO@dash \AXO@CurrentDashSize \space \else 0 \fi
- #7 #8 add \axoscale \space dashgluon
- }%
- }%
-\else
- \getaxohelp{AxoGluon}{#1 #2 #3 #4 #5 #6
- #7
- \ifAXO@dash \AXO@CurrentDashSize \space \else 0 \fi
- #8}%
- \put(\axoxoff,\axoyoff){\axo@pdfliteral{\contentspdf}}
-\fi
-}
-%
-\def\AXO@GluonHelperNEW(#1,#2)(#3,#4)#5#6#7#8{%
-% IDEA: Showing cleaner code
-%
-% Draws a single gluon from (x1,y1) to (x2,y2) with amplitude #5 and number
-% of windings #6. Width #7 + #8
-% Assumes options have been set.
-% Used as helper from \AXO@Gluon
-%
- \ifAXO@arrow\AXO@NOTIMPLEMENTED{arrow not implemented for gluon}\fi
- \ifcase\axo@pdfoutput
- \AXOputPS{%
- #1 #2 #3 #4 #5 #6
- \ifAXO@dash \AXO@CurrentDashSize \space \else 0 \fi
- #7 #8 add \axoscale \space dashgluon
- }%
- \else
- \getaxohelp{AxoGluon}{#1 #2 #3 #4 #5 #6
- #7
- \ifAXO@dash \AXO@CurrentDashSize \space \else 0 \fi
- #8}%
- \AXOputPDF{\contentspdfNoOffset}%
- \fi
-}
-%
-% #] AXO@GluonHelper :
-% #[ AXO@Gluon :
-%
-\def\AXO@Gluon(#1,#2)(#3,#4)#5#6{%
-%
-% Draws a gluon from (x1,y1) to (x2,y2) with amplitude #5 and number
-% of windings #6.
-% Assumes options have been set
-%
-{\AXO@useopts
- \ifAXO@arrow\AXO@NOTIMPLEMENTED{arrow not implemented for gluon}\fi
- \AXO@arrowfalse % To avoid repeated errors
- \ifAXO@double
- \AXO@GluonHelper(#1,#2)(#3,#4){#5}{#6}{\AXO@CurrentWidth}{\AXO@CurrentSep}%
- \SetColor{White}%
- \AXO@dashfalse
- \AXO@GluonHelper(#1,#2)(#3,#4){#5}{#6}{-\AXO@CurrentWidth}{\AXO@CurrentSep}%
- \else
- \AXO@GluonHelper(#1,#2)(#3,#4){#5}{#6}{0}{\AXO@CurrentWidth}%
- \fi
- }%
-\ignorespaces
-}
-% #] AXO@Gluon :
-% #[ AXO@GluonArcHelper :
-%
-\def\AXO@GluonArcHelper(#1,#2)(#3,#4,#5)#6#7#8#9{%
-%
-% Draws a gluon on an arc segment. The center of the curve is at (1,2)
-% The radius, start angle and target angle are (#3,#4,#5), #6 is the
-% amplitude of the gluon, and #7 is the number of windings.
-% Assumes options have been set
-% Width #8 + #9
-% Assumes options have been set.
-% Used as helper from \AXO@GluonArc
-\ifAXO@arrow\AXO@NOTIMPLEMENTED{arrow not implemented for gluon arc}\fi
-\ifcase\axo@pdfoutput
- \put(\axoxoff,\axoyoff){\AXOspecial{#6 #7
- \ifAXO@dash \AXO@CurrentDashSize \space \else 0 \fi
- \ifAXO@clock true \else false \fi
- #3 #4 #5
- #1 \axoxo\space add #2 \axoyo\space add
- #8 #9 add \axoscale\space dashgluearc
- }}%
-\else
- \getaxohelp{AxoGluonArc}{#1 #2 #3 #4 #5 #6 #7
- #8
- \ifAXO@dash \AXO@CurrentDashSize \space \else 0 \fi
- \ifAXO@clock 1 \else 0 \fi
- #9}
- \put(\axoxoff,\axoyoff){\axo@pdfliteral{\contentspdf}}
-\fi
-}
-% #] AXO@GluonArcHelper :
-% #[ AXO@GluonArc :
-%
-\def\AXO@GluonArc(#1,#2)(#3,#4,#5)#6#7{%
-%
-% Draws a gluon on an arc segment. The center of the curve is at (1,2)
-% The radius, start angle and target angle are (#3,#4,#5), #6 is the
-% amplitude of the gluon, and #7 is the number of windings.
-% Assumes options have been set
-%
- {\AXO@useopts
- \ifAXO@arrow\AXO@NOTIMPLEMENTED{arrow not implemented for gluon}\fi
- \AXO@arrowfalse % To avoid repeated errors
- \ifAXO@double
- \AXO@GluonArcHelper(#1,#2)(#3,#4,#5){#6}{#7}{\AXO@CurrentWidth}{\AXO@CurrentSep}%
- \SetColor{White}%
- \AXO@dashfalse
- \AXO@GluonArcHelper(#1,#2)(#3,#4,#5){#6}{#7}{-\AXO@CurrentWidth}{\AXO@CurrentSep}%
- \else
- \AXO@GluonArcHelper(#1,#2)(#3,#4,#5){#6}{#7}{0}{\AXO@CurrentWidth}%
- \fi
- }%
-\ignorespaces
-}
-% #] AXO@GluonArc :
-% #[ AXO@GluonCircHelper :
-%
-\def\AXO@GluonCircHelper(#1,#2)(#3,#4)#5#6#7#8{%
-%
-% Draws a gluon on a circle. The center of the circle is at (1,2)
-% The radius and the phase angle are (#3,#4), 5 is the
-% amplitude of the gluon, and 6 is the number of windings.
-% Width #7 + #8
-% Assumes options have been set.
-% Used as helper from \AXO@GluonCirc
-\ifAXO@arrow\AXO@NOTIMPLEMENTED{arrow not implemented for gluon arc}\fi
-\ifcase\axo@pdfoutput
- \put(\axoxoff,\axoyoff){\AXOspecial{%
- #5 #6
- \ifAXO@dash \AXO@CurrentDashSize \space \else 0 \fi
- #3 #4
- #1 \axoxo\space add #2 \axoyo\space add
- #7 #8 add \axoscale\space dashgluoncirc
- }}%
-\else
- \getaxohelp{AxoGluonCirc}{#1 #2 #3 #4 #5 #6
- #7
- \ifAXO@dash \AXO@CurrentDashSize \space \else 0 \fi
- #8}
- \put(\axoxoff,\axoyoff){\axo@pdfliteral{\contentspdf}}
-\fi
-}
-% #] AXO@GluonCicHelper :
-% #[ AXO@GluonCirc :
-%
-\def\AXO@GluonCirc(#1,#2)(#3,#4)#5#6{%
-%
-% Draws a gluon on a circle. The center of the circle is at (1,2)
-% The radius and the phase angle are (#3,#4), 5 is the
-% amplitude of the gluon, and 6 is the number of windings.
-%
- {\AXO@useopts
- \ifAXO@arrow\AXO@NOTIMPLEMENTED{arrow not implemented for gluon}\fi
- \AXO@arrowfalse % To avoid repeated errors
- \ifAXO@double
- \AXO@GluonCircHelper(#1,#2)(#3,#4){#5}{#6}{\AXO@CurrentWidth}{\AXO@CurrentSep}%
- \SetColor{White}%
- \AXO@dashfalse
- \AXO@GluonCircHelper(#1,#2)(#3,#4){#5}{#6}{-\AXO@CurrentWidth}{\AXO@CurrentSep}%
- \else
- \AXO@GluonCircHelper(#1,#2)(#3,#4){#5}{#6}{0}{\AXO@CurrentWidth}%
- \fi
- }%
-\ignorespaces
-}
-%
-% #] AXO@GluonCirc :
-% #[ AXO@Line :
-%
-\def\AXO@Line(#1,#2)(#3,#4){%
-%
-% Draws a line from (x1,y1) to (x2,y2)
-% Double, dashing, arrow according to current settings
-%
-{\AXO@useopts
-\ifcase\axo@pdfoutput
- \put(\axoxoff,\axoyoff){%
- \AXOspecial{%
- \AXO@ArrowArg \space
- \ifAXO@flip true \else false \fi
- \ifAXO@double \AXO@CurrentSep \space \else 0 \fi
- \ifAXO@dash \AXO@CurrentDashSize \space \else 0 \fi
- #1 \axoxo\space add #2 \axoyo\space add
- #3 \axoxo\space add #4 \axoyo\space add
- \AXO@CurrentWidth \space \axoscale \space
- dasharrowdoubleline
- }}%
-\else
- \getaxohelp{AxoLine}{#1 #2 #3 #4
- \ifAXO@double \AXO@CurrentSep \space \else 0 \fi
- \ifAXO@dash \AXO@CurrentDashSize \space \else 0 \fi
- \AXO@ArrowArg \space
- \ifAXO@flip 1 \else 0 \fi
- \AXO@CurrentWidth}
- \put(\axoxoff,\axoyoff){\axo@pdfliteral{\contentspdf}}%
-\fi
-}\ignorespaces
-}
-%
-% #] AXO@Line :
-% #[ AXO@Photon :
-%
-\def\AXO@Photon(#1,#2)(#3,#4)#5#6{%
-%
-% Draws a photon from (x1,y1) to (x2,y2) with amplitude #5 and number
-% of windings #6.
-% Assumes options have been set
-%
-{\AXO@useopts
-\ifAXO@arrow\AXO@NOTIMPLEMENTED{arrow not implemented for photon}\fi
-\ifcase\axo@pdfoutput
- \put(\axoxoff,\axoyoff){\AXOspecial{%
- #1 \axoxo\space add #2 \axoyo\space add
- #3 \axoxo\space add #4 \axoyo\space add #5 #6
- \ifAXO@double \AXO@CurrentSep \space \else 0 \fi
- \ifAXO@dash \AXO@CurrentDashSize \space \else 0 \fi
- \AXO@CurrentWidth\space \axoscale\space dashdoublephoton }}%
-\else
- \getaxohelp{AxoPhoton}{#1 #2 #3 #4 #5 #6
- \ifAXO@double \AXO@CurrentSep \space \else 0 \fi
- \ifAXO@dash \AXO@CurrentDashSize \space \else 0 \fi
- \AXO@CurrentWidth}
- \put(\axoxoff,\axoyoff){\axo@pdfliteral{\contentspdf}}
-\fi
-}\ignorespaces
-}
-% #] AXO@Photon :
-% #[ AXO@PhotonArc :
-%
-\def\AXO@PhotonArc(#1,#2)(#3,#4,#5)#6#7{%
-%
-% Draws a photon on an arc segment. The center of the curve is at (1,2)
-% The radius, start angle and target angle are (#3,#4,#5), #6 is the
-% amplitude of the gluon, and #7 is the number of wiggles.
-% Assumes options have been set
-%
-{\AXO@useopts
-\ifAXO@arrow\AXO@NOTIMPLEMENTED{arrow not implemented for photon arc}\fi
-\ifcase\axo@pdfoutput
- \put(\axoxoff,\axoyoff){\AXOspecial{%
- #6 #7
- \ifAXO@double \AXO@CurrentSep \space \else 0 \fi
- \ifAXO@dash \AXO@CurrentDashSize \space \else 0 \fi
- \ifAXO@clock true \else false \fi
- #3 #4 #5
- #1 \axoxo\space add #2 \axoyo\space add
- \AXO@CurrentWidth\space \axoscale\space dashdoublephotonarc
- }}%
-\else
- \getaxohelp{AxoPhotonArc}{#1 #2 #3 #4 #5 #6 #7
- \ifAXO@double \AXO@CurrentSep \space \else 0 \fi
- \ifAXO@dash \AXO@CurrentDashSize \space \else 0 \fi
- \ifAXO@clock 1 \else 0 \fi
- \AXO@CurrentWidth}
- \put(\axoxoff,\axoyoff){\axo@pdfliteral{\contentspdf}}
-\fi
-}\ignorespaces
-}
-%
-% #] AXO@PhotonArc :
-% #[ AXO@ZigZag :
-%
-\def\AXO@ZigZag(#1,#2)(#3,#4)#5#6{%
-%
-% Draws a zigzag from (x1,y1) to (x2,y2) with amplitude #5 and number
-% of windings #6.
-% Assumes options have been set
-%
-{\AXO@useopts
-\ifAXO@arrow\AXO@NOTIMPLEMENTED{arrow not implemented for zigzag}\fi
-\ifcase\axo@pdfoutput
- \put(\axoxoff,\axoyoff){\AXOspecial{%
- #1 \axoxo\space add #2 \axoyo\space add
- #3 \axoxo\space add #4 \axoyo\space add #5 #6
- \ifAXO@double \AXO@CurrentSep \space \else 0 \fi
- \ifAXO@dash \AXO@CurrentDashSize \space \else 0 \fi
- \AXO@CurrentWidth\space \axoscale\space dashdoublezigzag }}%
-\else
- \getaxohelp{AxoZigZag}{#1 #2 #3 #4 #5 #6
- \ifAXO@double \AXO@CurrentSep \space \else 0 \fi
- \ifAXO@dash \AXO@CurrentDashSize \space \else 0 \fi
- \AXO@CurrentWidth}
- \put(\axoxoff,\axoyoff){\axo@pdfliteral{\contentspdf}}%
-\fi
-}\ignorespaces
-}
-% #] AXO@ZigZag :
-% #[ AXO@ZigZagArc :
-%
-\def\AXO@ZigZagArc(#1,#2)(#3,#4,#5)#6#7{%
-%
-% Draws a zigzag on an arc segment. The center of the curve is at (1,2)
-% The radius, start angle and target angle are (#3,#4,#5), #6 is the
-% amplitude of the gluon, and #7 is the number of wiggles.
-% Assumes options have been set
-%
-{\AXO@useopts
-\ifAXO@arrow\AXO@NOTIMPLEMENTED{arrow not implemented for zigzag arc}\fi
-\ifcase\axo@pdfoutput
- \put(\axoxoff,\axoyoff){\AXOspecial{%
- #6 #7
- \ifAXO@double \AXO@CurrentSep \space \else 0 \fi
- \ifAXO@dash \AXO@CurrentDashSize \space \else 0 \fi
- \ifAXO@clock true \else false \fi
- #3 #4 #5
- #1 \axoxo\space add #2 \axoyo\space add
- \AXO@CurrentWidth\space \axoscale\space dashdoublezigzagarc
- }}%
-\else
- \getaxohelp{AxoZigZagArc}{#1 #2 #3 #4 #5 #6 #7
- \ifAXO@double \AXO@CurrentSep \space \else 0 \fi
- \ifAXO@dash \AXO@CurrentDashSize \space \else 0 \fi
- \ifAXO@clock 1 \else 0 \fi
- \AXO@CurrentWidth}
- \put(\axoxoff,\axoyoff){\axo@pdfliteral{\contentspdf}}
-\fi
-}\ignorespaces
-}
-%
-% #] AXO@ZigZagArc :
-% #[ Text and boxes :
-% #[ SetPFont :
-%
-% To access fonts, from both latex and pdflatex, we need
-% to define a mapping from the human-readable name to
-% the name known to (pdf)latex. Then we can define a
-% user command for setting the font. The human-readable
-% name is the one used by postscript.
-% Variables used:
-% \pfontN = human name of current PS font (e.g., Helvetica).
-% \pfontC = TeX code for the font (e.g., phvr).
-% Both are \relax to use regular document font
-% \axofontsize = size of font (text command with unit)
-
-
-\def\defineaxofont#1#2{%
- % #1 is user visible name of font, #2 is LaTex name.
- % Define a command of name #1 to return #2
- \expandafter\def\csname #1\endcsname{#2}
-}
-
-\def\SetPFont#1#2{%
- \ifthenelse{ \equal{#1}{} }%
- {\let\pfontN=\relax \let\pfontC=\relax}%
- {\@ifundefined{#1}%
- {\PackageWarning{axodraw2}{trying to set undefined font `#1'}}%
- {\def\pfontN{#1}% Human name (postscript)
- \def\pfontC{\@nameuse{#1}}% Code name
- }%
- }%
- \ifthenelse{ \equal{#2}{} }%
- {% Use the value of LaTeX's fontsize when the font is used:
- \def\axofontsize{\f@size}%
- }%
- {\def\axofontsize{#2}}%
-\ignorespaces
-}
-
-\def\UseCurrentPSFont{%
- % Set regular size of regular font, so math has rational size
- \fontsize{\axofontsize}{\axofontsize}%
- \selectfont
- \ifx\pfontC\relax
- \else
- \font\axofont = \pfontC \space at \axofontsize pt
- \axofont
- \fi
-}
-
-\defineaxofont{AvantGarde-Book}{pagk}
-\defineaxofont{AvantGarde-BookOblique}{pagko}
-\defineaxofont{AvantGarde-Demi}{pagd}
-\defineaxofont{AvantGarde-DemiOblique}{pagdo}
-\defineaxofont{Bookman-Demi}{pbkd}
-\defineaxofont{Bookman-DemiItalic}{pbkdi}
-\defineaxofont{Bookman-Light}{pbkl}
-\defineaxofont{Bookman-LightItalic}{pbkli}
-\defineaxofont{Courier-Bold}{pcrb}
-\defineaxofont{Courier-BoldOblique}{pcrbo}
-\defineaxofont{Courier}{pcrr}
-\defineaxofont{Courier-Oblique}{pcrro}
-\defineaxofont{Helvetica-Bold}{phvb}
-\defineaxofont{Helvetica-BoldOblique}{phvbo}
-\defineaxofont{Helvetica-NarrowBold}{phvbrn}
-\defineaxofont{Helvetica-NarrowBoldOblique}{phvbon}
-\defineaxofont{Helvetica}{phvr}
-\defineaxofont{Helvetica-Oblique}{phvro}
-\defineaxofont{Helvetica-Narrow}{phvrrn}
-\defineaxofont{Helvetica-NarrowOblique}{phvron}
-\defineaxofont{NewCenturySchlbk-Bold}{pncb}
-\defineaxofont{NewCenturySchlbk-BoldItalic}{pncbi}
-\defineaxofont{NewCenturySchlbk-Italic}{pncri}
-\defineaxofont{NewCenturySchlbk-Roman}{pncr}
-\defineaxofont{Palatino-Bold}{pplb}
-\defineaxofont{Palatino-BoldItalic}{pplbi}
-\defineaxofont{Palatino-Italic}{pplri}
-\defineaxofont{Palatino-Roman}{pplr}
-\defineaxofont{Symbol}{psyr}
-\defineaxofont{Times-Bold}{ptmb}
-\defineaxofont{Times-BoldItalic}{ptmbi}
-\defineaxofont{Times-Italic}{ptmri}
-\defineaxofont{Times-Roman}{ptmr}
-\defineaxofont{ZapfChancery-MediumItalic}{pzcmi}
-\defineaxofont{ZapfDingbats}{pzdr}
-
-% Now we can set the default:
-
-\SetPFont{Times-Roman}{10}
-
-%
-% #] SetPFont :
-% #[ Text :
-%
-% Aim: \Text(#1,#2)(#3)[#4]#5, to set text #5 at position (#1,#2)
-% with angle #3 and positioning #4.
-% But the presence of (#3) and [#3] is to be optional (with
-% defaults being equivalent to (0) and []
-%
-\def\Text(#1,#2){%
- \@ifnextchar(% )
- {\Text@A(#1,#2)}%
- {\Text@A(#1,#2)(0)}%
-}
-%
-\def\Text@A(#1,#2)(#3){%
- \@ifnextchar[% ]
- {\Text@Z(#1,#2)(#3)}%
- {\Text@Z(#1,#2)(#3)[]}%
-}
-%
-\def\axoscaleTT{\ifPSTextScalesLikeGraphics 1\else \axotextscale \fi}
-\def\axoscalePT{\ifPSTextScalesLikeGraphics \axoscale\else \axotextscale \fi}
-%
-\def\Text@Z(#1,#2)(#3)[#4]#5{%
- %
- % Draws text at (#1,#2). Argument #3 is combination of l, r, t, b to
- % indicate positioning instead of default (which is horizontally and
- % vertically centered --- these are same as \makebox
- % the text is left adjusted, right adjusted or centered. Or b or t.
- % 4 is of course the text.
- %
- \AxoPut(#1,#2){%
- \scalebox{\axoscaleTT}%
- {\rotatebox{#3}{\makebox(0,0)[#4]{#5}}}%
- }%
- \ignorespaces
-}
-%
-% #] Text :
-% #[ PText : *+
-%
-\def\PText(#1,#2)(#3)[#4]#5{%
-%
-% Draws a postscript text in a postscript font.
-% Focal point is (1,2), rotation angle is 3, 4 is the mode (as in text)
-% and 5 is the text.
-%
- \begingroup
- \UseCurrentPSFont
- \AxoPut(#1,#2){%
- \scalebox{\axoscalePT}%
- {\rotatebox{#3}{\makebox(0,0)[#4]{#5}}}%
- }%
- \endgroup
- \ignorespaces
-}
-%
-% #] PText :
-% #[ RText :
-%
-\def\RText(#1,#2)[#3](#4)#5{%
-%
-% Draws rotated text at (1,2). Argument 3 is l,r or c indicating whether
-% the text is left adjusted, right adjusted or centered.
-% 4 is the rotation angle and 5 is of course the text.
-%
- \Text(#1,#2)(#4)[#3]{#5}%
- \ignorespaces
-}
-%
-% #] RText :
-% #[ rText : *
-%
-\def\rText(#1,#2)[#3][#4]#5{%
-%
-% Draws rotated text at (1,2). Argument 3 is l,r or c indicating whether
-% the text is left adjusted, right adjusted or centered.
-% 4 is the rotation angle (specified as l, r, u, or blank,
-% and 5 is of course the text.
-%
- \begingroup
- \def\this@angle{0}%
- \ifx#4l%
- \def\this@angle{90}%
- \else
- \ifx#4r%
- \def\this@angle{-90}%
- \else
- \ifx#4u%
- \def\this@angle{180}%
- \fi
- \fi
- \fi
- \Text(#1,#2)(\this@angle)[#3]{#5}%
- \endgroup
- \ignorespaces
-}
-%
-% #] rText :
-% #[ BText :
-%
-\def\BText(#1,#2)#3{%
-%
-% Draws a box with the center at (x1,y1) and postscript text #3 in it.
-%
- \AxoPut(#1,#2){%
- \edef\axoscale{\axoscalePT}%
- \SetTmpBox{#3}%
- \BBoxc(0,0)(\tmpXT,\tmpYT)%
- \PText(0,0)(0)[]{\usebox{\tmpBox}}%
- }%
- \ignorespaces
-}
-%
-% #] BText :
-% #[ GText :
-%
-\def\GText(#1,#2)#3#4{%
-%
-% Draws a box with the center at (x1,y1) and postscript(#4) text in it.
-% The grayness of the box is given by #3
-%
- \AxoPut(#1,#2){%
- \edef\axoscale{\axoscalePT}%
- \SetTmpBox{#4}%
- \GBoxc(0,0)(\tmpXT,\tmpYT){#3}%
- \PText(0,0)(0)[]{\usebox{\tmpBox}}%
- }%
- \ignorespaces
-}
-%
-% #] GText :
-% #[ CText :
-%
-\def\CText(#1,#2)#3#4#5{%
-%
-% Draws a box with the center at (x1,y1) and postscript(#5) text in it.
-% The color of box and text is in #3
-% The color of the background is in #4
-%
- \AxoPut(#1,#2){%
- \edef\axoscale{\axoscalePT}%
- \SetTmpBox{\SetColor{#3}{#5}}%
- \CBoxc(0,0)(\tmpXT,\tmpYT){#3}{#4}%
- \PText(0,0)(0)[]{\usebox{\tmpBox}}%
- }%
-}
-%
-% #] CText :
-% #[ BTwoText :
-%
-\def\BTwoText(#1,#2)#3#4{%
-%
-% Draws a box with the center at (x1,y1) and two lines of postscript
-% text in it.
-%
- \AxoPut(#1,#2){%
- \edef\axoscale{\axoscalePT}%
- \SetTmpBoxTwo{#3}{#4}%
- \BBoxc(0,0)(\tmpXT,\tmpYT)%
- \PText(0,0)(0)[]{\usebox{\tmpBox}}%
- }%
- \ignorespaces
-}
-%
-% #] BTwoText :
-% #[ GTwoText :
-%
-\def\GTwoText(#1,#2)#3#4#5{%
-%
-% Draws a box with the center at (x1,y1) and two lines of postscript
-% text (#4 and #5) in it.
-% The grayness of the box is given by #3
-%
- \AxoPut(#1,#2){%
- \edef\axoscale{\axoscalePT}%
- \SetTmpBoxTwo{#4}{#5}%
- \GBoxc(0,0)(\tmpXT,\tmpYT){#3}%
- \PText(0,0)(0)[]{\usebox{\tmpBox}}%
- }%
- \ignorespaces
-}
-%
-% #] GTwoText :
-% #[ CTwoText :
-%
-\def\CTwoText(#1,#2)#3#4#5#6{%
-%
-% Draws a box with the center at (x1,y1) and two lines of postscript
-% text (#5 and #6) in it.
-% The color of the box and the text is given by #3
-% The background color is given by #4
-%
- \AxoPut(#1,#2){%
- \edef\axoscale{\axoscalePT}%
- \SetTmpBoxTwo{\SetColor{#3}#5}{\SetColor{#3}#6}%
- \CBoxc(0,0)(\tmpXT,\tmpYT){#3}{#4}%
- \PText(0,0)(0)[]{\usebox{\tmpBox}}%
- }%
- \ignorespaces
-}
-%
-% #] CTwoText :
-% #] Text and boxes :
-% #] Mixed routines :
-% #[ Postscript specific :
-%
-% The code here is used only when we need Postscript output. This concerns
-% mainly the Postscript library.
-%
-\ifcase\axo@pdfoutput
-%
-% #[ PostScript preamble :
-%
-\AtBeginDvi{
-%
-% This forces the PostScript preamble commands to be put into the
-% dvi file. Without this, revtex4 can remove them by funny
-% stuff with manipulating the first page.
-%
-% #[ inventory :
-%
-% The variables in here are:
-% num,num1,ampi,ampi1,x1,y1,x2,y2,x3,y3,x4,y4,dx,dy,dr
-% width, arrowpos, arrowspec, arrowwidth, arrowlength, arrowinset
-% arcend, arcmid, arcstart, radius, linesep, angdsize, dsize,
-% clockwise, dotsize, inc, pi, sign
-% darc,const,amp1, amp2, amp3, amp4, amp5, amp6, amp7, amp8, amp1i
-% gcolor,xx2
-%
-% NOTE: blank lines are not allowed inside the postscript code!!!!!
-% (LaTeX sneaks \par commands in and the postscript goes boink)
-%
-\special{color} % Provoke dvips into including color.pro
- % Revtex4 in 2-column mode fails to force that
-%
-\special{!
- /savecolor { %/cmyk [ currentcmykcolor ] def
- /oldcolor [ [ currentcolor ] currentcolorspace ] def
- } def
- /restorecolor { oldcolor aload pop setcolorspace aload pop setcolor } def
-% /savecolor { [ currentcmykcolor ] /cmyk ed } def
-% /restorecolor { cmyk aload pop setcmykcolor } def
-% % Do a save color now, to ensure default variables are defined:
- savecolor
-}
-%
-\special{!
- /pi 3.141592 def
- /ed{exch def}def
-% Implement conversion of length unit from pt to bp by scaling
- /gs{gsave 1.00375 div dup scale}def
- /gsw{ gs
- /width ed
- width setlinewidth
- }def
- /p1{/y1 ed /x1 ed}def
- /p2{/y2 ed /x2 ed}def
- /p3{/y3 ed /x3 ed}def
- /p4{/y4 ed /x4 ed}def
- /pp1{/yy1 ed /xx1 ed}def
- /pp2{/yy2 ed /xx2 ed}def
- /pp3{/yy3 ed /xx3 ed}def
- /setabs{
- % Usage /var setabs
- % Sets variable to its absolute value
- dup load abs def
- }def
- %
- /normalizearc {
- % Usage: clockwise r angle1 angle2 x y normalizearc
- % Adjusts coordinate system for anticlockwize arc from angle
- % zero, centered at origin.
- % Left on stack: r d_angle, with 0<d_angle <=360.
- % Zero angle arc converted to loop
- translate
- exch dup rotate % Origin of arc now at angle 0
- sub % Change angle2 to dangle
- 3 2 roll
- { % Clockwise arc: obtain from anticlockwise arc
- neg
- 1 -1 scale
- } if
- dup abs 360 ge
- { %Outside 360 degrees, make exactly a loop
- pop 360
- }
- { % Convert to positive angle mod 360.
- dup
- dup 0 lt { 360 sub } if
- 360 div truncate 360 mul sub
- dup 0.1 lt { pop 360 } if
- }ifelse
- } def
- %
- /normalizeline {
- % Usage: x1 y1 x2 y2 normalizeline
- % Adjusts coordinate system for line from origin in x direction
- % Left on stack: dr = length of line
- 3 index 3 index translate
- 2 index sub exch 3 index sub
-% 2 copy atan rotate
- 2 copy
- 2 copy 0 ne exch 0 ne or
- {atan rotate}
- {pop pop}
- ifelse
- dup mul exch dup mul add sqrt
- 3 1 roll pop pop
- } def
- %
- /abox{
- newpath
- x1 y1 moveto
- x1 y2 lineto
- x2 y2 lineto
- x2 y1 lineto
- closepath
- }def
- /atriangle{
- newpath
- x1 y1 moveto
- x2 y2 lineto
- x3 y3 lineto
- closepath
- }def
- /abezier{
- newpath
- x1 y1 moveto
- x2 y2 x3 y3 x4 y4 curveto
- }def
- /distance{
- % Usage: x1 y1 x2 y2 distance -> x1 y1 x2 y2 r
- % Pure stack based: computes distance between points. Keeps points
- dup
- 3 index sub dup mul
- 2 index 5 index sub dup mul add sqrt
- } def
- /setbackgroundcolor{
- 0 0 0 0 setcmykcolor
- } def
-}
-%
-% #] inventory :
-% #[ Arrows :
-%
-% Define better arrows
-%
-\special{!
-% Arrow making routines
-%
- /getarrow {
- /witharrow ed
- /arrowpos ed
- /arrowaspect ed
- /arrowscale ed
- /arrowinset ed
- /arrowlength ed
- /arrowwidth ed
- /arrowstroke ed
- } def
- /drawarrow {
- gsave
- [] 0 setdash
- rotate
- arrowwidth 0 eq {
- arrowlength 0 eq {
- linewidth linesep 0.7 mul add 1 add 1.2 mul dup
- 2.5 lt {
- pop
- 2.5
- } if
- arrowscale mul
- /arrowwidth ed
- /arrowlength arrowwidth 2 mul arrowaspect mul def
- } {
- /arrowlength arrowlength arrowscale mul def
- /arrowwidth arrowlength 2 div arrowaspect div def
- } ifelse
- } {
- arrowlength 0 eq {
- /arrowwidth arrowwidth arrowscale mul def
- /arrowlength arrowwidth 2 mul arrowaspect mul def
- } {
- /arrowwidth arrowwidth arrowscale mul def
- /arrowlength arrowlength arrowscale mul def
- } ifelse
- } ifelse
- arrowstroke 0 ne {
- arrowstroke setlinewidth
- gsave
- setbackgroundcolor
- newpath
- 0 arrowlength -0.5 mul moveto
- arrowwidth arrowlength rlineto
- arrowwidth -1 mul arrowlength arrowinset mul -1 mul rlineto
- arrowwidth -1 mul arrowlength arrowinset mul rlineto
- closepath fill
- grestore
- newpath
- 0 arrowlength -0.5 mul moveto
- arrowwidth arrowlength rlineto
- arrowwidth -1 mul arrowlength arrowinset mul -1 mul rlineto
- arrowwidth -1 mul arrowlength arrowinset mul rlineto
- closepath stroke
- } {
- newpath
- 0 arrowlength -0.5 mul moveto
- arrowwidth arrowlength rlineto
- arrowwidth -1 mul arrowlength arrowinset mul -1 mul rlineto
- arrowwidth -1 mul arrowlength arrowinset mul rlineto
- closepath fill
- } ifelse
- grestore
- } def
-%
-}
-%
-% #] Arrows :
-%
-% Basic line drawing
-% #[ fixdash :
-%
-\special{! /fixdash{
-% Usage: r dashsize fixdash
-% Sets renormalized dashsize, doing
-% [rdsize rdsize] 0 setdash
-% so that n+1/2 patterns fit in length r
-% If dsize is too big or if dsize is zero, use continuous line
-% Uses stack, no named variables.
- 2 copy gt
- 1 index 0 ne
- and
- {
- 2 copy
- 2 mul div 0.5 sub round
- dup 0 le { pop 0 } if
- 2 mul 1 add exch pop div
- dup 2 array astore 0 setdash
- }
- { pop pop [] 0 setdash }
- ifelse
-} def }
-%
-% #] fixdash :
-% #[ dashline :
-%
-\special{! /dashline{
-% Draws a straight dashed line: x1,y1,x2,y2
-% Assumes dsize already set
-% The pattern is ideally [dsize dsize] 0 setdash
-% but we want to have (2*n+1)/2 patterns, so dsize must be rounded
-% If dsize is too large or zero, use a continuous line
-% Pure stack operation.
- gsave
- distance dsize fixdash % Function distance leaves points on stack
- newpath
- moveto
- lineto
- stroke
- grestore
-} def }
-% #] dashline :
-% #[ dasharc :
-%
-\special{! /dasharc{
-% Draws an arc segment anticlockwise:
-% x_center, y_center, radius, start_angle, end_angle
-% Assumes angdsize (radians) set elsewhere
- gsave
- 3 copy sub abs
- % Top of stack is copy of radius, start_angle, end_angle
- pi mul 180 div mul
- % Top of stack is arc length
- 3 index angdsize mul fixdash
- newpath arc stroke
- grestore
-} def }
-%
-% #] dasharc :
-% #[ dashgluon :
-%
-\special{! /dashgluon{
-%
-% Draw gluon, possibly dashed
-% We have a 'head' and a 'tail' and in between the 'body'
-% The head + tail is 2 windings. The body is num-1 windings.
-%
- gsw
- /dsize ed
- /num ed /ampi ed
- normalizeline /dr ed
- /num num 0.5 sub round def
-%
- dsize 0 eq {
- [] 0 setdash
- } {
- /amp8 ampi abs 0.9 mul def
- /size amp8 neg 0 amp8 neg ampi 2 mul dup dr num 2 mul 2 add div exch
- 1 lengthofbezier def
-%
- /ndash size dsize 2 mul div truncate def
- ndash 0 eq { /ndash 1 def } if
- size 2 dsize ndash mul mul sub abs
- size 2 dsize ndash 1 add mul mul sub abs gt { /ndash ndash 1 add def } if
- /dsize size 2 ndash mul div def
- [ dsize dsize ] dsize 2 div setdash
- } ifelse
-%
- /inc dr num 2 mul 2 add div def % increment per half winding
- /amp8 ampi 0.9 mul def
- amp8 0 lt {/amp8 amp8 neg def} if
-%
- /x1 inc 2 mul def
-%
- newpath
- x1 ampi neg moveto
- x1 amp8 add dup ampi neg exch ampi inc 1.4 mul ampi curveto
- inc 0.5 mul ampi inc 0.1 mul ampi 0.5 mul 0 0 curveto
- stroke
- newpath
- x1 ampi neg moveto
- 2 1 num {
- pop
- x1 amp8 sub dup ampi neg exch ampi dup x1 inc add exch curveto
- /x1 x1 inc dup add add def
- x1 amp8 add dup ampi exch ampi neg dup x1 exch curveto
- } for
-%
- x1 amp8 sub dup ampi neg exch ampi dup x1 inc 0.6 mul add exch curveto
- x1 inc 1.5 mul add ampi dr inc 0.1 mul sub ampi 0.5 mul dr 0 curveto
- stroke
-%
- grestore
-} def }
-%
-% #] dashgluon :
-% #[ dashdoublephoton :
-%
-\special{! /dashdoublephoton{
-%
-% Draws a photon from x1,y1 to x2,y2 with amplitude A and n wiggles
-% Possibly double
-%
- gsw
- /dsize ed
- /linesep ed
- /num ed /ampi ed
- normalizeline /dr ed
- /num num 2 mul 0.5 sub round def
-%
- dsize 0 eq {
- [] 0 setdash
- } {
-% Compute the dash size
- /xdd dr num div def
- /size 4 3 div xdd mul pi div dup neg xdd add
- 4 3 div ampi mul dup 3 1 roll xdd 0 1 lengthofbezier 2 div def
- /ndash size dsize 2 mul div truncate def
- ndash 0 eq { /ndash 1 def } if
- size 2 dsize ndash mul mul sub abs
- size 2 dsize ndash 1 add mul mul sub abs gt { /ndash ndash 1 add def } if
- /dsize size 2 ndash mul div def
- [ dsize dsize ] dsize 2 div setdash
- } ifelse
-%
- linesep 0 eq
- { 0 0 dr 0 ampi num photon1 }
- {
-% 0 linesep 2 div dup dr exch ampi num photon1
-% 0 linesep -2 div dup dr exch ampi num photon1
-%
- linesep width add setlinewidth 0 0 dr 0 ampi num photon1
- [] 0 setdash
- 0 0 0 0 setcmykcolor
- linesep width sub setlinewidth 0 0 dr 0 ampi num photon1
-%
- }
- ifelse
- grestore
-} def }
-%
-% #] dashdoublephoton :
-% #[ photon1 :
-%
-\special{! /photon1{
-%
-% Draws a single photon from x1,y1 to x2,y2 with amplitude A and n wiggles
-%
- gsave
- /num1 ed /ampi1 ed
- normalizeline /dr ed
-%
- /x2 dr num1 div def
- /sign 1 def
- 1 1 num1 {
- pop
- newpath
- 0 0 moveto
- 4 3 div x2 mul pi div dup neg x2 add
- 4 3 div ampi1 sign mul mul dup 3 1 roll
- x2 0 curveto
- stroke
- /sign sign neg def
- x2 0 translate
- } for
-%
- grestore
-} def }
-%
-% #] photon1 :
-% #[ dashdoublezigzag :
-%
-\special{! /dashdoublezigzag{
-%
-% Draws a zigzag from x1,y1 to x2,y2 with amplitude A and n wiggles
-% Possibly double
-%
- gsw
- /dsize ed
- /linesep ed
- /num ed /ampi ed
- normalizeline /dr ed
- /num num 2 mul 0.5 sub round def
-%
- dsize 0 eq {
- [] 0 setdash
- } {
-% Compute the dash size
- /size dr num 2 mul div dup mul ampi dup mul add sqrt def
- /ndash size dsize 2 mul div truncate def
- ndash 0 eq { /ndash 1 def } if
- size 2 dsize ndash mul mul sub abs
- size 2 dsize ndash 1 add mul mul sub abs gt { /ndash ndash 1 add def } if
- /dsize size 2 ndash mul div def
- [ dsize dsize ] dsize 2 div setdash
- } ifelse
-%
- linesep 0 eq
- { 0 0 dr 0 ampi num zigzag1 }
- {
-% 0 linesep 2 div dup dr exch ampi num zigzag1
-% 0 linesep -2 div dup dr exch ampi num zigzag1
-%
- linesep width add setlinewidth 0 0 dr 0 ampi num zigzag1
- [] 0 setdash
- 0 0 0 0 setcmykcolor
- linesep width sub setlinewidth 0 0 dr 0 ampi num zigzag1
-%
- }
- ifelse
- grestore
-} def }
-%
-% #] dashdoublezigzag :
-% #[ zigzag1 :
-%
-\special{! /zigzag1{
-%
-% Draws a single zigzag from x1,y1 to x2,y2 with amplitude A and n wiggles
-%
- gsave
- /num1 ed /ampi1 ed
- normalizeline /dr ed
-%
- /x2 dr num1 div def
- /sign 1 def
- 1 1 num1 {
- pop
- newpath
- 0 0 moveto
- x2 2 div ampi1 sign mul lineto
- x2 0 lineto
- stroke
- /sign sign neg def
- x2 0 translate
- } for
-%
- grestore
-} def }
-%
-% #] zigzag1 :
-% #[ dashgluearc :
-%
-\special{! /dashgluearc{
-%
-% Draws a gluon on an arcsegment
-% gluon_radius, num, linesep (0 for no-double), dsize (0 for no dashes)
-% clock, radius, start_angle, end_angle, x_center, y_center
-% in which num is the number of windings of the gluon.
-%
-% Method for the gluon arc itself:
-% 1: compute length of arc.
-% 2: generate gluon in x and y as if the arc is a straight line
-% 3: x' = (radius+y)*cos(x*const)
-% y' = (radius+y)*sin(x*const)
-%
- gsw
- normalizearc
- /darc ed /radius ed /dsize ed /num ed /ampi ed
- /num num 0.5 sub round def
-%
- dsize 0 eq {
- [] 0 setdash
- } {
- /dr radius darc mul pi mul 180 div def % length of segment.
- /const darc dr div def % conversion constant
- /inc dr num 2 mul 2 add div def % increment per half winding
- /amp8 ampi 0.9 mul def
- /amp1 radius ampi add def
- /amp2 radius ampi sub def
- /amp4 amp1 inc amp8 add const mul cos div def
- /amp5 amp2 amp8 const mul cos div def
- amp8 0 lt {/amp8 amp8 neg def} if
- /x1 inc 2 mul def
- /x0 x1 const mul cos amp2 mul def
- /y0 x1 const mul sin amp2 mul def
- x1 amp8 sub const mul dup cos amp5 mul x0 sub exch sin amp5 mul y0 sub
- x1 amp8 sub const mul dup cos amp4 mul x0 sub exch sin amp4 mul y0 sub
- x1 inc add const mul dup cos amp1 mul x0 sub exch sin amp1 mul y0 sub
- 1 lengthofbezier
- /size ed
-%
- /ndash size dsize 2 mul div truncate def
- ndash 0 eq { /ndash 1 def } if
- size 2 dsize ndash mul mul sub abs
- size 2 dsize ndash 1 add mul mul sub abs gt { /ndash ndash 1 add def } if
- /dsize size 2 ndash mul div def
- [ dsize dsize ] dsize 2 div setdash
- } ifelse
-%
- /dr radius darc mul pi mul 180 div def % length of segment.
- /const darc dr div def % conversion constant
- /inc dr num 2 mul 2 add div def % increment per half winding
- /amp8 ampi 0.9 mul def
- /amp1 radius ampi add def
- /amp2 radius ampi sub def
- /amp3 radius ampi 2 div add def
- /amp4 amp1 inc amp8 add const mul cos div def
- /amp5 amp2 amp8 const mul cos div def
- /amp6 amp1 inc 0.6 mul amp8 add const mul cos div def
- /amp7 amp1 inc 0.9 mul const mul cos div def
- amp8 0 lt {/amp8 amp8 neg def} if
-%
- newpath
- /x1 inc 2 mul def
- x1 const mul dup cos amp2 mul exch sin amp2 mul
- moveto
- x1 amp8 add const mul dup cos amp5 mul exch sin amp5 mul
- x1 amp8 add const mul dup cos amp6 mul exch sin amp6 mul
- inc 1.4 mul const mul dup cos amp1 mul exch sin amp1 mul
- curveto
- inc 0.5 mul const mul dup cos amp7 mul exch sin amp7 mul
- inc 0.1 mul const mul dup cos amp3 mul exch sin amp3 mul
- radius 0
- curveto
- stroke
- newpath
- x1 const mul dup cos amp2 mul exch sin amp2 mul moveto
- 2 1 num { pop
- x1 amp8 sub const mul dup cos amp5 mul exch sin amp5 mul
- x1 amp8 sub const mul dup cos amp4 mul exch sin amp4 mul
- x1 inc add const mul dup cos amp1 mul exch sin amp1 mul
- curveto
- /x1 x1 inc dup add add def
- x1 amp8 add const mul dup cos amp4 mul exch sin amp4 mul
- x1 amp8 add const mul dup cos amp5 mul exch sin amp5 mul
- x1 const mul dup cos amp2 mul exch sin amp2 mul
- curveto
- } for
- x1 amp8 sub const mul dup cos amp5 mul exch sin amp5 mul
- x1 amp8 sub const mul dup cos amp6 mul exch sin amp6 mul
- x1 inc 0.6 mul add const mul dup cos amp1 mul exch sin amp1 mul
- curveto
- x1 inc 1.5 mul add const mul dup cos amp7 mul exch sin amp7 mul
- dr inc 0.1 mul sub const mul dup cos amp3 mul exch sin amp3 mul
- dr const mul dup cos radius mul exch sin radius mul
- curveto
- stroke
-%
- grestore
-} def
-}
-%
-% #] dashgluearc :
-% #[ dashdoublephotonarc :
-%
-\special{! /dashdoublephotonarc{
-%
-% Draws a photon on an arcsegment
-% photon_radius, num, linesep (0 for no-double), dsize (0 for no dashes),
-% clock, radius, start_angle, end_angle, x_center, y_center
-% in which num is the number of wiggles of the photon.
-%
- gsw
- normalizearc
- /darc ed /radius ed /dsize ed /linesep ed /num ed /ampli ed
-%
- /num num 2 mul round def % number of half wiggles
- /darc1 darc num div def
- /cp darc1 cos def
- /sp darc1 sin def
- darc1 2 div dup
- /cp2 exch cos def
- /sp2 exch sin def
-%
- dsize 0 eq {
- [] 0 setdash
- } {
-%
-% Compute the length of the outer curve and the inner curve.
-% There must be an integer number of patterns in half the sum.
-% The we use half of the first to determine where in the pattern
-% we should start.
-%
- /ampli1 ampli def
- /beta radius darc1 mul 180 ampli1 mul div def
- /tt sp cp beta mul sub cp sp beta mul add div def
- /amp1 radius ampli1 add 8 mul beta cp2 mul sp2 sub mul beta 4 cp add mul
- tt cp mul 3 mul sp 4 mul sub add radius mul sub
- beta tt sub 3 mul div def % this is x2
- radius ampli1 add 8 mul cp2 mul 1 cp add radius mul sub 3 div amp1 sub
- dup radius sub exch radius sub beta mul % x1,y1
- amp1 radius sub amp1 radius cp mul sub tt mul radius sp mul add % x2,y2
- radius cp mul radius sub radius sp mul % x3 y3
- 1 lengthofbezier
- /len1 ed
- /ampli1 ampli1 neg def
- /beta radius darc1 mul 180 ampli1 mul div def
- /tt sp cp beta mul sub cp sp beta mul add div def
- /amp1 radius ampli1 add 8 mul beta cp2 mul sp2 sub mul beta 4 cp add mul
- tt cp mul 3 mul sp 4 mul sub add radius mul sub
- beta tt sub 3 mul div def % this is x2
- radius ampli1 add 8 mul cp2 mul 1 cp add radius mul sub 3 div amp1 sub
- dup radius sub exch radius sub beta mul % x1,y1
- amp1 radius sub amp1 radius cp mul sub tt mul radius sp mul add % x2,y2
- radius cp mul radius sub radius sp mul % x3 y3
- 1 lengthofbezier
- /len2 ed
- /size len1 len2 add 2 div def
- /size2 len1 2 div def
-%
- /ndash size dsize 2 mul div truncate def
- ndash 0 eq { /ndash 1 def } if
- size 2 dsize ndash mul mul sub abs
- size 2 dsize ndash 1 add mul mul sub abs gt { /ndash ndash 1 add def } if
- /dsize size 2 ndash mul div def
- /numd size2 dsize 2 mul div truncate def
- /dstart dsize 2 div size2 sub 2 numd dsize mul mul add def
- dstart 0 lt { /dstart dstart dsize 2 mul add def } if
- [ dsize dsize ] dstart setdash
- } ifelse
-%
- linesep 0 eq {
- radius photonarc1
- } {
- linesep width add setlinewidth radius photonarc1
- [] 0 setdash
- 0 0 0 0 setcmykcolor
- linesep width sub setlinewidth radius photonarc1
- } ifelse
-%
- grestore
-} def }
-%
-% #] dashdoublephotonarc :
-% #[ photonarc1 :
-%
-\special{! /photonarc1{
-% Usage: radius photonarc1
-% Draws a single photon on an arcsegment.
-% Called from dashdoublephotonarc with coordinates centered on center,
-% start on x-axis.
-% Assume the following are set: num, ampli, arcend phi, arcstart phi/2, cp,
-% cp2, sp, sp2.
-% Draws a photonarc center at x1,y1, radius arcstart,arcend, amplitude
-% number of wiggles, width, scale
-%
- gsave
- /radius1 ed
- % Local copy of amplitude, since I change it
- /ampli1 ampli def
-%
- newpath
- radius1 0 moveto
- 1 1 num { 1 sub /ii ed
- /cpi darc1 ii mul cos def
- /spi darc1 ii mul sin def
- /beta radius1 darc1 mul 180 ampli1 mul div def
- /tt sp cp beta mul sub cp sp beta mul add div def
- /x2 radius1 ampli1 add 8 mul beta cp2 mul sp2 sub mul beta 4 cp add mul
- tt cp mul 3 mul sp 4 mul sub add radius1 mul sub
- beta tt sub 3 mul div def
- /x1 radius1 ampli1 add 8 mul cp2 mul 1 cp add radius1 mul sub 3 div x2 sub def
- /y1 x1 radius1 sub beta mul def
- /y2 x2 radius1 cp mul sub tt mul radius1 sp mul add def
- /x3 radius1 cp mul def
- /y3 radius1 sp mul def
- x1 cpi mul y1 spi mul sub y1 cpi mul x1 spi mul add
- x2 cpi mul y2 spi mul sub y2 cpi mul x2 spi mul add
- x3 cpi mul y3 spi mul sub y3 cpi mul x3 spi mul add
- curveto
- /ampli1 ampli1 neg def
- } for
- stroke
-%
- grestore
-} def }
-%
-% #] photonarc1 :
-% #[ dashdoublezigzagarc :
-%
-\special{! /dashdoublezigzagarc{
-%
-% Draws a zigzag on an arcsegment
-% zigzag_radius, num, linesep (0 for no-double), dsize (0 for no dashes),
-% clock, radius, start_angle, end_angle, x_center, y_center
-% in which num is the number of wiggles of the zigzag.
-%
- gsw
- normalizearc
- /darc ed /radius ed /dsize ed /linesep ed /num ed /ampli ed
-%
- /num num 2 mul round def % number of half wiggles
- /darc1 darc num div def
- /cp darc1 cos def
- /sp darc1 sin def
- darc1 2 div dup
- /cp2 exch cos def
- /sp2 exch sin def
-%
- dsize 0 eq {
- [] 0 setdash
- } {
- /size ampli dup mul radius dup mul add radius dup mul ampli dup mul sub
- cp mul sub 2 div sqrt def
- /size2 ampli dup mul ampli radius add radius mul 2 mul 1 cp2 sub mul
- add sqrt def
-%
- /ndash size dsize 2 mul div truncate def
- ndash 0 eq { /ndash 1 def } if
- size 2 dsize ndash mul mul sub abs
- size 2 dsize ndash 1 add mul mul sub abs gt { /ndash ndash 1 add def } if
- /dsize size 2 ndash mul div def
- /numd size2 dsize 2 mul div truncate def
- /dstart dsize 2 div size2 sub 2 numd dsize mul mul add def
- dstart 0 lt { /dstart dstart dsize 2 mul add def } if
- [ dsize dsize ] dstart setdash
- } ifelse
-%
- linesep 0 eq {
- radius zigzagarc1
- } {
- linesep width add setlinewidth radius zigzagarc1
- [] 0 setdash
- 0 0 0 0 setcmykcolor
- linesep width sub setlinewidth radius zigzagarc1
- } ifelse
-%
- grestore
-} def }
-%
-% #] dashdoublezigzagarc :
-% #[ zigzagarc1 :
-%
-\special{! /zigzagarc1{
-% Usage: radius zigzagarc1
-% Draws a single zigzag on an arcsegment.
-% Called from dashdoublezigzagarc with coordinates centered on center,
-% start on x-axis.
-% Assume the following are set: num, ampli, arcend phi, arcstart phi/2, cp,
-% cp2, sp, sp2.
-% Draws a zigzagarc center at x1,y1, radius arcstart,arcend, amplitude
-% number of wiggles, width, scale
-%
- gsave
- /radius1 ed
-% Local copy of amplitude, since I change it
- /ampli1 ampli def
-%
-% Num is the number of half wiggles. We like to start and end with
-% quarter wiggles though.
-%
- /darc2 darc1 2 div def
- newpath
- radius1 0 moveto
- darc2 dup sin exch cos
- radius1 ampli1 add mul exch radius1 ampli1 add mul lineto
- /ampli1 ampli1 neg def
- /num1 num 1 sub def
- 1 1 num1 {
- darc1 mul darc2 add dup sin exch cos
- radius1 ampli1 add mul exch radius1 ampli1 add mul lineto
- /ampli1 ampli1 neg def
- } for
- num darc1 mul dup sin exch cos
- radius1 mul exch radius1 mul lineto
- stroke
-%
- grestore
-} def }
-%
-% #] zigzagarc1 :
-% #[ dashgluoncirc :
-%
-\special{! /dashgluoncirc{
-%
-% Draws a gluon on a complete circle
-% cmyk color setting
-% gluon_ampl, num, linesep (0 for no-double), dsize (0 for no dashes)
-% radius, phase_angle, x_center, y_center
-% in which num is the number of windings of the gluon.
-%
- gsw
- translate
- /phase ed /radius ed /dsize ed /num ed /ampi ed
- /num num 0.5 sub round def
- /darc 180 num div def
-%
-% We rotate in such a way that 0 angle becomes more accessible.
-%
- darc phase add rotate
-%
- dsize 0 eq {
- [] 0 setdash
- } {
- /dr radius 2 mul pi mul def % 2*pi*r
- /inc dr 2 num mul div def % 2*pi*r/(2*num)
- /const 360 dr div def % 360/(2*pi*r)
- /amp8 ampi 0.9 mul def
- /amp1 radius ampi add def
- /amp2 radius ampi sub def
- /amp4 amp1 inc amp8 add const mul cos div def
- /amp5 amp2 amp8 const mul cos div def
- amp8 0 lt {/amp8 amp8 neg def} if
- /xx inc 2 mul def
- /x0 amp1 inc const mul cos mul def
- /y0 amp1 inc const mul sin mul def
- amp4 xx amp8 add const mul cos mul x0 sub
- amp4 xx amp8 add const mul sin mul y0 sub
- amp5 xx amp8 add const mul cos mul x0 sub
- amp5 xx amp8 add const mul sin mul y0 sub
- amp2 xx const mul cos mul x0 sub
- amp2 xx const mul sin mul y0 sub
- 1 lengthofbezier
- /size ed
-%
- /ndash size dsize 2 mul div truncate def
- ndash 0 eq { /ndash 1 def } if
- size 2 dsize ndash mul mul sub abs
- size 2 dsize ndash 1 add mul mul sub abs gt { /ndash ndash 1 add def } if
- /dsize size 2 ndash mul div def
- [ dsize dsize ] dsize 2 div setdash
- } ifelse
-%
- /dr radius 2 mul pi mul def % 2*pi*r
- /inc dr 2 num mul div def % 2*pi*r/(2*num)
- /const 360 dr div def % 360/(2*pi*r)
- /amp8 ampi 0.9 mul def
- /amp1 radius ampi add def
- /amp2 radius ampi sub def
- /amp4 amp1 inc amp8 add const mul cos div def
- /amp5 amp2 amp8 const mul cos div def
- amp8 0 lt {/amp8 amp8 neg def} if
-%
- newpath
-%
- /xx inc 2 mul def
- amp1 inc const mul cos mul amp1 inc const mul sin mul moveto
-%
- 1 1 num { pop
- amp4 xx amp8 add const mul cos mul
- amp4 xx amp8 add const mul sin mul
- amp5 xx amp8 add const mul cos mul
- amp5 xx amp8 add const mul sin mul
- amp2 xx const mul cos mul
- amp2 xx const mul sin mul
- curveto
- amp5 xx amp8 sub const mul cos mul
- amp5 xx amp8 sub const mul sin mul
- amp4 xx amp8 sub const mul cos mul
- amp4 xx amp8 sub const mul sin mul
- amp1 xx inc add const mul cos mul
- amp1 xx inc add const mul sin mul
- curveto
- /xx xx inc 2 mul add def
- } for
-%
- stroke
-%
- grestore
-} def }
-%
-% #] dashgluoncirc :
-% #[ arc2 :
-%
-\special{! /arc2{
-% Draws an arc segment:
-% arrowspec, arrowpos, flip, linesep, dsize,
-% clock, radius, start_angle, end_angle, x_center, y_center, width, scale
-% If linesep == 0, then single line, else double with separation linesep.
-%
- gsw
- normalizearc
- /darc ed /radius ed
- /dsize ed /linesep ed
- /angdsize dsize radius div def
- /flip ed
- getarrow
- /arcmid darc arrowpos mul def
- /linewidth width def
- dsize 0 eq
- { linesep 0 eq
- { 0 0 radius 0 darc dasharc }
- { gsave
- linesep linewidth add setlinewidth
- 0 0 radius 0 darc dasharc
- setbackgroundcolor
- [] 0 setdash
- linesep linewidth sub setlinewidth
- 0 0 radius 0 darc dasharc
- grestore
- } ifelse
- }
- { linesep 0 eq
- { 0 0 radius 0 arcmid dasharc
- 0 0 radius arcmid darc dasharc
- } {
- gsave
- linesep linewidth add setlinewidth
- 0 0 radius 0 arcmid dasharc
- 0 0 radius arcmid darc dasharc
- setbackgroundcolor
- [] 0 setdash
- linesep linewidth sub setlinewidth
- 0 0 radius 0 darc dasharc
- grestore
- } ifelse
- } ifelse
- arcmid rotate
- radius 0 translate
- flip { 0 } { 180 } ifelse
- witharrow { drawarrow } if
- grestore
-} def }
-%
-% #] arc2 :
-% #[ dasharrowdoubleline :
-%
-\special{! /dasharrowdoubleline{
-%
-% arrowspec, arrowpos, flip, linesep, dsize,
-% x1, y1, x2, y2, width, scale
-% If linesep == 0, then single line, else double with separation linesep.
-% Draws a dashed double straight line with arrow.
-% If dsize==0, then continuous line.
-% If linesep==0, then single line.
- gsw
- normalizeline
- /dr ed
- /dsize ed
- /linesep ed
- /flip ed
- getarrow
-%
- % If linesep is negative, that means the arrow is flipped.
- % But the lineend coordinates are already flipped, so there is
- % no need to make any adjustment; i.e., replace linesep by
- % absolute value.
- /linesep setabs
- /linewidth width def
- linesep 0 eq {
- 0 0 dr 0 dashline
- } {
- gsave
- linesep linewidth add setlinewidth 0 0 dr 0 dashline
- setbackgroundcolor
- [] 0 setdash
- linesep linewidth sub setlinewidth 0 0 dr 0 newpath moveto lineto stroke
- grestore
- } ifelse
- dr arrowpos mul 0 translate
- flip { -90 }{ 90 } ifelse
- witharrow { drawarrow } if
- grestore
-} def }
-%
-% #] dasharrowdoubleline :
-% #[ vertex :
-%
-\special{! /vertex{
-%
-% Puts a fat dot at x,y size is the radius of the dot
-%
- gs
- /dotsize ed
- translate
- newpath
- 0 0 dotsize 0 360 arc
- fill stroke
- grestore
-} def }
-%
-% #] vertex :
-% #[ ecirc :
-%
-\special{! /ecirc{
-%
-% Draws an anti-clockwise circle :
-% x_center, y_center, radius
-% Transparent interior
-%
- gsw /radius ed
- translate % x and y are still on stack
- newpath 0 0 radius 0 360 arc stroke
- grestore
-} def }
-%
-% #] ecirc :
-% #[ ebox :
-%
-\special{! /ebox{
-%
-% Draws a transparent box x1,y1,x2,y2
-%
- gsw p2 p1
- abox stroke
- grestore
-} def }
-%
-% #] ebox :
-% #[ fbox :
-%
-\special{! /fbox{
-%
-% Draws a filled box x1,y1,x2,y2
-%
- gsw p2 p1
- abox fill
- grestore
-} def }
-%
-% #] fbox :
-% #[ triangle :
-%
-\special{! /triangle{
-%
-% Draws a triangle x1,y1,x2,y2,x3,y3
-%
- gsw p3 p2 p1
- atriangle stroke
- grestore
-} def }
-%
-% #] triangle :
-% #[ ftriangle :
-%
-\special{! /ftriangle{
-%
-% Draws a triangle x1,y1,x2,y2,x3,y3
-%
- gsw p3 p2 p1
- atriangle fill
- grestore
-} def }
-%
-% #] ftriangle :
-% #[ ellipse:
-%
-\special{! /ellipse {
- % Draw an ellipse
- % RedGrittyBrick 20/10/2003
- % From http://www.redgrittybrick.org/postscript/ellipse.html. 2011/03/22
- % draw an ellipse using four bezier curves
- %
- /r2 exch def % 2nd parameter
- /r1 exch def % 1st parameter
- /kappa 0.5522847498 def
- %
- newpath
- 0 r2 moveto % start point of curve
- %
- % top clockwise
- kappa r1 mul r2 % 1st Bezier control point
- r1 kappa r2 mul % 2nd Bezier control point
- r1 0 curveto % end point of curve
- %
- % right clockwise
- r1 kappa r2 mul neg
- kappa r1 mul r2 neg
- 0 r2 neg curveto
- %
- % bottom clockwise
- kappa r1 mul neg r2 neg
- r1 neg kappa r2 mul neg
- r1 neg 0 curveto
- %
- % left clockwise
- r1 neg kappa r2 mul
- kappa r1 mul neg r2
- 0 r2 curveto
- %
- } def % ellipse
-}
-%
-% #] ellipse:
-% #[ goval :
-%
-\special{! /goval{
-%
-% Draws a gray oval that overwrites whatever was there.
-% x_center y_center height width rotation color linewidth scale
-%
- gsw /gcolor ed /angle ed /width ed /height ed
-%
- translate % x and y are still on stack
- angle rotate
- 1 setgray width height ellipse fill
- gcolor setgray width height ellipse fill
- 0 setgray width height ellipse stroke
- grestore
-} def }
-%
-% #] goval :
-% #[ fcoval :
-%
-\special{! /foval{
-%
-% Draws an oval that overwrites whatever was there.
-% x_center y_center height width rotation linewidth scale
-%
- gsw /angle ed /width ed /height ed
-%
- translate % x and y are still on stack
- angle rotate
- width height ellipse fill
- grestore
-} def }
-%
-% #] foval :
-% #[ oval :
-%
-\special{! /oval{
-%
-% Draws an oval that does not overwrite whatever was there.
-% x_center y_center height width rotation linewidth scale
-%
- gsw /angle ed /width ed /height ed
-%
- translate % x and y are still on stack
- angle rotate
- width height ellipse stroke
- grestore
-} def }
-%
-% #] oval :
-% #[ polygon :
-%
-% Incoming stack:
-% [array of x,y pairs] width scale
-%
-\special{! /polygon{
- gsw /points ed
- /ss points length 2 idiv 2 mul def
- ss 4 gt {
- newpath
- points 0 get points 1 get moveto
- 0 2 ss 4 sub { /ii ed
- /x1 points ii 2 add get def
- /y1 points ii 3 add get def
- x1 y1 lineto
- } for
- closepath
- stroke
- } if
- grestore
-} def }
-%
-% #] polygon :
-% #[ filledpolygon :
-%
-% Incoming stack:
-% [array of x,y pairs] width scale
-%
-\special{! /filledpolygon{
- gsw /points ed
- /ss points length 2 idiv 2 mul def
- ss 4 gt {
- newpath
- points 0 get points 1 get moveto
- 0 2 ss 4 sub { /ii ed
- /x1 points ii 2 add get def
- /y1 points ii 3 add get def
- x1 y1 lineto
- } for
- closepath
- fill
- } if
- grestore
-} def }
-%
-% #] filledpolygon :
-% #[ makecurve :
-%
-\special{! /docurve{
- x1 2 mul x2 add 3 div
- y1 y0 sub x1 x0 sub div x2 x0 sub mul
- y2 y0 sub x2 x0 sub div x1 x0 sub mul add
- y1 add y0 2 mul add 3 div
- x1 x2 2 mul add 3 div
- y2 y3 sub x2 x3 sub div x1 x3 sub mul
- y1 y3 sub x1 x3 sub div x2 x3 sub mul add
- y2 add y3 2 mul add 3 div
- x2 y2 curveto
-} def }
-%
-\special{! /makecurve{
-%
-% Incoming stack:
-% [array of x,y pairs] width scale
-%
- gsw /points ed
- /ss points length 2 idiv 2 mul def
- newpath
- ss 4 gt {
- /x1 points 0 get def
- /y1 points 1 get def
- /x2 points 2 get def
- /y2 points 3 get def
- /x3 points 4 get def
- /y3 points 5 get def
- /x0 x1 2 mul x2 sub def
- /y0 y3 y2 sub x3 x2 sub div y2 y1 sub x2 x1 sub div sub 2 mul
- x2 x1 sub dup mul x3 x1 sub div mul
- y1 2 mul add y2 sub def
- x1 y1 moveto
- docurve
- 0 2 ss 8 sub { /ii ed
- /x0 points ii get def
- /y0 points ii 1 add get def
- /x1 points ii 2 add get def
- /y1 points ii 3 add get def
- /x2 points ii 4 add get def
- /y2 points ii 5 add get def
- /x3 points ii 6 add get def
- /y3 points ii 7 add get def
- docurve
- } for
- /x0 points ss 6 sub get def
- /y0 points ss 5 sub get def
- /x1 points ss 4 sub get def
- /y1 points ss 3 sub get def
- /x2 points ss 2 sub get def
- /y2 points ss 1 sub get def
- /x3 x2 2 mul x1 sub def
- /y3 y2 y1 sub x2 x1 sub div y1 y0 sub x1 x0 sub div sub 2 mul
- x2 x1 sub dup mul x2 x0 sub div mul
- y2 2 mul add y1 sub def
- docurve
- } {
- ss 4 eq {
- points 0 get points 1 get moveto
- points 2 get points 3 get lineto
- } if
- } ifelse
- stroke
- grestore
-} def }
-%
-% #] makecurve :
-% #[ makedashcurve :
-%
-\special{! /makedashcurve{
-%
-% Incoming stack:
-% [array of x,y pairs] dashsize width scale
-%
- gsw /dsize ed /points ed
- /ss points length 2 idiv 2 mul def
- newpath
- ss 4 gt {
- /x1 points 0 get def
- /y1 points 1 get def
- /x2 points 2 get def
- /y2 points 3 get def
- /x3 points 4 get def
- /y3 points 5 get def
- /x0 x1 2 mul x2 sub def
- /y0 y3 y2 sub x3 x2 sub div y2 y1 sub x2 x1 sub div sub 2 mul
- x2 x1 sub dup mul x3 x1 sub div mul
- y1 2 mul add y2 sub def
- x1 y1 moveto
- docurve
- 0 2 ss 8 sub { /ii ed
- /x0 points ii get def
- /y0 points ii 1 add get def
- /x1 points ii 2 add get def
- /y1 points ii 3 add get def
- /x2 points ii 4 add get def
- /y2 points ii 5 add get def
- /x3 points ii 6 add get def
- /y3 points ii 7 add get def
- docurve
- } for
- /x0 points ss 6 sub get def
- /y0 points ss 5 sub get def
- /x1 points ss 4 sub get def
- /y1 points ss 3 sub get def
- /x2 points ss 2 sub get def
- /y2 points ss 1 sub get def
- /x3 x2 2 mul x1 sub def
- /y3 y2 y1 sub x2 x1 sub div y1 y0 sub x1 x0 sub div sub 2 mul
- x2 x1 sub dup mul x2 x0 sub div mul
- y2 2 mul add y1 sub def
- docurve
- } {
- ss 4 eq {
- points 0 get points 1 get moveto
- points 2 get points 3 get lineto
- } if
- } ifelse
- centerdash
- stroke
- grestore
-} def }
-%
-\special{! /pathlength{
- flattenpath
- /dist 0 def
- { /yfirst ed /xfirst ed /ymoveto yfirst def /xmoveto xfirst def }
- { /ynext ed /xnext ed /dist dist ynext yfirst sub dup mul
- xnext xfirst sub dup mul add sqrt add def
- /yfirst ynext def /xfirst xnext def }
- {}
- {/ynext ymoveto def /xnext xmoveto def
- /dist ynext yfirst sub dup mul
- xnext xfirst sub dup mul add sqrt add def
- /yfirst ynext def /xfirst xnext def }
- pathforall
- dist
-} def }
-%
-\special{! /centerdash{
- /pathlen pathlength def
- /jj pathlen dsize div 2.0 div cvi def
- /ddsize pathlen jj 2.0 mul div def
- [ddsize] ddsize 2 div setdash
-} def }
-%
-% #] makedashcurve :
-% #[ logaxis :
-%
-\special{! /logaxis{
-%
-% Draws an axis from x1,y1 to x2,y2 with nl log divisions
-% size of the hashes hs, offset F
-% and width W. The stack looks like
-% x1,y1,x2,y2,nl,hs,F,W,scale
-% After the rotation the hash marks are on top if nl is positive and
-% on the bottom if nl is negative
-%
-% Offset 0 or negative: replace by 1.
-% Adjust by factors of 10 to be in range 1 to 10.
-%
- gsw /offset ed /hashsize ed /nlogs ed
- normalizeline /rr ed
- offset 0 le { /offset 1 def } if
- /offset
- offset ln 10 ln div
- dup cvi sub
- dup 0 lt { 1 add } if
- def
- /lsize rr nlogs div def
- newpath
- 0 0 moveto
- rr 0 lineto
- 0 1 nlogs 1 add {
- offset sub lsize mul
- dup -0.001 gt {
- dup rr 0.001 add le {
- dup 0 moveto
- hashsize 1.2 mul lineto
- } if
- } if
- } for
- stroke
- width 0.6 mul setlinewidth
- newpath
- 0 1 nlogs { /x2 ed
- 2 1 9 {
- ln 10 ln div x2 add
- offset sub lsize mul
- dup -0.001 gt {
- dup rr 0.001 add le {
- dup 0 moveto
- hashsize 0.8 mul lineto
- } if
- } if
- } for
- } for
- stroke
- grestore
-} def }
-%
-% #] logaxis :
-% #[ linaxis :
-%
-\special{! /linaxis{
-%
-% x1,y1,x2,y2,num_decs,per_dec,hashsize,offset,width,scale
-% Bad offset <= 0: change to 1.
-%
- gsw /offset ed /hashsize ed /perdec ed /numdec ed
- normalizeline
- /rr ed
- /perdec
- perdec round
- dup 0 le { pop 1 } if
- def
- /offset offset
- % Do real equivalent of offset perdec mod
- dup cvi perdec idiv perdec mul
- sub
- dup 0 lt {perdec add} if
- dup perdec ge {perdec sub} if
- def
- newpath
- 0 0 moveto
- rr 0 lineto
- /x1 rr numdec perdec mul div def
- /y1 rr numdec div def
- 0 1 numdec 1 add
- { y1 mul offset x1 mul sub
- dup -0.001 gt {
- dup rr 0.001 add lt {
- dup 0 moveto
- hashsize 1.2 mul lineto
- } if
- } if
- } for
- stroke
- width 0.6 mul setlinewidth
- newpath
- /offset offset dup cvi sub def
- 0 1 numdec perdec mul {
- offset sub x1 mul
- dup -0.001 ge {
- dup rr 0.001 add le {
- dup 0 moveto
- hashsize 0.8 mul lineto
- } if
- } if
- } for
- stroke
- grestore
-} def }
-%
-% #] linaxis :
-% #[ dashbezier :
-%
-\special{! /dashbezier{
-%
-% Draws a dashed Bezier with control points x1,y1,x2,y2,x3,y3,x4,y4
-%
- gsw /dsize ed p4 p3 p2 p1
- dsize 0 ne {
- /size x2 x1 sub y2 y1 sub x3 x1 sub y3 y1 sub x4 x1 sub y4 y1 sub
- 1 lengthofbezier def
- /numdashes size dsize 2 mul div def
- numdashes 0 eq { /numdashes 1 def } if
- size dsize 2 mul numdashes mul sub abs
- size dsize 2 mul numdashes 1 add mul sub abs
- gt { /numdashes 1 add def } if
- /dsize size numdashes 2 mul div def
- [dsize dsize] dsize 2 div setdash
- } if
- abezier stroke
- grestore
-} def }
-%
-% #] dashbezier :
-% #[ dashdoublebezier :
-%
-\special{! /dashdoublebezier{
-%
-% Draws a dashed Bezier with control points x1,y1,x2,y2,x3,y3,x4,y4
-%
- gsw /dsize ed /linesep ed
- /flip ed
- getarrow
- p4 p3 p2 p1
- /linewidth width def
- /bsize x2 x1 sub y2 y1 sub x3 x1 sub y3 y1 sub x4 x1 sub y4 y1 sub
- 1 lengthofbezier def
- dsize 0 ne {
- /numdashes bsize dsize 2 mul div def
- numdashes 0 eq { /numdashes 1 def } if
- bsize dsize 2 mul numdashes mul sub abs
- bsize dsize 2 mul numdashes 1 add mul sub abs
- gt { /numdashes 1 add def } if
- /dsize bsize numdashes 2 mul div def
- [dsize dsize] dsize 2 div setdash
- } if
- linesep 0 ne {
- linesep linewidth add setlinewidth abezier stroke
- gsave
- 0 0 0 0 setcmykcolor
- linesep linewidth sub setlinewidth abezier stroke
- grestore
- } {
- abezier stroke
- } ifelse
-%
- witharrow {
- /tb arrowpos def
- /tbmax 1 def /tbmin 0 def
- {
- /sizeb x2 x1 sub y2 y1 sub x3 x1 sub y3 y1 sub x4 x1 sub y4 y1 sub
- tb lengthofbezier def
- sizeb bsize div arrowpos sub abs 0.0001 le { exit } if
- sizeb bsize div arrowpos gt
- { /tbmax tb def /tb tb tbmin add 2 div def }
- { /tbmin tb def /tb tb tbmax add 2 div def } ifelse
- } loop
- /ub 1 tb sub def
- x1 ub ub ub mul mul mul tb x2 3 mul ub mul ub mul tb x3 3 mul ub mul
- x4 tb mul add mul add mul add
- y1 ub ub ub mul mul mul tb y2 3 mul ub mul ub mul tb y3 3 mul ub mul
- y4 tb mul add mul add mul add translate
- y4 tb dup mul mul y3 tb mul 2 3 tb mul sub mul add y2 ub mul 1 3 tb mul
- sub mul add y1 ub dup mul mul sub 3 mul
- x4 tb dup mul mul x3 tb mul 2 3 tb mul sub mul add x2 ub mul 1 3 tb mul
- sub mul add x1 ub dup mul mul sub 3 mul
- atan rotate
- flip { -90 }{ 90 } ifelse
- drawarrow
- } if
-%
- grestore
-} def }
-%
-% #] dashdoublebezier :
-% #[ lengthofbezier :
-%
-% Calculates the length of a Bezier curve assuming that we start
-% in the point 0,0. We use a Gaussian quadrature with 16 points.
-% If, at any time, more precision is needed we have the 32 points
-% numbers in axohelp.c. (and there is more commentary in that file)
-%
-\special{!
- /g16x1 { 0.095012509837637440185 } def
- /g16x2 { 0.281603550779258913230 } def
- /g16x3 { 0.458016777657227386342 } def
- /g16x4 { 0.617876244402643748447 } def
- /g16x5 { 0.755404408355003033895 } def
- /g16x6 { 0.865631202387831743880 } def
- /g16x7 { 0.944575023073232576078 } def
- /g16x8 { 0.989400934991649932596 } def
- /g16w1 { 0.189450610455068496285 } def
- /g16w2 { 0.182603415044923588867 } def
- /g16w3 { 0.169156519395002538189 } def
- /g16w4 { 0.149595988816576732081 } def
- /g16w5 { 0.124628971255533872052 } def
- /g16w6 { 0.095158511682492784810 } def
- /g16w7 { 0.062253523938647892863 } def
- /g16w8 { 0.027152459411754094852 } def
- /onepoint {
- /gpt ed
- /tpt 1 gpt add 2 div tmax mul def
- xc tpt mul xb add tpt mul xa add dup mul
- yc tpt mul yb add tpt mul ya add dup mul
- add sqrt
- /tpt 1 gpt sub 2 div tmax mul def
- xc tpt mul xb add tpt mul xa add dup mul
- yc tpt mul yb add tpt mul ya add dup mul
- add sqrt add 2 div
- } def
- /lengthofbezier {
- /tmax ed
- pp3 pp2 pp1
- /xa xx1 3 mul def /xb xx2 xx1 2 mul sub 6 mul def
- /xc xx3 xx2 xx1 sub 3 mul sub 3 mul def
- /ya yy1 3 mul def /yb yy2 yy1 2 mul sub 6 mul def
- /yc yy3 yy2 yy1 sub 3 mul sub 3 mul def
-%
- g16x1 onepoint g16w1 mul
- g16x2 onepoint g16w2 mul add
- g16x3 onepoint g16w3 mul add
- g16x4 onepoint g16w4 mul add
- g16x5 onepoint g16w5 mul add
- g16x6 onepoint g16w6 mul add
- g16x7 onepoint g16w7 mul add
- g16x8 onepoint g16w8 mul add
- tmax mul
- } def
-}
-% #] lengthofbezier :
-% #[ axogrid :
-%
-\special{! /axogrid{
- gsw translate
- /ny ed /nx ed /dy ed /dx ed
- /maxx nx dx mul def
- /maxy ny dy mul def
- 0 1 nx {
- newpath dx mul dup 0 moveto maxy lineto stroke
- } for
- 0 1 ny {
- newpath maxx exch dy mul dup 0 exch moveto lineto stroke
- } for
-} def }
-%
-% #] axogrid :
-}
-% #] PostScript preamble :
-% #[ axoparray : Puts an array of 2-dim points
-%
-% Puts a sequence of points in the notation (x1,y1)(x2,y2)....
-% on the Postscript stack. This is for Curve and DashCurve.
-%
-\let\eind=]
-%
-\def\axoparray(#1,#2)#3{#1 \axoxo\space add #2 \axoyo\space add \ifx #3\eind\else
-\expandafter\axoparray\fi#3}
-%
-% #] axoparray :
-%
-\fi
-% #] Postscript specific :
-% #[ PDF specific :
-%
-% Here are the routines that are used purely for the PDF output.
-% The main concern here is the communication with the axohelp program.
-%
-\ifcase\axo@pdfoutput\else
-%
-% #[ getaxohelp :
-%
-% This is the command that makes the PDF work. Use as in
-% getaxohelp{NameOfFunction}{parameters to be passed}
-% The format is very precise. If axohelp is not happy there will
-% be no output. The most common error is that the parameters are
-% not separated by black spaces. Some \space might have to be inserted.
-% The reason we do not separate the parameters by comma's is that
-% both Postscript and PDF want their objects separated by blanks.
-% Also a separation by blanks makes the parameters into separate
-% arguments in the call to axohelp. Our colors need blanks....
-%
-%
-\def\getoneline#1#2{%
- % Set the command of name #1 to the next line of the file
- % for which the input stream number is #2.
- \def\tmpfh{#2}%
- \ifeof\tmpfh
- \else
- \read\tmpfh to \tmpline
- \fi
- \ifeof\tmpfh
- \@namedef{#1}{}%
- \else
- \expandafter \let \csname #1\endcsname = \tmpline
- \fi
-}
-%
-\def\getaxohelp#1#2{%
- \def\axohelp{}%
- \stepcounter{axo@objectIndex}%
- \def\axo@currentInput{#1 #2;}%
- \immediate\write\axo@spec{[\arabic{axo@objectIndex}]\space \axo@currentInput}%
- \ifaxo@axohelpRerun%
- \else%
- \def\axo@currentInput{{#1 #2;}}%
- \getoneline{axo@partOne}\axo@axohelpFile%
- \catcode`\ =13%
- \getoneline{axo@partTwo}\axo@axohelpFile%
- \catcode`\ =10%
- \getoneline{axo@partThree}\axo@axohelpFile%
- \ifeof\axo@axohelpFile
- \rlap{New object; rerun axohelp}%
- \global\axo@axohelpReruntrue
- \else
- \ifthenelse{\equal{\axo@partTwo}{\axo@currentInput}}%
- {% Current definition is same as the one processed
- % by axohelp, so it is safe to use
- \expandafter\def\expandafter\axohelp\axo@partThree%
- }%
- {%
- \rlap{Changed object; rerun axohelp}%
- \global\axo@axohelpReruntrue
- }%
- \fi
- \fi%
-}
-%
-% #] getaxohelp :
-% #[ Use the axohelp output :
-%
-% Implement conversion of length unit from pt to bp by scaling
-\def\contentspdf{q \axoscale\space 0 0 \axoscale\space 0 0 cm
- 0.99626401 0 0 0.99626401 0 0 cm
- 1 0 0 1 \axoxo\space \axoyo\space cm
- \axohelp\space
- Q}
-\def\contentspdfNoOffset{q \axoscale\space 0 0 \axoscale\space 0 0 cm
- 0.99626401 0 0 0.99626401 0 0 cm
- \axohelp\space
- Q}
-%
-% #] Use the axohelp output :
-%
-\fi
-% #] PDF specific :
-
-% Process options now, after all potentially necessary commands have
-% been defined. Use starred form, so that the options are processed
-% in the order the user writes them. Also set defaults here.
-\PSTextScalesLikeGraphicstrue
-\canvasScaleObjectScale
-\ProcessOptions*
diff --git a/Build/source/utils/axodraw2/axodraw2-src/axohelp-big.test b/Build/source/utils/axodraw2/axodraw2-src/axohelp-big.test
deleted file mode 100755
index e44438022de..00000000000
--- a/Build/source/utils/axodraw2/axodraw2-src/axohelp-big.test
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/bin/sh -vx
-
-# Copyright (C) 2018 John Collins (jcc8 at psu dot edu)
-# You may freely use, modify and/or distribute this file.
-
-# Prevent errors from sed if it encounters non-UTF-8 strings in utf-8 locale
-LC_ALL=C; export LC_ALL; LANGUAGE=C; export LANGUAGE
-
-# Notes about interpretation of tests:
-# The test file was generated in the compilation of axodraw2's manual,
-# and this test script therefore verifies much functionality of
-# axohelp. However, if the test fails, it may not actually indicate
-# an error. There are two possibilities for spurious failure:
-# a. There is a mismatch of line endings (\n v. \r\n, etc) between the
-# generated test file test-big.ax2 and the reference file
-# test-big.ax2-std. Correct the problem by adjusting
-# test-big.ax2-std accordingly.
-# b. Some of the numbers in the output file are generated by complex
-# floating point computations. Rounding errors can generate small
-# differences between the generated file and the reference file.
-# This results, for example, from a 32-bit executable compared with
-# a 64-bit executable, or from a compilation with different
-# compilers and the associated libraries (e.g., VisualStudio
-# compared with gcc).
-# Interpret the results of the test accordingly.
-
-if test -z "$test_srcdir"; then
- # If not set, then we are not running from `make check'.
- test_srcdir=`echo "$0" | sed -e 's,/[^\\/]*$,,'` # == dirname $0
- test "$test_srcdir" = "$0" && test_srcdir=. # in case subst failed
-fi
-
-test "$test_srcdir" = . \
- || cp "$test_srcdir"/test-big.ax1 "$test_srcdir"/test-big.ax2-std . \
- || exit 1
-
-echo Running axohelp on test document ...
-./axohelp test-big \
- || { echo axohelp failed to run correctly ; exit 1; }
-
-echo Checking result file test.ax2, after converting line-endings ...
-tr -d '\r' < test-big.ax2 > tmp.ax2
-tr -d '\r' < test-big.ax2-std > tmp.ax2-std
-diff tmp.ax2-std tmp.ax2 \
- || { echo The .ax2 file created by axohelp was incorrect; exit 1; }
-
-echo Success, so I will remove generated file test.ax2
-rm test-big.ax2 tmp.ax2 tmp.ax2-std
diff --git a/Build/source/utils/axodraw2/axodraw2-src/axohelp.1 b/Build/source/utils/axodraw2/axodraw2-src/axohelp.1
deleted file mode 100644
index 47f62fd5ff8..00000000000
--- a/Build/source/utils/axodraw2/axodraw2-src/axohelp.1
+++ /dev/null
@@ -1,48 +0,0 @@
-.TH "axohelp" "1.1" "22 Jan 2018" ""
-.SH NAME
-axohelp - helper program for use of LaTeX package axodraw2 with
-pdflatex.
-.SH SYNOPSIS
-.B axohelp [options] [filename]
-.SH DESCRIPTION
-Axohelp is a program used with the axodraw2, which is a LaTeX package
-for drawing Feynman graphs (and some other simple graphics) in LaTeX
-documents.
-
-When the axodraw2 package is used with pdflatex (or lualatex or
-xelatex) it creates a file with extension .ax1. This contains
-specifications of the graphics elements. Axohelp converts this to a
-file with extension ax2 that contains the necessary pdf code.
-The .ax2 file is read by pdflatex (etc) on its next run, and the
-contents of the .ax2 file are used in the final .pdf output file to
-draw the desired graphics.
-
-The files processed are specified as follows: When the filename on the
-command line is of the form file.ax1, then the input file is file.ax1
-and the output file is file.ax2. If the filename on the command line
-does not have extension .ax1, then this extension is appended.
-
-
-.SH OPTIONS
-Options can be introduced by single or double hyphen characters. The
-possible options are:
-
-.TP
-.B -h, --help
-Gives usage information
-
-.TP
-.B -v, --version
-Gives version information
-
-.TP
-.B -V
-NOT CURRENTLY IMPLEMENTED: Give information on each function used.
-
-.SH AUTHOR
-Current version, by John Collins (username jcc8 at node psu.edu) and
-Jos Vermaseren (username t68 at nikhef dot nl).
-
-The released version can be obtained from CTAN:
-<http://www.ctan.org/pkg/axodraw2/>, and an author's website
-<https://www.nikhef.nl/~form/maindir/others/axodraw2/axodraw2.html>.
diff --git a/Build/source/utils/axodraw2/axodraw2-src/axohelp.c b/Build/source/utils/axodraw2/axodraw2-src/axohelp.c
deleted file mode 100644
index 6f818d7eff2..00000000000
--- a/Build/source/utils/axodraw2/axodraw2-src/axohelp.c
+++ /dev/null
@@ -1,3807 +0,0 @@
-/*
-
- Need to do:
- 1. Fix reporting of number of object to in-file number
- 2. Or Don't require object 0 for ID line
-
- #[ License :
-
- (C) 2016-2019 by authors:
- John Collins (jcc8 at psu dot edu)
- Jos Vermaseren (t68 at nikhef dot nl)
-
- axohelp is free software: you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free
- Software Foundation, either version 3 of the License, or (at your option)
- any later version.
-
- axohelp is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- details.
-
- For the GNU General Public License see <http://www.gnu.org/licenses/>.
-
- #] License :
- #[ Commentary + Modifications :
-
- This file contains the source code of the axohelp program that is used
- together with axopdf.sty and pdflatex. It is a conversion of the postscript
- code of axodraw.sty.
-
- input file contains objects of the type
- [number] axohelp input
- the output contains objects:
- \axo@setObject{label}%
- {input data}%
- {output}
- There may be blank lines and commentary.
-
- #[ About folds : (this line starts with one blank and two tabs)
-
- The internals of the file have been organized in folds.
- These are defined as a range of lines if which the first and last
- lines have a special format. Each starts with any three characters
- (may include tabs), then #[ for the start line and #] for the closing
- line, then both lines need identical name fields, closed by a colon.
- After the colon can be anything. When a fold is closed one should see
- only the first line but with the #[ replaced by ## as in
- ## About folds : (this line starts with one blank and two tabs)
- Folds can be nested.
- This fold concept comes originally from the occam compiler for the
- transputer in the second half of the 1980's although there it was
- implemented differently. It was taken over by the STedi editor in its
- current form. The sources of this editor are available from the form
- home site: http://www.nikhef.nl/~form
- Some people have managed to emulate these folds in editors like emacs
- and vim.
-
- #] About folds :
- #] Commentary + Modifications :
- #[ Includes :
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <string.h>
-#include <ctype.h>
-
-/*
- #] Includes :
- #[ Defines :
-*/
-
-#define NAME "axohelp"
-#define VERSIONDATE "2019 Aug 28"
-#define VERSION 1
-#define SUBVERSION 3
-
-#define COMMENTCHAR '%'
-#define TERMCHAR ';'
-
-#define STROKING 0
-#define NONSTROKING 1
-
-char **inputs;
-long *inputsizes;
-double **inargs;
-long numinputs = 0;
-long inputallocations = 0;
-char *axohelp;
-FILE *outfile;
-char *inname, *outname;
-int VerboseFlag = 0;
-char outputbuffer[1000000];
-char *outpos;
-long numobject;
-char *nameobject;
-int witharrow = 0;
-int identification = 0;
-
-static int lastlinefeed = 1;
-static double axolinewidth = 0.5;
-static struct aRRow {
- double stroke;
- double width;
- double length;
- double inset;
- double where;
- double scale;
- double aspect;
- int type; /* 0: old style arrow; 1: Jaxodraw style arrow */
- int adjust; /* whether the line length should be adjusted */
-} arrow;
-double linesep = 0;
-int flip = 0;
-int clockwise = 0;
-
-void CleanupOutput(char *str);
-void send( char* str );
-void sendClean( char* str );
-
-void ArrowHead();
-void GetArrow(double *);
-void BezierArrow(double *);
-void ArcSegment(double,double,double);
-double *ReadArray(char *,int *,int *);
-double *ReadTail(char *,int *);
-double LengthBezier(double,double,double,double,double,double,double);
-
-double M_pi;
-double torad;
-#define COS(x) cos((x)*torad)
-#define SIN(x) sin((x)*torad)
-#define TAN(x) tan((x)*torad)
-
-typedef void (*TFUN)(double *);
-
-typedef struct {
- char *name;
- TFUN func;
- int numargs;
- int colortype;
-} KEYWORD;
-
-double mod(double,int);
-
-void GluonHelp(double *,double);
-void DoubleGluonHelp(double *,double,double,double,double);
-void GluonCircHelp(double *);
-void GluonArcHelp(double *,double,double);
-void PhotonHelp(double *,double);
-void PhotonArcHelp(double *,double,int);
-void ZigZagHelp(double *,double);
-void ZigZagArcHelp(double *);
-double ComputeDash(double *,double,double);
-double ComputeDashCirc(double *,double);
-
-void ArrowArc(double *);
-void ArrowArcn(double *);
-void ArrowDoubleArc(double *);
-void ArrowLine(double *);
-void ArrowDoubleLine(double *);
-void AxoArc(double *);
-void AxoBezier(double *);
-void AxoGluon(double *);
-void AxoGluonArc(double *);
-void AxoGluonCirc(double *);
-void AxoLine(double *);
-void AxoPhoton(double *);
-void AxoPhotonArc(double *);
-void AxoZigZag(double *);
-void AxoZigZagArc(double *);
-void BezierCurve(double *);
-void Boxc(double *);
-void CArc(double *);
-void DashArrowArc(double *);
-void DashArrowArcn(double *);
-void DashArrowLine(double *);
-void DashArrowDoubleArc(double *);
-void DashArrowDoubleLine(double *);
-void DashBezier(double *);
-void DashCArc(double *);
-void DashDoubleArc(double *);
-void DashDoubleBezier(double *);
-void DashDoubleLine(double *);
-void DashDoublePhoton(double *);
-void DashDoublePhotonArc(double *);
-void DashDoubleZigZag(double *);
-void DashDoubleZigZagArc(double *);
-void DashGluon(double *);
-void DashGluonArc(double *);
-void DashGluonCirc(double *);
-void DashPhoton(double *);
-void DashPhotonArc(double *);
-void DashZigZag(double *);
-void DashZigZagArc(double *);
-void DashLine(double *);
-void DoubleArc(double *);
-void DoubleBezier(double *);
-void DoubleLine(double *);
-void DoublePhoton(double *);
-void DoublePhotonArc(double *);
-void DoubleZigZag(double *);
-void DoubleZigZagArc(double *);
-void EBox(double *);
-void EBoxc(double *);
-void ECirc(double *);
-void ETri(double *);
-void FBox(double *);
-void FBoxc(double *);
-void FOval(double *);
-void FTri(double *);
-void GluonArc(double *);
-void GluonCirc(double *);
-void Gluon(double *);
-void Grid(double *);
-void LinAxis(double *);
-void Line(double *);
-void LogAxis(double *);
-void Oval(double *);
-void Photon(double *);
-void PhotonArc(double *);
-void Rotate(double *);
-void Vertex(double *);
-void ZigZag(double *);
-void ZigZagArc(double *);
-
-void Curve(double *,int);
-void DashCurve(double *,int);
-void Polygon(double *,int,int);
-
-void Inivars(void);
-
-KEYWORD commands[] = {
- { "Line", Line, 4, STROKING }
- ,{ "ArrowArc", ArrowArc, 7, STROKING }
- ,{ "ArrowArcn", ArrowArcn, 7, STROKING }
- ,{ "ArrowDoubleArc", ArrowDoubleArc, 8, STROKING }
- ,{ "ArrowLine", ArrowLine, 6, STROKING }
- ,{ "ArrowDoubleLine", ArrowDoubleLine, 7, STROKING }
- ,{ "AxoArc", AxoArc, 17, STROKING }
- ,{ "AxoBezier", AxoBezier, 19, STROKING }
- ,{ "AxoGluon", AxoGluon, 8, STROKING }
- ,{ "AxoGluonArc", AxoGluonArc, 10, STROKING }
- ,{ "AxoGluonCirc", AxoGluonCirc, 8, STROKING }
- ,{ "AxoLine", AxoLine, 15, STROKING }
- ,{ "AxoPhoton", AxoPhoton, 8, STROKING }
- ,{ "AxoPhotonArc", AxoPhotonArc, 10, STROKING }
- ,{ "AxoZigZag", AxoZigZag, 8, STROKING }
- ,{ "AxoZigZagArc", AxoZigZagArc, 10, STROKING }
- ,{ "Bezier", BezierCurve, 8, STROKING }
- ,{ "Boxc", Boxc, 4, STROKING }
- ,{ "CArc", CArc, 5, STROKING }
- ,{ "DashArrowArc", DashArrowArc, 8, STROKING }
- ,{ "DashArrowArcn", DashArrowArcn, 8, STROKING }
- ,{ "DashArrowDoubleArc", DashArrowDoubleArc, 9, STROKING }
- ,{ "DashArrowDoubleLine",DashArrowDoubleLine,8, STROKING }
- ,{ "DashArrowLine", DashArrowLine, 7, STROKING }
- ,{ "DashBezier", DashBezier, 9, STROKING }
- ,{ "DashCArc", DashCArc, 6, STROKING }
- ,{ "DashDoubleArc", DashDoubleArc, 7, STROKING }
- ,{ "DashDoubleBezier", DashDoubleBezier, 10, STROKING }
- ,{ "DashDoubleLine", DashDoubleLine, 6, STROKING }
- ,{ "DashDoublePhoton", DashDoublePhoton, 8, STROKING }
- ,{ "DashDoublePhotonArc",DashDoublePhotonArc,10, STROKING }
- ,{ "DashDoubleZigZag", DashDoubleZigZag, 8, STROKING }
- ,{ "DashDoubleZigZagArc",DashDoubleZigZagArc,10, STROKING }
- ,{ "DashGluon", DashGluon, 7, STROKING }
- ,{ "DashGluonArc", DashGluonArc, 10, STROKING }
- ,{ "DashGluonCirc", DashGluonCirc, 7, STROKING }
- ,{ "DashLine", DashLine, 5, STROKING }
- ,{ "DashPhoton", DashPhoton, 7, STROKING }
- ,{ "DashPhotonArc", DashPhotonArc, 10, STROKING }
- ,{ "DashZigZag", DashZigZag, 7, STROKING }
- ,{ "DashZigZagArc", DashZigZagArc, 10, STROKING }
- ,{ "DoubleArc", DoubleArc, 6, STROKING }
- ,{ "DoubleBezier", DoubleBezier, 9, STROKING }
- ,{ "DoubleLine", DoubleLine, 5, STROKING }
- ,{ "DoublePhoton", DoublePhoton, 7, STROKING }
- ,{ "DoublePhotonArc", DoublePhotonArc, 8, STROKING }
- ,{ "DoubleZigZag", DoubleZigZag, 7, STROKING }
- ,{ "DoubleZigZagArc", DoubleZigZagArc, 8, STROKING }
- ,{ "EBox", EBox, 4, STROKING }
- ,{ "FBox", FBox, 4, STROKING }
- ,{ "FBoxc", FBoxc, 4, STROKING }
- ,{ "ECirc", ECirc, 3, STROKING }
- ,{ "ETri", ETri, 6, STROKING }
- ,{ "FOval", FOval, 5, NONSTROKING }
- ,{ "FTri", FTri, 6, NONSTROKING }
- ,{ "GluonArc", GluonArc, 7, STROKING }
- ,{ "GluonCirc", GluonCirc, 6, STROKING }
- ,{ "Gluon", Gluon, 6, STROKING }
- ,{ "Grid", Grid, 6, STROKING }
- ,{ "LinAxis", LinAxis, 8, STROKING }
- ,{ "LogAxis", LogAxis, 7, STROKING }
- ,{ "Oval", Oval, 5, STROKING }
- ,{ "Photon", Photon, 6, STROKING }
- ,{ "PhotonArc", PhotonArc, 7, STROKING }
- ,{ "Rotate", Rotate, 7, NONSTROKING }
- ,{ "Vertex", Vertex, 3, NONSTROKING }
- ,{ "ZigZag", ZigZag, 6, STROKING }
- ,{ "ZigZagArc", ZigZagArc, 7, STROKING }
-};
-
-/*
- #] Defines :
- #[ SetDefaults :
-*/
-
-void SetDefaults()
-{
- lastlinefeed = 1;
- axolinewidth = 0.5;
- linesep = 0;
- flip = 0;
- clockwise = 0;
- witharrow = 0;
-}
-
-/*
- #] SetDefaults :
- #[ mod :
-*/
-
-double mod( double x, int n ) {
- /* Return x mod n, with positive returned value in range 0<=result<n.
- (up to rounding error).
- */
- x = fmod(x, n);
- if (x >= n) { x -= n; }
- if (x < 0) { x += n; }
- return x;
-}
-
-/*
- #] mod :
- #[ PDF utilities :
-
- These routines are included to make the program more readable and easier
- to write. It also allows the easy use of the OutputString?? OLD name routine that
- compactifies the output.
-*/
-
-#define Stroke send(" S")
-#define CloseAndStroke send(" h S")
-#define Fill send(" f")
-#define CloseAndFill send(" h f")
-#define SaveGraphicsState send(" q")
-#define RestoreGraphicsState send(" Q")
-
-void Bezier(double x1,double y1,double x2,double y2,double x3,double y3) {
- sprintf(outputbuffer,"\n %12.3f %12.3f %12.3f %12.3f %12.3f %12.3f c",x1,y1,x2,y2,x3,y3);
- sendClean(outputbuffer);
-}
-
-void LineTo(double x1,double y1) {
- sprintf(outputbuffer,"\n %12.3f %12.3f l",x1,y1);
- sendClean(outputbuffer);
-}
-
-void MoveTo(double x1,double y1) {
- sprintf(outputbuffer,"\n %12.3f %12.3f m",x1,y1);
- sendClean(outputbuffer);
-}
-
-void SetLineWidth(double w) {
- sprintf(outputbuffer," %12.3f w",w);
- sendClean(outputbuffer);
-}
-
-void SetDashSize(double dashsize,double phase) {
- if ( dashsize ) {
- sprintf(outputbuffer," [%12.3f] %12.3f d",dashsize,phase);
- sendClean(outputbuffer);
- }
- else send(" [] 0 d");
-}
-
-void SetTransferMatrix(double x11,double x12,double x21,double x22,double x,double y)
-{
- if ( ( fabs(x11-1.) > 0.001 ) || ( fabs(x22-1.) > 0.001 )
- || ( fabs(x12) > 0.001 ) || ( fabs(x21) > 0.001 )
- || ( fabs(x) > 0.001 ) || ( fabs(y) > 0.001 ) ) {
- sprintf(outputbuffer,"%12.3f %12.3f %12.3f %12.3f %12.3f %12.3f cm\n",x11,x12,x21,x22,x,y);
- sendClean(outputbuffer);
- }
-}
-
-static double BzK;
-
-void BezierCircle(double r,char *action)
-{
- char *outpos = outputbuffer;
- outpos +=
- sprintf(outpos," %12.3f 0 m %12.3f %12.3f %12.3f %12.3f 0 %12.3f c\n",-r,-r,r*BzK,-r*BzK,r,r);
- outpos +=
- sprintf(outpos," %12.3f %12.3f %12.3f %12.3f %12.3f 0 c\n",r*BzK,r,r,r*BzK,r);
- outpos +=
- sprintf(outpos," %12.3f %12.3f %12.3f %12.3f 0 %12.3f c\n",r,-r*BzK,r*BzK,-r,-r);
- outpos +=
- sprintf(outpos," %12.3f %12.3f %12.3f %12.3f %12.3f 0 c %s\n",-r*BzK,-r,-r,-r*BzK,-r,action);
- sendClean(outputbuffer);
-}
-
-void BezierOval(double w, double h, char *action)
-{
- char *outpos = outputbuffer;
- outpos +=
- sprintf(outpos," %12.3f 0 m %12.3f %12.3f %12.3f %12.3f 0 %12.3f c\n",-w,-w,h*BzK,-w*BzK,h,h);
- outpos +=
- sprintf(outpos," %12.3f %12.3f %12.3f %12.3f %12.3f 0 c\n",w*BzK,h,w,h*BzK,w);
- outpos +=
- sprintf(outpos," %12.3f %12.3f %12.3f %12.3f 0 %12.3f c\n",w,-h*BzK,w*BzK,-h,-h);
- outpos +=
- sprintf(outpos," %12.3f %12.3f %12.3f %12.3f %12.3f 0 c %s\n",-w*BzK,-h,-w,-h*BzK,-w,action);
- sendClean(outputbuffer);
-}
-
-void SetGray(double grayscale,int par)
-{
- if ( par == STROKING ) {
- sprintf(outputbuffer," %12.3f G",grayscale);
- }
- else {
- sprintf(outputbuffer," %12.3f g",grayscale);
- }
- sendClean(outputbuffer);
-}
-
-void SetColor(double c, double m, double y, double k,int par)
-{
- if ( par == STROKING ) {
- sprintf(outputbuffer," %12.3f %12.3f %12.3f %12.3f K",c,m,y,k);
- }
- else {
- sprintf(outputbuffer," %12.3f %12.3f %12.3f %12.3f k",c,m,y,k);
- }
- sendClean(outputbuffer);
-}
-
-void SetBackgroundColor(int par)
-{
- if ( par == STROKING ) { send(" 0 0 0 0 K"); }
- else { send(" 0 0 0 0 k"); }
-}
-
-void Rectangle(double x,double y,double w,double h) {
- sprintf(outputbuffer,"\n %12.3f %12.3f %12.3f %12.3f re",x,y,w,h);
- sendClean(outputbuffer);
-}
-
-void Triangle(double x1,double y1,double x2,double y2,double x3,double y3) {
- sprintf(outputbuffer,"\n %12.3f %12.3f m %12.3f %12.3f l %12.3f %12.3f l h",x1,y1,x2,y2,x3,y3);
- sendClean(outputbuffer);
-}
-
-/*
- #] PDF utilities :
- #[ Service routines :
- #[ GetArrow :
-*/
-
-void GetArrow(double *args)
-{
- witharrow = args[7];
- arrow.stroke = args[0];
- arrow.width = args[1];
- arrow.length = args[2];
- arrow.inset = args[3];
- arrow.scale = args[4];
- arrow.aspect = args[5];
- arrow.where = args[6];
- arrow.type = 1;
- arrow.adjust = 0;
- if ( args[8] ) flip = 1;
- if ( witharrow ) {
- if ( arrow.length == 0 && arrow.width == 0 ) {
- arrow.width = (axolinewidth + 0.7*linesep + 1 ) * 1.2;
- if (arrow.width < 2.5) arrow.width = 2.5;
- arrow.length = 2*arrow.width*arrow.aspect;
- }
- else if ( arrow.width == 0 ) {
- arrow.width = arrow.length/(2*arrow.aspect);
- }
- else if ( arrow.length == 0 ) {
- arrow.length = 2*arrow.width*arrow.aspect;
- }
- arrow.width *= arrow.scale;
- arrow.length *= arrow.scale;
- if ( arrow.where > 1 ) { arrow.where = 1; arrow.adjust = 1; }
- if ( arrow.where < 0 ) { arrow.where = 0; arrow.adjust = 1; }
- }
-}
-
-/*
- #] GetArrow :
- #[ ArrowHead :
-
- Places an arrowhead of a given size at 0 in the +x direction
- The size: Full width is 2*size and full length is also 2*size.
-*/
-
-void ArrowHead()
-/*
- Jaxodraw style arrows
-*/
-{
- int k;
- double length;
- SaveGraphicsState;
- if ( flip ) length = -arrow.length;
- else length = arrow.length;
- SetDashSize(0,0);
- if ( arrow.stroke ) {
- SetLineWidth(arrow.stroke);
- for (k = 1; k <= 2; k++ ) {
- SaveGraphicsState;
- MoveTo(length*0.5,0);
- LineTo(-length*0.5,arrow.width);
- LineTo(-length*0.5+length*arrow.inset,0);
- LineTo(-length*0.5,-arrow.width);
- if (k == 1) {
- SetBackgroundColor(NONSTROKING);
- send(" h f");
- }
- else {
- send(" s");
- }
- RestoreGraphicsState;
- }
- }
- else {
- MoveTo(length*0.5,0);
- LineTo(-length*0.5,arrow.width);
- LineTo(-length*0.5+length*arrow.inset,0);
- LineTo(-length*0.5,-arrow.width);
- send(" h f");
- }
- RestoreGraphicsState;
-}
-
-/*
- #] ArrowHead :
- #[ BezierArrow :
-
- We compute the length of the curve.
- Then we try to find the t value for which holds:
- Length(t)/Length(1) = arrow.where
-*/
-
-void BezierArrow(double *args)
-{
- double t,u,x,y,dx,dy,dr,len,tlen,tmin=0,tmax=1.0;
- double x1=args[2]-args[0],x2=args[4]-args[0],x3=args[6]-args[0];
- double y1=args[3]-args[1],y2=args[5]-args[1],y3=args[7]-args[1];
- len = LengthBezier(x1,y1,x2,y2,x3,y3,1.0);
- t = arrow.where;
- tlen = LengthBezier(x1,y1,x2,y2,x3,y3,t);
- while ( fabs(tlen/len-arrow.where) > 0.0001 ) {
- if ( tlen/len > arrow.where ) {
- tmax = t;
- t = 0.5*(tmin+t);
- }
- else {
- tmin = t;
- t = 0.5*(tmax+t);
- }
- tlen = LengthBezier(x1,y1,x2,y2,x3,y3,t);
- }
- u = 1-t;
- x = args[0]*u*u*u+(3*args[2]*u*u+(3*args[4]*u+args[6]*t)*t)*t;
- y = args[1]*u*u*u+(3*args[3]*u*u+(3*args[5]*u+args[7]*t)*t)*t;
- dx = 3*(-args[0]*u*u+args[2]*u*(1-3*t)+args[4]*t*(2-3*t)+args[6]*t*t);
- dy = 3*(-args[1]*u*u+args[3]*u*(1-3*t)+args[5]*t*(2-3*t)+args[7]*t*t);
- dr = sqrt(dx*dx+dy*dy);
- SetTransferMatrix(1,0,0,1,x,y);
- SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
- ArrowHead();
-}
-
-/*
- #] BezierArrow :
- #[ ArcSegment :
-*/
-
-void ArcSegment(double r, double phi1, double dphi)
-{
- double xphi, d, x, y, phia, phib, x1,y1,x2,y2,x3,y3;
- int num, i;
-
- num = dphi/90.0001+1.; /* number of segments we should use. */
- xphi = dphi/num; /* arc size of each segment */
- d = 4.*TAN(xphi/4.)/3.; /* the magic distance for the control points */
-
- x = r*COS(phi1); y = r*SIN(phi1);
- MoveTo(x,y);
- for ( i = 0; i < num; i++ ) {
- phia = phi1+i*xphi; /* Start of segment */
- phib = phia+xphi; /* End of segment */
- x3 = r*COS(phib); y3 = r*SIN(phib);
- x1 = x - y*d; y1 = y + x*d;
- x2 = x3+y3*d; y2 = y3-x3*d;
-
- Bezier(x1,y1,x2,y2,x3,y3);
-
- x = x3; y = y3;
- }
-}
-
-/*
- #] ArcSegment :
- #[ ReadNumber :
-*/
-
-char *ReadNumber(char *s,double *num)
-{
- double x3,minus = 1;
- int x1,x2;
- while ( *s == '+' || *s == '-' ) {
- if ( *s == '-' ) minus = -minus;
- s++;
- }
- x1 = x2 = 0; x3 = 1;
- while ( *s <= '9' && *s >= '0' ) { x1 = 10*x1 + *s++ - '0'; }
- if ( *s == 0 ) { *num = x1*minus; return(s); }
- if ( *s == '.' ) {
- s++;
- while ( *s >= '0' && *s <= '9' ) { x2 = 10*x2 + *s++ - '0'; x3 *= 10; }
- }
- *num = minus*((double)x1 + x2/x3);
- return(s);
-}
-
-/*
- #] ReadNumber :
- #[ ReadArray :
-
- Reads a tail of floats of the type (x1,y1)(x2,y2),...,(xn,yn) or
- (x1,y1)(x2,y2),...,(xn,yn) f1 ... fm
- The floats may be written as integers.
- Normally they are in the format ####.###
- In num1 we return the number of coordinates encountered.
- In num2 we return the number of extra floats encountered.
- The array of the return value should be freed after it has been used.
-*/
-
-double *ReadArray(char *inbuf, int *num1, int *num2)
-{
- int argsize = 0, newsize, num = 0, i;
- double *args = 0, *newargs = 0, *extraargs, x, y;
- char *s;
- *num2 = 0;
- s = inbuf;
- while ( *s == ' ' || *s == '\t' || *s == '\n' ) s++;
- if ( *s == '"' ) {
- s++;
- while ( *s == ' ' || *s == '\t' || *s == '\n' ) s++;
- }
- while ( *s == '(' ) { /* We need to read (x,y) */
- s++;
- while ( *s == ' ' || *s == '\n' || *s == '\t' ) s++;
- s = ReadNumber(s,&x);
- while ( *s == ' ' ) s++;
- if ( *s != ',' ) {
- fprintf(stderr,"%s: Illegal format for array of numbers in object %ld of type %s in file %s\n"
- ,axohelp,numobject,nameobject,inname);
- free(args);
- return(0);
- }
- s++;
- while ( *s == ' ' || *s == '\n' || *s == '\t' ) s++;
- s = ReadNumber(s,&y);
- while ( *s == ' ' || *s == '\n' || *s == '\t' ) s++;
- if ( *s != ')' ) {
- fprintf(stderr,"%s: Illegal format for array of numbers in object %ld of type %s in file %s\n"
- ,axohelp,numobject,nameobject,inname);
- free(args);
- return(0);
- }
- s++;
- while ( *s == ' ' ) s++;
- num += 2;
- if ( num >= argsize ) {
- if ( argsize == 0 ) newsize = 20;
- else newsize = 2*argsize;
- newargs = (double *)malloc(sizeof(double)*newsize);
- if ( args == 0 ) { args = newargs; argsize = newsize; }
- else {
- for ( i = 0; i < argsize; i++ ) newargs[i] = args[i];
- free(args);
- args = newargs; argsize = newsize;
- }
- }
- args[num-2] = x; args[num-1] = y;
- }
- if ( *s == '"' ) s++;
- while ( *s == ' ' || *s == '\t' || *s == '\n' ) s++;
- *num1 = num/2;
-
- if ( *s ) {
- if ( ( extraargs = ReadTail(s,num2) ) == 0 ) {
- return(0);
- }
- if ( num+*num2 > argsize ) {
- newargs = (double *)malloc(sizeof(double)*(num+*num2));
- for ( i = 0; i < num; i++ ) newargs[i] = args[i];
- free(args);
- args = newargs;
- argsize = num+*num2;
- }
- for ( i = 0; i < *num2; i++ ) args[num+i] = extraargs[i];
- free(extraargs);
- }
- return(args);
-}
-
-/*
- #] ReadArray :
- #[ ReadTail :
-
- Reads a command tail that consists of floating point numbers in the
- notation xxx.yyy or just as integers without even the decimal point.
- The output array is allocated and should be returned in a well behaved
- program.
-*/
-
-double *ReadTail(char *buff,int *number)
-{
- char *s;
- int num = 1, i;
- double *outargs;
- s = buff;
- while ( *s ) {
- if ( *s == ' ' || *s == '\t' || *s == '\n' ) {
- num++; *s++ = 0;
- while ( *s == ' ' || *s == '\t' || *s == '\n' ) *s++ = 0;
- }
- else s++;
- }
- outargs = (double *)malloc(num*sizeof(double));
- s = buff;
- for ( i = 0; i < num; i++ ) {
- while ( *s == 0 ) s++;
- s = ReadNumber(s,outargs+i);
- if ( *s == 'p' && s[1] == 't' ) s += 2;
- if ( *s != 0 ) {
- fprintf(stderr,"%s: Illegal format for number in command %ld (%s) in file %s.\n"
- ,axohelp,numobject,nameobject,inname);
- free(outargs);
- return(0);
- }
- }
- *number = num;
- return(outargs);
-}
-
-/*
- #] ReadTail :
- #[ DoCurve :
-
- Interpolation curve expressed as a Bezier curve.
-*/
-
-void DoCurve(double x0, double y0, double x1, double y1,
- double x2, double y2, double x3, double y3)
-{
- double xx1, yy1, xx2, yy2;
- xx1 = (2*x1+x2)/3;
- yy1 = ((y1-y0)/(x1-x0)*(x2-x0)+(y2-y0)/(x2-x0)*(x1-x0)+y1+2*y0)/3;
- xx2 = (x1+2*x2)/3;
- yy2 = ((y2-y3)/(x2-x3)*(x1-x3)+(y1-y3)/(x1-x3)*(x2-x3)+y2+2*y3)/3;
-
- Bezier(xx1,yy1,xx2,yy2,x2,y2);
-}
-
-/*
- #] DoCurve :
- #[ LengthBezier :
-
- Routine computes the length of a Bezier curve.
- Method:
- x = x0*(1-t)^3+3*x1*t*(1-t)^2+3*x2*t^2*(1-t)+x3*t^3
- y = y0*(1-t)^3+3*y1*t*(1-t)^2+3*y2*t^2*(1-t)+y3*t^3
- We assume that x0=y0=0. (Hence call with x1-x0 etc)
- --> dx/dt = 3*x1*(1-t)*(1-3*t)+3*x2*t*(2-3*t)+3*x3*t^2
- = 3*(x1+2*t*(x2-2*x1)+t^2*(x3-3*x2+3*x1))
- --> L = int_0^1 dt * sqrt(dx^2+dy^2)
- We use ordinary Gaussian quadratures over the domain -1,...,+1
-
- We have here quadratures for 8, 16 or 32 points.
- For the moment we use the 16 point quadrature. It seems to work well.
- The numbers were taken from Abramowitz and Stegun.
-*/
-
-typedef struct quad {
- double x;
- double w;
-} QUAD;
-
-QUAD g8[4] = {
- { 0.183434642495650, 0.362683783378362 }
- ,{ 0.525532409916329, 0.313706645877887 }
- ,{ 0.796666477413627, 0.222381034453374 }
- ,{ 0.960289856497536, 0.101228536290376 }
- };
-QUAD g16[8] = {
- { 0.095012509837637440185, 0.189450610455068496285 }
- ,{ 0.281603550779258913230, 0.182603415044923588867 }
- ,{ 0.458016777657227386342, 0.169156519395002538189 }
- ,{ 0.617876244402643748447, 0.149595988816576732081 }
- ,{ 0.755404408355003033895, 0.124628971255533872052 }
- ,{ 0.865631202387831743880, 0.095158511682492784810 }
- ,{ 0.944575023073232576078, 0.062253523938647892863 }
- ,{ 0.989400934991649932596, 0.027152459411754094852 }
- };
-QUAD g32[16] = {
- { 0.048307665687738316235, 0.096540088514727800567 }
- ,{ 0.144471961582796493485, 0.095638720079274859419 }
- ,{ 0.239287362252137074545, 0.093844399080804565639 }
- ,{ 0.331868602282127649780, 0.091173878695763884713 }
- ,{ 0.421351276130635345364, 0.087652093004403811143 }
- ,{ 0.506899908932229390024, 0.083311924226946755222 }
- ,{ 0.587715757240762329041, 0.078193895787070306472 }
- ,{ 0.663044266930215200975, 0.072345794108848506225 }
- ,{ 0.732182118740289680387, 0.065822222776361846838 }
- ,{ 0.794483795967942406963, 0.058684093478535547145 }
- ,{ 0.849367613732569970134, 0.050998059262376176196 }
- ,{ 0.896321155766052123965, 0.042835898022226680657 }
- ,{ 0.934906075937739689171, 0.034273862913021433103 }
- ,{ 0.964762255587506430774, 0.025392065309262059456 }
- ,{ 0.985611511545268335400, 0.016274394730905670605 }
- ,{ 0.997263861849481563545, 0.007018610009470096600 }
- };
-
-double LengthBezier(double x1,double y1,double x2,double y2,double x3,double y3,double tmax)
-{
- double xa = 3*x1, xb = 6*(x2-2*x1), xc = 3*(x3-3*x2+3*x1);
- double ya = 3*y1, yb = 6*(y2-2*y1), yc = 3*(y3-3*y2+3*y1);
- double t, sum = 0, dx, dy;
- int j;
-
- for ( j = 0; j < 8; j++ ) {
- t = 0.5*(1+g16[j].x)*tmax;
- dx = xa+t*(xb+t*xc);
- dy = ya+t*(yb+t*yc);
- sum += 0.5*g16[j].w*sqrt(dx*dx+dy*dy);
- t = 0.5*(1-g16[j].x)*tmax;
- dx = xa+t*(xb+t*xc);
- dy = ya+t*(yb+t*yc);
- sum += 0.5*g16[j].w*sqrt(dx*dx+dy*dy);
- }
- return(sum*tmax);
-}
-
-/*
- #] LengthBezier :
- #] Service routines :
- #[ ScanForObjects :
-
- Routine reads the input buffer and sets up pointers to the commands.
- Basically it is responsible for checking the input syntax and making
- sure all commands will have the proper number of arguments.
-*/
-
-long ScanForObjects(char *buffer)
-{
- char *s = buffer, *t;
- if ( *s == COMMENTCHAR ) { while ( *s && *s != '\n' ) s++; }
- while ( *s ) { /* here we are to look for a new command */
- if ( *s != '[' ) { /* for the case of the very first character */
- while ( *s && ( *s != '[' || ( *s == '[' && s[-1] == '\\' ) ) ) {
- if ( *s == ' ' || *s == '\n' ) {
- while ( *s == ' ' || *s == '\n' ) s++; /* Skip blank lines */
- }
- else if ( *s == COMMENTCHAR && s[-1] != '\\' ) {
- while ( *s && *s != '\n' ) s++;
- }
- else s++;
- }
- }
- if ( *s == 0 ) break;
-/*
- if everything is correct we are now on a [
- a: look for matching ] in the same line. This defines the label.
-*/
- t = s+1;
- while ( *t && *t != ']' && *t != '\n' && ( *t != COMMENTCHAR ||
- ( *t == COMMENTCHAR && t[-1] != '\\' ) ) ) t++;
- if ( *t == 0 ) {
- fprintf(stderr,"%s: irregular end of file %s.\n",axohelp,inname);
- return(-1);
- }
- else if ( *t == '\n' ) {
- fprintf(stderr,"%s: a label in file %s should inside a single line.\n",axohelp,inname);
- return(-1);
- }
- else if ( *t == COMMENTCHAR ) {
- fprintf(stderr,"%s: illegal comment character inside a label in file %s.\n",axohelp,inname);
- return(-1);
- }
- else if ( *t != ']' ) {
- fprintf(stderr,"%s: internal error reading a label in file %s.\n",axohelp,inname);
- return(-1);
- }
-/*
- Store the address of this command
-*/
- if ( numinputs >= inputallocations ) { /* we need more space */
- long newnum, i;
- char **newadd;
- if ( inputallocations == 0 ) { newnum = 100; }
- else { newnum = 2*inputallocations; }
- if ( ( newadd = (char **)malloc(newnum*sizeof(char *)) ) == 0 ) {
- fprintf(stderr,"%s: memory error reading file %s\n",axohelp,inname);
- return(-1);
- }
- for ( i = 0; i < inputallocations; i++ ) { newadd[i] = inputs[i]; }
- if ( inputs != 0 ) free(inputs);
- inputs = newadd;
- inputallocations = newnum;
- }
- inputs[numinputs++] = s;
-/*
- Now scan for the first comment character. That is the end of the object.
-*/
- while ( *t && ( *t != TERMCHAR || ( *t == TERMCHAR && t[-1] == '\\' ) )
- && *t != '[' ) t++;
- if ( *t != '[' ) {
- while ( t[-1] == ' ' || t[-1] == '\n' ) t--;
- *t++ = 0;
- }
- s = t;
- }
- return(numinputs);
-}
-
-/*
- #] ScanForObjects :
- #[ ReadInput :
-*/
-
-char *ReadInput(char *filename)
-{
- FILE *finput;
- long filesize, num;
- char *buffer;
- if ( ( finput = fopen(filename,"r") ) == 0 ) {
- fprintf(stderr,"%s: Cannot open file %s\n",axohelp,filename);
- exit(1);
- }
- if ( ( fseek(finput,0,SEEK_END) != 0 )
- || ( ( filesize = ftell(finput) ) < 0 )
- || ( fseek(finput,0,SEEK_SET) != 0 ) ) {
- fprintf(stderr,"%s: File error in file %s\n",axohelp,filename);
- exit(1);
- }
- if ( ( buffer = malloc((filesize+1)*sizeof(char)) ) == 0 ) {
- fprintf(stderr,"%s: Error allocating %ld bytes of memory",axohelp,filesize+1);
- exit(1);
- }
-/*
- Assume character in file is 1 byte, which is true for all cases
- we currently encounter.
-*/
- num = fread( buffer, 1, filesize, finput );
- if ( ferror(finput) ) {
- fprintf(stderr,"%s: Error reading file %s\n",axohelp,filename);
- exit(1);
- }
-/*
- By definition, fread reads ALL the items specified, or it gets to
- end-of-file, or there is an error.
- It returns the actual number of items successfully read, which
- is less than the number given in the 3rd argument ONLY if a
- read error or end-of-file is encountered.
- We have already tested for an error.
- But num could legitimately be less than filesize, because of
- translation of CRLF to LF (on MSWindows with MSWindows text file).
-*/
- buffer[num] = 0;
- fclose(finput);
- return(buffer);
-}
-
-/*
- #] ReadInput :
- #[ CleanupOutput :
-*/
-
-void CleanupOutput(char *str)
-{
- char *s, *t;
- int period = 0;
- s = t = str;
- // Collapse multiple white space (' ' and '\n') to one. Remove trailing space.
- while ( *s ) {
- if ( *s == '\n' ) {*s = ' '; }
- if ( (*s == ' ') && ( s[1] == ' ' || s[1] == '\n' || s[1] == 0 ) ) { s++;}
- else { *t++ = *s++; }
- }
- *t = 0;
-
- // Optimize format of numbers:
- s = t = str;
- while ( *s ) {
- if ( *s == '.' ) { period = 1; *t++ = *s++; }
- else if ( isdigit(*s) ) { *t++ = *s++; }
- else if ( period ) {
- while ( t > str && t[-1] == '0' ) { t--; }
- if ( t > str && t[-1] == '.' ) {
- t--;
- // Handle case that number is .000, not e.g. 9.000
- if (t > str && ! isdigit(t[-1]) ) {
- *t++ = '0';
- }
- }
- period = 0; *t++ = *s++;
- }
- else {
- period = 0; *t++ = *s++;
- }
- }
- *t = 0;
-
- // Collapse '-0' to '0'
- s = t = str;
- while ( *s ) {
- if ( *s == '-' && s[1] == '0' && s[2] == ' ' ) { s++; }
- else *t++ = *s++;
- }
- *t = 0;
-}
-
-/*
- #] CleanupOutput :
- #[ send :
-*/
-
-void send( char* str ) {
- fprintf(outfile, "%s",str);
-}
-
-/*
- #] CleanupOutput :
- #[ sendClean :
-*/
-
-void sendClean( char* str ) {
- CleanupOutput(str);
- send(str);
-}
-
-/*
- #] sendClean :
- #[ DoOneObject :
-*/
-
-int DoOneObject(char *cinput)
-{
- // Single point for exit, to ensure proper clean up.
- int num, i, num1, num2, retcode;
- char *s, *t;
- double *argbuf = 0;
- retcode = -1;
- SetDefaults();
-
- // Locate number of object:
- s = cinput; while ( *s != '[' ) s++;
- s++; t = s; while ( *t != ']' ) t++;
- *t++ = 0; while ( *t == ' ' || *t == '\t' || *t == '\n' ) t++;
-
- fprintf(outfile,"\\axo@setObject{%s}%%\n{%s%c}%%\n{",s,t,TERMCHAR);
- outpos = outputbuffer;
-
- nameobject = t; while ( *t != ' ' && *t != '\t' && *t != '\n' && *t ) t++;
- *t++ = 0; while ( *t == ' ' || *t == '\t' || *t == '\n' ) t++;
-/*
- Now nameobject is the name of the command and t points at the first parameter.
-*/
-
- if ( *s == '0' && s[1] == 0 ) {
-/*
- The identification line.
- In due time we might add more options here.
-*/
- if ( strcmp(nameobject,"AxodrawWantsPDF") == 0 ) {
- identification = 1;
- fprintf(outfile,"Axohelp version %d.%d. PDF output.",VERSION,SUBVERSION);
- goto SUCCESS;
- }
- else {
- fprintf(stderr,"%s: Illegal request in identification string [0]: %s\n"
- ,axohelp,nameobject);
- goto EXIT;
- }
- }
-/*
- if ( identification == 0 ) {
- fprintf(stderr,"%s: No identification string. Check versions.\n",axohelp);
- goto EXIT;
- }
-*/
-
- if ( ( strcmp(nameobject,"Curve") == 0 )
- || ( strcmp(nameobject,"Polygon") == 0 )
- || ( strcmp(nameobject,"FilledPolygon") == 0 ) ) {
-/*
- #[ Curve,Polygons :
-*/
- if ( ( argbuf = ReadArray(t,&num1,&num2) ) == 0 )
- goto EXIT;
- if ( num2-1 != 0 ) {
- fprintf(stderr,"%s: Command %s should have no extra numbers in %s.\n",
- axohelp,nameobject,inname);
- goto EXIT;
- }
- else {
-/*
- First some 'fixed' operations to set the state right
- 1: scale 2: linewidth 3: color
- Then the function.
- Finally the trailer and cleanup.
-*/
- axolinewidth = argbuf[2*num1+num2-1];
- SetLineWidth(axolinewidth);
- if ( strcmp(nameobject,"Curve") == 0 ) {
- Curve(argbuf,num1);
- }
- else if ( strcmp(nameobject,"Polygon") == 0 ) {
- Polygon(argbuf,num1,0);
- }
- else if ( strcmp(nameobject,"FilledPolygon") == 0 ) {
- Polygon(argbuf,num1,1);
- }
- free(argbuf);
- argbuf = 0;
- }
-/*
- #] Curve,Polygons :
-*/
- }
- else if ( strcmp(nameobject,"DashCurve") == 0 ) {
-/*
- #[ DashCurve :
-*/
- if ( ( argbuf = ReadArray(t,&num1,&num2) ) == 0 )
- goto EXIT;
- if ( num2 != 2 ) {
- fprintf(stderr,"%s: Command %s does not have two numbers after the coordinates\n in file %s.\n",
- axohelp,nameobject,inname);
- goto EXIT;
- }
- else {
-/*
- First some 'fixed' operations to set the state right
- 1: scale 2: linewidth 3: color
- Then the function.
- Finally the trailer and cleanup.
-*/
- axolinewidth = argbuf[2*num1+num2-1];
- SetLineWidth(axolinewidth);
- DashCurve(argbuf,num1);
- free(argbuf);
- argbuf = 0;
- }
-/*
- #] DashCurve :
-*/
- }
- else {
-/*
- #[ Regular command :
-*/
- if ( ( argbuf = ReadTail(t,&num) ) == 0 )
- goto EXIT;
- for ( i = 0; i < sizeof(commands)/sizeof(KEYWORD); i++ ) {
- if ( strcmp(nameobject,commands[i].name) == 0 ) {
- if ( num == commands[i].numargs+1 ) {
-/*
- First some 'fixed' operations to set the state right
- 1: scale 2: linewidth 3: color
- Then the function.
- Finally the trailer and cleanup.
-*/
- axolinewidth = argbuf[num-1];
- SetLineWidth(axolinewidth);
- (*(commands[i].func))(argbuf);
- free(argbuf);
- argbuf = 0;
- break;
- }
- else {
- fprintf(stderr,"%s: Command %s should have %d(+1) arguments in %s.\n"
- ,axohelp,nameobject,commands[i].numargs,inname);
- goto EXIT;
- }
- }
- }
-/*
- #] Regular command :
-*/
- if ( i >= sizeof(commands)/sizeof(KEYWORD) ) {
- fprintf(stderr,"%s: Command %s not recognized in file %s.\n",
- axohelp,nameobject,inname);
- goto EXIT;
- }
- }
- SUCCESS:
- retcode = 0;
- EXIT:
- if (argbuf) { free(argbuf); }
- fprintf(outfile,"}\n");
- return(retcode);
-}
-
-/*
- #] DoOneObject :
- #[ PrintHelp :
-*/
-
-void PrintHelp(char *name)
-{
- fprintf(stderr,"This is %s v. %d.%d of %s\n", NAME, VERSION, SUBVERSION, VERSIONDATE);
- fprintf(stderr,"Usage: %s [OPTION] filename\n",name);
- fprintf(stderr,"Input will then be from filename.ax1, output to filename.ax2.\n");
- fprintf(stderr,"-h, --help : prints this help information and terminates.\n");
- fprintf(stderr,"-v, --version : prints version information and terminates.\n");
- fprintf(stderr,"-V : prints information about each function treated in stdout.\n");
- fprintf(stderr," (NOT CURRENTLY IMPLEMENTED)\n\n");
- fprintf(stderr,"Please report bugs to jcc8@psu.edu.\n");
- fprintf(stderr,"axodraw2 web page: https://ctan.org/pkg/axodraw2\n");
-}
-
-/*
- #] PrintHelp :
- #[ PrintHelpPrompt :
-*/
-
-void PrintHelpPrompt(char *name)
-{
- fprintf(stderr,"Try '%s --help' for more information.\n", name);
-}
-
-/*
- #] PrintHelpPrompt :
- #[ Inivars :
-*/
-
-void Inivars()
-{
- M_pi = acos(-1.);
- torad = M_pi/180.;
- BzK = 4.*(sqrt(2.)-1.)/3.;
-}
-
-/*
- #] Inivars :
- #[ main :
-*/
-
-int main(int argc,char **argv)
-{
- char *s, *inbuffer;
- int length, error = 0;
- long num,i;
-
- Inivars();
- argc--;
- axohelp = *argv++;
- if ( argc <= 0 ) {
- PrintHelp(axohelp);
- return 1;
- }
- while ( (*argv)[0] == '-' ) { /* we have options */
- s = *argv;
- if ( s[1] == '-' ) {
- /* Double "--", treat as "-" */
- s++;
- }
- if ( ( strcmp(s,"-h") == 0) || ( strcmp(s,"-help") == 0 ) ) {
- PrintHelp(axohelp);
- return 0;
- }
- else if ( ( strcmp(s,"-v") == 0 ) || ( strcmp(s,"-version") == 0 ) ) {
- fprintf(stderr,
- "%s %d.%d\n(release date %s)\n"
- "Copyright 2018 John Collins and Jos Vermaseren.\n"
- "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.\n"
- "There is NO WARRANTY, to the extent permitted by law.\n",
- axohelp, VERSION, SUBVERSION, VERSIONDATE);
- return 0;
- }
- else if ( strcmp( s, "-V" ) == 0 ) {
- VerboseFlag = 1;
- }
- else {
- fprintf(stderr,"%s: Illegal option %s\n", axohelp, *argv);
- PrintHelpPrompt(axohelp);
- return 1;
- }
- argc--; argv++;
- if ( argc <= 0 ) {
- fprintf(stderr,"%s: Not enough arguments\n",axohelp);
- PrintHelpPrompt(axohelp);
- return 1;
- }
- }
- if ( argc != 1 ) {
- fprintf(stderr,"%s: Too many arguments\n",axohelp);
- PrintHelpPrompt(axohelp);
- return 1;
- }
-/*
- The filename is now in s. We copy it to a separate string and
- paste on the extension .ax1 (if needed), and construct the
- name of the output file.
-*/
- s = *argv;
- length = strlen(s);
- inname = strcpy(malloc((length+5)*sizeof(char)),s);
- outname = strcpy(malloc((length+5)*sizeof(char)),s);
- if ( (length > 4) && (strcmp(s+length-4, ".ax1") == 0) ) {
- outname[length-1] = '2';
- }
- else {
- strcpy( inname+length, ".ax1" );
- strcpy( outname+length, ".ax2" );
- }
- if ( ( inbuffer = ReadInput(inname) ) == 0 ) return(1);
- if ( ( outfile = fopen(outname,"w") ) == 0 ) {
- fprintf(stderr,"%s: Cannot create file %s\n",axohelp,outname);
- exit(1);
- }
- num = ScanForObjects(inbuffer);
- for ( i = 0; i < num; i++ ) {
- numobject = i+1;
- if ( DoOneObject(inputs[i]) < 0 ) { error++; }
- }
- fclose(outfile);
- if ( error > 0 ) {
- fprintf(stderr,"%s: %d objects in %s were not translated correctly.\n",
- axohelp,error,inname);
- return(1);
- }
- return(0);
-}
-
-/*
- #] main :
- #[ routines :
- #[ Line routines :
- #[ Line : *
-
- Line(x1,y1)(x2,y2)
-*/
-
-void Line(double *args)
-{
- MoveTo(args[0],args[1]);
- LineTo(args[2],args[3]);
- Stroke;
-}
-
-/*
- #] Line :
- #[ DoubleLine : *
-
- DoubleLine(x1,y1)(x2,y2){sep}
-*/
-
-void DoubleLine(double *args)
-{
- SaveGraphicsState;
- if ( args[4] > 0 ) {
- SetLineWidth(args[4]+axolinewidth);
- Line(args);
- SetLineWidth(args[4]-axolinewidth);
- SetBackgroundColor(STROKING);
- }
- Line(args);
- RestoreGraphicsState;
-}
-
-/*
- #] DoubleLine :
- #[ DashLine : *
-
- DashLine(x1,y1)(x2,y2){dashsize}
-*/
-
-void DashLine(double *args)
-{
- double dx = args[2]-args[0], dy = args[3]-args[1], dr = sqrt(dx*dx+dy*dy);
- double dashsize = args[4];
- int num;
- num = dr/dashsize;
- if ( ( num%2 ) == 1 ) num++;
- dashsize = dr/num;
- SetDashSize(dashsize,dashsize/2);
- Line(args);
-}
-
-/*
- #] DashLine :
- #[ DashDoubleLine : *
-
- DashDoubleLine(x1,y1)(x2,y2){sep}{dashsize}
-*/
-
-void DashDoubleLine(double *args)
-{
- double dx = args[2]-args[0], dy = args[3]-args[1], dr = sqrt(dx*dx+dy*dy);
- double dashsize = args[5];
- int num;
- num = dr/dashsize;
- if ( ( num%2 ) == 1 ) num++;
- dashsize = dr/num;
- SetDashSize(dashsize,dashsize/2);
- DoubleLine(args);
-}
-
-/*
- #] DashDoubleLine :
- #[ ArrowLine : *
-
- ArrowLine(x1,y1)(x2,y2){size}{where}
-
- where: x of arrowhead is x1+where*(x2-x1). Same for y.
- serves both ArrowLine and LongArrowLine
-*/
-
-void ArrowLine(double *args)
-{
- double dx, dy, dr, where;
- Line(args);
- if ( arrow.type == 0 ) where = args[5];
- else where = arrow.where;
- dx = args[2]-args[0];
- dy = args[3]-args[1];
- dr = sqrt(dx*dx+dy*dy);
- SetTransferMatrix(1,0,0,1,args[0],args[1]);
- SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
- SetTransferMatrix(1,0,0,1,dr*where,0);
- if ( arrow.type == 0 ) arrow.width = args[4];
- ArrowHead();
-}
-
-/*
- #] ArrowLine :
- #[ ArrowDoubleLine : *
-
- ArrowDoubleLine(x1,y1)(x2,y2){sep}{size}{where}
-
- where: x of arrowhead is x1+where*(x2-x1). Same for y.
- serves both ArrowLine and LongArrowLine
-*/
-
-void ArrowDoubleLine(double *args)
-{
- double dx, dy, dr, where;
- DoubleLine(args);
- if ( arrow.type == 0 ) where = args[6];
- else where = arrow.where;
- dx = args[2]-args[0];
- dy = args[3]-args[1];
- dr = sqrt(dx*dx+dy*dy);
- SetTransferMatrix(1,0,0,1,args[0],args[1]);
- SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
- SetTransferMatrix(1,0,0,1,dr*where,0);
- if ( arrow.type == 0 ) arrow.width = args[5]+args[4];
- ArrowHead();
-}
-
-/*
- #] ArrowDoubleLine :
- #[ DashArrowLine : *
-
- DashArrowLine(x1,y1)(x2,y2){dashsize}{amplitude}{where}
-
- where: x of arrowhead is x1+where*(x2-x1). Same for y.
- we re-adjust the position of the arrow to place it on a dash.
-*/
-
-void DashArrowLine(double *args)
-{
- double dx = args[2]-args[0], dy = args[3]-args[1], dr = sqrt(dx*dx+dy*dy);
- double dashsize = args[4], where;
- int num, nw;
- if ( arrow.type == 0 ) where = args[6];
- else where = arrow.where;
- num = dr/dashsize;
- if ( ( num%2 ) == 1 ) num++;
- if ( num%4 != 0 && where > 0.499 && where < 0.501 ) num += 2;
- dashsize = dr/num;
- SetDashSize(dashsize,dashsize/2);
- Line(args);
- nw = where*(num/2)+0.5;
- where = (2.0*nw)/num;
- SetTransferMatrix(1,0,0,1,args[0],args[1]);
- SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
- SetTransferMatrix(1,0,0,1,dr*where,0);
- if ( arrow.type == 0 ) arrow.width = args[5];
- ArrowHead();
-}
-
-/*
- #] DashArrowLine :
- #[ DashArrowDoubleLine : *
-
- DashArrowDoubleLine(x1,y1)(x2,y2){sep}{dashsize}{amplitude}{where}
-
- where: x of arrowhead is x1+where*(x2-x1). Same for y.
- we re-adjust the position of the arrow to place it on a dash.
-*/
-
-void DashArrowDoubleLine(double *args)
-{
- double dx = args[2]-args[0], dy = args[3]-args[1], dr = sqrt(dx*dx+dy*dy);
- double dashsize = args[5], where;
- int num, nw;
- if ( arrow.type == 0 ) where = args[7];
- else where = arrow.where;
- num = dr/dashsize;
- if ( ( num%2 ) == 1 ) num++;
- if ( num%4 != 0 && where > 0.499 && where < 0.501 ) num += 2;
- dashsize = dr/num;
- SetDashSize(dashsize,dashsize/2);
- DoubleLine(args);
- nw = where*(num/2)+0.5;
- where = (2.0*nw)/num;
- SetTransferMatrix(1,0,0,1,args[0],args[1]);
- SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
- SetTransferMatrix(1,0,0,1,dr*where,0);
- if ( arrow.type == 0 ) arrow.width = args[6]+args[4];
- ArrowHead();
-}
-
-/*
- #] DashArrowDoubleLine :
- #] Line routines :
- #[ Arc routines :
- #[ CArc : *
-
- CArc(x1,y1)(r,phi1,phi2)
-
- The arc segment runs anticlockwise
-
- We divide the segment into a number of equal segments, each less
- than 90 degrees. Then the control points are at distance
- 4*tan(90/n)/3 from the endpoints, in which n=360/(phi2-phi1)
- (note that if n=4 we get tan(22.5)=sqrt(2)-1).
-*/
-
-void CArc(double *args)
-{
- double phi1 = args[3], phi2 = args[4], r = args[2];
- double dphi;
- while ( phi2 < phi1 ) phi2 += 360;
- dphi = phi2-phi1;
- if ( dphi <= 0 ) { return; }
- if ( dphi >= 360 ) { ECirc(args); return; }
- SetTransferMatrix(1,0,0,1,args[0],args[1]);
- ArcSegment(r,phi1,dphi);
- Stroke;
-}
-
-/*
- #] CArc :
- #[ DoubleArc : *
-
- DoubleArc(x1,y1)(r,phi1,phi2){sep}
-
- The arc segment runs anticlockwise
-
- We divide the segment into a number of equal segments, each less
- than 90 degrees. Then the control points are at distance
- 4*tan(90/n)/3 from the endpoints, in which n=360/(phi2-phi1)
- (note that if n=4 we get tan(22.5)=sqrt(2)-1).
-*/
-
-void DoubleArc(double *args)
-{
- double phi1 = args[3], phi2 = args[4], r = args[2];
- double dphi, sep = args[5];
- while ( phi2 < phi1 ) phi2 += 360;
- dphi = phi2-phi1;
- if ( dphi <= 0 ) { return; }
- SetTransferMatrix(1,0,0,1,args[0],args[1]);
- ArcSegment(r+sep/2,phi1,dphi);
- Stroke;
- ArcSegment(r-sep/2,phi1,dphi);
- Stroke;
-}
-
-/*
- #] DoubleArc :
- #[ DashCArc : *
-
- DashCArc(x1,y1)(r,phi1,phi2){dashsize}
-
- The arc segment runs anticlockwise
-*/
-
-void DashCArc(double *args)
-{
- double arcsize = args[4]-args[3];
- double r = args[2], dr, dashsize = args[5];
- int num;
- if ( arcsize <= 0 ) arcsize += 360;
- if ( arcsize > 360 ) arcsize = 360;
- dr = 2*M_pi*r*(arcsize/360);
- num = dr/dashsize;
- if ( (num%2) == 1 ) num++;
- dashsize = dr/num;
- SetDashSize(dashsize,dashsize/2);
- CArc(args);
-}
-
-/*
- #] DashCArc :
- #[ DashDoubleArc : *
-
- DashDoubleArc(x1,y1)(r,phi1,phi2){sep}{dashsize}
-
- The arc segment runs anticlockwise
- The trouble here is to synchronize the two dash patterns.
- This is done by a rescaling. We assume that the rescaling is
- sufficiently small that the linewidth does not suffer from it.
-*/
-
-void DashDoubleArc(double *args)
-{
- double phi1 = args[3], r = args[2];
- double arcsize = args[4]-args[3];
- double dr, dashsize = args[6], sep = args[5];
- int num;
- linesep = sep;
- SetTransferMatrix(1,0,0,1,args[0],args[1]);
- if ( arcsize <= 0 ) arcsize += 360;
- if ( arcsize > 360 ) arcsize = 360;
- dr = 2*M_pi*r*(arcsize/360);
- num = dr/dashsize;
- if ( (num%2) == 1 ) num++;
- dashsize = dr/num;
- SetDashSize(dashsize,dashsize/2);
- SaveGraphicsState;
- SetTransferMatrix(1+0.5*sep/r,0,0,1+0.5*sep/r,0,0);
- ArcSegment(r,phi1,arcsize);
- Stroke;
- RestoreGraphicsState;
- SaveGraphicsState;
- SetTransferMatrix(1-0.5*sep/r,0,0,1-0.5*sep/r,0,0);
- ArcSegment(r,phi1,arcsize);
- Stroke;
- RestoreGraphicsState;
-}
-
-/*
- #] DashDoubleArc :
- #[ ArrowArc : *
-
- ArrowArc(x1,y1)(r,phi1,phi2){amplitude}{where}
-
- where: phi of arrowhead is phi1+where*(phi2-phi1)
- The arc segment runs anticlockwise
- serves both ArrowArc and LongArrowArc and ... (Jaxodraw addition)
-*/
-
-void ArrowArc(double *args)
-{
- double phi1 = args[3], phi2 = args[4], r = args[2];
- double dphi, x, y, phi;
- if ( arrow.type == 0 ) {
- arrow.width = args[5];
- arrow.where = args[6];
- }
-
- while ( phi2 < phi1 ) phi2 += 360;
- dphi = phi2-phi1;
- SetTransferMatrix(1,0,0,1,args[0],args[1]);
-
- if ( dphi <= 0 ) { return; }
- ArcSegment(r,phi1,dphi);
- Stroke;
-/*
- Now compute the position and angle of the arrowhead
-*/
- phi = phi1 + arrow.where*dphi;
- x = r*COS(phi); y = r*SIN(phi);
- SetTransferMatrix(1,0,0,1,x,y);
- SetTransferMatrix(COS(phi+90),SIN(phi+90),-SIN(phi+90),COS(phi+90),0,0);
- ArrowHead();
-}
-
-/*
- #] ArrowArc :
- #[ ArrowDoubleArc : *
-
- ArrowDoubleArc(x1,y1)(r,phi1,phi2){sep}{amplitude}{where}
-
- where: phi of arrowhead is phi1+where*(phi2-phi1)
- The arc segment runs anticlockwise
- serves both ArrowArc and LongArrowArc and ... (Jaxodraw addition)
-*/
-
-void ArrowDoubleArc(double *args)
-{
- double phi1 = args[3], phi2 = args[4], r = args[2];
- double dphi, x, y, phi;
- linesep = args[5];
- while ( phi2 < phi1 ) phi2 += 360;
- dphi = phi2-phi1;
- if ( dphi <= 0 ) { return; }
- SetTransferMatrix(1,0,0,1,args[0],args[1]);
- ArcSegment(r+linesep/2,phi1,dphi);
- Stroke;
- ArcSegment(r-linesep/2,phi1,dphi);
- Stroke;
-/*
- Now compute the position and angle of the arrowhead
-*/
- if ( arrow.type == 0 ) {
- arrow.width = args[6];
- arrow.where = args[7];
- }
- phi = phi1 + arrow.where*dphi;
- x = r*COS(phi); y = r*SIN(phi);
- SetTransferMatrix(1,0,0,1,x,y);
- SetTransferMatrix(COS(phi+90),SIN(phi+90),-SIN(phi+90),COS(phi+90),0,0);
- ArrowHead();
-}
-
-/*
- #] ArrowDoubleArc :
- #[ DashArrowArc : +
-
- DashArrowArc(x1,y1)(r,phi1,phi2){dashsize}{amplitude}{where}
-
- where: phi of arrowhead is phi1+where*(phi2-phi1)
- The arc segment runs anticlockwise
-*/
-
-void DashArrowArc(double *args)
-{
- double dphi, x, y, phi, phi1 = args[3], phi2 = args[4];
- double r = args[2], dr, dashsize = args[5];
- int num;
- if ( arrow.type == 0 ) {
- arrow.width = args[6];
- arrow.where = args[7];
- }
-
- while ( phi2 < phi1 ) phi2 += 360;
- dphi = phi2-phi1;
- if ( dphi > 360 ) dphi = 360;
- dr = 2*M_pi*r*(dphi/360);
- num = dr/dashsize;
- if ( (num%2) == 1 ) num++;
- if ( num%4 != 0 && arrow.where > 0.499 && arrow.where < 0.501 ) num += 2;
- dashsize = dr/num;
- SetDashSize(dashsize,dashsize/2);
- SetTransferMatrix(1,0,0,1,args[0],args[1]);
- if ( dphi <= 0 ) { return; }
- ArcSegment(r,phi1,dphi);
- Stroke;
-/*
- Now compute the position and angle of the arrowhead
-*/
- phi = phi1 + arrow.where*dphi;
- x = r*COS(phi); y = r*SIN(phi);
- SetTransferMatrix(1,0,0,1,x,y);
- SetTransferMatrix(COS(phi+90),SIN(phi+90),-SIN(phi+90),COS(phi+90),0,0);
- ArrowHead();
-}
-
-/*
- #] DashArrowArc :
- #[ DashArrowDoubleArc : +
-
- DashArrowDoubleArc(x1,y1)(r,phi1,phi2){sep}{dashsize}{amplitude}{where}
-
- where: phi of arrowhead is phi1+where*(phi2-phi1)
- The arc segment runs anticlockwise
-*/
-
-void DashArrowDoubleArc(double *args)
-{
- double dphi, x, y, phi, phi1 = args[3], phi2 = args[4];
- double r = args[2], dr, dashsize = args[6];
- int num;
- linesep = args[5];
- if ( arrow.type == 0 ) {
- arrow.width = args[7];
- arrow.where = args[8];
- }
-
- while ( phi2 < phi1 ) phi2 += 360;
- dphi = phi2-phi1;
- if ( dphi > 360 ) dphi = 360;
- dr = 2*M_pi*r*(dphi/360);
- num = dr/dashsize;
- if ( (num%2) == 1 ) num++;
- if ( num%4 != 0 && arrow.where > 0.499 && arrow.where < 0.501 ) num += 2;
- dashsize = dr/num;
- SetDashSize(dashsize,dashsize/2);
- SetTransferMatrix(1,0,0,1,args[0],args[1]);
- if ( dphi <= 0 ) { return; }
- SaveGraphicsState;
- SetTransferMatrix(1+0.5*linesep/r,0,0,1+0.5*linesep/r,0,0);
- ArcSegment(r,phi1,dphi);
- Stroke;
- RestoreGraphicsState;
- SaveGraphicsState;
- SetTransferMatrix(1-0.5*linesep/r,0,0,1-0.5*linesep/r,0,0);
- ArcSegment(r,phi1,dphi);
- Stroke;
- RestoreGraphicsState;
-/*
- Now compute the position and angle of the arrowhead
-*/
- phi = phi1 + arrow.where*dphi;
- x = r*COS(phi); y = r*SIN(phi);
- SetTransferMatrix(1,0,0,1,x,y);
- SetTransferMatrix(COS(phi+90),SIN(phi+90),-SIN(phi+90),COS(phi+90),0,0);
- ArrowHead();
-}
-
-/*
- #] DashArrowDoubleArc :
- #[ ArrowArcn : +
-
- ArrowArcn(x1,y1)(r,phi1,phi2){amplitude}{where}
-
- where: phi of arrowhead is phi1+where*(phi2-phi1)
- The arc segment runs clockwise
-*/
-
-void ArrowArcn(double *args)
-{
- double newargs[7], a;
- int i;
- for ( i = 0; i < 7; i++ ) newargs[i] = args[i];
- newargs[6] = 1-newargs[6];
- a = newargs[3]; newargs[3] = newargs[4]; newargs[4] = a;
- ArrowArc(newargs);
-}
-
-/*
- #] ArrowArcn :
- #[ DashArrowArcn : +
-
- DashArrowArc(x1,y1)(r,phi1,phi2){amplitude}{where}{dashsize}
-
- where: phi of arrowhead is phi1+where*(phi2-phi1)
- The arc segment runs clockwise
-*/
-
-void DashArrowArcn(double *args)
-{
- double newargs[8], a;
- int i;
- for ( i = 0; i < 8; i++ ) newargs[i] = args[i];
- newargs[6] = 1-newargs[6];
- a = newargs[3]; newargs[3] = newargs[4]; newargs[4] = a;
- DashArrowArc(newargs);
-}
-
-/*
- #] DashArrowArcn :
- #] Arc routines :
- #[ Circle routines :
- #[ ECirc : +
-
- ECirc(x,y){radius}
- Draws a circle
-*/
-
-void ECirc(double *args)
-{
- SetTransferMatrix(1,0,0,1,args[0],args[1]);
- BezierCircle(args[2],"S");
-}
-
-/*
- #] ECirc :
- #[ FOval : +
-
- FOval(x1,y1)(h,w) filled oval in default color
-
-*/
-
-void FOval(double *args)
-{
- SetTransferMatrix(1,0,0,1,args[0],args[1]); /* Move to center of oval */
- SetTransferMatrix(COS(args[4]),SIN(args[4]),-SIN(args[4]),COS(args[4]),0,0);
- BezierOval(args[3],args[2],"f");
- BezierOval(args[3],args[2],"S");
-}
-
-/*
- #] COval :
- #[ Oval : +
-
- Oval(x1,y1)(h,w)(phi)
-
- One way would be with different scales in the x and y direction,
- but that messes up the linewidth.
- We need to describe quarter ovals with Bezier curves. The proper
- parameters for the curves we can obtain from the circle with scaling.
-*/
-
-void Oval(double *args)
-{
- SetTransferMatrix(1,0,0,1,args[0],args[1]); /* Move to center of oval */
- SetTransferMatrix(COS(args[4]),SIN(args[4]),-SIN(args[4]),COS(args[4]),0,0);
- BezierOval(args[3],args[2],"S");
-}
-
-/*
- #] Oval :
- #] Circle routines :
- #[ Box routines :
- #[ EBox : *
-
- \EBox(#1,#2)(#3,#4)
-
- Draws a box with the left bottom at (x1,y1) and the right top
- at (x2,y2).
- Transparent interior. Current color for edge.
-*/
-
-void EBox(double *args)
-{
- Rectangle(args[0],args[1],args[2]-args[0],args[3]-args[1]);
- Stroke;
-}
-
-/*
- #] EBox :
- #[ FBox : *
-
- \FBox(#1,#2)(#3,#4)
-
- Draws a filled box with the left bottom at (x1,y1) and
- the right top at (x2,y2).
- Current color.
-*/
-
-void FBox(double *args)
-{
- Rectangle(args[0],args[1],args[2]-args[0],args[3]-args[1]);
- Fill;
-}
-
-/*
- #] FBox :
- #[ Boxc : *
-
- \Boxc(#1,#2)(#3,#4)
-
- Draws a transparent box with the center at (x1,y1).
- The width and height are (3,4). Uses current color.
-*/
-
-void Boxc(double *args)
-{
- Rectangle(args[0]-args[2]/2,args[1]-args[3]/2,args[2],args[3]);
- Stroke;
-}
-
-/*
- #] Boxc :
- #[ FBoxc : *
-
- \FBoxc(#1,#2)(#3,#4)
-
- Draws a filled box with the center at (x1,y1).
- The width and height are (3,4). Uses current color.
-*/
-
-void FBoxc(double *args)
-{
- Rectangle(args[0]-args[2]/2,args[1]-args[3]/2,args[2],args[3]);
- Fill;
-}
-
-/*
- #] FBoxc :
- #] Box routines :
- #[ Triangle routines :
- #[ ETri : *
-
- \ETri(#1,#2)(#3,#4)(#5,#6)
-
- Draws a triangle with the three corners.
-*/
-
-void ETri(double *args)
-{
- Triangle(args[0],args[1],args[2],args[3],args[4],args[5]);
- Stroke;
-}
-
-/*
- #] ETri :
- #[ FTri : *
-
- \FTri(#1,#2)(#3,#4)(#5,#6)
-
- Draws a triangle with the three corners.
-*/
-
-void FTri(double *args)
-{
- Triangle(args[0],args[1],args[2],args[3],args[4],args[5]);
- Fill;
-}
-
-/*
- #] FTri :
- #] Triangle routines :
- #[ Particle routines :
- #[ Vertex : +
-
- Vertex(x,y){radius}
- Draws a filled circle
-*/
-
-void Vertex(double *args)
-{
- SetTransferMatrix(1,0,0,1,args[0],args[1]);
- BezierCircle(args[2],"f");
-}
-
-/*
- #] Vertex :
- #[ ComputeDash :
-*/
-
-double ComputeDash(double *args,double dr,double indash)
-{
- int numwindings = args[5]+0.5, numdashes;
- int numhalfwindings = 2*numwindings+2.1;
- double onehalfwinding = dr/numhalfwindings;
- double amp8 = fabs(args[4])*0.9;
- double size = LengthBezier(-amp8,0, -amp8,2*args[4], onehalfwinding,2*args[4],1.0);
-
- numdashes = size/(2*indash);
- if ( numdashes == 0 ) numdashes = 1;
- if ( fabs(size-2*indash*numdashes) > fabs(size-2*indash*(numdashes+1)) )
- numdashes++;
- return(size/(2*numdashes));
-}
-
-/*
- #] ComputeDash :
- #[ ComputeDashCirc :
-*/
-
-double ComputeDashCirc(double *args,double indash)
-{
- int num = args[5]+0.5, numdashes;
- double ampi = args[4], radius = args[2];
- double darc;
- double dr,conv,inc;
- double amp1,amp2,amp4,amp5,amp8;
- double x0,x1,x2,x3,y0,y1,y2,y3,xx,size;
- darc = 360.;
- dr = darc*torad*radius;
- conv = 1.0/radius;
- inc = dr/(2*num); /* increment per half winding */
- amp8 = ampi*0.9;
- amp1 = radius+ampi;
- amp2 = radius-ampi;
- amp4 = amp1/cos((inc+amp8)*conv);
- amp5 = amp2/cos(amp8*conv);
- if ( amp8 < 0 ) amp8 = -amp8;
- xx = 2*inc;
- x0 = amp1*cos(inc*conv);
- y0 = amp1*sin(inc*conv);
- x1 = amp4*cos((xx+amp8)*conv)-x0;
- y1 = amp4*sin((xx+amp8)*conv)-y0;
- x2 = amp5*cos((xx+amp8)*conv)-x0;
- y2 = amp5*sin((xx+amp8)*conv)-y0;
- x3 = amp2*cos(xx*conv)-x0;
- y3 = amp2*sin(xx*conv)-y0;
- size = LengthBezier(x1,y1,x2,y2,x3,y3,1.0);
- numdashes = size/(2*indash);
- if ( numdashes == 0 ) numdashes = 1;
- if ( fabs(size-2*indash*numdashes) > fabs(size-2*indash*(numdashes+1)) )
- numdashes++;
- return(size/(2*numdashes));
-}
-
-/*
- #] ComputeDashCirc :
- #[ ComputeDashPhotonArc :
-*/
-
-double ComputeDashPhotonArc(double *args,double darc,double dashsize,double *dashstart)
-{
- int numdashes, numd;
- double len1, len2, size, size2, ampli = args[5], radius = args[2];
- double cp = cos(darc);
- double sp = sin(darc);
- double cp2 = cos(darc/2.);
- double sp2 = sin(darc/2.);
- double beta = radius*darc/(M_pi*ampli);
- double tt = (sp-cp*beta)/(cp+sp*beta);
- double x2 = ((radius+ampli)*8*(beta*cp2-sp2)-(beta*(4+cp)
- +(tt*cp*3.-sp*4.))*radius)/((beta-tt)*3.);
- double x1 = ((radius+ampli)*8.*cp2-(1+cp)*radius)/3.-x2;
- double y1 = (x1-radius)*beta;
- double y2 = (x2-radius*cp)*tt+radius*sp;
- double x3 = radius*cp;
- double y3 = radius*sp;
- len1 = LengthBezier(x1-radius,y1,x2-radius,y2,x3-radius,y3,1.0);
- ampli = -ampli;
- beta = radius*darc/(M_pi*ampli);
- tt = (sp-cp*beta)/(cp+sp*beta);
- x2 = ((radius+ampli)*8*(beta*cp2-sp2)-(beta*(4+cp)
- +(tt*cp*3.-sp*4.))*radius)/((beta-tt)*3.);
- x1 = ((radius+ampli)*8.*cp2-(1+cp)*radius)/3.-x2;
- y1 = (x1-radius)*beta;
- y2 = (x2-radius*cp)*tt+radius*sp;
- x3 = radius*cp;
- y3 = radius*sp;
- len2 = LengthBezier(x1-radius,y1,x2-radius,y2,x3-radius,y3,1.0);
- size = (len1+len2)/2;
- size2 = len1/2;
- numdashes = size/(2*dashsize);
- if ( numdashes == 0 ) numdashes = 1;
- if ( fabs(size-2*dashsize*numdashes) > fabs(size-2*dashsize*(numdashes+1)) )
- numdashes++;
- dashsize = size/(2*numdashes);
- numd = size2/(2*dashsize);
- *dashstart = -(size2 - 2*numd*dashsize) + dashsize/2;
- if ( *dashstart < 0 ) *dashstart += 2*dashsize;
- return(dashsize);
-}
-
-/*
- #] ComputeDashPhotonArc :
- #[ ComputeDashGluonArc :
-*/
-
-double ComputeDashGluonArc(double *args,double darc,double dashsize)
-{
- int numdashes, num = args[6];
- double radius = args[2], ampi = args[5];
- double dr,conv,inc, size;
- double amp1,amp2,amp4,amp5,amp8;
- double x1,x2,x3,y1,y2,y3,xx,x3p,y3p;
- dr = darc*torad*radius;
- conv = 1.0/radius;
- inc = dr/(2*num+2); /* increment per half winding */
- amp8 = ampi*0.9;
- amp1 = radius+ampi;
- amp2 = radius-ampi;
- amp4 = amp1/cos((inc+amp8)*conv);
- amp5 = amp2/cos(amp8*conv);
- if ( amp8 < 0 ) amp8 = -amp8;
-
- xx = 2*inc;
- x3p = amp2*cos(xx*conv);
- y3p = amp2*sin(xx*conv);
- x1 = amp5*cos((xx-amp8)*conv)-x3p;
- y1 = amp5*sin((xx-amp8)*conv)-y3p;
- x2 = amp4*cos((xx-amp8)*conv)-x3p;
- y2 = amp4*sin((xx-amp8)*conv)-y3p;
- x3 = amp1*cos((xx+inc)*conv)-x3p;
- y3 = amp1*sin((xx+inc)*conv)-y3p;
- size = LengthBezier(x1,y1,x2,y2,x3,y3,1.0);
-
- numdashes = size/(2*dashsize);
- if ( numdashes == 0 ) numdashes = 1;
- if ( fabs(size-2*dashsize*numdashes) > fabs(size-2*dashsize*(numdashes+1)) )
- numdashes++;
- dashsize = size/(2*numdashes);
- return(dashsize);
-}
-
-/*
- #] ComputeDashGluonArc :
- #[ GluonHelp :
-
- We draw the gluon in two strokes. This is due to the possibility
- of a dash pattern. We want the dashes to be nicely symmetric on
- the central windings. That means that either the start and end need
- a different size dashes, or we draw the start 'backwards'.
- We have chosen for the last solution.
-*/
-
-void GluonHelp(double *args,double dr)
-{
- int numwindings = args[5]+0.5;
- int numhalfwindings = 2*numwindings+2.1;
- double onehalfwinding = dr/numhalfwindings;
- double amp8 = fabs(args[4])*0.9;
- double xx = 2*onehalfwinding;
- int i;
- MoveTo(xx,-args[4]);
- Bezier(xx+amp8,-args[4],xx+amp8,args[4],1.4*onehalfwinding,args[4]);
- Bezier(0.5*onehalfwinding,args[4],
- 0.1*onehalfwinding,args[4]*0.5,0,0);
- Stroke;
- MoveTo(xx,-args[4]);
- for ( i = 0; i < numwindings-1; i++ ) {
- Bezier(xx-amp8,-args[4], xx-amp8,args[4], xx+onehalfwinding,args[4]);
- xx += 2*onehalfwinding;
- Bezier(xx+amp8,args[4], xx+amp8,-args[4], xx,-args[4]);
- }
- Bezier(xx-amp8,-args[4], xx-amp8,args[4], xx+onehalfwinding*0.6,args[4]);
- Bezier(dr-onehalfwinding*0.5,args[4],
- dr-onehalfwinding*0.1,args[4]*0.5,
- dr,0);
- Stroke;
-}
-
-/*
- #] GluonHelp :
- #[ GluonCircHelp :
-*/
-
-void GluonCircHelp(double *args)
-{
- int num = args[5], i;
- double ampi = args[4], radius = args[2];
- double darc;
- double dr,conv,inc;
- double amp1,amp2,amp4,amp5,amp8;
- double x1,x2,x3,y1,y2,y3,xx;
- darc = 360.;
- dr = darc*torad*radius;
- conv = 1.0/radius;
- inc = dr/(2*num); /* increment per half winding */
- amp8 = ampi*0.9;
- amp1 = radius+ampi;
- amp2 = radius-ampi;
- amp4 = amp1/cos((inc+amp8)*conv);
- amp5 = amp2/cos(amp8*conv);
- if ( amp8 < 0 ) amp8 = -amp8;
- xx = 2*inc;
- x3 = amp1*cos(inc*conv);
- y3 = amp1*sin(inc*conv);
- MoveTo(x3,y3);
-/*
- Now the loop
-*/
- for ( i = 0; i < num; i++ ) {
- x1 = amp4*cos((xx+amp8)*conv);
- y1 = amp4*sin((xx+amp8)*conv);
- x2 = amp5*cos((xx+amp8)*conv);
- y2 = amp5*sin((xx+amp8)*conv);
- x3 = amp2*cos(xx*conv);
- y3 = amp2*sin(xx*conv);
- Bezier(x1,y1,x2,y2,x3,y3);
- x1 = amp5*cos((xx-amp8)*conv);
- y1 = amp5*sin((xx-amp8)*conv);
- x2 = amp4*cos((xx-amp8)*conv);
- y2 = amp4*sin((xx-amp8)*conv);
- x3 = amp1*cos((xx+inc)*conv);
- y3 = amp1*sin((xx+inc)*conv);
- Bezier(x1,y1,x2,y2,x3,y3);
- xx += 2*inc;
- }
- Stroke;
-}
-
-/*
- #] GluonCircHelp :
- #[ GluonArcHelp :
-*/
-
-void GluonArcHelp(double *args, double darc, double ampi)
-{
- int num = args[6], i;
- double radius = args[2];
- double dr,conv,inc;
- double amp1,amp2,amp3,amp4,amp5,amp6,amp7,amp8;
- double x1,x2,x3,y1,y2,y3,xx,x1p,y1p,x2p,y2p,x3p,y3p;
- dr = darc*torad*radius;
- conv = 1.0/radius;
- inc = dr/(2*num+2); /* increment per half winding */
- amp8 = ampi*0.9;
- amp1 = radius+ampi;
- amp2 = radius-ampi;
- amp3 = radius+ampi/2;
- amp4 = amp1/cos((inc+amp8)*conv);
- amp5 = amp2/cos(amp8*conv);
- amp6 = amp1/cos((inc*0.6+amp8)*conv);
- amp7 = amp1/cos(inc*0.9*conv);
- if ( amp8 < 0 ) amp8 = -amp8;
- xx = 2*inc;
-/*
- First the starting part. We draw it separately because there could
- be a dashing pattern. This way the windings come out best.
-*/
- x1 = amp3*cos(inc*0.1*conv);
- y1 = amp3*sin(inc*0.1*conv);
- x2 = amp7*cos(inc*0.5*conv);
- y2 = amp7*sin(inc*0.5*conv);
- x3 = amp1*cos(inc*1.4*conv);
- y3 = amp1*sin(inc*1.4*conv);
- x1p = amp6*cos((xx+amp8)*conv);
- y1p = amp6*sin((xx+amp8)*conv);
- x2p = amp5*cos((xx+amp8)*conv);
- y2p = amp5*sin((xx+amp8)*conv);
- x3p = amp2*cos(xx*conv);
- y3p = amp2*sin(xx*conv);
- MoveTo(x3p,y3p);
- Bezier(x2p,y2p,x1p,y1p,x3,y3);
- Bezier(x2,y2,x1,y1,radius,0);
- Stroke;
-/*
- Now the loop
-*/
- MoveTo(x3p,y3p);
- for ( i = 1; i < num; i++ ) {
- x1 = amp5*cos((xx-amp8)*conv);
- y1 = amp5*sin((xx-amp8)*conv);
- x2 = amp4*cos((xx-amp8)*conv);
- y2 = amp4*sin((xx-amp8)*conv);
- x3 = amp1*cos((xx+inc)*conv);
- y3 = amp1*sin((xx+inc)*conv);
- Bezier(x1,y1,x2,y2,x3,y3);
- xx += 2*inc;
- x1 = amp4*cos((xx+amp8)*conv);
- y1 = amp4*sin((xx+amp8)*conv);
- x2 = amp5*cos((xx+amp8)*conv);
- y2 = amp5*sin((xx+amp8)*conv);
- x3 = amp2*cos(xx*conv);
- y3 = amp2*sin(xx*conv);
- Bezier(x1,y1,x2,y2,x3,y3);
- }
-/*
- And now the end point
-*/
- x1 = amp5*cos((xx-amp8)*conv);
- y1 = amp5*sin((xx-amp8)*conv);
- x2 = amp6*cos((xx-amp8)*conv);
- y2 = amp6*sin((xx-amp8)*conv);
- x3 = amp1*cos((xx+inc*0.6)*conv);
- y3 = amp1*sin((xx+inc*0.6)*conv);
- Bezier(x1,y1,x2,y2,x3,y3);
- x1 = amp7*cos((xx+inc*1.5)*conv);
- y1 = amp7*sin((xx+inc*1.5)*conv);
- x2 = amp3*cos((dr-inc*0.1)*conv);
- y2 = amp3*sin((dr-inc*0.1)*conv);
- x3 = radius*cos(dr*conv);
- y3 = radius*sin(dr*conv);
-
- Bezier(x1,y1,x2,y2,x3,y3);
-
- Stroke;
-}
-
-/*
- #] GluonArcHelp :
- #[ PhotonHelp :
-*/
-
-void PhotonHelp(double *args, double dr)
-{
- int numhalfwindings = args[5]*2+0.5;
- double onehalfwinding = dr/numhalfwindings;
- double y = 4.*args[4]/3;
- double x, xx;
- int i;
- MoveTo(0,0);
-/*
- Now loop over the half windings, alternating the sign of the y's
-*/
- x = (4*onehalfwinding)/3/M_pi; xx = 0;
- for ( i = 0; i < numhalfwindings; i++, y = -y ) {
- Bezier(xx+x,y, xx+onehalfwinding-x,y, xx+onehalfwinding,0);
- xx += onehalfwinding;
- }
- Stroke;
-}
-/*
- #] PhotonHelp :
- #[ PhotonArcHelp :
-*/
-
-void PhotonArcHelp(double *args,double arcend,int num)
-{
- int i;
- double ampli = args[5], radius = args[2];
- double cp,sp,cp2,sp2,cpi,spi;
- double x1,x2,x3,y1,y2,y3,beta,tt;
-
- cp = cos(arcend);
- sp = sin(arcend);
- cp2 = cos(arcend/2.);
- sp2 = sin(arcend/2.);
-
- MoveTo(radius,0);
- for ( i = 0; i < num; i++, ampli = -ampli ) {
- cpi = cos(i*arcend);
- spi = sin(i*arcend);
- beta = radius*arcend/(M_pi*ampli);
- tt = (sp-cp*beta)/(cp+sp*beta);
- x2 = ((radius+ampli)*8*(beta*cp2-sp2)-(beta*(4+cp)
- +(tt*cp*3.-sp*4.))*radius)/((beta-tt)*3.);
- x1 = ((radius+ampli)*8.*cp2-(1+cp)*radius)/3.-x2;
- y1 = (x1-radius)*beta;
- y2 = (x2-radius*cp)*tt+radius*sp;
- x3 = radius*cp;
- y3 = radius*sp;
- Bezier(cpi*x1-spi*y1,cpi*y1+spi*x1,
- cpi*x2-spi*y2,cpi*y2+spi*x2,
- cpi*x3-spi*y3,cpi*y3+spi*x3);
- }
- Stroke;
-}
-
-/*
- #] PhotonArcHelp :
- #[ ZigZagHelp :
-*/
-
-void ZigZagHelp(double *args, double dr)
-{
- int numhalfwindings = args[5]*2+0.5;
- double onehalfwinding = dr/numhalfwindings;
- double x = onehalfwinding, y = args[4];
- int i;
- MoveTo(0,0);
-/*
- Now loop over the half windings, alternating the sign of the y's
-*/
- for ( i = 0; i < numhalfwindings; i++, y = -y ) {
- LineTo(x-onehalfwinding/2.,y); LineTo(x,0);
- x += onehalfwinding;
- }
- Stroke;
-}
-
-/*
- #] ZigZagHelp :
- #[ ZigZagArcHelp :
-*/
-
-void ZigZagArcHelp(double *args)
-{
- int num = 2*args[6]-0.5, i;
- double amp = args[5], r = args[2];
- double arcstart = args[3], arcend = args[4], darc;
- if ( arcend < arcstart ) arcend += 360.;
- darc = (arcend-arcstart)/(num+1);
- MoveTo(r*COS(arcstart),r*SIN(arcstart));
- arcstart += darc/2;
- for ( i = 0; i <= num; i++, amp = -amp ) {
- LineTo((r+amp)*COS(arcstart+darc*i),(r+amp)*SIN(arcstart+darc*i));
- }
- LineTo(r*COS(arcend),r*SIN(arcend));
- Stroke;
-}
-
-/*
- #] ZigZagArcHelp :
- #[ Gluon : *
-
- Gluon(x1,y1)(x2,y2){amplitude}{windings}
-
- Each half winding is one cubic Bezier curve.
- In addition the end points are different Bezier curves.
-*/
-
-void Gluon(double *args)
-{
- double dx = args[2] - args[0];
- double dy = args[3] - args[1];
- double dr = sqrt(dx*dx+dy*dy);
-
- SetTransferMatrix(1,0,0,1,args[0],args[1]);
- SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
- GluonHelp(args,dr);
-}
-
-/*
- #] Gluon :
- #[ DashGluon : *
-
- DashGluon(x1,y1)(x2,y2){amplitude}{windings}{dashsize}
-
- Each half winding is one cubic Bezier curve.
- In addition the end points are different Bezier curves.
-*/
-
-void DashGluon(double *args)
-{
- double dx = args[2] - args[0];
- double dy = args[3] - args[1];
- double dr = sqrt(dx*dx+dy*dy);
- double dashsize;
-
- SetTransferMatrix(1,0,0,1,args[0],args[1]);
- SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
-
- dashsize = ComputeDash(args,dr,args[6]);
- SetDashSize(dashsize,dashsize/2);
- GluonHelp(args,dr);
-}
-
-/*
- #] DashGluon :
- #[ GluonCirc : *
-
- GluonCirc(x1,y1)(r,phi){amplitude}{windings}
-
- Draws a gluon on a circle
- x_center,y_center,radius,phase_angle,gluon_radius,num
- in which num is the number of windings of the gluon.
- Method: Same as GluonArc, but without special start and end
-*/
-
-void GluonCirc(double *args)
-{
- int num = args[5];
- double arcstart = args[3];
-
- SetTransferMatrix(1,0,0,1,args[0],args[1]); /* Move to center of circle */
-
- arcstart += 360./(2*num); /* extra phase to make 0 angle more accessible */
-
- SetTransferMatrix(COS(arcstart),SIN(arcstart)
- ,-SIN(arcstart),COS(arcstart),0,0);
-
- GluonCircHelp(args);
-}
-
-/*
- #] GluonCirc :
- #[ DashGluonCirc : *
-
- DashGluonCirc(x1,y1)(r,phi){amplitude}{windings}{dashsize}
-
- Draws a gluon on a circle
- x_center,y_center,radius,phase_angle,gluon_radius,num
- in which num is the number of windings of the gluon.
- Method: Same as GluonArc, but without special start and end
-*/
-
-void DashGluonCirc(double *args)
-{
- int num = args[5];
- double arcstart = args[3], dashsize;
-
- SetTransferMatrix(1,0,0,1,args[0],args[1]); /* Move to center of circle */
-
- arcstart += 360./(2*num); /* extra phase to make 0 angle more accessible */
-
- SetTransferMatrix(COS(arcstart),SIN(arcstart)
- ,-SIN(arcstart),COS(arcstart),0,0);
-
- dashsize = ComputeDashCirc(args,args[6]);
-
- SetDashSize(dashsize,dashsize/2);
- GluonCircHelp(args);
-}
-
-/*
- #] DashGluonCirc :
- #[ GluonArc : *
-
- GluonArc(x1,y1)(r,phi1,phi2){amplitude}{windings}
-
- Draws a gluon on an arcsegment
- x_center,y_center,radius,stat_angle,end_angle,gluon_radius,num
- in which num is the number of windings of the gluon.
- Method:
- 1: compute length of arc.
- 2: generate gluon in x and y as if the arc is a straight line
- 3: x' = (radius+y)*cos(x*const)
- y' = (radius+y)*sin(x*const)
-*/
-
-void GluonArc(double *args)
-{
- double darc, arcstart = args[3],arcend = args[4], ampi = args[5];
-/*
- When arcend comes before arcstart we have a problem. The solution is
- to flip the order and change the sign on ampi
-*/
- if ( arcend < arcstart ) {
- darc = arcstart; arcstart = arcend; arcend = darc; ampi = -ampi;
- }
-
- SetTransferMatrix(1,0,0,1,args[0],args[1]); /* Move to center of circle */
-
- SetTransferMatrix(COS(arcstart),SIN(arcstart)
- ,-SIN(arcstart),COS(arcstart),0,0);
- darc = arcend-arcstart;
- GluonArcHelp(args,darc,ampi);
-}
-
-/*
- #] GluonArc :
- #[ DashGluonArc : *
-
- DashGluonArc(x1,y1)(r,phi1,phi2){amplitude}{windings}{dashsize}
-
- Draws a gluon on an arcsegment
- x_center,y_center,radius,stat_angle,end_angle,gluon_radius,num
- in which num is the number of windings of the gluon.
- Method:
- 1: compute length of arc.
- 2: generate gluon in x and y as if the arc is a straight line
- 3: x' = (radius+y)*cos(x*const)
- y' = (radius+y)*sin(x*const)
-*/
-
-void DashGluonArc(double *args)
-{
- double darc, arcstart = args[3],arcend = args[4], ampi = args[5];
- double dashsize = args[7];
-/*
- When arcend comes before arcstart we have a problem. The solution is
- to flip the order and change the sign on ampi
-*/
- if ( arcend < arcstart ) {
- darc = arcstart; arcstart = arcend; arcend = darc; ampi = -ampi;
- }
-
- SetTransferMatrix(1,0,0,1,args[0],args[1]); /* Move to center of circle */
-
- SetTransferMatrix(COS(arcstart),SIN(arcstart)
- ,-SIN(arcstart),COS(arcstart),0,0);
- darc = arcend-arcstart;
- dashsize = ComputeDashGluonArc(args,darc,dashsize);
- SetDashSize(dashsize,dashsize/2);
- GluonArcHelp(args,darc,ampi);
-}
-
-/*
- #] DashGluonArc :
- #[ Photon : *
-
- Photon(x1,y1)(x2,y2){amplitude}{windings}
-
- Each half winding is one cubic Bezier curve.
-*/
-
-void Photon(double *args)
-{
- double dx = args[2] - args[0];
- double dy = args[3] - args[1];
- double dr = sqrt(dx*dx+dy*dy);
-
- SetTransferMatrix(1,0,0,1,args[0],args[1]);
- SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
-
- PhotonHelp(args,dr);
-}
-
-/*
- #] Photon :
- #[ DoublePhoton : *
-
- DoublePhoton(x1,y1)(x2,y2){amplitude}{windings}{sep}
-
- Each half winding is one cubic Bezier curve.
-*/
-
-void DoublePhoton(double *args)
-{
- double dx = args[2] - args[0];
- double dy = args[3] - args[1];
- double dr = sqrt(dx*dx+dy*dy);
- linesep = args[6];
-
- SetTransferMatrix(1,0,0,1,args[0],args[1]);
- SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
-
- SaveGraphicsState;
- SetLineWidth(linesep+axolinewidth);
- PhotonHelp(args,dr);
- RestoreGraphicsState;
-
- SaveGraphicsState;
- SetLineWidth(linesep-axolinewidth);
- SetBackgroundColor(STROKING);
- PhotonHelp(args,dr);
- RestoreGraphicsState;
-}
-
-/*
- #] DoublePhoton :
- #[ DashPhoton : *
-
- DashPhoton(x1,y1)(x2,y2){amplitude}{windings}{dashsize}
-
- Each half winding is one cubic Bezier curve.
-*/
-
-void DashPhoton(double *args)
-{
- double dx = args[2] - args[0];
- double dy = args[3] - args[1];
- double dr = sqrt(dx*dx+dy*dy);
- int numdashes, numhalfwindings = args[5]*2+0.5;
- double x, y, size;
- double dashsize = args[6], onehalfwinding = dr/numhalfwindings;
- x = (4*onehalfwinding)/3/M_pi; y = 4.*args[4]/3;
- size = 0.5*LengthBezier(x,y, onehalfwinding-x,y, onehalfwinding,0,1.0);
- numdashes = size/(2*args[6]);
- if ( numdashes == 0 ) numdashes = 1;
- if ( fabs(size-2*dashsize*numdashes) > fabs(size-2*dashsize*(numdashes+1)) )
- numdashes++;
- dashsize = size/(2*numdashes);
-
- SetTransferMatrix(1,0,0,1,args[0],args[1]);
- SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
-
- SetDashSize(dashsize,dashsize/2);
- PhotonHelp(args,dr);
-}
-
-/*
- #] DashPhoton :
- #[ DashDoublePhoton : *
-
- DashDoublePhoton(x1,y1)(x2,y2){amplitude}{windings}{sep}{dashsize}
-
- Each half winding is one cubic Bezier curve.
-*/
-
-void DashDoublePhoton(double *args)
-{
- double dx = args[2] - args[0];
- double dy = args[3] - args[1];
- double dr = sqrt(dx*dx+dy*dy);
- int numdashes, numhalfwindings = args[5]*2+0.5;
- double x, y, size;
- double dashsize = args[7], onehalfwinding = dr/numhalfwindings;
- x = (4*onehalfwinding)/3/M_pi; y = 4.*args[4]/3;
- size = 0.5*LengthBezier(x,y, onehalfwinding-x,y, onehalfwinding,0,1.0);
- numdashes = size/(2*args[6]);
- if ( numdashes == 0 ) numdashes = 1;
- if ( fabs(size-2*dashsize*numdashes) > fabs(size-2*dashsize*(numdashes+1)) )
- numdashes++;
- dashsize = size/(2*numdashes);
-
- linesep = args[6];
-
- SetTransferMatrix(1,0,0,1,args[0],args[1]);
- SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
- SetDashSize(dashsize,dashsize/2);
-
- SaveGraphicsState;
- SetLineWidth(linesep+axolinewidth);
- PhotonHelp(args,dr);
- RestoreGraphicsState;
-
-/* SetDashSize(0,0); */
- SaveGraphicsState;
- SetLineWidth(linesep-axolinewidth);
- SetBackgroundColor(STROKING);
- PhotonHelp(args,dr);
- RestoreGraphicsState;
-}
-
-/*
- #] DashDoublePhoton :
- #[ PhotonArc : *
-
- PhotonArc(x1,y1)(r,phi1,phi2){amplitude}{windings}
-
- This routine follows the Postscript routine closely, except for that
- we do not put a transfer matrix inside the loop. The corresponding
- moveto messes up the path. One would have to put stroking operations
- in there each time.
-*/
-
-void PhotonArc(double *args)
-{
- double arcstart = args[3],arcend = args[4];
- int num = 2*args[6]+0.5;
-
- if ( arcend < arcstart ) arcend += 360.;
-
- SetTransferMatrix(1,0,0,1,args[0],args[1]); /* Move to center of circle */
-
- arcend = torad*(arcend-arcstart)/num;
-
- SetTransferMatrix(COS(arcstart),SIN(arcstart)
- ,-SIN(arcstart),COS(arcstart),0,0);
-
- PhotonArcHelp(args,arcend,num);
-}
-
-/*
- #] PhotonArc :
- #[ DoublePhotonArc : *
-
- DoublePhotonArc(x1,y1)(r,phi1,phi2){amplitude}{windings}{sep}
-*/
-
-void DoublePhotonArc(double *args)
-{
- double arcstart = args[3],arcend = args[4];
- int num = 2*args[6]+0.5;
- linesep = args[7];
-
- if ( arcend < arcstart ) arcend += 360.;
-
- SetTransferMatrix(1,0,0,1,args[0],args[1]); /* Move to center of circle */
-
- arcend = torad*(arcend-arcstart)/num;
-
- SetTransferMatrix(COS(arcstart),SIN(arcstart)
- ,-SIN(arcstart),COS(arcstart),0,0);
-
- SaveGraphicsState;
- SetLineWidth(linesep+axolinewidth);
- PhotonArcHelp(args,arcend,num);
- RestoreGraphicsState;
-
- SaveGraphicsState;
- SetLineWidth(linesep-axolinewidth);
- SetBackgroundColor(STROKING);
- PhotonArcHelp(args,arcend,num);
- RestoreGraphicsState;
-}
-
-/*
- #] DoublePhotonArc :
- #[ DashPhotonArc : *
-
- DashPhotonArc(x1,y1)(r,phi1,phi2){amplitude}{windings}{dashsize}
-*/
-
-void DashPhotonArc(double *args)
-{
- double arcstart = args[3],arcend = args[4];
- double dashsize = args[7], dashstart;
- int num = 2*args[6]+0.5;
-
- if ( arcend < arcstart ) arcend += 360.;
-
- SetTransferMatrix(1,0,0,1,args[0],args[1]); /* Move to center of circle */
-
- arcend = torad*(arcend-arcstart)/num;
-
- SetTransferMatrix(COS(arcstart),SIN(arcstart)
- ,-SIN(arcstart),COS(arcstart),0,0);
-
- dashsize = ComputeDashPhotonArc(args,arcend,dashsize,&dashstart);
- SetDashSize(dashsize,dashstart);
- PhotonArcHelp(args,arcend,num);
-}
-
-/*
- #] DashPhotonArc :
- #[ DashDoublePhotonArc : *
-
- DashDoublePhotonArc(x1,y1)(r,phi1,phi2){amplitude}{windings}{sep}{dashsize}
-*/
-
-void DashDoublePhotonArc(double *args)
-{
- double arcstart = args[3],arcend = args[4];
- double dashsize = args[8], dashstart;
- int num = 2*args[6]+0.5;
- linesep = args[7];
-
- if ( arcend < arcstart ) arcend += 360.;
-
- SetTransferMatrix(1,0,0,1,args[0],args[1]); /* Move to center of circle */
-
- arcend = torad*(arcend-arcstart)/num;
-
- SetTransferMatrix(COS(arcstart),SIN(arcstart)
- ,-SIN(arcstart),COS(arcstart),0,0);
- dashsize = ComputeDashPhotonArc(args,arcend,dashsize,&dashstart);
-
- SaveGraphicsState;
- SetDashSize(dashsize,dashstart);
- SetLineWidth(linesep+axolinewidth);
- PhotonArcHelp(args,arcend,num);
- RestoreGraphicsState;
-
- SaveGraphicsState;
- SetDashSize(0,0);
- SetLineWidth(linesep-axolinewidth);
- SetBackgroundColor(STROKING);
- PhotonArcHelp(args,arcend,num);
- RestoreGraphicsState;
-}
-
-/*
- #] DashDoublePhotonArc :
- #[ ZigZag : *
-
- ZigZag(x1,y1)(x2,y2){amplitude}{windings}
-
- We draw each half winding as two straight lines.
- This can be done better!
-*/
-
-void ZigZag(double *args)
-{
- double dx = args[2] - args[0];
- double dy = args[3] - args[1];
- double dr = sqrt(dx*dx+dy*dy);
-
- SetTransferMatrix(1,0,0,1,args[0],args[1]);
- SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
- ZigZagHelp(args,dr);
-}
-
-/*
- #] ZigZag :
- #[ DoubleZigZag : *
-
- DoubleZigZag(x1,y1)(x2,y2){amplitude}{windings}{sep}
-
- We draw each half winding as two straight lines.
- This can be done better!
-*/
-
-void DoubleZigZag(double *args)
-{
- double dx = args[2] - args[0];
- double dy = args[3] - args[1];
- double dr = sqrt(dx*dx+dy*dy);
- linesep = args[6];
-
- SetTransferMatrix(1,0,0,1,args[0],args[1]);
- SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
-
- SaveGraphicsState;
- SetLineWidth(linesep+axolinewidth);
- ZigZagHelp(args,dr);
- RestoreGraphicsState;
-
- SaveGraphicsState;
- SetLineWidth(linesep-axolinewidth);
- SetBackgroundColor(STROKING);
- ZigZagHelp(args,dr);
- RestoreGraphicsState;
-}
-
-/*
- #] DoubleZigZag :
- #[ DashZigZag : *
-
- DashZigZag(x1,y1)(x2,y2){amplitude}{windings}{dashsize}
-
- We should recalculate the size of the dashes. Otherwise the points
- of the teeth can become messy.
-*/
-
-void DashZigZag(double *args)
-{
- double dx = args[2] - args[0];
- double dy = args[3] - args[1];
- double dr = sqrt(dx*dx+dy*dy);
- double dashsize = args[6];
- int n = args[5]*2+0.5;
- double size = dr/(n*2);
-
- SetTransferMatrix(1,0,0,1,args[0],args[1]);
- SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
-
- size = sqrt(size*size+args[4]*args[4]);
- n = size/(2*dashsize); /* number of complete dash patterns rounded down */
-/*
- Now test what is closer to dash: size/n or size/(n+1)
-*/
- if ( n == 0 ) n = 1;
- if ( fabs(size-2*dashsize*n) > fabs(size-2*dashsize*(n+1)) ) n++;
- dashsize = size/(2*n);
-
- SetDashSize(dashsize,dashsize/2);
- ZigZagHelp(args,dr);
-}
-
-/*
- #] DashZigZag :
- #[ DashDoubleZigZag : *
-
- DashDoubleZigZag(x1,y1)(x2,y2){amplitude}{windings}{sep}{dashsize}
-
- We draw each half winding as two straight lines.
- This can be done better!
-*/
-
-void DashDoubleZigZag(double *args)
-{
- double dx = args[2] - args[0];
- double dy = args[3] - args[1];
- double dr = sqrt(dx*dx+dy*dy);
- double dashsize = args[7];
- int n = args[5]*2+0.5;
- double size = dr/(n*2);
- linesep = args[6];
-
- SetTransferMatrix(1,0,0,1,args[0],args[1]);
- SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
-
- size = sqrt(size*size+args[4]*args[4]);
- n = size/(2*dashsize); /* number of complete dash patterns rounded down */
-/*
- Now test what is closer to dash: size/n or size/(n+1)
-*/
- if ( n == 0 ) n = 1;
- if ( fabs(size-2*dashsize*n) > fabs(size-2*dashsize*(n+1)) ) n++;
- dashsize = size/(2*n);
-
- SetDashSize(dashsize,dashsize/2);
-
- SaveGraphicsState;
- SetLineWidth(linesep+axolinewidth);
- ZigZagHelp(args,dr);
- RestoreGraphicsState;
-
- SetDashSize(0,0);
-
- SaveGraphicsState;
- SetLineWidth(linesep-axolinewidth);
- SetBackgroundColor(STROKING);
- ZigZagHelp(args,dr);
- RestoreGraphicsState;
-}
-
-/*
- #] DashDoubleZigZag :
- #[ ZigZagArc : *
-
- ZigZagArc(x1,y1)(r,phi1,phi2){amplitude}{windings}
-*/
-
-void ZigZagArc(double *args)
-{
- SetTransferMatrix(1,0,0,1,args[0],args[1]); /* Move to center of circle */
- ZigZagArcHelp(args);
-}
-
-/*
- #] ZigZagArc :
- #[ DoubleZigZagArc : *
-
- DoubleZigZagArc(x1,y1)(r,phi1,phi2){amplitude}{windings}{sep}
-*/
-
-void DoubleZigZagArc(double *args)
-{
- SetTransferMatrix(1,0,0,1,args[0],args[1]); /* Move to center of circle */
- linesep = args[7];
-
- SaveGraphicsState;
- SetLineWidth(linesep+axolinewidth);
- ZigZagArcHelp(args);
- RestoreGraphicsState;
-
- SaveGraphicsState;
- SetLineWidth(linesep-axolinewidth);
- SetBackgroundColor(STROKING);
- ZigZagArcHelp(args);
- RestoreGraphicsState;
-}
-
-/*
- #] DoubleZigZagArc :
- #[ DashZigZagArc : *
-
- DashZigZagArc(x1,y1)(r,phi1,phi2){amplitude}{windings}{dashsize}
-*/
-
-void DashZigZagArc(double *args)
-{
- double dashsize = args[7], dashstart;
- SetTransferMatrix(1,0,0,1,args[0],args[1]); /* Move to center of circle */
- {
- int num = 2*args[6]-0.5, numdashes;
- double amp = args[5], r = args[2], size, size2;
- double arcstart = args[3], arcend = args[4], darc;
- if ( arcend < arcstart ) arcend += 360.;
- darc = (arcend-arcstart)/(num+1);
- size = sqrt(0.5*(amp*amp+r*r-(r*r-amp*amp)*COS(darc)));
- size2 = sqrt(amp*amp+2*(amp+r)*r*(1-COS(darc/2)));
- numdashes = size/(2*dashsize);
- if ( numdashes == 0 ) numdashes = 1;
- if ( fabs(size-2*dashsize*numdashes) > fabs(size-2*dashsize*(numdashes+1)) )
- numdashes++;
- dashsize = size/(2*numdashes);
- num = size2/(2*dashsize);
- dashstart = -(size2 - 2*num*dashsize) + dashsize/2;
- if ( dashstart < 0 ) dashstart += 2*dashsize;
- }
- SetDashSize(dashsize,dashstart);
- ZigZagArcHelp(args);
-}
-
-/*
- #] DashZigZagArc :
- #[ DashDoubleZigZagArc : *
-
- DashDoubleZigZagArc(x1,y1)(r,phi1,phi2){amplitude}{windings}{sep}{dashsize}
-*/
-
-void DashDoubleZigZagArc(double *args)
-{
- double dashsize = args[8], dashstart;
- SetTransferMatrix(1,0,0,1,args[0],args[1]); /* Move to center of circle */
- linesep = args[7];
- {
- int num = 2*args[6]-0.5, numdashes;
- double amp = args[5], r = args[2], size, size2;
- double arcstart = args[3], arcend = args[4], darc;
- if ( arcend < arcstart ) arcend += 360.;
- darc = (arcend-arcstart)/(num+1);
- size = sqrt(0.5*(amp*amp+r*r-(r*r-amp*amp)*COS(darc)));
- size2 = sqrt(amp*amp+2*(amp+r)*r*(1-COS(darc/2)));
- numdashes = size/(2*dashsize);
- if ( numdashes == 0 ) numdashes = 1;
- if ( fabs(size-2*dashsize*numdashes) > fabs(size-2*dashsize*(numdashes+1)) )
- numdashes++;
- dashsize = size/(2*numdashes);
- num = size2/(2*dashsize);
- dashstart = -(size2 - 2*num*dashsize) + dashsize/2;
- if ( dashstart < 0 ) dashstart += 2*dashsize;
- }
-
- SaveGraphicsState;
- SetDashSize(dashsize,dashstart);
- SetLineWidth(linesep+axolinewidth);
- ZigZagArcHelp(args);
- RestoreGraphicsState;
-
- SaveGraphicsState;
- SetDashSize(0,0);
- SetLineWidth(linesep-axolinewidth);
- SetBackgroundColor(STROKING);
- ZigZagArcHelp(args);
- RestoreGraphicsState;
-}
-
-/*
- #] DashDoubleZigZagArc :
- #] Particle routines :
- #[ Drawing routines :
- #[ Polygon :
-*/
-
-void Polygon(double *args,int num,int type)
-{
- int i;
- MoveTo(args[0],args[1]);
- args += 2;
- for ( i = 1; i < num; i++, args += 2 ) {
- LineTo(args[0],args[1]);
- }
- if ( type == 0 ) { CloseAndStroke; }
- else if ( type == 1 ) { CloseAndFill; }
-}
-
-/*
- #] Polygon :
- #[ Curve : +
-
- Curve{(x1,y1),...,(xn,yn)}
-
- num is the number of pairs in points.
-*/
-
-void Curve(double *points,int num)
-{
- int i, ss;
- double x0,y0,x1,y1,x2,y2,x3,y3;
-
- if ( num < 2 ) return;
- if ( num == 2 ) { Line(points); return; }
-
- ss = 2*num;
-
- x1 = points[0]; y1 = points[1];
- x2 = points[2]; y2 = points[3];
- x3 = points[4]; y3 = points[5];
- x0 = 2*x1-x2;
- y0 = 2*((y3-y2)/(x3-x2)-(y2-y1)/(x2-x1))*((x2-x1)*(x2-x1)/(x3-x1))+2*y1-y2;
-
- MoveTo(x1,y1);
- DoCurve(x0,y0,x1,y1,x2,y2,x3,y3);
-
- for ( i = 0; i < ss-6; i += 2 ) {
- DoCurve(points[i ],points[i+1],points[i+2],points[i+3],
- points[i+4],points[i+5],points[i+6],points[i+7]);
- }
- if ( ss > 6 ) {
- x0 = points[ss-6]; y0 = points[ss-5];
- x1 = points[ss-4]; y1 = points[ss-3];
- x2 = points[ss-2]; y2 = points[ss-1];
- x3 = 2*x2-x1;
- y3 = 2*((y2-y1)/(x2-x1)-(y1-y0)/(x1-x0))*((x2-x1)*(x2-x1)/(x2-x0))+2*y2-y1;
-
- DoCurve(x0,y0,x1,y1,x2,y2,x3,y3);
- }
- Stroke;
-}
-
-/*
- #] Curve :
- #[ DashCurve : +
-
- DashCurve{(x1,y1),...,(xn,yn)}{dashsize}
-*/
-
-void DashCurve(double *args,int num1)
-{
- double dashsize = args[2*num1];
- if ( num1 == 2 ) {
- DashLine(args);
- }
- else if ( num1 > 2 ) {
- SetDashSize(dashsize,dashsize/2);
- Curve(args,num1);
- }
-}
-
-/*
- #] DashCurve :
- #[ LogAxis :
-
- Draws a line with logarithmic hash marks along it.
- LogAxis(x1,y1)(x2,y2)(num_logs,hashsize,offset,width)
- The line is from (x1,y1) to (x2,y2) and the marks are on the left side
- when hashsize is positive, and right when it is negative.
- num_logs is the number of orders of magnitude and offset is the number
- at which one starts at (x1,y1) (like if offset=2 we start at 2)
- When offset is 0 we start at 1. Width is the linewidth.
-*/
-
-void LogAxis(double *args)
-{
- double dx = args[2]-args[0], dy = args[3]-args[1], dr = sqrt(dx*dx+dy*dy);
- double width = args[7], size, nlogs = args[4], hashsize = args[5];
- double offset = args[6], x;
- int i, j;
- SetTransferMatrix(1,0,0,1,args[0],args[1]);
- SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
- MoveTo(0,0); LineTo(dr,0); Stroke;
-/*
- Now compute the hash marks.
-*/
- size = dr/nlogs;
- if ( offset <= 0 ) { offset = 0; }
- else { offset = mod( log10(offset), 1 ); }
-/*
- Big hash marks
-*/
- for ( i = 0; i <= nlogs+1; i++ ) {
- x = (i-offset)*size;
- if ( x >= -0.001 && x <= dr+0.001 ) {
- MoveTo(x,0);
- LineTo(x,hashsize*1.2);
- Stroke;
- }
- }
-/*
- Little hash marks
-*/
- SetLineWidth(0.6*width);
- for ( i = 0; i <= nlogs; i++ ) {
- for ( j = 2; j < 10; j++ ) {
- x = (i-offset+log10(j))*size;
- if ( x >= -0.001 && x <= dr+0.001 ) {
- MoveTo(x,0); LineTo(x,hashsize*0.8); Stroke;
- }
- }
- }
-}
-
-/*
- #] LogAxis :
- #[ LinAxis :
-
- Draws a line with linear hash marks along it.
- LinAxis(x1,y1)(x2,y2)(num_decs,per_dec,hashsize,offset,width)
- The line is from (x1,y1) to (x2,y2) and the marks are on the left side
- when hashsize is positive, and right when it is negative.
- num_decs is the number of accented marks, per_dec the number of
- divisions between them and offset is the number
- at which one starts at (x1,y1) (like if offset=2 we start at the second
- small mark) Width is the linewidth.
-*/
-
-void LinAxis(double *args)
-{
- double width = args[8], hashsize = args[6], x;
- double dx = args[2]-args[0], dy = args[3]-args[1], dr = sqrt(dx*dx+dy*dy);
- double num_decs = args[4], per_dec = args[5], size, size2;
- double offset = args[7];
- int i, j, numperdec = per_dec+0.5;
- SetTransferMatrix(1,0,0,1,args[0],args[1]);
- SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
- MoveTo(0,0); LineTo(dr,0); Stroke;
- size = dr/num_decs;
- if ( numperdec > 1 ) { size2 = size / numperdec; }
- else { size2 = size; numperdec = 1; }
- offset = mod( offset, numperdec );
-/*
- In geometric calculations of positions of hash marks, note that offset can
- be between 0 and numperdec, and that within rounding error, numperdec is
- allowed. Also allow for positions of hash marks that if calculated exactly
- are in range, but because of rounding error are slightly outside.
-*/
-/*
- Big hash marks:
-*/
- for ( i = 0; i <= num_decs+1; i++ ) {
- x = i*size - offset*size2;
- if ( ( x > -0.001) && ( x < dr+0.001 ) ) {
- MoveTo(x,0); LineTo(x,hashsize*1.2); Stroke;
- }
- }
-/*
- Little hash marks.
-*/
- SetLineWidth(0.6*width);
- for ( i = 0; i <= num_decs; i++ ) {
- for ( j = 1; j < numperdec; j++ ) {
- x = i*size + (j - offset)*size2;
- if ( ( x > -0.001) && ( x < dr+0.001 ) ) {
- MoveTo(x,0); LineTo(x,hashsize*0.8); Stroke;
- }
- }
- }
-}
-
-/*
- #] LinAxis :
- #[ BezierCurve :
-
- Draws a Bezier curve. Starts at (x1,y1).
- The control points are (x2,y2),(x3,y3),(x4,y4)
-*/
-
-void BezierCurve(double *args)
-{
- MoveTo(args[0],args[1]);
- Bezier(args[2],args[3],args[4],args[5],args[6],args[7]);
- Stroke;
- if ( witharrow ) BezierArrow(args);
-}
-
-/*
- #] BezierCurve :
- #[ DoubleBezier :
-
- Draws a Bezier curve. Starts at (x1,y1).
- The control points are (x2,y2),(x3,y3),(x4,y4)
-*/
-
-void DoubleBezier(double *args)
-{
- linesep = args[8];
- SaveGraphicsState;
- SetLineWidth(linesep+axolinewidth);
- MoveTo(args[0],args[1]);
- Bezier(args[2],args[3],args[4],args[5],args[6],args[7]);
- Stroke;
- RestoreGraphicsState;
- SaveGraphicsState;
- SetLineWidth(linesep-axolinewidth);
- SetBackgroundColor(STROKING);
- MoveTo(args[0],args[1]);
- Bezier(args[2],args[3],args[4],args[5],args[6],args[7]);
- Stroke;
- RestoreGraphicsState;
- if ( witharrow ) BezierArrow(args);
-}
-
-/*
- #] DoubleBezier :
- #[ DashBezier :
-
- Draws a Bezier curve. Starts at (x1,y1).
- The control points are (x2,y2),(x3,y3),(x4,y4)
-*/
-
-void DashBezier(double *args)
-{
- int numdashes;
- double size, dashsize = args[8];
- size = LengthBezier(args[2]-args[0],args[3]-args[1]
- ,args[4]-args[0],args[5]-args[1],args[6]-args[0],args[7]-args[1],1.0);
-
- numdashes = size/(2*dashsize);
- if ( numdashes == 0 ) numdashes = 1;
- if ( fabs(size-2*dashsize*numdashes) > fabs(size-2*dashsize*(numdashes+1)) )
- numdashes++;
- dashsize = (size/(2*numdashes));
-
- SetDashSize(dashsize,dashsize/2);
- MoveTo(args[0],args[1]);
- Bezier(args[2],args[3],args[4],args[5],args[6],args[7]);
- Stroke;
- if ( witharrow ) BezierArrow(args);
-}
-
-/*
- #] DashBezier :
- #[ DashDoubleBezier :
-
- Draws a Bezier curve. Starts at (x1,y1).
- The control points are (x2,y2),(x3,y3),(x4,y4)
-*/
-
-void DashDoubleBezier(double *args)
-{
- int numdashes;
- double size, dashsize = args[9];
- size = LengthBezier(args[2]-args[0],args[3]-args[1]
- ,args[4]-args[0],args[5]-args[1],args[6]-args[0],args[7]-args[1],1.0);
-
- numdashes = size/(2*dashsize);
- if ( numdashes == 0 ) numdashes = 1;
- if ( fabs(size-2*dashsize*numdashes) > fabs(size-2*dashsize*(numdashes+1)) )
- numdashes++;
- dashsize = (size/(2*numdashes));
-
- SetDashSize(dashsize,dashsize/2);
- linesep = args[8];
- SaveGraphicsState;
- SetLineWidth(linesep+axolinewidth);
- MoveTo(args[0],args[1]);
- Bezier(args[2],args[3],args[4],args[5],args[6],args[7]);
- Stroke;
- RestoreGraphicsState;
- SaveGraphicsState;
- SetLineWidth(linesep-axolinewidth);
- SetBackgroundColor(STROKING);
- MoveTo(args[0],args[1]);
- Bezier(args[2],args[3],args[4],args[5],args[6],args[7]);
- Stroke;
- RestoreGraphicsState;
- if ( witharrow ) BezierArrow(args);
-}
-
-/*
- #] DashDoubleBezier :
- #] Drawing routines :
- #[ Wrapper routines :
- #[ AxoArc :
-
- Draws arc centered at (#1,#2), radius #3, starting and ending
- angles #4, #5.
- Double, dashing, arrow, flip, clockwise
-*/
-
-void AxoArc(double *args)
-{
- double dashsize = args[6];
- linesep = args[5];
- GetArrow(args+7);
- if ( args[16] ) { /* If clockwise: reverse the angles and the arrow */
- double e;
- clockwise = 1; /* In principle not needed */
- flip = 1-flip;
- arrow.where = 1-arrow.where;
- e = args[3]; args[3] = args[4]; args[4] = e;
- }
-
- if ( witharrow ) {
- if ( arrow.where > 1 ) arrow.where = 1;
- if ( arrow.where < 0 ) arrow.where = 0;
- if ( dashsize > 0 ) {
- if ( linesep > 0 ) {
- DashArrowDoubleArc(args);
- }
- else {
- args[5] = args[6];
- DashArrowArc(args);
- }
- }
- else {
- if ( linesep > 0 ) {
- ArrowDoubleArc(args);
- }
- else {
- ArrowArc(args);
- }
- }
- }
- else {
- if ( dashsize > 0 ) {
- if ( linesep > 0 ) {
- DashDoubleArc(args);
- }
- else {
- args[5] = args[6];
- DashCArc(args);
- }
- }
- else {
- if ( linesep > 0 ) {
- DoubleArc(args);
- }
- else {
- CArc(args);
- }
- }
- }
-}
-
-/*
- #] AxoArc :
- #[ AxoBezier :
-*/
-
-void AxoBezier(double *args)
-{
- linesep = args[8];
- GetArrow(args+10);
- if ( witharrow ) {
- if ( arrow.where > 1 ) arrow.where = 1;
- if ( arrow.where < 0 ) arrow.where = 0;
- }
- if ( args[9] ) { /* dashes */
- if ( args[8] ) { /* double */
- DashDoubleBezier(args);
- }
- else {
- args[8] = args[9];
- DashBezier(args);
- }
- }
- else {
- if ( args[8] ) { /* double */
- DoubleBezier(args);
- }
- else {
- BezierCurve(args); /* The name Bezier was already taken */
- }
- }
-}
-
-/*
- #] AxoBezier :
- #[ AxoGluon :
-*/
-
-void AxoGluon(double *args)
-{
- SetLineWidth(axolinewidth + args[6]);
- if ( args[7] ) { /* dashes */
- args[6] = args[7];
- DashGluon(args);
- }
- else {
- Gluon(args);
- }
-}
-
-/*
- #] AxoGluon :
- #[ AxoGluonArc :
-*/
-
-void AxoGluonArc(double *args)
-{
- SetLineWidth(axolinewidth + args[7]);
- if ( args[9] ) { /* Clockwise */
- double a = args[3]; args[3] = args[4]; args[4] = a;
- }
- if ( args[8] ) { /* Dashes */
- args[7] = args[8];
- DashGluonArc(args);
- }
- else {
- GluonArc(args);
- }
-}
-
-/*
- #] AxoGluonArc :
- #[ AxoGluonCirc :
-*/
-
-void AxoGluonCirc(double *args)
-{
- SetLineWidth(axolinewidth + args[6]);
- if ( args[7] ) { /* dashes */
- args[6] = args[7];
- DashGluonCirc(args);
- }
- else {
- GluonCirc(args);
- }
-}
-
-/*
- #] AxoGluonCirc :
- #[ AxoLine :
-
- AxoLine(x1,y1)(x2,y2){sep}{dashsize}{stroke width length inset}{where}
-
- Generic switchyard to the various routines for compatibility
- with Jaxodraw and axodraw4j
-
- Note: because the specific routines can be called either in the
- direct way or by means of the generic routine, they have to know
- what arrow to use. This is regulated by arrow.type. 0=old arrows.
-*/
-
-void AxoLine(double *args)
-{
- linesep = args[4];
- GetArrow(args+6);
- if ( witharrow ) {
- if ( arrow.where > 1 ) arrow.where = 1;
- if ( arrow.where < 0 ) arrow.where = 0;
- if ( args[5] == 0 ) {
- if ( linesep == 0 ) ArrowLine(args);
- else { ArrowDoubleLine(args); }
- }
- else {
- if ( linesep == 0 ) {
- args[4] = args[5];
- DashArrowLine(args);
- }
- else { DashArrowDoubleLine(args); }
- }
- }
- else {
- if ( args[5] == 0 ) { /* No dashing */
- if ( linesep == 0 ) Line(args);
- else DoubleLine(args);
- }
- else {
- if ( linesep == 0 ) {
- args[4] = args[5]; DashLine(args);
- }
- else DashDoubleLine(args);
- }
- }
-}
-
-/*
- #] AxoLine :
- #[ AxoPhoton :
-*/
-
-void AxoPhoton(double *args)
-{
- if ( args[7] ) { /* dashes */
- if ( args[6] ) { /* double */
- DashDoublePhoton(args);
- }
- else {
- args[6] = args[7];
- DashPhoton(args);
- }
- }
- else {
- if ( args[6] ) { /* double */
- DoublePhoton(args);
- }
- else {
- Photon(args);
- }
- }
-}
-
-/*
- #] AxoPhoton :
- #[ AxoPhotonArc :
-*/
-
-void AxoPhotonArc(double *args)
-{
- if ( args[9] ) { /* Clockwise */
- int num = 2*args[6]+0.5;
- double a = args[3]; args[3] = args[4]; args[4] = a;
- if ( ( num & 1 ) == 0 ) args[5] = -args[5];
- }
- if ( args[8] ) { /* dash */
- if ( args[7] ) { /* double */
- DashDoublePhotonArc(args);
- }
- else {
- args[7] = args[8];
- DashPhotonArc(args);
- }
- }
- else {
- if ( args[7] ) { /* double */
- DoublePhotonArc(args);
- }
- else {
- PhotonArc(args);
- }
- }
-}
-
-/*
- #] AxoPhotonArc :
- #[ AxoZigZag :
-*/
-
-void AxoZigZag(double *args)
-{
- if ( args[7] ) { /* dashes */
- if ( args[6] ) { /* double */
- DashDoubleZigZag(args);
- }
- else {
- args[6] = args[7];
- DashZigZag(args);
- }
- }
- else {
- if ( args[6] ) { /* double */
- DoubleZigZag(args);
- }
- else {
- ZigZag(args);
- }
- }
-}
-
-/*
- #] AxoZigZag :
- #[ AxoZigZagArc :
-*/
-
-void AxoZigZagArc(double *args)
-{
- if ( args[9] ) { /* Clockwise */
- int num = 2*args[6]+0.5;
- double a = args[3]; args[3] = args[4]; args[4] = a;
- if ( ( num & 1 ) == 0 ) args[5] = -args[5];
- }
- if ( args[8] ) { /* dash */
- if ( args[7] ) { /* double */
- DashDoubleZigZagArc(args);
- }
- else {
- args[7] = args[8];
- DashZigZagArc(args);
- }
- }
- else {
- if ( args[7] ) { /* double */
- DoubleZigZagArc(args);
- }
- else {
- ZigZagArc(args);
- }
- }
-}
-
-/*
- #] AxoZigZagArc :
- #] Wrapper routines :
- #[ Various routines :
- #[ Rotate : +
-
- Rotate: x y angle hmode vmode textwidth textheight
- Note, the textwidth/textheight have been scaled already;
-*/
-
-void Rotate(double *args)
-{
- double textheight = args[6]*args[4]/2/65536.;
- double textwidth = args[5]*args[3]/2/65536.;
- SetTransferMatrix(1,0,0,1,args[0],args[1]);
- SetTransferMatrix(COS(args[2]),SIN(args[2]),-SIN(args[2]),COS(args[2]),0,0);
- SetTransferMatrix(1,0,0,1,-textwidth,textheight);
-}
-
-/*
- #] Rotate :
- #[ Grid :
-
- Makes a coordinate grid in the indicated color.
- (x0,y0)(incx,incy)(nx,ny){color}{linewidth}
-*/
-
-void Grid(double *args)
-{
- int i, nx = args[4]+0.01, ny = args[5]+0.01;
- double maxx = args[2]*args[4];
- double maxy = args[3]*args[5];
- SetTransferMatrix(1,0,0,1,args[0],args[1]);
- for ( i = 0; i <= nx; i++ ) {
- MoveTo(i*args[2],0);
- LineTo(i*args[2],maxy);
- Stroke;
- }
- for ( i = 0; i <= ny; i++ ) {
- MoveTo(0,i*args[3]);
- LineTo(maxx,i*args[3]);
- Stroke;
- }
-}
-
-/*
- #] Grid :
- #] Various routines :
- #] routines :
-*/
diff --git a/Build/source/utils/axodraw2/axodraw2-src/axohelp.test b/Build/source/utils/axodraw2/axodraw2-src/axohelp.test
deleted file mode 100755
index c54130f355b..00000000000
--- a/Build/source/utils/axodraw2/axodraw2-src/axohelp.test
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/sh -vx
-
-# Copyright (C) 2018 John Collins (jcc8 at psu dot edu)
-# You may freely use, modify and/or distribute this file.
-#
-# This test is a rudimentary test of axohelp in a form suitable for
-# use in TeXLive builds.
-
-# Prevent errors from sed if it encounters non-UTF-8 strings in utf-8 locale
-LC_ALL=C; export LC_ALL; LANGUAGE=C; export LANGUAGE
-
-if test -z "$test_srcdir"; then
- # If not set, then we are not running from `make check'.
- test_srcdir=`echo "$0" | sed -e 's,/[^\\/]*$,,'` # == dirname $0
- test "$test_srcdir" = "$0" && test_srcdir=. # in case subst failed
-fi
-echo ==================\"$test_srcdir\"=====================
-
-echo Copying source files if necessary
-test "$test_srcdir" = . \
- || cp "$test_srcdir"/test.ax1 "$test_srcdir"/test.ax2-std . \
- || exit 1
-
-echo Running axohelp on test document ...
-./axohelp test \
- || { echo axohelp failed to run correctly ; exit 1; }
-
-echo Checking result file test.ax2, after converting line-endings
-tr -d '\r' < test.ax2 > tmp.ax2
-tr -d '\r' < test.ax2-std > tmp.ax2-std
-
-diff tmp.ax2-std tmp.ax2 \
- || { echo The .ax2 file created by axohelp was incorrect; exit 1; }
-
-echo Success, so I will remove generated files test.ax2 and temporaries
-rm test.ax2 tmp.ax2 tmp.ax2-std
-
diff --git a/Build/source/utils/axodraw2/axodraw2-src/configure.ac b/Build/source/utils/axodraw2/axodraw2-src/configure.ac
deleted file mode 100644
index 453dea20232..00000000000
--- a/Build/source/utils/axodraw2/axodraw2-src/configure.ac
+++ /dev/null
@@ -1,10 +0,0 @@
-# -*- Autoconf -*-
-# Process this file with autoconf to produce a configure script.
-
-AC_INIT([axohelp], [1.1], [jcc8@psu.edu])
-AM_INIT_AUTOMAKE([no-define foreign])
-AC_CHECK_LIB([m], [sqrt],,
- AC_MSG_ERROR([*** Please install libm on your system ***]))
-AC_PROG_CC
-AC_CONFIG_FILES([Makefile])
-AC_OUTPUT
diff --git a/Build/source/utils/axodraw2/axodraw2-src/example.tex b/Build/source/utils/axodraw2/axodraw2-src/example.tex
deleted file mode 100644
index c2b6bf8779b..00000000000
--- a/Build/source/utils/axodraw2/axodraw2-src/example.tex
+++ /dev/null
@@ -1,18 +0,0 @@
-\documentclass{article}
-\usepackage{axodraw2}
-\begin{document}
-Example of Feynman graph made by axodraw2:
-\begin{center}
- \begin{axopicture}(200,110)
- \SetColor{Red}
- \Arc[arrow](100,50)(40,0,180)
- \Text(100,100)[]{$\alpha P_1 + \beta P_2 + k_\perp$}
- \SetColor{Black}
- \Arc[arrow](100,50)(40,180,360)
- \Gluon(0,50)(60,50){5}{4}
- \Vertex(60,50){2}
- \Gluon(140,50)(200,50){5}{4}
- \Vertex(140,50){2}
- \end{axopicture}
-\end{center}
-\end{document}
diff --git a/Build/source/utils/axodraw2/axodraw2-src/test-big.ax1 b/Build/source/utils/axodraw2/axodraw2-src/test-big.ax1
deleted file mode 100644
index e35af1a45c3..00000000000
--- a/Build/source/utils/axodraw2/axodraw2-src/test-big.ax1
+++ /dev/null
@@ -1,494 +0,0 @@
-[1] AxoLine 0 2 35 2 2.5 0 0 0 0 0 0 0 0 0 0 1;
-[2] AxoLine 0 2 30 2 0 0 0 0 0 0.2 1 1.25 0.8 1 0 1;
-[3] AxoArc 100 50 40 0 180 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0 0.5;
-[4] AxoArc 100 50 40 180 360 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0 0.5;
-[5] AxoGluon 0 50 60 50 5 4 0 0 0.5;
-[6] Vertex 60 50 2 0.5;
-[7] AxoGluon 140 50 200 50 5 4 0 0 0.5;
-[8] Vertex 140 50 2 0.5;
-[9] Grid 0 0 10 10 9 14 0.5;
-[10] Grid 0 0 10 10 9 4 0.5;
-[11] AxoLine 10 10 80 30 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[12] Grid 0 0 10 10 9 8 0.5;
-[13] AxoLine 10 70 80 70 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0.5;
-[14] AxoLine 10 50 80 50 0 3 0 0 0 0 0 0 0 0 0 0.5;
-[15] AxoLine 10 30 80 30 2 0 0 0 0 0.2 1 1.25 0.5 1 0 0.5;
-[16] AxoLine 10 10 80 10 2 3 0 0 0 0.2 1 1.25 0.5 1 0 0.5;
-[17] Grid 0 0 10 10 9 4 0.5;
-[18] AxoLine 10 25 80 25 1 0 0 0 0 0 0 0 0 0 0 0.5;
-[19] AxoLine 10 15 80 15 2 0 0 0 0 0 0 0 0 0 0 0.5;
-[20] Grid 0 0 10 10 9 4 0.5;
-[21] AxoLine 10 25 80 25 0 2 0 0 0 0 0 0 0 0 0 0.5;
-[22] AxoLine 10 15 80 15 0 6 0 0 0 0 0 0 0 0 0 0.5;
-[23] Grid 0 0 10 10 9 4 0.5;
-[24] AxoLine 10 25 80 25 1.5 2 0 0 0 0 0 0 0 0 0 0.5;
-[25] AxoLine 10 15 80 15 1.5 6 0 0 0 0 0 0 0 0 0 0.5;
-[26] Grid 0 0 10 10 9 5 0.5;
-[27] AxoArc 45 0 40 20 160 0 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[28] Grid 0 0 10 10 8 8 0.5;
-[29] AxoArc 40 40 30 20 160 0 3 0 0 0 0.2 1 1.25 0.5 1 0 1 0.5;
-[30] Grid 0 0 10 10 9 5 0.5;
-[31] AxoArc 45 0 40 20 160 2 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[32] Grid 0 0 10 10 9 5 0.5;
-[33] AxoArc 45 0 40 20 160 0 4 0 0 0 0 0 0 0 0 0 0 0.5;
-[34] Grid 0 0 10 10 9 5 0.5;
-[35] AxoArc 45 0 40 20 160 2 4 0 0 0 0 0 0 0 0 0 0 0.5;
-[36] Grid 0 0 10 10 6 6 0.5;
-[37] AxoBezier 10 10 75 30 65 40 20 50 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[38] Grid 0 0 10 10 6 6 0.5;
-[39] AxoBezier 10 10 75 30 65 40 20 50 2 0 0 0 0 0.2 1 1.25 1 1 0 0.5;
-[40] Grid 0 0 10 10 6 6 0.5;
-[41] AxoBezier 10 10 75 30 65 40 20 50 1.5 0 0 0 0 0 0 0 0 0 0 0.5;
-[42] Grid 0 0 10 10 6 6 0.5;
-[43] AxoBezier 10 10 75 30 65 40 20 50 0 4 0 0 0 0 0 0 0 0 0 0.5;
-[44] Grid 0 0 10 10 6 6 0.5;
-[45] AxoBezier 10 10 75 30 65 40 20 50 1.5 4 0 0 0 0 0 0 0 0 0 0.5;
-[46] Grid 0 0 10 10 6 6 0.5;
-[47] Curve "(5,55)(10,32.5)(15,23)(20,18)(25,14.65)(30,12.3)(40,9.5)(55,7)" 0.5;
-[48] Grid 0 0 10 10 6 6 0.5;
-[49] DashCurve "(5,55)(10,32.5)(15,23)(20,18)(25,14.65)(30,12.3)(40,9.5)(55,7)" 4 0.5;
-[50] Grid 0 0 10 10 9 4 0.5;
-[51] AxoGluon 10 20 80 20 5 7 0 0 0.5;
-[52] Grid 0 0 10 10 9 4 0.5;
-[53] AxoGluon 10 20 80 20 4 7 0.5 1 2;
-[54] AxoGluon 10 20 80 20 4 7 -0.5 0 2;
-[55] Grid 0 0 10 10 9 4 0.5;
-[56] AxoGluon 10 20 80 20 5 7 0.5 0 1.3;
-[57] AxoGluon 10 20 80 20 5 7 -0.5 0 1.3;
-[58] Grid 0 0 10 10 9 4 0.5;
-[59] AxoGluon 10 20 80 20 5 7 0 1 0.5;
-[60] Grid 0 0 10 10 9 4 0.5;
-[61] AxoGluon 10 20 80 20 5 7 0.5 1 1.3;
-[62] AxoGluon 10 20 80 20 5 7 -0.5 0 1.3;
-[63] Grid 0 0 10 10 9 5 0.5;
-[64] AxoGluonArc 45 0 40 20 160 5 8 0 0 0 0.5;
-[65] Grid 0 0 10 10 9 5 0.5;
-[66] AxoGluonArc 45 0 40 20 160 5 8 0.5 0 0 1.3;
-[67] AxoGluonArc 45 0 40 20 160 5 8 -0.5 0 0 1.3;
-[68] Grid 0 0 10 10 9 5 0.5;
-[69] AxoGluonArc 45 0 40 20 160 5 8 0 1.5 0 0.5;
-[70] Grid 0 0 10 10 9 5 0.5;
-[71] AxoGluonArc 45 0 40 20 160 5 8 0.5 1.5 0 1.3;
-[72] AxoGluonArc 45 0 40 20 160 5 8 -0.5 0 0 1.3;
-[73] Grid 0 0 10 10 8 8 0.5;
-[74] AxoGluonCirc 40 40 30 0 5 16 0 0 0.5;
-[75] Grid 0 0 10 10 8 8 0.5;
-[76] AxoGluonCirc 40 40 30 0 5 16 0.5 0 1.3;
-[77] AxoGluonCirc 40 40 30 0 5 16 -0.5 0 1.3;
-[78] Grid 0 0 10 10 8 8 0.5;
-[79] AxoGluonCirc 40 40 30 0 5 16 0 1.5 0.5;
-[80] Grid 0 0 10 10 8 8 0.5;
-[81] AxoGluonCirc 40 40 30 0 5 16 0.5 1.5 1.3;
-[82] AxoGluonCirc 40 40 30 0 5 16 -0.5 0 1.3;
-[83] Grid 0 0 10 10 9 4 0.5;
-[84] AxoPhoton 10 20 80 20 5 7 0 0 0.5;
-[85] Grid 0 0 10 10 9 4 0.5;
-[86] AxoPhoton 10 20 80 20 5 7 1.3 0 0.5;
-[87] Grid 0 0 10 10 9 4 0.5;
-[88] AxoPhoton 10 20 80 20 5 7 0 1 0.5;
-[89] Grid 0 0 10 10 9 4 0.5;
-[90] AxoPhoton 10 20 80 20 5 7 1.3 1 0.5;
-[91] Grid 0 0 10 10 9 5 0.5;
-[92] AxoPhotonArc 45 0 40 20 160 5 8 0 0 0 0.5;
-[93] Grid 0 0 10 10 9 5 0.5;
-[94] AxoPhotonArc 45 0 40 20 160 5 8 1.3 0 0 0.5;
-[95] Grid 0 0 10 10 9 5 0.5;
-[96] AxoPhotonArc 45 0 40 20 160 5 8 0 1.5 0 0.5;
-[97] Grid 0 0 10 10 9 5 0.5;
-[98] AxoPhotonArc 45 0 40 20 160 5 8 1.3 1.5 0 0.5;
-[99] Grid 0 0 10 10 9 4 0.5;
-[100] AxoZigZag 10 20 80 20 5 7.5 0 0 0.5;
-[101] Grid 0 0 10 10 9 4 0.5;
-[102] AxoZigZag 10 20 80 20 5 7 1.5 0 0.5;
-[103] Grid 0 0 10 10 9 4 0.5;
-[104] AxoZigZag 10 20 80 20 5 7 1.3 0 0.5;
-[105] Grid 0 0 10 10 9 4 0.5;
-[106] AxoZigZag 10 20 80 20 5 7 0 1 0.5;
-[107] Grid 0 0 10 10 9 4 0.5;
-[108] AxoZigZag 10 20 80 20 5 7 1.3 1 0.5;
-[109] Grid 0 0 10 10 9 5 0.5;
-[110] AxoZigZagArc 45 0 40 20 160 5 8 0 0 0 0.5;
-[111] Grid 0 0 10 10 9 5 0.5;
-[112] AxoZigZagArc 45 0 40 20 160 5 8 1.3 0 0 0.5;
-[113] Grid 0 0 10 10 9 5 0.5;
-[114] AxoZigZagArc 45 0 40 20 160 5 8 0 1.5 0 0.5;
-[115] Grid 0 0 10 10 9 5 0.5;
-[116] AxoZigZagArc 45 0 40 20 160 5 8 1.3 1.5 0 0.5;
-[117] Grid 0 0 10 10 8 5 0.5;
-[118] AxoLine 10 10 70 10 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[119] AxoPhoton 40 10 40 40 4 3 0 0 0.5;
-[120] Vertex 40 10 1.5 0.5;
-[121] Grid 0 0 10 10 6 6 0.5;
-[122] AxoLine 0 0 60 60 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[123] ECirc 30 30 20 0.5;
-[124] Grid 0 0 10 10 6 6 0.5;
-[125] AxoLine 0 0 60 60 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[126] Vertex 30 30 20 0.5;
-[127] ECirc 30 30 20 0.5;
-[128] AxoLine 60 0 0 60 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[129] Grid 0 0 10 10 6 6 0.5;
-[130] AxoLine 0 0 60 60 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[131] Vertex 30 30 20 0.5;
-[132] ECirc 30 30 20 0.5;
-[133] AxoLine 60 0 0 60 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[134] Grid 0 0 10 10 6 6 0.5;
-[135] AxoLine 0 0 60 60 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[136] Vertex 30 30 20 0.5;
-[137] ECirc 30 30 20 0.5;
-[138] AxoLine 60 0 0 60 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[139] Grid 0 0 10 10 8 11 0.5;
-[140] Oval 40 80 20 30 0 0.5;
-[141] Oval 40 30 20 30 30 0.5;
-[142] Grid 0 0 10 10 8 6 0.5;
-[143] FOval 40 30 20 30 30 0.5;
-[144] Grid 0 0 10 10 8 6 0.5;
-[145] AxoLine 0 0 80 60 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[146] FOval 40 30 20 30 0 0.5;
-[147] Oval 40 30 20 30 0 0.5;
-[148] AxoLine 80 0 0 60 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[149] Grid 0 0 10 10 8 6 0.5;
-[150] AxoLine 0 0 80 60 0 0 0 0 0 0 0 0 0 0 0 1;
-[151] FOval 40 30 20 30 20 1;
-[152] Oval 40 30 20 30 20 1;
-[153] AxoLine 80 0 0 60 0 0 0 0 0 0 0 0 0 0 0 1;
-[154] Grid 0 0 10 10 6 5 0.5;
-[155] EBox 10 10 50 40 0.5;
-[156] Grid 0 0 10 10 6 5 0.5;
-[157] FBox 10 10 50 40 0.5;
-[158] Grid 0 0 10 10 6 5 0.5;
-[159] FBox 10 10 50 40 0.5;
-[160] EBox 10 10 50 40 0.5;
-[161] Grid 0 0 10 10 6 5 0.5;
-[162] FBox 10 10 50 40 0.5;
-[163] EBox 10 10 50 40 0.5;
-[164] Grid 0 0 10 10 6 5 0.5;
-[165] FBox 10 10 50 40 1.5;
-[166] EBox 10 10 50 40 1.5;
-[167] Grid 0 0 10 10 6 5 0.5;
-[168] Boxc 30 25 40 30 0.5;
-[169] Grid 0 0 10 10 6 5 0.5;
-[170] FBoxc 30 25 40 30 0.5;
-[171] Boxc 30 25 40 30 0.5;
-[172] Grid 0 0 10 10 6 5 0.5;
-[173] FBoxc 30 25 40 30 0.5;
-[174] Boxc 30 25 40 30 0.5;
-[175] Grid 0 0 10 10 6 5 0.5;
-[176] FBoxc 30 25 40 30 1.5;
-[177] Boxc 30 25 40 30 1.5;
-[178] Grid 0 0 10 10 6 5 0.5;
-[179] Boxc 0 0 40 30 0.5;
-[180] Grid 0 0 10 10 6 5 0.5;
-[181] FBoxc 0 0 40 30 0.5;
-[182] Grid 0 0 10 10 6 5 0.5;
-[183] ETri 10 20 50 10 40 40 0.5;
-[184] Grid 0 0 10 10 6 5 0.5;
-[185] FTri 10 20 50 10 40 40 0.5;
-[186] ETri 10 20 50 10 40 40 0.5;
-[187] Grid 0 0 10 10 6 5 0.5;
-[188] FTri 10 20 50 10 40 40 0.5;
-[189] ETri 10 20 50 10 40 40 0.5;
-[190] Grid 0 0 10 10 6 5 0.5;
-[191] FTri 10 20 50 10 40 40 1;
-[192] ETri 10 20 50 10 40 40 1;
-[193] Grid 0 0 10 10 6 5 0.5;
-[194] Polygon "(10,20)(20,10)(40,20)(50,10)(45,40)(15,30)" 0.5;
-[195] Grid 0 0 10 10 6 5 0.5;
-[196] FilledPolygon "(10,20)(20,10)(40,20)(50,10)(45,40)(15,30)" 0.5;
-[197] Grid 0 0 10 10 10 5 0.5;
-[198] LinAxis 10 30 90 30 4 5 5 0 1;
-[199] LinAxis 10 10 90 10 4 5 5 2 1;
-[200] Grid 0 0 10 10 10 4 0.5;
-[201] LogAxis 0 30 100 30 4 3 0 1;
-[202] LogAxis 0 10 100 10 4 3 3 1;
-[203] Grid 0 0 10 10 9 9 0.5;
-[204] Vertex 10 10 1.5 0.5;
-[205] Vertex 45 45 1.5 0.5;
-[206] Vertex 80 80 1.5 0.5;
-[207] Grid 0 0 10 10 9 9 0.5;
-[208] Vertex 10 10 1.5 0.5;
-[209] Vertex 45 45 1.5 0.5;
-[210] Vertex 80 10 1.5 0.5;
-[211] Grid 0 0 10 10 9 9 0.5;
-[212] Vertex 10 10 1.5 0.5;
-[213] Vertex 45 45 1.5 0.5;
-[214] Vertex 80 80 1.5 0.5;
-[215] Grid 0 0 10 10 10 9 0.5;
-[216] AxoLine 30 65 60 25 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0.5;
-[217] FBoxc 0 0 54.599 15.89 0.5;
-[218] Boxc 0 0 54.599 15.89 0.5;
-[219] FBoxc 0 0 50.559 17.421 0.5;
-[220] Boxc 0 0 50.559 17.421 0.5;
-[221] Grid 0 0 10 10 10 9 0.5;
-[222] AxoLine 30 65 60 25 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0.5;
-[223] FBoxc 0 0 46.799 15.513 0.5;
-[224] Boxc 0 0 46.799 15.513 0.5;
-[225] FBoxc 0 0 71.0 5.444 0.5;
-[226] Boxc 0 0 71.0 5.444 0.5;
-[227] Grid 0 0 10 10 9 9 0.5;
-[228] AxoLine 30 65 60 25 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0.5;
-[229] FBoxc 0 0 53.339 15.424 0.5;
-[230] Boxc 0 0 53.339 15.424 0.5;
-[231] FBoxc 0 0 47.599 12.975 0.5;
-[232] Boxc 0 0 47.599 12.975 0.5;
-[233] Grid 0 0 10 10 9 9 0.5;
-[234] AxoLine 30 65 60 25 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0.5;
-[235] FBoxc 0 0 45.359 34.223 0.5;
-[236] Boxc 0 0 45.359 34.223 0.5;
-[237] FBoxc 0 0 54.176 38.704 0.5;
-[238] Boxc 0 0 54.176 38.704 0.5;
-[239] Grid 0 0 10 10 10 9 0.5;
-[240] AxoLine 30 65 60 25 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0.5;
-[241] FBoxc 0 0 46.931 28.548 0.5;
-[242] Boxc 0 0 46.931 28.548 0.5;
-[243] FBoxc 0 0 63.799 27.10 0.5;
-[244] Boxc 0 0 63.799 27.10 0.5;
-[245] Grid 0 0 10 10 9 9 0.5;
-[246] AxoLine 30 65 60 25 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0.5;
-[247] FBoxc 0 0 49.539 25.840 0.5;
-[248] Boxc 0 0 49.539 25.840 0.5;
-[249] FBoxc 0 0 55.999 31.745 0.5;
-[250] Boxc 0 0 55.999 31.745 0.5;
-[251] Grid 0 0 10 10 12 9 0.5;
-[252] FBoxc 0 0 143.37 62.444 0.5;
-[253] Boxc 0 0 143.37 62.444 0.5;
-[254] Grid 0 0 10 10 13 9 0.5;
-[255] FBoxc 0 0 128.811 61.543 0.5;
-[256] Boxc 0 0 128.811 61.543 0.5;
-[257] Grid 0 0 10 10 9 8 0.5;
-[258] AxoGluon 10 70 80 70 3 5 0 0 0.5;
-[259] AxoGluon 10 50 80 50 3 9 0 0 0.5;
-[260] AxoGluon 10 30 80 30 5 7 0 0 0.5;
-[261] AxoGluon 10 10 80 10 8 9 0 0 0.5;
-[262] Grid 0 0 10 10 9 8 0.5;
-[263] AxoGluon 10 70 80 70 5 7 0.5 0 1.2;
-[264] AxoGluon 10 70 80 70 5 7 -0.5 0 1.2;
-[265] AxoGluon 80 50 10 50 5 7 0.5 0 1.2;
-[266] AxoGluon 80 50 10 50 5 7 -0.5 0 1.2;
-[267] AxoGluon 10 30 80 30 -5 7 0.5 0 1.2;
-[268] AxoGluon 10 30 80 30 -5 7 -0.5 0 1.2;
-[269] AxoGluon 80 10 10 10 -5 7 0.5 0 1.2;
-[270] AxoGluon 80 10 10 10 -5 7 -0.5 0 1.2;
-[271] Grid 0 0 10 10 9 7 0.5;
-[272] AxoGluonArc 45 20 40 20 160 5 8 0 0 0 0.5;
-[273] AxoGluonArc 45 0 40 20 160 -5 8 0 0 0 0.5;
-[274] Grid 0 0 10 10 8 8 0.5;
-[275] AxoGluonCirc 40 40 30 0 5 16 0 0 0.5;
-[276] Grid 0 0 10 10 8 8 0.5;
-[277] AxoGluonArc 40 40 30 0 360 5 16 0 0 0 0.5;
-[278] AxoGluon 7 30 27 30 3 3 0 0 0.5;
-[279] AxoGluonCirc 50 30 20 0 3 16 0 0 0.5;
-[280] AxoGluon 73 30 93 30 3 3 0 0 0.5;
-[281] Vertex 27 30 1.5 0.5;
-[282] Vertex 73 30 1.5 0.5;
-[283] AxoGluon 110 30 130 30 3 3 0 0 0.5;
-[284] AxoGluonArc 150 30 20 0 180 3 8 0 0 0 0.5;
-[285] AxoGluonArc 150 30 20 180 360 3 8 0 0 0 0.5;
-[286] AxoGluon 170 30 190 30 3 3 0 0 0.5;
-[287] Vertex 130 30 1.5 0.5;
-[288] Vertex 170 30 1.5 0.5;
-[289] AxoGluon 210 30 230 30 3 3 0 0 0.5;
-[290] AxoGluonArc 250 30 20 0 180 -3 8 0 0 0 0.5;
-[291] AxoGluonArc 250 30 20 180 360 -3 8 0 0 0 0.5;
-[292] AxoGluon 270 30 290 30 3 3 0 0 0.5;
-[293] Vertex 230 30 1.5 0.5;
-[294] Vertex 270 30 1.5 0.5;
-[295] AxoLine 310 30 330 30 0 3 0 0 0 0 0 0 0 0 0 0.5;
-[296] AxoGluonArc 350 30 20 -180 180 3 16 0 0 0 0.5;
-[297] Vertex 330 30 1.5 0.5;
-[298] AxoLine 387 30 407 30 0 3 0 0 0 0 0 0 0 0 0 0.5;
-[299] AxoGluonCirc 430 30 20 0 3 16 0 0 0.5;
-[300] Vertex 407 30 1.5 0.5;
-[301] Grid 0 0 10 10 15 10 0.5;
-[302] AxoLine 10 50 100 50 0 0 3 40 0 0.3 1 1 1 1 0 3;
-[303] AxoLine 55 50 55 90 0 0 0 0 0 0.2 1 1.25 1 1 0 0.5;
-[304] AxoLine 60 5 84 5 0 0 0 0 0 0.2 1 1.25 1 1 0 0.5;
-[305] AxoLine 60 95 140 95 0 0 0 0 0 0.2 1 1.25 1 1 0 0.5;
-[306] Grid 0 0 10 10 9 8 0.5;
-[307] AxoLine 10 70 80 70 0 0 0 0 0 0.2 2 1.25 0.5 1 0 0.5;
-[308] AxoLine 10 50 80 50 0 0 0 0 0 0.2 1 1.25 0.8 1 1 0.5;
-[309] AxoLine 10 30 80 30 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0.5;
-[310] AxoLine 10 10 80 10 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0.5;
-[311] Grid 0 0 10 10 9 6 0.5;
-[312] AxoLine 10 30 80 30 0 0 0 0 0 0.2 1 1.25 1 1 0 0.5;
-[313] AxoLine 10 10 80 10 0 0 0 0 0 0.2 1 1.25 1 1 0 0.5;
-[314] AxoLine 10 50 70 50 0 0 0 0 0 0.2 0.8 1.25 1 1 0 4;
-[315] Grid 0 0 10 10 9 10 0.5;
-[316] AxoLine 10 90 75 90 5 0 1 0 0 0.2 1.3 1.25 1 1 0 0.5;
-[317] AxoLine 10 70 80 70 2 0 1 0 0 0.2 1.5 1.25 1 1 0 0.5;
-[318] AxoLine 10 50 80 50 2 0 1 0 0 0.2 1 1.25 1 1 0 0.5;
-[319] AxoLine 10 30 80 30 2 0 1 0 0 0.2 1 1.25 0.5 1 0 0.5;
-[320] AxoLine 10 10 80 10 2 0 1 0 0 0.2 1 1.25 0.5 1 0 0.5;
-[321] Grid 0 0 10 10 9 8 0.5;
-[322] AxoLine 10 70 80 70 0 3 0 0 0 0.2 1.5 1.25 0.3 1 0 0.5;
-[323] AxoLine 10 50 80 50 0 3 0 0 0 0.2 1 1.25 0.5 1 0 0.5;
-[324] AxoLine 10 30 80 30 0 3 0 0 0 0.2 1 1.25 0.5 1 0 0.5;
-[325] AxoLine 10 10 80 10 0 3 0 0 0 0.2 1 1.25 0.5 1 0 0.5;
-[326] Grid 0 0 10 10 9 8 0.5;
-[327] AxoLine 10 70 80 70 1.5 3 0.5 0 0 0.2 1.5 1.25 1 1 0 0.5;
-[328] AxoLine 10 50 80 50 1.5 3 0.5 0 0 0.2 1 1.25 0.5 1 0 0.5;
-[329] AxoLine 10 30 80 30 1.5 3 0.5 0 0 0.2 1 1.25 0.5 1 0 0.5;
-[330] AxoLine 10 10 80 10 1.5 3 0.5 0 0 0.2 1 1.25 0.5 1 0 0.5;
-[331] Grid 0 0 10 10 9 8 0.5;
-[332] AxoLine 10 70 80 70 0 3 0 0 0 0.2 1.5 1.25 0 1 1 0.5;
-[333] AxoLine 10 50 80 50 0 3 0 0 0 0.2 1 1.25 1 1 0 0.5;
-[334] AxoLine 10 30 80 30 0 3 0 0 0 0.2 1 1.25 1 1 0 0.5;
-[335] AxoLine 10 10 80 10 0 3 0 0 0 0.2 1 1.25 1 1 0 0.5;
-[336] Grid 0 0 10 10 9 14 0.5;
-[337] AxoArc 45 95 40 160 20 0 0 0 0 0 0.2 1 1.25 1 1 0 1 0.5;
-[338] AxoArc 45 80 40 160 20 0 0 0 0 0 0.2 1 1.25 1 1 0 1 0.5;
-[339] AxoArc 45 65 40 160 20 0 0 0 0 0 0.2 1 1.25 0.5 1 0 1 0.5;
-[340] AxoArc 45 50 40 160 20 0 0 0 0 0 0.2 1 1.25 0.5 1 0 1 0.5;
-[341] AxoArc 45 35 40 20 160 0 0 0 0 0 0.2 1 1.25 1 1 0 0 0.5;
-[342] AxoArc 45 20 40 20 160 0 0 0 0 0 0.2 1 1.25 1 1 0 0 0.5;
-[343] AxoArc 45 5 40 20 160 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0 0.5;
-[344] AxoArc 45 -10 40 20 160 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0 0.5;
-[345] Grid 0 0 10 10 9 11 0.5;
-[346] AxoArc 45 65 40 160 20 0 3 0 0 0 0.2 1 1.25 0.5 1 0 1 0.5;
-[347] AxoArc 45 50 40 160 20 0 3 0 0 0 0.2 1 1.25 0.5 1 0 1 0.5;
-[348] AxoArc 45 35 40 20 160 0 3 0 0 0 0.2 1 1.25 1 1 0 0 0.5;
-[349] AxoArc 45 20 40 20 160 0 3 0 0 0 0.2 1 1.25 1 1 0 0 0.5;
-[350] AxoArc 45 5 40 20 160 0 3 0 0 0 0.2 1 1.25 0.5 1 0 0 0.5;
-[351] AxoArc 45 -10 40 20 160 0 3 0 0 0 0.2 1 1.25 0.5 1 0 0 0.5;
-[352] Grid 0 0 10 10 9 8 0.5;
-[353] AxoArc 45 35 40 20 160 1.5 3 0 0 0 0.2 1 1.25 0.5 1 0 0 0.5;
-[354] AxoArc 45 20 40 20 160 1.5 3 0 0 0 0.2 1 1.25 0.5 1 0 0 0.5;
-[355] AxoArc 45 5 40 20 160 1.5 0 0 0 0 0.2 1 1.25 0.5 1 0 0 0.5;
-[356] AxoArc 45 -10 40 20 160 1.5 0 0 0 0 0.2 1 1.25 0.5 1 0 0 0.5;
-[357] Grid 0 0 10 10 8 8 0.5;
-[358] AxoBezier 10 10 30 30 10 50 30 70 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0.5;
-[359] AxoBezier 30 10 50 30 30 50 50 70 0 3 0 0 0 0.2 1 1.25 0.5 1 0 0.5;
-[360] AxoBezier 50 10 70 30 50 50 70 70 1 0 0.5 0 0 0.2 1 1.25 1 1 0 0.5;
-[361] AxoArc 30 0 30 0 180 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0 0.5;
-[362] FBoxc 0 0 30.0 12.747 0.5;
-[363] Boxc 0 0 30.0 12.747 0.5;
-[364] AxoArc 30 0 30 0 180 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0 0.5;
-[365] FBoxc 0 0 30.0 12.747 0.5;
-[366] Boxc 0 0 30.0 12.747 0.5;
-[367] AxoArc 30 0 30 0 180 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0 0.5;
-[368] FBoxc 0 0 30.0 12.747 0.5;
-[369] Boxc 0 0 30.0 12.747 0.5;
-[370] AxoArc 30 0 30 0 180 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0 0.5;
-[371] FBoxc 0 0 30.0 12.747 0.5;
-[372] Boxc 0 0 30.0 12.747 0.5;
-[373] AxoLine 0 10 40 30 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[374] AxoLine 0 10 40 30 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[375] AxoGluon 0 10 40 10 4 4 0 0 0.5;
-[376] AxoGluon 0 5 30 5 3 4 0 0 0.5;
-[377] AxoLine 0 0 50 0 0 0 0 0 0 0 0 0 0 0 0 2;
-[378] AxoLine 0 0 50 0 0 0 0 0 0 0 0 0 0 0 0 2;
-[379] AxoPhoton 7 70 37 70 4 3 0 0 0.5;
-[380] AxoPhoton 7 70 37 70 -4 3 0 0 0.5;
-[381] AxoGluonArc 70 70 30 90 270 3 10 0 0 0 0.5;
-[382] AxoLine 100 100 70 100 0 0 0.5 0 0 0.2 0.8 1.25 0.5 1 0 0.5;
-[383] AxoLine 130 100 100 100 0 0 0.5 0 0 0.2 0.8 1.25 0.5 1 0 0.5;
-[384] AxoLine 70 100 130 40 0 0 0.5 0 0 0.2 0.8 1.25 0.25 1 0 0.5;
-[385] AxoLine 100 40 70 40 0 0 0.5 0 0 0.2 0.8 1.25 0.5 1 0 0.5;
-[386] AxoLine 130 40 100 40 0 0 0.5 0 0 0.2 0.8 1.25 0.5 1 0 0.5;
-[387] AxoLine 70 40 130 100 0 0 0.5 0 0 0.2 0.8 1.25 0.75 1 0 0.5;
-[388] AxoGluonArc 130 70 30 270 450 3 10 0 0 0 0.5;
-[389] AxoPhoton 163 70 193 70 4 3 0 0 0.5;
-[390] AxoPhoton 163 70 193 70 -4 3 0 0 0.5;
-[391] AxoGluon 100 100 100 130 3 4 0 0 0.5;
-[392] AxoGluon 100 40 100 10 3 4 0 0 0.5;
-[393] Vertex 37 70 2 0.5;
-[394] Vertex 163 70 2 0.5;
-[395] Vertex 70 100 2 0.5;
-[396] Vertex 70 40 2 0.5;
-[397] Vertex 130 100 2 0.5;
-[398] Vertex 130 40 2 0.5;
-[399] Vertex 100 100 2 0.5;
-[400] Vertex 100 40 2 0.5;
-[401] AxoPhoton 7 70 40 70 4 3 0 0 0.5;
-[402] AxoPhoton 7 70 40 70 -4 3 0 0 0.5;
-[403] AxoGluonArc 70 70 30 180 270 3 5 0 0 0 0.5;
-[404] AxoBezier 100 100 55 100 40 95 40 70 0 0 0.5 0 0 0.2 0.8 1.25 0.5 1 0 0.5;
-[405] AxoLine 130 100 100 100 0 0 0.5 0 0 0.2 0.8 1.25 0.5 1 0 0.5;
-[406] AxoBezier 40 70 110 70 130 70 130 40 0 0 0.5 0 0 0.2 0.8 1.25 0.37 1 0 0.5;
-[407] AxoLine 100 40 70 40 0 0 0.5 0 0 0.2 0.8 1.25 0.5 1 0 0.5;
-[408] AxoLine 130 40 100 40 0 0 0.5 0 0 0.2 0.8 1.25 0.5 1 0 0.5;
-[409] AxoLine 70 40 130 100 0 0 0.5 0 0 0.2 0.8 1.25 0.75 1 0 0.5;
-[410] AxoGluonArc 130 70 30 270 450 3 10 0 0 0 0.5;
-[411] AxoPhoton 163 70 193 70 4 3 0 0 0.5;
-[412] AxoPhoton 163 70 193 70 -4 3 0 0 0.5;
-[413] AxoGluon 100 100 100 130 3 4 0 0 0.5;
-[414] AxoGluon 100 40 100 10 3 4 0 0 0.5;
-[415] Vertex 40 70 2 0.5;
-[416] Vertex 163 70 2 0.5;
-[417] Vertex 70 40 2 0.5;
-[418] Vertex 130 100 2 0.5;
-[419] Vertex 130 40 2 0.5;
-[420] Vertex 100 100 2 0.5;
-[421] Vertex 100 40 2 0.5;
-[422] AxoArc 40 35 25 90 270 0 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[423] AxoArc 60 35 25 270 90 0 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[424] AxoLine 40 60 60 60 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[425] AxoLine 40 10 60 10 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[426] AxoLine 50 10 50 60 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[427] AxoLine 0 35 15 35 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[428] AxoLine 85 35 100 35 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[429] AxoLine 50 35 50 60 0 0 0 0 0 0 0 0 0 0 0 3;
-[430] AxoLine 40 60 50 60 0 0 0 0 0 0 0 0 0 0 0 3;
-[431] AxoArc 40 35 25 90 180 0 0 0 0 0 0 0 0 0 0 0 0 3;
-[432] Vertex 50 60 1.3 3;
-[433] AxoArc 40 35 25 90 270 0 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[434] AxoArc 60 35 25 270 90 0 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[435] AxoLine 40 60 60 60 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[436] AxoLine 40 10 60 10 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[437] AxoLine 50 10 50 60 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[438] AxoLine 0 35 15 35 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[439] AxoLine 85 35 100 35 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[440] AxoLine 50 35 50 60 0 0 0 0 0 0 0 0 0 0 0 3;
-[441] AxoLine 40 60 50 60 0 0 0 0 0 0 0 0 0 0 0 3;
-[442] AxoArc 40 35 25 90 180 0 0 0 0 0 0 0 0 0 0 0 0 3;
-[443] Vertex 50 60 1.3 3;
-[444] AxoArc 40 35 25 90 270 0 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[445] AxoArc 60 35 25 270 90 0 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[446] AxoLine 40 60 60 60 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[447] AxoLine 40 10 60 10 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[448] AxoLine 50 10 50 60 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[449] AxoLine 0 35 15 35 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[450] AxoLine 85 35 100 35 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[451] AxoLine 40 60 50 60 0 0 0 0 0 0 0 0 0 0 0 3;
-[452] AxoArc 40 35 25 90 180 0 0 0 0 0 0 0 0 0 0 0 0 3;
-[453] AxoArc 40 35 25 90 270 0 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[454] AxoArc 60 35 25 270 90 0 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[455] AxoLine 40 60 60 60 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[456] AxoLine 40 10 60 10 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[457] AxoLine 50 10 50 60 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[458] AxoLine 0 35 15 35 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[459] AxoLine 85 35 100 35 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[460] AxoLine 50 35 50 60 0 0 0 0 0 0 0 0 0 0 0 3;
-[461] AxoLine 40 60 50 60 0 0 0 0 0 0 0 0 0 0 0 3;
-[462] AxoArc 40 35 25 90 180 0 0 0 0 0 0 0 0 0 0 0 0 3;
-[463] Vertex 50 60 1.3 3;
-[464] AxoArc 40 35 25 90 270 0 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[465] AxoArc 60 35 25 270 90 0 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[466] AxoLine 40 60 60 60 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[467] AxoLine 40 10 60 10 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[468] AxoLine 50 10 50 60 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[469] AxoLine 0 35 15 35 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[470] AxoLine 85 35 100 35 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[471] AxoLine 50 10 50 60 0 0 0 0 0 0 0 0 0 0 0 3;
-[472] Vertex 50 60 1.3 3;
-[473] AxoLine 40 60 50 60 0 0 0 0 0 0 0 0 0 0 0 3;
-[474] AxoArc 40 35 25 90 180 0 0 0 0 0 0 0 0 0 0 0 0 3;
-[475] AxoArc 40 35 25 90 270 0 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[476] AxoArc 60 35 25 270 90 0 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[477] AxoLine 40 60 60 60 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[478] AxoLine 40 10 60 10 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[479] AxoLine 50 10 50 60 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[480] AxoLine 0 35 15 35 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[481] AxoLine 85 35 100 35 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[482] AxoLine 40 60 50 60 0 0 0 0 0 0 0 0 0 0 0 3;
-[483] AxoArc 40 35 25 90 180 0 0 0 0 0 0 0 0 0 0 0 0 3;
-[484] AxoArc 40 35 25 90 270 0 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[485] AxoArc 60 35 25 270 90 0 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[486] AxoLine 40 60 60 60 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[487] AxoLine 40 10 60 10 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[488] AxoLine 50 10 50 60 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[489] AxoLine 0 35 15 35 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[490] AxoLine 85 35 100 35 0 0 0 0 0 0 0 0 0 0 0 0.5;
-[491] AxoLine 50 10 50 60 0 0 0 0 0 0 0 0 0 0 0 3;
-[492] Vertex 50 60 1.3 3;
-[493] AxoLine 40 60 50 60 0 0 0 0 0 0 0 0 0 0 0 3;
-[494] AxoArc 40 35 25 90 180 0 0 0 0 0 0 0 0 0 0 0 0 3;
diff --git a/Build/source/utils/axodraw2/axodraw2-src/test-big.ax2-std b/Build/source/utils/axodraw2/axodraw2-src/test-big.ax2-std
deleted file mode 100644
index ccc1a1331ce..00000000000
--- a/Build/source/utils/axodraw2/axodraw2-src/test-big.ax2-std
+++ /dev/null
@@ -1,1482 +0,0 @@
-\axo@setObject{1}%
-{AxoLine 0 2 35 2 2.5 0 0 0 0 0 0 0 0 0 0 1;}%
-{ 1 w q 3.5 w 0 2 m 35 2 l S 1.5 w 0 0 0 0 K 0 2 m 35 2 l S Q}
-\axo@setObject{2}%
-{AxoLine 0 2 30 2 0 0 0 0 0 0.2 1 1.25 0.8 1 0 1;}%
-{ 1 w 0 2 m 30 2 l S 1 0 0 1 0 2 cm 1 0 0 1 24 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{3}%
-{AxoArc 100 50 40 0 180 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 100 50 cm 40 0 m 40 22.091 22.091 40 0 40 c -22.091 40 -40 22.091 -40 0 c S 1 0 0 1 0 40 cm -1 0 0 -1 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{4}%
-{AxoArc 100 50 40 180 360 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 100 50 cm -40 0 m -40 -22.091 -22.091 -40 0 -40 c 22.091 -40 40 -22.091 40 0 c S 1 0 0 1 0 -40 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{5}%
-{AxoGluon 0 50 60 50 5 4 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 0 50 cm 12 -5 m 16.5 -5 16.5 5 8.4 5 c 3 5 0.6 2.5 0 0 c S 12 -5 m 7.5 -5 7.5 5 18 5 c 28.5 5 28.5 -5 24 -5 c 19.5 -5 19.5 5 30 5 c 40.5 5 40.5 -5 36 -5 c 31.5 -5 31.5 5 42 5 c 52.5 5 52.5 -5 48 -5 c 43.5 -5 43.5 5 51.6 5 c 57 5 59.4 2.5 60 0 c S}
-\axo@setObject{6}%
-{Vertex 60 50 2 0.5;}%
-{ 0.5 w 1 0 0 1 60 50 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f}
-\axo@setObject{7}%
-{AxoGluon 140 50 200 50 5 4 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 140 50 cm 12 -5 m 16.5 -5 16.5 5 8.4 5 c 3 5 0.6 2.5 0 0 c S 12 -5 m 7.5 -5 7.5 5 18 5 c 28.5 5 28.5 -5 24 -5 c 19.5 -5 19.5 5 30 5 c 40.5 5 40.5 -5 36 -5 c 31.5 -5 31.5 5 42 5 c 52.5 5 52.5 -5 48 -5 c 43.5 -5 43.5 5 51.6 5 c 57 5 59.4 2.5 60 0 c S}
-\axo@setObject{8}%
-{Vertex 140 50 2 0.5;}%
-{ 0.5 w 1 0 0 1 140 50 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f}
-\axo@setObject{9}%
-{Grid 0 0 10 10 9 14 0.5;}%
-{ 0.5 w 0 0 m 0 140 l S 10 0 m 10 140 l S 20 0 m 20 140 l S 30 0 m 30 140 l S 40 0 m 40 140 l S 50 0 m 50 140 l S 60 0 m 60 140 l S 70 0 m 70 140 l S 80 0 m 80 140 l S 90 0 m 90 140 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S 0 90 m 90 90 l S 0 100 m 90 100 l S 0 110 m 90 110 l S 0 120 m 90 120 l S 0 130 m 90 130 l S 0 140 m 90 140 l S}
-\axo@setObject{10}%
-{Grid 0 0 10 10 9 4 0.5;}%
-{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
-\axo@setObject{11}%
-{AxoLine 10 10 80 30 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 10 10 m 80 30 l S}
-\axo@setObject{12}%
-{Grid 0 0 10 10 9 8 0.5;}%
-{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 90 0 m 90 80 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S}
-\axo@setObject{13}%
-{AxoLine 10 70 80 70 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0.5;}%
-{ 0.5 w 10 70 m 80 70 l S 1 0 0 1 10 70 cm 1 0 0 1 35 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{14}%
-{AxoLine 10 50 80 50 0 3 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w [ 2.917] 1.458 d 10 50 m 80 50 l S}
-\axo@setObject{15}%
-{AxoLine 10 30 80 30 2 0 0 0 0 0.2 1 1.25 0.5 1 0 0.5;}%
-{ 0.5 w q 2.5 w 10 30 m 80 30 l S 1.5 w 0 0 0 0 K 10 30 m 80 30 l S Q 1 0 0 1 10 30 cm 1 0 0 1 35 0 cm q [] 0 d 4.35 0 m -4.35 3.48 l -2.61 0 l -4.35 -3.48 l h f Q}
-\axo@setObject{16}%
-{AxoLine 10 10 80 10 2 3 0 0 0 0.2 1 1.25 0.5 1 0 0.5;}%
-{ 0.5 w [ 2.917] 1.458 d q 2.5 w 10 10 m 80 10 l S 1.5 w 0 0 0 0 K 10 10 m 80 10 l S Q 1 0 0 1 10 10 cm 1 0 0 1 35 0 cm q [] 0 d 4.35 0 m -4.35 3.48 l -2.61 0 l -4.35 -3.48 l h f Q}
-\axo@setObject{17}%
-{Grid 0 0 10 10 9 4 0.5;}%
-{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
-\axo@setObject{18}%
-{AxoLine 10 25 80 25 1 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w q 1.5 w 10 25 m 80 25 l S 0.5 w 0 0 0 0 K 10 25 m 80 25 l S Q}
-\axo@setObject{19}%
-{AxoLine 10 15 80 15 2 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w q 2.5 w 10 15 m 80 15 l S 1.5 w 0 0 0 0 K 10 15 m 80 15 l S Q}
-\axo@setObject{20}%
-{Grid 0 0 10 10 9 4 0.5;}%
-{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
-\axo@setObject{21}%
-{AxoLine 10 25 80 25 0 2 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w [ 1.944] 0.972 d 10 25 m 80 25 l S}
-\axo@setObject{22}%
-{AxoLine 10 15 80 15 0 6 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w [ 5.833] 2.917 d 10 15 m 80 15 l S}
-\axo@setObject{23}%
-{Grid 0 0 10 10 9 4 0.5;}%
-{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
-\axo@setObject{24}%
-{AxoLine 10 25 80 25 1.5 2 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w [ 1.944] 0.972 d q 2 w 10 25 m 80 25 l S 1 w 0 0 0 0 K 10 25 m 80 25 l S Q}
-\axo@setObject{25}%
-{AxoLine 10 15 80 15 1.5 6 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w [ 5.833] 2.917 d q 2 w 10 15 m 80 15 l S 1 w 0 0 0 0 K 10 15 m 80 15 l S Q}
-\axo@setObject{26}%
-{Grid 0 0 10 10 9 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
-\axo@setObject{27}%
-{AxoArc 45 0 40 20 160 0 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 45 0 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S}
-\axo@setObject{28}%
-{Grid 0 0 10 10 8 8 0.5;}%
-{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 0 0 m 80 0 l S 0 10 m 80 10 l S 0 20 m 80 20 l S 0 30 m 80 30 l S 0 40 m 80 40 l S 0 50 m 80 50 l S 0 60 m 80 60 l S 0 70 m 80 70 l S 0 80 m 80 80 l S}
-\axo@setObject{29}%
-{AxoArc 40 40 30 20 160 0 3 0 0 0 0.2 1 1.25 0.5 1 0 1 0.5;}%
-{ 0.5 w [ 2.88] 1.44 d 1 0 0 1 40 40 cm -28.191 10.261 m -32.724 -2.195 -28.547 -16.149 -17.915 -24.064 c -7.283 -31.979 7.283 -31.979 17.915 -24.064 c 28.547 -16.149 32.724 -2.195 28.191 10.261 c S 1 0 0 1 0 -30 cm q [] 0 d -3.125 0 m 3.125 2.5 l 1.875 0 l 3.125 -2.5 l h f Q}
-\axo@setObject{30}%
-{Grid 0 0 10 10 9 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
-\axo@setObject{31}%
-{AxoArc 45 0 40 20 160 2 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 45 0 cm 38.527 14.023 m 32.632 30.22 17.236 41 0 41 c -17.236 41 -32.632 30.22 -38.527 14.023 c S 36.648 13.339 m 31.04 28.746 16.396 39 0 39 c -16.396 39 -31.04 28.746 -36.648 13.339 c S}
-\axo@setObject{32}%
-{Grid 0 0 10 10 9 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
-\axo@setObject{33}%
-{AxoArc 45 0 40 20 160 0 4 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w [ 4.072] 2.036 d 1 0 0 1 45 0 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S}
-\axo@setObject{34}%
-{Grid 0 0 10 10 9 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
-\axo@setObject{35}%
-{AxoArc 45 0 40 20 160 2 4 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 45 0 cm [ 4.072] 2.036 d q 1.025 0 0 1.025 0 0 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S Q q 0.975 0 0 0.975 0 0 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S Q}
-\axo@setObject{36}%
-{Grid 0 0 10 10 6 6 0.5;}%
-{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S 0 60 m 60 60 l S}
-\axo@setObject{37}%
-{AxoBezier 10 10 75 30 65 40 20 50 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 10 10 m 75 30 65 40 20 50 c S}
-\axo@setObject{38}%
-{Grid 0 0 10 10 6 6 0.5;}%
-{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S 0 60 m 60 60 l S}
-\axo@setObject{39}%
-{AxoBezier 10 10 75 30 65 40 20 50 2 0 0 0 0 0.2 1 1.25 1 1 0 0.5;}%
-{ 0.5 w q 2.5 w 10 10 m 75 30 65 40 20 50 c S Q q 1.5 w 0 0 0 0 K 10 10 m 75 30 65 40 20 50 c S Q 1 0 0 1 20 50 cm -0.976 0.217 -0.217 -0.976 0 0 cm q [] 0 d 4.35 0 m -4.35 3.48 l -2.61 0 l -4.35 -3.48 l h f Q}
-\axo@setObject{40}%
-{Grid 0 0 10 10 6 6 0.5;}%
-{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S 0 60 m 60 60 l S}
-\axo@setObject{41}%
-{AxoBezier 10 10 75 30 65 40 20 50 1.5 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w q 2 w 10 10 m 75 30 65 40 20 50 c S Q q 1 w 0 0 0 0 K 10 10 m 75 30 65 40 20 50 c S Q}
-\axo@setObject{42}%
-{Grid 0 0 10 10 6 6 0.5;}%
-{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S 0 60 m 60 60 l S}
-\axo@setObject{43}%
-{AxoBezier 10 10 75 30 65 40 20 50 0 4 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w [ 3.95] 1.975 d 10 10 m 75 30 65 40 20 50 c S}
-\axo@setObject{44}%
-{Grid 0 0 10 10 6 6 0.5;}%
-{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S 0 60 m 60 60 l S}
-\axo@setObject{45}%
-{AxoBezier 10 10 75 30 65 40 20 50 1.5 4 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w [ 3.95] 1.975 d q 2 w 10 10 m 75 30 65 40 20 50 c S Q q 1 w 0 0 0 0 K 10 10 m 75 30 65 40 20 50 c S Q}
-\axo@setObject{46}%
-{Grid 0 0 10 10 6 6 0.5;}%
-{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S 0 60 m 60 60 l S}
-\axo@setObject{47}%
-{Curve "(5,55)(10,32.5)(15,23)(20,18)(25,14.65)(30,12.3)(40,9.5)(55,7)" 0.5;}%
-{ 0.5 w 5 55 m 6.667 45.333 8.333 37.833 10 32.5 c 11.667 27.167 13.333 25.417 15 23 c 16.667 20.583 18.333 19.392 20 18 c 21.667 16.608 23.333 15.6 25 14.65 c 26.667 13.7 28.333 12.978 30 12.3 c 33.333 10.944 36.667 10.282 40 9.5 c 45 8.327 50 7.493 55 7 c S}
-\axo@setObject{48}%
-{Grid 0 0 10 10 6 6 0.5;}%
-{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S 0 60 m 60 60 l S}
-\axo@setObject{49}%
-{DashCurve "(5,55)(10,32.5)(15,23)(20,18)(25,14.65)(30,12.3)(40,9.5)(55,7)" 4 0.5;}%
-{ 0.5 w [ 4] 2 d 5 55 m 6.667 45.333 8.333 37.833 10 32.5 c 11.667 27.167 13.333 25.417 15 23 c 16.667 20.583 18.333 19.392 20 18 c 21.667 16.608 23.333 15.6 25 14.65 c 26.667 13.7 28.333 12.978 30 12.3 c 33.333 10.944 36.667 10.282 40 9.5 c 45 8.327 50 7.493 55 7 c S}
-\axo@setObject{50}%
-{Grid 0 0 10 10 9 4 0.5;}%
-{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
-\axo@setObject{51}%
-{AxoGluon 10 20 80 20 5 7 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 10 20 cm 8.75 -5 m 13.25 -5 13.25 5 6.125 5 c 2.188 5 0.438 2.5 0 0 c S 8.75 -5 m 4.25 -5 4.25 5 13.125 5 c 22 5 22 -5 17.5 -5 c 13 -5 13 5 21.875 5 c 30.75 5 30.75 -5 26.25 -5 c 21.75 -5 21.75 5 30.625 5 c 39.5 5 39.5 -5 35 -5 c 30.5 -5 30.5 5 39.375 5 c 48.25 5 48.25 -5 43.75 -5 c 39.25 -5 39.25 5 48.125 5 c 57 5 57 -5 52.5 -5 c 48 -5 48 5 56.875 5 c 65.75 5 65.75 -5 61.25 -5 c 56.75 -5 56.75 5 63.875 5 c 67.812 5 69.562 2.5 70 0 c S}
-\axo@setObject{52}%
-{Grid 0 0 10 10 9 4 0.5;}%
-{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
-\axo@setObject{53}%
-{AxoGluon 10 20 80 20 4 7 0.5 1 2;}%
-{ 2 w 2.5 w 1 0 0 1 10 20 cm [ 0.966] 0.483 d 8.75 -4 m 12.35 -4 12.35 4 6.125 4 c 2.188 4 0.438 2 0 0 c S 8.75 -4 m 5.15 -4 5.15 4 13.125 4 c 21.1 4 21.1 -4 17.5 -4 c 13.9 -4 13.9 4 21.875 4 c 29.85 4 29.85 -4 26.25 -4 c 22.65 -4 22.65 4 30.625 4 c 38.6 4 38.6 -4 35 -4 c 31.4 -4 31.4 4 39.375 4 c 47.35 4 47.35 -4 43.75 -4 c 40.15 -4 40.15 4 48.125 4 c 56.1 4 56.1 -4 52.5 -4 c 48.9 -4 48.9 4 56.875 4 c 64.85 4 64.85 -4 61.25 -4 c 57.65 -4 57.65 4 63.875 4 c 67.812 4 69.562 2 70 0 c S}
-\axo@setObject{54}%
-{AxoGluon 10 20 80 20 4 7 -0.5 0 2;}%
-{ 2 w 1.5 w 1 0 0 1 10 20 cm 8.75 -4 m 12.35 -4 12.35 4 6.125 4 c 2.188 4 0.438 2 0 0 c S 8.75 -4 m 5.15 -4 5.15 4 13.125 4 c 21.1 4 21.1 -4 17.5 -4 c 13.9 -4 13.9 4 21.875 4 c 29.85 4 29.85 -4 26.25 -4 c 22.65 -4 22.65 4 30.625 4 c 38.6 4 38.6 -4 35 -4 c 31.4 -4 31.4 4 39.375 4 c 47.35 4 47.35 -4 43.75 -4 c 40.15 -4 40.15 4 48.125 4 c 56.1 4 56.1 -4 52.5 -4 c 48.9 -4 48.9 4 56.875 4 c 64.85 4 64.85 -4 61.25 -4 c 57.65 -4 57.65 4 63.875 4 c 67.812 4 69.562 2 70 0 c S}
-\axo@setObject{55}%
-{Grid 0 0 10 10 9 4 0.5;}%
-{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
-\axo@setObject{56}%
-{AxoGluon 10 20 80 20 5 7 0.5 0 1.3;}%
-{ 1.3 w 1.8 w 1 0 0 1 10 20 cm 8.75 -5 m 13.25 -5 13.25 5 6.125 5 c 2.188 5 0.438 2.5 0 0 c S 8.75 -5 m 4.25 -5 4.25 5 13.125 5 c 22 5 22 -5 17.5 -5 c 13 -5 13 5 21.875 5 c 30.75 5 30.75 -5 26.25 -5 c 21.75 -5 21.75 5 30.625 5 c 39.5 5 39.5 -5 35 -5 c 30.5 -5 30.5 5 39.375 5 c 48.25 5 48.25 -5 43.75 -5 c 39.25 -5 39.25 5 48.125 5 c 57 5 57 -5 52.5 -5 c 48 -5 48 5 56.875 5 c 65.75 5 65.75 -5 61.25 -5 c 56.75 -5 56.75 5 63.875 5 c 67.812 5 69.562 2.5 70 0 c S}
-\axo@setObject{57}%
-{AxoGluon 10 20 80 20 5 7 -0.5 0 1.3;}%
-{ 1.3 w 0.8 w 1 0 0 1 10 20 cm 8.75 -5 m 13.25 -5 13.25 5 6.125 5 c 2.188 5 0.438 2.5 0 0 c S 8.75 -5 m 4.25 -5 4.25 5 13.125 5 c 22 5 22 -5 17.5 -5 c 13 -5 13 5 21.875 5 c 30.75 5 30.75 -5 26.25 -5 c 21.75 -5 21.75 5 30.625 5 c 39.5 5 39.5 -5 35 -5 c 30.5 -5 30.5 5 39.375 5 c 48.25 5 48.25 -5 43.75 -5 c 39.25 -5 39.25 5 48.125 5 c 57 5 57 -5 52.5 -5 c 48 -5 48 5 56.875 5 c 65.75 5 65.75 -5 61.25 -5 c 56.75 -5 56.75 5 63.875 5 c 67.812 5 69.562 2.5 70 0 c S}
-\axo@setObject{58}%
-{Grid 0 0 10 10 9 4 0.5;}%
-{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
-\axo@setObject{59}%
-{AxoGluon 10 20 80 20 5 7 0 1 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 10 20 cm [ 1.008] 0.504 d 8.75 -5 m 13.25 -5 13.25 5 6.125 5 c 2.188 5 0.438 2.5 0 0 c S 8.75 -5 m 4.25 -5 4.25 5 13.125 5 c 22 5 22 -5 17.5 -5 c 13 -5 13 5 21.875 5 c 30.75 5 30.75 -5 26.25 -5 c 21.75 -5 21.75 5 30.625 5 c 39.5 5 39.5 -5 35 -5 c 30.5 -5 30.5 5 39.375 5 c 48.25 5 48.25 -5 43.75 -5 c 39.25 -5 39.25 5 48.125 5 c 57 5 57 -5 52.5 -5 c 48 -5 48 5 56.875 5 c 65.75 5 65.75 -5 61.25 -5 c 56.75 -5 56.75 5 63.875 5 c 67.812 5 69.562 2.5 70 0 c S}
-\axo@setObject{60}%
-{Grid 0 0 10 10 9 4 0.5;}%
-{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
-\axo@setObject{61}%
-{AxoGluon 10 20 80 20 5 7 0.5 1 1.3;}%
-{ 1.3 w 1.8 w 1 0 0 1 10 20 cm [ 1.008] 0.504 d 8.75 -5 m 13.25 -5 13.25 5 6.125 5 c 2.188 5 0.438 2.5 0 0 c S 8.75 -5 m 4.25 -5 4.25 5 13.125 5 c 22 5 22 -5 17.5 -5 c 13 -5 13 5 21.875 5 c 30.75 5 30.75 -5 26.25 -5 c 21.75 -5 21.75 5 30.625 5 c 39.5 5 39.5 -5 35 -5 c 30.5 -5 30.5 5 39.375 5 c 48.25 5 48.25 -5 43.75 -5 c 39.25 -5 39.25 5 48.125 5 c 57 5 57 -5 52.5 -5 c 48 -5 48 5 56.875 5 c 65.75 5 65.75 -5 61.25 -5 c 56.75 -5 56.75 5 63.875 5 c 67.812 5 69.562 2.5 70 0 c S}
-\axo@setObject{62}%
-{AxoGluon 10 20 80 20 5 7 -0.5 0 1.3;}%
-{ 1.3 w 0.8 w 1 0 0 1 10 20 cm 8.75 -5 m 13.25 -5 13.25 5 6.125 5 c 2.188 5 0.438 2.5 0 0 c S 8.75 -5 m 4.25 -5 4.25 5 13.125 5 c 22 5 22 -5 17.5 -5 c 13 -5 13 5 21.875 5 c 30.75 5 30.75 -5 26.25 -5 c 21.75 -5 21.75 5 30.625 5 c 39.5 5 39.5 -5 35 -5 c 30.5 -5 30.5 5 39.375 5 c 48.25 5 48.25 -5 43.75 -5 c 39.25 -5 39.25 5 48.125 5 c 57 5 57 -5 52.5 -5 c 48 -5 48 5 56.875 5 c 65.75 5 65.75 -5 61.25 -5 c 56.75 -5 56.75 5 63.875 5 c 67.812 5 69.562 2.5 70 0 c S}
-\axo@setObject{63}%
-{Grid 0 0 10 10 9 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
-\axo@setObject{64}%
-{AxoGluonArc 45 0 40 20 160 5 8 0 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 45 0 cm 0.94 0.342 -0.342 0.94 0 0 cm 33.718 9.386 m 32.658 13.195 42.52 17.18 44.19 8.501 c 45.234 3.075 42.496 0.577 40 0 c S 33.718 9.386 m 34.778 5.577 45.838 7.35 41.32 17.824 c 36.802 28.297 27.923 21.47 29.966 18.084 c 32.009 14.699 42.188 19.373 35.026 28.252 c 27.865 37.13 21.142 28.172 24.018 25.458 c 26.895 22.745 35.447 29.977 26.167 36.61 c 16.887 43.243 12.813 32.809 16.312 30.967 c 19.81 29.124 26.109 38.385 15.391 42.286 c 4.672 46.187 3.545 35.044 7.41 34.207 c 11.274 33.37 14.859 43.981 3.487 44.865 c -7.885 45.749 -5.983 34.711 -2.035 34.941 c 1.912 35.171 2.521 46.355 -8.672 44.156 c -19.865 41.958 -15.072 31.835 -11.331 33.115 c -7.589 34.395 -10.003 45.333 -20.196 40.213 c -30.389 35.094 -23.057 26.627 -19.796 28.864 c -16.535 31.1 -21.529 40.492 -28.387 34.917 c -32.674 31.431 -32.183 27.758 -30.642 25.712 c S}
-\axo@setObject{65}%
-{Grid 0 0 10 10 9 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
-\axo@setObject{66}%
-{AxoGluonArc 45 0 40 20 160 5 8 0.5 0 0 1.3;}%
-{ 1.3 w 1.8 w 1 0 0 1 45 0 cm 0.94 0.342 -0.342 0.94 0 0 cm 33.718 9.386 m 32.658 13.195 42.52 17.18 44.19 8.501 c 45.234 3.075 42.496 0.577 40 0 c S 33.718 9.386 m 34.778 5.577 45.838 7.35 41.32 17.824 c 36.802 28.297 27.923 21.47 29.966 18.084 c 32.009 14.699 42.188 19.373 35.026 28.252 c 27.865 37.13 21.142 28.172 24.018 25.458 c 26.895 22.745 35.447 29.977 26.167 36.61 c 16.887 43.243 12.813 32.809 16.312 30.967 c 19.81 29.124 26.109 38.385 15.391 42.286 c 4.672 46.187 3.545 35.044 7.41 34.207 c 11.274 33.37 14.859 43.981 3.487 44.865 c -7.885 45.749 -5.983 34.711 -2.035 34.941 c 1.912 35.171 2.521 46.355 -8.672 44.156 c -19.865 41.958 -15.072 31.835 -11.331 33.115 c -7.589 34.395 -10.003 45.333 -20.196 40.213 c -30.389 35.094 -23.057 26.627 -19.796 28.864 c -16.535 31.1 -21.529 40.492 -28.387 34.917 c -32.674 31.431 -32.183 27.758 -30.642 25.712 c S}
-\axo@setObject{67}%
-{AxoGluonArc 45 0 40 20 160 5 8 -0.5 0 0 1.3;}%
-{ 1.3 w 0.8 w 1 0 0 1 45 0 cm 0.94 0.342 -0.342 0.94 0 0 cm 33.718 9.386 m 32.658 13.195 42.52 17.18 44.19 8.501 c 45.234 3.075 42.496 0.577 40 0 c S 33.718 9.386 m 34.778 5.577 45.838 7.35 41.32 17.824 c 36.802 28.297 27.923 21.47 29.966 18.084 c 32.009 14.699 42.188 19.373 35.026 28.252 c 27.865 37.13 21.142 28.172 24.018 25.458 c 26.895 22.745 35.447 29.977 26.167 36.61 c 16.887 43.243 12.813 32.809 16.312 30.967 c 19.81 29.124 26.109 38.385 15.391 42.286 c 4.672 46.187 3.545 35.044 7.41 34.207 c 11.274 33.37 14.859 43.981 3.487 44.865 c -7.885 45.749 -5.983 34.711 -2.035 34.941 c 1.912 35.171 2.521 46.355 -8.672 44.156 c -19.865 41.958 -15.072 31.835 -11.331 33.115 c -7.589 34.395 -10.003 45.333 -20.196 40.213 c -30.389 35.094 -23.057 26.627 -19.796 28.864 c -16.535 31.1 -21.529 40.492 -28.387 34.917 c -32.674 31.431 -32.183 27.758 -30.642 25.712 c S}
-\axo@setObject{68}%
-{Grid 0 0 10 10 9 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
-\axo@setObject{69}%
-{AxoGluonArc 45 0 40 20 160 5 8 0 1.5 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 45 0 cm 0.94 0.342 -0.342 0.94 0 0 cm [ 1.461] 0.731 d 33.718 9.386 m 32.658 13.195 42.52 17.18 44.19 8.501 c 45.234 3.075 42.496 0.577 40 0 c S 33.718 9.386 m 34.778 5.577 45.838 7.35 41.32 17.824 c 36.802 28.297 27.923 21.47 29.966 18.084 c 32.009 14.699 42.188 19.373 35.026 28.252 c 27.865 37.13 21.142 28.172 24.018 25.458 c 26.895 22.745 35.447 29.977 26.167 36.61 c 16.887 43.243 12.813 32.809 16.312 30.967 c 19.81 29.124 26.109 38.385 15.391 42.286 c 4.672 46.187 3.545 35.044 7.41 34.207 c 11.274 33.37 14.859 43.981 3.487 44.865 c -7.885 45.749 -5.983 34.711 -2.035 34.941 c 1.912 35.171 2.521 46.355 -8.672 44.156 c -19.865 41.958 -15.072 31.835 -11.331 33.115 c -7.589 34.395 -10.003 45.333 -20.196 40.213 c -30.389 35.094 -23.057 26.627 -19.796 28.864 c -16.535 31.1 -21.529 40.492 -28.387 34.917 c -32.674 31.431 -32.183 27.758 -30.642 25.712 c S}
-\axo@setObject{70}%
-{Grid 0 0 10 10 9 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
-\axo@setObject{71}%
-{AxoGluonArc 45 0 40 20 160 5 8 0.5 1.5 0 1.3;}%
-{ 1.3 w 1.8 w 1 0 0 1 45 0 cm 0.94 0.342 -0.342 0.94 0 0 cm [ 1.461] 0.731 d 33.718 9.386 m 32.658 13.195 42.52 17.18 44.19 8.501 c 45.234 3.075 42.496 0.577 40 0 c S 33.718 9.386 m 34.778 5.577 45.838 7.35 41.32 17.824 c 36.802 28.297 27.923 21.47 29.966 18.084 c 32.009 14.699 42.188 19.373 35.026 28.252 c 27.865 37.13 21.142 28.172 24.018 25.458 c 26.895 22.745 35.447 29.977 26.167 36.61 c 16.887 43.243 12.813 32.809 16.312 30.967 c 19.81 29.124 26.109 38.385 15.391 42.286 c 4.672 46.187 3.545 35.044 7.41 34.207 c 11.274 33.37 14.859 43.981 3.487 44.865 c -7.885 45.749 -5.983 34.711 -2.035 34.941 c 1.912 35.171 2.521 46.355 -8.672 44.156 c -19.865 41.958 -15.072 31.835 -11.331 33.115 c -7.589 34.395 -10.003 45.333 -20.196 40.213 c -30.389 35.094 -23.057 26.627 -19.796 28.864 c -16.535 31.1 -21.529 40.492 -28.387 34.917 c -32.674 31.431 -32.183 27.758 -30.642 25.712 c S}
-\axo@setObject{72}%
-{AxoGluonArc 45 0 40 20 160 5 8 -0.5 0 0 1.3;}%
-{ 1.3 w 0.8 w 1 0 0 1 45 0 cm 0.94 0.342 -0.342 0.94 0 0 cm 33.718 9.386 m 32.658 13.195 42.52 17.18 44.19 8.501 c 45.234 3.075 42.496 0.577 40 0 c S 33.718 9.386 m 34.778 5.577 45.838 7.35 41.32 17.824 c 36.802 28.297 27.923 21.47 29.966 18.084 c 32.009 14.699 42.188 19.373 35.026 28.252 c 27.865 37.13 21.142 28.172 24.018 25.458 c 26.895 22.745 35.447 29.977 26.167 36.61 c 16.887 43.243 12.813 32.809 16.312 30.967 c 19.81 29.124 26.109 38.385 15.391 42.286 c 4.672 46.187 3.545 35.044 7.41 34.207 c 11.274 33.37 14.859 43.981 3.487 44.865 c -7.885 45.749 -5.983 34.711 -2.035 34.941 c 1.912 35.171 2.521 46.355 -8.672 44.156 c -19.865 41.958 -15.072 31.835 -11.331 33.115 c -7.589 34.395 -10.003 45.333 -20.196 40.213 c -30.389 35.094 -23.057 26.627 -19.796 28.864 c -16.535 31.1 -21.529 40.492 -28.387 34.917 c -32.674 31.431 -32.183 27.758 -30.642 25.712 c S}
-\axo@setObject{73}%
-{Grid 0 0 10 10 8 8 0.5;}%
-{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 0 0 m 80 0 l S 0 10 m 80 10 l S 0 20 m 80 20 l S 0 30 m 80 30 l S 0 40 m 80 40 l S 0 50 m 80 50 l S 0 60 m 80 60 l S 0 70 m 80 70 l S 0 80 m 80 80 l S}
-\axo@setObject{74}%
-{AxoGluonCirc 40 40 30 0 5 16 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 40 40 cm 0.981 0.195 -0.195 0.981 0 0 cm 34.327 6.828 m 31.863 19.217 21.651 13.058 23.097 9.567 c 24.543 6.076 36.119 8.942 29.101 19.445 c 22.084 29.948 15.006 20.349 17.678 17.678 c 20.349 15.006 29.948 22.084 19.445 29.101 c 8.942 36.119 6.076 24.543 9.567 23.097 c 13.058 21.651 19.217 31.863 6.828 34.327 c -5.561 36.792 -3.778 25 0 25 c 3.778 25 5.561 36.792 -6.828 34.327 c -19.217 31.863 -13.058 21.651 -9.567 23.097 c -6.076 24.543 -8.942 36.119 -19.445 29.101 c -29.948 22.084 -20.349 15.006 -17.678 17.678 c -15.006 20.349 -22.084 29.948 -29.101 19.445 c -36.119 8.942 -24.543 6.076 -23.097 9.567 c -21.651 13.058 -31.863 19.217 -34.327 6.828 c -36.792 -5.561 -25 -3.778 -25 0 c -25 3.778 -36.792 5.561 -34.327 -6.828 c -31.863 -19.217 -21.651 -13.058 -23.097 -9.567 c -24.543 -6.076 -36.119 -8.942 -29.101 -19.445 c -22.084 -29.948 -15.006 -20.349 -17.678 -17.678 c -20.349 -15.006 -29.948 -22.084 -19.445 -29.101 c -8.942 -36.119 -6.076 -24.543 -9.567 -23.097 c -13.058 -21.651 -19.217 -31.863 -6.828 -34.327 c 5.561 -36.792 3.778 -25 0 -25 c -3.778 -25 -5.561 -36.792 6.828 -34.327 c 19.217 -31.863 13.058 -21.651 9.567 -23.097 c 6.076 -24.543 8.942 -36.119 19.445 -29.101 c 29.948 -22.084 20.349 -15.006 17.678 -17.678 c 15.006 -20.349 22.084 -29.948 29.101 -19.445 c 36.119 -8.942 24.543 -6.076 23.097 -9.567 c 21.651 -13.058 31.863 -19.217 34.327 -6.828 c 36.792 5.561 25 3.778 25 0 c 25 -3.778 36.792 -5.561 34.327 6.828 c S}
-\axo@setObject{75}%
-{Grid 0 0 10 10 8 8 0.5;}%
-{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 0 0 m 80 0 l S 0 10 m 80 10 l S 0 20 m 80 20 l S 0 30 m 80 30 l S 0 40 m 80 40 l S 0 50 m 80 50 l S 0 60 m 80 60 l S 0 70 m 80 70 l S 0 80 m 80 80 l S}
-\axo@setObject{76}%
-{AxoGluonCirc 40 40 30 0 5 16 0.5 0 1.3;}%
-{ 1.3 w 1.8 w 1 0 0 1 40 40 cm 0.981 0.195 -0.195 0.981 0 0 cm 34.327 6.828 m 31.863 19.217 21.651 13.058 23.097 9.567 c 24.543 6.076 36.119 8.942 29.101 19.445 c 22.084 29.948 15.006 20.349 17.678 17.678 c 20.349 15.006 29.948 22.084 19.445 29.101 c 8.942 36.119 6.076 24.543 9.567 23.097 c 13.058 21.651 19.217 31.863 6.828 34.327 c -5.561 36.792 -3.778 25 0 25 c 3.778 25 5.561 36.792 -6.828 34.327 c -19.217 31.863 -13.058 21.651 -9.567 23.097 c -6.076 24.543 -8.942 36.119 -19.445 29.101 c -29.948 22.084 -20.349 15.006 -17.678 17.678 c -15.006 20.349 -22.084 29.948 -29.101 19.445 c -36.119 8.942 -24.543 6.076 -23.097 9.567 c -21.651 13.058 -31.863 19.217 -34.327 6.828 c -36.792 -5.561 -25 -3.778 -25 0 c -25 3.778 -36.792 5.561 -34.327 -6.828 c -31.863 -19.217 -21.651 -13.058 -23.097 -9.567 c -24.543 -6.076 -36.119 -8.942 -29.101 -19.445 c -22.084 -29.948 -15.006 -20.349 -17.678 -17.678 c -20.349 -15.006 -29.948 -22.084 -19.445 -29.101 c -8.942 -36.119 -6.076 -24.543 -9.567 -23.097 c -13.058 -21.651 -19.217 -31.863 -6.828 -34.327 c 5.561 -36.792 3.778 -25 0 -25 c -3.778 -25 -5.561 -36.792 6.828 -34.327 c 19.217 -31.863 13.058 -21.651 9.567 -23.097 c 6.076 -24.543 8.942 -36.119 19.445 -29.101 c 29.948 -22.084 20.349 -15.006 17.678 -17.678 c 15.006 -20.349 22.084 -29.948 29.101 -19.445 c 36.119 -8.942 24.543 -6.076 23.097 -9.567 c 21.651 -13.058 31.863 -19.217 34.327 -6.828 c 36.792 5.561 25 3.778 25 0 c 25 -3.778 36.792 -5.561 34.327 6.828 c S}
-\axo@setObject{77}%
-{AxoGluonCirc 40 40 30 0 5 16 -0.5 0 1.3;}%
-{ 1.3 w 0.8 w 1 0 0 1 40 40 cm 0.981 0.195 -0.195 0.981 0 0 cm 34.327 6.828 m 31.863 19.217 21.651 13.058 23.097 9.567 c 24.543 6.076 36.119 8.942 29.101 19.445 c 22.084 29.948 15.006 20.349 17.678 17.678 c 20.349 15.006 29.948 22.084 19.445 29.101 c 8.942 36.119 6.076 24.543 9.567 23.097 c 13.058 21.651 19.217 31.863 6.828 34.327 c -5.561 36.792 -3.778 25 0 25 c 3.778 25 5.561 36.792 -6.828 34.327 c -19.217 31.863 -13.058 21.651 -9.567 23.097 c -6.076 24.543 -8.942 36.119 -19.445 29.101 c -29.948 22.084 -20.349 15.006 -17.678 17.678 c -15.006 20.349 -22.084 29.948 -29.101 19.445 c -36.119 8.942 -24.543 6.076 -23.097 9.567 c -21.651 13.058 -31.863 19.217 -34.327 6.828 c -36.792 -5.561 -25 -3.778 -25 0 c -25 3.778 -36.792 5.561 -34.327 -6.828 c -31.863 -19.217 -21.651 -13.058 -23.097 -9.567 c -24.543 -6.076 -36.119 -8.942 -29.101 -19.445 c -22.084 -29.948 -15.006 -20.349 -17.678 -17.678 c -20.349 -15.006 -29.948 -22.084 -19.445 -29.101 c -8.942 -36.119 -6.076 -24.543 -9.567 -23.097 c -13.058 -21.651 -19.217 -31.863 -6.828 -34.327 c 5.561 -36.792 3.778 -25 0 -25 c -3.778 -25 -5.561 -36.792 6.828 -34.327 c 19.217 -31.863 13.058 -21.651 9.567 -23.097 c 6.076 -24.543 8.942 -36.119 19.445 -29.101 c 29.948 -22.084 20.349 -15.006 17.678 -17.678 c 15.006 -20.349 22.084 -29.948 29.101 -19.445 c 36.119 -8.942 24.543 -6.076 23.097 -9.567 c 21.651 -13.058 31.863 -19.217 34.327 -6.828 c 36.792 5.561 25 3.778 25 0 c 25 -3.778 36.792 -5.561 34.327 6.828 c S}
-\axo@setObject{78}%
-{Grid 0 0 10 10 8 8 0.5;}%
-{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 0 0 m 80 0 l S 0 10 m 80 10 l S 0 20 m 80 20 l S 0 30 m 80 30 l S 0 40 m 80 40 l S 0 50 m 80 50 l S 0 60 m 80 60 l S 0 70 m 80 70 l S 0 80 m 80 80 l S}
-\axo@setObject{79}%
-{AxoGluonCirc 40 40 30 0 5 16 0 1.5 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 40 40 cm 0.981 0.195 -0.195 0.981 0 0 cm [ 1.524] 0.762 d 34.327 6.828 m 31.863 19.217 21.651 13.058 23.097 9.567 c 24.543 6.076 36.119 8.942 29.101 19.445 c 22.084 29.948 15.006 20.349 17.678 17.678 c 20.349 15.006 29.948 22.084 19.445 29.101 c 8.942 36.119 6.076 24.543 9.567 23.097 c 13.058 21.651 19.217 31.863 6.828 34.327 c -5.561 36.792 -3.778 25 0 25 c 3.778 25 5.561 36.792 -6.828 34.327 c -19.217 31.863 -13.058 21.651 -9.567 23.097 c -6.076 24.543 -8.942 36.119 -19.445 29.101 c -29.948 22.084 -20.349 15.006 -17.678 17.678 c -15.006 20.349 -22.084 29.948 -29.101 19.445 c -36.119 8.942 -24.543 6.076 -23.097 9.567 c -21.651 13.058 -31.863 19.217 -34.327 6.828 c -36.792 -5.561 -25 -3.778 -25 0 c -25 3.778 -36.792 5.561 -34.327 -6.828 c -31.863 -19.217 -21.651 -13.058 -23.097 -9.567 c -24.543 -6.076 -36.119 -8.942 -29.101 -19.445 c -22.084 -29.948 -15.006 -20.349 -17.678 -17.678 c -20.349 -15.006 -29.948 -22.084 -19.445 -29.101 c -8.942 -36.119 -6.076 -24.543 -9.567 -23.097 c -13.058 -21.651 -19.217 -31.863 -6.828 -34.327 c 5.561 -36.792 3.778 -25 0 -25 c -3.778 -25 -5.561 -36.792 6.828 -34.327 c 19.217 -31.863 13.058 -21.651 9.567 -23.097 c 6.076 -24.543 8.942 -36.119 19.445 -29.101 c 29.948 -22.084 20.349 -15.006 17.678 -17.678 c 15.006 -20.349 22.084 -29.948 29.101 -19.445 c 36.119 -8.942 24.543 -6.076 23.097 -9.567 c 21.651 -13.058 31.863 -19.217 34.327 -6.828 c 36.792 5.561 25 3.778 25 0 c 25 -3.778 36.792 -5.561 34.327 6.828 c S}
-\axo@setObject{80}%
-{Grid 0 0 10 10 8 8 0.5;}%
-{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 0 0 m 80 0 l S 0 10 m 80 10 l S 0 20 m 80 20 l S 0 30 m 80 30 l S 0 40 m 80 40 l S 0 50 m 80 50 l S 0 60 m 80 60 l S 0 70 m 80 70 l S 0 80 m 80 80 l S}
-\axo@setObject{81}%
-{AxoGluonCirc 40 40 30 0 5 16 0.5 1.5 1.3;}%
-{ 1.3 w 1.8 w 1 0 0 1 40 40 cm 0.981 0.195 -0.195 0.981 0 0 cm [ 1.524] 0.762 d 34.327 6.828 m 31.863 19.217 21.651 13.058 23.097 9.567 c 24.543 6.076 36.119 8.942 29.101 19.445 c 22.084 29.948 15.006 20.349 17.678 17.678 c 20.349 15.006 29.948 22.084 19.445 29.101 c 8.942 36.119 6.076 24.543 9.567 23.097 c 13.058 21.651 19.217 31.863 6.828 34.327 c -5.561 36.792 -3.778 25 0 25 c 3.778 25 5.561 36.792 -6.828 34.327 c -19.217 31.863 -13.058 21.651 -9.567 23.097 c -6.076 24.543 -8.942 36.119 -19.445 29.101 c -29.948 22.084 -20.349 15.006 -17.678 17.678 c -15.006 20.349 -22.084 29.948 -29.101 19.445 c -36.119 8.942 -24.543 6.076 -23.097 9.567 c -21.651 13.058 -31.863 19.217 -34.327 6.828 c -36.792 -5.561 -25 -3.778 -25 0 c -25 3.778 -36.792 5.561 -34.327 -6.828 c -31.863 -19.217 -21.651 -13.058 -23.097 -9.567 c -24.543 -6.076 -36.119 -8.942 -29.101 -19.445 c -22.084 -29.948 -15.006 -20.349 -17.678 -17.678 c -20.349 -15.006 -29.948 -22.084 -19.445 -29.101 c -8.942 -36.119 -6.076 -24.543 -9.567 -23.097 c -13.058 -21.651 -19.217 -31.863 -6.828 -34.327 c 5.561 -36.792 3.778 -25 0 -25 c -3.778 -25 -5.561 -36.792 6.828 -34.327 c 19.217 -31.863 13.058 -21.651 9.567 -23.097 c 6.076 -24.543 8.942 -36.119 19.445 -29.101 c 29.948 -22.084 20.349 -15.006 17.678 -17.678 c 15.006 -20.349 22.084 -29.948 29.101 -19.445 c 36.119 -8.942 24.543 -6.076 23.097 -9.567 c 21.651 -13.058 31.863 -19.217 34.327 -6.828 c 36.792 5.561 25 3.778 25 0 c 25 -3.778 36.792 -5.561 34.327 6.828 c S}
-\axo@setObject{82}%
-{AxoGluonCirc 40 40 30 0 5 16 -0.5 0 1.3;}%
-{ 1.3 w 0.8 w 1 0 0 1 40 40 cm 0.981 0.195 -0.195 0.981 0 0 cm 34.327 6.828 m 31.863 19.217 21.651 13.058 23.097 9.567 c 24.543 6.076 36.119 8.942 29.101 19.445 c 22.084 29.948 15.006 20.349 17.678 17.678 c 20.349 15.006 29.948 22.084 19.445 29.101 c 8.942 36.119 6.076 24.543 9.567 23.097 c 13.058 21.651 19.217 31.863 6.828 34.327 c -5.561 36.792 -3.778 25 0 25 c 3.778 25 5.561 36.792 -6.828 34.327 c -19.217 31.863 -13.058 21.651 -9.567 23.097 c -6.076 24.543 -8.942 36.119 -19.445 29.101 c -29.948 22.084 -20.349 15.006 -17.678 17.678 c -15.006 20.349 -22.084 29.948 -29.101 19.445 c -36.119 8.942 -24.543 6.076 -23.097 9.567 c -21.651 13.058 -31.863 19.217 -34.327 6.828 c -36.792 -5.561 -25 -3.778 -25 0 c -25 3.778 -36.792 5.561 -34.327 -6.828 c -31.863 -19.217 -21.651 -13.058 -23.097 -9.567 c -24.543 -6.076 -36.119 -8.942 -29.101 -19.445 c -22.084 -29.948 -15.006 -20.349 -17.678 -17.678 c -20.349 -15.006 -29.948 -22.084 -19.445 -29.101 c -8.942 -36.119 -6.076 -24.543 -9.567 -23.097 c -13.058 -21.651 -19.217 -31.863 -6.828 -34.327 c 5.561 -36.792 3.778 -25 0 -25 c -3.778 -25 -5.561 -36.792 6.828 -34.327 c 19.217 -31.863 13.058 -21.651 9.567 -23.097 c 6.076 -24.543 8.942 -36.119 19.445 -29.101 c 29.948 -22.084 20.349 -15.006 17.678 -17.678 c 15.006 -20.349 22.084 -29.948 29.101 -19.445 c 36.119 -8.942 24.543 -6.076 23.097 -9.567 c 21.651 -13.058 31.863 -19.217 34.327 -6.828 c 36.792 5.561 25 3.778 25 0 c 25 -3.778 36.792 -5.561 34.327 6.828 c S}
-\axo@setObject{83}%
-{Grid 0 0 10 10 9 4 0.5;}%
-{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
-\axo@setObject{84}%
-{AxoPhoton 10 20 80 20 5 7 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 10 20 cm 0 0 m 2.122 6.667 2.878 6.667 5 0 c 7.122 -6.667 7.878 -6.667 10 0 c 12.122 6.667 12.878 6.667 15 0 c 17.122 -6.667 17.878 -6.667 20 0 c 22.122 6.667 22.878 6.667 25 0 c 27.122 -6.667 27.878 -6.667 30 0 c 32.122 6.667 32.878 6.667 35 0 c 37.122 -6.667 37.878 -6.667 40 0 c 42.122 6.667 42.878 6.667 45 0 c 47.122 -6.667 47.878 -6.667 50 0 c 52.122 6.667 52.878 6.667 55 0 c 57.122 -6.667 57.878 -6.667 60 0 c 62.122 6.667 62.878 6.667 65 0 c 67.122 -6.667 67.878 -6.667 70 0 c S}
-\axo@setObject{85}%
-{Grid 0 0 10 10 9 4 0.5;}%
-{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
-\axo@setObject{86}%
-{AxoPhoton 10 20 80 20 5 7 1.3 0 0.5;}%
-{ 0.5 w 1 0 0 1 10 20 cm q 1.8 w 0 0 m 2.122 6.667 2.878 6.667 5 0 c 7.122 -6.667 7.878 -6.667 10 0 c 12.122 6.667 12.878 6.667 15 0 c 17.122 -6.667 17.878 -6.667 20 0 c 22.122 6.667 22.878 6.667 25 0 c 27.122 -6.667 27.878 -6.667 30 0 c 32.122 6.667 32.878 6.667 35 0 c 37.122 -6.667 37.878 -6.667 40 0 c 42.122 6.667 42.878 6.667 45 0 c 47.122 -6.667 47.878 -6.667 50 0 c 52.122 6.667 52.878 6.667 55 0 c 57.122 -6.667 57.878 -6.667 60 0 c 62.122 6.667 62.878 6.667 65 0 c 67.122 -6.667 67.878 -6.667 70 0 c S Q q 0.8 w 0 0 0 0 K 0 0 m 2.122 6.667 2.878 6.667 5 0 c 7.122 -6.667 7.878 -6.667 10 0 c 12.122 6.667 12.878 6.667 15 0 c 17.122 -6.667 17.878 -6.667 20 0 c 22.122 6.667 22.878 6.667 25 0 c 27.122 -6.667 27.878 -6.667 30 0 c 32.122 6.667 32.878 6.667 35 0 c 37.122 -6.667 37.878 -6.667 40 0 c 42.122 6.667 42.878 6.667 45 0 c 47.122 -6.667 47.878 -6.667 50 0 c 52.122 6.667 52.878 6.667 55 0 c 57.122 -6.667 57.878 -6.667 60 0 c 62.122 6.667 62.878 6.667 65 0 c 67.122 -6.667 67.878 -6.667 70 0 c S Q}
-\axo@setObject{87}%
-{Grid 0 0 10 10 9 4 0.5;}%
-{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
-\axo@setObject{88}%
-{AxoPhoton 10 20 80 20 5 7 0 1 0.5;}%
-{ 0.5 w 1 0 0 1 10 20 cm [ 0.958] 0.479 d 0 0 m 2.122 6.667 2.878 6.667 5 0 c 7.122 -6.667 7.878 -6.667 10 0 c 12.122 6.667 12.878 6.667 15 0 c 17.122 -6.667 17.878 -6.667 20 0 c 22.122 6.667 22.878 6.667 25 0 c 27.122 -6.667 27.878 -6.667 30 0 c 32.122 6.667 32.878 6.667 35 0 c 37.122 -6.667 37.878 -6.667 40 0 c 42.122 6.667 42.878 6.667 45 0 c 47.122 -6.667 47.878 -6.667 50 0 c 52.122 6.667 52.878 6.667 55 0 c 57.122 -6.667 57.878 -6.667 60 0 c 62.122 6.667 62.878 6.667 65 0 c 67.122 -6.667 67.878 -6.667 70 0 c S}
-\axo@setObject{89}%
-{Grid 0 0 10 10 9 4 0.5;}%
-{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
-\axo@setObject{90}%
-{AxoPhoton 10 20 80 20 5 7 1.3 1 0.5;}%
-{ 0.5 w 1 0 0 1 10 20 cm [ 0.958] 0.479 d q 1.8 w 0 0 m 2.122 6.667 2.878 6.667 5 0 c 7.122 -6.667 7.878 -6.667 10 0 c 12.122 6.667 12.878 6.667 15 0 c 17.122 -6.667 17.878 -6.667 20 0 c 22.122 6.667 22.878 6.667 25 0 c 27.122 -6.667 27.878 -6.667 30 0 c 32.122 6.667 32.878 6.667 35 0 c 37.122 -6.667 37.878 -6.667 40 0 c 42.122 6.667 42.878 6.667 45 0 c 47.122 -6.667 47.878 -6.667 50 0 c 52.122 6.667 52.878 6.667 55 0 c 57.122 -6.667 57.878 -6.667 60 0 c 62.122 6.667 62.878 6.667 65 0 c 67.122 -6.667 67.878 -6.667 70 0 c S Q q 0.8 w 0 0 0 0 K 0 0 m 2.122 6.667 2.878 6.667 5 0 c 7.122 -6.667 7.878 -6.667 10 0 c 12.122 6.667 12.878 6.667 15 0 c 17.122 -6.667 17.878 -6.667 20 0 c 22.122 6.667 22.878 6.667 25 0 c 27.122 -6.667 27.878 -6.667 30 0 c 32.122 6.667 32.878 6.667 35 0 c 37.122 -6.667 37.878 -6.667 40 0 c 42.122 6.667 42.878 6.667 45 0 c 47.122 -6.667 47.878 -6.667 50 0 c 52.122 6.667 52.878 6.667 55 0 c 57.122 -6.667 57.878 -6.667 60 0 c 62.122 6.667 62.878 6.667 65 0 c 67.122 -6.667 67.878 -6.667 70 0 c S Q}
-\axo@setObject{91}%
-{Grid 0 0 10 10 9 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
-\axo@setObject{92}%
-{AxoPhotonArc 45 0 40 20 160 5 8 0 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 45 0 cm 0.94 0.342 -0.342 0.94 0 0 cm 40 0 m 46.644 2.584 46.495 4.542 39.534 6.085 c 32.484 7.648 32.517 7.508 38.149 12.028 c 43.708 16.491 42.977 18.313 35.875 17.692 c 28.681 17.062 28.754 16.939 32.766 22.943 c 36.727 28.871 35.481 30.389 28.895 27.661 c 22.223 24.897 22.33 24.801 24.35 31.734 c 26.345 38.578 24.701 39.651 19.24 35.069 c 13.707 30.427 13.838 30.368 13.681 37.588 c 13.525 44.715 11.634 45.244 7.804 39.231 c 3.923 33.141 4.066 33.124 1.745 39.962 c -0.547 46.713 -2.509 46.648 -4.355 39.762 c -6.224 32.787 -6.083 32.813 -10.353 38.637 c -14.568 44.386 -16.421 43.735 -16.11 36.612 c -15.795 29.398 -15.668 29.466 -21.492 33.736 c -27.241 37.951 -28.812 36.773 -26.374 30.074 c -23.904 23.288 -23.803 23.39 -30.642 25.712 c S}
-\axo@setObject{93}%
-{Grid 0 0 10 10 9 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
-\axo@setObject{94}%
-{AxoPhotonArc 45 0 40 20 160 5 8 1.3 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 45 0 cm 0.94 0.342 -0.342 0.94 0 0 cm q 1.8 w 40 0 m 46.644 2.584 46.495 4.542 39.534 6.085 c 32.484 7.648 32.517 7.508 38.149 12.028 c 43.708 16.491 42.977 18.313 35.875 17.692 c 28.681 17.062 28.754 16.939 32.766 22.943 c 36.727 28.871 35.481 30.389 28.895 27.661 c 22.223 24.897 22.33 24.801 24.35 31.734 c 26.345 38.578 24.701 39.651 19.24 35.069 c 13.707 30.427 13.838 30.368 13.681 37.588 c 13.525 44.715 11.634 45.244 7.804 39.231 c 3.923 33.141 4.066 33.124 1.745 39.962 c -0.547 46.713 -2.509 46.648 -4.355 39.762 c -6.224 32.787 -6.083 32.813 -10.353 38.637 c -14.568 44.386 -16.421 43.735 -16.11 36.612 c -15.795 29.398 -15.668 29.466 -21.492 33.736 c -27.241 37.951 -28.812 36.773 -26.374 30.074 c -23.904 23.288 -23.803 23.39 -30.642 25.712 c S Q q 0.8 w 0 0 0 0 K 40 0 m 46.644 2.584 46.495 4.542 39.534 6.085 c 32.484 7.648 32.517 7.508 38.149 12.028 c 43.708 16.491 42.977 18.313 35.875 17.692 c 28.681 17.062 28.754 16.939 32.766 22.943 c 36.727 28.871 35.481 30.389 28.895 27.661 c 22.223 24.897 22.33 24.801 24.35 31.734 c 26.345 38.578 24.701 39.651 19.24 35.069 c 13.707 30.427 13.838 30.368 13.681 37.588 c 13.525 44.715 11.634 45.244 7.804 39.231 c 3.923 33.141 4.066 33.124 1.745 39.962 c -0.547 46.713 -2.509 46.648 -4.355 39.762 c -6.224 32.787 -6.083 32.813 -10.353 38.637 c -14.568 44.386 -16.421 43.735 -16.11 36.612 c -15.795 29.398 -15.668 29.466 -21.492 33.736 c -27.241 37.951 -28.812 36.773 -26.374 30.074 c -23.904 23.288 -23.803 23.39 -30.642 25.712 c S Q}
-\axo@setObject{95}%
-{Grid 0 0 10 10 9 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
-\axo@setObject{96}%
-{AxoPhotonArc 45 0 40 20 160 5 8 0 1.5 0 0.5;}%
-{ 0.5 w 1 0 0 1 45 0 cm 0.94 0.342 -0.342 0.94 0 0 cm [ 1.512] 0.594 d 40 0 m 46.644 2.584 46.495 4.542 39.534 6.085 c 32.484 7.648 32.517 7.508 38.149 12.028 c 43.708 16.491 42.977 18.313 35.875 17.692 c 28.681 17.062 28.754 16.939 32.766 22.943 c 36.727 28.871 35.481 30.389 28.895 27.661 c 22.223 24.897 22.33 24.801 24.35 31.734 c 26.345 38.578 24.701 39.651 19.24 35.069 c 13.707 30.427 13.838 30.368 13.681 37.588 c 13.525 44.715 11.634 45.244 7.804 39.231 c 3.923 33.141 4.066 33.124 1.745 39.962 c -0.547 46.713 -2.509 46.648 -4.355 39.762 c -6.224 32.787 -6.083 32.813 -10.353 38.637 c -14.568 44.386 -16.421 43.735 -16.11 36.612 c -15.795 29.398 -15.668 29.466 -21.492 33.736 c -27.241 37.951 -28.812 36.773 -26.374 30.074 c -23.904 23.288 -23.803 23.39 -30.642 25.712 c S}
-\axo@setObject{97}%
-{Grid 0 0 10 10 9 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
-\axo@setObject{98}%
-{AxoPhotonArc 45 0 40 20 160 5 8 1.3 1.5 0 0.5;}%
-{ 0.5 w 1 0 0 1 45 0 cm 0.94 0.342 -0.342 0.94 0 0 cm q [ 1.512] 0.594 d 1.8 w 40 0 m 46.644 2.584 46.495 4.542 39.534 6.085 c 32.484 7.648 32.517 7.508 38.149 12.028 c 43.708 16.491 42.977 18.313 35.875 17.692 c 28.681 17.062 28.754 16.939 32.766 22.943 c 36.727 28.871 35.481 30.389 28.895 27.661 c 22.223 24.897 22.33 24.801 24.35 31.734 c 26.345 38.578 24.701 39.651 19.24 35.069 c 13.707 30.427 13.838 30.368 13.681 37.588 c 13.525 44.715 11.634 45.244 7.804 39.231 c 3.923 33.141 4.066 33.124 1.745 39.962 c -0.547 46.713 -2.509 46.648 -4.355 39.762 c -6.224 32.787 -6.083 32.813 -10.353 38.637 c -14.568 44.386 -16.421 43.735 -16.11 36.612 c -15.795 29.398 -15.668 29.466 -21.492 33.736 c -27.241 37.951 -28.812 36.773 -26.374 30.074 c -23.904 23.288 -23.803 23.39 -30.642 25.712 c S Q q [] 0 d 0.8 w 0 0 0 0 K 40 0 m 46.644 2.584 46.495 4.542 39.534 6.085 c 32.484 7.648 32.517 7.508 38.149 12.028 c 43.708 16.491 42.977 18.313 35.875 17.692 c 28.681 17.062 28.754 16.939 32.766 22.943 c 36.727 28.871 35.481 30.389 28.895 27.661 c 22.223 24.897 22.33 24.801 24.35 31.734 c 26.345 38.578 24.701 39.651 19.24 35.069 c 13.707 30.427 13.838 30.368 13.681 37.588 c 13.525 44.715 11.634 45.244 7.804 39.231 c 3.923 33.141 4.066 33.124 1.745 39.962 c -0.547 46.713 -2.509 46.648 -4.355 39.762 c -6.224 32.787 -6.083 32.813 -10.353 38.637 c -14.568 44.386 -16.421 43.735 -16.11 36.612 c -15.795 29.398 -15.668 29.466 -21.492 33.736 c -27.241 37.951 -28.812 36.773 -26.374 30.074 c -23.904 23.288 -23.803 23.39 -30.642 25.712 c S Q}
-\axo@setObject{99}%
-{Grid 0 0 10 10 9 4 0.5;}%
-{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
-\axo@setObject{100}%
-{AxoZigZag 10 20 80 20 5 7.5 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 10 20 cm 0 0 m 2.333 5 l 4.667 0 l 7 -5 l 9.333 0 l 11.667 5 l 14 0 l 16.333 -5 l 18.667 0 l 21 5 l 23.333 0 l 25.667 -5 l 28 0 l 30.333 5 l 32.667 0 l 35 -5 l 37.333 0 l 39.667 5 l 42 0 l 44.333 -5 l 46.667 0 l 49 5 l 51.333 0 l 53.667 -5 l 56 0 l 58.333 5 l 60.667 0 l 63 -5 l 65.333 0 l 67.667 5 l 70 0 l S}
-\axo@setObject{101}%
-{Grid 0 0 10 10 9 4 0.5;}%
-{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
-\axo@setObject{102}%
-{AxoZigZag 10 20 80 20 5 7 1.5 0 0.5;}%
-{ 0.5 w 1 0 0 1 10 20 cm q 2 w 0 0 m 2.5 5 l 5 0 l 7.5 -5 l 10 0 l 12.5 5 l 15 0 l 17.5 -5 l 20 0 l 22.5 5 l 25 0 l 27.5 -5 l 30 0 l 32.5 5 l 35 0 l 37.5 -5 l 40 0 l 42.5 5 l 45 0 l 47.5 -5 l 50 0 l 52.5 5 l 55 0 l 57.5 -5 l 60 0 l 62.5 5 l 65 0 l 67.5 -5 l 70 0 l S Q q 1 w 0 0 0 0 K 0 0 m 2.5 5 l 5 0 l 7.5 -5 l 10 0 l 12.5 5 l 15 0 l 17.5 -5 l 20 0 l 22.5 5 l 25 0 l 27.5 -5 l 30 0 l 32.5 5 l 35 0 l 37.5 -5 l 40 0 l 42.5 5 l 45 0 l 47.5 -5 l 50 0 l 52.5 5 l 55 0 l 57.5 -5 l 60 0 l 62.5 5 l 65 0 l 67.5 -5 l 70 0 l S Q}
-\axo@setObject{103}%
-{Grid 0 0 10 10 9 4 0.5;}%
-{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
-\axo@setObject{104}%
-{AxoZigZag 10 20 80 20 5 7 1.3 0 0.5;}%
-{ 0.5 w 1 0 0 1 10 20 cm q 1.8 w 0 0 m 2.5 5 l 5 0 l 7.5 -5 l 10 0 l 12.5 5 l 15 0 l 17.5 -5 l 20 0 l 22.5 5 l 25 0 l 27.5 -5 l 30 0 l 32.5 5 l 35 0 l 37.5 -5 l 40 0 l 42.5 5 l 45 0 l 47.5 -5 l 50 0 l 52.5 5 l 55 0 l 57.5 -5 l 60 0 l 62.5 5 l 65 0 l 67.5 -5 l 70 0 l S Q q 0.8 w 0 0 0 0 K 0 0 m 2.5 5 l 5 0 l 7.5 -5 l 10 0 l 12.5 5 l 15 0 l 17.5 -5 l 20 0 l 22.5 5 l 25 0 l 27.5 -5 l 30 0 l 32.5 5 l 35 0 l 37.5 -5 l 40 0 l 42.5 5 l 45 0 l 47.5 -5 l 50 0 l 52.5 5 l 55 0 l 57.5 -5 l 60 0 l 62.5 5 l 65 0 l 67.5 -5 l 70 0 l S Q}
-\axo@setObject{105}%
-{Grid 0 0 10 10 9 4 0.5;}%
-{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
-\axo@setObject{106}%
-{AxoZigZag 10 20 80 20 5 7 0 1 0.5;}%
-{ 0.5 w 1 0 0 1 10 20 cm [ 0.932] 0.466 d 0 0 m 2.5 5 l 5 0 l 7.5 -5 l 10 0 l 12.5 5 l 15 0 l 17.5 -5 l 20 0 l 22.5 5 l 25 0 l 27.5 -5 l 30 0 l 32.5 5 l 35 0 l 37.5 -5 l 40 0 l 42.5 5 l 45 0 l 47.5 -5 l 50 0 l 52.5 5 l 55 0 l 57.5 -5 l 60 0 l 62.5 5 l 65 0 l 67.5 -5 l 70 0 l S}
-\axo@setObject{107}%
-{Grid 0 0 10 10 9 4 0.5;}%
-{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
-\axo@setObject{108}%
-{AxoZigZag 10 20 80 20 5 7 1.3 1 0.5;}%
-{ 0.5 w 1 0 0 1 10 20 cm [ 0.932] 0.466 d q 1.8 w 0 0 m 2.5 5 l 5 0 l 7.5 -5 l 10 0 l 12.5 5 l 15 0 l 17.5 -5 l 20 0 l 22.5 5 l 25 0 l 27.5 -5 l 30 0 l 32.5 5 l 35 0 l 37.5 -5 l 40 0 l 42.5 5 l 45 0 l 47.5 -5 l 50 0 l 52.5 5 l 55 0 l 57.5 -5 l 60 0 l 62.5 5 l 65 0 l 67.5 -5 l 70 0 l S Q [] 0 d q 0.8 w 0 0 0 0 K 0 0 m 2.5 5 l 5 0 l 7.5 -5 l 10 0 l 12.5 5 l 15 0 l 17.5 -5 l 20 0 l 22.5 5 l 25 0 l 27.5 -5 l 30 0 l 32.5 5 l 35 0 l 37.5 -5 l 40 0 l 42.5 5 l 45 0 l 47.5 -5 l 50 0 l 52.5 5 l 55 0 l 57.5 -5 l 60 0 l 62.5 5 l 65 0 l 67.5 -5 l 70 0 l S Q}
-\axo@setObject{109}%
-{Grid 0 0 10 10 9 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
-\axo@setObject{110}%
-{AxoZigZagArc 45 0 40 20 160 5 8 0 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 45 0 cm 37.588 13.681 m 40.989 18.572 l 29.312 19.126 l 33.507 30.038 l 22.204 27.055 l 22.924 38.723 l 13.04 32.48 l 10.218 43.824 l 2.67 34.898 l -3.433 44.869 l -7.948 34.086 l -16.766 41.76 l -17.83 30.118 l -28.548 34.785 l -26.061 23.363 l -37.687 24.591 l -31.88 14.445 l -37.588 13.681 l S}
-\axo@setObject{111}%
-{Grid 0 0 10 10 9 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
-\axo@setObject{112}%
-{AxoZigZagArc 45 0 40 20 160 5 8 1.3 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 45 0 cm q 1.8 w 37.588 13.681 m 40.989 18.572 l 29.312 19.126 l 33.507 30.038 l 22.204 27.055 l 22.924 38.723 l 13.04 32.48 l 10.218 43.824 l 2.67 34.898 l -3.433 44.869 l -7.948 34.086 l -16.766 41.76 l -17.83 30.118 l -28.548 34.785 l -26.061 23.363 l -37.687 24.591 l -31.88 14.445 l -37.588 13.681 l S Q q 0.8 w 0 0 0 0 K 37.588 13.681 m 40.989 18.572 l 29.312 19.126 l 33.507 30.038 l 22.204 27.055 l 22.924 38.723 l 13.04 32.48 l 10.218 43.824 l 2.67 34.898 l -3.433 44.869 l -7.948 34.086 l -16.766 41.76 l -17.83 30.118 l -28.548 34.785 l -26.061 23.363 l -37.687 24.591 l -31.88 14.445 l -37.588 13.681 l S Q}
-\axo@setObject{113}%
-{Grid 0 0 10 10 9 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
-\axo@setObject{114}%
-{AxoZigZagArc 45 0 40 20 160 5 8 0 1.5 0 0.5;}%
-{ 0.5 w 1 0 0 1 45 0 cm [ 1.461] 0.618 d 37.588 13.681 m 40.989 18.572 l 29.312 19.126 l 33.507 30.038 l 22.204 27.055 l 22.924 38.723 l 13.04 32.48 l 10.218 43.824 l 2.67 34.898 l -3.433 44.869 l -7.948 34.086 l -16.766 41.76 l -17.83 30.118 l -28.548 34.785 l -26.061 23.363 l -37.687 24.591 l -31.88 14.445 l -37.588 13.681 l S}
-\axo@setObject{115}%
-{Grid 0 0 10 10 9 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
-\axo@setObject{116}%
-{AxoZigZagArc 45 0 40 20 160 5 8 1.3 1.5 0 0.5;}%
-{ 0.5 w 1 0 0 1 45 0 cm q [ 1.461] 0.618 d 1.8 w 37.588 13.681 m 40.989 18.572 l 29.312 19.126 l 33.507 30.038 l 22.204 27.055 l 22.924 38.723 l 13.04 32.48 l 10.218 43.824 l 2.67 34.898 l -3.433 44.869 l -7.948 34.086 l -16.766 41.76 l -17.83 30.118 l -28.548 34.785 l -26.061 23.363 l -37.687 24.591 l -31.88 14.445 l -37.588 13.681 l S Q q [] 0 d 0.8 w 0 0 0 0 K 37.588 13.681 m 40.989 18.572 l 29.312 19.126 l 33.507 30.038 l 22.204 27.055 l 22.924 38.723 l 13.04 32.48 l 10.218 43.824 l 2.67 34.898 l -3.433 44.869 l -7.948 34.086 l -16.766 41.76 l -17.83 30.118 l -28.548 34.785 l -26.061 23.363 l -37.687 24.591 l -31.88 14.445 l -37.588 13.681 l S Q}
-\axo@setObject{117}%
-{Grid 0 0 10 10 8 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 0 0 m 80 0 l S 0 10 m 80 10 l S 0 20 m 80 20 l S 0 30 m 80 30 l S 0 40 m 80 40 l S 0 50 m 80 50 l S}
-\axo@setObject{118}%
-{AxoLine 10 10 70 10 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 10 10 m 70 10 l S}
-\axo@setObject{119}%
-{AxoPhoton 40 10 40 40 4 3 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 40 10 cm 0 1 -1 0 0 0 cm 0 0 m 2.122 5.333 2.878 5.333 5 0 c 7.122 -5.333 7.878 -5.333 10 0 c 12.122 5.333 12.878 5.333 15 0 c 17.122 -5.333 17.878 -5.333 20 0 c 22.122 5.333 22.878 5.333 25 0 c 27.122 -5.333 27.878 -5.333 30 0 c S}
-\axo@setObject{120}%
-{Vertex 40 10 1.5 0.5;}%
-{ 0.5 w 1 0 0 1 40 10 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f}
-\axo@setObject{121}%
-{Grid 0 0 10 10 6 6 0.5;}%
-{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S 0 60 m 60 60 l S}
-\axo@setObject{122}%
-{AxoLine 0 0 60 60 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 0 0 m 60 60 l S}
-\axo@setObject{123}%
-{ECirc 30 30 20 0.5;}%
-{ 0.5 w 1 0 0 1 30 30 cm -20 0 m -20 11.046 -11.046 20 0 20 c 11.046 20 20 11.046 20 0 c 20 -11.046 11.046 -20 0 -20 c -11.046 -20 -20 -11.046 -20 0 c S}
-\axo@setObject{124}%
-{Grid 0 0 10 10 6 6 0.5;}%
-{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S 0 60 m 60 60 l S}
-\axo@setObject{125}%
-{AxoLine 0 0 60 60 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 0 0 m 60 60 l S}
-\axo@setObject{126}%
-{Vertex 30 30 20 0.5;}%
-{ 0.5 w 1 0 0 1 30 30 cm -20 0 m -20 11.046 -11.046 20 0 20 c 11.046 20 20 11.046 20 0 c 20 -11.046 11.046 -20 0 -20 c -11.046 -20 -20 -11.046 -20 0 c f}
-\axo@setObject{127}%
-{ECirc 30 30 20 0.5;}%
-{ 0.5 w 1 0 0 1 30 30 cm -20 0 m -20 11.046 -11.046 20 0 20 c 11.046 20 20 11.046 20 0 c 20 -11.046 11.046 -20 0 -20 c -11.046 -20 -20 -11.046 -20 0 c S}
-\axo@setObject{128}%
-{AxoLine 60 0 0 60 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 60 0 m 0 60 l S}
-\axo@setObject{129}%
-{Grid 0 0 10 10 6 6 0.5;}%
-{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S 0 60 m 60 60 l S}
-\axo@setObject{130}%
-{AxoLine 0 0 60 60 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 0 0 m 60 60 l S}
-\axo@setObject{131}%
-{Vertex 30 30 20 0.5;}%
-{ 0.5 w 1 0 0 1 30 30 cm -20 0 m -20 11.046 -11.046 20 0 20 c 11.046 20 20 11.046 20 0 c 20 -11.046 11.046 -20 0 -20 c -11.046 -20 -20 -11.046 -20 0 c f}
-\axo@setObject{132}%
-{ECirc 30 30 20 0.5;}%
-{ 0.5 w 1 0 0 1 30 30 cm -20 0 m -20 11.046 -11.046 20 0 20 c 11.046 20 20 11.046 20 0 c 20 -11.046 11.046 -20 0 -20 c -11.046 -20 -20 -11.046 -20 0 c S}
-\axo@setObject{133}%
-{AxoLine 60 0 0 60 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 60 0 m 0 60 l S}
-\axo@setObject{134}%
-{Grid 0 0 10 10 6 6 0.5;}%
-{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S 0 60 m 60 60 l S}
-\axo@setObject{135}%
-{AxoLine 0 0 60 60 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 0 0 m 60 60 l S}
-\axo@setObject{136}%
-{Vertex 30 30 20 0.5;}%
-{ 0.5 w 1 0 0 1 30 30 cm -20 0 m -20 11.046 -11.046 20 0 20 c 11.046 20 20 11.046 20 0 c 20 -11.046 11.046 -20 0 -20 c -11.046 -20 -20 -11.046 -20 0 c f}
-\axo@setObject{137}%
-{ECirc 30 30 20 0.5;}%
-{ 0.5 w 1 0 0 1 30 30 cm -20 0 m -20 11.046 -11.046 20 0 20 c 11.046 20 20 11.046 20 0 c 20 -11.046 11.046 -20 0 -20 c -11.046 -20 -20 -11.046 -20 0 c S}
-\axo@setObject{138}%
-{AxoLine 60 0 0 60 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 60 0 m 0 60 l S}
-\axo@setObject{139}%
-{Grid 0 0 10 10 8 11 0.5;}%
-{ 0.5 w 0 0 m 0 110 l S 10 0 m 10 110 l S 20 0 m 20 110 l S 30 0 m 30 110 l S 40 0 m 40 110 l S 50 0 m 50 110 l S 60 0 m 60 110 l S 70 0 m 70 110 l S 80 0 m 80 110 l S 0 0 m 80 0 l S 0 10 m 80 10 l S 0 20 m 80 20 l S 0 30 m 80 30 l S 0 40 m 80 40 l S 0 50 m 80 50 l S 0 60 m 80 60 l S 0 70 m 80 70 l S 0 80 m 80 80 l S 0 90 m 80 90 l S 0 100 m 80 100 l S 0 110 m 80 110 l S}
-\axo@setObject{140}%
-{Oval 40 80 20 30 0 0.5;}%
-{ 0.5 w 1 0 0 1 40 80 cm -30 0 m -30 11.046 -16.569 20 0 20 c 16.569 20 30 11.046 30 0 c 30 -11.046 16.569 -20 0 -20 c -16.569 -20 -30 -11.046 -30 0 c S}
-\axo@setObject{141}%
-{Oval 40 30 20 30 30 0.5;}%
-{ 0.5 w 1 0 0 1 40 30 cm 0.866 0.5 -0.5 0.866 0 0 cm -30 0 m -30 11.046 -16.569 20 0 20 c 16.569 20 30 11.046 30 0 c 30 -11.046 16.569 -20 0 -20 c -16.569 -20 -30 -11.046 -30 0 c S}
-\axo@setObject{142}%
-{Grid 0 0 10 10 8 6 0.5;}%
-{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 70 0 m 70 60 l S 80 0 m 80 60 l S 0 0 m 80 0 l S 0 10 m 80 10 l S 0 20 m 80 20 l S 0 30 m 80 30 l S 0 40 m 80 40 l S 0 50 m 80 50 l S 0 60 m 80 60 l S}
-\axo@setObject{143}%
-{FOval 40 30 20 30 30 0.5;}%
-{ 0.5 w 1 0 0 1 40 30 cm 0.866 0.5 -0.5 0.866 0 0 cm -30 0 m -30 11.046 -16.569 20 0 20 c 16.569 20 30 11.046 30 0 c 30 -11.046 16.569 -20 0 -20 c -16.569 -20 -30 -11.046 -30 0 c f -30 0 m -30 11.046 -16.569 20 0 20 c 16.569 20 30 11.046 30 0 c 30 -11.046 16.569 -20 0 -20 c -16.569 -20 -30 -11.046 -30 0 c S}
-\axo@setObject{144}%
-{Grid 0 0 10 10 8 6 0.5;}%
-{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 70 0 m 70 60 l S 80 0 m 80 60 l S 0 0 m 80 0 l S 0 10 m 80 10 l S 0 20 m 80 20 l S 0 30 m 80 30 l S 0 40 m 80 40 l S 0 50 m 80 50 l S 0 60 m 80 60 l S}
-\axo@setObject{145}%
-{AxoLine 0 0 80 60 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 0 0 m 80 60 l S}
-\axo@setObject{146}%
-{FOval 40 30 20 30 0 0.5;}%
-{ 0.5 w 1 0 0 1 40 30 cm -30 0 m -30 11.046 -16.569 20 0 20 c 16.569 20 30 11.046 30 0 c 30 -11.046 16.569 -20 0 -20 c -16.569 -20 -30 -11.046 -30 0 c f -30 0 m -30 11.046 -16.569 20 0 20 c 16.569 20 30 11.046 30 0 c 30 -11.046 16.569 -20 0 -20 c -16.569 -20 -30 -11.046 -30 0 c S}
-\axo@setObject{147}%
-{Oval 40 30 20 30 0 0.5;}%
-{ 0.5 w 1 0 0 1 40 30 cm -30 0 m -30 11.046 -16.569 20 0 20 c 16.569 20 30 11.046 30 0 c 30 -11.046 16.569 -20 0 -20 c -16.569 -20 -30 -11.046 -30 0 c S}
-\axo@setObject{148}%
-{AxoLine 80 0 0 60 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 80 0 m 0 60 l S}
-\axo@setObject{149}%
-{Grid 0 0 10 10 8 6 0.5;}%
-{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 70 0 m 70 60 l S 80 0 m 80 60 l S 0 0 m 80 0 l S 0 10 m 80 10 l S 0 20 m 80 20 l S 0 30 m 80 30 l S 0 40 m 80 40 l S 0 50 m 80 50 l S 0 60 m 80 60 l S}
-\axo@setObject{150}%
-{AxoLine 0 0 80 60 0 0 0 0 0 0 0 0 0 0 0 1;}%
-{ 1 w 0 0 m 80 60 l S}
-\axo@setObject{151}%
-{FOval 40 30 20 30 20 1;}%
-{ 1 w 1 0 0 1 40 30 cm 0.94 0.342 -0.342 0.94 0 0 cm -30 0 m -30 11.046 -16.569 20 0 20 c 16.569 20 30 11.046 30 0 c 30 -11.046 16.569 -20 0 -20 c -16.569 -20 -30 -11.046 -30 0 c f -30 0 m -30 11.046 -16.569 20 0 20 c 16.569 20 30 11.046 30 0 c 30 -11.046 16.569 -20 0 -20 c -16.569 -20 -30 -11.046 -30 0 c S}
-\axo@setObject{152}%
-{Oval 40 30 20 30 20 1;}%
-{ 1 w 1 0 0 1 40 30 cm 0.94 0.342 -0.342 0.94 0 0 cm -30 0 m -30 11.046 -16.569 20 0 20 c 16.569 20 30 11.046 30 0 c 30 -11.046 16.569 -20 0 -20 c -16.569 -20 -30 -11.046 -30 0 c S}
-\axo@setObject{153}%
-{AxoLine 80 0 0 60 0 0 0 0 0 0 0 0 0 0 0 1;}%
-{ 1 w 80 0 m 0 60 l S}
-\axo@setObject{154}%
-{Grid 0 0 10 10 6 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
-\axo@setObject{155}%
-{EBox 10 10 50 40 0.5;}%
-{ 0.5 w 10 10 40 30 re S}
-\axo@setObject{156}%
-{Grid 0 0 10 10 6 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
-\axo@setObject{157}%
-{FBox 10 10 50 40 0.5;}%
-{ 0.5 w 10 10 40 30 re f}
-\axo@setObject{158}%
-{Grid 0 0 10 10 6 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
-\axo@setObject{159}%
-{FBox 10 10 50 40 0.5;}%
-{ 0.5 w 10 10 40 30 re f}
-\axo@setObject{160}%
-{EBox 10 10 50 40 0.5;}%
-{ 0.5 w 10 10 40 30 re S}
-\axo@setObject{161}%
-{Grid 0 0 10 10 6 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
-\axo@setObject{162}%
-{FBox 10 10 50 40 0.5;}%
-{ 0.5 w 10 10 40 30 re f}
-\axo@setObject{163}%
-{EBox 10 10 50 40 0.5;}%
-{ 0.5 w 10 10 40 30 re S}
-\axo@setObject{164}%
-{Grid 0 0 10 10 6 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
-\axo@setObject{165}%
-{FBox 10 10 50 40 1.5;}%
-{ 1.5 w 10 10 40 30 re f}
-\axo@setObject{166}%
-{EBox 10 10 50 40 1.5;}%
-{ 1.5 w 10 10 40 30 re S}
-\axo@setObject{167}%
-{Grid 0 0 10 10 6 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
-\axo@setObject{168}%
-{Boxc 30 25 40 30 0.5;}%
-{ 0.5 w 10 10 40 30 re S}
-\axo@setObject{169}%
-{Grid 0 0 10 10 6 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
-\axo@setObject{170}%
-{FBoxc 30 25 40 30 0.5;}%
-{ 0.5 w 10 10 40 30 re f}
-\axo@setObject{171}%
-{Boxc 30 25 40 30 0.5;}%
-{ 0.5 w 10 10 40 30 re S}
-\axo@setObject{172}%
-{Grid 0 0 10 10 6 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
-\axo@setObject{173}%
-{FBoxc 30 25 40 30 0.5;}%
-{ 0.5 w 10 10 40 30 re f}
-\axo@setObject{174}%
-{Boxc 30 25 40 30 0.5;}%
-{ 0.5 w 10 10 40 30 re S}
-\axo@setObject{175}%
-{Grid 0 0 10 10 6 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
-\axo@setObject{176}%
-{FBoxc 30 25 40 30 1.5;}%
-{ 1.5 w 10 10 40 30 re f}
-\axo@setObject{177}%
-{Boxc 30 25 40 30 1.5;}%
-{ 1.5 w 10 10 40 30 re S}
-\axo@setObject{178}%
-{Grid 0 0 10 10 6 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
-\axo@setObject{179}%
-{Boxc 0 0 40 30 0.5;}%
-{ 0.5 w -20 -15 40 30 re S}
-\axo@setObject{180}%
-{Grid 0 0 10 10 6 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
-\axo@setObject{181}%
-{FBoxc 0 0 40 30 0.5;}%
-{ 0.5 w -20 -15 40 30 re f}
-\axo@setObject{182}%
-{Grid 0 0 10 10 6 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
-\axo@setObject{183}%
-{ETri 10 20 50 10 40 40 0.5;}%
-{ 0.5 w 10 20 m 50 10 l 40 40 l h S}
-\axo@setObject{184}%
-{Grid 0 0 10 10 6 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
-\axo@setObject{185}%
-{FTri 10 20 50 10 40 40 0.5;}%
-{ 0.5 w 10 20 m 50 10 l 40 40 l h f}
-\axo@setObject{186}%
-{ETri 10 20 50 10 40 40 0.5;}%
-{ 0.5 w 10 20 m 50 10 l 40 40 l h S}
-\axo@setObject{187}%
-{Grid 0 0 10 10 6 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
-\axo@setObject{188}%
-{FTri 10 20 50 10 40 40 0.5;}%
-{ 0.5 w 10 20 m 50 10 l 40 40 l h f}
-\axo@setObject{189}%
-{ETri 10 20 50 10 40 40 0.5;}%
-{ 0.5 w 10 20 m 50 10 l 40 40 l h S}
-\axo@setObject{190}%
-{Grid 0 0 10 10 6 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
-\axo@setObject{191}%
-{FTri 10 20 50 10 40 40 1;}%
-{ 1 w 10 20 m 50 10 l 40 40 l h f}
-\axo@setObject{192}%
-{ETri 10 20 50 10 40 40 1;}%
-{ 1 w 10 20 m 50 10 l 40 40 l h S}
-\axo@setObject{193}%
-{Grid 0 0 10 10 6 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
-\axo@setObject{194}%
-{Polygon "(10,20)(20,10)(40,20)(50,10)(45,40)(15,30)" 0.5;}%
-{ 0.5 w 10 20 m 20 10 l 40 20 l 50 10 l 45 40 l 15 30 l h S}
-\axo@setObject{195}%
-{Grid 0 0 10 10 6 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
-\axo@setObject{196}%
-{FilledPolygon "(10,20)(20,10)(40,20)(50,10)(45,40)(15,30)" 0.5;}%
-{ 0.5 w 10 20 m 20 10 l 40 20 l 50 10 l 45 40 l 15 30 l h f}
-\axo@setObject{197}%
-{Grid 0 0 10 10 10 5 0.5;}%
-{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 100 0 m 100 50 l S 0 0 m 100 0 l S 0 10 m 100 10 l S 0 20 m 100 20 l S 0 30 m 100 30 l S 0 40 m 100 40 l S 0 50 m 100 50 l S}
-\axo@setObject{198}%
-{LinAxis 10 30 90 30 4 5 5 0 1;}%
-{ 1 w 1 0 0 1 10 30 cm 0 0 m 80 0 l S 0 0 m 0 6 l S 20 0 m 20 6 l S 40 0 m 40 6 l S 60 0 m 60 6 l S 80 0 m 80 6 l S 0.6 w 4 0 m 4 4 l S 8 0 m 8 4 l S 12 0 m 12 4 l S 16 0 m 16 4 l S 24 0 m 24 4 l S 28 0 m 28 4 l S 32 0 m 32 4 l S 36 0 m 36 4 l S 44 0 m 44 4 l S 48 0 m 48 4 l S 52 0 m 52 4 l S 56 0 m 56 4 l S 64 0 m 64 4 l S 68 0 m 68 4 l S 72 0 m 72 4 l S 76 0 m 76 4 l S}
-\axo@setObject{199}%
-{LinAxis 10 10 90 10 4 5 5 2 1;}%
-{ 1 w 1 0 0 1 10 10 cm 0 0 m 80 0 l S 12 0 m 12 6 l S 32 0 m 32 6 l S 52 0 m 52 6 l S 72 0 m 72 6 l S 0.6 w 0 0 m 0 4 l S 4 0 m 4 4 l S 8 0 m 8 4 l S 16 0 m 16 4 l S 20 0 m 20 4 l S 24 0 m 24 4 l S 28 0 m 28 4 l S 36 0 m 36 4 l S 40 0 m 40 4 l S 44 0 m 44 4 l S 48 0 m 48 4 l S 56 0 m 56 4 l S 60 0 m 60 4 l S 64 0 m 64 4 l S 68 0 m 68 4 l S 76 0 m 76 4 l S 80 0 m 80 4 l S}
-\axo@setObject{200}%
-{Grid 0 0 10 10 10 4 0.5;}%
-{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 100 0 m 100 40 l S 0 0 m 100 0 l S 0 10 m 100 10 l S 0 20 m 100 20 l S 0 30 m 100 30 l S 0 40 m 100 40 l S}
-\axo@setObject{201}%
-{LogAxis 0 30 100 30 4 3 0 1;}%
-{ 1 w 1 0 0 1 0 30 cm 0 0 m 100 0 l S 0 0 m 0 3.6 l S 25 0 m 25 3.6 l S 50 0 m 50 3.6 l S 75 0 m 75 3.6 l S 100 0 m 100 3.6 l S 0.6 w 7.526 0 m 7.526 2.4 l S 11.928 0 m 11.928 2.4 l S 15.051 0 m 15.051 2.4 l S 17.474 0 m 17.474 2.4 l S 19.454 0 m 19.454 2.4 l S 21.127 0 m 21.127 2.4 l S 22.577 0 m 22.577 2.4 l S 23.856 0 m 23.856 2.4 l S 32.526 0 m 32.526 2.4 l S 36.928 0 m 36.928 2.4 l S 40.051 0 m 40.051 2.4 l S 42.474 0 m 42.474 2.4 l S 44.454 0 m 44.454 2.4 l S 46.127 0 m 46.127 2.4 l S 47.577 0 m 47.577 2.4 l S 48.856 0 m 48.856 2.4 l S 57.526 0 m 57.526 2.4 l S 61.928 0 m 61.928 2.4 l S 65.051 0 m 65.051 2.4 l S 67.474 0 m 67.474 2.4 l S 69.454 0 m 69.454 2.4 l S 71.127 0 m 71.127 2.4 l S 72.577 0 m 72.577 2.4 l S 73.856 0 m 73.856 2.4 l S 82.526 0 m 82.526 2.4 l S 86.928 0 m 86.928 2.4 l S 90.051 0 m 90.051 2.4 l S 92.474 0 m 92.474 2.4 l S 94.454 0 m 94.454 2.4 l S 96.127 0 m 96.127 2.4 l S 97.577 0 m 97.577 2.4 l S 98.856 0 m 98.856 2.4 l S}
-\axo@setObject{202}%
-{LogAxis 0 10 100 10 4 3 3 1;}%
-{ 1 w 1 0 0 1 0 10 cm 0 0 m 100 0 l S 13.072 0 m 13.072 3.6 l S 38.072 0 m 38.072 3.6 l S 63.072 0 m 63.072 3.6 l S 88.072 0 m 88.072 3.6 l S 0.6 w 0 0 m 0 2.4 l S 3.123 0 m 3.123 2.4 l S 5.546 0 m 5.546 2.4 l S 7.526 0 m 7.526 2.4 l S 9.199 0 m 9.199 2.4 l S 10.649 0 m 10.649 2.4 l S 11.928 0 m 11.928 2.4 l S 20.598 0 m 20.598 2.4 l S 25 0 m 25 2.4 l S 28.123 0 m 28.123 2.4 l S 30.546 0 m 30.546 2.4 l S 32.526 0 m 32.526 2.4 l S 34.199 0 m 34.199 2.4 l S 35.649 0 m 35.649 2.4 l S 36.928 0 m 36.928 2.4 l S 45.598 0 m 45.598 2.4 l S 50 0 m 50 2.4 l S 53.123 0 m 53.123 2.4 l S 55.546 0 m 55.546 2.4 l S 57.526 0 m 57.526 2.4 l S 59.199 0 m 59.199 2.4 l S 60.649 0 m 60.649 2.4 l S 61.928 0 m 61.928 2.4 l S 70.598 0 m 70.598 2.4 l S 75 0 m 75 2.4 l S 78.123 0 m 78.123 2.4 l S 80.546 0 m 80.546 2.4 l S 82.526 0 m 82.526 2.4 l S 84.199 0 m 84.199 2.4 l S 85.649 0 m 85.649 2.4 l S 86.928 0 m 86.928 2.4 l S 95.598 0 m 95.598 2.4 l S 100 0 m 100 2.4 l S}
-\axo@setObject{203}%
-{Grid 0 0 10 10 9 9 0.5;}%
-{ 0.5 w 0 0 m 0 90 l S 10 0 m 10 90 l S 20 0 m 20 90 l S 30 0 m 30 90 l S 40 0 m 40 90 l S 50 0 m 50 90 l S 60 0 m 60 90 l S 70 0 m 70 90 l S 80 0 m 80 90 l S 90 0 m 90 90 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S 0 90 m 90 90 l S}
-\axo@setObject{204}%
-{Vertex 10 10 1.5 0.5;}%
-{ 0.5 w 1 0 0 1 10 10 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f}
-\axo@setObject{205}%
-{Vertex 45 45 1.5 0.5;}%
-{ 0.5 w 1 0 0 1 45 45 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f}
-\axo@setObject{206}%
-{Vertex 80 80 1.5 0.5;}%
-{ 0.5 w 1 0 0 1 80 80 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f}
-\axo@setObject{207}%
-{Grid 0 0 10 10 9 9 0.5;}%
-{ 0.5 w 0 0 m 0 90 l S 10 0 m 10 90 l S 20 0 m 20 90 l S 30 0 m 30 90 l S 40 0 m 40 90 l S 50 0 m 50 90 l S 60 0 m 60 90 l S 70 0 m 70 90 l S 80 0 m 80 90 l S 90 0 m 90 90 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S 0 90 m 90 90 l S}
-\axo@setObject{208}%
-{Vertex 10 10 1.5 0.5;}%
-{ 0.5 w 1 0 0 1 10 10 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f}
-\axo@setObject{209}%
-{Vertex 45 45 1.5 0.5;}%
-{ 0.5 w 1 0 0 1 45 45 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f}
-\axo@setObject{210}%
-{Vertex 80 10 1.5 0.5;}%
-{ 0.5 w 1 0 0 1 80 10 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f}
-\axo@setObject{211}%
-{Grid 0 0 10 10 9 9 0.5;}%
-{ 0.5 w 0 0 m 0 90 l S 10 0 m 10 90 l S 20 0 m 20 90 l S 30 0 m 30 90 l S 40 0 m 40 90 l S 50 0 m 50 90 l S 60 0 m 60 90 l S 70 0 m 70 90 l S 80 0 m 80 90 l S 90 0 m 90 90 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S 0 90 m 90 90 l S}
-\axo@setObject{212}%
-{Vertex 10 10 1.5 0.5;}%
-{ 0.5 w 1 0 0 1 10 10 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f}
-\axo@setObject{213}%
-{Vertex 45 45 1.5 0.5;}%
-{ 0.5 w 1 0 0 1 45 45 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f}
-\axo@setObject{214}%
-{Vertex 80 80 1.5 0.5;}%
-{ 0.5 w 1 0 0 1 80 80 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f}
-\axo@setObject{215}%
-{Grid 0 0 10 10 10 9 0.5;}%
-{ 0.5 w 0 0 m 0 90 l S 10 0 m 10 90 l S 20 0 m 20 90 l S 30 0 m 30 90 l S 40 0 m 40 90 l S 50 0 m 50 90 l S 60 0 m 60 90 l S 70 0 m 70 90 l S 80 0 m 80 90 l S 90 0 m 90 90 l S 100 0 m 100 90 l S 0 0 m 100 0 l S 0 10 m 100 10 l S 0 20 m 100 20 l S 0 30 m 100 30 l S 0 40 m 100 40 l S 0 50 m 100 50 l S 0 60 m 100 60 l S 0 70 m 100 70 l S 0 80 m 100 80 l S 0 90 m 100 90 l S}
-\axo@setObject{216}%
-{AxoLine 30 65 60 25 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0.5;}%
-{ 0.5 w 30 65 m 60 25 l S 1 0 0 1 30 65 cm 0.6 -0.8 0.8 0.6 0 0 cm 1 0 0 1 25 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{217}%
-{FBoxc 0 0 54.599 15.89 0.5;}%
-{ 0.5 w -27.299 -7.945 54.599 15.89 re f}
-\axo@setObject{218}%
-{Boxc 0 0 54.599 15.89 0.5;}%
-{ 0.5 w -27.299 -7.945 54.599 15.89 re S}
-\axo@setObject{219}%
-{FBoxc 0 0 50.559 17.421 0.5;}%
-{ 0.5 w -25.279 -8.71 50.559 17.421 re f}
-\axo@setObject{220}%
-{Boxc 0 0 50.559 17.421 0.5;}%
-{ 0.5 w -25.279 -8.71 50.559 17.421 re S}
-\axo@setObject{221}%
-{Grid 0 0 10 10 10 9 0.5;}%
-{ 0.5 w 0 0 m 0 90 l S 10 0 m 10 90 l S 20 0 m 20 90 l S 30 0 m 30 90 l S 40 0 m 40 90 l S 50 0 m 50 90 l S 60 0 m 60 90 l S 70 0 m 70 90 l S 80 0 m 80 90 l S 90 0 m 90 90 l S 100 0 m 100 90 l S 0 0 m 100 0 l S 0 10 m 100 10 l S 0 20 m 100 20 l S 0 30 m 100 30 l S 0 40 m 100 40 l S 0 50 m 100 50 l S 0 60 m 100 60 l S 0 70 m 100 70 l S 0 80 m 100 80 l S 0 90 m 100 90 l S}
-\axo@setObject{222}%
-{AxoLine 30 65 60 25 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0.5;}%
-{ 0.5 w 30 65 m 60 25 l S 1 0 0 1 30 65 cm 0.6 -0.8 0.8 0.6 0 0 cm 1 0 0 1 25 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{223}%
-{FBoxc 0 0 46.799 15.513 0.5;}%
-{ 0.5 w -23.399 -7.756 46.799 15.513 re f}
-\axo@setObject{224}%
-{Boxc 0 0 46.799 15.513 0.5;}%
-{ 0.5 w -23.399 -7.756 46.799 15.513 re S}
-\axo@setObject{225}%
-{FBoxc 0 0 71.0 5.444 0.5;}%
-{ 0.5 w -35.5 -2.722 71 5.444 re f}
-\axo@setObject{226}%
-{Boxc 0 0 71.0 5.444 0.5;}%
-{ 0.5 w -35.5 -2.722 71 5.444 re S}
-\axo@setObject{227}%
-{Grid 0 0 10 10 9 9 0.5;}%
-{ 0.5 w 0 0 m 0 90 l S 10 0 m 10 90 l S 20 0 m 20 90 l S 30 0 m 30 90 l S 40 0 m 40 90 l S 50 0 m 50 90 l S 60 0 m 60 90 l S 70 0 m 70 90 l S 80 0 m 80 90 l S 90 0 m 90 90 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S 0 90 m 90 90 l S}
-\axo@setObject{228}%
-{AxoLine 30 65 60 25 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0.5;}%
-{ 0.5 w 30 65 m 60 25 l S 1 0 0 1 30 65 cm 0.6 -0.8 0.8 0.6 0 0 cm 1 0 0 1 25 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{229}%
-{FBoxc 0 0 53.339 15.424 0.5;}%
-{ 0.5 w -26.669 -7.712 53.339 15.424 re f}
-\axo@setObject{230}%
-{Boxc 0 0 53.339 15.424 0.5;}%
-{ 0.5 w -26.669 -7.712 53.339 15.424 re S}
-\axo@setObject{231}%
-{FBoxc 0 0 47.599 12.975 0.5;}%
-{ 0.5 w -23.799 -6.487 47.599 12.975 re f}
-\axo@setObject{232}%
-{Boxc 0 0 47.599 12.975 0.5;}%
-{ 0.5 w -23.799 -6.487 47.599 12.975 re S}
-\axo@setObject{233}%
-{Grid 0 0 10 10 9 9 0.5;}%
-{ 0.5 w 0 0 m 0 90 l S 10 0 m 10 90 l S 20 0 m 20 90 l S 30 0 m 30 90 l S 40 0 m 40 90 l S 50 0 m 50 90 l S 60 0 m 60 90 l S 70 0 m 70 90 l S 80 0 m 80 90 l S 90 0 m 90 90 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S 0 90 m 90 90 l S}
-\axo@setObject{234}%
-{AxoLine 30 65 60 25 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0.5;}%
-{ 0.5 w 30 65 m 60 25 l S 1 0 0 1 30 65 cm 0.6 -0.8 0.8 0.6 0 0 cm 1 0 0 1 25 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{235}%
-{FBoxc 0 0 45.359 34.223 0.5;}%
-{ 0.5 w -22.68 -17.111 45.359 34.223 re f}
-\axo@setObject{236}%
-{Boxc 0 0 45.359 34.223 0.5;}%
-{ 0.5 w -22.68 -17.111 45.359 34.223 re S}
-\axo@setObject{237}%
-{FBoxc 0 0 54.176 38.704 0.5;}%
-{ 0.5 w -27.088 -19.352 54.176 38.704 re f}
-\axo@setObject{238}%
-{Boxc 0 0 54.176 38.704 0.5;}%
-{ 0.5 w -27.088 -19.352 54.176 38.704 re S}
-\axo@setObject{239}%
-{Grid 0 0 10 10 10 9 0.5;}%
-{ 0.5 w 0 0 m 0 90 l S 10 0 m 10 90 l S 20 0 m 20 90 l S 30 0 m 30 90 l S 40 0 m 40 90 l S 50 0 m 50 90 l S 60 0 m 60 90 l S 70 0 m 70 90 l S 80 0 m 80 90 l S 90 0 m 90 90 l S 100 0 m 100 90 l S 0 0 m 100 0 l S 0 10 m 100 10 l S 0 20 m 100 20 l S 0 30 m 100 30 l S 0 40 m 100 40 l S 0 50 m 100 50 l S 0 60 m 100 60 l S 0 70 m 100 70 l S 0 80 m 100 80 l S 0 90 m 100 90 l S}
-\axo@setObject{240}%
-{AxoLine 30 65 60 25 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0.5;}%
-{ 0.5 w 30 65 m 60 25 l S 1 0 0 1 30 65 cm 0.6 -0.8 0.8 0.6 0 0 cm 1 0 0 1 25 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{241}%
-{FBoxc 0 0 46.931 28.548 0.5;}%
-{ 0.5 w -23.465 -14.274 46.931 28.548 re f}
-\axo@setObject{242}%
-{Boxc 0 0 46.931 28.548 0.5;}%
-{ 0.5 w -23.465 -14.274 46.931 28.548 re S}
-\axo@setObject{243}%
-{FBoxc 0 0 63.799 27.10 0.5;}%
-{ 0.5 w -31.899 -13.55 63.799 27.1 re f}
-\axo@setObject{244}%
-{Boxc 0 0 63.799 27.10 0.5;}%
-{ 0.5 w -31.899 -13.55 63.799 27.1 re S}
-\axo@setObject{245}%
-{Grid 0 0 10 10 9 9 0.5;}%
-{ 0.5 w 0 0 m 0 90 l S 10 0 m 10 90 l S 20 0 m 20 90 l S 30 0 m 30 90 l S 40 0 m 40 90 l S 50 0 m 50 90 l S 60 0 m 60 90 l S 70 0 m 70 90 l S 80 0 m 80 90 l S 90 0 m 90 90 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S 0 90 m 90 90 l S}
-\axo@setObject{246}%
-{AxoLine 30 65 60 25 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0.5;}%
-{ 0.5 w 30 65 m 60 25 l S 1 0 0 1 30 65 cm 0.6 -0.8 0.8 0.6 0 0 cm 1 0 0 1 25 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{247}%
-{FBoxc 0 0 49.539 25.840 0.5;}%
-{ 0.5 w -24.77 -12.92 49.539 25.84 re f}
-\axo@setObject{248}%
-{Boxc 0 0 49.539 25.840 0.5;}%
-{ 0.5 w -24.77 -12.92 49.539 25.84 re S}
-\axo@setObject{249}%
-{FBoxc 0 0 55.999 31.745 0.5;}%
-{ 0.5 w -28 -15.873 55.999 31.745 re f}
-\axo@setObject{250}%
-{Boxc 0 0 55.999 31.745 0.5;}%
-{ 0.5 w -28 -15.873 55.999 31.745 re S}
-\axo@setObject{251}%
-{Grid 0 0 10 10 12 9 0.5;}%
-{ 0.5 w 0 0 m 0 90 l S 10 0 m 10 90 l S 20 0 m 20 90 l S 30 0 m 30 90 l S 40 0 m 40 90 l S 50 0 m 50 90 l S 60 0 m 60 90 l S 70 0 m 70 90 l S 80 0 m 80 90 l S 90 0 m 90 90 l S 100 0 m 100 90 l S 110 0 m 110 90 l S 120 0 m 120 90 l S 0 0 m 120 0 l S 0 10 m 120 10 l S 0 20 m 120 20 l S 0 30 m 120 30 l S 0 40 m 120 40 l S 0 50 m 120 50 l S 0 60 m 120 60 l S 0 70 m 120 70 l S 0 80 m 120 80 l S 0 90 m 120 90 l S}
-\axo@setObject{252}%
-{FBoxc 0 0 143.37 62.444 0.5;}%
-{ 0.5 w -71.685 -31.222 143.37 62.444 re f}
-\axo@setObject{253}%
-{Boxc 0 0 143.37 62.444 0.5;}%
-{ 0.5 w -71.685 -31.222 143.37 62.444 re S}
-\axo@setObject{254}%
-{Grid 0 0 10 10 13 9 0.5;}%
-{ 0.5 w 0 0 m 0 90 l S 10 0 m 10 90 l S 20 0 m 20 90 l S 30 0 m 30 90 l S 40 0 m 40 90 l S 50 0 m 50 90 l S 60 0 m 60 90 l S 70 0 m 70 90 l S 80 0 m 80 90 l S 90 0 m 90 90 l S 100 0 m 100 90 l S 110 0 m 110 90 l S 120 0 m 120 90 l S 130 0 m 130 90 l S 0 0 m 130 0 l S 0 10 m 130 10 l S 0 20 m 130 20 l S 0 30 m 130 30 l S 0 40 m 130 40 l S 0 50 m 130 50 l S 0 60 m 130 60 l S 0 70 m 130 70 l S 0 80 m 130 80 l S 0 90 m 130 90 l S}
-\axo@setObject{255}%
-{FBoxc 0 0 128.811 61.543 0.5;}%
-{ 0.5 w -64.406 -30.771 128.811 61.543 re f}
-\axo@setObject{256}%
-{Boxc 0 0 128.811 61.543 0.5;}%
-{ 0.5 w -64.406 -30.771 128.811 61.543 re S}
-\axo@setObject{257}%
-{Grid 0 0 10 10 9 8 0.5;}%
-{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 90 0 m 90 80 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S}
-\axo@setObject{258}%
-{AxoGluon 10 70 80 70 3 5 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 10 70 cm 11.667 -3 m 14.367 -3 14.367 3 8.167 3 c 2.917 3 0.583 1.5 0 0 c S 11.667 -3 m 8.967 -3 8.967 3 17.5 3 c 26.033 3 26.033 -3 23.333 -3 c 20.633 -3 20.633 3 29.167 3 c 37.7 3 37.7 -3 35 -3 c 32.3 -3 32.3 3 40.833 3 c 49.367 3 49.367 -3 46.667 -3 c 43.967 -3 43.967 3 52.5 3 c 61.033 3 61.033 -3 58.333 -3 c 55.633 -3 55.633 3 61.833 3 c 67.083 3 69.417 1.5 70 0 c S}
-\axo@setObject{259}%
-{AxoGluon 10 50 80 50 3 9 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 10 50 cm 7 -3 m 9.7 -3 9.7 3 4.9 3 c 1.75 3 0.35 1.5 0 0 c S 7 -3 m 4.3 -3 4.3 3 10.5 3 c 16.7 3 16.7 -3 14 -3 c 11.3 -3 11.3 3 17.5 3 c 23.7 3 23.7 -3 21 -3 c 18.3 -3 18.3 3 24.5 3 c 30.7 3 30.7 -3 28 -3 c 25.3 -3 25.3 3 31.5 3 c 37.7 3 37.7 -3 35 -3 c 32.3 -3 32.3 3 38.5 3 c 44.7 3 44.7 -3 42 -3 c 39.3 -3 39.3 3 45.5 3 c 51.7 3 51.7 -3 49 -3 c 46.3 -3 46.3 3 52.5 3 c 58.7 3 58.7 -3 56 -3 c 53.3 -3 53.3 3 59.5 3 c 65.7 3 65.7 -3 63 -3 c 60.3 -3 60.3 3 65.1 3 c 68.25 3 69.65 1.5 70 0 c S}
-\axo@setObject{260}%
-{AxoGluon 10 30 80 30 5 7 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 10 30 cm 8.75 -5 m 13.25 -5 13.25 5 6.125 5 c 2.188 5 0.438 2.5 0 0 c S 8.75 -5 m 4.25 -5 4.25 5 13.125 5 c 22 5 22 -5 17.5 -5 c 13 -5 13 5 21.875 5 c 30.75 5 30.75 -5 26.25 -5 c 21.75 -5 21.75 5 30.625 5 c 39.5 5 39.5 -5 35 -5 c 30.5 -5 30.5 5 39.375 5 c 48.25 5 48.25 -5 43.75 -5 c 39.25 -5 39.25 5 48.125 5 c 57 5 57 -5 52.5 -5 c 48 -5 48 5 56.875 5 c 65.75 5 65.75 -5 61.25 -5 c 56.75 -5 56.75 5 63.875 5 c 67.812 5 69.562 2.5 70 0 c S}
-\axo@setObject{261}%
-{AxoGluon 10 10 80 10 8 9 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 10 10 cm 7 -8 m 14.2 -8 14.2 8 4.9 8 c 1.75 8 0.35 4 0 0 c S 7 -8 m -0.2 -8 -0.2 8 10.5 8 c 21.2 8 21.2 -8 14 -8 c 6.8 -8 6.8 8 17.5 8 c 28.2 8 28.2 -8 21 -8 c 13.8 -8 13.8 8 24.5 8 c 35.2 8 35.2 -8 28 -8 c 20.8 -8 20.8 8 31.5 8 c 42.2 8 42.2 -8 35 -8 c 27.8 -8 27.8 8 38.5 8 c 49.2 8 49.2 -8 42 -8 c 34.8 -8 34.8 8 45.5 8 c 56.2 8 56.2 -8 49 -8 c 41.8 -8 41.8 8 52.5 8 c 63.2 8 63.2 -8 56 -8 c 48.8 -8 48.8 8 59.5 8 c 70.2 8 70.2 -8 63 -8 c 55.8 -8 55.8 8 65.1 8 c 68.25 8 69.65 4 70 0 c S}
-\axo@setObject{262}%
-{Grid 0 0 10 10 9 8 0.5;}%
-{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 90 0 m 90 80 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S}
-\axo@setObject{263}%
-{AxoGluon 10 70 80 70 5 7 0.5 0 1.2;}%
-{ 1.2 w 1.7 w 1 0 0 1 10 70 cm 8.75 -5 m 13.25 -5 13.25 5 6.125 5 c 2.188 5 0.438 2.5 0 0 c S 8.75 -5 m 4.25 -5 4.25 5 13.125 5 c 22 5 22 -5 17.5 -5 c 13 -5 13 5 21.875 5 c 30.75 5 30.75 -5 26.25 -5 c 21.75 -5 21.75 5 30.625 5 c 39.5 5 39.5 -5 35 -5 c 30.5 -5 30.5 5 39.375 5 c 48.25 5 48.25 -5 43.75 -5 c 39.25 -5 39.25 5 48.125 5 c 57 5 57 -5 52.5 -5 c 48 -5 48 5 56.875 5 c 65.75 5 65.75 -5 61.25 -5 c 56.75 -5 56.75 5 63.875 5 c 67.812 5 69.562 2.5 70 0 c S}
-\axo@setObject{264}%
-{AxoGluon 10 70 80 70 5 7 -0.5 0 1.2;}%
-{ 1.2 w 0.7 w 1 0 0 1 10 70 cm 8.75 -5 m 13.25 -5 13.25 5 6.125 5 c 2.188 5 0.438 2.5 0 0 c S 8.75 -5 m 4.25 -5 4.25 5 13.125 5 c 22 5 22 -5 17.5 -5 c 13 -5 13 5 21.875 5 c 30.75 5 30.75 -5 26.25 -5 c 21.75 -5 21.75 5 30.625 5 c 39.5 5 39.5 -5 35 -5 c 30.5 -5 30.5 5 39.375 5 c 48.25 5 48.25 -5 43.75 -5 c 39.25 -5 39.25 5 48.125 5 c 57 5 57 -5 52.5 -5 c 48 -5 48 5 56.875 5 c 65.75 5 65.75 -5 61.25 -5 c 56.75 -5 56.75 5 63.875 5 c 67.812 5 69.562 2.5 70 0 c S}
-\axo@setObject{265}%
-{AxoGluon 80 50 10 50 5 7 0.5 0 1.2;}%
-{ 1.2 w 1.7 w 1 0 0 1 80 50 cm -1 0 0 -1 0 0 cm 8.75 -5 m 13.25 -5 13.25 5 6.125 5 c 2.188 5 0.438 2.5 0 0 c S 8.75 -5 m 4.25 -5 4.25 5 13.125 5 c 22 5 22 -5 17.5 -5 c 13 -5 13 5 21.875 5 c 30.75 5 30.75 -5 26.25 -5 c 21.75 -5 21.75 5 30.625 5 c 39.5 5 39.5 -5 35 -5 c 30.5 -5 30.5 5 39.375 5 c 48.25 5 48.25 -5 43.75 -5 c 39.25 -5 39.25 5 48.125 5 c 57 5 57 -5 52.5 -5 c 48 -5 48 5 56.875 5 c 65.75 5 65.75 -5 61.25 -5 c 56.75 -5 56.75 5 63.875 5 c 67.812 5 69.562 2.5 70 0 c S}
-\axo@setObject{266}%
-{AxoGluon 80 50 10 50 5 7 -0.5 0 1.2;}%
-{ 1.2 w 0.7 w 1 0 0 1 80 50 cm -1 0 0 -1 0 0 cm 8.75 -5 m 13.25 -5 13.25 5 6.125 5 c 2.188 5 0.438 2.5 0 0 c S 8.75 -5 m 4.25 -5 4.25 5 13.125 5 c 22 5 22 -5 17.5 -5 c 13 -5 13 5 21.875 5 c 30.75 5 30.75 -5 26.25 -5 c 21.75 -5 21.75 5 30.625 5 c 39.5 5 39.5 -5 35 -5 c 30.5 -5 30.5 5 39.375 5 c 48.25 5 48.25 -5 43.75 -5 c 39.25 -5 39.25 5 48.125 5 c 57 5 57 -5 52.5 -5 c 48 -5 48 5 56.875 5 c 65.75 5 65.75 -5 61.25 -5 c 56.75 -5 56.75 5 63.875 5 c 67.812 5 69.562 2.5 70 0 c S}
-\axo@setObject{267}%
-{AxoGluon 10 30 80 30 -5 7 0.5 0 1.2;}%
-{ 1.2 w 1.7 w 1 0 0 1 10 30 cm 8.75 5 m 13.25 5 13.25 -5 6.125 -5 c 2.188 -5 0.438 -2.5 0 0 c S 8.75 5 m 4.25 5 4.25 -5 13.125 -5 c 22 -5 22 5 17.5 5 c 13 5 13 -5 21.875 -5 c 30.75 -5 30.75 5 26.25 5 c 21.75 5 21.75 -5 30.625 -5 c 39.5 -5 39.5 5 35 5 c 30.5 5 30.5 -5 39.375 -5 c 48.25 -5 48.25 5 43.75 5 c 39.25 5 39.25 -5 48.125 -5 c 57 -5 57 5 52.5 5 c 48 5 48 -5 56.875 -5 c 65.75 -5 65.75 5 61.25 5 c 56.75 5 56.75 -5 63.875 -5 c 67.812 -5 69.562 -2.5 70 0 c S}
-\axo@setObject{268}%
-{AxoGluon 10 30 80 30 -5 7 -0.5 0 1.2;}%
-{ 1.2 w 0.7 w 1 0 0 1 10 30 cm 8.75 5 m 13.25 5 13.25 -5 6.125 -5 c 2.188 -5 0.438 -2.5 0 0 c S 8.75 5 m 4.25 5 4.25 -5 13.125 -5 c 22 -5 22 5 17.5 5 c 13 5 13 -5 21.875 -5 c 30.75 -5 30.75 5 26.25 5 c 21.75 5 21.75 -5 30.625 -5 c 39.5 -5 39.5 5 35 5 c 30.5 5 30.5 -5 39.375 -5 c 48.25 -5 48.25 5 43.75 5 c 39.25 5 39.25 -5 48.125 -5 c 57 -5 57 5 52.5 5 c 48 5 48 -5 56.875 -5 c 65.75 -5 65.75 5 61.25 5 c 56.75 5 56.75 -5 63.875 -5 c 67.812 -5 69.562 -2.5 70 0 c S}
-\axo@setObject{269}%
-{AxoGluon 80 10 10 10 -5 7 0.5 0 1.2;}%
-{ 1.2 w 1.7 w 1 0 0 1 80 10 cm -1 0 0 -1 0 0 cm 8.75 5 m 13.25 5 13.25 -5 6.125 -5 c 2.188 -5 0.438 -2.5 0 0 c S 8.75 5 m 4.25 5 4.25 -5 13.125 -5 c 22 -5 22 5 17.5 5 c 13 5 13 -5 21.875 -5 c 30.75 -5 30.75 5 26.25 5 c 21.75 5 21.75 -5 30.625 -5 c 39.5 -5 39.5 5 35 5 c 30.5 5 30.5 -5 39.375 -5 c 48.25 -5 48.25 5 43.75 5 c 39.25 5 39.25 -5 48.125 -5 c 57 -5 57 5 52.5 5 c 48 5 48 -5 56.875 -5 c 65.75 -5 65.75 5 61.25 5 c 56.75 5 56.75 -5 63.875 -5 c 67.812 -5 69.562 -2.5 70 0 c S}
-\axo@setObject{270}%
-{AxoGluon 80 10 10 10 -5 7 -0.5 0 1.2;}%
-{ 1.2 w 0.7 w 1 0 0 1 80 10 cm -1 0 0 -1 0 0 cm 8.75 5 m 13.25 5 13.25 -5 6.125 -5 c 2.188 -5 0.438 -2.5 0 0 c S 8.75 5 m 4.25 5 4.25 -5 13.125 -5 c 22 -5 22 5 17.5 5 c 13 5 13 -5 21.875 -5 c 30.75 -5 30.75 5 26.25 5 c 21.75 5 21.75 -5 30.625 -5 c 39.5 -5 39.5 5 35 5 c 30.5 5 30.5 -5 39.375 -5 c 48.25 -5 48.25 5 43.75 5 c 39.25 5 39.25 -5 48.125 -5 c 57 -5 57 5 52.5 5 c 48 5 48 -5 56.875 -5 c 65.75 -5 65.75 5 61.25 5 c 56.75 5 56.75 -5 63.875 -5 c 67.812 -5 69.562 -2.5 70 0 c S}
-\axo@setObject{271}%
-{Grid 0 0 10 10 9 7 0.5;}%
-{ 0.5 w 0 0 m 0 70 l S 10 0 m 10 70 l S 20 0 m 20 70 l S 30 0 m 30 70 l S 40 0 m 40 70 l S 50 0 m 50 70 l S 60 0 m 60 70 l S 70 0 m 70 70 l S 80 0 m 80 70 l S 90 0 m 90 70 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S}
-\axo@setObject{272}%
-{AxoGluonArc 45 20 40 20 160 5 8 0 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 45 20 cm 0.94 0.342 -0.342 0.94 0 0 cm 33.718 9.386 m 32.658 13.195 42.52 17.18 44.19 8.501 c 45.234 3.075 42.496 0.577 40 0 c S 33.718 9.386 m 34.778 5.577 45.838 7.35 41.32 17.824 c 36.802 28.297 27.923 21.47 29.966 18.084 c 32.009 14.699 42.188 19.373 35.026 28.252 c 27.865 37.13 21.142 28.172 24.018 25.458 c 26.895 22.745 35.447 29.977 26.167 36.61 c 16.887 43.243 12.813 32.809 16.312 30.967 c 19.81 29.124 26.109 38.385 15.391 42.286 c 4.672 46.187 3.545 35.044 7.41 34.207 c 11.274 33.37 14.859 43.981 3.487 44.865 c -7.885 45.749 -5.983 34.711 -2.035 34.941 c 1.912 35.171 2.521 46.355 -8.672 44.156 c -19.865 41.958 -15.072 31.835 -11.331 33.115 c -7.589 34.395 -10.003 45.333 -20.196 40.213 c -30.389 35.094 -23.057 26.627 -19.796 28.864 c -16.535 31.1 -21.529 40.492 -28.387 34.917 c -32.674 31.431 -32.183 27.758 -30.642 25.712 c S}
-\axo@setObject{273}%
-{AxoGluonArc 45 0 40 20 160 -5 8 0 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 45 0 cm 0.94 0.342 -0.342 0.94 0 0 cm 43.352 12.068 m 41.988 16.966 32.467 13.118 34.37 6.612 c 35.182 2.392 37.497 0.509 40 0 c S 43.352 12.068 m 44.715 7.17 34.568 5.543 32.138 13.863 c 27.754 21.34 35.901 27.604 38.528 23.251 c 41.154 18.899 31.815 14.61 27.243 21.973 c 21.014 28.001 27.183 36.221 30.881 32.732 c 34.579 29.243 26.732 22.607 20.352 28.474 c 12.735 32.611 16.474 42.184 20.972 39.814 c 25.47 37.445 19.69 28.948 11.971 32.889 c 3.524 34.832 4.558 45.056 9.527 43.98 c 14.495 42.904 11.206 33.168 2.712 34.895 c -5.946 34.501 -7.692 44.628 -2.617 44.924 c 2.459 45.219 1.901 34.958 -6.745 34.344 c -14.981 31.642 -19.378 40.931 -14.568 42.577 c -9.758 44.223 -7.543 34.187 -15.708 31.277 c -22.918 26.466 -29.645 34.235 -25.452 37.11 c -21.26 39.986 -16.439 30.918 -22.079 27.157 c -25.413 24.446 -28.397 24.492 -30.642 25.712 c S}
-\axo@setObject{274}%
-{Grid 0 0 10 10 8 8 0.5;}%
-{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 0 0 m 80 0 l S 0 10 m 80 10 l S 0 20 m 80 20 l S 0 30 m 80 30 l S 0 40 m 80 40 l S 0 50 m 80 50 l S 0 60 m 80 60 l S 0 70 m 80 70 l S 0 80 m 80 80 l S}
-\axo@setObject{275}%
-{AxoGluonCirc 40 40 30 0 5 16 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 40 40 cm 0.981 0.195 -0.195 0.981 0 0 cm 34.327 6.828 m 31.863 19.217 21.651 13.058 23.097 9.567 c 24.543 6.076 36.119 8.942 29.101 19.445 c 22.084 29.948 15.006 20.349 17.678 17.678 c 20.349 15.006 29.948 22.084 19.445 29.101 c 8.942 36.119 6.076 24.543 9.567 23.097 c 13.058 21.651 19.217 31.863 6.828 34.327 c -5.561 36.792 -3.778 25 0 25 c 3.778 25 5.561 36.792 -6.828 34.327 c -19.217 31.863 -13.058 21.651 -9.567 23.097 c -6.076 24.543 -8.942 36.119 -19.445 29.101 c -29.948 22.084 -20.349 15.006 -17.678 17.678 c -15.006 20.349 -22.084 29.948 -29.101 19.445 c -36.119 8.942 -24.543 6.076 -23.097 9.567 c -21.651 13.058 -31.863 19.217 -34.327 6.828 c -36.792 -5.561 -25 -3.778 -25 0 c -25 3.778 -36.792 5.561 -34.327 -6.828 c -31.863 -19.217 -21.651 -13.058 -23.097 -9.567 c -24.543 -6.076 -36.119 -8.942 -29.101 -19.445 c -22.084 -29.948 -15.006 -20.349 -17.678 -17.678 c -20.349 -15.006 -29.948 -22.084 -19.445 -29.101 c -8.942 -36.119 -6.076 -24.543 -9.567 -23.097 c -13.058 -21.651 -19.217 -31.863 -6.828 -34.327 c 5.561 -36.792 3.778 -25 0 -25 c -3.778 -25 -5.561 -36.792 6.828 -34.327 c 19.217 -31.863 13.058 -21.651 9.567 -23.097 c 6.076 -24.543 8.942 -36.119 19.445 -29.101 c 29.948 -22.084 20.349 -15.006 17.678 -17.678 c 15.006 -20.349 22.084 -29.948 29.101 -19.445 c 36.119 -8.942 24.543 -6.076 23.097 -9.567 c 21.651 -13.058 31.863 -19.217 34.327 -6.828 c 36.792 5.561 25 3.778 25 0 c 25 -3.778 36.792 -5.561 34.327 6.828 c S}
-\axo@setObject{276}%
-{Grid 0 0 10 10 8 8 0.5;}%
-{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 0 0 m 80 0 l S 0 10 m 80 10 l S 0 20 m 80 20 l S 0 30 m 80 30 l S 0 40 m 80 40 l S 0 50 m 80 50 l S 0 60 m 80 60 l S 0 70 m 80 70 l S 0 80 m 80 80 l S}
-\axo@setObject{277}%
-{AxoGluonArc 40 40 30 0 360 5 16 0 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 40 40 cm 23.312 9.031 m 21.947 12.554 31.445 17.987 33.835 8.954 c 35.338 3.275 32.494 0.601 30 0 c S 23.312 9.031 m 24.677 5.508 36.168 8.073 29.758 18.425 c 23.348 28.778 15.93 19.635 18.475 16.842 c 21.021 14.05 30.809 20.593 21.092 27.931 c 11.375 35.269 7.761 24.063 11.143 22.379 c 14.526 20.695 21.29 30.332 9.578 33.664 c -2.133 36.996 -1.456 25.242 2.307 24.893 c 6.069 24.545 8.895 35.974 -3.229 34.851 c -15.354 33.727 -10.476 23.012 -6.842 24.046 c -3.207 25.08 -4.701 36.758 -15.601 31.331 c -26.501 25.903 -18.081 17.673 -15.066 19.95 c -12.051 22.227 -17.662 32.578 -25.865 23.579 c -34.068 14.581 -23.244 9.948 -21.255 13.161 c -19.266 16.373 -28.238 23.998 -32.637 12.643 c -37.035 1.289 -25.269 0.88 -24.574 4.594 c -23.88 8.308 -35 12.176 -35 0 c -35 -12.176 -23.88 -8.308 -24.574 -4.594 c -25.269 -0.88 -37.035 -1.289 -32.637 -12.643 c -28.238 -23.998 -19.266 -16.373 -21.255 -13.161 c -23.244 -9.948 -34.068 -14.581 -25.865 -23.579 c -17.662 -32.578 -12.051 -22.227 -15.066 -19.95 c -18.081 -17.673 -26.501 -25.903 -15.601 -31.331 c -4.701 -36.758 -3.207 -25.08 -6.842 -24.046 c -10.476 -23.012 -15.354 -33.727 -3.229 -34.851 c 8.895 -35.974 6.069 -24.545 2.307 -24.893 c -1.456 -25.242 -2.133 -36.996 9.578 -33.664 c 21.29 -30.332 14.526 -20.695 11.143 -22.379 c 7.761 -24.063 11.375 -35.269 21.092 -27.931 c 30.809 -20.593 21.021 -14.05 18.475 -16.842 c 15.93 -19.635 23.348 -28.778 29.758 -18.425 c 36.168 -8.073 24.677 -5.508 23.312 -9.031 c 21.947 -12.554 31.445 -17.987 33.835 -8.954 c 35.338 -3.275 32.494 -0.601 30 0 c S}
-\axo@setObject{278}%
-{AxoGluon 7 30 27 30 3 3 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 7 30 cm 5 -3 m 7.7 -3 7.7 3 3.5 3 c 1.25 3 0.25 1.5 0 0 c S 5 -3 m 2.3 -3 2.3 3 7.5 3 c 12.7 3 12.7 -3 10 -3 c 7.3 -3 7.3 3 12.5 3 c 17.7 3 17.7 -3 15 -3 c 12.3 -3 12.3 3 16.5 3 c 18.75 3 19.75 1.5 20 0 c S}
-\axo@setObject{279}%
-{AxoGluonCirc 50 30 20 0 3 16 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 50 30 cm 0.981 0.195 -0.195 0.981 0 0 cm 22.558 4.487 m 21.014 12.248 14.822 8.639 15.706 6.506 c 16.59 4.372 23.52 6.199 19.124 12.778 c 14.728 19.357 10.388 13.654 12.021 12.021 c 13.654 10.388 19.357 14.728 12.778 19.124 c 6.199 23.52 4.372 16.59 6.506 15.706 c 8.639 14.822 12.248 21.014 4.487 22.558 c -3.274 24.102 -2.309 17 0 17 c 2.309 17 3.274 24.102 -4.487 22.558 c -12.248 21.014 -8.639 14.822 -6.506 15.706 c -4.372 16.59 -6.199 23.52 -12.778 19.124 c -19.357 14.728 -13.654 10.388 -12.021 12.021 c -10.388 13.654 -14.728 19.357 -19.124 12.778 c -23.52 6.199 -16.59 4.372 -15.706 6.506 c -14.822 8.639 -21.014 12.248 -22.558 4.487 c -24.102 -3.274 -17 -2.309 -17 0 c -17 2.309 -24.102 3.274 -22.558 -4.487 c -21.014 -12.248 -14.822 -8.639 -15.706 -6.506 c -16.59 -4.372 -23.52 -6.199 -19.124 -12.778 c -14.728 -19.357 -10.388 -13.654 -12.021 -12.021 c -13.654 -10.388 -19.357 -14.728 -12.778 -19.124 c -6.199 -23.52 -4.372 -16.59 -6.506 -15.706 c -8.639 -14.822 -12.248 -21.014 -4.487 -22.558 c 3.274 -24.102 2.309 -17 0 -17 c -2.309 -17 -3.274 -24.102 4.487 -22.558 c 12.248 -21.014 8.639 -14.822 6.506 -15.706 c 4.372 -16.59 6.199 -23.52 12.778 -19.124 c 19.357 -14.728 13.654 -10.388 12.021 -12.021 c 10.388 -13.654 14.728 -19.357 19.124 -12.778 c 23.52 -6.199 16.59 -4.372 15.706 -6.506 c 14.822 -8.639 21.014 -12.248 22.558 -4.487 c 24.102 3.274 17 2.309 17 0 c 17 -2.309 24.102 -3.274 22.558 4.487 c S}
-\axo@setObject{280}%
-{AxoGluon 73 30 93 30 3 3 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 73 30 cm 5 -3 m 7.7 -3 7.7 3 3.5 3 c 1.25 3 0.25 1.5 0 0 c S 5 -3 m 2.3 -3 2.3 3 7.5 3 c 12.7 3 12.7 -3 10 -3 c 7.3 -3 7.3 3 12.5 3 c 17.7 3 17.7 -3 15 -3 c 12.3 -3 12.3 3 16.5 3 c 18.75 3 19.75 1.5 20 0 c S}
-\axo@setObject{281}%
-{Vertex 27 30 1.5 0.5;}%
-{ 0.5 w 1 0 0 1 27 30 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f}
-\axo@setObject{282}%
-{Vertex 73 30 1.5 0.5;}%
-{ 0.5 w 1 0 0 1 73 30 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f}
-\axo@setObject{283}%
-{AxoGluon 110 30 130 30 3 3 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 110 30 cm 5 -3 m 7.7 -3 7.7 3 3.5 3 c 1.25 3 0.25 1.5 0 0 c S 5 -3 m 2.3 -3 2.3 3 7.5 3 c 12.7 3 12.7 -3 10 -3 c 7.3 -3 7.3 3 12.5 3 c 17.7 3 17.7 -3 15 -3 c 12.3 -3 12.3 3 16.5 3 c 18.75 3 19.75 1.5 20 0 c S}
-\axo@setObject{284}%
-{AxoGluonArc 150 30 20 0 180 3 8 0 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 150 30 cm 15.975 5.814 m 15.185 7.984 20.957 11.019 22.317 5.564 c 23.198 2.03 21.497 0.375 20 0 c S 15.975 5.814 m 16.765 3.645 23.596 5.13 19.919 11.5 c 16.241 17.87 11.539 12.696 13.023 10.927 c 14.507 9.159 20.419 12.891 14.784 17.619 c 9.149 22.347 6.5 15.877 8.5 14.722 c 10.5 13.568 14.779 19.097 7.866 21.613 c 0.954 24.129 0.678 17.143 2.952 16.742 c 5.226 16.341 7.356 23 0 23 c -7.356 23 -5.226 16.341 -2.952 16.742 c -0.678 17.143 -0.954 24.129 -7.866 21.613 c -14.779 19.097 -10.5 13.568 -8.5 14.722 c -6.5 15.877 -9.149 22.347 -14.784 17.619 c -20.419 12.891 -14.507 9.159 -13.023 10.927 c -11.539 12.696 -16.241 17.87 -19.919 11.5 c -23.596 5.13 -16.765 3.645 -15.975 5.814 c -15.185 7.984 -20.957 11.019 -22.317 5.564 c -23.198 2.03 -21.497 0.375 -20 0 c S}
-\axo@setObject{285}%
-{AxoGluonArc 150 30 20 180 360 3 8 0 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 150 30 cm -1 0 0 -1 0 0 cm 15.975 5.814 m 15.185 7.984 20.957 11.019 22.317 5.564 c 23.198 2.03 21.497 0.375 20 0 c S 15.975 5.814 m 16.765 3.645 23.596 5.13 19.919 11.5 c 16.241 17.87 11.539 12.696 13.023 10.927 c 14.507 9.159 20.419 12.891 14.784 17.619 c 9.149 22.347 6.5 15.877 8.5 14.722 c 10.5 13.568 14.779 19.097 7.866 21.613 c 0.954 24.129 0.678 17.143 2.952 16.742 c 5.226 16.341 7.356 23 0 23 c -7.356 23 -5.226 16.341 -2.952 16.742 c -0.678 17.143 -0.954 24.129 -7.866 21.613 c -14.779 19.097 -10.5 13.568 -8.5 14.722 c -6.5 15.877 -9.149 22.347 -14.784 17.619 c -20.419 12.891 -14.507 9.159 -13.023 10.927 c -11.539 12.696 -16.241 17.87 -19.919 11.5 c -23.596 5.13 -16.765 3.645 -15.975 5.814 c -15.185 7.984 -20.957 11.019 -22.317 5.564 c -23.198 2.03 -21.497 0.375 -20 0 c S}
-\axo@setObject{286}%
-{AxoGluon 170 30 190 30 3 3 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 170 30 cm 5 -3 m 7.7 -3 7.7 3 3.5 3 c 1.25 3 0.25 1.5 0 0 c S 5 -3 m 2.3 -3 2.3 3 7.5 3 c 12.7 3 12.7 -3 10 -3 c 7.3 -3 7.3 3 12.5 3 c 17.7 3 17.7 -3 15 -3 c 12.3 -3 12.3 3 16.5 3 c 18.75 3 19.75 1.5 20 0 c S}
-\axo@setObject{287}%
-{Vertex 130 30 1.5 0.5;}%
-{ 0.5 w 1 0 0 1 130 30 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f}
-\axo@setObject{288}%
-{Vertex 170 30 1.5 0.5;}%
-{ 0.5 w 1 0 0 1 170 30 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f}
-\axo@setObject{289}%
-{AxoGluon 210 30 230 30 3 3 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 210 30 cm 5 -3 m 7.7 -3 7.7 3 3.5 3 c 1.25 3 0.25 1.5 0 0 c S 5 -3 m 2.3 -3 2.3 3 7.5 3 c 12.7 3 12.7 -3 10 -3 c 7.3 -3 7.3 3 12.5 3 c 17.7 3 17.7 -3 15 -3 c 12.3 -3 12.3 3 16.5 3 c 18.75 3 19.75 1.5 20 0 c S}
-\axo@setObject{290}%
-{AxoGluonArc 250 30 20 0 180 -3 8 0 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 250 30 cm 21.613 7.866 m 20.544 10.802 15.054 7.915 16.495 4.113 c 17.146 1.5 18.497 0.323 20 0 c S 21.613 7.866 m 22.681 4.931 16.625 3.614 14.722 8.5 c 11.442 12.591 15.611 17.177 17.619 14.784 c 19.627 12.391 14.386 9.082 10.927 13.023 c 6.446 15.745 8.795 21.481 11.5 19.919 c 14.205 18.357 10.412 13.455 5.814 15.975 c 0.672 17 0.917 23.193 3.994 22.651 c 7.07 22.108 5.182 16.205 0 17 c -5.182 16.205 -7.07 22.108 -3.994 22.651 c -0.917 23.193 -0.672 17 -5.814 15.975 c -10.412 13.455 -14.205 18.357 -11.5 19.919 c -8.795 21.481 -6.446 15.745 -10.927 13.023 c -14.386 9.082 -19.627 12.391 -17.619 14.784 c -15.611 17.177 -11.442 12.591 -14.722 8.5 c -16.625 3.614 -22.681 4.931 -21.613 7.866 c -20.544 10.802 -15.054 7.915 -16.495 4.113 c -17.146 1.5 -18.497 0.323 -20 0 c S}
-\axo@setObject{291}%
-{AxoGluonArc 250 30 20 180 360 -3 8 0 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 250 30 cm -1 0 0 -1 0 0 cm 21.613 7.866 m 20.544 10.802 15.054 7.915 16.495 4.113 c 17.146 1.5 18.497 0.323 20 0 c S 21.613 7.866 m 22.681 4.931 16.625 3.614 14.722 8.5 c 11.442 12.591 15.611 17.177 17.619 14.784 c 19.627 12.391 14.386 9.082 10.927 13.023 c 6.446 15.745 8.795 21.481 11.5 19.919 c 14.205 18.357 10.412 13.455 5.814 15.975 c 0.672 17 0.917 23.193 3.994 22.651 c 7.07 22.108 5.182 16.205 0 17 c -5.182 16.205 -7.07 22.108 -3.994 22.651 c -0.917 23.193 -0.672 17 -5.814 15.975 c -10.412 13.455 -14.205 18.357 -11.5 19.919 c -8.795 21.481 -6.446 15.745 -10.927 13.023 c -14.386 9.082 -19.627 12.391 -17.619 14.784 c -15.611 17.177 -11.442 12.591 -14.722 8.5 c -16.625 3.614 -22.681 4.931 -21.613 7.866 c -20.544 10.802 -15.054 7.915 -16.495 4.113 c -17.146 1.5 -18.497 0.323 -20 0 c S}
-\axo@setObject{292}%
-{AxoGluon 270 30 290 30 3 3 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 270 30 cm 5 -3 m 7.7 -3 7.7 3 3.5 3 c 1.25 3 0.25 1.5 0 0 c S 5 -3 m 2.3 -3 2.3 3 7.5 3 c 12.7 3 12.7 -3 10 -3 c 7.3 -3 7.3 3 12.5 3 c 17.7 3 17.7 -3 15 -3 c 12.3 -3 12.3 3 16.5 3 c 18.75 3 19.75 1.5 20 0 c S}
-\axo@setObject{293}%
-{Vertex 230 30 1.5 0.5;}%
-{ 0.5 w 1 0 0 1 230 30 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f}
-\axo@setObject{294}%
-{Vertex 270 30 1.5 0.5;}%
-{ 0.5 w 1 0 0 1 270 30 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f}
-\axo@setObject{295}%
-{AxoLine 310 30 330 30 0 3 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w [ 3.333] 1.667 d 310 30 m 330 30 l S}
-\axo@setObject{296}%
-{AxoGluonArc 350 30 20 -180 180 3 16 0 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 350 30 cm -1 0 0 -1 0 0 cm 15.852 6.141 m 15.018 8.294 20.758 11.464 22.235 5.884 c 23.222 2.152 21.496 0.397 20 0 c S 15.852 6.141 m 16.686 3.988 23.565 5.632 19.555 12.108 c 15.545 18.584 11.008 13.159 12.563 11.453 c 14.119 9.746 19.939 13.764 13.861 18.354 c 7.782 22.945 5.511 16.247 7.578 15.218 c 9.645 14.189 13.62 20.038 6.294 22.122 c -1.032 24.206 -0.731 17.141 1.569 16.927 c 3.868 16.714 5.462 23.605 -2.122 22.902 c -9.707 22.199 -6.873 15.719 -4.652 16.351 c -2.431 16.983 -3.434 23.984 -10.252 20.589 c -17.07 17.194 -12.087 12.175 -10.245 13.566 c -8.402 14.958 -11.866 21.124 -16.997 15.495 c -22.129 9.866 -15.669 6.986 -14.454 8.949 c -13.238 10.913 -18.695 15.411 -21.447 8.309 c -24.198 1.206 -17.135 0.854 -16.711 3.124 c -16.286 5.393 -23 7.617 -23 0 c -23 -7.617 -16.286 -5.393 -16.711 -3.124 c -17.135 -0.854 -24.198 -1.206 -21.447 -8.309 c -18.695 -15.411 -13.238 -10.913 -14.454 -8.949 c -15.669 -6.986 -22.129 -9.866 -16.997 -15.495 c -11.866 -21.124 -8.402 -14.958 -10.245 -13.566 c -12.087 -12.175 -17.07 -17.194 -10.252 -20.589 c -3.434 -23.984 -2.431 -16.983 -4.652 -16.351 c -6.873 -15.719 -9.707 -22.199 -2.122 -22.902 c 5.462 -23.605 3.868 -16.714 1.569 -16.927 c -0.731 -17.141 -1.032 -24.206 6.294 -22.122 c 13.62 -20.038 9.645 -14.189 7.578 -15.218 c 5.511 -16.247 7.782 -22.945 13.861 -18.354 c 19.939 -13.764 14.119 -9.746 12.563 -11.453 c 11.008 -13.159 15.545 -18.584 19.555 -12.108 c 23.565 -5.632 16.686 -3.988 15.852 -6.141 c 15.018 -8.294 20.758 -11.464 22.235 -5.884 c 23.222 -2.152 21.496 -0.397 20 0 c S}
-\axo@setObject{297}%
-{Vertex 330 30 1.5 0.5;}%
-{ 0.5 w 1 0 0 1 330 30 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f}
-\axo@setObject{298}%
-{AxoLine 387 30 407 30 0 3 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w [ 3.333] 1.667 d 387 30 m 407 30 l S}
-\axo@setObject{299}%
-{AxoGluonCirc 430 30 20 0 3 16 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 430 30 cm 0.981 0.195 -0.195 0.981 0 0 cm 22.558 4.487 m 21.014 12.248 14.822 8.639 15.706 6.506 c 16.59 4.372 23.52 6.199 19.124 12.778 c 14.728 19.357 10.388 13.654 12.021 12.021 c 13.654 10.388 19.357 14.728 12.778 19.124 c 6.199 23.52 4.372 16.59 6.506 15.706 c 8.639 14.822 12.248 21.014 4.487 22.558 c -3.274 24.102 -2.309 17 0 17 c 2.309 17 3.274 24.102 -4.487 22.558 c -12.248 21.014 -8.639 14.822 -6.506 15.706 c -4.372 16.59 -6.199 23.52 -12.778 19.124 c -19.357 14.728 -13.654 10.388 -12.021 12.021 c -10.388 13.654 -14.728 19.357 -19.124 12.778 c -23.52 6.199 -16.59 4.372 -15.706 6.506 c -14.822 8.639 -21.014 12.248 -22.558 4.487 c -24.102 -3.274 -17 -2.309 -17 0 c -17 2.309 -24.102 3.274 -22.558 -4.487 c -21.014 -12.248 -14.822 -8.639 -15.706 -6.506 c -16.59 -4.372 -23.52 -6.199 -19.124 -12.778 c -14.728 -19.357 -10.388 -13.654 -12.021 -12.021 c -13.654 -10.388 -19.357 -14.728 -12.778 -19.124 c -6.199 -23.52 -4.372 -16.59 -6.506 -15.706 c -8.639 -14.822 -12.248 -21.014 -4.487 -22.558 c 3.274 -24.102 2.309 -17 0 -17 c -2.309 -17 -3.274 -24.102 4.487 -22.558 c 12.248 -21.014 8.639 -14.822 6.506 -15.706 c 4.372 -16.59 6.199 -23.52 12.778 -19.124 c 19.357 -14.728 13.654 -10.388 12.021 -12.021 c 10.388 -13.654 14.728 -19.357 19.124 -12.778 c 23.52 -6.199 16.59 -4.372 15.706 -6.506 c 14.822 -8.639 21.014 -12.248 22.558 -4.487 c 24.102 3.274 17 2.309 17 0 c 17 -2.309 24.102 -3.274 22.558 4.487 c S}
-\axo@setObject{300}%
-{Vertex 407 30 1.5 0.5;}%
-{ 0.5 w 1 0 0 1 407 30 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f}
-\axo@setObject{301}%
-{Grid 0 0 10 10 15 10 0.5;}%
-{ 0.5 w 0 0 m 0 100 l S 10 0 m 10 100 l S 20 0 m 20 100 l S 30 0 m 30 100 l S 40 0 m 40 100 l S 50 0 m 50 100 l S 60 0 m 60 100 l S 70 0 m 70 100 l S 80 0 m 80 100 l S 90 0 m 90 100 l S 100 0 m 100 100 l S 110 0 m 110 100 l S 120 0 m 120 100 l S 130 0 m 130 100 l S 140 0 m 140 100 l S 150 0 m 150 100 l S 0 0 m 150 0 l S 0 10 m 150 10 l S 0 20 m 150 20 l S 0 30 m 150 30 l S 0 40 m 150 40 l S 0 50 m 150 50 l S 0 60 m 150 60 l S 0 70 m 150 70 l S 0 80 m 150 80 l S 0 90 m 150 90 l S 0 100 m 150 100 l S}
-\axo@setObject{302}%
-{AxoLine 10 50 100 50 0 0 3 40 0 0.3 1 1 1 1 0 3;}%
-{ 3 w 10 50 m 100 50 l S 1 0 0 1 10 50 cm 1 0 0 1 90 0 cm q [] 0 d 3 w q 40 0 m -40 40 l -16 0 l -40 -40 l 0 0 0 0 k h f Q q 40 0 m -40 40 l -16 0 l -40 -40 l s Q Q}
-\axo@setObject{303}%
-{AxoLine 55 50 55 90 0 0 0 0 0 0.2 1 1.25 1 1 0 0.5;}%
-{ 0.5 w 55 50 m 55 90 l S 1 0 0 1 55 50 cm 0 1 -1 0 0 0 cm 1 0 0 1 40 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{304}%
-{AxoLine 60 5 84 5 0 0 0 0 0 0.2 1 1.25 1 1 0 0.5;}%
-{ 0.5 w 60 5 m 84 5 l S 1 0 0 1 60 5 cm 1 0 0 1 24 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{305}%
-{AxoLine 60 95 140 95 0 0 0 0 0 0.2 1 1.25 1 1 0 0.5;}%
-{ 0.5 w 60 95 m 140 95 l S 1 0 0 1 60 95 cm 1 0 0 1 80 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{306}%
-{Grid 0 0 10 10 9 8 0.5;}%
-{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 90 0 m 90 80 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S}
-\axo@setObject{307}%
-{AxoLine 10 70 80 70 0 0 0 0 0 0.2 2 1.25 0.5 1 0 0.5;}%
-{ 0.5 w 10 70 m 80 70 l S 1 0 0 1 10 70 cm 1 0 0 1 35 0 cm q [] 0 d 6.25 0 m -6.25 5 l -3.75 0 l -6.25 -5 l h f Q}
-\axo@setObject{308}%
-{AxoLine 10 50 80 50 0 0 0 0 0 0.2 1 1.25 0.8 1 1 0.5;}%
-{ 0.5 w 10 50 m 80 50 l S 1 0 0 1 10 50 cm 1 0 0 1 56 0 cm q [] 0 d -3.125 0 m 3.125 2.5 l 1.875 0 l 3.125 -2.5 l h f Q}
-\axo@setObject{309}%
-{AxoLine 10 30 80 30 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0.5;}%
-{ 0.5 w 10 30 m 80 30 l S 1 0 0 1 10 30 cm 1 0 0 1 35 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{310}%
-{AxoLine 10 10 80 10 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0.5;}%
-{ 0.5 w 10 10 m 80 10 l S 1 0 0 1 10 10 cm 1 0 0 1 35 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{311}%
-{Grid 0 0 10 10 9 6 0.5;}%
-{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 70 0 m 70 60 l S 80 0 m 80 60 l S 90 0 m 90 60 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S}
-\axo@setObject{312}%
-{AxoLine 10 30 80 30 0 0 0 0 0 0.2 1 1.25 1 1 0 0.5;}%
-{ 0.5 w 10 30 m 80 30 l S 1 0 0 1 10 30 cm 1 0 0 1 70 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{313}%
-{AxoLine 10 10 80 10 0 0 0 0 0 0.2 1 1.25 1 1 0 0.5;}%
-{ 0.5 w 10 10 m 80 10 l S 1 0 0 1 10 10 cm 1 0 0 1 70 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{314}%
-{AxoLine 10 50 70 50 0 0 0 0 0 0.2 0.8 1.25 1 1 0 4;}%
-{ 4 w 10 50 m 70 50 l S 1 0 0 1 10 50 cm 1 0 0 1 60 0 cm q [] 0 d 6 0 m -6 4.8 l -3.6 0 l -6 -4.8 l h f Q}
-\axo@setObject{315}%
-{Grid 0 0 10 10 9 10 0.5;}%
-{ 0.5 w 0 0 m 0 100 l S 10 0 m 10 100 l S 20 0 m 20 100 l S 30 0 m 30 100 l S 40 0 m 40 100 l S 50 0 m 50 100 l S 60 0 m 60 100 l S 70 0 m 70 100 l S 80 0 m 80 100 l S 90 0 m 90 100 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S 0 90 m 90 90 l S 0 100 m 90 100 l S}
-\axo@setObject{316}%
-{AxoLine 10 90 75 90 5 0 1 0 0 0.2 1.3 1.25 1 1 0 0.5;}%
-{ 0.5 w q 5.5 w 10 90 m 75 90 l S 4.5 w 0 0 0 0 K 10 90 m 75 90 l S Q 1 0 0 1 10 90 cm 1 0 0 1 65 0 cm q [] 0 d 1 w q 9.75 0 m -9.75 7.8 l -5.85 0 l -9.75 -7.8 l 0 0 0 0 k h f Q q 9.75 0 m -9.75 7.8 l -5.85 0 l -9.75 -7.8 l s Q Q}
-\axo@setObject{317}%
-{AxoLine 10 70 80 70 2 0 1 0 0 0.2 1.5 1.25 1 1 0 0.5;}%
-{ 0.5 w q 2.5 w 10 70 m 80 70 l S 1.5 w 0 0 0 0 K 10 70 m 80 70 l S Q 1 0 0 1 10 70 cm 1 0 0 1 70 0 cm q [] 0 d 1 w q 6.525 0 m -6.525 5.22 l -3.915 0 l -6.525 -5.22 l 0 0 0 0 k h f Q q 6.525 0 m -6.525 5.22 l -3.915 0 l -6.525 -5.22 l s Q Q}
-\axo@setObject{318}%
-{AxoLine 10 50 80 50 2 0 1 0 0 0.2 1 1.25 1 1 0 0.5;}%
-{ 0.5 w q 2.5 w 10 50 m 80 50 l S 1.5 w 0 0 0 0 K 10 50 m 80 50 l S Q 1 0 0 1 10 50 cm 1 0 0 1 70 0 cm q [] 0 d 1 w q 4.35 0 m -4.35 3.48 l -2.61 0 l -4.35 -3.48 l 0 0 0 0 k h f Q q 4.35 0 m -4.35 3.48 l -2.61 0 l -4.35 -3.48 l s Q Q}
-\axo@setObject{319}%
-{AxoLine 10 30 80 30 2 0 1 0 0 0.2 1 1.25 0.5 1 0 0.5;}%
-{ 0.5 w q 2.5 w 10 30 m 80 30 l S 1.5 w 0 0 0 0 K 10 30 m 80 30 l S Q 1 0 0 1 10 30 cm 1 0 0 1 35 0 cm q [] 0 d 1 w q 4.35 0 m -4.35 3.48 l -2.61 0 l -4.35 -3.48 l 0 0 0 0 k h f Q q 4.35 0 m -4.35 3.48 l -2.61 0 l -4.35 -3.48 l s Q Q}
-\axo@setObject{320}%
-{AxoLine 10 10 80 10 2 0 1 0 0 0.2 1 1.25 0.5 1 0 0.5;}%
-{ 0.5 w q 2.5 w 10 10 m 80 10 l S 1.5 w 0 0 0 0 K 10 10 m 80 10 l S Q 1 0 0 1 10 10 cm 1 0 0 1 35 0 cm q [] 0 d 1 w q 4.35 0 m -4.35 3.48 l -2.61 0 l -4.35 -3.48 l 0 0 0 0 k h f Q q 4.35 0 m -4.35 3.48 l -2.61 0 l -4.35 -3.48 l s Q Q}
-\axo@setObject{321}%
-{Grid 0 0 10 10 9 8 0.5;}%
-{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 90 0 m 90 80 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S}
-\axo@setObject{322}%
-{AxoLine 10 70 80 70 0 3 0 0 0 0.2 1.5 1.25 0.3 1 0 0.5;}%
-{ 0.5 w [ 2.917] 1.458 d 10 70 m 80 70 l S 1 0 0 1 10 70 cm 1 0 0 1 23.333 0 cm q [] 0 d 4.688 0 m -4.688 3.75 l -2.812 0 l -4.688 -3.75 l h f Q}
-\axo@setObject{323}%
-{AxoLine 10 50 80 50 0 3 0 0 0 0.2 1 1.25 0.5 1 0 0.5;}%
-{ 0.5 w [ 2.917] 1.458 d 10 50 m 80 50 l S 1 0 0 1 10 50 cm 1 0 0 1 35 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{324}%
-{AxoLine 10 30 80 30 0 3 0 0 0 0.2 1 1.25 0.5 1 0 0.5;}%
-{ 0.5 w [ 2.917] 1.458 d 10 30 m 80 30 l S 1 0 0 1 10 30 cm 1 0 0 1 35 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{325}%
-{AxoLine 10 10 80 10 0 3 0 0 0 0.2 1 1.25 0.5 1 0 0.5;}%
-{ 0.5 w [ 2.917] 1.458 d 10 10 m 80 10 l S 1 0 0 1 10 10 cm 1 0 0 1 35 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{326}%
-{Grid 0 0 10 10 9 8 0.5;}%
-{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 90 0 m 90 80 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S}
-\axo@setObject{327}%
-{AxoLine 10 70 80 70 1.5 3 0.5 0 0 0.2 1.5 1.25 1 1 0 0.5;}%
-{ 0.5 w [ 2.917] 1.458 d q 2 w 10 70 m 80 70 l S 1 w 0 0 0 0 K 10 70 m 80 70 l S Q 1 0 0 1 10 70 cm 1 0 0 1 70 0 cm q [] 0 d 0.5 w q 5.737 0 m -5.737 4.59 l -3.442 0 l -5.737 -4.59 l 0 0 0 0 k h f Q q 5.737 0 m -5.737 4.59 l -3.442 0 l -5.737 -4.59 l s Q Q}
-\axo@setObject{328}%
-{AxoLine 10 50 80 50 1.5 3 0.5 0 0 0.2 1 1.25 0.5 1 0 0.5;}%
-{ 0.5 w [ 2.917] 1.458 d q 2 w 10 50 m 80 50 l S 1 w 0 0 0 0 K 10 50 m 80 50 l S Q 1 0 0 1 10 50 cm 1 0 0 1 35 0 cm q [] 0 d 0.5 w q 3.825 0 m -3.825 3.06 l -2.295 0 l -3.825 -3.06 l 0 0 0 0 k h f Q q 3.825 0 m -3.825 3.06 l -2.295 0 l -3.825 -3.06 l s Q Q}
-\axo@setObject{329}%
-{AxoLine 10 30 80 30 1.5 3 0.5 0 0 0.2 1 1.25 0.5 1 0 0.5;}%
-{ 0.5 w [ 2.917] 1.458 d q 2 w 10 30 m 80 30 l S 1 w 0 0 0 0 K 10 30 m 80 30 l S Q 1 0 0 1 10 30 cm 1 0 0 1 35 0 cm q [] 0 d 0.5 w q 3.825 0 m -3.825 3.06 l -2.295 0 l -3.825 -3.06 l 0 0 0 0 k h f Q q 3.825 0 m -3.825 3.06 l -2.295 0 l -3.825 -3.06 l s Q Q}
-\axo@setObject{330}%
-{AxoLine 10 10 80 10 1.5 3 0.5 0 0 0.2 1 1.25 0.5 1 0 0.5;}%
-{ 0.5 w [ 2.917] 1.458 d q 2 w 10 10 m 80 10 l S 1 w 0 0 0 0 K 10 10 m 80 10 l S Q 1 0 0 1 10 10 cm 1 0 0 1 35 0 cm q [] 0 d 0.5 w q 3.825 0 m -3.825 3.06 l -2.295 0 l -3.825 -3.06 l 0 0 0 0 k h f Q q 3.825 0 m -3.825 3.06 l -2.295 0 l -3.825 -3.06 l s Q Q}
-\axo@setObject{331}%
-{Grid 0 0 10 10 9 8 0.5;}%
-{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 90 0 m 90 80 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S}
-\axo@setObject{332}%
-{AxoLine 10 70 80 70 0 3 0 0 0 0.2 1.5 1.25 0 1 1 0.5;}%
-{ 0.5 w [ 2.917] 1.458 d 10 70 m 80 70 l S 1 0 0 1 10 70 cm q [] 0 d -4.688 0 m 4.688 3.75 l 2.812 0 l 4.688 -3.75 l h f Q}
-\axo@setObject{333}%
-{AxoLine 10 50 80 50 0 3 0 0 0 0.2 1 1.25 1 1 0 0.5;}%
-{ 0.5 w [ 2.917] 1.458 d 10 50 m 80 50 l S 1 0 0 1 10 50 cm 1 0 0 1 70 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{334}%
-{AxoLine 10 30 80 30 0 3 0 0 0 0.2 1 1.25 1 1 0 0.5;}%
-{ 0.5 w [ 2.917] 1.458 d 10 30 m 80 30 l S 1 0 0 1 10 30 cm 1 0 0 1 70 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{335}%
-{AxoLine 10 10 80 10 0 3 0 0 0 0.2 1 1.25 1 1 0 0.5;}%
-{ 0.5 w [ 2.917] 1.458 d 10 10 m 80 10 l S 1 0 0 1 10 10 cm 1 0 0 1 70 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{336}%
-{Grid 0 0 10 10 9 14 0.5;}%
-{ 0.5 w 0 0 m 0 140 l S 10 0 m 10 140 l S 20 0 m 20 140 l S 30 0 m 30 140 l S 40 0 m 40 140 l S 50 0 m 50 140 l S 60 0 m 60 140 l S 70 0 m 70 140 l S 80 0 m 80 140 l S 90 0 m 90 140 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S 0 90 m 90 90 l S 0 100 m 90 100 l S 0 110 m 90 110 l S 0 120 m 90 120 l S 0 130 m 90 130 l S 0 140 m 90 140 l S}
-\axo@setObject{337}%
-{AxoArc 45 95 40 160 20 0 0 0 0 0 0.2 1 1.25 1 1 0 1 0.5;}%
-{ 0.5 w 1 0 0 1 45 95 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S 1 0 0 1 37.588 13.681 cm -0.342 0.94 -0.94 -0.342 0 0 cm q [] 0 d -3.125 0 m 3.125 2.5 l 1.875 0 l 3.125 -2.5 l h f Q}
-\axo@setObject{338}%
-{AxoArc 45 80 40 160 20 0 0 0 0 0 0.2 1 1.25 1 1 0 1 0.5;}%
-{ 0.5 w 1 0 0 1 45 80 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S 1 0 0 1 37.588 13.681 cm -0.342 0.94 -0.94 -0.342 0 0 cm q [] 0 d -3.125 0 m 3.125 2.5 l 1.875 0 l 3.125 -2.5 l h f Q}
-\axo@setObject{339}%
-{AxoArc 45 65 40 160 20 0 0 0 0 0 0.2 1 1.25 0.5 1 0 1 0.5;}%
-{ 0.5 w 1 0 0 1 45 65 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S 1 0 0 1 0 40 cm -1 0 0 -1 0 0 cm q [] 0 d -3.125 0 m 3.125 2.5 l 1.875 0 l 3.125 -2.5 l h f Q}
-\axo@setObject{340}%
-{AxoArc 45 50 40 160 20 0 0 0 0 0 0.2 1 1.25 0.5 1 0 1 0.5;}%
-{ 0.5 w 1 0 0 1 45 50 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S 1 0 0 1 0 40 cm -1 0 0 -1 0 0 cm q [] 0 d -3.125 0 m 3.125 2.5 l 1.875 0 l 3.125 -2.5 l h f Q}
-\axo@setObject{341}%
-{AxoArc 45 35 40 20 160 0 0 0 0 0 0.2 1 1.25 1 1 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 45 35 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S 1 0 0 1 -37.588 13.681 cm -0.342 -0.94 0.94 -0.342 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{342}%
-{AxoArc 45 20 40 20 160 0 0 0 0 0 0.2 1 1.25 1 1 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 45 20 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S 1 0 0 1 -37.588 13.681 cm -0.342 -0.94 0.94 -0.342 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{343}%
-{AxoArc 45 5 40 20 160 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 45 5 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S 1 0 0 1 0 40 cm -1 0 0 -1 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{344}%
-{AxoArc 45 -10 40 20 160 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 45 -10 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S 1 0 0 1 0 40 cm -1 0 0 -1 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{345}%
-{Grid 0 0 10 10 9 11 0.5;}%
-{ 0.5 w 0 0 m 0 110 l S 10 0 m 10 110 l S 20 0 m 20 110 l S 30 0 m 30 110 l S 40 0 m 40 110 l S 50 0 m 50 110 l S 60 0 m 60 110 l S 70 0 m 70 110 l S 80 0 m 80 110 l S 90 0 m 90 110 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S 0 90 m 90 90 l S 0 100 m 90 100 l S 0 110 m 90 110 l S}
-\axo@setObject{346}%
-{AxoArc 45 65 40 160 20 0 3 0 0 0 0.2 1 1.25 0.5 1 0 1 0.5;}%
-{ 0.5 w [ 3.054] 1.527 d 1 0 0 1 45 65 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S 1 0 0 1 0 40 cm -1 0 0 -1 0 0 cm q [] 0 d -3.125 0 m 3.125 2.5 l 1.875 0 l 3.125 -2.5 l h f Q}
-\axo@setObject{347}%
-{AxoArc 45 50 40 160 20 0 3 0 0 0 0.2 1 1.25 0.5 1 0 1 0.5;}%
-{ 0.5 w [ 3.054] 1.527 d 1 0 0 1 45 50 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S 1 0 0 1 0 40 cm -1 0 0 -1 0 0 cm q [] 0 d -3.125 0 m 3.125 2.5 l 1.875 0 l 3.125 -2.5 l h f Q}
-\axo@setObject{348}%
-{AxoArc 45 35 40 20 160 0 3 0 0 0 0.2 1 1.25 1 1 0 0 0.5;}%
-{ 0.5 w [ 3.054] 1.527 d 1 0 0 1 45 35 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S 1 0 0 1 -37.588 13.681 cm -0.342 -0.94 0.94 -0.342 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{349}%
-{AxoArc 45 20 40 20 160 0 3 0 0 0 0.2 1 1.25 1 1 0 0 0.5;}%
-{ 0.5 w [ 3.054] 1.527 d 1 0 0 1 45 20 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S 1 0 0 1 -37.588 13.681 cm -0.342 -0.94 0.94 -0.342 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{350}%
-{AxoArc 45 5 40 20 160 0 3 0 0 0 0.2 1 1.25 0.5 1 0 0 0.5;}%
-{ 0.5 w [ 3.054] 1.527 d 1 0 0 1 45 5 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S 1 0 0 1 0 40 cm -1 0 0 -1 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{351}%
-{AxoArc 45 -10 40 20 160 0 3 0 0 0 0.2 1 1.25 0.5 1 0 0 0.5;}%
-{ 0.5 w [ 3.054] 1.527 d 1 0 0 1 45 -10 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S 1 0 0 1 0 40 cm -1 0 0 -1 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{352}%
-{Grid 0 0 10 10 9 8 0.5;}%
-{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 90 0 m 90 80 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S}
-\axo@setObject{353}%
-{AxoArc 45 35 40 20 160 1.5 3 0 0 0 0.2 1 1.25 0.5 1 0 0 0.5;}%
-{ 0.5 w [ 3.054] 1.527 d 1 0 0 1 45 35 cm q 1.019 0 0 1.019 0 0 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S Q q 0.981 0 0 0.981 0 0 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S Q 1 0 0 1 0 40 cm -1 0 0 -1 0 0 cm q [] 0 d 3.825 0 m -3.825 3.06 l -2.295 0 l -3.825 -3.06 l h f Q}
-\axo@setObject{354}%
-{AxoArc 45 20 40 20 160 1.5 3 0 0 0 0.2 1 1.25 0.5 1 0 0 0.5;}%
-{ 0.5 w [ 3.054] 1.527 d 1 0 0 1 45 20 cm q 1.019 0 0 1.019 0 0 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S Q q 0.981 0 0 0.981 0 0 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S Q 1 0 0 1 0 40 cm -1 0 0 -1 0 0 cm q [] 0 d 3.825 0 m -3.825 3.06 l -2.295 0 l -3.825 -3.06 l h f Q}
-\axo@setObject{355}%
-{AxoArc 45 5 40 20 160 1.5 0 0 0 0 0.2 1 1.25 0.5 1 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 45 5 cm 38.292 13.937 m 32.433 30.035 17.131 40.75 0 40.75 c -17.131 40.75 -32.433 30.035 -38.292 13.937 c S 36.883 13.424 m 31.239 28.93 16.501 39.25 0 39.25 c -16.501 39.25 -31.239 28.93 -36.883 13.424 c S 1 0 0 1 0 40 cm -1 0 0 -1 0 0 cm q [] 0 d 3.825 0 m -3.825 3.06 l -2.295 0 l -3.825 -3.06 l h f Q}
-\axo@setObject{356}%
-{AxoArc 45 -10 40 20 160 1.5 0 0 0 0 0.2 1 1.25 0.5 1 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 45 -10 cm 38.292 13.937 m 32.433 30.035 17.131 40.75 0 40.75 c -17.131 40.75 -32.433 30.035 -38.292 13.937 c S 36.883 13.424 m 31.239 28.93 16.501 39.25 0 39.25 c -16.501 39.25 -31.239 28.93 -36.883 13.424 c S 1 0 0 1 0 40 cm -1 0 0 -1 0 0 cm q [] 0 d 3.825 0 m -3.825 3.06 l -2.295 0 l -3.825 -3.06 l h f Q}
-\axo@setObject{357}%
-{Grid 0 0 10 10 8 8 0.5;}%
-{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 0 0 m 80 0 l S 0 10 m 80 10 l S 0 20 m 80 20 l S 0 30 m 80 30 l S 0 40 m 80 40 l S 0 50 m 80 50 l S 0 60 m 80 60 l S 0 70 m 80 70 l S 0 80 m 80 80 l S}
-\axo@setObject{358}%
-{AxoBezier 10 10 30 30 10 50 30 70 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0.5;}%
-{ 0.5 w 10 10 m 30 30 10 50 30 70 c S 1 0 0 1 20 40 cm 0 1 -1 0 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{359}%
-{AxoBezier 30 10 50 30 30 50 50 70 0 3 0 0 0 0.2 1 1.25 0.5 1 0 0.5;}%
-{ 0.5 w [ 2.971] 1.486 d 30 10 m 50 30 30 50 50 70 c S 1 0 0 1 40 40 cm 0 1 -1 0 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{360}%
-{AxoBezier 50 10 70 30 50 50 70 70 1 0 0.5 0 0 0.2 1 1.25 1 1 0 0.5;}%
-{ 0.5 w q 1.5 w 50 10 m 70 30 50 50 70 70 c S Q q 0.5 w 0 0 0 0 K 50 10 m 70 30 50 50 70 70 c S Q 1 0 0 1 70 70 cm 0.707 0.707 -0.707 0.707 0 0 cm q [] 0 d 0.5 w q 3.3 0 m -3.3 2.64 l -1.98 0 l -3.3 -2.64 l 0 0 0 0 k h f Q q 3.3 0 m -3.3 2.64 l -1.98 0 l -3.3 -2.64 l s Q Q}
-\axo@setObject{361}%
-{AxoArc 30 0 30 0 180 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 30 0 cm 30 0 m 30 16.569 16.569 30 0 30 c -16.569 30 -30 16.569 -30 0 c S 1 0 0 1 0 30 cm -1 0 0 -1 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{362}%
-{FBoxc 0 0 30.0 12.747 0.5;}%
-{ 0.5 w -15 -6.373 30 12.747 re f}
-\axo@setObject{363}%
-{Boxc 0 0 30.0 12.747 0.5;}%
-{ 0.5 w -15 -6.373 30 12.747 re S}
-\axo@setObject{364}%
-{AxoArc 30 0 30 0 180 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 30 0 cm 30 0 m 30 16.569 16.569 30 0 30 c -16.569 30 -30 16.569 -30 0 c S 1 0 0 1 0 30 cm -1 0 0 -1 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{365}%
-{FBoxc 0 0 30.0 12.747 0.5;}%
-{ 0.5 w -15 -6.373 30 12.747 re f}
-\axo@setObject{366}%
-{Boxc 0 0 30.0 12.747 0.5;}%
-{ 0.5 w -15 -6.373 30 12.747 re S}
-\axo@setObject{367}%
-{AxoArc 30 0 30 0 180 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 30 0 cm 30 0 m 30 16.569 16.569 30 0 30 c -16.569 30 -30 16.569 -30 0 c S 1 0 0 1 0 30 cm -1 0 0 -1 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{368}%
-{FBoxc 0 0 30.0 12.747 0.5;}%
-{ 0.5 w -15 -6.373 30 12.747 re f}
-\axo@setObject{369}%
-{Boxc 0 0 30.0 12.747 0.5;}%
-{ 0.5 w -15 -6.373 30 12.747 re S}
-\axo@setObject{370}%
-{AxoArc 30 0 30 0 180 0 0 0 0 0 0.2 1 1.25 0.5 1 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 30 0 cm 30 0 m 30 16.569 16.569 30 0 30 c -16.569 30 -30 16.569 -30 0 c S 1 0 0 1 0 30 cm -1 0 0 -1 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
-\axo@setObject{371}%
-{FBoxc 0 0 30.0 12.747 0.5;}%
-{ 0.5 w -15 -6.373 30 12.747 re f}
-\axo@setObject{372}%
-{Boxc 0 0 30.0 12.747 0.5;}%
-{ 0.5 w -15 -6.373 30 12.747 re S}
-\axo@setObject{373}%
-{AxoLine 0 10 40 30 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 0 10 m 40 30 l S}
-\axo@setObject{374}%
-{AxoLine 0 10 40 30 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 0 10 m 40 30 l S}
-\axo@setObject{375}%
-{AxoGluon 0 10 40 10 4 4 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 0 10 cm 8 -4 m 11.6 -4 11.6 4 5.6 4 c 2 4 0.4 2 0 0 c S 8 -4 m 4.4 -4 4.4 4 12 4 c 19.6 4 19.6 -4 16 -4 c 12.4 -4 12.4 4 20 4 c 27.6 4 27.6 -4 24 -4 c 20.4 -4 20.4 4 28 4 c 35.6 4 35.6 -4 32 -4 c 28.4 -4 28.4 4 34.4 4 c 38 4 39.6 2 40 0 c S}
-\axo@setObject{376}%
-{AxoGluon 0 5 30 5 3 4 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 0 5 cm 6 -3 m 8.7 -3 8.7 3 4.2 3 c 1.5 3 0.3 1.5 0 0 c S 6 -3 m 3.3 -3 3.3 3 9 3 c 14.7 3 14.7 -3 12 -3 c 9.3 -3 9.3 3 15 3 c 20.7 3 20.7 -3 18 -3 c 15.3 -3 15.3 3 21 3 c 26.7 3 26.7 -3 24 -3 c 21.3 -3 21.3 3 25.8 3 c 28.5 3 29.7 1.5 30 0 c S}
-\axo@setObject{377}%
-{AxoLine 0 0 50 0 0 0 0 0 0 0 0 0 0 0 0 2;}%
-{ 2 w 0 0 m 50 0 l S}
-\axo@setObject{378}%
-{AxoLine 0 0 50 0 0 0 0 0 0 0 0 0 0 0 0 2;}%
-{ 2 w 0 0 m 50 0 l S}
-\axo@setObject{379}%
-{AxoPhoton 7 70 37 70 4 3 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 7 70 cm 0 0 m 2.122 5.333 2.878 5.333 5 0 c 7.122 -5.333 7.878 -5.333 10 0 c 12.122 5.333 12.878 5.333 15 0 c 17.122 -5.333 17.878 -5.333 20 0 c 22.122 5.333 22.878 5.333 25 0 c 27.122 -5.333 27.878 -5.333 30 0 c S}
-\axo@setObject{380}%
-{AxoPhoton 7 70 37 70 -4 3 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 7 70 cm 0 0 m 2.122 -5.333 2.878 -5.333 5 0 c 7.122 5.333 7.878 5.333 10 0 c 12.122 -5.333 12.878 -5.333 15 0 c 17.122 5.333 17.878 5.333 20 0 c 22.122 -5.333 22.878 -5.333 25 0 c 27.122 5.333 27.878 5.333 30 0 c S}
-\axo@setObject{381}%
-{AxoGluonArc 70 70 30 90 270 3 10 0 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 70 70 cm 0 1 -1 0 0 0 cm 25.906 7.607 m 25.22 9.945 31.179 12.295 32.343 6.553 c 33.19 2.374 31.497 0.45 30 0 c S 25.906 7.607 m 26.593 5.269 33.268 6.592 30.018 13.709 c 26.768 20.826 21.397 16.647 22.714 14.597 c 24.031 12.548 30.064 15.697 24.94 21.61 c 19.816 27.524 15.84 22.001 17.681 20.405 c 19.523 18.81 24.423 23.531 17.841 27.761 c 11.259 31.991 9 25.572 11.216 24.56 c 13.433 23.548 16.804 29.459 9.297 31.663 c 1.79 33.868 1.431 27.072 3.843 26.725 c 6.254 26.378 7.824 33 0 33 c -7.824 33 -6.254 26.378 -3.843 26.725 c -1.431 27.072 -1.79 33.868 -9.297 31.663 c -16.804 29.459 -13.433 23.548 -11.216 24.56 c -9 25.572 -11.259 31.991 -17.841 27.761 c -24.423 23.531 -19.523 18.81 -17.681 20.405 c -15.84 22.001 -19.816 27.524 -24.94 21.61 c -30.064 15.697 -24.031 12.548 -22.714 14.597 c -21.397 16.647 -26.768 20.826 -30.018 13.709 c -33.268 6.592 -26.593 5.269 -25.906 7.607 c -25.22 9.945 -31.179 12.295 -32.343 6.553 c -33.19 2.374 -31.497 0.45 -30 0 c S}
-\axo@setObject{382}%
-{AxoLine 100 100 70 100 0 0 0.5 0 0 0.2 0.8 1.25 0.5 1 0 0.5;}%
-{ 0.5 w 100 100 m 70 100 l S 1 0 0 1 100 100 cm -1 0 0 -1 0 0 cm 1 0 0 1 15 0 cm q [] 0 d 0.5 w q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l 0 0 0 0 k h f Q q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l s Q Q}
-\axo@setObject{383}%
-{AxoLine 130 100 100 100 0 0 0.5 0 0 0.2 0.8 1.25 0.5 1 0 0.5;}%
-{ 0.5 w 130 100 m 100 100 l S 1 0 0 1 130 100 cm -1 0 0 -1 0 0 cm 1 0 0 1 15 0 cm q [] 0 d 0.5 w q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l 0 0 0 0 k h f Q q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l s Q Q}
-\axo@setObject{384}%
-{AxoLine 70 100 130 40 0 0 0.5 0 0 0.2 0.8 1.25 0.25 1 0 0.5;}%
-{ 0.5 w 70 100 m 130 40 l S 1 0 0 1 70 100 cm 0.707 -0.707 0.707 0.707 0 0 cm 1 0 0 1 21.213 0 cm q [] 0 d 0.5 w q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l 0 0 0 0 k h f Q q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l s Q Q}
-\axo@setObject{385}%
-{AxoLine 100 40 70 40 0 0 0.5 0 0 0.2 0.8 1.25 0.5 1 0 0.5;}%
-{ 0.5 w 100 40 m 70 40 l S 1 0 0 1 100 40 cm -1 0 0 -1 0 0 cm 1 0 0 1 15 0 cm q [] 0 d 0.5 w q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l 0 0 0 0 k h f Q q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l s Q Q}
-\axo@setObject{386}%
-{AxoLine 130 40 100 40 0 0 0.5 0 0 0.2 0.8 1.25 0.5 1 0 0.5;}%
-{ 0.5 w 130 40 m 100 40 l S 1 0 0 1 130 40 cm -1 0 0 -1 0 0 cm 1 0 0 1 15 0 cm q [] 0 d 0.5 w q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l 0 0 0 0 k h f Q q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l s Q Q}
-\axo@setObject{387}%
-{AxoLine 70 40 130 100 0 0 0.5 0 0 0.2 0.8 1.25 0.75 1 0 0.5;}%
-{ 0.5 w 70 40 m 130 100 l S 1 0 0 1 70 40 cm 0.707 0.707 -0.707 0.707 0 0 cm 1 0 0 1 63.64 0 cm q [] 0 d 0.5 w q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l 0 0 0 0 k h f Q q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l s Q Q}
-\axo@setObject{388}%
-{AxoGluonArc 130 70 30 270 450 3 10 0 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 130 70 cm 0 -1 1 0 0 0 cm 25.906 7.607 m 25.22 9.945 31.179 12.295 32.343 6.553 c 33.19 2.374 31.497 0.45 30 0 c S 25.906 7.607 m 26.593 5.269 33.268 6.592 30.018 13.709 c 26.768 20.826 21.397 16.647 22.714 14.597 c 24.031 12.548 30.064 15.697 24.94 21.61 c 19.816 27.524 15.84 22.001 17.681 20.405 c 19.523 18.81 24.423 23.531 17.841 27.761 c 11.259 31.991 9 25.572 11.216 24.56 c 13.433 23.548 16.804 29.459 9.297 31.663 c 1.79 33.868 1.431 27.072 3.843 26.725 c 6.254 26.378 7.824 33 0 33 c -7.824 33 -6.254 26.378 -3.843 26.725 c -1.431 27.072 -1.79 33.868 -9.297 31.663 c -16.804 29.459 -13.433 23.548 -11.216 24.56 c -9 25.572 -11.259 31.991 -17.841 27.761 c -24.423 23.531 -19.523 18.81 -17.681 20.405 c -15.84 22.001 -19.816 27.524 -24.94 21.61 c -30.064 15.697 -24.031 12.548 -22.714 14.597 c -21.397 16.647 -26.768 20.826 -30.018 13.709 c -33.268 6.592 -26.593 5.269 -25.906 7.607 c -25.22 9.945 -31.179 12.295 -32.343 6.553 c -33.19 2.374 -31.497 0.45 -30 0 c S}
-\axo@setObject{389}%
-{AxoPhoton 163 70 193 70 4 3 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 163 70 cm 0 0 m 2.122 5.333 2.878 5.333 5 0 c 7.122 -5.333 7.878 -5.333 10 0 c 12.122 5.333 12.878 5.333 15 0 c 17.122 -5.333 17.878 -5.333 20 0 c 22.122 5.333 22.878 5.333 25 0 c 27.122 -5.333 27.878 -5.333 30 0 c S}
-\axo@setObject{390}%
-{AxoPhoton 163 70 193 70 -4 3 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 163 70 cm 0 0 m 2.122 -5.333 2.878 -5.333 5 0 c 7.122 5.333 7.878 5.333 10 0 c 12.122 -5.333 12.878 -5.333 15 0 c 17.122 5.333 17.878 5.333 20 0 c 22.122 -5.333 22.878 -5.333 25 0 c 27.122 5.333 27.878 5.333 30 0 c S}
-\axo@setObject{391}%
-{AxoGluon 100 100 100 130 3 4 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 100 100 cm 0 1 -1 0 0 0 cm 6 -3 m 8.7 -3 8.7 3 4.2 3 c 1.5 3 0.3 1.5 0 0 c S 6 -3 m 3.3 -3 3.3 3 9 3 c 14.7 3 14.7 -3 12 -3 c 9.3 -3 9.3 3 15 3 c 20.7 3 20.7 -3 18 -3 c 15.3 -3 15.3 3 21 3 c 26.7 3 26.7 -3 24 -3 c 21.3 -3 21.3 3 25.8 3 c 28.5 3 29.7 1.5 30 0 c S}
-\axo@setObject{392}%
-{AxoGluon 100 40 100 10 3 4 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 100 40 cm 0 -1 1 0 0 0 cm 6 -3 m 8.7 -3 8.7 3 4.2 3 c 1.5 3 0.3 1.5 0 0 c S 6 -3 m 3.3 -3 3.3 3 9 3 c 14.7 3 14.7 -3 12 -3 c 9.3 -3 9.3 3 15 3 c 20.7 3 20.7 -3 18 -3 c 15.3 -3 15.3 3 21 3 c 26.7 3 26.7 -3 24 -3 c 21.3 -3 21.3 3 25.8 3 c 28.5 3 29.7 1.5 30 0 c S}
-\axo@setObject{393}%
-{Vertex 37 70 2 0.5;}%
-{ 0.5 w 1 0 0 1 37 70 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f}
-\axo@setObject{394}%
-{Vertex 163 70 2 0.5;}%
-{ 0.5 w 1 0 0 1 163 70 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f}
-\axo@setObject{395}%
-{Vertex 70 100 2 0.5;}%
-{ 0.5 w 1 0 0 1 70 100 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f}
-\axo@setObject{396}%
-{Vertex 70 40 2 0.5;}%
-{ 0.5 w 1 0 0 1 70 40 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f}
-\axo@setObject{397}%
-{Vertex 130 100 2 0.5;}%
-{ 0.5 w 1 0 0 1 130 100 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f}
-\axo@setObject{398}%
-{Vertex 130 40 2 0.5;}%
-{ 0.5 w 1 0 0 1 130 40 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f}
-\axo@setObject{399}%
-{Vertex 100 100 2 0.5;}%
-{ 0.5 w 1 0 0 1 100 100 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f}
-\axo@setObject{400}%
-{Vertex 100 40 2 0.5;}%
-{ 0.5 w 1 0 0 1 100 40 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f}
-\axo@setObject{401}%
-{AxoPhoton 7 70 40 70 4 3 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 7 70 cm 0 0 m 2.334 5.333 3.166 5.333 5.5 0 c 7.834 -5.333 8.666 -5.333 11 0 c 13.334 5.333 14.166 5.333 16.5 0 c 18.834 -5.333 19.666 -5.333 22 0 c 24.334 5.333 25.166 5.333 27.5 0 c 29.834 -5.333 30.666 -5.333 33 0 c S}
-\axo@setObject{402}%
-{AxoPhoton 7 70 40 70 -4 3 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 7 70 cm 0 0 m 2.334 -5.333 3.166 -5.333 5.5 0 c 7.834 5.333 8.666 5.333 11 0 c 13.334 -5.333 14.166 -5.333 16.5 0 c 18.834 5.333 19.666 5.333 22 0 c 24.334 -5.333 25.166 -5.333 27.5 0 c 29.834 5.333 30.666 5.333 33 0 c S}
-\axo@setObject{403}%
-{AxoGluonArc 70 70 30 180 270 3 5 0 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 70 70 cm -1 0 0 -1 0 0 cm 26.08 6.988 m 25.449 9.342 31.424 11.535 32.447 6.014 c 33.159 2.173 31.497 0.412 30 0 c S 26.08 6.988 m 26.711 4.635 33.324 5.782 30.488 12.629 c 27.652 19.475 22.164 15.61 23.383 13.5 c 24.601 11.39 30.692 14.21 26.181 20.089 c 21.669 25.968 17.369 20.815 19.092 19.092 c 20.815 17.369 25.968 21.669 20.089 26.181 c 14.21 30.692 11.39 24.601 13.5 23.383 c 15.61 22.164 19.475 27.652 12.629 30.488 c 5.782 33.324 4.635 26.711 6.988 26.08 c 9.342 25.449 11.535 31.424 6.014 32.447 c 2.173 33.159 0.412 31.497 0 30 c S}
-\axo@setObject{404}%
-{AxoBezier 100 100 55 100 40 95 40 70 0 0 0.5 0 0 0.2 0.8 1.25 0.5 1 0 0.5;}%
-{ 0.5 w 100 100 m 55 100 40 95 40 70 c S 1 0 0 1 61.639 97.193 cm -0.974 -0.225 0.225 -0.974 0 0 cm q [] 0 d 0.5 w q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l 0 0 0 0 k h f Q q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l s Q Q}
-\axo@setObject{405}%
-{AxoLine 130 100 100 100 0 0 0.5 0 0 0.2 0.8 1.25 0.5 1 0 0.5;}%
-{ 0.5 w 130 100 m 100 100 l S 1 0 0 1 130 100 cm -1 0 0 -1 0 0 cm 1 0 0 1 15 0 cm q [] 0 d 0.5 w q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l 0 0 0 0 k h f Q q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l s Q Q}
-\axo@setObject{406}%
-{AxoBezier 40 70 110 70 130 70 130 40 0 0 0.5 0 0 0.2 0.8 1.25 0.37 1 0 0.5;}%
-{ 0.5 w 40 70 m 110 70 130 70 130 40 c S 1 0 0 1 79.601 69.67 cm 1 -0.03 0.03 1 0 0 cm q [] 0 d 0.5 w q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l 0 0 0 0 k h f Q q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l s Q Q}
-\axo@setObject{407}%
-{AxoLine 100 40 70 40 0 0 0.5 0 0 0.2 0.8 1.25 0.5 1 0 0.5;}%
-{ 0.5 w 100 40 m 70 40 l S 1 0 0 1 100 40 cm -1 0 0 -1 0 0 cm 1 0 0 1 15 0 cm q [] 0 d 0.5 w q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l 0 0 0 0 k h f Q q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l s Q Q}
-\axo@setObject{408}%
-{AxoLine 130 40 100 40 0 0 0.5 0 0 0.2 0.8 1.25 0.5 1 0 0.5;}%
-{ 0.5 w 130 40 m 100 40 l S 1 0 0 1 130 40 cm -1 0 0 -1 0 0 cm 1 0 0 1 15 0 cm q [] 0 d 0.5 w q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l 0 0 0 0 k h f Q q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l s Q Q}
-\axo@setObject{409}%
-{AxoLine 70 40 130 100 0 0 0.5 0 0 0.2 0.8 1.25 0.75 1 0 0.5;}%
-{ 0.5 w 70 40 m 130 100 l S 1 0 0 1 70 40 cm 0.707 0.707 -0.707 0.707 0 0 cm 1 0 0 1 63.64 0 cm q [] 0 d 0.5 w q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l 0 0 0 0 k h f Q q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l s Q Q}
-\axo@setObject{410}%
-{AxoGluonArc 130 70 30 270 450 3 10 0 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 130 70 cm 0 -1 1 0 0 0 cm 25.906 7.607 m 25.22 9.945 31.179 12.295 32.343 6.553 c 33.19 2.374 31.497 0.45 30 0 c S 25.906 7.607 m 26.593 5.269 33.268 6.592 30.018 13.709 c 26.768 20.826 21.397 16.647 22.714 14.597 c 24.031 12.548 30.064 15.697 24.94 21.61 c 19.816 27.524 15.84 22.001 17.681 20.405 c 19.523 18.81 24.423 23.531 17.841 27.761 c 11.259 31.991 9 25.572 11.216 24.56 c 13.433 23.548 16.804 29.459 9.297 31.663 c 1.79 33.868 1.431 27.072 3.843 26.725 c 6.254 26.378 7.824 33 0 33 c -7.824 33 -6.254 26.378 -3.843 26.725 c -1.431 27.072 -1.79 33.868 -9.297 31.663 c -16.804 29.459 -13.433 23.548 -11.216 24.56 c -9 25.572 -11.259 31.991 -17.841 27.761 c -24.423 23.531 -19.523 18.81 -17.681 20.405 c -15.84 22.001 -19.816 27.524 -24.94 21.61 c -30.064 15.697 -24.031 12.548 -22.714 14.597 c -21.397 16.647 -26.768 20.826 -30.018 13.709 c -33.268 6.592 -26.593 5.269 -25.906 7.607 c -25.22 9.945 -31.179 12.295 -32.343 6.553 c -33.19 2.374 -31.497 0.45 -30 0 c S}
-\axo@setObject{411}%
-{AxoPhoton 163 70 193 70 4 3 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 163 70 cm 0 0 m 2.122 5.333 2.878 5.333 5 0 c 7.122 -5.333 7.878 -5.333 10 0 c 12.122 5.333 12.878 5.333 15 0 c 17.122 -5.333 17.878 -5.333 20 0 c 22.122 5.333 22.878 5.333 25 0 c 27.122 -5.333 27.878 -5.333 30 0 c S}
-\axo@setObject{412}%
-{AxoPhoton 163 70 193 70 -4 3 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 163 70 cm 0 0 m 2.122 -5.333 2.878 -5.333 5 0 c 7.122 5.333 7.878 5.333 10 0 c 12.122 -5.333 12.878 -5.333 15 0 c 17.122 5.333 17.878 5.333 20 0 c 22.122 -5.333 22.878 -5.333 25 0 c 27.122 5.333 27.878 5.333 30 0 c S}
-\axo@setObject{413}%
-{AxoGluon 100 100 100 130 3 4 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 100 100 cm 0 1 -1 0 0 0 cm 6 -3 m 8.7 -3 8.7 3 4.2 3 c 1.5 3 0.3 1.5 0 0 c S 6 -3 m 3.3 -3 3.3 3 9 3 c 14.7 3 14.7 -3 12 -3 c 9.3 -3 9.3 3 15 3 c 20.7 3 20.7 -3 18 -3 c 15.3 -3 15.3 3 21 3 c 26.7 3 26.7 -3 24 -3 c 21.3 -3 21.3 3 25.8 3 c 28.5 3 29.7 1.5 30 0 c S}
-\axo@setObject{414}%
-{AxoGluon 100 40 100 10 3 4 0 0 0.5;}%
-{ 0.5 w 0.5 w 1 0 0 1 100 40 cm 0 -1 1 0 0 0 cm 6 -3 m 8.7 -3 8.7 3 4.2 3 c 1.5 3 0.3 1.5 0 0 c S 6 -3 m 3.3 -3 3.3 3 9 3 c 14.7 3 14.7 -3 12 -3 c 9.3 -3 9.3 3 15 3 c 20.7 3 20.7 -3 18 -3 c 15.3 -3 15.3 3 21 3 c 26.7 3 26.7 -3 24 -3 c 21.3 -3 21.3 3 25.8 3 c 28.5 3 29.7 1.5 30 0 c S}
-\axo@setObject{415}%
-{Vertex 40 70 2 0.5;}%
-{ 0.5 w 1 0 0 1 40 70 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f}
-\axo@setObject{416}%
-{Vertex 163 70 2 0.5;}%
-{ 0.5 w 1 0 0 1 163 70 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f}
-\axo@setObject{417}%
-{Vertex 70 40 2 0.5;}%
-{ 0.5 w 1 0 0 1 70 40 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f}
-\axo@setObject{418}%
-{Vertex 130 100 2 0.5;}%
-{ 0.5 w 1 0 0 1 130 100 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f}
-\axo@setObject{419}%
-{Vertex 130 40 2 0.5;}%
-{ 0.5 w 1 0 0 1 130 40 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f}
-\axo@setObject{420}%
-{Vertex 100 100 2 0.5;}%
-{ 0.5 w 1 0 0 1 100 100 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f}
-\axo@setObject{421}%
-{Vertex 100 40 2 0.5;}%
-{ 0.5 w 1 0 0 1 100 40 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f}
-\axo@setObject{422}%
-{AxoArc 40 35 25 90 270 0 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 40 35 cm 0 25 m -13.807 25 -25 13.807 -25 0 c -25 -13.807 -13.807 -25 0 -25 c S}
-\axo@setObject{423}%
-{AxoArc 60 35 25 270 90 0 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 60 35 cm 0 -25 m 13.807 -25 25 -13.807 25 0 c 25 13.807 13.807 25 0 25 c S}
-\axo@setObject{424}%
-{AxoLine 40 60 60 60 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 40 60 m 60 60 l S}
-\axo@setObject{425}%
-{AxoLine 40 10 60 10 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 40 10 m 60 10 l S}
-\axo@setObject{426}%
-{AxoLine 50 10 50 60 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 50 10 m 50 60 l S}
-\axo@setObject{427}%
-{AxoLine 0 35 15 35 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 0 35 m 15 35 l S}
-\axo@setObject{428}%
-{AxoLine 85 35 100 35 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 85 35 m 100 35 l S}
-\axo@setObject{429}%
-{AxoLine 50 35 50 60 0 0 0 0 0 0 0 0 0 0 0 3;}%
-{ 3 w 50 35 m 50 60 l S}
-\axo@setObject{430}%
-{AxoLine 40 60 50 60 0 0 0 0 0 0 0 0 0 0 0 3;}%
-{ 3 w 40 60 m 50 60 l S}
-\axo@setObject{431}%
-{AxoArc 40 35 25 90 180 0 0 0 0 0 0 0 0 0 0 0 0 3;}%
-{ 3 w 1 0 0 1 40 35 cm 0 25 m -13.807 25 -25 13.807 -25 0 c S}
-\axo@setObject{432}%
-{Vertex 50 60 1.3 3;}%
-{ 3 w 1 0 0 1 50 60 cm -1.3 0 m -1.3 0.718 -0.718 1.3 0 1.3 c 0.718 1.3 1.3 0.718 1.3 0 c 1.3 -0.718 0.718 -1.3 0 -1.3 c -0.718 -1.3 -1.3 -0.718 -1.3 0 c f}
-\axo@setObject{433}%
-{AxoArc 40 35 25 90 270 0 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 40 35 cm 0 25 m -13.807 25 -25 13.807 -25 0 c -25 -13.807 -13.807 -25 0 -25 c S}
-\axo@setObject{434}%
-{AxoArc 60 35 25 270 90 0 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 60 35 cm 0 -25 m 13.807 -25 25 -13.807 25 0 c 25 13.807 13.807 25 0 25 c S}
-\axo@setObject{435}%
-{AxoLine 40 60 60 60 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 40 60 m 60 60 l S}
-\axo@setObject{436}%
-{AxoLine 40 10 60 10 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 40 10 m 60 10 l S}
-\axo@setObject{437}%
-{AxoLine 50 10 50 60 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 50 10 m 50 60 l S}
-\axo@setObject{438}%
-{AxoLine 0 35 15 35 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 0 35 m 15 35 l S}
-\axo@setObject{439}%
-{AxoLine 85 35 100 35 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 85 35 m 100 35 l S}
-\axo@setObject{440}%
-{AxoLine 50 35 50 60 0 0 0 0 0 0 0 0 0 0 0 3;}%
-{ 3 w 50 35 m 50 60 l S}
-\axo@setObject{441}%
-{AxoLine 40 60 50 60 0 0 0 0 0 0 0 0 0 0 0 3;}%
-{ 3 w 40 60 m 50 60 l S}
-\axo@setObject{442}%
-{AxoArc 40 35 25 90 180 0 0 0 0 0 0 0 0 0 0 0 0 3;}%
-{ 3 w 1 0 0 1 40 35 cm 0 25 m -13.807 25 -25 13.807 -25 0 c S}
-\axo@setObject{443}%
-{Vertex 50 60 1.3 3;}%
-{ 3 w 1 0 0 1 50 60 cm -1.3 0 m -1.3 0.718 -0.718 1.3 0 1.3 c 0.718 1.3 1.3 0.718 1.3 0 c 1.3 -0.718 0.718 -1.3 0 -1.3 c -0.718 -1.3 -1.3 -0.718 -1.3 0 c f}
-\axo@setObject{444}%
-{AxoArc 40 35 25 90 270 0 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 40 35 cm 0 25 m -13.807 25 -25 13.807 -25 0 c -25 -13.807 -13.807 -25 0 -25 c S}
-\axo@setObject{445}%
-{AxoArc 60 35 25 270 90 0 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 60 35 cm 0 -25 m 13.807 -25 25 -13.807 25 0 c 25 13.807 13.807 25 0 25 c S}
-\axo@setObject{446}%
-{AxoLine 40 60 60 60 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 40 60 m 60 60 l S}
-\axo@setObject{447}%
-{AxoLine 40 10 60 10 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 40 10 m 60 10 l S}
-\axo@setObject{448}%
-{AxoLine 50 10 50 60 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 50 10 m 50 60 l S}
-\axo@setObject{449}%
-{AxoLine 0 35 15 35 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 0 35 m 15 35 l S}
-\axo@setObject{450}%
-{AxoLine 85 35 100 35 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 85 35 m 100 35 l S}
-\axo@setObject{451}%
-{AxoLine 40 60 50 60 0 0 0 0 0 0 0 0 0 0 0 3;}%
-{ 3 w 40 60 m 50 60 l S}
-\axo@setObject{452}%
-{AxoArc 40 35 25 90 180 0 0 0 0 0 0 0 0 0 0 0 0 3;}%
-{ 3 w 1 0 0 1 40 35 cm 0 25 m -13.807 25 -25 13.807 -25 0 c S}
-\axo@setObject{453}%
-{AxoArc 40 35 25 90 270 0 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 40 35 cm 0 25 m -13.807 25 -25 13.807 -25 0 c -25 -13.807 -13.807 -25 0 -25 c S}
-\axo@setObject{454}%
-{AxoArc 60 35 25 270 90 0 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 60 35 cm 0 -25 m 13.807 -25 25 -13.807 25 0 c 25 13.807 13.807 25 0 25 c S}
-\axo@setObject{455}%
-{AxoLine 40 60 60 60 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 40 60 m 60 60 l S}
-\axo@setObject{456}%
-{AxoLine 40 10 60 10 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 40 10 m 60 10 l S}
-\axo@setObject{457}%
-{AxoLine 50 10 50 60 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 50 10 m 50 60 l S}
-\axo@setObject{458}%
-{AxoLine 0 35 15 35 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 0 35 m 15 35 l S}
-\axo@setObject{459}%
-{AxoLine 85 35 100 35 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 85 35 m 100 35 l S}
-\axo@setObject{460}%
-{AxoLine 50 35 50 60 0 0 0 0 0 0 0 0 0 0 0 3;}%
-{ 3 w 50 35 m 50 60 l S}
-\axo@setObject{461}%
-{AxoLine 40 60 50 60 0 0 0 0 0 0 0 0 0 0 0 3;}%
-{ 3 w 40 60 m 50 60 l S}
-\axo@setObject{462}%
-{AxoArc 40 35 25 90 180 0 0 0 0 0 0 0 0 0 0 0 0 3;}%
-{ 3 w 1 0 0 1 40 35 cm 0 25 m -13.807 25 -25 13.807 -25 0 c S}
-\axo@setObject{463}%
-{Vertex 50 60 1.3 3;}%
-{ 3 w 1 0 0 1 50 60 cm -1.3 0 m -1.3 0.718 -0.718 1.3 0 1.3 c 0.718 1.3 1.3 0.718 1.3 0 c 1.3 -0.718 0.718 -1.3 0 -1.3 c -0.718 -1.3 -1.3 -0.718 -1.3 0 c f}
-\axo@setObject{464}%
-{AxoArc 40 35 25 90 270 0 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 40 35 cm 0 25 m -13.807 25 -25 13.807 -25 0 c -25 -13.807 -13.807 -25 0 -25 c S}
-\axo@setObject{465}%
-{AxoArc 60 35 25 270 90 0 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 60 35 cm 0 -25 m 13.807 -25 25 -13.807 25 0 c 25 13.807 13.807 25 0 25 c S}
-\axo@setObject{466}%
-{AxoLine 40 60 60 60 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 40 60 m 60 60 l S}
-\axo@setObject{467}%
-{AxoLine 40 10 60 10 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 40 10 m 60 10 l S}
-\axo@setObject{468}%
-{AxoLine 50 10 50 60 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 50 10 m 50 60 l S}
-\axo@setObject{469}%
-{AxoLine 0 35 15 35 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 0 35 m 15 35 l S}
-\axo@setObject{470}%
-{AxoLine 85 35 100 35 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 85 35 m 100 35 l S}
-\axo@setObject{471}%
-{AxoLine 50 10 50 60 0 0 0 0 0 0 0 0 0 0 0 3;}%
-{ 3 w 50 10 m 50 60 l S}
-\axo@setObject{472}%
-{Vertex 50 60 1.3 3;}%
-{ 3 w 1 0 0 1 50 60 cm -1.3 0 m -1.3 0.718 -0.718 1.3 0 1.3 c 0.718 1.3 1.3 0.718 1.3 0 c 1.3 -0.718 0.718 -1.3 0 -1.3 c -0.718 -1.3 -1.3 -0.718 -1.3 0 c f}
-\axo@setObject{473}%
-{AxoLine 40 60 50 60 0 0 0 0 0 0 0 0 0 0 0 3;}%
-{ 3 w 40 60 m 50 60 l S}
-\axo@setObject{474}%
-{AxoArc 40 35 25 90 180 0 0 0 0 0 0 0 0 0 0 0 0 3;}%
-{ 3 w 1 0 0 1 40 35 cm 0 25 m -13.807 25 -25 13.807 -25 0 c S}
-\axo@setObject{475}%
-{AxoArc 40 35 25 90 270 0 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 40 35 cm 0 25 m -13.807 25 -25 13.807 -25 0 c -25 -13.807 -13.807 -25 0 -25 c S}
-\axo@setObject{476}%
-{AxoArc 60 35 25 270 90 0 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 60 35 cm 0 -25 m 13.807 -25 25 -13.807 25 0 c 25 13.807 13.807 25 0 25 c S}
-\axo@setObject{477}%
-{AxoLine 40 60 60 60 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 40 60 m 60 60 l S}
-\axo@setObject{478}%
-{AxoLine 40 10 60 10 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 40 10 m 60 10 l S}
-\axo@setObject{479}%
-{AxoLine 50 10 50 60 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 50 10 m 50 60 l S}
-\axo@setObject{480}%
-{AxoLine 0 35 15 35 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 0 35 m 15 35 l S}
-\axo@setObject{481}%
-{AxoLine 85 35 100 35 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 85 35 m 100 35 l S}
-\axo@setObject{482}%
-{AxoLine 40 60 50 60 0 0 0 0 0 0 0 0 0 0 0 3;}%
-{ 3 w 40 60 m 50 60 l S}
-\axo@setObject{483}%
-{AxoArc 40 35 25 90 180 0 0 0 0 0 0 0 0 0 0 0 0 3;}%
-{ 3 w 1 0 0 1 40 35 cm 0 25 m -13.807 25 -25 13.807 -25 0 c S}
-\axo@setObject{484}%
-{AxoArc 40 35 25 90 270 0 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 40 35 cm 0 25 m -13.807 25 -25 13.807 -25 0 c -25 -13.807 -13.807 -25 0 -25 c S}
-\axo@setObject{485}%
-{AxoArc 60 35 25 270 90 0 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 1 0 0 1 60 35 cm 0 -25 m 13.807 -25 25 -13.807 25 0 c 25 13.807 13.807 25 0 25 c S}
-\axo@setObject{486}%
-{AxoLine 40 60 60 60 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 40 60 m 60 60 l S}
-\axo@setObject{487}%
-{AxoLine 40 10 60 10 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 40 10 m 60 10 l S}
-\axo@setObject{488}%
-{AxoLine 50 10 50 60 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 50 10 m 50 60 l S}
-\axo@setObject{489}%
-{AxoLine 0 35 15 35 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 0 35 m 15 35 l S}
-\axo@setObject{490}%
-{AxoLine 85 35 100 35 0 0 0 0 0 0 0 0 0 0 0 0.5;}%
-{ 0.5 w 85 35 m 100 35 l S}
-\axo@setObject{491}%
-{AxoLine 50 10 50 60 0 0 0 0 0 0 0 0 0 0 0 3;}%
-{ 3 w 50 10 m 50 60 l S}
-\axo@setObject{492}%
-{Vertex 50 60 1.3 3;}%
-{ 3 w 1 0 0 1 50 60 cm -1.3 0 m -1.3 0.718 -0.718 1.3 0 1.3 c 0.718 1.3 1.3 0.718 1.3 0 c 1.3 -0.718 0.718 -1.3 0 -1.3 c -0.718 -1.3 -1.3 -0.718 -1.3 0 c f}
-\axo@setObject{493}%
-{AxoLine 40 60 50 60 0 0 0 0 0 0 0 0 0 0 0 3;}%
-{ 3 w 40 60 m 50 60 l S}
-\axo@setObject{494}%
-{AxoArc 40 35 25 90 180 0 0 0 0 0 0 0 0 0 0 0 0 3;}%
-{ 3 w 1 0 0 1 40 35 cm 0 25 m -13.807 25 -25 13.807 -25 0 c S}
diff --git a/Build/source/utils/axodraw2/axodraw2-src/test.ax1 b/Build/source/utils/axodraw2/axodraw2-src/test.ax1
deleted file mode 100644
index 0c6053dc07f..00000000000
--- a/Build/source/utils/axodraw2/axodraw2-src/test.ax1
+++ /dev/null
@@ -1 +0,0 @@
-[1] AxoLine 0 3 100 3 0 0 0 0 0 0 0 0 0 0 0 1;
diff --git a/Build/source/utils/axodraw2/axodraw2-src/test.ax2-std b/Build/source/utils/axodraw2/axodraw2-src/test.ax2-std
deleted file mode 100644
index 58614456267..00000000000
--- a/Build/source/utils/axodraw2/axodraw2-src/test.ax2-std
+++ /dev/null
@@ -1,3 +0,0 @@
-\axo@setObject{1}%
-{AxoLine 0 3 100 3 0 0 0 0 0 0 0 0 0 0 0 1;}%
-{ 1 w 0 3 m 100 3 l S}