xref: /original-bsd/old/roff/nroff_term/tabepson.c (revision a5a45b47)
1 /*-
2  * %sccs.include.proprietary.c%
3  *
4  *	@(#)tabepson.c	1.4 (Berkeley) 04/18/91
5  */
6 
7 /*************************************************************************
8  * This is 'tabepson.c' for an Epson FX80. Default spacing is elite.	 *
9  * This represents a combination and very slight modification of two	 *
10  *  nroff driving tables. Specifically :				 *
11  *									 *
12  *     tablpr.c  by UCB Computing Center (the approximation of greek)    *
13  *									 *
14  *     tabfx80p.c by Goeke@MIT-Multics.ARPA (Epson print mode switching) *
15  *	replaces big curly bracket parts with the following:		 *
16  *									 *
17  *		PRINT MODE:		  CHARACTER SEQUENCE		 *
18  *		FX80 set Double Strike 	 	\(lt			 *
19  *		FX80 cancels D.S.  	 	\(lb			 *
20  *		FX80 set Condensed 	 	\(rt			 *
21  *		FX80 cancels Condensed 	 	\(rb			 *
22  *		FX80 set Pica size 	 	\(lk			 *
23  *		FX80 set Elite size	 	\(rk			 *
24  *		FX80 set Proportional 	 	\(bv 			 *
25  *		FX80 set Expanded Mode 	 	\(lf 			 *
26  *		FX80 cancel Expanded Mode	\(rf 			 *
27  *		FX80 underline on 	 	\(lc 			 *
28  *		FX80 underline off 	 	\(rc 			 *
29  *									 *
30  *  --> J. Michael Cherry, 1/18/85  molbio@ucblapis or			 *
31  *				    ucbvax!molbio!mike			 *
32  *									 *
33  *************************************************************************/
34 
35 #define INCH 240
36 
37 struct {
38           int bset;               /* terminal driver set          */
39           int breset;             /* terminal driver reset        */
40           int Hor;                /* horizontal resolution        */
41           int Vert;               /* vetical resolution           */
42           int Newline;            /* length on one line feed      */
43           int Char;               /* character size increment     */
44           int Em;                 /* em size                      */
45           int Halfline;           /* length of half line feed     */
46           int Adj;                /* white size increment         */
47           char *twinit;           /* initialize string to printer */
48           char *twrest;           /* reset string to printer      */
49           char *twnl;             /* newline string               */
50           char *hlr;              /* half-line-feed-reverse       */
51           char *hlf;              /* half-line-feed-forward       */
52           char *flr;              /* full-line-feed-reverse       */
53           char *bdon;             /* bold-on string               */
54           char *bdoff;            /* bold-off string              */
55           char *ploton;           /* plot on string               */
56           char *plotoff;          /* plot off string              */
57           char *up;               /* these strings move as        */
58           char *down;             /*     indicated in plot mode   */
59           char *right;            /*     in best available        */
60           char *left;             /*     resolution               */
61           char *codetab[256-32];  /* see the table                */
62           int zzz;
63           } t = {
64 /*bset*/	0,
65 /*breset*/	0,
66 /*Hor*/		INCH/120,	/* must be consisten with plot increments */
67 /*Vert*/	INCH/48,	/* ditto */
68 /*Newline*/	INCH/6,
69 /*Char*/	INCH/12,	/* the character unit for the code table */
70 /*Em*/		INCH/12,	/* the nominal space size */
71 /*Halfline*/	INCH/12,
72 /*Adj*/		INCH/12,	/* the white caused by a single plot move */
73 /*twinit*/	"\033M",	/* invoke elite */
74 /*twrest*/	"\033@",	/* reset printer to deflauts */
75 /*twnl*/	"\n",		/* newline code        */
76 /*hlr*/		"\033j\022",
77 /*hlf*/		"\033J\022",	/* forward feed */
78 /*flr*/		"\033j\044",
79 /*bdon*/	"\033G",	/* Alternate chars.  '\fB' to invoke */
80 /*bdoff*/	"\033H",	/* Standard chars. '\fP' to invoke */
81 /*ploton*/	"",
82 /*plotoff*/	"",
83 /*up*/		"",
84 /*down*/	"",
85 /*right*/	"",
86 /*left*/	"",
87 
88 "\001 ",	/*space*/
89 "\001!",	/*!*/
90 "\001\"",	/*"*/
91 "\001#",	/*#*/
92 "\001$",	/*$*/
93 "\001%",	/*%*/
94 "\001&",	/*&*/
95 "\001'",	/*' close*/
96 "\001(",	/*(*/
97 "\001)",	/*)*/
98 "\001*",	/***/
99 "\001+",	/*+*/
100 "\001,",	/*,*/
101 "\001-",	/*- hyphen*/
102 "\001.",	/*.*/
103 "\001/",	/*/*/
104 "\2010",	/*0*/
105 "\2011",	/*1*/
106 "\2012",	/*2*/
107 "\2013",	/*3*/
108 "\2014",	/*4*/
109 "\2015",	/*5*/
110 "\2016",	/*6*/
111 "\2017",	/*7*/
112 "\2018",	/*8*/
113 "\2019",	/*9*/
114 "\001:",	/*:*/
115 "\001;",	/*;*/
116 "\001<",	/*<*/
117 "\001=",	/*=*/
118 "\001>",	/*>*/
119 "\001?",	/*?*/
120 "\001@",	/*@*/
121 "\201A",	/*A*/
122 "\201B",	/*B*/
123 "\201C",	/*C*/
124 "\201D",	/*D*/
125 "\201E",	/*E*/
126 "\201F",	/*F*/
127 "\201G",	/*G*/
128 "\201H",	/*H*/
129 "\201I",	/*I*/
130 "\201J",	/*J*/
131 "\201K",	/*K*/
132 "\201L",	/*L*/
133 "\201M",	/*M*/
134 "\201N",	/*N*/
135 "\201O",	/*O*/
136 "\201P",	/*P*/
137 "\201Q",	/*Q*/
138 "\201R",	/*R*/
139 "\201S",	/*S*/
140 "\201T",	/*T*/
141 "\201U",	/*U*/
142 "\201V",	/*V*/
143 "\201W",	/*W*/
144 "\201X",	/*X*/
145 "\201Y",	/*Y*/
146 "\201Z",	/*Z*/
147 "\001[",	/*[*/
148 "\001\\",	/*\*/
149 "\001]",	/*]*/
150 "\001^",	/*^*/
151 "\001_",	/*_ dash*/
152 "\001`",	/*` open*/
153 "\201a",	/*a*/
154 "\201b",	/*b*/
155 "\201c",	/*c*/
156 "\201d",	/*d*/
157 "\201e",	/*e*/
158 "\201f",	/*f*/
159 "\201g",	/*g*/
160 "\201h",	/*h*/
161 "\201i",	/*i*/
162 "\201j",	/*j*/
163 "\201k",	/*k*/
164 "\201l",	/*l*/
165 "\201m",	/*m*/
166 "\201n",	/*n*/
167 "\201o",	/*o*/
168 "\201p",	/*p*/
169 "\201q",	/*q*/
170 "\201r",	/*r*/
171 "\201s",	/*s*/
172 "\201t",	/*t*/
173 "\201u",	/*u*/
174 "\201v",	/*v*/
175 "\201w",	/*w*/
176 "\201x",	/*x*/
177 "\201y",	/*y*/
178 "\201z",	/*z*/
179 "\001{",	/*{*/
180 "\001|",	/*|*/
181 "\001}",	/*}*/
182 "\001~",	/*~*/
183 "\001",		/* narrow sp */
184 "\001-",	/*hyphen*/
185 "\001\033j\003.\033J\003",	/*bullet*/
186 "\002[]",	/*square*/
187 "\001-",	/*3/4 em*/
188 "\001_",	/*rule*/
189 "\0031/4",	/*1/4*/
190 "\0031/2",	/*1/2*/
191 "\0033/4",	/*3/4*/
192 "\001-",	/*minus*/
193 "\202fi",	/*fi*/
194 "\202fl",	/*fl*/
195 "\202ff",	/*ff*/
196 "\203ffi",	/*ffi*/
197 "\203ffl",	/*ffl*/
198 "\001\033j\013o\033J\013",	/*degree*/
199 "\001|\b\033j\002-\033J\002",	/*dagger*/
200 "\001 ",	/* section*/
201 "\001'",	/*foot mark*/
202 "\001'",	/*acute accent*/
203 "\001`",	/*grave accent*/
204 "\001_",	/*underrule*/
205 "\001/",	/*slash (longer)*/
206 "\001\0",	/*half narrow space => 1/12 em */
207 "\001 ",	/*unpaddable space*/
208 "\201o\b(", 	/*alpha*/
209 "\2018\b|", 	/*beta*/
210 "\201>\b/", 	/*gamma*/
211 "\201d\b`", 	/*delta*/
212 "\201C\b-", 	/*epsilon*/
213 "\000\0", 	/*zeta*/
214 "\201n",	/*eta*/
215 "\201o\b-", 	/*theta*/
216 "\201i",	/*iota*/
217 "\201k",	/*kappa*/
218 "\201,\b\\", 	/*lambda*/
219 "\201u",	/*mu*/
220 "\201v",	/*nu*/
221 "\000\0", 	/*xi*/
222 "\201o",	/*omicron*/
223 "\202i\b~i\b~",	/*pi*/
224 "\201p",	/*rho*/
225 "\201o\b~", 	/*sigma*/
226 "\201i\b~", 	/*tau*/
227 "\201u",	/*upsilon*/
228 "\201o\b|", 	/*phi*/
229 "\201x",	/*chi*/
230 "\201u\b|", 	/*psi*/
231 "\201w", 	/*omega*/
232 "\201I\b~", 	/*Gamma*/
233 "\202/\b_\\\b_", /*Delta*/
234 "\201O\b-",	/*Theta*/
235 "\202/\\",	/*Lambda*/
236 "\201=\b_",	/*Xi*/
237 "\202TT",	/*Pi*/
238 "\201>\b_\b~", 	/*Sigma*/
239 "\000",		/**/
240 "\201Y",	/*Upsilon*/
241 "\201O\b|",	/*Phi*/
242 "\201U\b|",	/*Psi*/
243 "\201O\b_",	/*Omega*/
244 "\001v\b/",	/*square root*/
245 "\000\0",	/*terminal sigma*/
246 "\001~",	/*root en*/
247 "\001>\b_",	/*>=*/
248 "\001<\b_",	/*<=*/
249 "\001=\b_",	/*identically equal*/
250 "\001-",	/*equation minus*/
251 "\001~\b_",	/*approx =*/
252 "\001~",	/*approximates*/
253 "\001=\b/",	/*not equal*/
254 "\002->",	/*right arrow*/
255 "\002<-",	/*left arrow*/
256 "\001|\b^",	/*up arrow*/
257 "\001|\bv",	/*down arrow*/
258 "\001=",	/*equation equal*/
259 "\001x",	/*multiply*/
260 "\001:\b-",	/*divide*/
261 "\001+\b_",	/*plus-minus*/
262 "\002(\b~)\b~",	/*cup (union)*/
263 "\002(\b_)\b_",	/*cap (intersection)*/
264 "\002(=",	/*subset of*/
265 "\002=)",	/*superset of*/
266 "\002(=\b_",	/*improper subset*/
267 "\002=\b_)",	/*improper superset*/
268 "\002oo",	/*infinity*/
269 "\001o\b`",	/*partial derivative*/
270 "\002\\\b~/\b~", /*gradient*/
271 "\000\0",	/*not*/
272 "\000\0",	/*integral sign*/
273 "\002oc",	/*proportional to*/
274 "\001O\b/",	/*empty set*/
275 "\001<\b-",	/*member of*/
276 "\001+",	/*equation plus*/
277 "\003(R)",	/*registered*/
278 "\003(C)",	/*copyright*/
279 "\001|",	/*box rule */
280 "\001c\b/",	/*cent sign*/
281 "\001|\b=",	/*dbl dagger*/
282 "\002=>",	/*right hand*/
283 "\002<=",	/*left hand*/
284 "\001*",	/*math * */
285 "\000\0",	/*bell system sign*/
286 "\001|",	/*or (was star)*/
287 "\001O",	/*circle*/
288 "\000\033G",	/* FX80 set Double Strike */	/* \(lt */
289 "\000\033H",	/* FX80 cancels D.S.  */	/* \(lb */
290 };
291