Archive-name: postscript/sources
Last-modified: 1994/07/07
Version: 1.12

                          -- PostScript Sources -- 

                  Introduction to comp.sources.postscript 

                  (the comp.sources.postscript FAQ v1.12) 

                             Jonathan Monsarrat 

                      postscript-request@cs.brown.edu 






                     This FAQ is formatted as a digest. 

                Most news readers can skip from one question 

                to the next by pressing control-G. GNUs uses 

                   C-c C-n to skip to the next question. 


    To contribute sources, read the section ``Submitting Sources''. 

    Newsgroup-related mail that is not a submission should be sent to 
    me at postscript-request@cs.brown.edu. 

    Related FAQs: comp.lang.postscript, comp.sources.misc, comp.text, 
    comp.text.tex, comp.fonts, comp.graphics. 

    The comp.sources.postscript archives are available by ftp to 
    ftp.sterling.com in /usenet/comp.sources.postscript/ or 
    ftp.ips.cs.tu-bs.de in /usenet/comp.sources.postscript. There is an 
    index in the last section of this FAQ. 

    This FAQ and the indexes are available by anonymous ftp to 
    wilma.cs.brown.edu:pub/comp.sources.postscript. You can get the 
    comp.lang.postscript FAQ by anonymous ftp to 
    wilma.cs.brown.edu:pub/comp.lang.postscript. Both come in ASCII, 
    LaTeX, DVI, and PostScript formats. 

    Table of Contents 

  
      1 About comp.sources.postscript 
      2 What to Expect 
      3 Getting Sources 
         3.1 How to Get a Program from Usenet 
         3.2 Using the Comp.sources.postscript Index and Archive 
         3.3 Using the PostScript interpreters and utilities index
         3.4 How to Display PostScript 
         3.5 How to Report Bugs 
      4 Submitting Sources 
         4.1 Content of Comp.Sources.Postscript 
         4.2 Where to Post your Source 
         4.3 Guidelines 
         4.4 Copyright 
         4.5 Index and Submission Information 
         4.6 How to Submit a Program 
         4.7 Header Lines for Your Posting 
         4.8 After Posting 
      5 PostScript Interpreters and Utilities
         5.1 How can I find a program?
         5.2 How can I browse through PostScript programs?
         5.3 Keywords
         5.4 Interpreters
         5.5 Utilities
      6 comp.sources.postscript Index to Volume 1
      7 Acknowledgements
  

    1 About comp.sources.postscript 

    This moderated newsgroup is for the distribution of source code for 
    utilities and pictures in PostScript, and for PostScript-related 
    programs. 

    You can post programs here, but they won't show up right away. All 
    postings to the newsgroup get sent to me, the moderator, for 
    approval. Then the sources get tested, packaged, and posted. All 
    other posts (such as requests and discussion) will be returned to 
    the sender. comp.lang.postscript is the Usenet newsgroup for 
    discussions. comp.sources.d is the Usenet newsgroup for sources 
    requests. 


    2 What to Expect 

    On comp.sources.postscript you will find utilities (in PostScript 
    and other languages), clip art, fonts, and examples of PostScript 
    programming. All pictures in PostScript are also programs, so when 
    I say program or source throughout this document, think ``picture 
    or utility''. 


    3 Getting Sources 

    There are three ways to get a program from this group: 


    * directly from Usenet postings, 

    * through the comp.sources.postscript index and archive, 

    * and through the PostScript interpreters and utilities index. 


    3.1 How to Get a Program from Usenet 

    Each posting in comp.sources.postscript is called an ``issue''. 
    There are generally 100 to 125 issues in a volume. The division is 
    arbitrary. There are three types of articles in 
    comp.sources.postscript: source postings, informational postings, 
    and the monthly summarized request list. They can be distinguished 
    by the subject line. 

  
    Subject:  v02INF1: PostScript Sources monthly FAQ v1.00 03-03-93
  
    This first word in the title identifies this as the first 
    informational posting of volume one. Similarly, the subject line 
    shown below: 

  
    Subject: v02i072: schlep - PostScript interpreter in PostScript, Part01/02
  
    identifies this as the 72nd source article in Volume 1. In the 
    above example, the Part01/02 indicates that this is the first part 
    of a two part posting. The first few lines of an article after the 
    USENET required headers are the auxiliary headers that look like 
    this: 

  
     Submitted-by: j_random_hacker@athena.mit.edu (J. Arthur Random)
     Posting-number: Volume 1, Issue 72
     Archive-name: schlep/part01
  
    The ``Submitted-by'' line in each issue is the author of the 
    program. If you have comments about an issue published in 
    comp.sources.postscript, this is the person to contact. 

    The ``Archive-name'' is the official name of this source in the 
    archive. 

    All source postings are treated as multi-part postings, which are 
    archived in a subdirectory within the volume directory. Postings 
    have names that look like this: 

  
      Source posting
          Archive-name: schlep/part01
   
      Patch posting
          Archive-name: schlep/patch01
  
    Informational (INF) postings, such as the posting you are currently 
    reading, are not stored in a subdirectory as are source postings. 
    INF postings have archive names such as indx33v02-07 and 
    patchlog33. From an archiving perspective, archive names for all 
    INFormational postings are specified so as to store the INF 
    postings directly in the volume's base directory. Archive names for 
    source postings are specified so as to store the sources in 
    subdirectories within the volume's base directory. 

    When we start having patches, I'll add information here about 
    patches. They'll look like the ones in comp.sources.misc. 

    The Environment: auxiliary header line lists the language and 
    operating system requirements for the program. Check this line 
    before taking the time to unpack a posting, to make sure you will 
    be able to run the program. 

  
      Environment: syntax
          Environment: Keyword [, keyword ..] 
   
      Environment: example
          Environment: PostScript, GhostScript, PBMPLUS, C++
  
    The keyword's usage is case insensitive. There is also a not 
    indicator (e.g. !AIX) so that the moderator can specify that the 
    package runs on everything but the specified keyword. 

    The following is a list of keywords used within articles that have 
    been posted to comp.sources.postscript and their meanings. Keywords 
    are added to this list on a first-use basis. 


    ANSI C 
      - Runs in the C programming language. ANSI standard C. 

    PostScript 
      - Requires a postscript printer/viewer. 

    UNIX 
      - as far as I know, operates on any unix system 


    3.2 Using the Comp.sources.postscript Index and Archive 

    The first comp.sources.postscript index will be posted next month. 
    By then, there should be an archive on ftp.uu.net, probably in 
    /usenet/comp.sources.postscript. If you decide to archive the 
    group, please let me know so that I can inform people that your 
    archive exists. 


    3.3 Using the PostScript interpreters and utilities index 

    This index lists all know PostScript programs, regardless of 
    whether they have been posted to comp.sources.postscript. Unlike 
    the one-line descriptions of the comp.sources.postscript index, 
    this index contains full descriptions and references. Look in the 
    index itself for where to get the programs. 

    You can find this index in the last section of this FAQ. 


    3.4 How to Display PostScript 

    If the program is a PostScript picture, just send it to a 
    PostScript printer, or view it on screen with a PostScript 
    interpreter. If you have no PostScript printer or interpreter, I 
    recommend using GhostScript, which is free and reliable. 
    GhostScript runs on MS-DOS, UNIX, Macintosh, VMS, X windows, and 
    the Atari-ST. On the Amiga, use Post. Check the PostScript 
    interpreters and utilities index for more information about these 
    previewers. 


    3.5 How to Report Bugs 

    To report bugs, contact the person listed in the Submitted-by: 
    header. If the bug is important, post also to comp.sources.bugs so 
    that other people will learn about it. If the bug makes the program 
    unusable, write me so that I can get the author to correct it and 
    have a new version posted. 

    4 Submitting Sources 

    If you'd like to submit a PostScript source, thank you! Please read 
    this section of happy hints first. The benefits of submitting your 
    program include: free archiving and distribution, testing (not by 
    me, but by readers), and the name recognition you deserve for 
    bringing free software to the world. 

    Even if you post your program somewhere else, or if it is 
    commercial or shareware, you should still write me with a 
    description of the program for the PostScript interpreters and 
    utilities index, which lists everything in the PostScript world. 


    4.1 Content of Comp.Sources.Postscript 

    This newsgroup is for posting programs written in PostScript as 
    well as PostScript-related programs written in other languages. 
    These programs could be utilities, fonts, or graphic images of use 
    to a wide audience. 


    Clip Art: 
      Hand-made PostScript programs, converted binaries, or the machine 
      generated output from drawing tools, representing a graphic 
      image. 

    Utilities: 
      Programs written in PostScript, or those written in other 
      languages that either generate or operate on PostScript programs. 

    Examples: 
      "How-to" examples are encouraged. 

    Fonts: 
      Fonts that can be used with the PostScript language. This would 
      include both Type 1 and Type 3 fonts. Since TrueType fonts can't 
      interact with PostScript, that would preclude them. 

    Specific information, such as a new weathermap in PostScript posted 
    daily, is more like a binary than a source, and is not appropriate. 
    Also, text documents formatted in PostScript are not appropriate. 


    4.2 Where to Post your Source 

    If you are unsure where to post your program, the closest 
    newsgroups to comp.lang.postscript are: 


    comp.sources.misc 
      will accept source under any programming language, and has a wide 
      distribution and a large audience. 

    alt.sources 
      is an unmoderated source group, which would allow you to 
      instantly post your source. Unfortunately, it is not as widely 
      read because alt.* groups are not available at many sites. 

    comp.sources.unix 
      accepts UNIX programs of all kinds. 

    comp.lang.postscript 
      is a fine newsgroup to post an example program that aids 
      discussion or answers a question, if it is small (a page or two). 
      However, please consider posting to comp.sources.postscript, as a 
      way to have your example archived and available to help people in 
      the future. 

    If you have a previously posted program, it is probably best to 
    continue posting it to the original newsgroup, which is where your 
    current users will expect to find it. I can put a reference to your 
    program in the PostScript interpreters and utilities index. Of 
    course, if you do decide to switch newsgroups, your program will be 
    welcome here. 

    Shareware will not be accepted. Try posting to alt.sources or 
    comp.sources.misc, and give me a reference to place in the 
    PostScript interpreters and utilities index. Alternatively, 
    consider making your program free. 

    Please don't send me executables. There are comp.binaries.* 
    newsgroups for that. Only send binaries if they are important to 
    the program and cannot be sent in source format. If your program 
    goes along with a song or startup picture, its OK to include the 
    uuencoded song or picture binary. 


    4.3 Guidelines 

    If your program is a picture, please consider Encapsulated 
    PostScript and Document Structuring Convention conformance. Little 
    wood elves will visit you in your sleep and thank you for it. You 
    can learn about these things from the comp.lang.postscript FAQ. 
    There are tools which make conformance easy, too. You are welcome 
    to consider a preview bitmap, which would make an EPS file into an 
    EPSI file. 

    Well-commented code is encouraged. It will allow others to learn 
    from your examples, and to make improvements to the code that you 
    can use. Thousands of people who do not know you will have their 
    only contact with you through your program. It's worth making a 
    good impression. 

    It would be nice if you included a Makefile, man page (or other 
    documentation), a README file which describes the project and what 
    each file does. 

    If your program is an example of PostScript programming, it should 
    actually do something. An example of centering a string should be a 
    program that actually centers a string. 

    Similarly, if you submit a library, please include example files 
    which use the library. 

    You must be (or have permission from) the author of the program you 
    submit. 


    4.4 Copyright 

    Your program should have an explicit copyright. If you don't 
    believe in copyrights, then protect that belief with a copyright 
    directed towards free software. Otherwise, someone else may steal 
    your program and claim authorship. 

    Something like the following might be appropriate: 


            Copyright (C) 1993, J. Arthur Random 
            Permission to use and modify this software and its 
            documentation for any purpose other than its incorporation 
            into a commercial product is hereby granted without fee. 
            Permission to copy and distribute this software and its 
            documentation only for non-commercial use is also granted 
            without fee, provided, however, that the above copyright 
            notice appear in all copies, that both that copyright 
            notice and this permission notice appear in supporting 
            documentation. The author makes no representations about 
            the suitability of this software for any purpose. It is 
            provided ``as is'' without express or implied warranty. 


    4.5 Index and Submission Information 

    When you submit a program, or make a reference to one, please tell 
    me: 


    * What is the name of the program? 

    * What does it claim to do, and does it do it well? Is it worth 
      using? If not, why not? 

    * Where is it available? What ftp sites can I get it from? 

    * How much does it cost? Is it free? 

    * What kinds of computers does it run on? 

    * Who is the author and does the author give an email address? 

    * Does it handle PostScript 2? 

    * What other software does it rely on? 

    * If it is clip-art, what is it clip art of? 

    * If it is an example, what is it an example of? 

    If the program is a PostScript interpreter, then the I also need to 
    know: 


    * Does it let you go backwards one page? 

    * Does it display the number of pages in the document? 

    * Does it let you print PostScript to a non-PostScript printer? 

    * What formats can it convert to? 


    4.6 How to Submit a Program 

    First, format your program for posting. Please keep filenames to 12 
    or fewer characters in length. 

    I don't care what format you submit your program in, although if 
    you happen to pack your program using shar in chunks of less than 
    55K, I'd be very happy. cshar would be even better. Otherwise, I 
    will reformat it myself. If you post in plain ASCII, please make 
    sure that you give me the right filenames. 

    Post your program to comp.sources.postscript, and it will 
    automatically be sent to me. Alternatively, you can just email it 
    to postscript@cs.brown.edu. 

    I will notify you by email when I receive your program. If you 
    don't hear from me within 24 hours, something is probably wrong and 
    you should try contacting me again. I may not have received your 
    original post. 

    Have patience -- your article will not show up in the newsreader 
    until I approve it and package it. I'll try to do this as quickly 
    as possible. 


    4.7 Header Lines for Your Posting 

    The Subject: line should describe the entire program in 60 
    characters, to be used for the archive index. 

    The Reply-To: line should list the email address for whomever 
    comments and questions should be sent to. 

    The Organization: line is optional. It lists what organization you 
    belong to. Obviously, you must have the organization's approval if 
    you post software which belongs to them, even if you helped write 
    it. 

    The Summary: line describes in one or two sentences what the 
    program is. Also please include blurb which describes what the 
    posting is/does/contains. This should only be a paragraph or two. 

    Put a blank line and then have the following lines: 

    The Archive-name: line should have the package name that you want 
    the submission archived by. The package name should be in the 
    format packagename/partname. The package name and partname must not 
    be more than 12 characters long. The package name will be used as a 
    directory name. The partname should look like a series of files 
    part01, part02, part03, if there are many parts to your program. If 
    there is only one part, still make it ``part01''. 

    The Environment: line lists what operating systems, languages, and 
    packages are needed. If your program is entirely PostScript, then 
    the environment is ``PostScript''. 

    The Keywords: line provides a nice way to search for your program. 
    I'll make up some standard Keywords when I get an idea what the 
    types of sources postings are. For now, just pick what you think is 
    best. 

    For example, your post might look like this: 

  
    Newsgroups: comp.sources.postscript
    Subject: schlep - PostScript interpreter in PostScript, Part01/02
    Reply-To: j_random_hacker@athena.mit.edu (J. Arthur Random)
    Organization: Student Information Processing Board
    Summary: schlep is a fully functional PostScript interpreter with
             color and PostScript 2 capability, written entirely in
             PostScript. Runs as fast as most compiled interpreters!
  
    Archive-name: schlep/part01
    Environment: PostScript
    Keywords: postscript interpreter, color, level-2
  
    Schlep is a very useful PostScript interpreter. It is every bit as
    good as the commercial interpreters, plus it is written in everyone's
    favorite language.
  
    #! /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 <file", e.g..  If this archive is complete, you
    # will see the following message at the end:
    #             "End of shell archive."
    # Contents:  schlep.ps
    # Wrapped by j_arthur_random@binkley.mit.edu on Wed Mar  3 12:26:38 1993
    PATH=/bin:/usr/bin:/usr/ucb ; export PATH
    if test -f 'schlep.ps' -a "${1}" != "-c" ; then 
      echo shar: Will not clobber existing file \"'schlep.ps'\"
    else
    echo shar: Extracting \"'schlep.ps'\" (84 characters)
    sed "s/^X//" >'schlep.ps' <<'END_OF_FILE'
    X(Schlep Version 1.00 by J. Arthur Hacker\n) print
    X(Processing your program\n) print
    END_OF_FILE
    if test 84 -ne `wc -c <'schlep.ps'`; then
        echo shar: \"'schlep.ps'\" unpacked with wrong size!
    fi
    # end of 'schlep.ps'
    fi
    echo shar: End of shell archive.
    exit 0
  
    Again, note the blank line between Summary and Archive-name. The 
    second posting might look like (shown for completeness): 

  
    Newsgroups: comp.sources.postscript
    Subject: schlep - PostScript interpreter in PostScript, Part02/02
    Reply-To: j_random_hacker@athena.mit.edu (J. Arthur Random)
    Organization: Student Information Processing Board
    Summary: schlep is a fully functional PostScript interpreter with
             color and PostScript 2 capability, written entirely in
             PostScript. Runs as fast as most compiled interpreters!
  
    Archive-name: schlep/part02
    Environment: PostScript
    Keywords: postscript interpreter, color, level-2
  
    #! /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 <file", e.g..  If this archive is complete, you
    # will see the following message at the end:
    #             "End of shell archive."
    # Contents:  schlep.doc
    # Wrapped by j_arthur_random@binkley.mit.edu on Wed Mar  3 12:26:38 1993
    PATH=/bin:/usr/bin:/usr/ucb ; export PATH
    if test -f 'schlep.doc' -a "${1}" != "-c" ; then 
      echo shar: Will not clobber existing file \"'schlep.doc'\"
    else
    echo shar: Extracting \"'schlep.doc'\" (238 characters)
    sed "s/^X//" >'schlep.doc' <<'END_OF_FILE'
    XBasically, just prepend schlep.ps to the PostScript program that you
    Xwant to interpret, and run the schlep program in an interpreter.
    XNote how quickly schlep interprets your program, even though it is
    Xwritten in an interpreted language!
    X
    END_OF_FILE
    if test 238 -ne `wc -c <'schlep.doc'`; then
        echo shar: \"'schlep.doc'\" unpacked with wrong size!
    fi
    # end of 'schlep.doc'
    fi
    echo shar: End of shell archive.
    exit 0
  

    4.8 After Posting 

    You should subscribe to comp.sources.bugs and comp.sources.d to 
    learn about problems with and comments on your program, and even 
    improvements made to it. 

    9 Acknowledgements 

    I am indebted to Kent Landfield, the comp.sources.misc moderator, 
    for his help in forming the newsgroup and making this FAQ (parts of 
    which are copied from his with permission). Thanks also to Allen 
    Braunsdorf, the back-up moderator for this newsgroup, for his 
    suggestions and assistance. 

    This FAQ is copyright (C) 1994 by Jonathan Monsarrat. Permission is 
    granted to freely edit and distribute as long as this copyright 
    notice is included. 

    This document was written with the LaTeX language and formatted by 
    LameTeX, the PostScript hacker's LaTeX. 

%! Jon Monsarrat     jgm@cs.brown.edu     moderator, comp.sources.postscript %!
(LcHdBidZi_hdQ6[PaVa1b4c6F"J4b/>$O<)(di_zk{:UFfUg;ABF)(2n>]Eh:u?<)(P"M#R\(:$T<)
([gXfSZ]f\\dZbeZeb^fH;`?dR=ZS7)(K P!U!: H<)(9l9cCf:o?$)(7W4]6`:X;=)(U"W#_%:"R-)
(A 5"<&Y%K"F"M,M,S\)i3e.M5F_PZR9>lP-)(wBxEuEs7x;uBq:q<q>hFh7o:=Nj<)(Z#]#b#:$R-)
(m+m+k3S!R+d,;"^<)(GFP\\RamZf;TAP{X{fd<{C7)(4840N2:6N=)([ Z#^&:!c<)(<%?$C$:#8<)
(D!J"L#:!B<)/a{def}def/M{exch}a/S{repeat}a/Q{{40 add}if}a 18{{}forall/R M a/x 2
/y 3/z 5 3{R M mod 1 eq a}S x Q M y Q moveto 57 sub{3{y Q M x Q M 6 2 roll}S
curveto}S z{fill}{stroke}ifelse}S showpage
