xref: /plan9-contrib/sys/src/cmd/postscript/VERSION (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
1------------------------
2Version 3.3.2   7/7/92
3------------------------
4
5 1: Added UTF support for Plan 9. Only signigficant source code changes were
6    in dpost.utf (font.h, font.c, dpost.c). Added common/rune.[hc] so code
7    can be compiled elsewere. Remove RUNELIB in commmon/rune.h if fullrune(),
8    chartorune(), and runetochar() are available on your system. Original
9    DWB 3.3 dpost source is in directory dpost. You should select dpost or
10    dpost.utf in postscript.mk. Both compile and install a program called
11    dpost so don't pick both!
12
13 2: dpost can read old or UTF troff output. Default is whatever is assigned
14    to READING (file common/gen.h). You get one or the other, unless troff
15    tells dpost what encoding to use (currently x E UTF).
16
17 3: Most other translators passed bytes through and so only needed slightly
18    modified proglogues and a new encoding scheme (psencoding/UTF.enc). It
19    works for Latin1, but still needs a bit more attention. Prologue changes
20    were easy and only involved adding lines like,
21
22	/show {show} bind def
23	/stringwidth {stringwidth} bind def
24
25    Guarantees text procedures used in prologues aren't operators and can be
26    successfully redefined in UTF.enc. Unbinding means a small but probably
27    not noticeable speed penalty. You may not want to include those changes
28    on other system.
29
30 4: Operator redefinitions means dpost should work in it's own dictionary
31    (rather than userdict). Not implemented yet, but should be easy. Only
32    potential problem is with picture inclusion when dpost reads UTF.enc.
33
34------------------------
35Version 3.3.2   5/15/92
36------------------------
37
38 1: postio now outputs all unrecognized status reports - primarly for spooler
39    accounting purposes.
40
41 2: The makefiles also enable the selection of alternate stream module names
42    for streams based DKHOST support in postio.
43
44 3: dpost now assumes the optional fifth token in a font mounting command
45    (e.g. x font 2 R /usr/me/font/R) is the full pathname of the font. troff
46    outputs the pathname when a .fp request contains a third argument that
47    begins with a / as in .fp 1 R /usr/me/font/R.
48
49 4: By request Latin1's - character has been changed from minus to the smaller
50    hyphen character. Added \(dq and \(bs (for " and \ characters) to devpost
51    and devLatin1 tables. Also added \(!! and \(?? to devpost tables.
52
53 5: Helvetica-Light and Helvetica-LightOblique tables are included as HL and
54    HK in devpost and devLatin1, even though fonts aren't generally available.
55    Also copy H to HM during an install of devpost and devLatin1 tables.
56
57 6: LH and LV are horizontal and vertical AT&T logos from Matthijs Melchior
58    with slight adjustments to the scaling of "AT&T". Also adjusted LV so globe
59    sits on the baseline.
60
61 7: Included L1 and LA outlines in devpost and devLatin1. Adjusted LA scaling
62    so size of "AT&T" matches what's in LH and LV. Original PostScript came
63    from Matthijs Melchior.
64
65 8: Included the "symmetric clippath" version of roundpage.ps as Nroundpage.ps
66    in directory postscript/psfiles. Move it to roundpage.ps if you want it to
67    be the default.
68
69 9: Added a few lines of code to dpost for handling current implementation of
70    the portrait/landscape mode macros.
71
7210: The man page for download now documents the -r option and notes that -p
73    is for Unix 4.0 lp.
74
75------------------------
76Version 3.3.1   4/30/91
77------------------------
78
79 1: buildtables stuff has been cleaned up and is now a user level command.
80    Uses shell.lib files that are installed with font tables. The devpost
81    tables were built on a version 47.0 PS-810. The devLatin1 tables were
82    built on a version 51.7 PS-820.
83
84 2: The devLatin1 tables provide support for the ISO Latin1 alphabet on
85    PostScript printers.
86
87 3: All translators support different text font encoding schemes using the
88    -E option and *.enc files installed in POSTLIB. The ISO Latin 1 alphabet
89    is supported with file /usr/lib/postscript/Latin1.enc.
90
91 4: printfont prints a table of the available (encoded) characters in one
92    or more PostScript fonts. It also understands the -E option.
93
94 5: grabit and hardcopy are two new programs that may be of interest to the
95    more serious PostScript programmer. grabit resembles ==, but produces
96    output that's usally easier to read. hardcopy redirects output from
97    PostScript file output operators (or procedures) to paper. It's useful
98    if you don't have direct access to a printer.
99
100 6: Prologues and programs are stored together. Other common PostScript files
101    are now in the psfiles directory.
102
103------------------------
104Verions 3.3	4/16/90
105------------------------
106
107 1: The package is now included in DWB. Version numbers are a bit misleading.
108    The one in postscript.mk refers to the DWB package.
109
110 2: dpost (and troff) now read ASCII font tables. makedev and the old binary
111    format are gone.
112
113 3: The devpost directory came directly from the DWB package. The font tables
114    originally distributed with this package are in directory devopost. They
115    are not installed. If possible we recommend you use the devpost tables.
116    The old tables can be installed by adding devopost to the TARGETS list in
117    file postscript.mk.
118
119 4: dpost recognizes two new fields in font tables. Entries for the full
120    PostScript font look like,
121
122		fontname Times-Roman
123
124    The fontname field is helps manage host resident fonts, the DocumentFonts
125    comment, and is used to define font name abbreviations like the ones in
126    dpost.ps. A font table entry that looks like,
127
128		named in prologue
129
130    disables the runtime abbreviation for the font - dpost assumes it's already
131    in the prologue.
132
133 5: Extra font tables included in DWB 3.0's devpost font collection are in
134    directory devpost.add. They included here, but should probably not be
135    used.
136
137 6: Bracket building has been fixed and tested on a wide range of PostScript
138    printers. It will likely still not work on many clones. Real problem
139    appears to be with Adobe's braceleftbt character.
140
141 7: Most of the special tuning code for device emulation has been removed.
142    Emulation still works, but there may be cases where it's not as good as
143    earlier versions.
144
145 8: Several problems with color and reverse video printing have been fixed.
146
147 9: buildtables directory has been cleanup up. The template files in directory
148    buildtables/devpost.data were used to build the devpost tables.
149
15010: postplot and download are two new programs. postplot is for the System V
151    plot package only. Both were written for the Unix 4.0 lp package.
152
15311: postgif is also relatively new - it came from Chi Choy.
154
15512: The translators now rotate clockwise when printing in landscape mode. If
156    you want the old behavior set ROTATION to -1 in postscript.mk.
157
15813: forms.ps has been cleaned up some. Better behavior when you print 2
159    landscape pages on one sheet.
160
16114: Handling of Datakit code for System V has been changed some. Makefiles
162    now expect to find libdk.a and dk.h in standard places (e.g /usr/lib and
163    /usr/include). Set DKHOST to TRUE in postscript.mk to get Datakit support
164    on System V.
165
166    If you're stuck and need to have things behave as they did in the past
167    take a look at file postio/postio.mk. Define DKHOSTDIR and uncomment
168    three lines and the behavior should be close to what it was.
169
17015: Picture inclusion and color macros are gone. They're included in the DWB
171    package, and not here.
172
173------------------------
174Version 3.2	11/27/89
175------------------------
176
177 1: Implemented height and slant requests in dpost.
178
179 2: Modified the behavior of all translators so save objects are no longer left
180    on the stack. The original implementation was a mistake and occasionally
181    (e.g. picture inclusion with forms.ps) resulted in invalid restores.
182
183 3: Fixed the mistake in the external declaration of mesg in postio/slowsend.c.
184
185 4: The malloc() call in postdmd (routine dimensions()) is only made if patterns
186    is positive.
187
188 5: Changed definition of De in draw.ps so savematrix is loaded with the CTM
189    whenever De is executed. Original implementation didn't work with forms.ps
190    because the CTM is changed with each page image. (4/29/89)
191
192 6: Flush stdout when postio is invoked with the -t option - just convenient
193    not necessary. (4/30/89)
194
195 7: Included a man page for the picture inclusion macros - file man/mpictures.5.
196    (5/6/89)
197
198 8: Added BoundingBox code to dpost - still needs to go in other translators.
199    Most of the work is done in common/bbox.c. (5/7/89)
200
201 9: Fiddled with the bracket building stuff in dpost.ps so things finally look
202    decent. Was particularly bad on the typesetter.
203
20410: dpost now generates a PageBoundingBox comment and ps_include.c accepts
205    the comment. Added -B option to enable/disable the BoundingBox calculations.
206    -Bon to enable and -Boff to disable. On by default now, but that may change.
207    Add similar code to the rest of the translators (6/20/89).
208
20911: Fixed ps_include.c so it properly handles %%BeginGlobal and %%EndGlobal.
210    Added braces and compare page.start to page.end instead of 0.
211
21212: Added xymove(hpos, vpos) for \X'PS ...' request - near the end of devcntrl().
213    Must output position info for following PostScript.
214
21513: Added a call to endtext() immediately before the oput() call for \N'...'
216    requests. Without it spacing often messed up with -e2 but not -e0.
217
218------------------------
219Version 3.1	11/15/88
220------------------------
221
222 1: postio can run as one or two processes (-R option) and can establish an
223    interactive connection with a postscript printer (-i option). Parsing of
224    status reports has been improved. The status query mechanism can be disabled
225    using the -q option. An exit status of 1 implies a system error (eg. can't
226    open the line) while 2 usually means there was an error in the PostScript
227    file. By default postio runs as a single process. The -B, -R, and -q options
228    can be used to speed things up some. A version of the program (previously
229    supplied in postio.tmp) that can help if you seem to be having flow control
230    problems can be obtained using the -S option. It's not generally recommended
231    and should only be used as a last resort!
232
233 2: Several widthshow encoding schemes have been added to dpost and can reduce
234    print time by 20% or more. The method used to encode lines of text can be
235    changed on the command line using the -e option. Level 0 produces output
236    essentially identical to previous versions of dpost. The default can be
237    changed by modifying the definition of ENCODING in ./Makefile. At present
238    only level 0 is thoroughly tested, although level 2 (ie. -e2) may be the
239    default and is undoubtedly worth a try.
240
241 3: dpost now supports color selection and reverse video. Access in troff is via
242    the stand-alone macro package ./macros/color. Examples are,
243
244	.so /usr/lib/macros/color
245	.CL red "this prints in red"
246	.CL "white on black" "and this prints white text on a black background"
247
248    The postscript procedures that handle color and reverse video can be found
249    in ./postscript/color.ps. Additional colors can be added to the colordict
250    dictionary defined in ./postscript/color.ps.
251
252 4: The dpost drawing routines have been improved and have been moved from the
253    prologue (ie. ./postscript/dpost.ps) to ./postscript/draw.ps. That file is
254    only included if needed. Drawing routines now support the ability to group
255    a series of drawing commands together as a single path. May be useful for
256    future versions of pic that wish to fill regions with colors or gray levels.
257    Access is via the new "x X BeginPath" and "x X DrawPath" device control
258    commands. In addition there's some complicated PostScript code in file
259    ./postscript/baseline.ps, that can be used to set text along an arbitrary
260    curve. It's terribly confusing and I doubt anyone will have the patience to
261    bother to figure it out.
262
263 5: A simple picture packing troff preprocessor (picpack) has been included and
264    the code needed to recover pictures and text has been added to dpost. The
265    program is designed to supplement to the original picture inclusion mechanism,
266    and should ONLY be used when absolutely necessary. Using dpost to pull picture
267    files into a document is strongly recommended and will always be the more
268    efficient and portable approach. picpack simply provides a way to combine
269    pictures and text in a single file before dpost is executed. It may help in
270    a distributed printing environment where the user runs everything through
271    troff while a spooling daemon (eg. lp) handles the postprocessing. There
272    are serious disadvantages to this approach, with perhaps the most important
273    being that troff output files (when picpack is used) will likely result in
274    files that can no longer be reliably passed through other important post-
275    processors like proof.
276
277 6: Code to handle host resident PostScript fonts in dpost has been tested and
278    finally works. The -H option points dpost to a host resident font directory,
279    which by default is NULL. Host resident font files stored in that directory
280    must be assigned a name that corresponds to the one or two character troff
281    font name. Width tables must also be built (see buildtables/README), the new
282    binary font files must be installed in /usr/lib/font/devpost, and a mapping
283    definition from troff's name to the PostScript font name must be added to
284    ./postscript/dpost.ps.
285
286 7: The default pattern length in postdmd has been reduced to from 10 to 6 bytes.
287    Printers with fast processors (eg. PS-810s) often benefit from a further
288    reduction, while optimal performance on slower printers (eg PS-800s) may
289    require larger pattern sizes. The pattern length can be set using the -b
290    option. Increasing the pattern size usually increases the size of the output
291    file.
292
293 8: Line drawing in posttek and postbgi includes code that automatically ties
294    lines to device space coordinates when you select a non-zero width. Helps
295    eliminate the variation in line thickness that many observed. The default
296    line width in posttek and postbgi is still 0 (which gets 1 pixel). If you
297    want a different default change the definition of variable linewidth in files
298    ./postscript/posttek.ps and ./postscript/postbgi.ps.
299
300 9: Defocused lines in posttek have been fixed.
301
30210: postbgi now supports color and can be used to translate most PRISM (color
303    BGI) jobs. Special device specific tuning needed for many PRISM jobs can be
304    enabled by using the -P"/prism true" option. Missing pieces (eg. subroutines)
305    needed for translating PRISM jobs, have also been implemented.
306
30711: postreverse can reverse the pages in documents that conform to Adobe's 1.0
308    or 2.0 file structuring conventions, and it works with all the translators in
309    this package. The new version is backwards compatible, but files produced by
310    the new translators should not be passed through old versions of postreverse.
311    The likely result will be no output at all. If you choose to do a partial
312    installation put the new postreverse up first!
313
31412: All translators attempt to conform to Adobe's Version 2.0 file structuring
315    conventions. dpost output falls short, but only in the interest of efficiency.
316    Passing dpost output through postreverse (perhaps with the -r option) produces
317    a minimally conforming PostScript file.
318
31913: All the translators now support three options that pass arbitrary PostScript
320    through to the output file. The -P and -C options add a string and the
321    contents of a file respectively immediately after the prologue. It's assumed
322    whatever is added is legitimate PostScript - there is no checking. In each
323    case the added PostScript code becomes part of the job's global environment.
324
325    The -R option can be used to request special action (eg. manualfeed) on a
326    global or page basis.  The argument should be "request", "request:page", or
327    "request:page:file". If page is given as 0 or omitted the request applies
328    globally. If file is omitted the lookup is in /usr/lib/postscript/ps.requests.
329    The collection of recognized requests can be modified or extended by changing
330    /usr/lib/postscript/ps.requests.
331
33214: PostScript code (from Johnathan Shopiro) that produces bolder versions of the
333    Courier fonts has been included in file postscript/fatcourier.ps. The file
334    can  be added to individual prologue files (eg. dpost.ps) or pulled in as
335    needed using the -C option.
336
33715: postmd is a new program that can be used to display a large matrix as a gray
338    scale image. May help if you're looking for patterns in a large matrix. A very
339    optimistic estimate suggests you can display up to a 600x600 matrix (with five
340    different shades of gray) on 300dpi printer using 8.5x11 inch paper.
341
34216: What's available in buildtables has been cleaned up and works well with the
343    new version of postio. It can be used to have PostScript printers build troff
344    width tables for both printer and host resident fonts.
345
34617: The PostScript bind operator has been applied to all procedures that are
347    expected to be executed more than once. Redefined save and restore procedures
348    are no longer needed and saverestore.ps is not included in this package.
349
35018: The bizarre PostScript code used to get to the upper left corner of a page
351    in old versions of dpost.ps and postprint.ps has been replaced by something
352    that's at least slightly more comprehensible. All prologues have also been
353    changed so picture inclusion (eg. including a pic picture that's been run
354    through troff and dpost) should work better than previous versions. Still
355    missing (from most translators) is the %%BoundingBox comment and even when
356    it's put out (by postdmd) only the dimensions are correct - sorry!
357
35819: The careless mistake in the DKHOST section of postio that some noticed belongs
359    to me (not Allan Buckwalter) and has now been fixed.
360
36120: By default all prologues still use the current clipping path to determine page
362    dimensions, but that behavior can be disabled by setting boolean useclippath
363    (in each prologue) to false. In that case the page dimensions will be taken
364    from array pagebbox, which by default is initialized to 8x11 inch paper. The
365    -P options (in each translator) can change useclippth and pagebbox.
366
36721: New in the misc directory is sample lp support from Maryann Csaszar and a
368    simple program that converts host resident font files obtained from a Macintosh
369    to a format that works on Unix.
370
371