home *** CD-ROM | disk | FTP | other *** search
- *
- * dvips v5.58 revision 1
- *
- * Amiga port by Giuseppe Ghibò <ghibo@galileo.polito.it>, based on
- * the official Unix v5.58 distribution released on 13rd Sep 1994.
- *
- * Last revised 8th Jan 1995.
-
- ---------------
- About this port
- ---------------
-
- This is the Amiga port of dvips v5.58.
-
- All original directories are left unchanged from the official Unix
- distribution, except for dvips/contrib/psfig which has been substituted
- with the latest version (1.10) of Trevor Darrel's 'psfig.sty' (look at
- dvips/contrib/psfig-tex).
-
- All Amiga changes are enclosed in #ifdef AMIGA ... #endif pairs.
-
-
- ----------
- Path rules
- ----------
-
- Amiga paths (in environment variables and config files) follow this
- rules yet used on others PD version of TeX, and different from the ones
- described in dvips.tex):
-
- - a period "." indicates the current directory.
- - a comma "," is the paths separator (instead of Unix ":").
- - two adjacent commas ",," includes the default pathname into
- that path.
-
- Starting from dvips 5.58 revision 1, dvips supports the
- EVPaths path routines for the following environment variables:
-
- Env Var config Path
- ------- option ----
- ------
-
- TEXCONFIG specifies path for config files
- TEXINPUTS S specifies path for postscript figures
- TEXFONTS T specifies path for .tfm files
- VFFONTS V specifies path for .vf files
- DVIPSHEADERS H specifies path for postscript prologues
-
- The other environment variables PK font searching rules
- are still the same of the previous version 5.58, and don't support the
- new behaviour.
-
- The EVPaths routines allow the following behaviour for the environment
- variables above (path rules are compatible with the old one, but there are
- also some imprevements):
-
- - Recursively path searching.
- ---------------------------
-
- - Appending the char * to a path element extend the searching into its
- subdirectories (one-level). For instance specifying:
-
- setenv TEXFONTS TeX:texfonts/tfm/*,CD0:texfonts/tfm
-
- the subdirectories contained into the directory `TeX:texfonts/tfm/'
- will be used as search path.
-
- - Appending ** to a path element, the searching will be extended to ALL the
- subdirectories of such path. Since the directory's scan is performed at
- startup time, this could slightly slow down the startup if the directory
- contains many subdirectories. Up to ten-level subdirectories are
- supported.
-
- Note that there are also some synonymous for * and **:
-
- ---------------------------------
- | Char | searching |
- ---------------------------------
- | * | one-level directories |
- | ** | all sub-directories |
- | #? | one-level directories |
- | #?> | all sub-directories |
- | *> | all sub-directories |
- ---------------------------------
-
- Note also that the chars * and ** (or their synonymous) don't specifies
- wildcards; e.g. specifying TeX:macro/ltx*my we DON'T include every
- directory which matches the string `ltx*my' into the path.
-
- - Recursively environment variables searching
- -------------------------------------------
-
- Speficifying the name of another environment variables we may include
- its contents into the path. For instance with:
-
- setenv TEXINPUTS TeX:texinputs,"$"MYTFM
-
- then the contents of the environment variables MYTFM will be added to
- the path list. Note that MYTFM may contain other environment variables
- and so on. Up to 5 level of environment variables recursion are
- allowed. Closed loop and duplicated entries are ignored.
- Double quotes (i.e. "$"MYTFM)are needed because otherwise the shell
- will expand the MYTFM var.
-
- - Environment variables may have any length
- -----------------------------------------
-
- The environment variable used to specify a path may have any lenght
- (according to the memory size specified into DVIPS).
- Entries may also be separated by a LF.
-
-
- EVPaths routines are Copyright © 1994-95 by Giuseppe Ghibò. The sources
- and the full documentation of EVPaths are available on Aminet and its
- mirror sites.
-
-
- ----------------
- Backtick support
- ----------------
-
- The backtick special "`" (see §4.7 of dvips manual) is also supported,
- either through the Bojsen's APipe-Handler (you can find it on AmiNet in
- util/shell/APipe-XX.X.lha) or through a very rough implementation of a
- read only pipe (the latter will be used in the case you haven't installed the
- APipe-Handler).
-
- This version supports pipes to printers (e.g., dvips -o!lpr ...) only through
- the APipe-Handler. If you want, instead, to send the output directly to a
- PostScript printer connected, for instance, to the parallel port, you may use
- "dvips -opar: dvifile". Note that `dvips -o!lpr' is just an example, the
- Amiga doesn't have really the 'lpr' program (as far as I know...).
-
- The backtick special "`" is supported also by the 'psfig' package (provided).
- Using this feature you may keep your Encapsulated PostScript files in a
- crunched form. To use this feature you must have the 'GZip' program (look in
- Aminet) renamed to 'ZCat'.
-
-
- -----------
- Amiga files
- -----------
-
- This distribuition of dvips contains the following Amiga files:
-
- README.Amiga this file.
- afm2tfm binary version of afm2tfm.
- dvips binary version of dvips for any users.
- dvips040 binary version of dvips for 68040 users.
- smakefile Makefile for SAS/C v6.x. (EVPaths support)
- smakefile-old Makefile for old path behaviour.
- ps/config.ps config.ps for 300 dpi laser printer (Canon engine).
- ps/config.ljfour a config file for HP LaseJet IV (600×600 dpi²).
- ps/config.nechi a config file for Nec 24pin (360×360 dpi²).
- ps/config.nec a config file for Nec 24pin (180×180 dpi²).
- ps/config.generic a config file for generic PostScript printer.
- ps/*.map extra maps file to use Paradissa fonts collection.
- ps/*.pro PostScript prologue files.
- chfiles/*.ch Changes files to implement the EVPaths support.
- MakeTeXPK a shell script file for automatic pk fonts creation.
- texc.rexx ARexx script to convert tex.lpro to texc.lpro.
- pipe.c code to implement 'popen' and 'pclose' functions.
- rexx.c ARexx interface to make dvips compatible with PasTeX.
- include/ directory with prototypical headers.
- env-vars a shell script to set some environment variable.
- dvips.dvi DVI documentation of dvips.
- EVPaths.lib Link library for the EVPaths routines.
-
-
- ---------
- Compiling
- ---------
-
- To compile source files on your Amiga, CD on dvips directory then type from
- your current shell `smake -f amiga/smakefile all'. If you want to
- compile dvips without the new EVPaths support, use instead
- `smake -f amiga/smakefile-old'.
- Note that to compile dvips with the EVPaths support you need the utility
- WMERGE. This utility is distributed with the CWEB package which excellent
- Amiga port, done by Andreas Scherer, is available on Aminet
- (file dev/c/cweb33pXXX.lha) and in the CTAN archives.
-
- To compile sources on CPUs different from 68000, you can use instead
- `smake -f amiga/smakefile CPU=68040 MATH=8'.
-
- To compile sources with the optimization disabled you can use for instance
- `smake -f amiga/smakefile dvips OPTMZ='
-
- To install the compiled sources and PostScript prologue files into TeX
- directories type `smake -f amiga/smakefile install'.
-
-
- ------------
- Installation
- ------------
-
- If you don't intend to recreate all binaries and prologue files using
- the smakefile, copy the following files:
-
- dvips/amiga/ps/#?
- dvips/psfonts.map
- dvips/psdraft.ps
-
- to your TeX-PostScript directory (e.g., TeX:ps/) and then edit the file
- config.ps according to your paths (pk, tfm, vf, ...). An alternative to change
- the config file(s) is to set the environment variables. In fact some
- environment variables override paths and options specified in the config
- file(s). To do this you can modify the file `dvips/amiga/env-var' to match
- your own paths.
- Note that directory `dvips/amiga/ps/' contains the latest version of the
- PostScript prologue files (*.pro) used by dvips. *BE SURE* you have installed
- these files on your TeX PostScript directory, otherwise dvips will produce
- fault PostScript files.
-
- Then copy the binary version of 'dvips' (according to your CPU) and 'afm2tfm'
- and 'squeeze' into your TeX-binary directory (e.g., TeX:bin/).
-
- Finally copy the file 'MakeTeXPK' into your TeX-scripts directory
- (e.g., TeX:s).
-
- For further information process the dvips manual `dvips.tex' (using
- plain TeX) or see the dvi file `amiga/dvips.dvi'.
-
-
- -------------------------
- Automatic font generation
- -------------------------
-
- For automatic font generation (see §10 on page 35 of dvips manual), it is
- provided a shell script file named 'MakeTeXPK'.
-
- Note that this port of dvips has new features (not available in the
- Rokicki's Unix version) for the MakeTeXPK env var.
-
- On page 37 of the dvips manual are explained the standard arguments
- supported by MakeTeXPK env var. This port now supports also four new
- arguments:
-
- %x = horizontal base resolution (dpi), i.e. the one specified after the
- `X' in the config file.
-
- %y = vertical base resolution (dpi), i.e. the one specified after the
- `Y' in the config file.
-
- %p = a %p will be replaced by the first expansion of the pk path. For
- instance, if you have these lines in your config file:
-
- D 600
- M ljfour
- P TeX:texfonts/pk/%m/%d/%f.%dpk,TeX:pk/%d/%f.%dpk,%f.%dpk
-
- and, for instance, the font cmssbx10 at magstep(0.9) isn't found,
- then %p will be replaced by the following string:
-
- TeX:texfonts/pk/ljfour/540
-
- %P = a %P is like %p except the path has truncated also the directory
- before the font name. If we consider the example above, a %P will
- be replaced by:
-
- TeX:texfonts/pk/ljfour
-
- Note that the %w (available in the port of version 5.55) used to
- substitute the MF mode is no longer supported. In fact, now, the the official
- dvips has the %o argument, which performs the same things of the old %w.
-
- Note, if dvips doesn't found more than one pk font, then the file
- 'missfont.log' will be created/appended. In this case just execute that
- file by typing from your shell 'execute missfont.log'.
-
- If you have the ARexx script 'MakeBatch.rexx' and 'MakeTeXFont.rexx'
- provided with PasTeX you can set the environment variable MAKETEXPK to
-
- rx MF:rexx/MakeBatch %n %d %x %y PS %d/%n.%dpk %P/
- or
- rx MF:rexx/MakeTexFont %n %d %x %y PS %d/%n.%dpk %P/
-
- to do the automatic font creation.
-
- Starting from v5.55 rev 2, it is supported the CALLMF env var. If the
- environment MAKETEXPK is setted to the value "CALLMF" (without quotes) or
- it is not at all setted, then will be called the ARexx script specified
- by the environment variable CALLMF itself. For instance let's consider:
-
- setenv MAKETEXPK CALLMF
- setenv CALLMF MF:rexx/MakeBatch.rexx
-
- then the ARexx script `MF:rexx/MakeBatch.rexx' will be called if
- a fonts isn't found. The arguments passed to the ARexx script
- are the ones needed by the PasTeX's ARexx scripts `MakeBatch.rexx'
- or `MakeTeXFont.rexx'. The advantage to use of CALLMF with respect to
- set the enviroment variable MAKETEXPK to `rx MF:rexx/MakeBatch ...',
- is that if the ARexx server isn't active then the ARexx script
- isn't executed, while `rx' command starts anyway the ARexx server.
-
-
- ----------
- Some notes
- ----------
-
- If you are using dvips with a PostScript interpreter like Post, keep in
- mind that the PostScript files produced by dvips using pk fonts aren't
- 'device indipendent'. For instance, if you want to print on a 180dpi dot
- matrix printer you must have the correct pk size fonts. An alternative is to
- use Type 1 PostScript fonts. For this purpose you may retrieve all the
- CM and AMS fonts in Type 1 format (Paradissa Font Collection and
- Bakoma Font Collection) from any CTAN archive. To use such fonts, there is
- the config file 'config.generic'. You may use it typing 'dvips -Pgeneric
- -Dres myfile'.
- The PostScript files produced in this way are bigger than the ones created
- using the pk fonts only, but they're ``device indipendent''.
-
- -----------------
- Changes (summary)
- -----------------
-
- - v5.58 revision 1 (8th Jan 1994)
-
- - Made dvips EVPaths compliant.
-
-
- - v5.58 (29 Sep 1994)
-
- - Changes according to the original 5.58 version.
-
-
- - v5.55 rev 2 (19 Sep 1994) - internal
-
- - Support for CALLMF rexx script (compatibility with PasTeX).
-
-
- - v5.55 rev 1 (12 Sep 1994) - internal
-
- - Support for %x and %y argument in the MAKETEXPK env var.
- - Now current directory isn't changed if a user break is hitted
- during dirs scan.
- - changed config files to support K. Berry's `modes.mf' v2.0.
-
-
- - v5.528 (12-Feb-94)
-
- - Added full support of pipes.
-
-
- - v5.526 (21-Jan-94)
-
-
- - v5.525 (17-Jan-94)
-
- - Fixed a bug dued to conversion of all float to double.
- - Added a rough read only pipe (allows backtick "`" in specials).
-
-
- - v5.523 (11-Jan-94)
-
- - Fixed units conversion in "emspecial.c": now units cc and dd
- work right.
-
- - Added support for EM font libraries.
-
- - v5.521 (17-Dec-93)
-
- - Enhanced paths: now volume name (like TeX:) and directories
- ending in '/' (like 'TeX:texfonts/') can also be used in enviroment
- variables for paths.
-
-
- - v5.518 (22-Sep-93)
-
- - First public release of the Amiga port of dvips.
-
-
- =========
- ChangeLog
- =========
-
- ---------------------------------
- 8 Jan 1994 -- changes since v5.58
- ---------------------------------
-
- chfiles/*.ch: added change files to support EVPaths routines.
-
-
- ----------------------------------------
- 29 Sep 1994 -- changes since v5.55 rev 2
- ----------------------------------------
-
- makefont.c: removed %w for mfmode in MAKETEXPK. Now there is
- the %o (with the same behaviour of the old %w) also
- in the original dvips.
-
- afm2tfm.c: - changed afm2tfm_protos.h
- - changes some scanf("...%f...") to scanf("...%lf..."),
- according to FLTTODBL.
-
- squeeze.c: - changed squeeze_protos.h
-
- The following files are instead changed according to the changes introduced
- in the original 5.58 version.
-
- bbox.c
- dvips.h
- dvips.c
- dopage.c
- dospecial.c
- emspecial.c
- loadfont.c
- makefont.c
- output.c
- paths.h
- resident.c
- scalewidth.c
- search.c
- virtualfonts.c
-
- -----------------------------------------
- 19 Sep 1994 -- changes since v5.55 rev 1.
- -----------------------------------------
-
- (sch) denotes changes done by Andreas Scherer <scherer@genesis.informatik.rwth-aachen.de>
- none or (ghi) denotes changes done by Giuseppe Ghibò <ghibo@galileo.polito.it>
-
- makefont.c: - (sch) added CallMF support according to the PasTeX behaviour.
- - (ghi) changed MF modes according to K. Berry's modes.mf 2.0.
- - (ghi) made CALLMF a modal option.
-
- afm2tfm.c: (sch) made ANSI compliant.
-
- squeeze.c: (sch) made ANSI compliant.
-
- rexx.c: (ghi), (sch) added to call the ARexx script specified by CALLMF env var.
-
- search.c: changed MF modes according to K. Berry's modes.mf v2.0.
-
-
- -------
- Credits
- -------
-
- The author of this port wishes to thanks:
-
- - Andreas Scherer for the ARexx (rexx.c) interface and for the others
- improvements and suggestions.
-
- - Georg Heßmann for the original 'rexx.c'.
-
-
- ----
- TODO
- ----
-
- o A GUI/MUI version of dvips.
-
-
- -------------------------
- QUESTIONS ABOUT THIS PORT
- -------------------------
-
- If you have any question, comment, suggestion, enhancement requests,
- bug report, about this port, please feel free to contact me via e-mail
- at <ghibo@galileo.polito.it>.
-