#! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh 'README' <<'END_OF_FILE' X-*- text -*- X XReport problems in this collection of GNU and LPF buttons and misc Xpostscript images to: X tower@prep.ai.mit.edu X Xthanx -len X XMember, League for Programming Freedom. Ask: lpf@uunet.uu.net X X END_OF_FILE if test 205 -ne `wc -c <'README'`; then echo shar: \"'README'\" unpacked with wrong size! fi # end of 'README' fi if test -f 'COPYING-1' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'COPYING-1'\" else echo shar: Extracting \"'COPYING-1'\" \(12488 characters\) sed "s/^X//" >'COPYING-1' <<'END_OF_FILE' X X GNU GENERAL PUBLIC LICENSE X Version 1, February 1989 X X Copyright (C) 1989 Free Software Foundation, Inc. X 675 Mass Ave, Cambridge, MA 02139, USA X Everyone is permitted to copy and distribute verbatim copies X of this license document, but changing it is not allowed. X X Preamble X X The license agreements of most software companies try to keep users Xat the mercy of those companies. By contrast, our General Public XLicense is intended to guarantee your freedom to share and change free Xsoftware--to make sure the software is free for all its users. The XGeneral Public License applies to the Free Software Foundation's Xsoftware and to any other program whose authors commit to using it. XYou can use it for your programs, too. X X When we speak of free software, we are referring to freedom, not Xprice. Specifically, the General Public License is designed to make Xsure that you have the freedom to give away or sell copies of free Xsoftware, that you receive source code or can get it if you want it, Xthat you can change the software or use pieces of it in new free Xprograms; and that you know you can do these things. X X To protect your rights, we need to make restrictions that forbid Xanyone to deny you these rights or to ask you to surrender the rights. XThese restrictions translate to certain responsibilities for you if you Xdistribute copies of the software, or if you modify it. X X For example, if you distribute copies of a such a program, whether Xgratis or for a fee, you must give the recipients all the rights that Xyou have. You must make sure that they, too, receive or can get the Xsource code. And you must tell them their rights. X X We protect your rights with two steps: (1) copyright the software, and X(2) offer you this license which gives you legal permission to copy, Xdistribute and/or modify the software. X X Also, for each author's protection and ours, we want to make certain Xthat everyone understands that there is no warranty for this free Xsoftware. If the software is modified by someone else and passed on, we Xwant its recipients to know that what they have is not the original, so Xthat any problems introduced by others will not reflect on the original Xauthors' reputations. X X The precise terms and conditions for copying, distribution and Xmodification follow. X X GNU GENERAL PUBLIC LICENSE X TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION X X 0. This License Agreement applies to any program or other work which Xcontains a notice placed by the copyright holder saying it may be Xdistributed under the terms of this General Public License. The X"Program", below, refers to any such program or work, and a "work based Xon the Program" means either the Program or any work containing the XProgram or a portion of it, either verbatim or with modifications. Each Xlicensee is addressed as "you". X X 1. You may copy and distribute verbatim copies of the Program's source Xcode as you receive it, in any medium, provided that you conspicuously and Xappropriately publish on each copy an appropriate copyright notice and Xdisclaimer of warranty; keep intact all the notices that refer to this XGeneral Public License and to the absence of any warranty; and give any Xother recipients of the Program a copy of this General Public License Xalong with the Program. You may charge a fee for the physical act of Xtransferring a copy. X X 2. You may modify your copy or copies of the Program or any portion of Xit, and copy and distribute such modifications under the terms of Paragraph X1 above, provided that you also do the following: X X a) cause the modified files to carry prominent notices stating that X you changed the files and the date of any change; and X X b) cause the whole of any work that you distribute or publish, that X in whole or in part contains the Program or any part thereof, either X with or without modifications, to be licensed at no charge to all X third parties under the terms of this General Public License (except X that you may choose to grant warranty protection to some or all X third parties, at your option). X X c) If the modified program normally reads commands interactively when X run, you must cause it, when started running for such interactive use X in the simplest and most usual way, to print or display an X announcement including an appropriate copyright notice and a notice X that there is no warranty (or else, saying that you provide a X warranty) and that users may redistribute the program under these X conditions, and telling the user how to view a copy of this General X Public License. X X d) You may charge a fee for the physical act of transferring a X copy, and you may at your option offer warranty protection in X exchange for a fee. X XMere aggregation of another independent work with the Program (or its Xderivative) on a volume of a storage or distribution medium does not bring Xthe other work under the scope of these terms. X X 3. You may copy and distribute the Program (or a portion or derivative of Xit, under Paragraph 2) in object code or executable form under the terms of XParagraphs 1 and 2 above provided that you also do one of the following: X X a) accompany it with the complete corresponding machine-readable X source code, which must be distributed under the terms of X Paragraphs 1 and 2 above; or, X X b) accompany it with a written offer, valid for at least three X years, to give any third party free (except for a nominal charge X for the cost of distribution) a complete machine-readable copy of the X corresponding source code, to be distributed under the terms of X Paragraphs 1 and 2 above; or, X X c) accompany it with the information you received as to where the X corresponding source code may be obtained. (This alternative is X allowed only for noncommercial distribution and only if you X received the program in object code or executable form alone.) X XSource code for a work means the preferred form of the work for making Xmodifications to it. For an executable file, complete source code means Xall the source code for all modules it contains; but, as a special Xexception, it need not include source code for modules which are standard Xlibraries that accompany the operating system on which the executable Xfile runs, or for standard header files or definitions files that Xaccompany that operating system. X X 4. You may not copy, modify, sublicense, distribute or transfer the XProgram except as expressly provided under this General Public License. XAny attempt otherwise to copy, modify, sublicense, distribute or transfer Xthe Program is void, and will automatically terminate your rights to use Xthe Program under this License. However, parties who have received Xcopies, or rights to use copies, from you under this General Public XLicense will not have their licenses terminated so long as such parties Xremain in full compliance. X X 5. By copying, distributing or modifying the Program (or any work based Xon the Program) you indicate your acceptance of this license to do so, Xand all its terms and conditions. X X 6. Each time you redistribute the Program (or any work based on the XProgram), the recipient automatically receives a license from the original Xlicensor to copy, distribute or modify the Program subject to these Xterms and conditions. You may not impose any further restrictions on the Xrecipients' exercise of the rights granted herein. X X 7. The Free Software Foundation may publish revised and/or new versions Xof the General Public License from time to time. Such new versions will Xbe similar in spirit to the present version, but may differ in detail to Xaddress new problems or concerns. X XEach version is given a distinguishing version number. If the Program Xspecifies a version number of the license which applies to it and "any Xlater version", you have the option of following the terms and conditions Xeither of that version or of any later version published by the Free XSoftware Foundation. If the Program does not specify a version number of Xthe license, you may choose any version ever published by the Free Software XFoundation. X X 8. If you wish to incorporate parts of the Program into other free Xprograms whose distribution conditions are different, write to the author Xto ask for permission. For software which is copyrighted by the Free XSoftware Foundation, write to the Free Software Foundation; we sometimes Xmake exceptions for this. Our decision will be guided by the two goals Xof preserving the free status of all derivatives of our free software and Xof promoting the sharing and reuse of software generally. X X NO WARRANTY X X 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY XFOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN XOTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES XPROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED XOR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF XMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS XTO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE XPROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, XREPAIR OR CORRECTION. X X 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING XWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR XREDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, XINCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING XOUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED XTO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY XYOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER XPROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE XPOSSIBILITY OF SUCH DAMAGES. X X END OF TERMS AND CONDITIONS X X Appendix: How to Apply These Terms to Your New Programs X X If you develop a new program, and you want it to be of the greatest Xpossible use to humanity, the best way to achieve this is to make it Xfree software which everyone can redistribute and change under these Xterms. X X To do so, attach the following notices to the program. It is safest to Xattach them to the start of each source file to most effectively convey Xthe exclusion of warranty; and each file should have at least the X"copyright" line and a pointer to where the full notice is found. X X X Copyright (C) 19yy X X This program is free software; you can redistribute it and/or modify X it under the terms of the GNU General Public License as published by X the Free Software Foundation; either version 1, or (at your option) X any later version. X X This program is distributed in the hope that it will be useful, X but WITHOUT ANY WARRANTY; without even the implied warranty of X MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the X GNU General Public License for more details. X X You should have received a copy of the GNU General Public License X along with this program; if not, write to the Free Software X Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. X XAlso add information on how to contact you by electronic and paper mail. X XIf the program is interactive, make it output a short notice like this Xwhen it starts in an interactive mode: X X Gnomovision version 69, Copyright (C) 19xx name of author X Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. X This is free software, and you are welcome to redistribute it X under certain conditions; type `show c' for details. X XThe hypothetical commands `show w' and `show c' should show the Xappropriate parts of the General Public License. Of course, the Xcommands you use may be called something other than `show w' and `show Xc'; they could even be mouse-clicks or menu items--whatever suits your Xprogram. X XYou should also get your employer (if you work as a programmer) or your Xschool, if any, to sign a "copyright disclaimer" for the program, if Xnecessary. Here a sample; alter the names: X X Yoyodyne, Inc., hereby disclaims all copyright interest in the X program `Gnomovision' (a program to direct compilers to make passes X at assemblers) written by James Hacker. X X , 1 April 1989 X Ty Coon, President of Vice X XThat's all there is to it! END_OF_FILE if test 12488 -ne `wc -c <'COPYING-1'`; then echo shar: \"'COPYING-1'\" unpacked with wrong size! fi # end of 'COPYING-1' fi if test -f 'COPYING' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'COPYING'\" else echo shar: Extracting \"'COPYING'\" \(17976 characters\) sed "s/^X//" >'COPYING' <<'END_OF_FILE' X GNU GENERAL PUBLIC LICENSE X Version 2, June 1991 X X Copyright (C) 1989, 1991 Free Software Foundation, Inc. X 675 Mass Ave, Cambridge, MA 02139, USA X Everyone is permitted to copy and distribute verbatim copies X of this license document, but changing it is not allowed. X X Preamble X X The licenses for most software are designed to take away your Xfreedom to share and change it. By contrast, the GNU General Public XLicense is intended to guarantee your freedom to share and change free Xsoftware--to make sure the software is free for all its users. This XGeneral Public License applies to most of the Free Software XFoundation's software and to any other program whose authors commit to Xusing it. (Some other Free Software Foundation software is covered by Xthe GNU Library General Public License instead.) You can apply it to Xyour programs, too. X X When we speak of free software, we are referring to freedom, not Xprice. Our General Public Licenses are designed to make sure that you Xhave the freedom to distribute copies of free software (and charge for Xthis service if you wish), that you receive source code or can get it Xif you want it, that you can change the software or use pieces of it Xin new free programs; and that you know you can do these things. X X To protect your rights, we need to make restrictions that forbid Xanyone to deny you these rights or to ask you to surrender the rights. XThese restrictions translate to certain responsibilities for you if you Xdistribute copies of the software, or if you modify it. X X For example, if you distribute copies of such a program, whether Xgratis or for a fee, you must give the recipients all the rights that Xyou have. You must make sure that they, too, receive or can get the Xsource code. And you must show them these terms so they know their Xrights. X X We protect your rights with two steps: (1) copyright the software, and X(2) offer you this license which gives you legal permission to copy, Xdistribute and/or modify the software. X X Also, for each author's protection and ours, we want to make certain Xthat everyone understands that there is no warranty for this free Xsoftware. If the software is modified by someone else and passed on, we Xwant its recipients to know that what they have is not the original, so Xthat any problems introduced by others will not reflect on the original Xauthors' reputations. X X Finally, any free program is threatened constantly by software Xpatents. We wish to avoid the danger that redistributors of a free Xprogram will individually obtain patent licenses, in effect making the Xprogram proprietary. To prevent this, we have made it clear that any Xpatent must be licensed for everyone's free use or not licensed at all. X X The precise terms and conditions for copying, distribution and Xmodification follow. X X GNU GENERAL PUBLIC LICENSE X TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION X X 0. This License applies to any program or other work which contains Xa notice placed by the copyright holder saying it may be distributed Xunder the terms of this General Public License. The "Program", below, Xrefers to any such program or work, and a "work based on the Program" Xmeans either the Program or any derivative work under copyright law: Xthat is to say, a work containing the Program or a portion of it, Xeither verbatim or with modifications and/or translated into another Xlanguage. (Hereinafter, translation is included without limitation in Xthe term "modification".) Each licensee is addressed as "you". X XActivities other than copying, distribution and modification are not Xcovered by this License; they are outside its scope. The act of Xrunning the Program is not restricted, and the output from the Program Xis covered only if its contents constitute a work based on the XProgram (independent of having been made by running the Program). XWhether that is true depends on what the Program does. X X 1. You may copy and distribute verbatim copies of the Program's Xsource code as you receive it, in any medium, provided that you Xconspicuously and appropriately publish on each copy an appropriate Xcopyright notice and disclaimer of warranty; keep intact all the Xnotices that refer to this License and to the absence of any warranty; Xand give any other recipients of the Program a copy of this License Xalong with the Program. X XYou may charge a fee for the physical act of transferring a copy, and Xyou may at your option offer warranty protection in exchange for a fee. X X 2. You may modify your copy or copies of the Program or any portion Xof it, thus forming a work based on the Program, and copy and Xdistribute such modifications or work under the terms of Section 1 Xabove, provided that you also meet all of these conditions: X X a) You must cause the modified files to carry prominent notices X stating that you changed the files and the date of any change. X X b) You must cause any work that you distribute or publish, that in X whole or in part contains or is derived from the Program or any X part thereof, to be licensed as a whole at no charge to all third X parties under the terms of this License. X X c) If the modified program normally reads commands interactively X when run, you must cause it, when started running for such X interactive use in the most ordinary way, to print or display an X announcement including an appropriate copyright notice and a X notice that there is no warranty (or else, saying that you provide X a warranty) and that users may redistribute the program under X these conditions, and telling the user how to view a copy of this X License. (Exception: if the Program itself is interactive but X does not normally print such an announcement, your work based on X the Program is not required to print an announcement.) X XThese requirements apply to the modified work as a whole. If Xidentifiable sections of that work are not derived from the Program, Xand can be reasonably considered independent and separate works in Xthemselves, then this License, and its terms, do not apply to those Xsections when you distribute them as separate works. But when you Xdistribute the same sections as part of a whole which is a work based Xon the Program, the distribution of the whole must be on the terms of Xthis License, whose permissions for other licensees extend to the Xentire whole, and thus to each and every part regardless of who wrote it. X XThus, it is not the intent of this section to claim rights or contest Xyour rights to work written entirely by you; rather, the intent is to Xexercise the right to control the distribution of derivative or Xcollective works based on the Program. X XIn addition, mere aggregation of another work not based on the Program Xwith the Program (or with a work based on the Program) on a volume of Xa storage or distribution medium does not bring the other work under Xthe scope of this License. X X 3. You may copy and distribute the Program (or a work based on it, Xunder Section 2) in object code or executable form under the terms of XSections 1 and 2 above provided that you also do one of the following: X X a) Accompany it with the complete corresponding machine-readable X source code, which must be distributed under the terms of Sections X 1 and 2 above on a medium customarily used for software interchange; or, X X b) Accompany it with a written offer, valid for at least three X years, to give any third party, for a charge no more than your X cost of physically performing source distribution, a complete X machine-readable copy of the corresponding source code, to be X distributed under the terms of Sections 1 and 2 above on a medium X customarily used for software interchange; or, X X c) Accompany it with the information you received as to the offer X to distribute corresponding source code. (This alternative is X allowed only for noncommercial distribution and only if you X received the program in object code or executable form with such X an offer, in accord with Subsection b above.) X XThe source code for a work means the preferred form of the work for Xmaking modifications to it. For an executable work, complete source Xcode means all the source code for all modules it contains, plus any Xassociated interface definition files, plus the scripts used to Xcontrol compilation and installation of the executable. However, as a Xspecial exception, the source code distributed need not include Xanything that is normally distributed (in either source or binary Xform) with the major components (compiler, kernel, and so on) of the Xoperating system on which the executable runs, unless that component Xitself accompanies the executable. X XIf distribution of executable or object code is made by offering Xaccess to copy from a designated place, then offering equivalent Xaccess to copy the source code from the same place counts as Xdistribution of the source code, even though third parties are not Xcompelled to copy the source along with the object code. X X 4. You may not copy, modify, sublicense, or distribute the Program Xexcept as expressly provided under this License. Any attempt Xotherwise to copy, modify, sublicense or distribute the Program is Xvoid, and will automatically terminate your rights under this License. XHowever, parties who have received copies, or rights, from you under Xthis License will not have their licenses terminated so long as such Xparties remain in full compliance. X X 5. You are not required to accept this License, since you have not Xsigned it. However, nothing else grants you permission to modify or Xdistribute the Program or its derivative works. These actions are Xprohibited by law if you do not accept this License. Therefore, by Xmodifying or distributing the Program (or any work based on the XProgram), you indicate your acceptance of this License to do so, and Xall its terms and conditions for copying, distributing or modifying Xthe Program or works based on it. X X 6. Each time you redistribute the Program (or any work based on the XProgram), the recipient automatically receives a license from the Xoriginal licensor to copy, distribute or modify the Program subject to Xthese terms and conditions. You may not impose any further Xrestrictions on the recipients' exercise of the rights granted herein. XYou are not responsible for enforcing compliance by third parties to Xthis License. X X 7. If, as a consequence of a court judgment or allegation of patent Xinfringement or for any other reason (not limited to patent issues), Xconditions are imposed on you (whether by court order, agreement or Xotherwise) that contradict the conditions of this License, they do not Xexcuse you from the conditions of this License. If you cannot Xdistribute so as to satisfy simultaneously your obligations under this XLicense and any other pertinent obligations, then as a consequence you Xmay not distribute the Program at all. For example, if a patent Xlicense would not permit royalty-free redistribution of the Program by Xall those who receive copies directly or indirectly through you, then Xthe only way you could satisfy both it and this License would be to Xrefrain entirely from distribution of the Program. X XIf any portion of this section is held invalid or unenforceable under Xany particular circumstance, the balance of the section is intended to Xapply and the section as a whole is intended to apply in other Xcircumstances. X XIt is not the purpose of this section to induce you to infringe any Xpatents or other property right claims or to contest validity of any Xsuch claims; this section has the sole purpose of protecting the Xintegrity of the free software distribution system, which is Ximplemented by public license practices. Many people have made Xgenerous contributions to the wide range of software distributed Xthrough that system in reliance on consistent application of that Xsystem; it is up to the author/donor to decide if he or she is willing Xto distribute software through any other system and a licensee cannot Ximpose that choice. X XThis section is intended to make thoroughly clear what is believed to Xbe a consequence of the rest of this License. X X 8. If the distribution and/or use of the Program is restricted in Xcertain countries either by patents or by copyrighted interfaces, the Xoriginal copyright holder who places the Program under this License Xmay add an explicit geographical distribution limitation excluding Xthose countries, so that distribution is permitted only in or among Xcountries not thus excluded. In such case, this License incorporates Xthe limitation as if written in the body of this License. X X 9. The Free Software Foundation may publish revised and/or new versions Xof the General Public License from time to time. Such new versions will Xbe similar in spirit to the present version, but may differ in detail to Xaddress new problems or concerns. X XEach version is given a distinguishing version number. If the Program Xspecifies a version number of this License which applies to it and "any Xlater version", you have the option of following the terms and conditions Xeither of that version or of any later version published by the Free XSoftware Foundation. If the Program does not specify a version number of Xthis License, you may choose any version ever published by the Free Software XFoundation. X X 10. If you wish to incorporate parts of the Program into other free Xprograms whose distribution conditions are different, write to the author Xto ask for permission. For software which is copyrighted by the Free XSoftware Foundation, write to the Free Software Foundation; we sometimes Xmake exceptions for this. Our decision will be guided by the two goals Xof preserving the free status of all derivatives of our free software and Xof promoting the sharing and reuse of software generally. X X NO WARRANTY X X 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY XFOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN XOTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES XPROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED XOR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF XMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS XTO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE XPROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, XREPAIR OR CORRECTION. X X 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING XWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR XREDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, XINCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING XOUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED XTO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY XYOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER XPROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE XPOSSIBILITY OF SUCH DAMAGES. X X END OF TERMS AND CONDITIONS X X How to Apply These Terms to Your New Programs X X If you develop a new program, and you want it to be of the greatest Xpossible use to the public, the best way to achieve this is to make it Xfree software which everyone can redistribute and change under these terms. X X To do so, attach the following notices to the program. It is safest Xto attach them to the start of each source file to most effectively Xconvey the exclusion of warranty; and each file should have at least Xthe "copyright" line and a pointer to where the full notice is found. X X X Copyright (C) 19yy X X This program is free software; you can redistribute it and/or modify X it under the terms of the GNU General Public License as published by X the Free Software Foundation; either version 2 of the License, or X (at your option) any later version. X X This program is distributed in the hope that it will be useful, X but WITHOUT ANY WARRANTY; without even the implied warranty of X MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the X GNU General Public License for more details. X X You should have received a copy of the GNU General Public License X along with this program; if not, write to the Free Software X Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. X XAlso add information on how to contact you by electronic and paper mail. X XIf the program is interactive, make it output a short notice like this Xwhen it starts in an interactive mode: X X Gnomovision version 69, Copyright (C) 19yy name of author X Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. X This is free software, and you are welcome to redistribute it X under certain conditions; type `show c' for details. X XThe hypothetical commands `show w' and `show c' should show the appropriate Xparts of the General Public License. Of course, the commands you use may Xbe called something other than `show w' and `show c'; they could even be Xmouse-clicks or menu items--whatever suits your program. X XYou should also get your employer (if you work as a programmer) or your Xschool, if any, to sign a "copyright disclaimer" for the program, if Xnecessary. Here is a sample; alter the names: X X Yoyodyne, Inc., hereby disclaims all copyright interest in the program X `Gnomovision' (which makes passes at compilers) written by James Hacker. X X , 1 April 1989 X Ty Coon, President of Vice X XThis General Public License does not permit incorporating your program into Xproprietary programs. If your program is a subroutine library, you may Xconsider it more useful to permit linking proprietary applications with the Xlibrary. If this is what you want to do, use the GNU Library General XPublic License instead of this License. END_OF_FILE if test 17976 -ne `wc -c <'COPYING'`; then echo shar: \"'COPYING'\" unpacked with wrong size! fi # end of 'COPYING' fi if test -f 'rps' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'rps'\" else echo shar: Extracting \"'rps'\" \(312 characters\) sed "s/^X//" >'rps' <<'END_OF_FILE' X: X: rps - render postscript files X: X: this program and the shar method of distribution of GNU postscript X: programs were created by Rich Morin - hoptoad.UUCP!cfcl!rdm@cgl.ucsf.edu X: Xfor i in $*; do X soelim $i | X awk ' X BEGIN { print "%!" } X { print } X ' | X lpr #print a postscript file Xdone END_OF_FILE if test 312 -ne `wc -c <'rps'`; then echo shar: \"'rps'\" unpacked with wrong size! fi chmod +x 'rps' # end of 'rps' fi if test -f 'ehandler.ps' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'ehandler.ps'\" else echo shar: Extracting \"'ehandler.ps'\" \(2761 characters\) sed "s/^X//" >'ehandler.ps' <<'END_OF_FILE' X%! X% lib/ehandler.ps -- Downloaded Error Break-page handler X% GOVERNMENT END USERS: See Notice file in TranScript library directory X% -- probably /usr/lib/ps/Notice X% RCSID: $Header: ehandler.ps,v 2.2 87/11/17 16:39:49 byron Rel $ X% assumes serverloop password is the default one X/$brkpage where X{pop(Error Handler in place - not loaded again\n)print flush stop} X{serverdict begin statusdict begin 0000 checkpassword X {(Error Handler downloaded.\n)print flush 0000 exitserver} X {(Bad Password on loading error handler!!!\n)print flush stop}ifelse X}ifelse X/$brkpage 64 dict def $brkpage begin X/prnt X {dup type/stringtype ne{=string cvs}if dup length 6 mul/tx exch def/ty 10 def X currentpoint/toy exch def/tox exch def 1 setgray newpath X tox toy 2 sub moveto 0 ty rlineto tx 0 rlineto 0 ty neg rlineto X closepath fill tox toy moveto 0 setgray show}bind def X/nl{currentpoint exch pop lmargin exch moveto 0 -10 rmoveto}def X/=={/cp 0 def typeprint nl}def X/typeprint{dup type exec}readonly def X/lmargin 72 def X/rmargin 72 def X/tprint X {dup length cp add rmargin gt{nl/cp 0 def}if X dup length cp add/cp exch def prnt}readonly def X/cvsprint{=string cvs tprint( )tprint}readonly def X/integertype{cvsprint}readonly def X/realtype{cvsprint}readonly def X/booleantype{cvsprint}readonly def X/operatortype{(--)tprint =string cvs tprint(-- )tprint}readonly def X/marktype{pop(-mark- )tprint}readonly def X/dicttype{pop(-dictionary- )tprint}readonly def X/nulltype{pop(-null- )tprint}readonly def X/filetype{pop(-filestream- )tprint}readonly def X/savetype{pop(-savelevel- )tprint}readonly def X/fonttype{pop(-fontid- )tprint}readonly def X/nametype{dup xcheck not{(/)tprint}if cvsprint}readonly def X/stringtype X {dup rcheck{(\()tprint tprint(\))tprint}{pop(-string- )tprint}ifelse X }readonly def X/arraytype X {dup rcheck{dup xcheck X {({)tprint{typeprint}forall(})tprint} X {([)tprint{typeprint}forall(])tprint}ifelse}{pop(-array- )tprint}ifelse X }readonly def X/packedarraytype X {dup rcheck{dup xcheck X {({)tprint{typeprint}forall(})tprint} X {([)tprint{typeprint}forall(])tprint}ifelse}{pop(-packedarray- )tprint}ifelse X }readonly def X/courier/Courier findfont 10 scalefont def Xend %$brkpage Xerrordict/handleerror X {systemdict begin $error begin $brkpage begin newerror X {/newerror false store X vmstatus pop pop 0 ne{grestoreall}if initgraphics courier setfont X lmargin 720 moveto(ERROR: )prnt errorname prnt X nl(OFFENDING COMMAND: )prnt/command load prnt X $error/ostack X known{nl nl(STACK:)prnt nl nl $error/ostack get aload length{==}repeat}if X systemdict/showpage get exec(%%[ Error: )print X errorname =print(; OffendingCommand: )print/command X load =print( ]%%)= flush}if end end end} Xdup 0 systemdict put dup 4 $brkpage put bind readonly put END_OF_FILE if test 2761 -ne `wc -c <'ehandler.ps'`; then echo shar: \"'ehandler.ps'\" unpacked with wrong size! fi # end of 'ehandler.ps' fi if test -f 'circtext.ps' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'circtext.ps'\" else echo shar: Extracting \"'circtext.ps'\" \(5828 characters\) sed "s/^X//" >'circtext.ps' <<'END_OF_FILE' X% X% circtext.ps - render text strings around arcs X% X% From Adobe Cookbook X% Program: Circular Text Number: 16 X%----------------------------------------------------------------------------- X% X/outsidecircletext % outsidecircletext places text X { $circtextdict begin % around a circular arc. The X /radius exch def % baseline of the text is placed X /centerangle exch def % on the outside of the X /ptsize exch def % circumference of the circle in a X /str exch def % clockwise fashion. X % outsidecircletext takes four X % arguments: the string to be X % printed, the point size of the X % font being used, the angle X % around which the text should be X % centered and the radius of the X % circular arc. It assumes that X % the center of the circle is at X % (0,0). X /xradius radius ptsize 4 div add % A radius that is slightly larger X def % than the one specified is used X % for computations but not for X % placement of characters. Using a X % slightly larger radius in the X % computations places the X % characters closer together, X % otherwise the interletter X % spacing is too loose. X gsave % Save the current graphics state. X centerangle str findhalfangle % Find out how much angle the X add rotate % string subtends and then rotate X % to the appropriate starting X % position for showing the string. X % (The positive x-axis now X % intersects the circle where the X % text should start.) X str X { /charcode exch def % For each character in the X ( ) dup 0 charcode put % string, determine its position X outsideshowcharandrotate % on the circular arc and show it. X } forall X grestore % Return to the former graphics X % state. X end X } def X X/insidecircletext % insidecircletext works very X { $circtextdict begin % similarly to outsidecircletext X /radius exch def % except that the baseline of the X /centerangle exch def % text is placed on the inside of X /ptsize exch def % the circumference of the circle X /str exch def % in a counter-clockwise fashion. X % insidecircletext takes the same X % four arguments as X % outsidecircletext. X X /xradius radius ptsize 3 div sub % Here we use a radius which is X def % slightly smaller than the X % desired radius for computations. X % This forces the characters to be X % placed farther apart to avoid X % overlapping. X gsave X centerangle str findhalfangle X sub rotate X str X { /charcode exch def X ( ) dup 0 charcode put X insideshowcharandrotate X } forall X grestore X end X } def X/$circtextdict 16 dict def X$circtextdict begin X /findhalfangle % findhalfangle takes one X { stringwidth pop 2 div % argument, a string, and finds X 2 xradius mul pi mul div 360 mul % the angle subtended by that X } def % string. It leaves the value of X % half of that angle on the stack. X % The angle is found by computing X % the ratio of the width of the X % string to the circumference of X % the circle and then converting X % that value to degrees. X X /outsideshowcharandrotate % This procedure shows a character X { /char exch def % upright on the outside of the X /halfangle char findhalfangle def % circumference and then rotates X gsave % clockwise by the amount of angle X % subtended by the width of the X % character. X halfangle neg rotate % Rotate clockwise by half the X radius 0 translate % angle taken up by the width of X % the character and translate out X % to the circumference. X -90 rotate % Position character upright on X % outside of circumference. X char stringwidth pop 2 div neg % Center the character around the X % origin. X 0 moveto char show X grestore X halfangle 2 mul neg rotate % Rotate clockwise by the amount X } def % of angle subtended by the width X % of the character. X X /insideshowcharandrotate % insideshowcharandrotate operates X { /char exch def % in a similar manner to X /halfangle char findhalfangle def % outsideshowcharandrotate except X gsave % that the direction of rotation X halfangle rotate % is counter-clockwise and the X radius 0 translate % characters are placed upright on X 90 rotate % the inside of the circle. X char stringwidth pop 2 div neg X 0 moveto char show X grestore X halfangle 2 mul rotate X } def X X /pi 3.1415923 def Xend X X% Don't need to print out this example for use as a library: X%/Times-Bold findfont 15 scalefont setfont X%306 448 translate X%(Symphony No. 9 (from the New World)) X% 15 90 100 outsidecircletext X%/Times-Roman findfont 10 scalefont setfont X%(Antonin Dvorak) X% 10 90 84 outsidecircletext X%(The New York Philharmonic Orchestra) X% 10 270 84 insidecircletext X%showpage END_OF_FILE if test 5828 -ne `wc -c <'circtext.ps'`; then echo shar: \"'circtext.ps'\" unpacked with wrong size! fi # end of 'circtext.ps' fi if test -f 'pathtext.ps' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'pathtext.ps'\" else echo shar: Extracting \"'pathtext.ps'\" \(8516 characters\) sed "s/^X//" >'pathtext.ps' <<'END_OF_FILE' X%! X% Cookbook Example Program from First Printing, Revised 7 Jan 1985 X% Program: Placing Text Along an Arbitrary Path Number: 17 X%----------------------------------------------------------------------------- X% X/pathtextdict 26 dict def % Local storage for the procedure X % ``pathtext.'' X X/pathtext % ``pathtext'' will place a string X { pathtextdict begin % of text along any path. It takes X /offset exch def % a string and starting offset X /str exch def % distance from the beginning of X % the path as its arguments. Note X % that ``pathtext'' assumes that a X % path has already been defined X % and after it places the text X % along the path, it clears the X % current path like the ``stroke'' X % and ``fill'' operators; it also X % assumes that a font has been X % set. ``pathtext'' begins placing X % the characters along the current X % path, starting at the offset X % distance and continuing until X % either the path length is X % exhausted or the entire string X % has been printed, whichever X % occurs first. The results will X % be more effective when a small X % point size font is used with X % sharp curves in the path. X X /pathdist 0 def % Initialize the distance we have X % travelled along the path. X /setdist offset def % Initialize the distance we have X % covered by setting characters. X /charcount 0 def % Initialize the character count. X gsave X flattenpath % Reduce the path to a series of X % straight line segments. The X % characters will be placed along X % the line segments in the X % ``linetoproc.'' X {movetoproc} {linetoproc} % The basic strategy is to process X {curvetoproc} {closepathproc} % the segments of the path, X pathforall % keeping a running total of the X % distance we have travelled so X % far (pathdist). We also keep X % track of the distance taken up X % by the characters that have been X % set so far (setdist). When the X % distance we have travelled along X % the path is greater than the X % distance taken up by the set X % characters, we are ready to set X % the next character (if there are X % any left to be set). This X % process continues until we have X % exhausted the full length of the X % path. X grestore X newpath % Clear the current path. X end X } def X Xpathtextdict begin X/movetoproc % ``movetoproc'' is executed when X { /newy exch def /newx exch def % a moveto component has been X % encountered in the pathforall X % operation. X /firstx newx def /firsty newy def % Remember the ``first point'' in X % the path so that when we get a X % ``closepath'' component we can X % properly handle the text. X /ovr 0 def X newx newy transform X /cpy exch def /cpx exch def % Explicitly keep track of the X % current position in device X % space. X } def X X/linetoproc % ``linetoproc'' is executed when X % a lineto component has been X % encountered in the pathforall X % operation. X { /oldx newx def /oldy newy def % Update the old point. X /newy exch def /newx exch def % Get the new point. X /dx newx oldx sub def X /dy newy oldy sub def X /dist dx dup mul dy dup mul add % Calculate the distance between X % the old and the new point. X sqrt def X /dsx dx dist div ovr mul def % dsx and dsy are used to update X /dsy dy dist div ovr mul def % the current position to be just X % beyond the width of the previous X % character. X oldx dsx add oldy dsy add transform X /cpy exch def /cpx exch def % Update the current position. X /pathdist pathdist dist add def % Increment the distance we have X % travelled along the path. X { setdist pathdist le % Keep setting characters along X % this path segment until we have X % exhausted its length. X { charcount str length lt % As long as there are still X {setchar} {exit} ifelse } % characters left in the string, X % set them. X { /ovr setdist pathdist sub def % Keep track of how much we have X exit } % overshot the path segment by X ifelse % setting the previous character. X % This enables us to position the X % origin of the following X % characters properly on the path. X } loop X } def X X/curvetoproc % ``curvetoproc'' is executed when X { (ERROR: No curveto's after flattenpath!)% a curveto component has been X print % encountered in the pathforall X } def % operation. It prints an error X % message since there shouldn't be X % any curveto's in a path after X % the flattenpath operator has X % been executed. X X/closepathproc % ``closepathproc'' is executed X { firstx firsty linetoproc % when a closepath component has X firstx firsty movetoproc % been encountered in the X } def % pathforall operation. It X % simulates the action of the X % operator ``closepath'' by X % executing ``linetoproc'' with X % the coordinates of the most X % recent ``moveto'' and then X % executing ``movetoproc'' to the X % same point. X X/setchar % ``setchar'' sets the next X { /char str charcount 1 getinterval def % character in the string along X % the path and then updates the X % amount of path we have X % exhausted. X /charcount charcount 1 add def % Increment the character count. X /charwidth char stringwidth pop def % Find the width of the character. X gsave X cpx cpy itransform translate % Translate to the current X % position in user space. X dy dx atan rotate % Rotate the x-axis to coincide X % with the current segment. X 0 0 moveto char show X currentpoint transform X /cpy exch def /cpx exch def % Update the current position X grestore % before we restore ourselves to X % the untransformed state. X /setdist setdist charwidth add def % Increment the distance we have X } def % covered by setting characters. Xend X X% Don't need to print out this example for use as a library: X%/Helvetica findfont 11.5 scalefont setfont % Set up the font we wish to use. X% X%newpath % Define the path along which we X% % wish to place the text. X% 200 500 50 0 270 arc X% 200 80 add 500 50 270 180 arc X% X%(If my film makes one more person feel\ X% miserable I'll feel I've done my job.\ X% -- WOODY ALLEN) 40 pathtext % Print the string along the path X% % at an offset of 40 points. X% X%newpath % Draw an outline shape suggestive X% % of a movie camera. X% 165 360 moveto 315 360 lineto % Draw the box part. X% 315 430 lineto 165 430 lineto X% closepath X% 315 390 moveto 355 375 lineto % Draw the lens part. X% 355 415 lineto 315 400 lineto X%1.5 setlinewidth stroke X% X% % A PROBLEM FOR THE READER: This X% % algorithm places characters X% % along the path according to the X% % origin of each character. X% % Rewrite the algorithm so that X% % the characters are placed X% % according to the center of their X% % width. This will yield better X% % results around sharp curves and X% % when larger point sizes are X% % used. X%showpage END_OF_FILE if test 8516 -ne `wc -c <'pathtext.ps'`; then echo shar: \"'pathtext.ps'\" unpacked with wrong size! fi # end of 'pathtext.ps' fi if test -f 'gnu.ps' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'gnu.ps'\" else echo shar: Extracting \"'gnu.ps'\" \(1759 characters\) sed "s/^X//" >'gnu.ps' <<'END_OF_FILE' X%!PS-Adobe-2.1 X%%Title: gnu.ps X%%Creator: trent@cs.pdx.edu and some guy on USENET X%%BoundingBox: 0 0 72 72 X%%EndComments X% X% Nice image of a Gnu X% X X/Gnu X<00 00 00 00 00 00 00 00 X 00 25 40 00 00 00 00 00 X 00 6f 80 00 00 00 00 00 X 01 7b fa 00 00 00 00 00 X 01 7f 76 40 00 00 00 00 X 06 fa 4e 96 00 00 00 00 X 06 ff d9 ec c0 00 03 80 X 0e bf db ba 80 00 02 40 X 0b fb 3f ff c0 00 01 a0 X 1f 7f 77 fe 7c f8 00 d0 X 3d 55 e6 8a 83 06 00 48 X 3e aa cf 91 83 f9 00 c8 X 15 55 cf ee 07 fe 81 88 X 2a aa c6 f0 0f ff 7f 18 X 15 25 c3 80 bf ff 80 30 X 28 ca e0 01 7f ff ea e0 X 19 d5 70 0b d7 ff ff 80 X 24 6a 5d 57 7f fb fc 00 X 16 31 4f fe c9 f5 f8 00 X 2e aa af fd 9f 77 ff c0 X 13 31 5f d2 a1 88 7a f0 X 27 36 f2 79 5e 40 f5 e0 X 13 31 80 ac bb 15 df 80 X 29 9b ff 04 6f 42 77 00 X 11 1d ff ca 06 08 b0 00 X 0d cc ff f2 41 5e 10 00 X 13 ce 46 56 32 1d 58 00 X 08 ce ec aa 2c 96 c8 00 X 11 d4 4d 15 16 2e fc 00 X 0c c6 6e c9 85 bb bc 00 X 02 64 6d 34 8a dd dc 00 X 08 ee ee ab 41 77 74 00 X 11 7c 65 55 20 a4 ec 00 X 2c ae 66 0a 98 4a a2 00 X 03 76 77 54 8c 15 51 00 X 2a 9f 33 a8 87 4a a1 00 X 11 0f 1c 40 c2 c1 4d 00 X 2c d5 88 02 30 18 8b 00 X 13 2d c4 22 10 c8 46 00 X 08 b8 95 2a 29 a2 fe 00 X 11 28 11 4b 1d 5f 5c 00 X 12 f0 22 49 56 ea b8 00 X 05 f1 24 8a 37 ff e0 00 X 02 e5 14 5c ba 7f 80 00 X 1d 65 54 d4 aa 00 00 00 X 0d ed 55 92 a9 00 00 00 X 17 ca 59 12 b1 00 00 00 X 0b 8a 29 b6 52 00 00 00 X 17 0a 54 a4 90 00 00 00 X 1e 41 52 a4 a8 00 00 00 X 0e f2 42 8a a0 00 00 00 X 1d f8 a4 48 00 00 00 00 X 1d fe 95 50 00 00 00 00 X 1b fe 01 00 00 00 00 00 X 1b f1 e3 80 00 00 00 00 X 13 fc 0b 80 00 00 00 00 X 03 3e 1f 80 00 00 00 00 X 0e 3f 6f 00 00 00 00 00 X 1e 1f dd 00 00 00 00 00 X 0c 0b af 00 00 00 00 00 X 18 05 d6 00 00 00 00 00 X 18 06 ec 00 00 00 00 00 X 00 00 00 00 00 00 00 00 X 00 00 00 00 00 00 00 00> X def END_OF_FILE if test 1759 -ne `wc -c <'gnu.ps'`; then echo shar: \"'gnu.ps'\" unpacked with wrong size! fi # end of 'gnu.ps' fi if test -f 'button8802.ps' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'button8802.ps'\" else echo shar: Extracting \"'button8802.ps'\" \(3175 characters\) sed "s/^X//" >'button8802.ps' <<'END_OF_FILE' X% X% button8802.ps - A GNU Button Program X% X% This program may be freely redistributed under the terms of the GNU X% General Public License. X% X% Copyright 1988, 1989, 1992 Free Software Foundation X% X% 28May89 modified to allowd variable diameter buttons. -tower X% X% This GNU Button program is distributed in the hope that it will be X% useful, but WITHOUT ANY WARRANTY. No author or distributor accepts X% responsibility to anyone for the consequences of using it or for X% whether it serves any particular purpose or works at all, unless he X% says so in writing. Refer to the GNU General Public License for X% full details. X% X% Everyone is granted permission to copy, modify and redistribute this X% GNU Button Program, but only under the conditions described in the X% GNU General Public License. A copy of this license is supposed to X% have been given to you along with the GNU Button Program so you can X% know your rights and responsibilities. It should be in a file named X% COPYING. Among other things, the copyright notice and this notice X% must be preserved on all copies. X% X% Hard copies of this button were first distributed at the February X% 1988 Dallas Usenix. They had black Lettering on a white background X% on a standard 2 1/4" safety pin button. They were designed by X% Leonard H. Tower Jr. who is also the author of this GNU Button X% Program. X% X% Report bugs or improvements to: tower@prep.ai.mit.edu X% X% Hard copies of this button are probably still available. One much X% have either donated source code or documentation to the GNU Project X% or make a donation of at least $ 2.00. X% X% If you wish a hard copy of this button send both: X% - a self-addressed, stamped envelope; and X% - either: X% - a reminder of your source or documentation contribution; or X% - a donation payable to the "Free Software Foundation" X% to: L. Tower Jr. X% 36 Porter Street X% Somerville, MA 02143, USA X% X% This program is available for anonymous ftp in X% prep.ai.mit.edu:/u2/emacs/button.N.MM.shar. It is probably X% available in other source archives. X X% Uses {in,out}sidecircletext routines from Adobe Cookbook. X.so circtext.ps X X% center button on 8 1/2" x 11" page X306 396 translate X X% This is a kludge to give better edge resolution. X% Note that postscript's scale command doesn't cut it. X% It scales after the edges are set. X% biggg is set to 2,3,4 or 3.9 to make a master that is that much larger. X% The master is reduced that much by the button manufacturer. X% If only 1200 dpi postscript printers were more common ... X/biggg 1 def X Xgsave X /gnustar (GNU) def X /gnustpt 52 biggg mul def X /Times-Bold findfont gnustpt scalefont setfont X %center X gnustar stringwidth pop 2 div neg gnustpt 3 div neg moveto X gnustar show Xgrestore X/Times-Bold findfont 10 biggg mul scalefont setfont X(GNU's Not Unix) X 10 biggg mul 270 64 biggg mul insidecircletext X/Times-Roman findfont 7.5 biggg mul scalefont setfont X(Copyright 1988 Free Software Foundation) X 7.5 biggg mul 270 75 biggg mul insidecircletext X(This button design may be freely redistributed under the terms of the GNU General Public License.) X 7.5 biggg mul 90 69 biggg mul outsidecircletext Xshowpage X END_OF_FILE if test 3175 -ne `wc -c <'button8802.ps'`; then echo shar: \"'button8802.ps'\" unpacked with wrong size! fi # end of 'button8802.ps' fi if test -f 'button8806.ps' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'button8806.ps'\" else echo shar: Extracting \"'button8806.ps'\" \(3387 characters\) sed "s/^X//" >'button8806.ps' <<'END_OF_FILE' X% X% button8806.ps - A GNU Button Program X% X% This program may be freely redistributed under the terms of the GNU X% General Public License. X% X% Copyright 1988, 1992 Free Software Foundation X% X% This GNU Button program is distributed in the hope that it will be X% useful, but WITHOUT ANY WARRANTY. No author or distributor accepts X% responsibility to anyone for the consequences of using it or for X% whether it serves any particular purpose or works at all, unless he X% says so in writing. Refer to the GNU General Public License for X% full details. X% X% Everyone is granted permission to copy, modify and redistribute this X% GNU Button Program, but only under the condaitions described in the X% GNU General Public License. A copy of this license is supposed to X% have been given to you along with the GNU Button Program so you can X% know your rights and responsibilities. It should be in a file named X% COPYING. Among other things, the copyright notice and this notice X% must be preserved on all copies. X% X% Hard copies of this button were first distributed at the June 1988 X% SanFrancisco Usenix. They had black Lettering on a yellow X% background on a standard 2 1/4" safety pin button. They were X% designed by Leonard H. Tower Jr. who is also the author of this GNU X% Button Program. X% X% Report bugs or improvements to: tower@prep.ai.mit.edu X% X% Hard copies of this button are probably still available. One much X% have either donated source code or documentation to the GNU Project X% or make a donation of at least $ 2.00 for each button. X% X% If you wish a hard copy of a gnu button send: X% - a self-addressed, stamped envelope; and X% - either: X% - a reminder of your source or documentation contribution; or X% - a donation payable to the "Free Software Foundation"; and X% - specify whether you want the Feb 88 or June 88 button or both. X% to: L. Tower Jr. X% 36 Porter Street X% Somerville, MA 02143, USA X% X% This program is available for anonymous ftp in X% prep.ai.mit.edu:/u2/emacs/button.N.MM.shar. It is probably X% available in other source archives. X X% Uses {in,out}sidecircletext routines from Adobe Cookbook. X.so circtext.ps X X% center button on 8 1/2" x 11" page X306 396 translate X X% This is a kludge to give better edge resolution. X% Note that postscript's scale command doesn't cut it. X% It scales after the edges are set. X% biggg is set to 2,3, or 4 to make a master that is that much larger. X% The master is reduced that much by the button manufacturer. X% If only 1200 dpi postscript printers were more common ... X/biggg 1 def X Xgsave X /gnustar (GNU) def X /gnustpt 45 biggg mul def X /Times-Bold findfont gnustpt scalefont setfont X %center X gnustar stringwidth pop 2 div neg gnustpt 3 div neg moveto X gnustar show Xgrestore X/Times-Bold findfont 14 biggg mul scalefont setfont X(GNU's Not Unix) X 14 biggg mul 270 64 biggg mul insidecircletext X/Times-Roman findfont 7.5 biggg mul scalefont setfont X(Copyright 1988 Free Software Foundation) X 7.5 biggg mul 270 75 biggg mul insidecircletext X(This button design may be freely redistributed under the terms of the GNU General Public License.) X 7.5 biggg mul 90 69 biggg mul outsidecircletext X/Times-Roman findfont 7 biggg mul scalefont setfont X(Anonymous ftp this button's postscript program from prep.ai.mit.edu:/u/emacs/button.N.MM.shar.) X 7 biggg mul 90 61 biggg mul outsidecircletext Xshowpage END_OF_FILE if test 3387 -ne `wc -c <'button8806.ps'`; then echo shar: \"'button8806.ps'\" unpacked with wrong size! fi # end of 'button8806.ps' fi if test -f 'button8901.ps' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'button8901.ps'\" else echo shar: Extracting \"'button8901.ps'\" \(3725 characters\) sed "s/^X//" >'button8901.ps' <<'END_OF_FILE' X% X% button8901.ps - A GNU Button Program X% X% This program may be freely redistributed under the terms of the GNU X% General Public License. X% X% Copyright 1989, 1992 Free Software Foundation X% X% This GNU Button program is distributed in the hope that it will be X% useful, but WITHOUT ANY WARRANTY. No author or distributor accepts X% responsibility to anyone for the consequences of using it or for X% whether it serves any particular purpose or works at all, unless he X% says so in writing. Refer to the GNU General Public License for X% full details. X% X% Everyone is granted permission to copy, modify and redistribute this X% GNU Button Program, but only under the conditions described in the X% GNU General Public License. A copy of this license is supposed to X% have been given to you along with this GNU Button Program so you can X% know your rights and responsibilities. It should be in a file named X% COPYING. Among other things, the copyright notice and this notice X% must be preserved on all copies. X% X% Hard copies of this button were first distributed at the January X% 1989 SanDiego Usenix. They had black lettering on a blue background X% on a standard 2 1/4" safety pin button. They were designed by X% Leonard H. Tower Jr. who is also the author of this GNU Button X% Program. X% X% Report bugs or improvements to: tower@prep.ai.mit.edu X% X% Hard copies of this button are probably still available. To get a X% button, one must have either donated source code or documentation to X% the GNU Project or make a donation of at least $ 2.00 for each X% button. X% X% If you wish a hard copy of a gnu button send: X% - a self-addressed, stamped envelope; and X% - either: X% - a reminder of your source or documentation contribution; or X% - a donation payable to the "Free Software Foundation"; and X% - specify which of these different versions you wish: X% Feb 88, June 88, and/or Jan 89 X% to: L. Tower Jr. X% 36 Porter Street Somerville, MA 02143, USA X% X% This program is available for anonymous ftp X% prep.ai.mit.edu:/u2/emacs/button.N.MM.shar. It is probably X% available in other source archives. X X% Uses {in,out}sidecircletext routines from Adobe Cookbook. X.so circtext.ps X X% center button on 8 1/2" x 11" page X306 396 translate X X% This is a kludge to give better edge resolution. X% Note that postscript's scale command doesn't cut it. X% It scales after the edges are set. X% biggg is set to 2,3,4 or 3.9 to make a master that is that much larger. X% The master is reduced that much by the button manufacturer. X% If only 1200 dpi postscript printers were more common ... X/biggg 1 def X Xgsave X /gnutext (GNU) def X /ertext (er) def X /gnustpt 45 biggg mul def X /Times-Bold findfont gnustpt scalefont setfont X %center X % The "er" is half the point size of the "GNU" X /erwidth ertext stringwidth pop 2 div def X /gnuwidth gnutext stringwidth pop def X % don't take the Ue kern out here X gnuwidth erwidth add 2 div neg X gnustpt 6 div neg moveto X gnutext show X /Times-Bold findfont gnustpt 2 div scalefont setfont X (e) stringwidth pop 4 div neg 0 rmoveto X ertext show Xgrestore X/Times-Bold findfont 14 biggg mul scalefont setfont X(GNU's Not Unix) X 14 biggg mul 90 53 biggg mul outsidecircletext X/Times-Roman findfont 7.5 biggg mul scalefont setfont X(Copyright 1989 Free Software Foundation) X 7.5 biggg mul 90 69 biggg mul outsidecircletext X(Anonymous ftp this button's postscript) X 7.5 biggg mul 270 55 biggg mul insidecircletext X(program from prep.ai.mit.edu:/u/emacs/button.N.MM.shar) X 7.5 biggg mul 270 64 biggg mul insidecircletext X(This button design may be freely redistributed under the terms of the GNU General Public License.) X 7.5 biggg mul 270 73 biggg mul insidecircletext Xshowpage X END_OF_FILE if test 3725 -ne `wc -c <'button8901.ps'`; then echo shar: \"'button8901.ps'\" unpacked with wrong size! fi # end of 'button8901.ps' fi if test -f 'button8906.ps' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'button8906.ps'\" else echo shar: Extracting \"'button8906.ps'\" \(3725 characters\) sed "s/^X//" >'button8906.ps' <<'END_OF_FILE' X% X% button8906.ps - A GNU Button Program X% X% This program may be freely redistributed under the terms of the GNU X% General Public License. X% X% Copyright 1989 Free Software Foundation X% X% This GNU Button program is distributed in the hope that it will be X% useful, but WITHOUT ANY WARRANTY. No author or distributor accepts X% responsibility to anyone for the consequences of using it or for X% whether it serves any particular purpose or works at all, unless he X% says so in writing. Refer to the GNU General Public License for X% full details. X% X% Everyone is granted permission to copy, modify and redistribute this X% GNU Button Program, but only under the conditions described in the X% GNU General Public License. A copy of this license is supposed to X% have been given to you along with this GNU Button Program so you can X% know your rights and responsibilities. It should be in a file named X% COPYING. Among other things, the copyright notice and this notice X% must be preserved on all copies. X% X% Hard copies of this button were first distributed at the June 1989 X% Baltimore Usenix. They had black lettering on a green background on X% a standard 2 1/4" safety pin button. They were designed by Leonard X% H. Tower Jr. who is also the author of this GNU Button Program. X% X% Report bugs or improvements to: tower@prep.ai.mit.edu X% X% Hard copies of this button are probably still available. To get a X% button, one must have either donated source code or documentation to X% the GNU Project or make a donation of at least $ 2.00 for each X% button. X% X% If you wish a hard copy of a gnu button send: X% - a self-addressed, stamped envelope; and X% - either: X% - a reminder of your source or documentation contribution; or X% - a donation payable to the "Free Software Foundation"; and X% - specify which of these different versions you wish: X% Feb 88, June 88, Jan 89, and/or June 89 X% to: L. Tower Jr. X% 36 Porter Street Somerville, MA 02143, USA X% X% This program is available for anonymous ftp X% prep.ai.mit.edu:/u2/emacs/button.N.MM.shar. It is probably X% available in other source archives. X X% Uses {in,out}sidecircletext routines from Adobe Cookbook. X.so circtext.ps X X% center button on 8 1/2" x 11" page X306 396 translate X X% This is a kludge to give better edge resolution. X% Note that postscript's scale command doesn't cut it. X% It scales after the edges are set. X% biggg is set to 2,3,4 or 3.9 to make a master that is that much larger. X% The master is reduced that much by the button manufacturer. X% If only 1200 dpi postscript printers were more common ... X/biggg 1 def X Xgsave X /gnutext (GNU) def X /ertext (ist) def X /gnustpt 45 biggg mul def X /Times-Bold findfont gnustpt scalefont setfont X %center X % The "ist" is half the point size of the "GNU" X /erwidth ertext stringwidth pop 2 div def X /gnuwidth gnutext stringwidth pop def X % don't take the Ue kern out here X gnuwidth erwidth add 2 div neg X gnustpt 6 div neg moveto X gnutext show X /Times-Bold findfont gnustpt 2 div scalefont setfont X (e) stringwidth pop 4 div neg 0 rmoveto X ertext show Xgrestore X/Times-Bold findfont 14 biggg mul scalefont setfont X(GNU's Not Unix) X 14 biggg mul 90 53 biggg mul outsidecircletext X/Times-Roman findfont 7.5 biggg mul scalefont setfont X(Copyright 1989 Free Software Foundation) X 7.5 biggg mul 90 69 biggg mul outsidecircletext X(Anonymous ftp this button's postscript) X 7.5 biggg mul 270 55 biggg mul insidecircletext X(program from prep.ai.mit.edu:/u/emacs/button.N.MM.shar) X 7.5 biggg mul 270 64 biggg mul insidecircletext X(This button design may be freely redistributed under the terms of the GNU General Public License.) X 7.5 biggg mul 270 73 biggg mul insidecircletext Xshowpage END_OF_FILE if test 3725 -ne `wc -c <'button8906.ps'`; then echo shar: \"'button8906.ps'\" unpacked with wrong size! fi # end of 'button8906.ps' fi if test -f 'button9001.ps' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'button9001.ps'\" else echo shar: Extracting \"'button9001.ps'\" \(3923 characters\) sed "s/^X//" >'button9001.ps' <<'END_OF_FILE' X% X% button9001.ps - A GNU Button Program X% X% This program may be freely redistributed under the terms of the GNU X% General Public License. X% X% Copyright 1990 Free Software Foundation X% X% This GNU Button program is distributed in the hope that it will be X% useful, but WITHOUT ANY WARRANTY. No author or distributor accepts X% responsibility to anyone for the consequences of using it or for X% whether it serves any particular purpose or works at all, unless he X% says so in writing. Refer to the GNU General Public License for X% full details. X% X% Everyone is granted permission to copy, modify and redistribute this X% GNU Button Program, but only under the conditions described in the X% GNU General Public License. A copy of this license is supposed to X% have been given to you along with this GNU Button Program so you can X% know your rights and responsibilities. It should be in a file named X% COPYING. Among other things, the copyright notice and this notice X% must be preserved on all copies. X% X% Hard copies of this button were first distributed at the June 1990 X% Baltimore Usenix. They had black lettering on a green background on X% a standard 2 1/4" safety pin button. They were designed by Leonard X% H. Tower Jr. who is also the author of this GNU Button Program. X% X% Report bugs or improvements to: tower@prep.ai.mit.edu X% X% Hard copies of this button are probably still available. To get a X% button, one must have either donated source code or documentation to X% the GNU Project or make a donation of at least $ 2.00 for each X% button. X% X% If you wish a hard copy of a gnu button send: X% - a self-addressed, stamped envelope; and X% - either: X% - a reminder of your source or documentation contribution; or X% - a donation payable to the "Free Software Foundation"; and X% - specify how many each of these different versions you wish: X% Feb 88 (white GNU) Jun 88 (yellow GNU) X% Jan 89 (blue GNUer) Jun 89 (green GNUist) X% Jan 90 (yellow thanx GNU) X% to: L. Tower Jr. X% 36 Porter Street, X% Somerville, MA 02143, USA X% X% This program is available for anonymous ftp X% prep.ai.mit.edu:/u2/emacs/button.N.MM.shar. It is probably X% available in other source archives. X X% Uses {in,out}sidecircletext routines from Adobe Cookbook. X.so circtext.ps X X% center button on 8 1/2" x 11" page X306 396 translate X X% This is a kludge to give better edge resolution. X% Note that postscript's scale command doesn't cut it. X% It scales after the edges are set. X% biggg is set to 2,3,4 or 3.9 to make a master that is that much larger. X% The master is reduced that much by the button manufacturer. X% If only 1200 dpi postscript printers were more common ... X/biggg 1 def X X/radius 82 biggg mul def X X% useful for centering things X/circleguide { X gsave X .5 setlinewidth X newpath X 0 0 radius 0 360 arc X stroke X grestore X} def X X%circleguide X Xgsave X /ertext (thanx) def X /gnutext (GNU) def X /gnusize 48 biggg mul def X /ersize gnusize 4 div def X /Times-Bold findfont ersize scalefont setfont X /erwidth ertext stringwidth pop def X erwidth 2 div 1 biggg mul sub neg X ersize 2.2 mul moveto X ertext show Xgrestore Xgsave X /Times-Bold findfont gnusize scalefont setfont X /gnuwidth gnutext stringwidth pop def X gnuwidth 2 div neg X gnusize 4 div neg moveto X gnutext show Xgrestore X/Times-Bold findfont 14 biggg mul scalefont setfont X(GNU's Not Unix) X 14 biggg mul 90 53 biggg mul outsidecircletext X/Times-Roman findfont 7.5 biggg mul scalefont setfont X(Copyright 1990 Free Software Foundation) X 7.5 biggg mul 90 69 biggg mul outsidecircletext X(Anonymous ftp this button's postscript) X 7.5 biggg mul 270 55 biggg mul insidecircletext X(program from prep.ai.mit.edu:/u/emacs/button.N.MM.shar) X 7.5 biggg mul 270 64 biggg mul insidecircletext X(This button design may be freely redistributed under the terms of the GNU General Public License.) X 7.5 biggg mul 270 73 biggg mul insidecircletext Xshowpage END_OF_FILE if test 3923 -ne `wc -c <'button9001.ps'`; then echo shar: \"'button9001.ps'\" unpacked with wrong size! fi # end of 'button9001.ps' fi if test -f 'button9006.ps' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'button9006.ps'\" else echo shar: Extracting \"'button9006.ps'\" \(6079 characters\) sed "s/^X//" >'button9006.ps' <<'END_OF_FILE' X% X% button9006.ps - A GNU Button Program X% X% Copyright 1990 Free Software Foundation X% X% This program is free software; you can redistribute it and/or modify X% it under the terms of the GNU General Public License as published by X% the Free Software Foundation; either version 1, or (at your option) X% any later version. X% X% This program is distributed in the hope that it will be useful, X% but WITHOUT ANY WARRANTY; without even the implied warranty of X% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the X% GNU General Public License for more details. X% X% You should have received a copy of the GNU General Public License X% along with this program; if not, write to the Free Software X% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. X% X% Hard copies of this button were first distributed at the June 1990 X% Anaheim Usenix. They had black lettering on a white background on a X% standard 2 1/4" safety pin button. They were designed by Leonard H. X% Tower Jr. who is also the author of this GNU Button Program. X% X% Report bugs or improvements to: tower@prep.ai.mit.edu X% X% Hard copies of this button are probably still available. To get a X% button, one must have either donated source code or documentation to X% the GNU Project or make a donation of at least $ 2.00 for each button. X% X% If you wish a hard copy of a gnu button send: X% - a self-addressed, stamped envelope; and X% - either: X% - a reminder of your source or documentation contribution; or X% - a donation payable to the "Free Software Foundation"; and X% - specify which of these different versions you wish: X% Feb 88, Jun 88, Jan 89, Jun 89, Jan 90, and/or Jun 90 X% to: L. Tower Jr. X% 36 Porter Street, X% Somerville, MA 02143, USA X% X% This program is available for anonymous ftp X% prep.ai.mit.edu:/u2/emacs/button.N.MM.shar. It is probably available X% in other source archives. X X%.so ehandler.ps X X% Uses pathtext routine from Adobe Cookbook. X.so pathtext.ps X X% center button on 8 1/2" x 11" page X306 396 translate X X% This is a kludge to give better edge resolution. X% Note that postscript's scale command doesn't cut it. X% It scales after the edges are set. X% biggg is set to 2,3,4 or 3.9 to make a master that is that much larger. X% The master is reduced that much by the button manufacturer. X% If only 1200 dpi postscript printers were more common ... X/biggg 1 def X X% useful for centering things X/circleguide { X gsave X /radius 82 biggg mul def X .5 setlinewidth X newpath X 0 0 radius 0 360 arc X stroke X grestore X} def X X%circleguide X X/setdimen { X /letsep exch biggg mul def % half the width of a letter X /letrad exch biggg mul def X /letinside 18 biggg mul def % vertical distance from center line to radius X /letheightlow letrad letinside add def X /letheight letheightlow linewidth 2 div add def X /letwidth letrad 2 mul def X} def X X/g_path { X newpath X gxcenter letinside letrad 0 180 arc X gxcenter letinside neg letrad 180 0 arc X 0 letinside 3 div rlineto X 13.7 neg biggg mul 0 rlineto X} def X X/u_path { X newpath X /nxcenter gxcenter neg def X /nleft nxcenter letrad neg add def X /nright nxcenter letrad add def X nleft letheight moveto X nxcenter letinside neg letrad 180 0 arc X nright letheight lineto X} def X X/center_dim { 16 16 setdimen } def X X/outside_dim { 15.5 16.5 setdimen } def X X/inside_dim { 16.5 15.5 setdimen } def X Xgsave X % define the basic dimensions of the letters X % people are welcome to call this typeface: austere gothic X /linewidth 11 biggg mul def X X /Helvetica-Narrow-Bold findfont 6 biggg mul scalefont setfont X linewidth setlinewidth X 0 setlinejoin X 0 setlinecap X X% give us a G ! X 0 setgray X center_dim X /gxcenter letrad 2 mul letsep add neg def X g_path X stroke X X 1 setgray X outside_dim X g_path X ( 675 MASSACHUSETTS AVE, CAMBRIDGE, MA 02139 USA) X 0 pathtext X X inside_dim X g_path X reversepath X (THANXGNU!! COPYRIGHT 1990 FREE SOFTWARE FOUNDATION) X 0 pathtext X X% give us a N ! X 0 setgray X center_dim X newpath X letrad neg letheight neg moveto X letrad neg letheightlow lineto X letrad letheightlow neg lineto X letrad letheight lineto X stroke X X 1 setgray X newpath X /bla .5 biggg mul def % amount to move baseline by X /nadj bla 1.2 mul biggg mul def % amount to adjust diagonal of the n X letrad bla add neg letheight neg moveto X letrad bla add neg letheightlow nadj add lineto X letrad bla sub letheightlow nadj sub neg lineto X letrad bla sub letheight lineto X % This is a kludge to make the slashes bolder X /slashwidthadj (/) stringwidth pop % don't need y X 4.1 div def X gsave X ( FROM PREP.AI.MIT.EDU FILE /) X 0 pathtext X grestore X gsave X (/pub/) X ( FROM PREP.AI.MIT.EDU FILE /) stringwidth pop % don't need y X slashwidthadj 3.4 mul sub X pathtext X grestore X gsave X (/gnu/) X ( FROM PREP.AI.MIT.EDU FILE /pub/) stringwidth pop % don't need y X slashwidthadj 4.2 mul sub X pathtext X grestore X gsave X % extra space is to turn the tight bend in the N. X (/button.N.MM.shar. GNU'S NOT UNIX!) X ( FROM PREP.AI.MIT.EDU FILE /pub/gnu/) stringwidth pop % don't need y X slashwidthadj 5.2 mul sub X pathtext X grestore X X newpath X letrad bla sub neg letheight neg moveto X letrad bla sub neg letheightlow nadj sub lineto X letrad bla add letheightlow nadj add neg lineto X letrad bla add letheight lineto X reversepath X % extra space is to turn the tight bend in the N. X ( YOU MAY ANONYMOUS FTP THIS BUTTON'S POSTSCRIPT PROGRAM) X 0 pathtext X X% give us a U ! X 0 setgray X center_dim X /gxcenter letrad 2 mul letsep add neg def X u_path X stroke X 1 setgray X X outside_dim X u_path X ( UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE.) X 0 pathtext X X inside_dim X u_path X reversepath X ( THIS GNU BUTTON DESIGN MAY BE FREELY REDISTRIBUTED) X 0 pathtext X X% what does it spell?!? GNU !! Xgrestore Xshowpage END_OF_FILE if test 6079 -ne `wc -c <'button9006.ps'`; then echo shar: \"'button9006.ps'\" unpacked with wrong size! fi # end of 'button9006.ps' fi if test -f 'button9101.ps' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'button9101.ps'\" else echo shar: Extracting \"'button9101.ps'\" \(6091 characters\) sed "s/^X//" >'button9101.ps' <<'END_OF_FILE' X% X% button9101.ps - A GNU Button Program X% X% Copyright 1991 Free Software Foundation X% X% This program is free software; you can redistribute it and/or modify X% it under the terms of the GNU General Public License as published by X% the Free Software Foundation; either version 1, or (at your option) X% any later version. X% X% This program is distributed in the hope that it will be useful, X% but WITHOUT ANY WARRANTY; without even the implied warranty of X% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the X% GNU General Public License for more details. X% X% You should have received a copy of the GNU General Public License X% along with this program; if not, write to the Free Software X% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. X% X% Hard copies of this button were first distributed at the January 1991 X% Dallas Usenix. They had black lettering on a yellow background on a X% standard 2 1/4" safety pin button. They were designed by Leonard H. X% Tower Jr. who is also the author of this GNU Button Program. X% X% Report bugs or improvements to: tower@prep.ai.mit.edu X% X% Hard copies of this button are probably still available. To get a X% button, one must have either donated source code or documentation to X% the GNU Project or make a donation of at least $ 2.00 for each button. X% X% If you wish a hard copy of a gnu button send: X% - a self-addressed, stamped envelope; and X% - either: X% - a reminder of your source or documentation contribution; or X% - a donation payable to the "Free Software Foundation"; and X% - specify which of these different versions you wish: X% Feb 88, Jun 88, Jan 89, Jun 89, Jan 90, Jun 90, and/or Jan 91 X% to: L. Tower Jr. X% 36 Porter Street, X% Somerville, MA 02143, USA X% X% This program is available for anonymous ftp X% prep.ai.mit.edu:/u2/emacs/button.N.MM.shar. It is probably available X% in other source archives. X X%.so ehandler.ps X X% Uses pathtext routine from Adobe Cookbook. X.so pathtext.ps X X% center button on 8 1/2" x 11" page X306 396 translate X X% This is a kludge to give better edge resolution. X% Note that postscript's scale command doesn't cut it. X% It scales after the edges are set. X% biggg is set to 2,3,4 or 3.9 to make a master that is that much larger. X% The master is reduced that much by the button manufacturer. X% If only 1200 dpi postscript printers were more common ... X/biggg 1 def X X% useful for centering things X/circleguide { X gsave X /radius 82 biggg mul def X .5 setlinewidth X newpath X 0 0 radius 0 360 arc X stroke X grestore X} def X X%circleguide X X/setdimen { X /letsep exch biggg mul def % half the width of a letter X /letrad exch biggg mul def X /letinside 18 biggg mul def % vertical distance from center line to radius X /letheightlow letrad letinside add def X /letheight letheightlow linewidth 2 div add def X /letwidth letrad 2 mul def X} def X X/g_path { X newpath X gxcenter letinside letrad 0 180 arc X gxcenter letinside neg letrad 180 0 arc X 0 letinside 3 div rlineto X 13.7 neg biggg mul 0 rlineto X} def X X/u_path { X newpath X /nxcenter gxcenter neg def X /nleft nxcenter letrad neg add def X /nright nxcenter letrad add def X nleft letheight moveto X nxcenter letinside neg letrad 180 0 arc X nright letheight lineto X} def X X/center_dim { 16 16 setdimen } def X X/outside_dim { 15.5 16.5 setdimen } def X X/inside_dim { 16.5 15.5 setdimen } def X Xgsave X % define the basic dimensions of the letters X % people are welcome to call this typeface: austere gothic X /linewidth 11 biggg mul def X X /Helvetica-Narrow-Bold findfont 6 biggg mul scalefont setfont X linewidth setlinewidth X 0 setlinejoin X 0 setlinecap X X% give us a G ! X 0 setgray X center_dim X /gxcenter letrad 2 mul letsep add neg def X g_path X stroke X X 1 setgray X outside_dim X g_path X ( 675 MASSACHUSETTS AVE, CAMBRIDGE, MA 02139 USA) X 0 pathtext X X inside_dim X g_path X reversepath X (THANXGNU!! COPYRIGHT 1991 FREE SOFTWARE FOUNDATION) X 0 pathtext X X% give us a N ! X 0 setgray X center_dim X newpath X letrad neg letheight neg moveto X letrad neg letheightlow lineto X letrad letheightlow neg lineto X letrad letheight lineto X stroke X X 1 setgray X newpath X /bla .5 biggg mul def % amount to move baseline by X /nadj bla 1.2 mul biggg mul def % amount to adjust diagonal of the n X letrad bla add neg letheight neg moveto X letrad bla add neg letheightlow nadj add lineto X letrad bla sub letheightlow nadj sub neg lineto X letrad bla sub letheight lineto X % This is a kludge to make the slashes bolder X /slashwidthadj (/) stringwidth pop % don't need y X 4.1 div def X gsave X ( FROM PREP.AI.MIT.EDU FILE /) X 0 pathtext X grestore X gsave X (/pub/) X ( FROM PREP.AI.MIT.EDU FILE /) stringwidth pop % don't need y X slashwidthadj 3.4 mul sub X pathtext X grestore X gsave X (/gnu/) X ( FROM PREP.AI.MIT.EDU FILE /pub/) stringwidth pop % don't need y X slashwidthadj 4.2 mul sub X pathtext X grestore X gsave X % extra space is to turn the tight bend in the N. X (/button.N.MM.shar. GNU'S NOT UNIX!) X ( FROM PREP.AI.MIT.EDU FILE /pub/gnu/) stringwidth pop % don't need y X slashwidthadj 5.2 mul sub X pathtext X grestore X X newpath X letrad bla sub neg letheight neg moveto X letrad bla sub neg letheightlow nadj sub lineto X letrad bla add letheightlow nadj add neg lineto X letrad bla add letheight lineto X reversepath X % extra space is to turn the tight bend in the N. X ( YOU MAY ANONYMOUS FTP THIS BUTTON'S POSTSCRIPT PROGRAM) X 0 pathtext X X% give us a U ! X 0 setgray X center_dim X /gxcenter letrad 2 mul letsep add neg def X u_path X stroke X 1 setgray X X outside_dim X u_path X ( UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE.) X 0 pathtext X X inside_dim X u_path X reversepath X ( THIS GNU BUTTON DESIGN MAY BE FREELY REDISTRIBUTED) X 0 pathtext X X% what does it spell?!? GNU !! Xgrestore Xshowpage END_OF_FILE if test 6091 -ne `wc -c <'button9101.ps'`; then echo shar: \"'button9101.ps'\" unpacked with wrong size! fi # end of 'button9101.ps' fi if test -f 'button9106.ps' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'button9106.ps'\" else echo shar: Extracting \"'button9106.ps'\" \(5169 characters\) sed "s/^X//" >'button9106.ps' <<'END_OF_FILE' X% X% button9106.ps - A GNU Button Program X% X% Copyright 1991 Free Software Foundation X% X% This program is free software; you can redistribute it and/or modify X% it under the terms of the GNU General Public License as published by X% the Free Software Foundation; either version 2, or (at your option) X% any later version. X% X% This program is distributed in the hope that it will be useful, X% but WITHOUT ANY WARRANTY; without even the implied warranty of X% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the X% GNU General Public License for more details. X% X% You should have received a copy of the GNU General Public License X% along with this program; if not, write to the Free Software X% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. X% X% Hard copies of this button were first distributed at the June 1991 X% Nashville Usenix. They had black lettering on a white background on a X% standard 2 1/4" safety pin button. They were designed by Leonard H. X% Tower Jr. who is also the author of this GNU Button Program. X% X% Report bugs or improvements to: tower@prep.ai.mit.edu X% X% Hard copies of this button are probably still available. To get a X% button, one must have either donated source code or documentation to X% the GNU Project or make a donation of at least $ 2.00 for each button. X% X% If you wish a hard copy of a gnu button send: X% - a self-addressed, stamped envelope; and X% - either: X% - a reminder of your source or documentation contribution; or X% - a donation payable to the "Free Software Foundation"; and X% - specify which of these different versions you wish: X% Feb 88, Jun 88, Jan 89, Jun 89, Jan 90, Jun 90, Jan 91 X% and/or Jun 91 X% to: L. Tower Jr. X% 36 Porter Street, X% Somerville, MA 02143, USA X% X% This program is available for anonymous ftp X% prep.ai.mit.edu:/u2/emacs/button.N.MM.shar. It is probably available X% in other source archives. X X% debugging help X%.so ehandler.ps X X% uses {in,out}sidecircletext routines from Adobe Cookbook. X.so circtext.ps X X% center button on 8 1/2" x 11" page X306 396 translate X X% This is a kludge to give better edge resolution. X% Note that postscript's scale command doesn't cut it. X% It scales after the edges are set. X% biggg is set to 2,3,4, 3.7 or 3.9 to make a master that is that much larger. X% The master is reduced that much by the button manufacturer. X% If only 1200 dpi postscript printers were more common ... X/biggg 1 def X X% useful for centering things X/circleguide { X gsave X /radius 82 biggg mul def X .5 setlinewidth X newpath X 0 0 radius 0 360 arc X stroke X grestore X} def X X%circleguide X Xgsave X % define the basic dimensions of the letters X % people are welcome to call this typeface: hornart-deco X /tipangle 30 def X /gta 90 tipangle sub def % g tip angle X /uta 90 tipangle add def % u tip angle X /tiprad 4 biggg mul def X /hornrad 32 biggg mul def X /letsep 8 biggg mul def X /letheight 28 biggg mul def X /letwidth 14 biggg mul def X /letrad 8 biggg mul def X /linewidth 4 biggg mul def X X linewidth setlinewidth X 0 tiprad neg moveto % roughly center X 0 setgray X .1 setflat X X% give us a G ! X /letcenter letwidth letsep add neg def X 1 setlinejoin X 1 setlinecap % wish there was a pointy default! X X newpath X letcenter hornrad tiprad add tiprad 270 gta arc X stroke X 1 setlinejoin X 0 setlinecap X letcenter hornrad tiprad add tiprad gta 270 arcn X stroke X newpath X 0 setlinejoin X 2 setlinecap X newpath X letcenter 0 hornrad 90 270 arc X currentpoint X letrad add letrad 270 0 arc X 0 letheight 2 div rlineto X% letwidth 2 div neg 0 rlineto X /Helvetica-Narrow-Bold findfont linewidth 1.5 mul scalefont setfont X currentpoint X stroke X moveto X (THANX) stringwidth exch linewidth .6 mul add neg exch X 2 mul linewidth .6 mul add neg rlineto X (THANX) show X X X% give us a N ! X newpath X letwidth 2 div neg hornrad neg moveto X 0 letheight rlineto X letwidth letheight neg rlineto X 0 letheight rlineto X currentpoint X stroke X moveto X linewidth .7 mul letheight linewidth 2 mul add neg rmoveto X ('s Not Unix) show X X% give us a U ! X /letcenter letcenter neg def X 1 setlinejoin X 1 setlinecap % wish there was a pointy default! X X newpath X letcenter hornrad tiprad add tiprad 270 uta arcn X stroke X 1 setlinejoin X 0 setlinecap X newpath X stroke X letcenter hornrad tiprad add tiprad uta 270 arc X stroke X 0 setlinejoin X 2 setlinecap X newpath X letcenter 0 hornrad 90 270 arcn X currentpoint X letrad add letrad 270 180 arcn X 0 letheight letrad sub rlineto X currentpoint X stroke X X% what does it spell?!? GNU !! X X% now for the eye! X moveto X letwidth .8 mul letheight .4 mul neg rmoveto X /Courier-Oblique findfont 15 biggg mul scalefont setfont X (@) show X Xgrestore X Xgsave X /Helvetica-Narrow-Bold findfont 5.75 biggg mul scalefont setfont X X (Copyright 1991 Free Software Foundation, Inc.) X 7.5 biggg mul 270 73 biggg mul outsidecircletext X (Anonymous ftp prep.ai.mit.edu:/pub/gnu/button.N.shar, this button's postscript program which is freely redistributable under the GNU General Public License.) X 7.5 biggg mul 90 73 biggg mul outsidecircletext X Xgrestore Xshowpage END_OF_FILE if test 5169 -ne `wc -c <'button9106.ps'`; then echo shar: \"'button9106.ps'\" unpacked with wrong size! fi # end of 'button9106.ps' fi if test -f 'button9201.ps' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'button9201.ps'\" else echo shar: Extracting \"'button9201.ps'\" \(5199 characters\) sed "s/^X//" >'button9201.ps' <<'END_OF_FILE' X% X% button9201.ps - A GNU Button Program X% X% Copyright 1992 Free Software Foundation X% X% This program is free software; you can redistribute it and/or modify X% it under the terms of the GNU General Public License as published by X% the Free Software Foundation; either version 2, or (at your option) X% any later version. X% X% This program is distributed in the hope that it will be useful, X% but WITHOUT ANY WARRANTY; without even the implied warranty of X% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the X% GNU General Public License for more details. X% X% You should have received a copy of the GNU General Public License X% along with this program; if not, write to the Free Software X% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. X% X% Hard copies of this button were first distributed at the January X% 1992 San Francisco Usenix. They had black lettering on a yellow X% background on a standard 2 1/4" safety pin button. They were X% designed by Leonard H. Tower Jr. who is also the author of this GNU X% Button Program. X% X% Report bugs or improvements to: tower@prep.ai.mit.edu X% X% Hard copies of this button are probably still available. To get a X% button, one must have either donated source code or documentation to X% the GNU Project or make a donation of at least $ 2.00 for each button. X% X% If you wish a hard copy of a gnu button send: X% - a self-addressed, stamped envelope; and X% - either: X% - a reminder of your source or documentation contribution; or X% - a donation payable to the "Free Software Foundation"; and X% - specify which of these different versions you wish: X% Feb 88, Jun 88, Jan 89, Jun 89, Jan 90, Jun 90, Jan 91, X% Jun 91 and/or Jan 92 X% to: L. Tower Jr. X% 36 Porter Street, X% Somerville, MA 02143, USA X% X% This program is available for anonymous ftp X% prep.ai.mit.edu:/u2/emacs/button.N.MM.shar. It is probably available X% in other source archives. X Xerasepage X X% debugging help X%.so ehandler.ps X X% uses {in,out}sidecircletext routines from Adobe Cookbook. X.so circtext.ps X X% center button on 8 1/2" x 11" page X306 396 translate X X% This is a kludge to give better edge resolution. X% Note that postscript's scale command doesn't cut it. X% It scales after the edges are set. X% biggg is set to 2,3,4, 3.7 or 3.9 to make a master that is that much larger. X% The master is reduced that much by the button manufacturer. X% If only 1200 dpi postscript printers were more common ... X/biggg 1 def X X% useful for centering things X/circleguide { X gsave X /radius 82 biggg mul def X .5 setlinewidth X newpath X 0 0 radius 0 360 arc X stroke X grestore X} def X X%circleguide X Xgsave X % define the basic dimensions of the letters X % people are welcome to call this typeface: hornart-deco X /tipangle 30 def X /gta 90 tipangle sub def % g tip angle X /uta 90 tipangle add def % u tip angle X /tiprad 4 biggg mul def X /hornrad 32 biggg mul def X /letsep 8 biggg mul def X /letheight 28 biggg mul def X /letwidth 14 biggg mul def X /letrad 8 biggg mul def X /linewidth 4 biggg mul def X X linewidth setlinewidth X 0 tiprad neg moveto % roughly center X 0 setgray X .1 setflat X X% give us a G ! X /letcenter letwidth letsep add neg def X 1 setlinejoin X 1 setlinecap % wish there was a pointy default! X X newpath X letcenter hornrad tiprad add tiprad 270 gta arc X stroke X 1 setlinejoin X 0 setlinecap X letcenter hornrad tiprad add tiprad gta 270 arcn X stroke X newpath X 0 setlinejoin X 2 setlinecap X newpath X letcenter 0 hornrad 90 270 arc X currentpoint X letrad add letrad 270 0 arc X 0 letheight 2 div rlineto X% letwidth 2 div neg 0 rlineto X /Helvetica-Narrow-Bold findfont linewidth 1.5 mul scalefont setfont X currentpoint X stroke X moveto X (THANX) stringwidth exch linewidth .6 mul add neg exch X 2 mul linewidth .6 mul add neg rlineto X (THANX) show X X X% give us a N ! X newpath X letwidth 2 div neg hornrad neg moveto X 0 letheight rlineto X letwidth letheight neg rlineto X 0 letheight rlineto X currentpoint X stroke X moveto X linewidth .7 mul letheight linewidth 2 mul add neg rmoveto X ('s Not Unix) show X X% give us a U ! X /letcenter letcenter neg def X 1 setlinejoin X 1 setlinecap % wish there was a pointy default! X X newpath X letcenter hornrad tiprad add tiprad 270 uta arcn X stroke X 1 setlinejoin X 0 setlinecap X newpath X stroke X letcenter hornrad tiprad add tiprad uta 270 arc X stroke X 0 setlinejoin X 2 setlinecap X newpath X letcenter 0 hornrad 90 270 arcn X currentpoint X letrad add letrad 270 180 arcn X 0 letheight letrad sub rlineto X currentpoint X stroke X X% what does it spell?!? GNU !! X X% now for the eye! X moveto X letwidth .8 mul letheight .4 mul neg rmoveto X /Courier-Oblique findfont 15 biggg mul scalefont setfont X (@) show X Xgrestore X Xgsave X /Helvetica-Narrow-Bold findfont 5.75 biggg mul scalefont setfont X X (Copyright 1992 Free Software Foundation, Inc.) X 7.5 biggg mul 270 73 biggg mul outsidecircletext X (Anonymous ftp prep.ai.mit.edu:/pub/gnu/button.N.shar, this button's postscript program, which is freely redistributable under the GNU General Public License.) X 7.5 biggg mul 90 73 biggg mul outsidecircletext X Xgrestore Xshowpage END_OF_FILE if test 5199 -ne `wc -c <'button9201.ps'`; then echo shar: \"'button9201.ps'\" unpacked with wrong size! fi # end of 'button9201.ps' fi if test -f 'button9206.ps' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'button9206.ps'\" else echo shar: Extracting \"'button9206.ps'\" \(4364 characters\) sed "s/^X//" >'button9206.ps' <<'END_OF_FILE' X% X% button9206.ps - A GNU Button Program X% X% Copyright 1992 Free Software Foundation X% X% This program is free software; you can redistribute it and/or modify X% it under the terms of the GNU General Public License as published by X% the Free Software Foundation; either version 2, or (at your option) X% any later version. X% X% This program is distributed in the hope that it will be useful, X% but WITHOUT ANY WARRANTY; without even the implied warranty of X% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the X% GNU General Public License for more details. X% X% You should have received a copy of the GNU General Public License X% along with this program; if not, write to the Free Software X% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. X% X% Hard copies of this button were first distributed at the June X% 1992 San Antonio Usenix. They had black lettering on a yellow X% background on a standard 2 1/4" safety pin button. They were X% designed by Leonard H. Tower Jr. who is also the author of this GNU X% Button Program. X% X% Report bugs or improvements to: tower@prep.ai.mit.edu X% X% Hard copies of this button are probably still available. To get a X% button, one must have either donated source code or documentation to X% the GNU Project or make a donation of at least $ 2.00 for each button. X% X% If you wish a hard copy of a gnu button send: X% - a self-addressed, stamped envelope; and X% - either: X% - a reminder of your source or documentation contribution; or X% - a donation payable to the "Free Software Foundation"; and X% - specify how many each of these different versions you wish: X% Feb 88 (white GNU) Jun 88 (yellow GNU) X% Jan 89 (blue GNUer) Jun 89 (green GNUist) X% Jan 90 (yellow thanx GNU) Jun 90 (white text on GNU) @@?? X% Jan 91 (yellow text on GNU)@@?? Jun 91 (white cubist GNU) @@?? X% Jan 92 (yellow cubist GNU) @@?? Jun 92 (yellow GnURU) X% to: L. Tower Jr. X% 36 Porter Street, X% Somerville, MA 02143, USA X% X% This program is available for anonymous ftp X% prep.ai.mit.edu:/u2/emacs/button.N.MM.shar. It is probably available X% in other source archives. X X% This version has this "phrase" centered inside the fine print circle: X% X% ggg g u u r rr u u X% g gg u u rr r u u X% g g nnn u u r u u X% g g n n u u r u u X% g gg n n u uu r u uu X% ggg g n n uuu u r uuu u X% g X% gggg X% X Xerasepage X X% debugging help X.so ehandler.ps X X% uses {in,out}sidecircletext routines from Adobe Cookbook. X.so circtext.ps X X% center button on 8 1/2" x 11" page X306 396 translate X X% This is a kludge to give better edge resolution. X% Note that postscript's scale command doesn't cut it. X% It scales after the edges are set. X% biggg is set to 2,3,4, 3.7 or 3.9 to make a master that is that much larger. X% The master is reduced that much by the button manufacturer. X% If only 1200 dpi postscript printers were more common ... X/biggg 1 def X X% useful for centering button design X/circleguide { X gsave X /radius 82 biggg mul def X .5 setlinewidth X newpath X 0 0 radius 0 360 arc X stroke X grestore X} def X X%circleguide X Xgsave X /guruptsz 54 biggg mul def X /nptsz guruptsz 2 div def X X /Times-Bold findfont nptsz scalefont setfont X /nwidth (n) stringwidth pop def X /nkern nwidth 4 div def X X /Times-Bold findfont guruptsz scalefont setfont X /gwidth (g) stringwidth pop def X /uruwidth (uru) stringwidth pop def X /guruwidth gwidth uruwidth add def X X %center X guruwidth nwidth 2 div add 2 div neg X guruptsz 6 div neg moveto X (g) show X nkern 2 div neg 0 rmoveto X X /Times-Bold findfont nptsz scalefont setfont X (n) show X nkern .7 mul neg 0 rmoveto X X /Times-Bold findfont guruptsz scalefont setfont X (u) show X nkern .3 mul 0 rmoveto X (ru) show Xgrestore X Xgsave X /GNUptsz 14 biggg mul def X /Times-Bold findfont GNUptsz scalefont setfont X (GNU's Not Unix) X GNUptsz 270 63 biggg mul insidecircletext Xgrestore X X/tinyptsz 5.75 biggg mul def X/tinyrad 73 biggg mul def X X/Helvetica-Narrow-Bold findfont tinyptsz scalefont setfont X X(Copyright 1992 Free Software Foundation, Inc.) X tinyptsz 270 tinyrad outsidecircletext X X(Anonymous ftp prep.ai.mit.edu:/pub/gnu/button.N.shar, this button's postscript program, which is freely redistributable under the GNU General Public License.) X tinyptsz 90 tinyrad outsidecircletext X Xshowpage END_OF_FILE if test 4364 -ne `wc -c <'button9206.ps'`; then echo shar: \"'button9206.ps'\" unpacked with wrong size! fi # end of 'button9206.ps' fi if test -f 'button9301.ps' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'button9301.ps'\" else echo shar: Extracting \"'button9301.ps'\" \(4865 characters\) sed "s/^X//" >'button9301.ps' <<'END_OF_FILE' X% X% button9301.ps - A GNU Button Program X% X% Copyright 1993 Free Software Foundation X% X% This program is free software; you can redistribute it and/or modify X% it under the terms of the GNU General Public License as published by X% the Free Software Foundation; either version 2, or (at your option) X% any later version. X% X% This program is distributed in the hope that it will be useful, X% but WITHOUT ANY WARRANTY; without even the implied warranty of X% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the X% GNU General Public License for more details. X% X% You should have received a copy of the GNU General Public License X% along with this program; if not, write to the Free Software X% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. X% X% Hard copies of this button were first distributed at the January X% 1993 San Diego Usenix. They had black lettering on a white X% background on a standard 2 1/4" safety pin button. They were X% designed by Leonard H. Tower Jr. who is also the author of this GNU X% Button Program. X% X% Report bugs or improvements to: tower@prep.ai.mit.edu X% X% Hard copies of this button are probably still available. To get a X% button, one must have either donated source code or documentation to X% the GNU Project or make a donation of at least $ 2.00 for each button. X% X% If you wish a hard copy of a gnu button send: X% - a self-addressed, stamped envelope; and X% - either: X% - a reminder of your source or documentation contribution; or X% - a donation payable to the "Free Software Foundation"; and X% - specify how many each of these different versions you wish: X% Feb 88 (white GNU) Jun 88 (yellow GNU) X% Jan 89 (blue GNUer) Jun 89 (green GNUist) X% Jan 90 (yellow thanx GNU) Jun 90 (white text on GNU) @@?? X% Jan 91 (yellow text on GNU)@@?? Jun 91 (white cubist GNU) @@?? X% Jan 92 (yellow cubist GNU) @@?? Jun 92 (yellow GnURU) X% Jan 93 (white gnu & improved) X% to: L. Tower Jr. X% 36 Porter Street, X% Somerville, MA 02143, USA X% X% This program is available for anonymous ftp X% prep.ai.mit.edu:/u2/emacs/button.N.MM.shar. It is probably available X% in other source archives. X X% This version has this "phrase" centered inside the fine print circle: X% X% ggg g n nnn u u X% g gg nn n u u X% g g n n u u X% g g n n u u X% g gg n n u uu X% ggg g n n uuu u & X% g X% gggg i m p r o v e d X% X% This was inspired by the phrase on the front of the first CD-ROM. X% The phrase and front cover design was created by X% mycroft@gnu.ai.mit.edu (Charles Hannum). X Xerasepage X X% debugging help X.so ehandler.ps X X% uses {in,out}sidecircletext routines from Adobe Cookbook. X.so circtext.ps X X% center button on 8 1/2" x 11" page X306 396 translate X X% This is a kludge to give better edge resolution. X% Note that postscript's scale command doesn't cut it. X% It scales after the edges are set. X% biggg is set to 2,3,4, 3.7 or 3.9 to make a master that is that much larger. X% The master is reduced that much by the button manufacturer. X% If only 1200 dpi postscript printers were more common ... X/biggg 1 def X X% useful for centering button design X/circleguide { X gsave X /radius 82 biggg mul def X .5 setlinewidth X newpath X 0 0 radius 0 360 arc X stroke X grestore X} def X X%circleguide X Xgsave X /gnutext (gnu) def X /gtext (g) def X /amptext (&) def X /improvedtext (improved) def X % The "&" and "improved" are 1/*fudge size of /gnutext X /ampfudge 4 def X /improvedfudge 4 def X /gnuptsz 60 biggg mul def X /improvedptsz gnuptsz improvedfudge div def X /Times-Bold findfont gnuptsz scalefont setfont X %center X /ampwidth amptext stringwidth pop ampfudge div def X /gnuwidth gnutext stringwidth pop def X /gwidth gtext stringwidth pop def X /shiftleft ampwidth 4 div def X /firstlinewidth gnuwidth ampwidth add def X /shiftdown gnuptsz 10 div neg def X firstlinewidth 2 div neg shiftleft add X shiftdown moveto X gnutext show X /Times-Bold findfont gnuptsz ampfudge div scalefont setfont X amptext show X /Times-Bold findfont improvedptsz scalefont setfont X /improvedwidth improvedtext stringwidth pop def X improvedwidth 2 div neg gwidth 1.2 div add X improvedptsz neg shiftdown add moveto X improvedtext show Xgrestore X Xgsave X /GNUptsz 14 biggg mul def X /Times-Bold findfont GNUptsz scalefont setfont X (GNU's Not Unix) X GNUptsz 270 63 biggg mul insidecircletext Xgrestore X X/tinyptsz 5.75 biggg mul def X/tinyrad 73 biggg mul def X X/Helvetica-Narrow-Bold findfont tinyptsz scalefont setfont X X(Copyright 1993 Free Software Foundation, Inc.) X tinyptsz 270 tinyrad outsidecircletext X X(Anonymous ftp prep.ai.mit.edu:/pub/gnu/button.N.shar, this button's postscript program, which is freely redistributable under the GNU General Public License.) X tinyptsz 90 tinyrad outsidecircletext X Xshowpage END_OF_FILE if test 4865 -ne `wc -c <'button9301.ps'`; then echo shar: \"'button9301.ps'\" unpacked with wrong size! fi # end of 'button9301.ps' fi if test -f 'button9306.ps' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'button9306.ps'\" else echo shar: Extracting \"'button9306.ps'\" \(4426 characters\) sed "s/^X//" >'button9306.ps' <<'END_OF_FILE' X% X% button9306.ps - A GNU Button Program X% X% Copyright 1993 Free Software Foundation X% X% This program is free software; you can redistribute it and/or modify X% it under the terms of the GNU General Public License as published by X% the Free Software Foundation; either version 2, or (at your option) X% any later version. X% X% This program is distributed in the hope that it will be useful, X% but WITHOUT ANY WARRANTY; without even the implied warranty of X% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the X% GNU General Public License for more details. X% X% You should have received a copy of the GNU General Public License X% along with this program; if not, write to the Free Software X% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. X% X% Hard copies of this button were first distributed at the June X% 1993 Cincinnati Usenix. They had black lettering on a white X% background on a standard 2 1/4" safety pin button. They were X% designed by Leonard H. Tower Jr. who is also the author of this GNU X% Button Program. X% X% Report bugs or improvements to: tower@prep.ai.mit.edu X% X% Hard copies of this button are probably still available. To get a X% button, one must have either donated source code or documentation to X% the GNU Project or make a donation of at least $ 2.00 for each button. X% X% If you wish a hard copy of a gnu button send: X% - a self-addressed, stamped envelope; and X% - either: X% - a reminder of your source or documentation contribution; or X% - a donation payable to the "Free Software Foundation"; and X% - specify how many each of these different versions you wish: X% Feb 88 (white GNU) Jun 88 (yellow GNU) X% Jan 89 (blue GNUer) Jun 89 (green GNUist) X% Jan 90 (yellow thanx GNU) Jun 90 (white text on GNU) @@?? X% Jan 91 (yellow text on GNU)@@?? Jun 91 (white cubist GNU) @@?? X% Jan 92 (yellow cubist GNU) @@?? Jun 92 (yellow GnURU) X% Jan 93 (white gnu & improved) Jun 93 (white GNUrd) X% to: L. Tower Jr. X% 36 Porter Street, X% Somerville, MA 02143, USA X% X% This program is available for anonymous ftp X% prep.ai.mit.edu:/u2/emacs/button.N.MM.shar. It is probably available X% in other source archives. X X% This version has this "phrase" centered inside the fine print circle: X% X% ggg g n nnn u u X% g gg nn n u u d X% g g n n u u r r d X% g g n n u u rr r ddd X% g gg n n u uu r d d X% ggg g n n uuu u r ddd X% g X% gggg X% X Xerasepage X X% debugging help X.so ehandler.ps X X% uses {in,out}sidecircletext routines from Adobe Cookbook. X.so circtext.ps X X% center button on 8 1/2" x 11" page X306 396 translate X X% This is a kludge to give better edge resolution. X% Note that postscript's scale command doesn't cut it. X% It scales after the edges are set. X% biggg is set to 2,3,4, 3.7 or 3.9 to make a master that is that much larger. X% The master is reduced that much by the button manufacturer. X% If only 1200 dpi postscript printers were more common ... X/biggg 1 def X X% useful for centering button design X/circleguide { X gsave X /radius 82 biggg mul def X .5 setlinewidth X newpath X 0 0 radius 0 360 arc X stroke X grestore X} def X X%circleguide X Xgsave X /gnutext (gnu) def X /gtext (g) def X /rdtext (rd) def X % The "rd" are 1/*fudge size of /gnutext X /rdfudge 2 def X /gnuptsz 55 biggg mul def X /Times-Bold findfont gnuptsz scalefont setfont X %center X /rdwidth rdtext stringwidth pop rdfudge div def X /gnuwidth gnutext stringwidth pop def X /gwidth gtext stringwidth pop def X /shiftleft rdwidth 15 div def X /firstlinewidth gnuwidth rdwidth add def X /shiftdown gnuptsz 8 div neg def X firstlinewidth 2 div neg shiftleft add X shiftdown moveto X gnutext show X /Times-Bold findfont gnuptsz rdfudge div scalefont setfont X rdtext show Xgrestore X Xgsave X /GNUptsz 14 biggg mul def X /Times-Bold findfont GNUptsz scalefont setfont X (GNU's Not Unix) X GNUptsz 270 63 biggg mul insidecircletext Xgrestore X X/tinyptsz 5.75 biggg mul def X/tinyrad 73 biggg mul def X X/Helvetica-Narrow-Bold findfont tinyptsz scalefont setfont X X(Copyright 1993 Free Software Foundation, Inc.) X tinyptsz 270 tinyrad outsidecircletext X X(Anonymous ftp prep.ai.mit.edu:/pub/gnu/button.N.shar, this button's postscript program, which is freely redistributable under the GNU General Public License.) X tinyptsz 90 tinyrad outsidecircletext X Xshowpage END_OF_FILE if test 4426 -ne `wc -c <'button9306.ps'`; then echo shar: \"'button9306.ps'\" unpacked with wrong size! fi # end of 'button9306.ps' fi if test -f 'button9311.ps' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'button9311.ps'\" else echo shar: Extracting \"'button9311.ps'\" \(4992 characters\) sed "s/^X//" >'button9311.ps' <<'END_OF_FILE' X% X% button9311.ps - A GNU Button Program X% X% Copyright 1993 Free Software Foundation X% X% This program is free software; you can redistribute it and/or modify X% it under the terms of the GNU General Public License as published by X% the Free Software Foundation; either version 2, or (at your option) X% any later version. X% X% This program is distributed in the hope that it will be useful, X% but WITHOUT ANY WARRANTY; without even the implied warranty of X% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the X% GNU General Public License for more details. X% X% You should have received a copy of the GNU General Public License X% along with this program; if not, write to the Free Software X% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. X% X% Hard copies of this button were first distributed at the December X% 1993 GNU Symposium in Tokyo. They had black lettering on a yellow X% background on a standard 2 1/4" safety pin button. They were X% designed by Leonard H. Tower Jr. who is also the author of this GNU X% Button Program. X% X% Report bugs or improvements to: tower@prep.ai.mit.edu X% X% Hard copies of this button are probably still available. To get a X% button, one must have either donated source code or documentation to X% the GNU Project or make a donation of at least $ 2.00 for each button. X% X% If you wish a hard copy of a gnu button send: X% - a self-addressed, stamped envelope; and X% - either: X% - a reminder of your source or documentation contribution; or X% - a donation payable to the "Free Software Foundation"; and X% - specify how many each of these different versions you wish: X% Feb 88 (white GNU) Jun 88 (yellow GNU) X% Jan 89 (blue GNUer) Jun 89 (green GNUist) X% Jan 90 (yellow thanx GNU) Jun 90 (white text on GNU) @@?? X% Jan 91 (yellow text on GNU)@@?? Jun 91 (white cubist GNU) @@?? X% Jan 92 (yellow cubist GNU) @@?? Jun 92 (yellow GnURU) X% Jan 93 (white gnu & improved) Jun 93 (white GNUrd) X% Nov 93 (yellow happy gnu year) X% to: L. Tower Jr. X% 36 Porter Street, X% Somerville, MA 02143, USA X% X% This program is available for anonymous ftp X% prep.ai.mit.edu:/u2/emacs/button.N.MM.shar. It is probably available X% in other source archives. X X% This version has this "phrase" centered inside the fine print circle: X% X% happy u u X% n nnn u u X% ggg g nn n u u X% g gg n n u u X% g g n n u uu X% g g n n uuu u X% g gg n n X% ggg g year! X% g X% gggg X% X Xerasepage X X% debugging help X%.so ehandler.ps X X% uses {in,out}sidecircletext routines from Adobe Cookbook. X.so circtext.ps X X% center button on 8 1/2" x 11" page X306 396 translate X X% This is a kludge to give better edge resolution. X% Note that postscript's scale command doesn't cut it. X% It scales after the edges are set. X% biggg is set to 2,3,4, 3.7 or 3.9 to make a master that is that much larger. X% The master is reduced that much by the button manufacturer. X% If only 1200 dpi postscript printers were more common ... X/biggg 1 def X X% useful for centering button design X/circleguide { X gsave X /radius 82 biggg mul def X .5 setlinewidth X newpath X 0 0 radius 0 360 arc X stroke X grestore X} def X X%circleguide X X/gnutext (gnu) def X/gntext (gn) def X/gtext (g) def X/ntext (n) def X/utext (u) def X/happytext (happy) def X/htext (y) def X/yeartext (year) def X/exclaimtext (!) def X% The "happy and year" are 1/*fudge size of /gnutext X/hyfudge 6 def X/hyvertadj 6 def X/gnuptsz 55 biggg mul def X/hyptsz gnuptsz hyfudge div def X X/Times-Bold findfont gnuptsz scalefont setfont X/gnuwidth gnutext stringwidth pop def X/gnwidth gntext stringwidth pop def X/nwidth ntext stringwidth pop def X/nukern nwidth 9 div def X X/gotostart { X /shiftright nukern 1.5 mul neg def X /shiftdown gnuptsz hyvertadj div neg def X /shiftup shiftdown neg def X gnuwidth 2 div neg shiftright add X shiftdown 1.4 mul moveto X} def X Xgsave X gotostart X gtext show X nukern 2 mul shiftup rmoveto X ntext show X nukern shiftup rmoveto X utext show Xgrestore X X/Times-Bold findfont hyptsz scalefont setfont X/hwidth htext stringwidth pop def X/hywidthadj hwidth 2 div def X Xgsave X gotostart X hywidthadj gnuptsz shiftdown 2.6 mul add rmoveto X happytext show Xgrestore X Xgsave X gotostart X hywidthadj gnwidth add nukern 4 mul add shiftup rmoveto X yeartext show X hywidthadj 4 div 0 rmoveto X exclaimtext show Xgrestore X Xgsave X /GNUptsz 14 biggg mul def X /Times-Bold findfont GNUptsz scalefont setfont X (GNU's Not Unix) X GNUptsz 270 63 biggg mul insidecircletext Xgrestore X X/tinyptsz 5.75 biggg mul def X/tinyrad 73 biggg mul def X X/Helvetica-Narrow-Bold findfont tinyptsz scalefont setfont X X(Copyright 1993 Free Software Foundation, Inc.) X tinyptsz 270 tinyrad outsidecircletext X X(Anonymous ftp prep.ai.mit.edu:/pub/gnu/button.N.shar, this button's postscript program, which is freely redistributable under the GNU General Public License.) X tinyptsz 90 tinyrad outsidecircletext X Xshowpage END_OF_FILE if test 4992 -ne `wc -c <'button9311.ps'`; then echo shar: \"'button9311.ps'\" unpacked with wrong size! fi # end of 'button9311.ps' fi if test -f 'button9406.ps' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'button9406.ps'\" else echo shar: Extracting \"'button9406.ps'\" \(4495 characters\) sed "s/^X//" >'button9406.ps' <<'END_OF_FILE' X% X% button9406.ps - A GNU Button Program X% X% Copyright 1994 Free Software Foundation X% X% This program is free software; you can redistribute it and/or modify X% it under the terms of the GNU General Public License as published by X% the Free Software Foundation; either version 2, or (at your option) X% any later version. X% X% This program is distributed in the hope that it will be useful, X% but WITHOUT ANY WARRANTY; without even the implied warranty of X% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the X% GNU General Public License for more details. X% X% You should have received a copy of the GNU General Public License X% along with this program; if not, write to the Free Software X% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. X% X% Hard copies of this button were first distributed at the June X% 1994 Boston USENIX. They had black lettering on a green X% background on a standard 2 1/4" safety pin button. They were X% designed by Leonard H. Tower Jr. who is also the author of this GNU X% Button Program. X% X% Report bugs or improvements to: tower@prep.ai.mit.edu X% X% Hard copies of this button are probably still available. To get a X% button, one must have either donated source code or documentation to X% the GNU Project or make a donation of at least $ 2.00 for each button. X% X% If you wish a hard copy of a gnu button send: X% - a self-addressed, stamped envelope; and X% - either: X% - a reminder of your source or documentation contribution; or X% - a donation payable to the "Free Software Foundation"; and X% - specify how many each of these different versions you wish: X% Feb 88 (white GNU) Jun 88 (yellow GNU) X% Jan 89 (blue GNUer) Jun 89 (green GNUist) X% Jan 90 (yellow thanx GNU) Jun 90 (white text on GNU) @@?? X% Jan 91 (yellow text on GNU)@@?? Jun 91 (white cubist GNU) @@?? X% Jan 92 (yellow cubist GNU) @@?? Jun 92 (yellow GnURU) X% Jan 93 (white gnu & improved) Jun 93 (white GNUrd) X% Nov 93 (yellow happy gnu year) Jun 94 (green GNUisance) X% to: L. Tower Jr. X% 36 Porter Street, X% Somerville, MA 02143, USA X% X% This program is available for anonymous ftp X% prep.ai.mit.edu:/u2/emacs/button.N.MM.shar. It is probably available X% in other source archives. X X% This version has this "phrase" centered inside the fine print circle: X% X% ggg g n nnn u u X% g gg nn n u u X% g g n n u u X% g g n n u u X% g gg n n u uu X% ggg g n n uuu u i s a n c e X% g X% gggg X% Xerasepage X X% debugging help X%.so ehandler.ps X X% uses {in,out}sidecircletext routines from Adobe Cookbook. X.so circtext.ps X X% center button on 8 1/2" x 11" page X306 396 translate X X% This is a kludge to give better edge resolution. X% Note that postscript's scale command doesn't cut it. X% It scales after the edges are set. X% biggg is set to 2,3,4, 3.7 or 3.9 to make a master that is that much larger. X% The master is reduced that much by the button manufacturer. X% If only 1200 dpi postscript printers were more common ... X/biggg 1 def X X% useful for centering button design X/circleguide { X gsave X /radius 82 biggg mul def X .5 setlinewidth X newpath X 0 0 radius 0 360 arc X stroke X grestore X} def X X%circleguide X Xgsave X /gnutext (gnu) def X /gtext (g) def X /isancetext (isance) def X % The "isance" are 1/*fudge size of /gnutext X /isancefudge 4 def X /gnuptsz 55 biggg mul def X /Times-Bold findfont gnuptsz scalefont setfont X %center X /isancewidth isancetext stringwidth pop isancefudge div def X /gnuwidth gnutext stringwidth pop def X /gwidth gtext stringwidth pop def X /shiftleft isancewidth 10 div def X /firstlinewidth gnuwidth isancewidth add def X /shiftdown gnuptsz 9 div neg def X firstlinewidth 2 div neg shiftleft add X shiftdown moveto X gnutext show X /Times-Bold findfont gnuptsz isancefudge div scalefont setfont X isancetext show Xgrestore X Xgsave X /GNUptsz 14 biggg mul def X /Times-Bold findfont GNUptsz scalefont setfont X (GNU's Not Unix) X GNUptsz 270 63 biggg mul insidecircletext Xgrestore X X/tinyptsz 5.75 biggg mul def X/tinyrad 73 biggg mul def X X/Helvetica-Narrow-Bold findfont tinyptsz scalefont setfont X X(Copyright 1994 Free Software Foundation, Inc.) X tinyptsz 270 tinyrad outsidecircletext X X(Anonymous ftp prep.ai.mit.edu:/pub/gnu/button.N.shar, this button's postscript program, which is freely redistributable under the GNU General Public License.) X tinyptsz 90 tinyrad outsidecircletext X Xshowpage END_OF_FILE if test 4495 -ne `wc -c <'button9406.ps'`; then echo shar: \"'button9406.ps'\" unpacked with wrong size! fi # end of 'button9406.ps' fi if test -f 'tshirt.morin.ps' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tshirt.morin.ps'\" else echo shar: Extracting \"'tshirt.morin.ps'\" \(1087 characters\) sed "s/^X//" >'tshirt.morin.ps' <<'END_OF_FILE' X% X% gts.ps - GNU t-shirt design X% X% This program may be freely redistributed under X% the terms of the GNU General Public License. X% X% Copyright 1988 Free Software Foundation X% X% Uses {in,out}sidecircletext routines from Adobe Cookbook. X X.so circtext.ps X X/inch { 72 mul } def X X/cshow { X text stringwidth pop 2 div neg points 3 div neg moveto X text show X} def X X/radius 3.5 inch def X4.25 inch 5.5 inch translate X Xgsave X /text (UNIX) def X /points 150 def X /Times-Bold findfont points scalefont setfont X cshow Xgrestore X X/points 27 def X/Times-Roman findfont points scalefont setfont X Xgsave X points 1.5 mul setlinewidth X newpath X 0 0 radius points 3 div add 0 360 arc X stroke X 45 rotate X newpath X radius neg 0 moveto X radius 0 lineto X stroke X 1 setgray X /text (GNU's Not Unix) def X cshow Xgrestore X X1 setgray X X(This t-shirt design may be freely redistributed\ X under the terms of the GNU General Public License.) X points 90 radius outsidecircletext X X(Copyright 1988 Free Software Foundation) X points 270 radius points 2 div add insidecircletext X X1 { copypage } repeat END_OF_FILE if test 1087 -ne `wc -c <'tshirt.morin.ps'`; then echo shar: \"'tshirt.morin.ps'\" unpacked with wrong size! fi # end of 'tshirt.morin.ps' fi if test -f 'button8806gnued.ps' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'button8806gnued.ps'\" else echo shar: Extracting \"'button8806gnued.ps'\" \(3567 characters\) sed "s/^X//" >'button8806gnued.ps' <<'END_OF_FILE' X% X% button8806gnued.ps - A GNU Button Program X% X% This program may be freely redistributed under the terms of the GNU X% General Public License. X% X% Copyright 1988, 1992 Free Software Foundation X% X% This GNU Button program is distributed in the hope that it will be X% useful, but WITHOUT ANY WARRANTY. No author or distributor accepts X% responsibility to anyone for the consequences of using it or for X% whether it serves any particular purpose or works at all, unless he X% says so in writing. Refer to the GNU General Public License for X% full details. X% X% Everyone is granted permission to copy, modify and redistribute this X% GNU Button Program, but only under the condaitions described in the X% GNU General Public License. A copy of this license is supposed to X% have been given to you along with the GNU Button Program so you can X% know your rights and responsibilities. It should be in a file named X% COPYING. Among other things, the copyright notice and this notice X% must be preserved on all copies. X% X% Hard copies of this button were first distributed at the June 1988 X% SanFrancisco Usenix. They had black Lettering on a yellow X% background on a standard 2 1/4" safety pin button. They were X% designed by Leonard H. Tower Jr. who is also the author of this GNU X% Button Program. X% X% Report bugs or improvements to: tower@prep.ai.mit.edu X% X% Hard copies of this button are probably still available. One much X% have either donated source code or documentation to the GNU Project X% or make a donation of at least $ 2.00 for each button. X% X% If you wish a hard copy of a gnu button send: X% - a self-addressed, stamped envelope; and X% - either: X% - a reminder of your source or documentation contribution; or X% - a donation payable to the "Free Software Foundation"; and X% - specify whether you want the Feb 88 or June 88 button or both. X% to: L. Tower Jr. X% 36 Porter Street X% Somerville, MA 02143, USA X% X% This program is available for anonymous ftp in X% prep.ai.mit.edu:/u2/emacs/button.N.MM.shar. It is probably X% available in other source archives. X% X% Modified Nov-90 by trent@cs.pdx.edu X% an image of a Gnu (the animal is in the center instead X% of the word "GNU". Some guy posted this image (as a Sun Icon) X% on gnu.emacs a while back, but I don't know who anymore. X% X X% Uses {in,out}sidecircletext routines from Adobe Cookbook. X.so circtext.ps X.so gnu.ps X X% center button on 8 1/2" x 11" page X306 396 translate X X% This is a kludge to give better edge resolution. X% Note that postscript's scale command doesn't cut it. X% It scales after the edges are set. X% biggg is set to 2,3, or 4 to make a master that is that much larger. X% The master is reduced that much by the button manufacturer. X% If only 1200 dpi postscript printers were more common ... X/biggg 1 def X Xgsave X 70 biggg mul 2 div neg dup translate X 72 biggg mul 72 biggg mul scale X 64 64 true [ 64 0 0 -64 0 64 ] {Gnu} imagemask Xgrestore X/Times-Bold findfont 14 biggg mul scalefont setfont X(GNU's Not Unix) X 14 biggg mul 270 64 biggg mul insidecircletext X/Times-Roman findfont 7.5 biggg mul scalefont setfont X(Copyright 1988 Free Software Foundation) X 7.5 biggg mul 270 75 biggg mul insidecircletext X(This button design may be freely redistributed under the terms of the GNU General Public License.) X 7.5 biggg mul 90 69 biggg mul outsidecircletext X/Times-Roman findfont 7 biggg mul scalefont setfont X(Anonymous ftp this button's postscript program from prep.ai.mit.edu:/u/emacs/button.N.MM.shar.) X 7 biggg mul 90 61 biggg mul outsidecircletext Xshowpage END_OF_FILE if test 3567 -ne `wc -c <'button8806gnued.ps'`; then echo shar: \"'button8806gnued.ps'\" unpacked with wrong size! fi # end of 'button8806gnued.ps' fi if test -f 'buttonELPF.ps' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'buttonELPF.ps'\" else echo shar: Extracting \"'buttonELPF.ps'\" \(6918 characters\) sed "s/^X//" >'buttonELPF.ps' <<'END_OF_FILE' X%%Return-Path: X%%Date: Tue, 25 Sep 90 21:22 MET DST X%%From: Johan Vromans X%%X-From: Multihouse, Gouda, The Netherlands X%%X-Committed-To: X/Open compliant software and products X%%To: European League for Programming Freedom X%%Subject: ELPF button (PostScript) X%%Reply-To: Johan Vromans X%%X-Mailer: GNU Emacs 18.55.4 X%%Original-Sender: jv <@hp4nl.nluug.nl:jv@mh.nl> X%%Sender: elpf-request@cstr.edinburgh.ac.uk X%% X%%------ cut here --------- X% circtext.ps - render text strings around arcs X% X% From Adobe Cookbook X% Program: Circular Text Number: 16 X%----------------------------------------------------------------------------- X% X/outsidecircletext % outsidecircletext places text X { $circtextdict begin % around a circular arc. The X /radius exch def % baseline of the text is placed X /centerangle exch def % on the outside of the X /ptsize exch def % circumference of the circle in a X /str exch def % clockwise fashion. X % outsidecircletext takes four X % arguments: the string to be X % printed, the point size of the X % font being used, the angle X % around which the text should be X % centered and the radius of the X % circular arc. It assumes that X % the center of the circle is at X % (0,0). X /xradius radius ptsize 4 div add % A radius that is slightly larger X def % than the one specified is used X % for computations but not for X % placement of characters. Using a X % slightly larger radius in the X % computations places the X % characters closer together, X % otherwise the interletter X % spacing is too loose. X gsave % Save the current graphics state. X centerangle str findhalfangle % Find out how much angle the X add rotate % string subtends and then rotate X % to the appropriate starting X % position for showing the string. X % (The positive x-axis now X % intersects the circle where the X % text should start.) X str X { /charcode exch def % For each character in the X ( ) dup 0 charcode put % string, determine its position X outsideshowcharandrotate % on the circular arc and show it. X } forall X grestore % Return to the former graphics X % state. X end X } def X X/insidecircletext % insidecircletext works very X { $circtextdict begin % similarly to outsidecircletext X /radius exch def % except that the baseline of the X /centerangle exch def % text is placed on the inside of X /ptsize exch def % the circumference of the circle X /str exch def % in a counter-clockwise fashion. X % insidecircletext takes the same X % four arguments as X % outsidecircletext. X X /xradius radius ptsize 3 div sub % Here we use a radius which is X def % slightly smaller than the X % desired radius for computations. X % This forces the characters to be X % placed farther apart to avoid X % overlapping. X gsave X centerangle str findhalfangle X sub rotate X str X { /charcode exch def X ( ) dup 0 charcode put X insideshowcharandrotate X } forall X grestore X end X } def X/$circtextdict 16 dict def X$circtextdict begin X /findhalfangle % findhalfangle takes one X { stringwidth pop 2 div % argument, a string, and finds X 2 xradius mul pi mul div 360 mul % the angle subtended by that X } def % string. It leaves the value of X % half of that angle on the stack. X % The angle is found by computing X % the ratio of the width of the X % string to the circumference of X % the circle and then converting X % that value to degrees. X X /outsideshowcharandrotate % This procedure shows a character X { /char exch def % upright on the outside of the X /halfangle char findhalfangle def % circumference and then rotates X gsave % clockwise by the amount of angle X % subtended by the width of the X % character. X halfangle neg rotate % Rotate clockwise by half the X radius 0 translate % angle taken up by the width of X % the character and translate out X % to the circumference. X -90 rotate % Position character upright on X % outside of circumference. X char stringwidth pop 2 div neg % Center the character around the X % origin. X 0 moveto char show X grestore X halfangle 2 mul neg rotate % Rotate clockwise by the amount X } def % of angle subtended by the width X % of the character. X X /insideshowcharandrotate % insideshowcharandrotate operates X { /char exch def % in a similar manner to X /halfangle char findhalfangle def % outsideshowcharandrotate except X gsave % that the direction of rotation X halfangle rotate % is counter-clockwise and the X radius 0 translate % characters are placed upright on X 90 rotate % the inside of the circle. X char stringwidth pop 2 div neg X 0 moveto char show X grestore X halfangle 2 mul rotate X } def X X /pi 3.1415923 def Xend X% center button on 8 1/2" x 11" page X306 396 translate X X% This is a kludge to give better edge resolution. X% Note that postscript's scale command doesn't cut it. X% It scales after the edges are set. X% biggg is set to 2,3, or 4 to make a master that is that much larger. X% The master is reduced that much by the button manufacturer. X% If only 1200 dpi postscript printers were more common ... X/biggg 1 def X Xgsave X /gnustar (ELPF) def X /gnustpt 35 biggg mul def X /Times-Bold findfont gnustpt scalefont setfont X %center X gnustar stringwidth pop 2 div neg gnustpt 3 div neg moveto X gnustar show Xgrestore X/Times-Bold findfont 14 biggg mul scalefont setfont X(European League for Programming Freedom) X 14 biggg mul 270 66 biggg mul insidecircletext X/Times-Roman findfont 12 biggg mul scalefont setfont X(elpf@cstr.ed.ac.uk) X 7.5 biggg mul 90 60 biggg mul outsidecircletext Xcopypage X%%-------- cut here --------- X%% X%% Johan X%% X%% X%% END_OF_FILE if test 6918 -ne `wc -c <'buttonELPF.ps'`; then echo shar: \"'buttonELPF.ps'\" unpacked with wrong size! fi # end of 'buttonELPF.ps' fi if test -f 'shar-it-up.14.0' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'shar-it-up.14.0'\" else echo shar: Extracting \"'shar-it-up.14.0'\" \(407 characters\) sed "s/^X//" >'shar-it-up.14.0' <<'END_OF_FILE' Xshar README COPYING-1 COPYING \ X rps ehandler.ps \ X circtext.ps pathtext.ps gnu.ps \ X \ X button8802.ps button8806.ps \ X button8901.ps button8906.ps \ X button9001.ps button9006.ps \ X button9101.ps button9106.ps \ X button9201.ps button9206.ps \ X button9301.ps button9306.ps button9311.ps \ X button9406.ps \ X tshirt.morin.ps \ X button8806gnued.ps \ X buttonELPF.ps \ X shar-it-up.14.0 \ X > ../button.14.0.shar END_OF_FILE if test 407 -ne `wc -c <'shar-it-up.14.0'`; then echo shar: \"'shar-it-up.14.0'\" unpacked with wrong size! fi chmod +x 'shar-it-up.14.0' # end of 'shar-it-up.14.0' fi echo shar: End of shell archive. exit 0