Message-ID: Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!nycmny1-snh1.gtei.net!washdc3-snf1!news.gtei.net!cyclone1.gnilink.net!chi1.webusenet.com!news.webusenet.com!snoopy.risq.qc.ca!torn!qcarhaaa.nortelnetworks.com!bcarh189.ca.nortel.com!zcarh46f.ca.nortel.com!ferret.ocunix.on.ca!not-for-mail Date: 29 Oct 2002 06:00:02 GMT Supersedes: Expires: 25 Nov 2002 06:00:01 GMT Subject: comp.text Frequently Asked Questions From: clewis@ferret.ocunix.on.ca (Chris Lewis) Newsgroups: comp.text,news.answers,comp.answers Followup-To: poster Summary: Discussions on text processing in general, and troff in particular Approved: news-answers-request@mit.edu Keywords: typesetting troff groff ditroff wysiwyg sgml word desktop dwb Reply-To: textfaq@ferret.ocunix.on.ca (Text FAQ commentary reception) Organization: eh? Lines: 824 Xref: senator-bedfellow.mit.edu comp.text:19277 news.answers:240454 comp.answers:51811 Archive-name: text-faq Last-Modified: Wed Jun 2 08:38:35 EDT 1999 Frequently Asked Questions for comp.text Chris Lewis Copyright 1991 - 1995. Redistribution for profit, or with altered content/format prohibited without permission of the author. Redistribution via printed book or CDROM expressly prohibited without consent of the author. Any other redistribution must include this copyright notice and attribution. (This list was originally compiled by Nils-Peter Nelson, with contributions from Jaap Akkerhuis, Dick Dunn, Nick Haines, Steve Harley, Harro Kremer, Chris Lewis, John Macdonald, Bob Morris, Nils-Peter Nelson, Chip Rosenthal.) If you have comments or additions, please contact Chris Lewis, textfaq@ferret.ocunix.on.ca (note Reply-to). Changes are marked with a "|" in left column. Many newsreaders (e.g. rn, trn) allow you to search for them with "g^|". Changes this issue: - New URLs for troff manual and tutorial ------------------------------ Subject: Questions discussed: General interest: GN1. What is the difference between word processing, desktop publishing, technical publishing, electronic publishing, etc? GN2. Which do I need? GN3. What is a markup language? GN4. What is SGML? ODA? GN5. What is WYSIWYG? Do I need it? GN6. What is PostScript? GN7. What is TeX? GN8. What are some popular Desktop Publishing packages? GN9. Where can I read more? GN10. What is Lout? GN11. What is Grif? GN12. Where can I find indexing software? GN13. What is RTF? Specific to troff: TR1. What is troff? Why are there so many questions about it? TR2. How many varieties of troff are there? What are the differences? TR3. What are some of the filters for troff output? TR4. What other troff printer drivers are there? TR5. How do I get my troff to drive my printer? TR6. None of the mentioned packages support *my* printer. Help? TR7. How do I embed PostScript in troff? TR8. What are fonts? How do I add fonts? TR9. What are width tables? TR10. How do I make width tables? TR11. What are: pic, eqn, tbl, grap, refer? TR12. How do I preview my troff on my screen? TR13. I need makedev, but my DWB doesn't come with it. TR14. How can I get nroff/troff for DOS? TR15. What books can I get about DWB? TR16. Complete DWB Description The discussions below are organized in digest-form, so you may scan ahead for "^Subject:" to move from one topic to the next (the ^G command does this in rn), and you may search for "^Subject: GN5" (for example) to jump to the discussion of a particular question. (The caret "^" before "Subject" is a convention of regular expressions that restricts the search to match only at the beginning of a line.) ------------------------------ Subject: GN1. What is the difference between word processing, desktop publishing, technical publishing, electronic publishing, etc? Electronic Publishing is an all-encompassing term that means using computers (instead of hot lead) to set type for documents. Although publishing includes a sequence of processes right through distribution, EP tends to emphasize document composition through production of a single master copy. It is helpful to picture a graph with "complexity" along the X axis and "length" along the Y axis. Complexity varies from straight text to footnotes and indexing to tables to line drawings to gray-scale illustration to full color. Length varies from 1 page to 10,000 or more (better make the Y axis logarithmic!) Word processing dominates the lower left of the graph (business letters). Desktop publishing dominates the lower right (advertising layout). Host-based text formatters like troff, TeX and Scribe dominate the upper-left (phone book). Proprietary systems have traditionally dominated the upper right (Sears catalog, encyclopedia); these are being supplanted by hybrids consisting of pieces from the other segments. The middle of the graph is fair ground for everyone but is increasingly the domain of Technical Publication systems like Interleaf and FrameMaker. ------------------------------ Subject: GN2. Which do I need? Word processors and Desktop publishers are more than adequate for documents of tens of pages. Because they are mostly limited to PCs and Macintosh, they may be impediments in producing long documents, which would have to be done in digestible chunks (say, a chapter at a time). High-end systems are usually UNIX-based, which means computer power and document capacity are limited only by how much you want to spend. ------------------------------ Subject: GN3. What is a markup language? All formatters need to distinguish the text to be printed from instructions about how to print; the latter is called markup. Procedural markup tells the software what to do (space down, invoke a macro); generic markup describes the thing to be printed (heading, cross-reference, etc.) Troff and TeX are examples of procedural markups; ODA and SGML prescribe rules for generic languages; and good macro packages for troff or TeX make them, more-or-less, generic markup languages. Many of the word processing packages (such as Word or Wordstar) can only do procedural markup - the software is told by the user "how to display it", rather than "what this is" - and leaving the visual representation to preprogrammed rule sets (ie: macros) - see GN5. ------------------------------ Subject: GN4. What is SGML? ODA? SGML is the Standard Generalized Markup Language. SGML is defined in International Standard ISO 8879:1986. SGML is a language for formally describing the structure and contents of documents. SGML is also the syntax used by documents so described. SGML is an important move in the direction of separating information from its presentation, e.g. making different presentations possible for the same information. The better macro packages for TeX and troff attempt to do the same thing. This is in contrast with WYSIWYG - see GN5. SGML is more fully discussed in comp.text.sgml. SGML is the name of a directory at the public FTP site ftp.ifi.uio.no where you can find a (draft) FAQ, a bibliography, and more information. ODA: Office [Open] Document Architecture, takes a similar approach but stresses blind interchange. ODA is defined in the multi-part standard ISO 8613:1988, in the CCITT T.410 series recommendations, and in ECMA standard 101. ------------------------------ Subject: GN5. What is WYSIWYG? Do I need it? What-you-see-is-what-you-get: essential for advertising layout, but a useless time-waster for a phone book. WYSIWYG is the opposite of SGML, in that in SGML you know what something is (say, a chapter heading) but you don't know what it looks like; in WYSIWYG you know what it looks like but you don't know what it is. The obvious benefit of WYSIWYG is that the author is aware at all times of the final appearance of the document; the liability is that the vendor gets to choose the internal representation of the document, and may not tell you what it is. The best trade-off would be a WYSIWYG system with a well-documented, usable markup language. There is a system called "GRIF" - see GN11. The "doc" program in Interviews is a freeware UNIX WYSIWYG wordprocessor. We should caution that few of the self-proclaimed WYSIWYG systems actually show the exact same thing on screen as you get on a printer: What You See Is Sort Of Like What You Get. When 300 dpi, 17 inch terminals are common true WYSIWYG will be practical. Being aware of the final appearance of a document is not universally accepted as a "good thing", Robertson Davies has suggested that the WYSIWYG approach to writing contributes to "blather" (and he should know as a past master ;-), while others have argued that the final appearance can't always be known. WYSIWYG processors tend to encourage an approach that makes re-use and re-packaging of documents for alternate methods of presentation (eg: on-line and paper documentation) difficult. Efficiency studies have shown, for at least certain types of documentation, that documents are written faster with text processors than WYSIWYGS. ------------------------------ Subject: GN6. What is PostScript? PostScript is a language for output devices. It does for output devices what Unix does for processors, viz., it allows a common software interface despite differences in hardware platform. PostScript controllers exist for paper printers from 4 pages per minute up to 92 ppm, from 300 dots per inch to over 6000 dpi typesetter, and for film recorders, color printers and X Window terminals. Without PostScript, every text formatter has to understand the idiosyncrasies of every vendor's hardware. See comp.lang.PostScript for more. PostScript is a registered trademark of Adobe Corporation. ------------------------------ Subject: GN7. What is TeX? TeX is a batch formatter similar to troff developed by Don Knuth at Stanford. It is most popular in universities and is freely traded because of the lack of licensing restrictions. ArborText sells a commercial version for big and small (ie PCs) machines. There are various versions for PC-class machines. LaTeX (Leslie Lamports version of TeX) is a more friendly version of the same formatter. It does for TeX what macros does for troff. See comp.text.tex for TeX FAQs. [To be pedantically correct, there are really only very few versions of TeX. However, the relationship between the formatter and the macro sets (e.g.: LaTeX) is considerably more blurry in TeX than troff, and the macro package tends to be compiled-into different instantiations of TeX. This is truly part of the culture - TeXies refer to "latex documents", troffers more generally refer to "troff with mm macros". It's confusing.] Oh, and to save yourself sounding like an idiot, the "eX" in "TeX" is pronounced so that it rhymes with "blecchh", not "sex" (the X is a greek chi). ------------------------------ Subject: GN8. What are some popular Desktop Publishing packages? Aldus practically invented Desktop publishing with "PageMaker". WordPerfect and Word are lower in functionality but less expensive and exist on both DOS and Macintosh (WordPerfect on UNIX too). These are essentially word-processing packages rather than Desktop Publishing. WordPerfect and Word are by far the most popular with millions of copies sold. See comp.text.desktop for more information. Interleaf and FrameMaker are workstation-based and are higher in price and functionality, and require more substantial machine resources, but give you more in return. FrameMaker is now available for Windows 3.1, giving transportability between the DOS/Windows, Mac and UNIX world. See comp.text.desktop, comp.text.frame and comp.text.interleaf. ------------------------------ Subject: GN9. Where can I read more? Publish!, Business Publishing and Seybold Report are all excellent journals for keeping up to date. There are books devoted to most of the major packages, too many to mention here. Richard Rubinstein's book "Digital Typography", Addison-Wesley is apparently a readable book that goes into the details of composition systems, fonts and reproduction. ------------------------------- Subject: GN10. What is Lout? Lout is a new batch formatter drawing a fair bit from TeX and troff. Its main strengths are a more powerful and much easier to use "macro" programming language, and is reputed to be as "complete" as TeX or the troff formatting suite. It only generates PostScript and ascii. Lout was written by Jeff Kingston (jeff@cs.su.oz.au) and is available via anon FTP from ftp.cs.su.oz.au directory "jeff". ----------------------------- Subject: GN11. What is GRIF? GRIF S.A. has been commercializing its WYSIWYG SGML editor since 1991. Grif SGML Editor is totally compliant with the SGML standard (ISO 8879) and offers full WYSIWYG authoring of SGML documents. It is currently available on both Unix-Motif and PC-Windows platforms and forms part of GRIF S.A.'s complete range of SGML products. For more information, contact: Stuart Culshaw Marketing Assistant GRIF S.A. Immeuble "Le Florestan" 2 Boulevard Vauban - BP 266 78053 ST QUENTIN EN YVELINES FRANCE Tel. : +33 (1) 30.12.14.30 Fax : +33 (1) 30.64.06.46 E-mail: culshaw@grif.fr ----------------------------- Subject: GN12. Where can I find indexing software? Liam Quin is one of the net "experts" in this field, and suggests the following: SMART is from cornell, and is a test-bed for the research done by Gerald Salton's group; it's also quite widely used by other researchers. qx (or gx?) is an Australian system that went by on the net recently. WAIS is a client-server system. lq-text is my own system. You can find all of the above (except probably qg/gx since I haven't given a good enough name) with archie; lq-text 1.13 is at ftp.cs.toronto.edu. An _excellent_ book to look at or get or run out and buy is %A William B. Frakes %A Baeza-Yates, Ricardo %T Information Retrieval: Data Structures and Algorithms %I Prentice-Hall %D 1992 %O An excellent introduction to the issues in implementing information retrieval systems. Examples in C for Unix, available by ftp from ftp.vt.edu in pub/reuse/ir-code. ISBN: 0-13-463837-9 ------------------------------ Subject: GN13. What is RTF? RTF stands for Rich Text Format, and is a document interchange format. This format has become somewhat popular, and is supported by several text handling products. Sources: The RTF spec can be found at A hard copy of the spec can also be obtained from Microsoft Product Support (206) 454-2030. World Wide Web using URL http://www.primate.wisc.edu/. Look under "Primate Center Software Archives". The a series of converter tools is available as a compressed tar |archive .tar.Z> containing source and documentation. ------------------------------ Subject: TR1. What is troff? Why are there so many questions about it? Troff is one of the oldest text formatters in existence. Because it was distributed as part of the Unix operating system for many years, it is by default on several hundred thousand machines, far more than any other Unix text formatter. It originated in AT&T Bell Laboratories in 1971 and its author was Joseph Ossanna. Its legitimate father was a program called runoff, written at MIT in the 1960's. Because there is no comp.text.troff, additional questions related to troff are shown below. The remainder of the FAQ list is devoted to troff; bail out now if you are not interested. ------------------------------ Subject: TR2. How many varieties of troff are there? What are the differences? The original Ossanna troff generates proprietary printer codes for the Wang C/A/T Phototypesetter; we'll call this "CAT Troff". This version comes bundled in many systems, in particular, SunOS, most other Berkeley-derived systems, some SVR4s and is contained in the Xenix Text Processing package. The AT&T, BSD and Xenix variants all differ slightly, but not in any important ways. CAT troff is useless without filters to convert the "CAT codes" to something else, especially since the C/A/T is as common as a California condor. These filters are described later. In 1981, Brian Kernighan of Bell Laboratories rewrote troff to generate a generic typesetting language. These troffs are called "ditroff" (for device-independent troff) and contain some additional features such as arbitrary line drawing, and more flexible font handling. "Documenter's Workbench" (DWB) is a package containing ditroff and several other typesetting filters. The latest AT&T version is DWB 3.4.1, which sold as source code; most commercial binary variants (Elan, SoftQuad, Image Network, etc.) are based on DWB 2.0. The Free Software Foundation distributes a re-engineered version of ditroff called groff. If you have a troff and want to know which it is, type: troff < /dev/null > /dev/null If it responds with "typesetter busy" or "No /dev/cat; use -t or -a", you have CAT troff, otherwise it's ditroff. If you get an answer from: dwbv you have the AT&T release 3.0 or later. The differences are too numerous and subtle to document here, but the variants are about 95% compatible. All are ASCII based, but DWB 3.4, Groff and AIX 3.2's troff also accept ISO 8859-1 (aka ISO Latin 1), the Western European character set and are 8 bit clean. Any 8-bit clean ditroff can be reconfigured to support alternate 8859-x character sets. AIX 3.2 ditroff also supports Kanji (multi-byte) to a certain extent (as per IBM-932). See TR16 for more on DWB. ------------------------------ Subject: TR3. What are some of the filters for troff output? Psroff is a suite of programs that allow you to translate CAT troff output or ditroff output format into PostScript, HP Laserjet (with incremental font downloading) or ditroff. See description of hp2pbm below for driving printers other than these three. Psroff works with all versions of CAT troff and ditroff, including groff. Psroff allows you to change fonts on the fly (unlike any other CAT troff converter). Psroff has been used to drive HP Laserjet and clone printers, PostScript (including Display PostScript and Sun Pageview), X windows previewers (such as xditview and xtroff), Ghostscript and many others. Psroff comes with a large suite of utility programs that allow you to create, manipulate, display HP Laserjet and PostScript fonts, as well as construct width tables for these fonts from a variety of sources, including TeK PK format, HP SFP, and PostScript. Psroff also comes with a number of other utilities, such as PostScript page reordering, Ascii-2-PostScript converters etc. Psroff 3.0 is the only troff HP Laserjet filter fully supporting scalable fonts or HPGL/2 graphics on HP LJ III printers. Psroff 3.0 is capable of performing some limited emulation of ditroff features (eg: line drawing) with CAT troff. Psroff 3.0 is available from comp.sources.unix, volume 24. Or from ftp.uunet.ca, in /distrib/chris_lewis/psroff3.0pl17 (fully patched). Patch level 17 is current. The author is Chris Lewis, clewis@ferret.ocunix.on.ca. Adobe Transcript is a commercial package similar to psroff, in that it contains filters for converting ditroff or CAT troff. But only to PostScript. It also contains filters for Ascii-2-PostScript, and is often installed as part of SunOS printcap filters. Adobe Transcript contains a user interface script called "psroff" which should not be confused with the other psroff (but often is). Information can be acquired on its availability by contacting the Qualix group at 1-800-245-UNIX, or info@qualix.com. Supports psfig with a little hacking (instructions in psfig release). The groff package from the Free-Software-Foundation includes drivers for PostScript, DVI, X and constant-width printers, and the complete suite of troff preprocessors with the exception of grap. It is available via anonymous ftp from several sources (it needs the FSF C++ or AT&T C++ 2.0 compilers to compile, but many binary versions are also available for FTP). Supports character kerning (unlike CAT troff or DWB). Does not contain an HP Laserjet driver. A "dvi2lj" or psroff 3.0 can be used as a HP Laserjet driver for groff. Groff has made some slight changes in the ditroff and width table formats, so use with non-groff drivers may need a little fiddling. Written by James Clark. The latest version can always be ftped from prep.ai.mit.edu:pub/gnu. James has just updated groff to support HP Laserjet 4 printers in PCL5 (as opposed to PostScript) mode utilizing the scalable fonts built into the printer. This apparently also works on Laserjet 3 printers, with some minor deficiencies in graphics support, and not as many fonts. Will not work on HP Laserjet II printers, and apparently cannot work with non-scalable or downloaded fonts. The LJ4 software can be found in: ftp.jclark.com:/pub/test/groff-lj4.tar.gz. It's worth noting that there is a major difference between driving HP Laserjet 3 or 4 (PCL5) and driving HP Laserjet 2 (PCL4). PCL5 has scalable fonts, and an implementation of HPGL/2 - HP's graphics language. Driving PCL5 is fairly easy. PCL4 doesn't support scalable fonts or graphics, and they have to be simulated by downloads and raster graphics. A full feature driver for PCL4 will also work on PCL5, whereas something taking advantage of PCL5 won't work on PCL4. Groff only supports PCL5. Psroff has full function drivers for both PCL4 and PCL5. ------------------------------ Subject: TR4. What other troff printer drivers are there? - thack: CAT to PostScript. comp.sources.unix archives. For very casual use only. Has no width tables, and can't, for example, make tbl box corners line up.) Available from comp.sources.unix archives. Very simple to build/install. - tpscript: ditroff to PostScript (reasonably good filter) comp.sources.unix archives. Does not support psfig. - jetroff: ditroff to HP Laserjet (no support for III scalable fonts). Commercial version (jetroff 2) no longer available. Jetroff 1.0 (shareware) is available from c.s.m archives. Author: Rick Richardson. Would need some fiddling to work with groff. - troff2lj: CAT troff to HP Laserjet. Limited font handling functionality - package discontinued by author when psroff 2.0 was released. - lcat/lroff: obsolete, should be junked, precursor to psroff. - hp2pbm: not a troff-2-something filter per-se. However, given a HP Laserjet driver, hp2pbm can convert HP Laserjet 2 (PCL4) codes to Jef Poskanzer's PBM format, which permits you to | use any of the many output formats supported by PBM, as well as | directly to several other formats (PCL4, G3, X windows dump etc). Author: Chris Lewis and Klaus Schallhorn. Hp2pbm and PBM+ are accessible from c.s.m archives. Hp2pbm includes a 24 pin Epson driver and a built-in G3 FAX driver. Will not work with groff's PCL5 driver. | Hp2pbm coupled with Gert Doering's mgetty+sendfax makes a _very_ | nice bidirectional data (eg: UUCP) and FAX modem capability for | UNIX. | - GhostScript: also not a troff-2-something filter. It is a | PostScript to raster converter. Coupled with a troff/filter | that generates PostScript, GhostScript can usually be coaxed | into generating GIFs, PBMs, G3, PCL4, and several other | graphics formats. This is more flexible than hp2pbm, will | often do a sligthly better job, but requires a lot more disk space | and is considerably slower. If speed or space is a concern, | hp2pbm is a better choice. - cat2desk is a version of lcat/lroff modified to work with Deskjets. Psroff will work with newer deskjets (especially scalable font ones with PCL4), but not older ones (the font format is different) which are PCL3. Deskjets generally: For printing on deskjets that do not support SFP fonts, your best solution is either to use troff & psroff driving hp2pbm (with pbm2lj from hp2pbm as the final stage), or groff emitting PostScript and letting GhostScript do the conversion. Either one of these combinations will give you full functionality up to and including graphics. The former is easier to install and runs much faster (see me for pbm2lj tweak). The latter may have the edge on font quality. ------------------------------ Subject: TR5. How do I get my troff to drive my printer? a) If you already have CAT troff and you don't need pic or grap: Your simplest bet is psroff if you want to drive printers supported by psroff (PostScript, HP Laserjet, ditroff filters, PBM+ supported devices (including Epson 24 pin, FAX). Transcript is an alternative for PostScript output (but doesn't allow you to mount fonts, no drawing support). b) You already have ditroff: You may already have a driver for your printer. Check. If not, your best bets are jetroff, psroff, tpscript, transcript. c) You don't have a troff or, you have CAT troff and you need pic and grap: Get "a DWB", such as groff (no grap), DWB 3, or one of the commercial variants. ------------------------------ Subject: TR6. None of the mentioned packages support *my* printer. Help? This area is not entered into lightly. Look for a commercial or free package that supports your device. Failing that, try to acquire (legally!) the source code for another device and modify it. The AT&T documentation "Troff User's Manual" has a Reference section that completely documents the ditroff language. SunOS and Psroff 3.0 documentation contain descriptions of the CAT troff language. Psroff 3.0 is designed for drop-in drivers, and may be the easiest to extend. Coupled with hp2pbm, psroff3.0 can probably drive just about any kind of printer that supports raster graphics with relatively little trouble (see Epson 24 pin driver for guidance). If you can get a PostScript driver and are running on current SunOS, you could consider developing a NeWSprint driver for your printer. NeWSprint is Sun's NeWS (PostScript language interpreter extended for driving displays; not the same thing as "Display PostScript"(tm). This may be easier than developing a troff driver, since all NeWSprint really needs is the ability to send a bitmap to a printer. Source and developer's documentation are shipped standard with NeWSprint. Thack is ideal for quick hacks with CAT troff for printers that have dynamically scalable fonts (aside from the fact that thack has no facilities for building width tables). ------------------------------ Subject: TR7. How do I embed PostScript in troff? There are two methods: - including "absolute" PostScript. PostScript that knows where it goes on the page, and decides its own scaling. All versions of ditroff support this one way or another. CAT troff does as well when coupled with psroff. This is most often supported by some permutation of \! or \X'...' directives. - including PostScript, automatically scaling and placing the image. This requires that the PostScript be EPS (so that the size and origin of the image is accessible). Groff and DWB 3.3 have facilities for including EPS files and automatically placing/scaling them on the page, including leaving space in the troff text for the image. See if your documentation includes remarks about "PSPIC", "PS" or other similar macros. Psfig (comp.sources.unix archives) is a troff preprocessor which will permit this sort of automatic placement/scaling with an older version of ditroff (such as DWB 2.1) as long as the backend printer driver understands it. Psroff 3.0 and Adobe Transcript support psfig with ditroff, but only Psroff 3.0 will support psfig with CAT troff. Caution: many PC and MAC graphics packages generate sloppy PostScript which cannot be gracefully included in other documents. ------------------------------ Subject: TR8. What are fonts? How do I add fonts? A font is a set of characters in an specific typeface. Unlike TeX, troff does not consider the same typeface at different sizes to be different fonts. You have to make the width tables, install them, and tell the troff filter how to emit/request the fonts. The details differ from one package to another. Check the documentation. ------------------------------ Subject: TR9. What are width tables? Both CAT troff and ditroff need to know the width of each character that you use. The widths of each character (along with some additional characteristics) are arranged in a file for each font. There are basically five different width table formats: 1) CAT troff: uses a binary table of 224 unsigned chars. 2) MIPS (and RISC/Ultrix) CAT troff uses an ASCII dump of (1) 3) DWB 2.x and several of the commercial variants use an ASCII format that is compiled into a binary form by a special program called "makedev". 4) DWB 3.x uses the ASCII format mentioned in (3) - doesn't need to be compiled. 5) Groff uses the ASCII format mentioned in (4) with minor variations. If the width tables are wrong, character spacing will look funny - up to and including overlapping characters, and broken right justification. ------------------------------ Subject: TR10. How do I make width tables? Creating them is not hard. Getting the actual metrics sometimes is. The AT&T documentation "Troff User's Manual" describes the DWB width table format. Your DWB may already have a manual page for it. Psroff 3.0 contains documentation on DWB and CAT troff format width tables. DWB 3.3, Psroff 3.0 and tpscript each have a utility for automatically creating width tables by sucking the data out of a PostScript device. Psroff 3.0 and jetroff have utilities for creating width tables from HP laserjet fonts. Psroff 3.0 can convert between any of the 5 width table formats. Groff contains a package for generating groff width tables from HP's scaleable font metrics format. Consult the documentation to find out where to put the files. ------------------------------ Subject: TR11. What are: pic, eqn, tbl, grap, refer? These are the basic troff preprocessors shipped with DWB: - pic allows you to draw arbitrary line-drawing graphics in a machine-independent fashion. - eqn allows you to construct mathmatical equations. - tbl provides a mechanism for specifying and displaying automatically sized/configured tables - grap uses pic to construct graphs. - refer provides a mechanism for searching for and formatting bibligraphic references. Neither pic nor grap are included with CAT troff, but eqn, tbl and frequently refer are present. Groff does not at present support grap. ------------------------------ Subject: TR12. How do I preview my troff on my screen? a) X windows: xditview and xtroff (X11R5 contrib directory, xtroff also from ftp.cs.toronto.edu) and gxditview (from groff) will preview ditroff format (groff requires gxditview), including psroff 3.0's ditroff output from CAT troff. b) Display PostScript (ie: AIX 3 & DEC dpsexec, NeXT, Sun Pageview, Ultrascript, Ghostview plus GhostScript): any PostScript generating troff. (Theoretically at least. May need a teensy bit of PostScript hacking to get a reasonable pager (psroff3.0 has this built in). Pageview and Ultrascript have some limitations so may not work with a specific PostScript generator). Pageview gets very confused about page boundaries unless the PostScript is DSC compliant and has "%%Page:" comments in it. c) Others: You can probably find a PBM converter for it, so use a Laserjet-generating troff configuration plus hp2pbm. (eg: Sun rasters, 3b1 screens, EGA, VGA, GIFF, TIFF etc.) I preview on X by generating PCL with psroff, converting to PBM with hp2pbm, then display with pbm2Xd (part of hp2pbm) and xwud (part of X windows). d) Others: You may be able to find a DVI driver for it, so use a DVI-generating troff configuration (namely, groff's ditdvi) and use the appropriate dvi2 filter. e) AIX 3.2 has a good AIXwindows 1.2 and Motif1.1 based previewer called "xpreview". ------------------------------ Subject: TR13. I need makedev, but my DWB doesn't come with it. A freeware version called "mkfont" is available from c.s.m, and is also included in Jetroff 1.0. The Jetroff version is to be preferred because it's been extended a bit more to be an exact "makedev" replacement w.r.t. command line arguments. ------------------------------ Subject: TR14. Nroff/Troff on DOS machines Arto Viitanen (av@ohdake.cs.uta.fi) has used djgpp (the MSDOS port of gcc 2.01) to compile groff-1.05 for MSDOS. The binaries are available at garbo.uwasa.fi in /pc/unix. The file is groff396.zip and it's 725 Kb. A port of version 1.07 by Mauro Condarelli is available from omnigate. clarkson.edu in pub/msdos/djgpp/pub. This port includes the groff driver and also the dvi device, both of which were missing in the 1.05 port. Both ports work well except for gpic which does not seem to work on systems lacking a math coprocessor. There's also a OS/2 port using the EMX environment (GCC 2.3.3), which includes a DOS extender. The latest version may support DOS directly. Elan, Image Network, and SoftQuad have commercial versions of DWB for DOS machines. They tend to be a bit pricey - in the $500-$1200 range. There are many freeware versions of nroff that have either already been ported, or should be easy to port to DOS. For example, C implementations of Kernighan and Plauger's "Software Tools" "roff" (see Ozan Yigit's implementation available from comp.sources.unix). [roff isn't a complete implementation of nroff, depends on what you need.] Related: Ghostscript can be used on DOS to preview the output of any PostScript-producing application, including groff. If you do use GhostScript, make sure that you get the latest version with the good fonts. GhostScript also contains CGA and VGA drivers for on-screen preview. Cawf2 a C port of Henry Spencer's Amazing Workable Formatter (originally an awk program). It apparently does a reasonable job with -ms and -man macros. The C version is by Vic Abell and is available from ftp.cc. purdue.edu in pucc/cawf. It works on MSDOS and most or all UNIX systems. I'd appreciate any other leads on DOS nroff/troffs. ------------------------------ Subject: TR15. What books can I get about DWB? |Many of these books may be out of print now, so you may have to hunt |through Computer Science Libraries and UNIX programmer's secret caches. Troff User's Manual, by Ossanna and Kernighan, is available for | anonymous ftp as netlib.att.com:/netlib/att/cs/cstr/54.ps.Z. | The above URL may no longer be in existance, but apparently, | it's now available at http://www.kohala.com/~rstevens/troff/cstr54.ps | Also available is Kernighan's raw troff tutorial at: | http://www.kohala.com/~rstevens/troff/v7man/trofftut/trofftut.ps Document Formatting and Typesetting on the UNIX System, 2 volumes, Nerain Gehani, Silicon Press, ISBN 0-9615336-2-5. A very good general reference; covers troff, the preprocessors, and most of the popular macro packages. Typesetting Tables on the UNIX System, Henry McGilton, Mary McNabb. Trilithon Press, ISBN 0-9626289-0-5. A very good, very complete reference and tutorial on TBL. Unix Text Processing, Dale Dougherty & Tim O'Reilly, Hayden Books, ISBN 0-672-46291-5. A good discussion not just of troff (ms & mm), tbl, eqn, and pic, but also vi and ex, sed, and awk. Troff typesetting for Unix Systems, Sandra L. Emerson & Karen Paulsell (kjp@well?) Prentice-Hall, 0-13-930959-4. This is a good book for people wishing to write raw troff (as in rolling your own macros) troff-Programmierung: proffessionelle Textverarbeitung und Schriftsatz unter UNIX, Claus Schirmer, Hanser Verlag 1990, ISBN 3-446-15649-6. Reportedly a superb book on troff programming. Ie: a ms-like macro package is built in a step-by-step way. Don't know if there's non-German language version. The UNIX Text Processing System, Kaare Christian, Wiley, 1987. Is especially good on REFER, the best chapter on REFER available. [This book now appears to be out of print.] Text processing and typesetting with UNIX, D.W. Barron and Mike Rees, Addison-Wesley, 1987. ------------------------------ Subject: TR16. Complete DWB description. Documenter's Workbench (DWB) is the successor to the original Bell Labs version of troff. The current package, DWB 3.4, includes 86 commands: troff, tbl, eqn, grap, pic, picasso, a pipeline builder, PostScript drivers and utilities for bounding box computation and device interrogation; optional (at no cost) LaserJet and Imagen printer support; man, mm and other macro packages, font tables, etc. A companion add-on, DWBX 3.4, provides an X Window previewer, drawing program, spell corrector and hypertext man page viewer. The source code is fully-portable to UNIX SVR2, SVR3, SVR4, BSD and SunOS, and is available for corporate or university license at a fixed price, and for sublicense at a negotiable fee. Binaries are available for all AT&T, NCR and Sun UNIX platforms. One full set of documentation (7 booklets and 9 Quick Reference cards) included with each license. Sales inquiries: AT&T Software Solutions, 1-800-462-8146 (US), +1-908-580-5719 from elsewhere; fax 1-908-580-6355. Technical inquiries: dwb@mhpo.att.com.