home *** CD-ROM | disk | FTP | other *** search
/ Dream 45 / Amiga_Dream_45.iso / Amiga / Magazine / Dossier-LaTeX / dvips558rev1.readme < prev    next >
Text File  |  1997-10-17  |  16KB  |  466 lines

  1. Short:    Convert DVI files into PostScript
  2. Author:   ghibo@galileo.polito.it (Giuseppe Ghib≥)
  3. Uploader: mscheler@aminet.org (Matthias Scheler)
  4. Type:     text/tex
  5.  
  6. * dvips v5.58 revision 1
  7. *
  8. * Amiga port by Giuseppe Ghib≥ <ghibo@galileo.polito.it>, based on
  9. * the official Unix v5.58 distribution released on 13rd Sep 1994.
  10. *
  11. * Last revised 8th Jan 1995.
  12.  
  13. ---------------
  14. About this port
  15. ---------------
  16.  
  17. This is the Amiga port of dvips v5.58.
  18.  
  19. All original directories are left unchanged from the official Unix
  20. distribution, except for dvips/contrib/psfig which has been substituted
  21. with the latest version (1.10) of Trevor Darrel's 'psfig.sty' (look at
  22. dvips/contrib/psfig-tex).
  23.  
  24. All Amiga changes are enclosed in #ifdef AMIGA ... #endif pairs.
  25.  
  26.  
  27. ----------
  28. Path rules
  29. ----------
  30.  
  31. Amiga paths (in environment variables and config files) follow this
  32. rules yet used on others PD version of TeX, and different from the ones
  33. described in dvips.tex):
  34.  
  35.  - a period "." indicates the current directory.
  36.  - a comma "," is the paths separator (instead of Unix ":").
  37.  - two adjacent commas ",," includes the default pathname into
  38.    that path.
  39.  
  40. Starting from dvips 5.58 revision 1, dvips supports the
  41. EVPaths path routines for the following environment variables:
  42.  
  43. Env Var        config        Path
  44. -------        option        ----
  45.         ------
  46.  
  47. TEXCONFIG            specifies path for config files
  48. TEXINPUTS    S        specifies path for postscript figures
  49. TEXFONTS    T        specifies path for .tfm files
  50. VFFONTS        V        specifies path for .vf files
  51. DVIPSHEADERS    H        specifies path for postscript prologues
  52.  
  53. The other environment variables PK font searching rules
  54. are still the same of the previous version 5.58, and don't support the
  55. new behaviour.
  56.  
  57. The EVPaths routines allow the following behaviour for the environment
  58. variables above (path rules are compatible with the old one, but there are
  59. also some imprevements):
  60.  
  61. - Recursively path searching.
  62.   ---------------------------
  63.  
  64.   - Appending the char * to a path element extend the searching into its
  65.     subdirectories (one-level). For instance specifying:
  66.  
  67.     setenv TEXFONTS TeX:texfonts/tfm/*,CD0:texfonts/tfm
  68.  
  69.     the subdirectories contained into the directory `TeX:texfonts/tfm/'
  70.     will be used as search path.
  71.    
  72.   - Appending ** to a path element, the searching will be extended to ALL the
  73.     subdirectories of such path. Since the directory's scan is performed at
  74.     startup time, this could slightly slow down the startup if the directory
  75.     contains many subdirectories. Up to ten-level subdirectories are
  76.     supported.
  77.  
  78.   Note that there are also some synonymous for * and **:
  79.  
  80.     ---------------------------------
  81.     | Char |       searching        |
  82.     ---------------------------------
  83.     |  *   | one-level directories  |
  84.     | **   | all sub-directories    |
  85.     | #?   | one-level directories  |
  86.     | #?>  | all sub-directories    |
  87.     | *>   | all sub-directories    |
  88.     ---------------------------------
  89.  
  90.   Note also that the chars * and ** (or their synonymous) don't specifies
  91.   wildcards; e.g. specifying TeX:macro/ltx*my we DON'T include every
  92.   directory which matches the string `ltx*my' into the path.
  93.   
  94. - Recursively environment variables searching
  95.   -------------------------------------------
  96.  
  97.   Speficifying the name of another environment variables we may include
  98.   its contents into the path. For instance with:
  99.  
  100.     setenv TEXINPUTS TeX:texinputs,"$"MYTFM
  101.  
  102.   then the contents of the environment variables MYTFM will be added to
  103.   the path list. Note that MYTFM may contain other environment variables
  104.   and so on. Up to 5 level of environment variables recursion are
  105.   allowed. Closed loop and duplicated entries are ignored.
  106.   Double quotes (i.e. "$"MYTFM)are needed because otherwise the shell
  107.   will expand the MYTFM var.
  108.  
  109. - Environment variables may have any length
  110.   -----------------------------------------
  111.  
  112.   The environment variable used to specify a path may have any lenght
  113.   (according to the memory size specified into DVIPS).
  114.   Entries may also be separated by a LF.
  115.  
  116.  
  117. EVPaths routines are Copyright ⌐ 1994-95 by Giuseppe Ghib≥. The sources
  118. and the full documentation of EVPaths are available on Aminet and its
  119. mirror sites.
  120.  
  121.  
  122. ----------------
  123. Backtick support
  124. ----------------
  125.  
  126. The backtick special "`" (see º4.7 of dvips manual) is also supported,
  127. either through the Bojsen's APipe-Handler (you can find it on AmiNet in
  128. util/shell/APipe-XX.X.lha) or through a very rough implementation of a
  129. read only pipe (the latter will be used in the case you haven't installed the
  130. APipe-Handler).
  131.  
  132. This version supports pipes to printers (e.g., dvips -o!lpr ...) only through
  133. the APipe-Handler. If you want, instead, to send the output directly to a
  134. PostScript printer connected, for instance, to the parallel port, you may use
  135. "dvips -opar: dvifile". Note that `dvips -o!lpr' is just an example, the
  136. Amiga doesn't have really the 'lpr' program (as far as I know...).
  137.  
  138. The backtick special "`" is supported also by the 'psfig' package (provided).
  139. Using this feature you may keep your Encapsulated PostScript files in a
  140. crunched form. To use this feature you must have the 'GZip' program (look in
  141. Aminet) renamed to 'ZCat'.
  142.  
  143.  
  144. -----------
  145. Amiga files
  146. -----------
  147.  
  148. This distribuition of dvips contains the following Amiga files:
  149.  
  150. README.Amiga      this file.
  151. afm2tfm           binary version of afm2tfm.
  152. dvips             binary version of dvips for any users.
  153. dvips040          binary version of dvips for 68040 users.
  154. smakefile         Makefile for SAS/C v6.x. (EVPaths support)
  155. smakefile-old     Makefile for old path behaviour.
  156. ps/config.ps      config.ps for 300 dpi laser printer (Canon engine).
  157. ps/config.ljfour  a config file for HP LaseJet IV (600╫600 dpi▓).
  158. ps/config.nechi   a config file for Nec 24pin (360╫360 dpi▓).
  159. ps/config.nec     a config file for Nec 24pin (180╫180 dpi▓).
  160. ps/config.generic a config file for generic PostScript printer.
  161. ps/*.map          extra maps file to use Paradissa fonts collection.
  162. ps/*.pro          PostScript prologue files.
  163. chfiles/*.ch      Changes files to implement the EVPaths support.
  164. MakeTeXPK         a shell script file for automatic pk fonts creation.
  165. texc.rexx         ARexx script to convert tex.lpro to texc.lpro.
  166. pipe.c            code to implement 'popen' and 'pclose' functions.
  167. rexx.c            ARexx interface to make dvips compatible with PasTeX.
  168. include/          directory with prototypical headers.
  169. env-vars          a shell script to set some environment variable.
  170. dvips.dvi         DVI documentation of dvips.
  171. EVPaths.lib       Link library for the EVPaths routines.
  172.  
  173.  
  174. ---------
  175. Compiling
  176. ---------
  177.  
  178. To compile source files on your Amiga, CD on dvips directory then type from
  179. your current shell `smake -f amiga/smakefile all'. If you want to
  180. compile dvips without the new EVPaths support, use instead
  181. `smake -f amiga/smakefile-old'.
  182. Note that to compile dvips with the EVPaths support you need the utility
  183. WMERGE. This utility is distributed with the CWEB package which excellent
  184. Amiga port, done by Andreas Scherer, is available on Aminet
  185. (file dev/c/cweb33pXXX.lha) and in the CTAN archives.
  186.  
  187. To compile sources on CPUs different from 68000, you can use instead
  188. `smake -f amiga/smakefile CPU=68040 MATH=8'.
  189.  
  190. To compile sources with the optimization disabled you can use for instance
  191. `smake -f amiga/smakefile dvips OPTMZ='
  192.  
  193. To install the compiled sources and PostScript prologue files into TeX
  194. directories type `smake -f amiga/smakefile install'.
  195.  
  196.  
  197. ------------
  198. Installation
  199. ------------
  200.  
  201. If you don't intend to recreate all binaries and prologue files using
  202. the smakefile, copy the following files:
  203.  
  204.     dvips/amiga/ps/#?
  205.     dvips/psfonts.map
  206.     dvips/psdraft.ps
  207.  
  208. to your TeX-PostScript directory (e.g., TeX:ps/) and then edit the file
  209. config.ps according to your paths (pk, tfm, vf, ...). An alternative to change
  210. the config file(s) is to set the environment variables. In fact some
  211. environment variables override paths and options specified in the config
  212. file(s). To do this you can modify the file `dvips/amiga/env-var' to match
  213. your own paths.
  214. Note that directory `dvips/amiga/ps/' contains the latest version of the
  215. PostScript prologue files (*.pro) used by dvips. *BE SURE* you have installed
  216. these files on your TeX PostScript directory, otherwise dvips will produce
  217. fault PostScript files.
  218.  
  219. Then copy the binary version of 'dvips' (according to your CPU) and 'afm2tfm'
  220. and 'squeeze' into your TeX-binary directory (e.g., TeX:bin/).
  221.  
  222. Finally copy the file 'MakeTeXPK' into your TeX-scripts directory
  223. (e.g., TeX:s).
  224.  
  225. For further information process the dvips manual `dvips.tex' (using
  226. plain TeX) or see the dvi file `amiga/dvips.dvi'.
  227.  
  228.  
  229. -------------------------
  230. Automatic font generation 
  231. -------------------------
  232.  
  233. For automatic font generation (see º10 on page 35 of dvips manual), it is
  234. provided a shell script file named 'MakeTeXPK'.
  235.  
  236. Note that this port of dvips has new features (not available in the
  237. Rokicki's Unix version) for the MakeTeXPK env var.
  238.  
  239. On page 37 of the dvips manual are explained the standard arguments
  240. supported by MakeTeXPK env var. This port now supports also four new
  241. arguments:
  242.  
  243.   %x = horizontal base resolution (dpi), i.e. the one specified after the
  244.        `X' in the config file.
  245.  
  246.   %y = vertical base resolution (dpi), i.e. the one specified after the
  247.        `Y' in the config file.
  248.  
  249.   %p = a %p will be replaced by the first expansion of the pk path. For
  250.        instance, if you have these lines in your config file:
  251.  
  252.            D 600
  253.            M ljfour
  254.            P TeX:texfonts/pk/%m/%d/%f.%dpk,TeX:pk/%d/%f.%dpk,%f.%dpk
  255.  
  256.        and, for instance, the font cmssbx10 at magstep(0.9) isn't found,
  257.        then %p will be replaced by the following string:
  258.  
  259.            TeX:texfonts/pk/ljfour/540
  260.  
  261.   %P = a %P is like %p except the path has truncated also the directory
  262.        before the font name. If we consider the example above, a %P will
  263.        be replaced by:
  264.  
  265.            TeX:texfonts/pk/ljfour
  266.  
  267. Note that the %w (available in the port of version 5.55) used to
  268. substitute the MF mode is no longer supported. In fact, now, the the official
  269. dvips has the %o argument, which performs the same things of the old %w.
  270.  
  271. Note, if dvips doesn't found more than one pk font, then the file
  272. 'missfont.log' will be created/appended. In this case just execute that
  273. file by typing from your shell 'execute missfont.log'.
  274.  
  275. If you have the ARexx script 'MakeBatch.rexx' and 'MakeTeXFont.rexx'
  276. provided with PasTeX you can set the environment variable MAKETEXPK to
  277.  
  278.     rx MF:rexx/MakeBatch %n %d %x %y PS %d/%n.%dpk %P/
  279. or
  280.     rx MF:rexx/MakeTexFont %n %d %x %y PS %d/%n.%dpk %P/
  281.  
  282. to do the automatic font creation.
  283.  
  284. Starting from v5.55 rev 2, it is supported the CALLMF env var. If the
  285. environment MAKETEXPK is setted to the value "CALLMF" (without quotes) or
  286. it is not at all setted, then will be called the ARexx script specified
  287. by the environment variable CALLMF itself. For instance let's consider:
  288.  
  289.     setenv MAKETEXPK CALLMF
  290.     setenv CALLMF MF:rexx/MakeBatch.rexx
  291.  
  292. then the ARexx script `MF:rexx/MakeBatch.rexx' will be called if
  293. a fonts isn't found. The arguments passed to the ARexx script
  294. are the ones needed by the PasTeX's ARexx scripts `MakeBatch.rexx'
  295. or `MakeTeXFont.rexx'. The advantage to use of CALLMF with respect to
  296. set the enviroment variable MAKETEXPK to `rx MF:rexx/MakeBatch ...',
  297. is that if the ARexx server isn't active then the ARexx script
  298. isn't executed, while `rx' command starts anyway the ARexx server.
  299.  
  300.  
  301. ----------
  302. Some notes
  303. ----------
  304.  
  305. If you are using dvips with a PostScript interpreter like Post, keep in
  306. mind that the PostScript files produced by dvips using pk fonts aren't
  307. 'device indipendent'. For instance, if you want to print on a 180dpi dot
  308. matrix printer you must have the correct pk size fonts. An alternative is to
  309. use Type 1 PostScript fonts. For this purpose you may retrieve all the
  310. CM and AMS fonts in Type 1 format (Paradissa Font Collection and
  311. Bakoma Font Collection) from any CTAN archive. To use such fonts, there is
  312. the config file 'config.generic'. You may use it typing 'dvips -Pgeneric
  313. -Dres  myfile'.
  314. The PostScript files produced in this way are bigger than the ones created
  315. using the pk fonts only, but they're ``device indipendent''.
  316.  
  317. -----------------
  318. Changes (summary)
  319. -----------------
  320.  
  321. - v5.58 revision 1 (8th Jan 1994)
  322.  
  323.         - Made dvips EVPaths compliant.
  324.  
  325.  
  326. - v5.58 (29 Sep 1994)
  327.  
  328.     - Changes according to the original 5.58 version.
  329.  
  330.  
  331. - v5.55 rev 2 (19 Sep 1994) - internal
  332.  
  333.     - Support for CALLMF rexx script (compatibility with PasTeX).
  334.  
  335.  
  336. - v5.55 rev 1 (12 Sep 1994) - internal
  337.  
  338.     - Support for %x and %y argument in the MAKETEXPK env var.
  339.     - Now current directory isn't changed if a user break is hitted
  340.           during dirs scan.
  341.     - changed config files to support K. Berry's `modes.mf' v2.0.
  342.  
  343.  
  344. - v5.528 (12-Feb-94)
  345.  
  346.     - Added full support of pipes.
  347.  
  348.  
  349. - v5.526 (21-Jan-94)
  350.  
  351.  
  352. - v5.525 (17-Jan-94)
  353.  
  354.     - Fixed a bug dued to conversion of all float to double.
  355.     - Added a rough read only pipe (allows backtick "`" in specials).
  356.  
  357.  
  358. - v5.523 (11-Jan-94)
  359.  
  360.     - Fixed units conversion in "emspecial.c": now units cc and dd
  361.       work right.
  362.  
  363.     - Added support for EM font libraries.
  364.  
  365. - v5.521 (17-Dec-93)
  366.  
  367.     - Enhanced paths: now volume name (like TeX:) and directories
  368.           ending in '/' (like 'TeX:texfonts/') can also be used in enviroment
  369.           variables for paths.
  370.  
  371.  
  372. - v5.518 (22-Sep-93)
  373.  
  374.     - First public release of the Amiga port of dvips.
  375.  
  376.  
  377. =========
  378. ChangeLog 
  379. =========
  380.  
  381. ---------------------------------
  382. 8 Jan 1994 -- changes since v5.58
  383. ---------------------------------
  384.  
  385.     chfiles/*.ch:    added change files to support EVPaths routines.
  386.  
  387.  
  388. ----------------------------------------
  389. 29 Sep 1994 -- changes since v5.55 rev 2
  390. ----------------------------------------
  391.  
  392.     makefont.c:    removed %w for mfmode in MAKETEXPK. Now there is
  393.             the %o (with the same behaviour of the old %w) also
  394.             in the original dvips.
  395.  
  396.     afm2tfm.c:    - changed afm2tfm_protos.h
  397.             - changes some scanf("...%f...") to scanf("...%lf..."),
  398.               according to FLTTODBL.
  399.  
  400.     squeeze.c:    - changed squeeze_protos.h
  401.  
  402. The following files are instead changed according to the changes introduced
  403. in the original 5.58 version.
  404.  
  405.     bbox.c
  406.     dvips.h
  407.     dvips.c
  408.     dopage.c
  409.     dospecial.c
  410.     emspecial.c
  411.     loadfont.c
  412.     makefont.c
  413.     output.c
  414.     paths.h
  415.     resident.c
  416.     scalewidth.c
  417.     search.c
  418.     virtualfonts.c
  419.  
  420. -----------------------------------------
  421. 19 Sep 1994 -- changes since v5.55 rev 1.
  422. -----------------------------------------
  423.  
  424. (sch) denotes changes done by Andreas Scherer <scherer@genesis.informatik.rwth-aachen.de>
  425. none or (ghi) denotes changes done by Giuseppe Ghib≥ <ghibo@galileo.polito.it>
  426.  
  427.     makefont.c:    - (sch) added CallMF support according to the PasTeX behaviour.
  428.             - (ghi) changed MF modes according to K. Berry's modes.mf 2.0.
  429.             - (ghi) made CALLMF a modal option.
  430.  
  431.     afm2tfm.c:    (sch) made ANSI compliant.
  432.  
  433.     squeeze.c:    (sch) made ANSI compliant.
  434.  
  435.     rexx.c:        (ghi), (sch) added to call the ARexx script specified by CALLMF env var.
  436.  
  437.     search.c:    changed MF modes according to K. Berry's modes.mf v2.0.
  438.  
  439.  
  440. -------
  441. Credits
  442. -------
  443.  
  444. The author of this port wishes to thanks:
  445.  
  446. - Andreas Scherer for the ARexx (rexx.c) interface and for the others
  447.   improvements and suggestions.
  448.  
  449. - Georg He▀mann for the original 'rexx.c'.
  450.  
  451.  
  452. ----
  453. TODO
  454. ----
  455.  
  456.  o A GUI/MUI version of dvips.
  457.  
  458.  
  459. -------------------------
  460. QUESTIONS ABOUT THIS PORT
  461. -------------------------
  462.  
  463. If you have any question, comment, suggestion, enhancement requests,
  464. bug report, about this port, please feel free to contact me via e-mail
  465. at <ghibo@galileo.polito.it>.
  466.