diff options
Diffstat (limited to 'Build/source/utils/axodraw2/axodraw2-src')
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 Binary files differdeleted file mode 100644 index aacb77d69db..00000000000 --- a/Build/source/utils/axodraw2/axodraw2-src/axodraw2-man.pdf +++ /dev/null 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} |