xref: /illumos-gate/usr/src/cmd/troff/troff.d/README (revision 7c478bd9)
1*7c478bd9Sstevel@tonic-gate#
2*7c478bd9Sstevel@tonic-gate# CDDL HEADER START
3*7c478bd9Sstevel@tonic-gate#
4*7c478bd9Sstevel@tonic-gate# The contents of this file are subject to the terms of the
5*7c478bd9Sstevel@tonic-gate# Common Development and Distribution License, Version 1.0 only
6*7c478bd9Sstevel@tonic-gate# (the "License").  You may not use this file except in compliance
7*7c478bd9Sstevel@tonic-gate# with the License.
8*7c478bd9Sstevel@tonic-gate#
9*7c478bd9Sstevel@tonic-gate# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10*7c478bd9Sstevel@tonic-gate# or http://www.opensolaris.org/os/licensing.
11*7c478bd9Sstevel@tonic-gate# See the License for the specific language governing permissions
12*7c478bd9Sstevel@tonic-gate# and limitations under the License.
13*7c478bd9Sstevel@tonic-gate#
14*7c478bd9Sstevel@tonic-gate# When distributing Covered Code, include this CDDL HEADER in each
15*7c478bd9Sstevel@tonic-gate# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16*7c478bd9Sstevel@tonic-gate# If applicable, add the following below this CDDL HEADER, with the
17*7c478bd9Sstevel@tonic-gate# fields enclosed by brackets "[]" replaced with your own identifying
18*7c478bd9Sstevel@tonic-gate# information: Portions Copyright [yyyy] [name of copyright owner]
19*7c478bd9Sstevel@tonic-gate#
20*7c478bd9Sstevel@tonic-gate# CDDL HEADER END
21*7c478bd9Sstevel@tonic-gate#
22*7c478bd9Sstevel@tonic-gate#
23*7c478bd9Sstevel@tonic-gate# Copyright 1989 Sun Microsystems, Inc.  All rights reserved.
24*7c478bd9Sstevel@tonic-gate# Use is subject to license terms.
25*7c478bd9Sstevel@tonic-gate#
26*7c478bd9Sstevel@tonic-gate
27*7c478bd9Sstevel@tonic-gate#ident	"%Z%%M%	%I%	%E% SMI"
28*7c478bd9Sstevel@tonic-gate
29*7c478bd9Sstevel@tonic-gate#
30*7c478bd9Sstevel@tonic-gate# University Copyright- Copyright (c) 1982, 1986, 1988
31*7c478bd9Sstevel@tonic-gate# The Regents of the University of California
32*7c478bd9Sstevel@tonic-gate# All Rights Reserved
33*7c478bd9Sstevel@tonic-gate#
34*7c478bd9Sstevel@tonic-gate# University Acknowledgment- Portions of this document are derived from
35*7c478bd9Sstevel@tonic-gate# software developed by the University of California, Berkeley, and its
36*7c478bd9Sstevel@tonic-gate# contributors.
37*7c478bd9Sstevel@tonic-gate#
38*7c478bd9Sstevel@tonic-gate
39*7c478bd9Sstevel@tonic-gateThe troff in this directory
40*7c478bd9Sstevel@tonic-gateis a troff that produces machine-independent output.
41*7c478bd9Sstevel@tonic-gateIt requires a file of descriptive information about
42*7c478bd9Sstevel@tonic-gatethe particular typesetter you have in mind, and produces
43*7c478bd9Sstevel@tonic-gateoutput parameterized for that device.
44*7c478bd9Sstevel@tonic-gate
45*7c478bd9Sstevel@tonic-gateThus:
46*7c478bd9Sstevel@tonic-gate	troff -Taps ...
47*7c478bd9Sstevel@tonic-gateproduces output for the Autologic APS-5.
48*7c478bd9Sstevel@tonic-gate(This is the default.)
49*7c478bd9Sstevel@tonic-gate
50*7c478bd9Sstevel@tonic-gateTo make this work, you need two things.
51*7c478bd9Sstevel@tonic-gateFirst, you need to create a set of
52*7c478bd9Sstevel@tonic-gatedevice and font descriptions in the directory
53*7c478bd9Sstevel@tonic-gate	/usr/doctools/font/devxxx
54*7c478bd9Sstevel@tonic-gatewhere "xxx" is your device name.
55*7c478bd9Sstevel@tonic-gateCurrently supported device is
56*7c478bd9Sstevel@tonic-gate	aps	Autologic APS-5 phototypesetter
57*7c478bd9Sstevel@tonic-gateSource for this device is found in the subdirectory
58*7c478bd9Sstevel@tonic-gatedevaps of this directory.
59*7c478bd9Sstevel@tonic-gate
60*7c478bd9Sstevel@tonic-gateThe file "DESC" contains information about the
61*7c478bd9Sstevel@tonic-gatedevice itself and the character set.  (See devaps/DESC.)
62*7c478bd9Sstevel@tonic-gate
63*7c478bd9Sstevel@tonic-gateIn addition, each font needs a file describing its
64*7c478bd9Sstevel@tonic-gatecharacters, width and device-driving codes;
65*7c478bd9Sstevel@tonic-gatesee R and S for typical examples.
66*7c478bd9Sstevel@tonic-gate
67*7c478bd9Sstevel@tonic-gateThe program "makedev" will convert these text
68*7c478bd9Sstevel@tonic-gatedescriptions into a binary form that the troff can
69*7c478bd9Sstevel@tonic-gateslurp up in a single gulp during initialization;
70*7c478bd9Sstevel@tonic-gatethese wind up in DESC.out (which includes
71*7c478bd9Sstevel@tonic-gatedefault font info) and XX.out for info about font XX.
72*7c478bd9Sstevel@tonic-gate
73*7c478bd9Sstevel@tonic-gateThe second half of the job is to write a post-processor
74*7c478bd9Sstevel@tonic-gatethat converts the more or less machine-independent troff
75*7c478bd9Sstevel@tonic-gateoutput into specific codes for your favorite typesetter.
76*7c478bd9Sstevel@tonic-gatedaps.c is the driver for the APS-5;
77*7c478bd9Sstevel@tonic-gateit will serve as a useful prototype.  In particular,
78*7c478bd9Sstevel@tonic-gateit contains a precise description of the output language.
79*7c478bd9Sstevel@tonic-gate	ta	prints ascii on ordinary terminals (crudely)
80*7c478bd9Sstevel@tonic-gate
81*7c478bd9Sstevel@tonic-gateOne can always simply run
82*7c478bd9Sstevel@tonic-gate	troff
83*7c478bd9Sstevel@tonic-gateand look at the output; it is guaranteed to be ascii text
84*7c478bd9Sstevel@tonic-gateand thus safe to edit, grep, etc.
85*7c478bd9Sstevel@tonic-gate(Since it is ascii, it is also guaranteed to be quite voluminous.)
86*7c478bd9Sstevel@tonic-gate
87*7c478bd9Sstevel@tonic-gateThe recommended way to create the necessary files to make troff
88*7c478bd9Sstevel@tonic-gateable to communicate with a new output device
89*7c478bd9Sstevel@tonic-gateis to pick the most similar device for which this software
90*7c478bd9Sstevel@tonic-gatealready exists, and modify it to suit the new device.
91*7c478bd9Sstevel@tonic-gate
92*7c478bd9Sstevel@tonic-gateThis release contains prototype software for one
93*7c478bd9Sstevel@tonic-gatetype of device -- a phototypesetter (devaps)
94*7c478bd9Sstevel@tonic-gateThe devaps subtree contains
95*7c478bd9Sstevel@tonic-gateprofusely-commented programs and strategically placed README
96*7c478bd9Sstevel@tonic-gatefiles to help guide the experienced user in making
97*7c478bd9Sstevel@tonic-gatemodifications to these files.
98*7c478bd9Sstevel@tonic-gate
99*7c478bd9Sstevel@tonic-gateTwo other source of information for users who wish to delve
100*7c478bd9Sstevel@tonic-gatedeeply into this software are the manual pages
101*7c478bd9Sstevel@tonic-gatetroff(5), which describes the output language produced by troff,
102*7c478bd9Sstevel@tonic-gateand font(5), which describes the format of the device
103*7c478bd9Sstevel@tonic-gateand font description files.
104*7c478bd9Sstevel@tonic-gate
105*7c478bd9Sstevel@tonic-gate-----------------------------------------------------------------------------
106*7c478bd9Sstevel@tonic-gate
107*7c478bd9Sstevel@tonic-gateChanges since the original release:
108*7c478bd9Sstevel@tonic-gate
109*7c478bd9Sstevel@tonic-gateJanuary, 1985:
110*7c478bd9Sstevel@tonic-gate
111*7c478bd9Sstevel@tonic-gateAdded optional 3rd argument to .fp command:
112*7c478bd9Sstevel@tonic-gate	.fp 3 xx longishname
113*7c478bd9Sstevel@tonic-gatecauses font to be called xx but data is loaded
114*7c478bd9Sstevel@tonic-gatefrom longishname.out instead of xx.out.
115*7c478bd9Sstevel@tonic-gateThe intent is to deal with the proliferation of fonts.
116*7c478bd9Sstevel@tonic-gate
117*7c478bd9Sstevel@tonic-gateTurned NBLIST up to 2048 so can handle really big
118*7c478bd9Sstevel@tonic-gatediversions.  Tends to blow various systems.
119*7c478bd9Sstevel@tonic-gate
120*7c478bd9Sstevel@tonic-gateDecember 1984:
121*7c478bd9Sstevel@tonic-gate
122*7c478bd9Sstevel@tonic-gateNroff modified to read ascii tables for various devices
123*7c478bd9Sstevel@tonic-gateinstead of the compiled C code nonsense.  Only a few
124*7c478bd9Sstevel@tonic-gatetables converted;  details of language still subject to
125*7c478bd9Sstevel@tonic-gatechange.
126*7c478bd9Sstevel@tonic-gate
127*7c478bd9Sstevel@tonic-gateSeptember 1984:
128*7c478bd9Sstevel@tonic-gate
129*7c478bd9Sstevel@tonic-gateAdded Molly Wagner's code to prevent side effects
130*7c478bd9Sstevel@tonic-gateduring scanning of false branch of an if.
131*7c478bd9Sstevel@tonic-gate
132*7c478bd9Sstevel@tonic-gateAdded test warning when one removes a macro during
133*7c478bd9Sstevel@tonic-gateits execution (more precisely, warning when a macro
134*7c478bd9Sstevel@tonic-gateevaluation has encountered a freed block).
135*7c478bd9Sstevel@tonic-gate[Disabled Nov 84;  it seemed to cause troubles]
136*7c478bd9Sstevel@tonic-gate
137*7c478bd9Sstevel@tonic-gateNS = 128;  devname[] is bigger;  turned off the -t
138*7c478bd9Sstevel@tonic-gateargument (it could be a synonym for -T but that's
139*7c478bd9Sstevel@tonic-gateprobably just as risky.)
140*7c478bd9Sstevel@tonic-gate
141*7c478bd9Sstevel@tonic-gateJuly, 1984:
142*7c478bd9Sstevel@tonic-gate
143*7c478bd9Sstevel@tonic-gateAdded TYPESETTER environment variable
144*7c478bd9Sstevel@tonic-gate
145*7c478bd9Sstevel@tonic-gateAdded \X'...' command:  ... comes out as
146*7c478bd9Sstevel@tonic-gate	x X ...\n in proper place. (doesn't nest)
147*7c478bd9Sstevel@tonic-gate
148*7c478bd9Sstevel@tonic-gateIn \D comands, unrecognized command letters are passed through
149*7c478bd9Sstevel@tonic-gateuntouched.  This makes it possible to define things like other
150*7c478bd9Sstevel@tonic-gatesplines, filled polygons, etc.
151*7c478bd9Sstevel@tonic-gate
152*7c478bd9Sstevel@tonic-gate\s(dd, \s(+dd, \s(-dd size commands.
153*7c478bd9Sstevel@tonic-gate
154*7c478bd9Sstevel@tonic-gateAdded .lf line filename to set current line number & filename
155*7c478bd9Sstevel@tonic-gate
156*7c478bd9Sstevel@tonic-gateAdded Dan Berry's fixes to handle horizontal resolution properly.
157*7c478bd9Sstevel@tonic-gate
158*7c478bd9Sstevel@tonic-gateNew, March 1984:
159*7c478bd9Sstevel@tonic-gate
160*7c478bd9Sstevel@tonic-gateDennis Ritchie's hashed macro and number register tables;
161*7c478bd9Sstevel@tonic-gatecached width computations, general cleanup.
162*7c478bd9Sstevel@tonic-gateMinor work on de-linting.
163*7c478bd9Sstevel@tonic-gate
164*7c478bd9Sstevel@tonic-gateNew comments 9/16/83
165*7c478bd9Sstevel@tonic-gate
166*7c478bd9Sstevel@tonic-gateThis version is the current evolution of 8th Edition troff.
167*7c478bd9Sstevel@tonic-gateThe only changes of substance since the export version are
168*7c478bd9Sstevel@tonic-gate
169*7c478bd9Sstevel@tonic-gate	the end of a sentence is more general; things like
170*7c478bd9Sstevel@tonic-gate	." .!'' etc are recognized and padded
171*7c478bd9Sstevel@tonic-gate
172*7c478bd9Sstevel@tonic-gate	the "font too big for position n" error can no longer arise.
173*7c478bd9Sstevel@tonic-gate	makedev has a new parameter called biggestfont that
174*7c478bd9Sstevel@tonic-gate	ensures that all font positions are at least that big.
175*7c478bd9Sstevel@tonic-gate	this eliminates the "font X too big for position Y" message
176*7c478bd9Sstevel@tonic-gate
177*7c478bd9Sstevel@tonic-gate	some minor bugs fixes have been made:
178*7c478bd9Sstevel@tonic-gate		doesn't look for ligatures in \nf
179*7c478bd9Sstevel@tonic-gate		doesn't put out WORDSP in -a
180*7c478bd9Sstevel@tonic-gate
181*7c478bd9Sstevel@tonic-gate	troff no longer produces \^ and \| on output,
182*7c478bd9Sstevel@tonic-gate	but this hasn't been tested much since it takes
183*7c478bd9Sstevel@tonic-gate	character set changes too.
184*7c478bd9Sstevel@tonic-gate
185