Short: Convert DVI files into PostScript Author: ghibo@galileo.polito.it (Giuseppe Ghibò) Uploader: mscheler aminet org (Matthias Scheler) Type: text/tex Architecture: m68k-amigaos * dvips v5.58 revision 1 * * Amiga port by Giuseppe Ghibò , 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 none or (ghi) denotes changes done by Giuseppe Ghibò 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 .