mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-18 10:35:55 +00:00
Removed files not present in v1.17 import.
This commit is contained in:
parent
9a381181f1
commit
af2786323e
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=75587
@ -1,101 +0,0 @@
|
|||||||
.ig \"-*- nroff -*-
|
|
||||||
Copyright (C) 1989-1995 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
Permission is granted to make and distribute verbatim copies of
|
|
||||||
this manual provided the copyright notice and this permission notice
|
|
||||||
are preserved on all copies.
|
|
||||||
|
|
||||||
Permission is granted to copy and distribute modified versions of this
|
|
||||||
manual under the conditions for verbatim copying, provided that the
|
|
||||||
entire resulting derived work is distributed under the terms of a
|
|
||||||
permission notice identical to this one.
|
|
||||||
|
|
||||||
Permission is granted to copy and distribute translations of this
|
|
||||||
manual into another language, under the above conditions for modified
|
|
||||||
versions, except that this permission notice may be included in
|
|
||||||
translations approved by the Free Software Foundation instead of in
|
|
||||||
the original English.
|
|
||||||
..
|
|
||||||
.TH ADDFTINFO @MAN1EXT@ "@MDATE@" "Groff Version @VERSION@"
|
|
||||||
.SH NAME
|
|
||||||
addftinfo \- add information to troff font files for use with groff
|
|
||||||
.SH SYNOPSIS
|
|
||||||
.B addftinfo
|
|
||||||
[
|
|
||||||
.BI \- param\ value\fR.\|.\|.
|
|
||||||
]
|
|
||||||
.I res
|
|
||||||
.I unitwidth
|
|
||||||
.I font
|
|
||||||
.SH DESCRIPTION
|
|
||||||
.B addftinfo
|
|
||||||
reads a troff font file
|
|
||||||
and adds some additional font-metric information
|
|
||||||
that is used by the groff system.
|
|
||||||
The font file with the information added is written on the
|
|
||||||
standard output.
|
|
||||||
The information added is guessed using
|
|
||||||
some parametric information about the font
|
|
||||||
and assumptions
|
|
||||||
about the traditional troff names for characters.
|
|
||||||
The main information added is the heights and depths of characters.
|
|
||||||
The
|
|
||||||
.I res
|
|
||||||
and
|
|
||||||
.I unitwidth
|
|
||||||
arguments should be the same as the corresponding parameters
|
|
||||||
in the DESC file;
|
|
||||||
.I font
|
|
||||||
is the name of the file describing the font;
|
|
||||||
if
|
|
||||||
.I font
|
|
||||||
ends with
|
|
||||||
.B I
|
|
||||||
the font will be assumed to be italic.
|
|
||||||
.SH OPTIONS
|
|
||||||
Each of the options changes one of the parameters that is used
|
|
||||||
to derive the heights and depths.
|
|
||||||
Like the existing quantities in the font
|
|
||||||
file, each
|
|
||||||
.I value
|
|
||||||
is in
|
|
||||||
.RI inches/ res
|
|
||||||
for a font whose point size is
|
|
||||||
.IR unitwidth .
|
|
||||||
.I param
|
|
||||||
must be one of:
|
|
||||||
.TP
|
|
||||||
.B x-height
|
|
||||||
The height of lowercase letters without ascenders such as x.
|
|
||||||
.TP
|
|
||||||
.B fig-height
|
|
||||||
The height of figures (digits).
|
|
||||||
.TP
|
|
||||||
.B asc-height
|
|
||||||
The height of characters with ascenders, such as b, d or l.
|
|
||||||
.TP
|
|
||||||
.B body-height
|
|
||||||
The height of characters such as parentheses.
|
|
||||||
.TP
|
|
||||||
.B cap-height
|
|
||||||
The height of uppercase letters such as A.
|
|
||||||
.TP
|
|
||||||
.B comma-depth
|
|
||||||
The depth of a comma.
|
|
||||||
.TP
|
|
||||||
.B desc-depth
|
|
||||||
The depth of characters with descenders, such as p,q, or y.
|
|
||||||
.TP
|
|
||||||
.B body-depth
|
|
||||||
The depth of characters such as parentheses.
|
|
||||||
.LP
|
|
||||||
.B addftinfo
|
|
||||||
makes no attempt to use the specified parameters to guess
|
|
||||||
the unspecified parameters.
|
|
||||||
If a parameter is not specified the default will be used.
|
|
||||||
The defaults are chosen to have the reasonable values for
|
|
||||||
a Times font.
|
|
||||||
.SH "SEE ALSO"
|
|
||||||
.BR groff_font (@MAN5EXT@),
|
|
||||||
.BR groff (@MAN1EXT@),
|
|
||||||
.BR groff_char (@MAN7EXT@)
|
|
@ -1,9 +0,0 @@
|
|||||||
# $FreeBSD$
|
|
||||||
res 240
|
|
||||||
hor 24
|
|
||||||
vert 40
|
|
||||||
unitwidth 10
|
|
||||||
sizes 10 0
|
|
||||||
fonts 4 R I B BI
|
|
||||||
tcommand
|
|
||||||
postpro grotty
|
|
@ -1,168 +0,0 @@
|
|||||||
# $FreeBSD$
|
|
||||||
name R
|
|
||||||
internalname 0
|
|
||||||
spacewidth 24
|
|
||||||
charset
|
|
||||||
! 24 0 0041
|
|
||||||
" 24 0 0042
|
|
||||||
dq "
|
|
||||||
lq "
|
|
||||||
rq "
|
|
||||||
# 24 0 0043
|
|
||||||
sh "
|
|
||||||
$ 24 0 0044
|
|
||||||
Do "
|
|
||||||
% 24 0 0045
|
|
||||||
& 24 0 0046
|
|
||||||
' 24 0 0047
|
|
||||||
aa "
|
|
||||||
fm "
|
|
||||||
aq "
|
|
||||||
cq "
|
|
||||||
( 24 0 0050
|
|
||||||
) 24 0 0051
|
|
||||||
* 24 0 0052
|
|
||||||
** "
|
|
||||||
+ 24 0 0053
|
|
||||||
pl "
|
|
||||||
, 24 0 0054
|
|
||||||
\- 24 0 0055
|
|
||||||
hy "
|
|
||||||
- "
|
|
||||||
mi "
|
|
||||||
en "
|
|
||||||
. 24 0 0056
|
|
||||||
/ 24 0 0057
|
|
||||||
sl "
|
|
||||||
f/ "
|
|
||||||
0 24 0 0060
|
|
||||||
1 24 0 0061
|
|
||||||
2 24 0 0062
|
|
||||||
3 24 0 0063
|
|
||||||
4 24 0 0064
|
|
||||||
5 24 0 0065
|
|
||||||
6 24 0 0066
|
|
||||||
7 24 0 0067
|
|
||||||
8 24 0 0070
|
|
||||||
9 24 0 0071
|
|
||||||
: 24 0 0072
|
|
||||||
; 24 0 0073
|
|
||||||
< 24 0 0074
|
|
||||||
la "
|
|
||||||
fo "
|
|
||||||
= 24 0 0075
|
|
||||||
eq "
|
|
||||||
> 24 0 0076
|
|
||||||
ra "
|
|
||||||
fc "
|
|
||||||
? 24 0 0077
|
|
||||||
@ 24 0 0100
|
|
||||||
at "
|
|
||||||
A 24 0 0101
|
|
||||||
*A "
|
|
||||||
B 24 0 0102
|
|
||||||
*B "
|
|
||||||
C 24 0 0103
|
|
||||||
D 24 0 0104
|
|
||||||
E 24 0 0105
|
|
||||||
*E "
|
|
||||||
F 24 0 0106
|
|
||||||
G 24 0 0107
|
|
||||||
H 24 0 0110
|
|
||||||
*Y "
|
|
||||||
I 24 0 0111
|
|
||||||
*I "
|
|
||||||
J 24 0 0112
|
|
||||||
K 24 0 0113
|
|
||||||
*K "
|
|
||||||
L 24 0 0114
|
|
||||||
M 24 0 0115
|
|
||||||
*M "
|
|
||||||
N 24 0 0116
|
|
||||||
*N "
|
|
||||||
O 24 0 0117
|
|
||||||
ci "
|
|
||||||
*O "
|
|
||||||
P 24 0 0120
|
|
||||||
*R "
|
|
||||||
Q 24 0 0121
|
|
||||||
R 24 0 0122
|
|
||||||
S 24 0 0123
|
|
||||||
T 24 0 0124
|
|
||||||
*T "
|
|
||||||
U 24 0 0125
|
|
||||||
V 24 0 0126
|
|
||||||
W 24 0 0127
|
|
||||||
X 24 0 0130
|
|
||||||
*X "
|
|
||||||
Y 24 0 0131
|
|
||||||
*U "
|
|
||||||
Z 24 0 0132
|
|
||||||
*Z "
|
|
||||||
[ 24 0 0133
|
|
||||||
lB "
|
|
||||||
\ 24 0 0134
|
|
||||||
rs "
|
|
||||||
] 24 0 0135
|
|
||||||
rB "
|
|
||||||
a^ 24 0 0136
|
|
||||||
^ "
|
|
||||||
ha "
|
|
||||||
_ 24 0 0137
|
|
||||||
ru "
|
|
||||||
ul "
|
|
||||||
` 24 0 0140
|
|
||||||
oq "
|
|
||||||
ga "
|
|
||||||
a 24 0 0141
|
|
||||||
b 24 0 0142
|
|
||||||
c 24 0 0143
|
|
||||||
d 24 0 0144
|
|
||||||
e 24 0 0145
|
|
||||||
f 24 0 0146
|
|
||||||
g 24 0 0147
|
|
||||||
h 24 0 0150
|
|
||||||
i 24 0 0151
|
|
||||||
.i "
|
|
||||||
j 24 0 0152
|
|
||||||
k 24 0 0153
|
|
||||||
l 24 0 0154
|
|
||||||
m 24 0 0155
|
|
||||||
n 24 0 0156
|
|
||||||
o 24 0 0157
|
|
||||||
*o "
|
|
||||||
p 24 0 0160
|
|
||||||
q 24 0 0161
|
|
||||||
r 24 0 0162
|
|
||||||
s 24 0 0163
|
|
||||||
t 24 0 0164
|
|
||||||
u 24 0 0165
|
|
||||||
v 24 0 0166
|
|
||||||
w 24 0 0167
|
|
||||||
x 24 0 0170
|
|
||||||
mu "
|
|
||||||
y 24 0 0171
|
|
||||||
z 24 0 0172
|
|
||||||
lC 24 0 0173
|
|
||||||
{ "
|
|
||||||
ba 24 0 0174
|
|
||||||
or "
|
|
||||||
bv "
|
|
||||||
br "
|
|
||||||
| "
|
|
||||||
lb "
|
|
||||||
lc "
|
|
||||||
lf "
|
|
||||||
lk "
|
|
||||||
lt "
|
|
||||||
rb "
|
|
||||||
rc "
|
|
||||||
rf "
|
|
||||||
rk "
|
|
||||||
rt "
|
|
||||||
rC 24 0 0175
|
|
||||||
} "
|
|
||||||
a~ 24 0 0176
|
|
||||||
~ "
|
|
||||||
ap "
|
|
||||||
ti "
|
|
@ -1,8 +0,0 @@
|
|||||||
res 240
|
|
||||||
hor 24
|
|
||||||
vert 40
|
|
||||||
unitwidth 10
|
|
||||||
sizes 10 0
|
|
||||||
fonts 6 R I B BI S L
|
|
||||||
tcommand
|
|
||||||
postpro grotty
|
|
@ -1,32 +0,0 @@
|
|||||||
DEV=koi8-r
|
|
||||||
FONTS=R I B BI
|
|
||||||
DEVFILES=$(FONTS) DESC
|
|
||||||
CLEANADD=$(FONTS) DESC
|
|
||||||
|
|
||||||
RES=240
|
|
||||||
CPI=10
|
|
||||||
LPI=6
|
|
||||||
|
|
||||||
$(FONTS): R.proto
|
|
||||||
@echo Making $@
|
|
||||||
@-rm -f $@
|
|
||||||
@(charwidth=`expr $(RES) / $(CPI)` ; \
|
|
||||||
sed -e "s/^name [A-Z]*$$/name $@/" \
|
|
||||||
-e "s/^\\([^ ]*\\) [0-9]+ /\\1 $$charwidth /" \
|
|
||||||
-e "s/^spacewidth [0-9]+$$/spacewidth $$charwidth/" \
|
|
||||||
-e "s/^internalname .*$$/internalname $@/" \
|
|
||||||
-e "/^internalname/s/BI/3/" \
|
|
||||||
-e "/^internalname/s/B/2/" \
|
|
||||||
-e "/^internalname/s/I/1/" \
|
|
||||||
-e "/^internalname .*[^ 0-9]/d" \
|
|
||||||
$(srcdir)/R.proto >$@)
|
|
||||||
|
|
||||||
DESC: DESC.proto
|
|
||||||
@echo Making $@
|
|
||||||
@-rm -f $@
|
|
||||||
@sed -e "s/^res .*$$/res $(RES)/" \
|
|
||||||
-e "s/^hor .*$$/hor `expr $(RES) / $(CPI)`/" \
|
|
||||||
-e "s/^vert .*$$/vert `expr $(RES) / $(LPI)`/" \
|
|
||||||
-e "s/^fonts .*$$/fonts `set $(FONTS); echo $$#` $(FONTS)/" \
|
|
||||||
$(srcdir)/DESC.proto >$@
|
|
||||||
|
|
@ -1,299 +0,0 @@
|
|||||||
name R
|
|
||||||
internalname 0
|
|
||||||
spacewidth 24
|
|
||||||
charset
|
|
||||||
! 24 0 0041
|
|
||||||
" 24 0 0042
|
|
||||||
lq "
|
|
||||||
rq "
|
|
||||||
# 24 0 0043
|
|
||||||
sh "
|
|
||||||
$ 24 0 0044
|
|
||||||
Do "
|
|
||||||
% 24 0 0045
|
|
||||||
& 24 0 0046
|
|
||||||
' 24 0 0047
|
|
||||||
aa "
|
|
||||||
fm "
|
|
||||||
aq "
|
|
||||||
( 24 0 0050
|
|
||||||
) 24 0 0051
|
|
||||||
* 24 0 0052
|
|
||||||
** "
|
|
||||||
+ 24 0 0053
|
|
||||||
pl "
|
|
||||||
, 24 0 0054
|
|
||||||
\- 24 0 0055
|
|
||||||
hy "
|
|
||||||
- "
|
|
||||||
mi "
|
|
||||||
en "
|
|
||||||
em "
|
|
||||||
. 24 0 0056
|
|
||||||
/ 24 0 0057
|
|
||||||
sl "
|
|
||||||
f/ "
|
|
||||||
0 24 0 0060
|
|
||||||
1 24 0 0061
|
|
||||||
2 24 0 0062
|
|
||||||
3 24 0 0063
|
|
||||||
4 24 0 0064
|
|
||||||
5 24 0 0065
|
|
||||||
6 24 0 0066
|
|
||||||
7 24 0 0067
|
|
||||||
8 24 0 0070
|
|
||||||
9 24 0 0071
|
|
||||||
: 24 0 0072
|
|
||||||
; 24 0 0073
|
|
||||||
< 24 0 0074
|
|
||||||
la "
|
|
||||||
fo "
|
|
||||||
= 24 0 0075
|
|
||||||
eq "
|
|
||||||
> 24 0 0076
|
|
||||||
ra "
|
|
||||||
fc "
|
|
||||||
? 24 0 0077
|
|
||||||
@ 24 0 0100
|
|
||||||
at "
|
|
||||||
A 24 0 0101
|
|
||||||
*A "
|
|
||||||
B 24 0 0102
|
|
||||||
*B "
|
|
||||||
C 24 0 0103
|
|
||||||
D 24 0 0104
|
|
||||||
E 24 0 0105
|
|
||||||
*E "
|
|
||||||
F 24 0 0106
|
|
||||||
G 24 0 0107
|
|
||||||
H 24 0 0110
|
|
||||||
*Y "
|
|
||||||
I 24 0 0111
|
|
||||||
*I "
|
|
||||||
J 24 0 0112
|
|
||||||
K 24 0 0113
|
|
||||||
*K "
|
|
||||||
L 24 0 0114
|
|
||||||
M 24 0 0115
|
|
||||||
*M "
|
|
||||||
N 24 0 0116
|
|
||||||
*N "
|
|
||||||
O 24 0 0117
|
|
||||||
ci "
|
|
||||||
*O "
|
|
||||||
P 24 0 0120
|
|
||||||
*R "
|
|
||||||
Q 24 0 0121
|
|
||||||
R 24 0 0122
|
|
||||||
S 24 0 0123
|
|
||||||
T 24 0 0124
|
|
||||||
*T "
|
|
||||||
U 24 0 0125
|
|
||||||
V 24 0 0126
|
|
||||||
W 24 0 0127
|
|
||||||
X 24 0 0130
|
|
||||||
*X "
|
|
||||||
Y 24 0 0131
|
|
||||||
*U "
|
|
||||||
Z 24 0 0132
|
|
||||||
*Z "
|
|
||||||
[ 24 0 0133
|
|
||||||
lB "
|
|
||||||
\ 24 0 0134
|
|
||||||
rs "
|
|
||||||
] 24 0 0135
|
|
||||||
rB "
|
|
||||||
a^ 24 0 0136
|
|
||||||
^ "
|
|
||||||
ha "
|
|
||||||
_ 24 0 0137
|
|
||||||
ru "
|
|
||||||
ul "
|
|
||||||
` 24 0 0140
|
|
||||||
oq "
|
|
||||||
ga "
|
|
||||||
a 24 0 0141
|
|
||||||
b 24 0 0142
|
|
||||||
c 24 0 0143
|
|
||||||
d 24 0 0144
|
|
||||||
e 24 0 0145
|
|
||||||
f 24 0 0146
|
|
||||||
g 24 0 0147
|
|
||||||
h 24 0 0150
|
|
||||||
i 24 0 0151
|
|
||||||
.i "
|
|
||||||
j 24 0 0152
|
|
||||||
k 24 0 0153
|
|
||||||
l 24 0 0154
|
|
||||||
m 24 0 0155
|
|
||||||
n 24 0 0156
|
|
||||||
o 24 0 0157
|
|
||||||
*o "
|
|
||||||
:o "
|
|
||||||
/o "
|
|
||||||
p 24 0 0160
|
|
||||||
q 24 0 0161
|
|
||||||
r 24 0 0162
|
|
||||||
s 24 0 0163
|
|
||||||
t 24 0 0164
|
|
||||||
u 24 0 0165
|
|
||||||
v 24 0 0166
|
|
||||||
w 24 0 0167
|
|
||||||
x 24 0 0170
|
|
||||||
mu "
|
|
||||||
y 24 0 0171
|
|
||||||
z 24 0 0172
|
|
||||||
lC 24 0 0173
|
|
||||||
{ "
|
|
||||||
ba 24 0 0174
|
|
||||||
or "
|
|
||||||
bv "
|
|
||||||
br "
|
|
||||||
| "
|
|
||||||
lb "
|
|
||||||
lc "
|
|
||||||
lf "
|
|
||||||
lk "
|
|
||||||
lt "
|
|
||||||
rb "
|
|
||||||
rc "
|
|
||||||
rf "
|
|
||||||
rk "
|
|
||||||
rt "
|
|
||||||
rC 24 0 0175
|
|
||||||
} "
|
|
||||||
a~ 24 0 0176
|
|
||||||
~ "
|
|
||||||
ap "
|
|
||||||
ti "
|
|
||||||
char135 24 0 0207
|
|
||||||
char136 24 0 0210
|
|
||||||
char137 24 0 0211
|
|
||||||
char138 24 0 0212
|
|
||||||
char139 24 0 0213
|
|
||||||
char140 24 0 0214
|
|
||||||
char141 24 0 0215
|
|
||||||
char142 24 0 0216
|
|
||||||
char143 24 0 0217
|
|
||||||
char144 24 0 0220
|
|
||||||
char145 24 0 0221
|
|
||||||
char146 24 0 0222
|
|
||||||
char147 24 0 0223
|
|
||||||
bu 24 0 0224
|
|
||||||
char148 "
|
|
||||||
char149 24 0 0225
|
|
||||||
char150 24 0 0226
|
|
||||||
~= 24 0 0227
|
|
||||||
char151 "
|
|
||||||
<= 24 0 0230
|
|
||||||
char152 "
|
|
||||||
>= 24 0 0231
|
|
||||||
char153 "
|
|
||||||
char155 24 0 0233
|
|
||||||
de 24 0 0234
|
|
||||||
char156 "
|
|
||||||
S2 24 0 0235
|
|
||||||
char157 "
|
|
||||||
md 24 0 0236
|
|
||||||
char158 "
|
|
||||||
di 24 0 0237
|
|
||||||
char159 "
|
|
||||||
char160 24 0 0240
|
|
||||||
char161 24 0 0241
|
|
||||||
char162 24 0 0242
|
|
||||||
char163 24 0 0243
|
|
||||||
:e "
|
|
||||||
char164 24 0 0244
|
|
||||||
char165 24 0 0245
|
|
||||||
char166 24 0 0246
|
|
||||||
char167 24 0 0247
|
|
||||||
char168 24 0 0250
|
|
||||||
char169 24 0 0251
|
|
||||||
char170 24 0 0252
|
|
||||||
char171 24 0 0253
|
|
||||||
char172 24 0 0254
|
|
||||||
char173 24 0 0255
|
|
||||||
char174 24 0 0256
|
|
||||||
char175 24 0 0257
|
|
||||||
char176 24 0 0260
|
|
||||||
char177 24 0 0261
|
|
||||||
char178 24 0 0262
|
|
||||||
char179 24 0 0263
|
|
||||||
:E "
|
|
||||||
char180 24 0 0264
|
|
||||||
char181 24 0 0265
|
|
||||||
char182 24 0 0266
|
|
||||||
char183 24 0 0267
|
|
||||||
char184 24 0 0270
|
|
||||||
char185 24 0 0271
|
|
||||||
char186 24 0 0272
|
|
||||||
char187 24 0 0273
|
|
||||||
char188 24 0 0274
|
|
||||||
char189 24 0 0275
|
|
||||||
char190 24 0 0276
|
|
||||||
co 24 0 0277
|
|
||||||
char191 "
|
|
||||||
char192 24 0 0300
|
|
||||||
char193 24 0 0301
|
|
||||||
char194 24 0 0302
|
|
||||||
char195 24 0 0303
|
|
||||||
char196 24 0 0304
|
|
||||||
char197 24 0 0305
|
|
||||||
char198 24 0 0306
|
|
||||||
char199 24 0 0307
|
|
||||||
char200 24 0 0310
|
|
||||||
char201 24 0 0311
|
|
||||||
char202 24 0 0312
|
|
||||||
char203 24 0 0313
|
|
||||||
char204 24 0 0314
|
|
||||||
char205 24 0 0315
|
|
||||||
char206 24 0 0316
|
|
||||||
char207 24 0 0317
|
|
||||||
char208 24 0 0320
|
|
||||||
char209 24 0 0321
|
|
||||||
char210 24 0 0322
|
|
||||||
char211 24 0 0323
|
|
||||||
char212 24 0 0324
|
|
||||||
char213 24 0 0325
|
|
||||||
char214 24 0 0326
|
|
||||||
char215 24 0 0327
|
|
||||||
char216 24 0 0330
|
|
||||||
char217 24 0 0331
|
|
||||||
char218 24 0 0332
|
|
||||||
char219 24 0 0333
|
|
||||||
char220 24 0 0334
|
|
||||||
char221 24 0 0335
|
|
||||||
char222 24 0 0336
|
|
||||||
char223 24 0 0337
|
|
||||||
char224 24 0 0340
|
|
||||||
char225 24 0 0341
|
|
||||||
char226 24 0 0342
|
|
||||||
char227 24 0 0343
|
|
||||||
char228 24 0 0344
|
|
||||||
char229 24 0 0345
|
|
||||||
char230 24 0 0346
|
|
||||||
char231 24 0 0347
|
|
||||||
char232 24 0 0350
|
|
||||||
char233 24 0 0351
|
|
||||||
char234 24 0 0352
|
|
||||||
char235 24 0 0353
|
|
||||||
char236 24 0 0354
|
|
||||||
char237 24 0 0355
|
|
||||||
char238 24 0 0356
|
|
||||||
char239 24 0 0357
|
|
||||||
char240 24 0 0360
|
|
||||||
char241 24 0 0361
|
|
||||||
char242 24 0 0362
|
|
||||||
char243 24 0 0363
|
|
||||||
char244 24 0 0364
|
|
||||||
char245 24 0 0365
|
|
||||||
char246 24 0 0366
|
|
||||||
char247 24 0 0367
|
|
||||||
char248 24 0 0370
|
|
||||||
char249 24 0 0371
|
|
||||||
char250 24 0 0372
|
|
||||||
char251 24 0 0373
|
|
||||||
char252 24 0 0374
|
|
||||||
char253 24 0 0375
|
|
||||||
char254 24 0 0376
|
|
||||||
char255 24 0 0377
|
|
@ -1,9 +0,0 @@
|
|||||||
# $FreeBSD$
|
|
||||||
res 240
|
|
||||||
hor 24
|
|
||||||
vert 40
|
|
||||||
unitwidth 10
|
|
||||||
sizes 10 0
|
|
||||||
fonts 4 R I B BI
|
|
||||||
tcommand
|
|
||||||
postpro grotty
|
|
@ -1,13 +0,0 @@
|
|||||||
.TH @G@NEQN @MAN1EXT@ "@MDATE@" "Groff Version @VERSION@"
|
|
||||||
.SH NAME
|
|
||||||
@g@neqn \- format equations for ascii output
|
|
||||||
.SH SYNOPSIS
|
|
||||||
.B @g@neqn
|
|
||||||
[eqn options]
|
|
||||||
.SH DESCRIPTION
|
|
||||||
.B neqn
|
|
||||||
program is actually just a shell script which invokes the
|
|
||||||
.B eqn(1)
|
|
||||||
command with the ascii output device.
|
|
||||||
.SH "SEE ALSO"
|
|
||||||
.BR eqn (@MAN1EXT@)
|
|
@ -1,20 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# Provision of this shell script should not be taken to imply that use of
|
|
||||||
# GNU eqn with groff -Tascii|-Tlatin1|-Tutf8|-Tcp1047 is supported.
|
|
||||||
# $FreeBSD$
|
|
||||||
|
|
||||||
# Default device.
|
|
||||||
locale=${LC_ALL:-${LC_CTYPE:-$LANG}}
|
|
||||||
if test `expr "$locale" : ".*\.ISO_8859-1"` -gt 0
|
|
||||||
then
|
|
||||||
T=latin1
|
|
||||||
else
|
|
||||||
if test `expr "$locale" : ".*\.KOI8-R"` -gt 0
|
|
||||||
then
|
|
||||||
T=koi8-r
|
|
||||||
else
|
|
||||||
T=ascii
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec @g@eqn -T${T} ${1+"$@"}
|
|
@ -1,471 +0,0 @@
|
|||||||
.ig \"-*- nroff -*-
|
|
||||||
Copyright (C) 1989-2000 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
Permission is granted to make and distribute verbatim copies of
|
|
||||||
this manual provided the copyright notice and this permission notice
|
|
||||||
are preserved on all copies.
|
|
||||||
|
|
||||||
Permission is granted to copy and distribute modified versions of this
|
|
||||||
manual under the conditions for verbatim copying, provided that the
|
|
||||||
entire resulting derived work is distributed under the terms of a
|
|
||||||
permission notice identical to this one.
|
|
||||||
|
|
||||||
Permission is granted to copy and distribute translations of this
|
|
||||||
manual into another language, under the above conditions for modified
|
|
||||||
versions, except that this permission notice may be included in
|
|
||||||
translations approved by the Free Software Foundation instead of in
|
|
||||||
the original English.
|
|
||||||
|
|
||||||
$FreeBSD$
|
|
||||||
|
|
||||||
..
|
|
||||||
.de TQ
|
|
||||||
.br
|
|
||||||
.ns
|
|
||||||
.TP \\$1
|
|
||||||
..
|
|
||||||
.\" Like TP, but if specified indent is more than half
|
|
||||||
.\" the current line-length - indent, use the default indent.
|
|
||||||
.de Tp
|
|
||||||
.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
|
|
||||||
.el .TP "\\$1"
|
|
||||||
..
|
|
||||||
.TH GROFF @MAN1EXT@ "@MDATE@" "Groff Version @VERSION@"
|
|
||||||
.SH NAME
|
|
||||||
groff \- front end for the groff document formatting system
|
|
||||||
.SH SYNOPSIS
|
|
||||||
.nr a \n(.j
|
|
||||||
.ad l
|
|
||||||
.nr i \n(.i
|
|
||||||
.in +\w'\fBgroff 'u
|
|
||||||
.ti \niu
|
|
||||||
.B groff
|
|
||||||
.de OP
|
|
||||||
.ie \\n(.$-1 .RI "[\ \fB\\$1\fP" "\\$2" "\ ]"
|
|
||||||
.el .RB "[\ " "\\$1" "\ ]"
|
|
||||||
..
|
|
||||||
.OP \-abeghilpstvzCEGNRSUVXZ
|
|
||||||
.OP \-w name
|
|
||||||
.OP \-W name
|
|
||||||
.OP \-m name
|
|
||||||
.OP \-F dir
|
|
||||||
.OP \-I dir
|
|
||||||
.OP \-T dev
|
|
||||||
.OP \-f fam
|
|
||||||
.OP \-M dir
|
|
||||||
.OP \-d cs
|
|
||||||
.OP \-r cn
|
|
||||||
.OP \-n num
|
|
||||||
.OP \-o list
|
|
||||||
.OP \-P arg
|
|
||||||
.OP \-L arg
|
|
||||||
.RI "[\ " files\|.\|.\|. "\ ]"
|
|
||||||
.br
|
|
||||||
.ad \na
|
|
||||||
.PP
|
|
||||||
It is possible to have whitespace between a command line option and its
|
|
||||||
parameter.
|
|
||||||
.SH DESCRIPTION
|
|
||||||
.B groff
|
|
||||||
is a front-end to the groff document formatting system.
|
|
||||||
Normally it runs the
|
|
||||||
.B @g@troff
|
|
||||||
program and a postprocessor appropriate for the selected
|
|
||||||
device.
|
|
||||||
Available devices are:
|
|
||||||
.TP
|
|
||||||
.B ps
|
|
||||||
For PostScript printers and previewers
|
|
||||||
.TP
|
|
||||||
.B dvi
|
|
||||||
For TeX dvi format.
|
|
||||||
.TP
|
|
||||||
.B X75
|
|
||||||
For a 75 dpi X11 previewer.
|
|
||||||
.TP
|
|
||||||
.B X100
|
|
||||||
For a 100dpi X11 previewer.
|
|
||||||
.TP
|
|
||||||
.B ascii
|
|
||||||
For typewriter-like devices.
|
|
||||||
.TP
|
|
||||||
.B latin1
|
|
||||||
For typewriter-like devices using the ISO Latin-1 (ISO 8859-1) character set.
|
|
||||||
.TP
|
|
||||||
.B koi8-r
|
|
||||||
For typewriter-like devices using the Russian KOI8-R character set.
|
|
||||||
.TP
|
|
||||||
.B utf8
|
|
||||||
For typewriter-like devices using the Unicode (ISO 10646) character set with
|
|
||||||
UTF-8 encoding.
|
|
||||||
.TP
|
|
||||||
.B cp1047
|
|
||||||
For typewriter-like devices which use the EBCDIC code page IBM cp1047
|
|
||||||
(e.g. OS/390 Unix).
|
|
||||||
.TP
|
|
||||||
.B lj4
|
|
||||||
For an HP LaserJet4-compatible (or other PCL5-compatible) printer.
|
|
||||||
.TP
|
|
||||||
.B lbp
|
|
||||||
For Canon CAPSL printers (LBP-4 and LBP-8 series laser printers).
|
|
||||||
.TP
|
|
||||||
.B html
|
|
||||||
To produce HTML output.
|
|
||||||
.LP
|
|
||||||
The postprocessor to be used for a device is specified by the
|
|
||||||
.B postpro
|
|
||||||
command in the device description file.
|
|
||||||
This can be overridden with the
|
|
||||||
.B \-X
|
|
||||||
option.
|
|
||||||
.LP
|
|
||||||
The default device is
|
|
||||||
.BR @DEVICE@ .
|
|
||||||
It can optionally preprocess with any of
|
|
||||||
.BR @g@pic ,
|
|
||||||
.BR @g@eqn ,
|
|
||||||
.BR @g@grn ,
|
|
||||||
.BR grap ,
|
|
||||||
.BR @g@tbl ,
|
|
||||||
.BR @g@refer ,
|
|
||||||
or
|
|
||||||
.B @g@soelim.
|
|
||||||
.LP
|
|
||||||
Options without an argument can be grouped behind a single
|
|
||||||
.BR \- .
|
|
||||||
A filename of
|
|
||||||
.B \-
|
|
||||||
denotes the standard input.
|
|
||||||
.LP
|
|
||||||
The
|
|
||||||
.B grog
|
|
||||||
command can be used to guess the correct groff command to use to
|
|
||||||
format a file.
|
|
||||||
.SH OPTIONS
|
|
||||||
.TP
|
|
||||||
.B \-h
|
|
||||||
Print a help message.
|
|
||||||
.TP
|
|
||||||
.B \-e
|
|
||||||
Preprocess with @g@eqn.
|
|
||||||
.TP
|
|
||||||
.B \-t
|
|
||||||
Preprocess with @g@tbl.
|
|
||||||
.TP
|
|
||||||
.B \-g
|
|
||||||
Preprocess with @g@grn.
|
|
||||||
.TP
|
|
||||||
.B \-G
|
|
||||||
Preprocess with grap.
|
|
||||||
.TP
|
|
||||||
.B \-p
|
|
||||||
Preprocess with @g@pic.
|
|
||||||
.TP
|
|
||||||
.B \-s
|
|
||||||
Preprocess with @g@soelim.
|
|
||||||
.TP
|
|
||||||
.BI \-I dir
|
|
||||||
This option is as described in
|
|
||||||
.BR @g@soelim (@MAN1EXT@).
|
|
||||||
This option implies the
|
|
||||||
.B \-s
|
|
||||||
option.
|
|
||||||
.TP
|
|
||||||
.B \-R
|
|
||||||
Preprocess with @g@refer.
|
|
||||||
No mechanism is provided for passing arguments to
|
|
||||||
.B @g@refer
|
|
||||||
because most @g@refer options have equivalent commands
|
|
||||||
which can be included in the file.
|
|
||||||
See
|
|
||||||
.BR @g@refer (@MAN1EXT@)
|
|
||||||
for more details.
|
|
||||||
.TP
|
|
||||||
.B \-v
|
|
||||||
Make programs run by
|
|
||||||
.B groff
|
|
||||||
print out their version number.
|
|
||||||
.TP
|
|
||||||
.B \-V
|
|
||||||
Print the pipeline on stdout instead of executing it.
|
|
||||||
.TP
|
|
||||||
.B \-z
|
|
||||||
Suppress output from
|
|
||||||
.BR @g@troff .
|
|
||||||
Only error messages will be printed.
|
|
||||||
.TP
|
|
||||||
.B \-Z
|
|
||||||
Do not postprocess the output of
|
|
||||||
.BR @g@troff .
|
|
||||||
Normally
|
|
||||||
.B groff
|
|
||||||
will automatically run the appropriate postprocessor.
|
|
||||||
.TP
|
|
||||||
.BI \-P arg
|
|
||||||
Pass
|
|
||||||
.I arg
|
|
||||||
to the postprocessor.
|
|
||||||
Each argument should be passed with a separate
|
|
||||||
.B \-P
|
|
||||||
option.
|
|
||||||
Note that
|
|
||||||
.B groff
|
|
||||||
does not prepend
|
|
||||||
.B \-
|
|
||||||
to
|
|
||||||
.I arg
|
|
||||||
before passing it to the postprocessor.
|
|
||||||
.TP
|
|
||||||
.B \-l
|
|
||||||
Send the output to a printer.
|
|
||||||
The command used for this is specified by the
|
|
||||||
.B print
|
|
||||||
command in the device description file.
|
|
||||||
.TP
|
|
||||||
.BI \-L arg
|
|
||||||
Pass
|
|
||||||
.I arg
|
|
||||||
to the spooler.
|
|
||||||
Each argument should be passed with a separate
|
|
||||||
.B \-L
|
|
||||||
option.
|
|
||||||
Note that
|
|
||||||
.B groff
|
|
||||||
does not prepend
|
|
||||||
.B \-
|
|
||||||
to
|
|
||||||
.I arg
|
|
||||||
before passing it to the postprocessor.
|
|
||||||
.TP
|
|
||||||
.BI \-T dev
|
|
||||||
Prepare output for device
|
|
||||||
.IR dev .
|
|
||||||
The default device is
|
|
||||||
.BR @DEVICE@ .
|
|
||||||
.TP
|
|
||||||
.B \-X
|
|
||||||
Preview with
|
|
||||||
.B gxditview
|
|
||||||
instead of using the usual postprocessor.
|
|
||||||
.B Groff
|
|
||||||
passes
|
|
||||||
.B gxditview
|
|
||||||
a
|
|
||||||
.B -printCommand
|
|
||||||
option which will make the
|
|
||||||
.B Print
|
|
||||||
action do what
|
|
||||||
.B groff
|
|
||||||
would have done if the
|
|
||||||
.B -l
|
|
||||||
option had been given.
|
|
||||||
This is unlikely to produce good results except with
|
|
||||||
.BR \-Tps .
|
|
||||||
.TP
|
|
||||||
.B \-N
|
|
||||||
Don't allow newlines with eqn delimiters.
|
|
||||||
This is the same as the
|
|
||||||
.B \-N
|
|
||||||
option in
|
|
||||||
.BR @g@eqn .
|
|
||||||
.TP
|
|
||||||
.B \-S
|
|
||||||
Safer mode. Pass the
|
|
||||||
.B \-S
|
|
||||||
option to
|
|
||||||
.B @g@pic
|
|
||||||
and use the
|
|
||||||
.B \%\-msafer
|
|
||||||
macros with
|
|
||||||
.B @g@troff
|
|
||||||
(enabled by default).
|
|
||||||
.TP
|
|
||||||
.B \-U
|
|
||||||
Unsafe mode. Reverts to the old unsafe behaviour.
|
|
||||||
.TP
|
|
||||||
.B \-a
|
|
||||||
.TQ
|
|
||||||
.B \-b
|
|
||||||
.TQ
|
|
||||||
.B \-i
|
|
||||||
.TQ
|
|
||||||
.B \-C
|
|
||||||
.TQ
|
|
||||||
.B \-E
|
|
||||||
.TQ
|
|
||||||
.BI \-w name
|
|
||||||
.TQ
|
|
||||||
.BI \-W name
|
|
||||||
.TQ
|
|
||||||
.BI \-m name
|
|
||||||
.TQ
|
|
||||||
.BI \-o list
|
|
||||||
.TQ
|
|
||||||
.BI \-d cs
|
|
||||||
.TQ
|
|
||||||
.BI \-r cn
|
|
||||||
.TQ
|
|
||||||
.BI \-F dir
|
|
||||||
.TQ
|
|
||||||
.BI \-M dir
|
|
||||||
.TQ
|
|
||||||
.BI \-f fam
|
|
||||||
.TQ
|
|
||||||
.BI \-n num
|
|
||||||
These are as described in
|
|
||||||
.BR @g@troff (@MAN1EXT@) .
|
|
||||||
.SH ENVIRONMENT
|
|
||||||
.TP
|
|
||||||
.SM
|
|
||||||
.B GROFF_COMMAND_PREFIX
|
|
||||||
If this is set
|
|
||||||
.IR X ,
|
|
||||||
then
|
|
||||||
.B groff
|
|
||||||
will run
|
|
||||||
.IB X troff
|
|
||||||
instead of
|
|
||||||
.BR @g@troff .
|
|
||||||
This also applies to
|
|
||||||
.BR tbl ,
|
|
||||||
.BR pic ,
|
|
||||||
.BR eqn ,
|
|
||||||
.BR grn ,
|
|
||||||
.BR refer ,
|
|
||||||
and
|
|
||||||
.BR soelim .
|
|
||||||
It does not apply to
|
|
||||||
.BR grap ,
|
|
||||||
.BR grops ,
|
|
||||||
.BR grodvi ,
|
|
||||||
.BR grotty ,
|
|
||||||
.BR grolj4 ,
|
|
||||||
.BR grohtml ,
|
|
||||||
and
|
|
||||||
.BR gxditview .
|
|
||||||
.TP
|
|
||||||
.SM
|
|
||||||
.B GROFF_TMAC_PATH
|
|
||||||
A colon separated list of directories in which to search for
|
|
||||||
macro files.
|
|
||||||
.TP
|
|
||||||
.SM
|
|
||||||
.B GROFF_TYPESETTER
|
|
||||||
Default device.
|
|
||||||
.TP
|
|
||||||
.SM
|
|
||||||
.B GROFF_FONT_PATH
|
|
||||||
A colon separated list of directories in which to search for the
|
|
||||||
.BI dev name
|
|
||||||
directory.
|
|
||||||
.TP
|
|
||||||
.SM
|
|
||||||
.B PATH
|
|
||||||
The search path for commands executed by
|
|
||||||
.BR groff .
|
|
||||||
.TP
|
|
||||||
.SM
|
|
||||||
.B GROFF_TMPDIR
|
|
||||||
The directory in which temporary files will be created.
|
|
||||||
If this is not set and
|
|
||||||
.B
|
|
||||||
.SM TMPDIR
|
|
||||||
is set, temporary files will be created in that directory.
|
|
||||||
Otherwise temporary files will be created in
|
|
||||||
.BR /tmp .
|
|
||||||
The
|
|
||||||
.BR grops (@MAN1EXT@)
|
|
||||||
and
|
|
||||||
.BR @g@refer (@MAN1EXT@)
|
|
||||||
commands can create temporary files.
|
|
||||||
.SH FILES
|
|
||||||
.Tp \w'\fB@FONTDIR@/dev\fIname\fB/DESC'u+3n
|
|
||||||
.BI @FONTDIR@/dev name /DESC
|
|
||||||
Device description file for device
|
|
||||||
.IR name .
|
|
||||||
.TP
|
|
||||||
.BI @FONTDIR@/dev name / F
|
|
||||||
Font file for font
|
|
||||||
.I F
|
|
||||||
of device
|
|
||||||
.IR name .
|
|
||||||
.LP
|
|
||||||
Note that on EBCDIC hosts, output devices
|
|
||||||
.BR ascii ,
|
|
||||||
.BR latin1 ,
|
|
||||||
and
|
|
||||||
.B utf8
|
|
||||||
aren't available.
|
|
||||||
Similarly,
|
|
||||||
.B cp1047
|
|
||||||
is not available on ASCII based operating systems.
|
|
||||||
.SH EXAMPLE
|
|
||||||
To print the man page
|
|
||||||
.B foo.1
|
|
||||||
to the standard output using the latin-1 output device and
|
|
||||||
.B less
|
|
||||||
as the pager, the following command can be used:
|
|
||||||
.IP
|
|
||||||
.B groff -mandoc -Tlatin1 foo.1 | less
|
|
||||||
.PP
|
|
||||||
Alternatively, you can say
|
|
||||||
.IP
|
|
||||||
.B groff -m mandoc -Tlatin1 foo.1 | less
|
|
||||||
.SH AUTHOR
|
|
||||||
James Clark <jjc@jclark.com>
|
|
||||||
.SH BUGS
|
|
||||||
Report bugs to bug-groff@gnu.org.
|
|
||||||
Include a complete, self-contained example
|
|
||||||
that will allow the bug to be reproduced,
|
|
||||||
and say which version of groff you are using.
|
|
||||||
.SH COPYRIGHT
|
|
||||||
Copyright \(co 1989-2000 Free Software Foundation, Inc.
|
|
||||||
.LP
|
|
||||||
groff is free software; you can redistribute it and/or modify it under
|
|
||||||
the terms of the GNU General Public License as published by the Free
|
|
||||||
Software Foundation; either version 2, or (at your option) any later
|
|
||||||
version.
|
|
||||||
.LP
|
|
||||||
groff is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
||||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
.LP
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with groff; see the file COPYING. If not, write to the Free Software
|
|
||||||
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
.SH AVAILABILITY
|
|
||||||
The most recent released version of groff is always available for
|
|
||||||
anonymous ftp from ftp.gnu.org in the directory gnu/groff.
|
|
||||||
.LP
|
|
||||||
.B groff
|
|
||||||
only supports the freely available
|
|
||||||
.B grap
|
|
||||||
implementation written by Ted Faber <faber@lunabase.org>.
|
|
||||||
The actual version can be found at
|
|
||||||
.IP
|
|
||||||
\%http://www.lunabase.org/~faber/Vault/software/grap/
|
|
||||||
.SH "SEE ALSO"
|
|
||||||
.BR grog (@MAN1EXT@),
|
|
||||||
.BR @g@troff (@MAN1EXT@),
|
|
||||||
.BR @g@tbl (@MAN1EXT@),
|
|
||||||
.BR @g@pic (@MAN1EXT@),
|
|
||||||
.BR @g@eqn (@MAN1EXT@),
|
|
||||||
.BR @g@grn (@MAN1EXT@),
|
|
||||||
.BR grap (1),
|
|
||||||
.BR @g@soelim (@MAN1EXT@),
|
|
||||||
.BR @g@refer (@MAN1EXT@),
|
|
||||||
.BR grops (@MAN1EXT@),
|
|
||||||
.BR grodvi (@MAN1EXT@),
|
|
||||||
.BR grotty (@MAN1EXT@),
|
|
||||||
.BR grolj4 (@MAN1EXT@),
|
|
||||||
.BR grolbp (@MAN1EXT@),
|
|
||||||
.BR grohtml (@MAN1EXT@),
|
|
||||||
.BR gxditview (@MAN1EXT@),
|
|
||||||
.BR groff_font (@MAN5EXT@),
|
|
||||||
.BR groff_out (@MAN5EXT@),
|
|
||||||
.BR groff_man (@MAN7EXT@),
|
|
||||||
.BR groff_ms (@MAN7EXT@),
|
|
||||||
.BR groff_me (@MAN7EXT@),
|
|
||||||
.BR groff_char (@MAN7EXT@),
|
|
||||||
.BR groff_msafer (@MAN7EXT@)
|
|
@ -1,843 +0,0 @@
|
|||||||
.ig \"-*- nroff -*-
|
|
||||||
$FreeBSD$
|
|
||||||
Copyright (C) 1989-2000 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
Permission is granted to make and distribute verbatim copies of
|
|
||||||
this manual provided the copyright notice and this permission notice
|
|
||||||
are preserved on all copies.
|
|
||||||
|
|
||||||
Permission is granted to copy and distribute modified versions of this
|
|
||||||
manual under the conditions for verbatim copying, provided that the
|
|
||||||
entire resulting derived work is distributed under the terms of a
|
|
||||||
permission notice identical to this one.
|
|
||||||
|
|
||||||
Permission is granted to copy and distribute translations of this
|
|
||||||
manual into another language, under the above conditions for modified
|
|
||||||
versions, except that this permission notice may be included in
|
|
||||||
translations approved by the Free Software Foundation instead of in
|
|
||||||
the original English.
|
|
||||||
..
|
|
||||||
.\" Like TP, but if specified indent is more than half
|
|
||||||
.\" the current line-length - indent, use the default indent.
|
|
||||||
.de Tp
|
|
||||||
.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
|
|
||||||
.el .TP "\\$1"
|
|
||||||
..
|
|
||||||
.TH GROPS @MAN1EXT@ "@MDATE@" "Groff Version @VERSION@"
|
|
||||||
.SH NAME
|
|
||||||
grops \- PostScript driver for groff
|
|
||||||
.SH SYNOPSIS
|
|
||||||
.nr a \n(.j
|
|
||||||
.ad l
|
|
||||||
.nr i \n(.i
|
|
||||||
.in +\w'\fBgrops 'u
|
|
||||||
.ti \niu
|
|
||||||
.B grops
|
|
||||||
.de OP
|
|
||||||
.ie \\n(.$-1 .RI "[\ \fB\\$1\fP" "\\$2" "\ ]"
|
|
||||||
.el .RB "[\ " "\\$1" "\ ]"
|
|
||||||
..
|
|
||||||
.OP \-glmv
|
|
||||||
.OP \-b n
|
|
||||||
.OP \-c n
|
|
||||||
.OP \-w n
|
|
||||||
.OP \-F dir
|
|
||||||
.RI "[\ " files\|.\|.\|. "\ ]"
|
|
||||||
.br
|
|
||||||
.ad \na
|
|
||||||
.PP
|
|
||||||
It is possible to have whitespace between a command line option and its
|
|
||||||
parameter.
|
|
||||||
.SH DESCRIPTION
|
|
||||||
.B grops
|
|
||||||
translates the output of GNU
|
|
||||||
.B troff
|
|
||||||
to PostScript.
|
|
||||||
Normally
|
|
||||||
.B grops
|
|
||||||
should be invoked by using the groff command
|
|
||||||
with a
|
|
||||||
.B \-Tps
|
|
||||||
option.
|
|
||||||
.if '@DEVICE@'ps' (Actually, this is the default for groff.)
|
|
||||||
If no files are given,
|
|
||||||
.B grops
|
|
||||||
will read the standard input.
|
|
||||||
A filename of
|
|
||||||
.B \-
|
|
||||||
will also cause
|
|
||||||
.B grops
|
|
||||||
to read the standard input.
|
|
||||||
PostScript output is written to the standard output.
|
|
||||||
When
|
|
||||||
.B grops
|
|
||||||
is run by
|
|
||||||
.B groff
|
|
||||||
options can be passed to
|
|
||||||
.B grops
|
|
||||||
using the
|
|
||||||
.B groff
|
|
||||||
.B \-P
|
|
||||||
option.
|
|
||||||
.SH OPTIONS
|
|
||||||
.TP
|
|
||||||
.BI \-b n
|
|
||||||
Workaround broken spoolers and previewers.
|
|
||||||
Normally
|
|
||||||
.B grops
|
|
||||||
produces output that conforms
|
|
||||||
the Document Structuring Conventions version 3.0.
|
|
||||||
Unfortunately some spoolers and previewers can't handle such output.
|
|
||||||
The value of
|
|
||||||
.I n
|
|
||||||
controls what
|
|
||||||
.B grops
|
|
||||||
does to its output acceptable to such programs.
|
|
||||||
A value of 0 will cause grops not to employ any workarounds.
|
|
||||||
Add 1 if no
|
|
||||||
.B %%BeginDocumentSetup
|
|
||||||
and
|
|
||||||
.B %%EndDocumentSetup
|
|
||||||
comments should be generated;
|
|
||||||
this is needed for early versions of TranScript that get confused by
|
|
||||||
anything between the
|
|
||||||
.B %%EndProlog
|
|
||||||
comment and the first
|
|
||||||
.B %%Page
|
|
||||||
comment.
|
|
||||||
Add 2 if lines in included files beginning with
|
|
||||||
.B %!
|
|
||||||
should be stripped out; this is needed for Sun's pageview previewer.
|
|
||||||
Add 4 if
|
|
||||||
.BR %%Page ,
|
|
||||||
.BR %%Trailer
|
|
||||||
and
|
|
||||||
.B %%EndProlog
|
|
||||||
comments should be
|
|
||||||
stripped out of included files; this is needed for spoolers that
|
|
||||||
don't understand the
|
|
||||||
.B %%BeginDocument
|
|
||||||
and
|
|
||||||
.B %%EndDocument
|
|
||||||
comments.
|
|
||||||
Add 8 if the first line of the PostScript output should be
|
|
||||||
.B %!PS-Adobe-2.0
|
|
||||||
rather than
|
|
||||||
.BR %!PS-Adobe-3.0 ;
|
|
||||||
this is needed when using Sun's Newsprint with a printer that requires
|
|
||||||
page reversal.
|
|
||||||
The default value can be specified by a
|
|
||||||
.RS
|
|
||||||
.IP
|
|
||||||
.BI broken\ n
|
|
||||||
.LP
|
|
||||||
command in the DESC file.
|
|
||||||
Otherwise the default value is 0.
|
|
||||||
.RE
|
|
||||||
.TP
|
|
||||||
.BI \-c n
|
|
||||||
Print
|
|
||||||
.I n
|
|
||||||
copies of each page.
|
|
||||||
.TP
|
|
||||||
.BI \-g
|
|
||||||
Guess the page length.
|
|
||||||
This generates PostScript code that guesses the page length.
|
|
||||||
The guess will be correct only if the imageable area is vertically
|
|
||||||
centered on the page.
|
|
||||||
This option allows you to generate documents that can be printed
|
|
||||||
both on letter (8.5\(mu11) paper and on A4 paper without change.
|
|
||||||
.TP
|
|
||||||
.B \-l
|
|
||||||
Print the document in landscape format.
|
|
||||||
.TP
|
|
||||||
.B \-m
|
|
||||||
Turn manual feed on for the document.
|
|
||||||
.TP
|
|
||||||
.BI \-F dir
|
|
||||||
Search the directory
|
|
||||||
.IB dir /dev name
|
|
||||||
for font and device description files;
|
|
||||||
.I name
|
|
||||||
is the name of the device, usually
|
|
||||||
.BR ps .
|
|
||||||
.TP
|
|
||||||
.BI \-w n
|
|
||||||
Lines should be drawn using a thickness of
|
|
||||||
.I n
|
|
||||||
thousandths of an em.
|
|
||||||
.TP
|
|
||||||
.B \-v
|
|
||||||
Print the version number.
|
|
||||||
.SH USAGE
|
|
||||||
There are styles called
|
|
||||||
.BR R ,
|
|
||||||
.BR I ,
|
|
||||||
.BR B ,
|
|
||||||
and
|
|
||||||
.B BI
|
|
||||||
mounted at font positions 1 to 4.
|
|
||||||
The fonts are grouped into families
|
|
||||||
.BR A ,
|
|
||||||
.BR BM ,
|
|
||||||
.BR C ,
|
|
||||||
.BR H ,
|
|
||||||
.BR HN ,
|
|
||||||
.BR N ,
|
|
||||||
.B P
|
|
||||||
and
|
|
||||||
.B T
|
|
||||||
having members in each of these styles:
|
|
||||||
.de FT
|
|
||||||
.if '\\*(.T'ps' .ft \\$1
|
|
||||||
..
|
|
||||||
.TP
|
|
||||||
.B AR
|
|
||||||
.FT AR
|
|
||||||
AvantGarde-Book
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B AI
|
|
||||||
.FT AI
|
|
||||||
AvantGarde-BookOblique
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B AB
|
|
||||||
.FT AB
|
|
||||||
AvantGarde-Demi
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B ABI
|
|
||||||
.FT ABI
|
|
||||||
AvantGarde-DemiOblique
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B BMR
|
|
||||||
.FT BMR
|
|
||||||
Bookman-Light
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B BMI
|
|
||||||
.FT BMI
|
|
||||||
Bookman-LightItalic
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B BMB
|
|
||||||
.FT BMB
|
|
||||||
Bookman-Demi
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B BMBI
|
|
||||||
.FT BMBI
|
|
||||||
Bookman-DemiItalic
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B CR
|
|
||||||
.FT CR
|
|
||||||
Courier
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B CI
|
|
||||||
.FT CI
|
|
||||||
Courier-Oblique
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B CB
|
|
||||||
.FT CB
|
|
||||||
Courier-Bold
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B CBI
|
|
||||||
.FT CBI
|
|
||||||
Courier-BoldOblique
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B HR
|
|
||||||
.FT HR
|
|
||||||
Helvetica
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B HI
|
|
||||||
.FT HI
|
|
||||||
Helvetica-Oblique
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B HB
|
|
||||||
.FT HB
|
|
||||||
Helvetica-Bold
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B HBI
|
|
||||||
.FT HBI
|
|
||||||
Helvetica-BoldOblique
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B HNR
|
|
||||||
.FT HNR
|
|
||||||
Helvetica-Narrow
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B HNI
|
|
||||||
.FT HNI
|
|
||||||
Helvetica-Narrow-Oblique
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B HNB
|
|
||||||
.FT HNB
|
|
||||||
Helvetica-Narrow-Bold
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B HNBI
|
|
||||||
.FT HNBI
|
|
||||||
Helvetica-Narrow-BoldOblique
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B NR
|
|
||||||
.FT NR
|
|
||||||
NewCenturySchlbk-Roman
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B NI
|
|
||||||
.FT NI
|
|
||||||
NewCenturySchlbk-Italic
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B NB
|
|
||||||
.FT NB
|
|
||||||
NewCenturySchlbk-Bold
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B NBI
|
|
||||||
.FT NBI
|
|
||||||
NewCenturySchlbk-BoldItalic
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B PR
|
|
||||||
.FT PR
|
|
||||||
Palatino-Roman
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B PI
|
|
||||||
.FT PI
|
|
||||||
Palatino-Italic
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B PB
|
|
||||||
.FT PB
|
|
||||||
Palatino-Bold
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B PBI
|
|
||||||
.FT PBI
|
|
||||||
Palatino-BoldItalic
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B TR
|
|
||||||
.FT TR
|
|
||||||
Times-Roman
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B TI
|
|
||||||
.FT TI
|
|
||||||
Times-Italic
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B TB
|
|
||||||
.FT TB
|
|
||||||
Times-Bold
|
|
||||||
.FT
|
|
||||||
.TP
|
|
||||||
.B TBI
|
|
||||||
.FT TBI
|
|
||||||
Times-BoldItalic
|
|
||||||
.FT
|
|
||||||
.LP
|
|
||||||
There is also the following font which is not a member of a family:
|
|
||||||
.TP
|
|
||||||
.B ZCMI
|
|
||||||
.FT ZCMI
|
|
||||||
ZapfChancery-MediumItalic
|
|
||||||
.FT
|
|
||||||
.LP
|
|
||||||
There are also some special fonts called
|
|
||||||
.B SS
|
|
||||||
and
|
|
||||||
.BR S .
|
|
||||||
Zapf Dingbats is available as
|
|
||||||
.BR ZD
|
|
||||||
and a reversed version of ZapfDingbats (with symbols pointing in the opposite
|
|
||||||
direction) is available as
|
|
||||||
.BR ZDR ;
|
|
||||||
most characters in these fonts are unnamed and must be accessed using
|
|
||||||
.BR \eN .
|
|
||||||
.LP
|
|
||||||
.B grops
|
|
||||||
understands various X commands produced using the
|
|
||||||
.B \eX
|
|
||||||
escape sequence;
|
|
||||||
.B grops
|
|
||||||
will only interpret commands that begin with a
|
|
||||||
.B ps:
|
|
||||||
tag.
|
|
||||||
.TP
|
|
||||||
.BI \eX'ps:\ exec\ code '
|
|
||||||
This executes the arbitrary PostScript commands in
|
|
||||||
.IR code .
|
|
||||||
The PostScript currentpoint will be set to the position of the
|
|
||||||
.B \eX
|
|
||||||
command before executing
|
|
||||||
.IR code .
|
|
||||||
The origin will be at the top left corner of the page,
|
|
||||||
and y coordinates will increase down the page.
|
|
||||||
A procedure
|
|
||||||
.B u
|
|
||||||
will be defined that converts groff units
|
|
||||||
to the coordinate system in effect.
|
|
||||||
For example,
|
|
||||||
.RS
|
|
||||||
.IP
|
|
||||||
.B
|
|
||||||
\&.nr x 1i
|
|
||||||
.br
|
|
||||||
.B
|
|
||||||
\eX'ps: exec \enx u 0 rlineto stroke'
|
|
||||||
.br
|
|
||||||
.RE
|
|
||||||
.IP
|
|
||||||
will draw a horizontal line one inch long.
|
|
||||||
.I code
|
|
||||||
may make changes to the graphics state,
|
|
||||||
but any changes will persist only to the
|
|
||||||
end of the page.
|
|
||||||
A dictionary containing the definitions specified by the
|
|
||||||
.B def
|
|
||||||
and
|
|
||||||
.B mdef
|
|
||||||
will be on top of the dictionary stack.
|
|
||||||
If your code adds definitions to this dictionary,
|
|
||||||
you should allocate space for them using
|
|
||||||
.BI \eX'ps\ mdef \ n '\fR.
|
|
||||||
Any definitions will persist only until the end of the page.
|
|
||||||
If you use the
|
|
||||||
.B \eY
|
|
||||||
escape sequence with an argument that names a macro,
|
|
||||||
.I code
|
|
||||||
can extend over multiple lines.
|
|
||||||
For example,
|
|
||||||
.RS
|
|
||||||
.IP
|
|
||||||
.nf
|
|
||||||
.ft B
|
|
||||||
\&.nr x 1i
|
|
||||||
\&.de y
|
|
||||||
\&ps: exec
|
|
||||||
\&\enx u 0 rlineto
|
|
||||||
\&stroke
|
|
||||||
\&..
|
|
||||||
\&\eYy
|
|
||||||
.fi
|
|
||||||
.ft R
|
|
||||||
.LP
|
|
||||||
is another way to draw a horizontal line one inch long.
|
|
||||||
.RE
|
|
||||||
.TP
|
|
||||||
.BI \eX'ps:\ file\ name '
|
|
||||||
This is the same as the
|
|
||||||
.B exec
|
|
||||||
command except that the PostScript code is read from file
|
|
||||||
.IR name .
|
|
||||||
.TP
|
|
||||||
.BI \eX'ps:\ def\ code '
|
|
||||||
Place a PostScript definition contained in
|
|
||||||
.I code
|
|
||||||
in the prologue.
|
|
||||||
There should be at most one definition per
|
|
||||||
.B \eX
|
|
||||||
command.
|
|
||||||
Long definitions can be split over several
|
|
||||||
.B \eX
|
|
||||||
commands;
|
|
||||||
all the
|
|
||||||
.I code
|
|
||||||
arguments are simply joined together separated by newlines.
|
|
||||||
The definitions are placed in a dictionary which is automatically
|
|
||||||
pushed on the dictionary stack when an
|
|
||||||
.B exec
|
|
||||||
command is executed.
|
|
||||||
If you use the
|
|
||||||
.B \eY
|
|
||||||
escape sequence with an argument that names a macro,
|
|
||||||
.I code
|
|
||||||
can extend over multiple lines.
|
|
||||||
.TP
|
|
||||||
.BI \eX'ps:\ mdef\ n\ code '
|
|
||||||
Like
|
|
||||||
.BR def ,
|
|
||||||
except that
|
|
||||||
.I code
|
|
||||||
may contain up to
|
|
||||||
.I n
|
|
||||||
definitions.
|
|
||||||
.B grops
|
|
||||||
needs to know how many definitions
|
|
||||||
.I code
|
|
||||||
contains
|
|
||||||
so that it can create an appropriately sized PostScript dictionary
|
|
||||||
to contain them.
|
|
||||||
.TP
|
|
||||||
.BI \eX'ps:\ import\ file\ llx\ lly\ urx\ ury\ width\ \fR[\fP\ height\ \fR]\fP '
|
|
||||||
Import a PostScript graphic from
|
|
||||||
.IR file .
|
|
||||||
The arguments
|
|
||||||
.IR llx ,
|
|
||||||
.IR lly ,
|
|
||||||
.IR urx ,
|
|
||||||
and
|
|
||||||
.I ury
|
|
||||||
give the bounding box of the graphic in the default PostScript
|
|
||||||
coordinate system; they should all be integers;
|
|
||||||
.I llx
|
|
||||||
and
|
|
||||||
.I lly
|
|
||||||
are the x and y coordinates of the lower left
|
|
||||||
corner of the graphic;
|
|
||||||
.I urx
|
|
||||||
and
|
|
||||||
.I ury
|
|
||||||
are the x and y coordinates of the upper right corner of the graphic;
|
|
||||||
.I width
|
|
||||||
and
|
|
||||||
.I height
|
|
||||||
are integers that give the desired width and height in groff
|
|
||||||
units of the graphic.
|
|
||||||
The graphic will be scaled so that it has this width and height
|
|
||||||
and translated so that the lower left corner of the graphic is
|
|
||||||
located at the position associated with
|
|
||||||
.B \eX
|
|
||||||
command.
|
|
||||||
If the height argument is omitted it will be scaled uniformly in the
|
|
||||||
x and y directions so that it has the specified width.
|
|
||||||
Note that the contents of the
|
|
||||||
.B \eX
|
|
||||||
command are not interpreted by
|
|
||||||
.BR troff ;
|
|
||||||
so vertical space for the graphic is not automatically added,
|
|
||||||
and the
|
|
||||||
.I width
|
|
||||||
and
|
|
||||||
.I height
|
|
||||||
arguments are not allowed to have attached scaling indicators.
|
|
||||||
If the PostScript file complies with the Adobe Document Structuring
|
|
||||||
Conventions and contains a
|
|
||||||
.B %%BoundingBox
|
|
||||||
comment, then the bounding box can be automatically
|
|
||||||
extracted from within groff by using the
|
|
||||||
.B psbb
|
|
||||||
request.
|
|
||||||
.RS
|
|
||||||
.LP
|
|
||||||
The
|
|
||||||
.B \-mps
|
|
||||||
macros (which are automatically loaded when
|
|
||||||
.B grops
|
|
||||||
is run by the groff command) include a
|
|
||||||
.B PSPIC
|
|
||||||
macro which allows a picture to be easily imported.
|
|
||||||
This has the format
|
|
||||||
.IP
|
|
||||||
\&\fB.PSPIC\fP [ \fB\-L\fP | \fB-R\fP | \fB\-I\fP \fIn\fP ]\ \"
|
|
||||||
\fI\|file\fP [ \fIwidth\fP [ \fIheight\fP ]]
|
|
||||||
.LP
|
|
||||||
.I file
|
|
||||||
is the name of the file containing the illustration;
|
|
||||||
.I width
|
|
||||||
and
|
|
||||||
.I height
|
|
||||||
give the desired width and height of the graphic.
|
|
||||||
The
|
|
||||||
.I width
|
|
||||||
and
|
|
||||||
.I height
|
|
||||||
arguments may have scaling indicators attached;
|
|
||||||
the default scaling indicator is
|
|
||||||
.BR i .
|
|
||||||
This macro will scale the graphic uniformly
|
|
||||||
in the x and y directions so that it is no more than
|
|
||||||
.I width
|
|
||||||
wide
|
|
||||||
and
|
|
||||||
.I height
|
|
||||||
high.
|
|
||||||
By default, the graphic will be horizontally centered.
|
|
||||||
The
|
|
||||||
.BI \-L
|
|
||||||
and
|
|
||||||
.BI \-R
|
|
||||||
cause the graphic to be left-aligned and right-aligned
|
|
||||||
respectively.
|
|
||||||
The
|
|
||||||
.B \-I
|
|
||||||
option causes the graphic to be indented by
|
|
||||||
.IR n .
|
|
||||||
.RE
|
|
||||||
.TP
|
|
||||||
.B \eX'ps:\ invis'
|
|
||||||
.br
|
|
||||||
.ns
|
|
||||||
.TP
|
|
||||||
.B \eX'ps:\ endinvis'
|
|
||||||
No output will be generated for text and drawing commands
|
|
||||||
that are bracketed with these
|
|
||||||
.B \eX
|
|
||||||
commands.
|
|
||||||
These commands are intended for use when output from
|
|
||||||
.B troff
|
|
||||||
will be previewed before being processed with
|
|
||||||
.BR grops ;
|
|
||||||
if the previewer is unable to display certain characters
|
|
||||||
or other constructs, then other substitute characters or constructs
|
|
||||||
can be used for previewing by bracketing them with these
|
|
||||||
.B \eX
|
|
||||||
commands.
|
|
||||||
.RS
|
|
||||||
.LP
|
|
||||||
For example,
|
|
||||||
.B gxditview
|
|
||||||
is not able to display a proper
|
|
||||||
.B \e(em
|
|
||||||
character because the standard X11 fonts do not provide it;
|
|
||||||
this problem can be overcome by executing the following
|
|
||||||
request
|
|
||||||
.IP
|
|
||||||
.ft B
|
|
||||||
.nf
|
|
||||||
\&.char \e(em \eX'ps: invis'\e
|
|
||||||
\eZ'\ev'-.25m'\eh'.05m'\eD'l .9m 0'\eh'.05m''\e
|
|
||||||
\eX'ps: endinvis'\e(em
|
|
||||||
.ft
|
|
||||||
.fi
|
|
||||||
.LP
|
|
||||||
In this case,
|
|
||||||
.B gxditview
|
|
||||||
will be unable to display the
|
|
||||||
.B \e(em
|
|
||||||
character and will draw the line,
|
|
||||||
whereas
|
|
||||||
.B grops
|
|
||||||
will print the
|
|
||||||
.B \e(em
|
|
||||||
character
|
|
||||||
and ignore the line.
|
|
||||||
.RE
|
|
||||||
.LP
|
|
||||||
The input to
|
|
||||||
.B grops
|
|
||||||
must be in the format output by
|
|
||||||
.BR @g@troff (@MAN1EXT@).
|
|
||||||
This is described in
|
|
||||||
.BR groff_out (@MAN5EXT@).
|
|
||||||
In addition the device and font description files for the device used
|
|
||||||
must meet certain requirements.
|
|
||||||
The device and font description files supplied for
|
|
||||||
.B ps
|
|
||||||
device meet all these requirements.
|
|
||||||
.BR afmtodit (@MAN1EXT@)
|
|
||||||
can be used to create font files from AFM files.
|
|
||||||
The resolution must be an integer multiple of 72 times the
|
|
||||||
.BR sizescale .
|
|
||||||
The
|
|
||||||
.B ps
|
|
||||||
device uses a resolution of 72000 and a sizescale of 1000.
|
|
||||||
The device description file should contain a command
|
|
||||||
.IP
|
|
||||||
.BI paperlength\ n
|
|
||||||
.LP
|
|
||||||
which says that output should be generated which is suitable for
|
|
||||||
printing on a page whose length is
|
|
||||||
.I n
|
|
||||||
machine units.
|
|
||||||
Each font description file must contain a command
|
|
||||||
.IP
|
|
||||||
.BI internalname\ psname
|
|
||||||
.LP
|
|
||||||
which says that the PostScript name of the font is
|
|
||||||
.IR psname .
|
|
||||||
It may also contain a command
|
|
||||||
.IP
|
|
||||||
.BI encoding\ enc_file
|
|
||||||
.LP
|
|
||||||
which says that
|
|
||||||
the PostScript font should be reencoded using the encoding described in
|
|
||||||
.IR enc_file ;
|
|
||||||
this file should consist of a sequence of lines of the form:
|
|
||||||
.IP
|
|
||||||
.I
|
|
||||||
pschar code
|
|
||||||
.LP
|
|
||||||
where
|
|
||||||
.I pschar
|
|
||||||
is the PostScript name of the character,
|
|
||||||
and
|
|
||||||
.I code
|
|
||||||
is its position in the encoding expressed as a decimal integer.
|
|
||||||
The code for each character given in the font file must correspond
|
|
||||||
to the code for the character in encoding file, or to the code in the default
|
|
||||||
encoding for the font if the PostScript font is not to be reencoded.
|
|
||||||
This code can be used with the
|
|
||||||
.B \eN
|
|
||||||
escape sequence in
|
|
||||||
.B troff
|
|
||||||
to select the character,
|
|
||||||
even if the character does not have a groff name.
|
|
||||||
Every character in the font file must exist in the PostScript font, and
|
|
||||||
the widths given in the font file must match the widths used
|
|
||||||
in the PostScript font.
|
|
||||||
.B grops
|
|
||||||
will assume that a character with a groff name of
|
|
||||||
.B space
|
|
||||||
is blank (makes no marks on the page);
|
|
||||||
it can make use of such a character to generate more efficient and
|
|
||||||
compact PostScript output.
|
|
||||||
.LP
|
|
||||||
.B grops
|
|
||||||
can automatically include the downloadable fonts necessary
|
|
||||||
to print the document.
|
|
||||||
Any downloadable fonts which should, when required, be included by
|
|
||||||
.B grops
|
|
||||||
must be listed in the file
|
|
||||||
.BR @FONTDIR@/devps/download ;
|
|
||||||
this should consist of lines of the form
|
|
||||||
.IP
|
|
||||||
.I
|
|
||||||
font filename
|
|
||||||
.LP
|
|
||||||
where
|
|
||||||
.I font
|
|
||||||
is the PostScript name of the font,
|
|
||||||
and
|
|
||||||
.I filename
|
|
||||||
is the name of the file containing the font;
|
|
||||||
lines beginning with
|
|
||||||
.B #
|
|
||||||
and blank lines are ignored;
|
|
||||||
fields may be separated by tabs or spaces;
|
|
||||||
.I filename
|
|
||||||
will be searched for using the same mechanism that is used
|
|
||||||
for groff font metric files.
|
|
||||||
The
|
|
||||||
.B download
|
|
||||||
file itself will also be searched for using this mechanism.
|
|
||||||
.LP
|
|
||||||
If the file containing a downloadable font or imported document
|
|
||||||
conforms to the Adobe Document Structuring Conventions,
|
|
||||||
then
|
|
||||||
.B grops
|
|
||||||
will interpret any comments in the files sufficiently to ensure that its
|
|
||||||
own output is conforming.
|
|
||||||
It will also supply any needed font resources that are listed in the
|
|
||||||
.B download
|
|
||||||
file
|
|
||||||
as well as any needed file resources.
|
|
||||||
It is also able to handle inter-resource dependencies.
|
|
||||||
For example, suppose that you have a downloadable font called Garamond,
|
|
||||||
and also a downloadable font called Garamond-Outline
|
|
||||||
which depends on Garamond
|
|
||||||
(typically it would be defined to copy Garamond's font dictionary,
|
|
||||||
and change the PaintType),
|
|
||||||
then it is necessary for Garamond to be appear before Garamond-Outline
|
|
||||||
in the PostScript document.
|
|
||||||
.B grops
|
|
||||||
will handle this automatically
|
|
||||||
provided that the downloadable font file for Garamond-Outline
|
|
||||||
indicates its dependence on Garamond by means of
|
|
||||||
the Document Structuring Conventions,
|
|
||||||
for example by beginning with the following lines
|
|
||||||
.IP
|
|
||||||
.B
|
|
||||||
%!PS-Adobe-3.0 Resource-Font
|
|
||||||
.br
|
|
||||||
.B
|
|
||||||
%%DocumentNeededResources: font Garamond
|
|
||||||
.br
|
|
||||||
.B
|
|
||||||
%%EndComments
|
|
||||||
.br
|
|
||||||
.B
|
|
||||||
%%IncludeResource: font Garamond
|
|
||||||
.LP
|
|
||||||
In this case both Garamond and Garamond-Outline would need to be listed
|
|
||||||
in the
|
|
||||||
.B download
|
|
||||||
file.
|
|
||||||
A downloadable font should not include its own name in a
|
|
||||||
.B %%DocumentSuppliedResources
|
|
||||||
comment.
|
|
||||||
.LP
|
|
||||||
.B grops
|
|
||||||
will not interpret
|
|
||||||
.B %%DocumentFonts
|
|
||||||
comments.
|
|
||||||
The
|
|
||||||
.BR %%DocumentNeededResources ,
|
|
||||||
.BR %%DocumentSuppliedResources ,
|
|
||||||
.BR %%IncludeResource ,
|
|
||||||
.BR %%BeginResource
|
|
||||||
and
|
|
||||||
.BR %%EndResource
|
|
||||||
comments
|
|
||||||
(or possibly the old
|
|
||||||
.BR %%DocumentNeededFonts ,
|
|
||||||
.BR %%DocumentSuppliedFonts ,
|
|
||||||
.BR %%IncludeFont ,
|
|
||||||
.BR %%BeginFont
|
|
||||||
and
|
|
||||||
.BR %%EndFont
|
|
||||||
comments)
|
|
||||||
should be used.
|
|
||||||
.SH FILES
|
|
||||||
.Tp \w'\fB@FONTDIR@/devps/download'u+2n
|
|
||||||
.B @FONTDIR@/devps/DESC
|
|
||||||
Device description file.
|
|
||||||
.TP
|
|
||||||
.BI @FONTDIR@/devps/ F
|
|
||||||
Font description file for font
|
|
||||||
.IR F .
|
|
||||||
.TP
|
|
||||||
.B @FONTDIR@/devps/download
|
|
||||||
List of downloadable fonts.
|
|
||||||
.TP
|
|
||||||
.B @FONTDIR@/devps/text.enc
|
|
||||||
Encoding used for text fonts.
|
|
||||||
.TP
|
|
||||||
.B @MACRODIR@/tmac.ps
|
|
||||||
Macros for use with
|
|
||||||
.BR grops ;
|
|
||||||
automatically loaded by
|
|
||||||
.BR troffrc
|
|
||||||
.TP
|
|
||||||
.B @MACRODIR@/tmac.pspic
|
|
||||||
Definition of
|
|
||||||
.B PSPIC
|
|
||||||
macro,
|
|
||||||
automatically loaded by
|
|
||||||
.BR tmac.ps .
|
|
||||||
.TP
|
|
||||||
.B @MACRODIR@/tmac.psold
|
|
||||||
Macros to disable use of characters not present in older
|
|
||||||
PostScript printers; automatically loaded by
|
|
||||||
.BR tmac.ps .
|
|
||||||
.TP
|
|
||||||
.B @MACRODIR@/tmac.psnew
|
|
||||||
Macros to undo the effect of
|
|
||||||
.BR tmac.psold .
|
|
||||||
.TP
|
|
||||||
.BI /tmp/grops XXXXXX
|
|
||||||
Temporary file.
|
|
||||||
.SH "SEE ALSO"
|
|
||||||
.BR afmtodit (@MAN1EXT@),
|
|
||||||
.BR groff (@MAN1EXT@),
|
|
||||||
.BR @g@troff (@MAN1EXT@),
|
|
||||||
.BR psbb (@MAN1EXT@),
|
|
||||||
.BR groff_out (@MAN5EXT@),
|
|
||||||
.BR groff_font (@MAN5EXT@),
|
|
||||||
.BR groff_char (@MAN7EXT@)
|
|
@ -1,275 +0,0 @@
|
|||||||
.ig \"-*- nroff -*-
|
|
||||||
$FreeBSD$
|
|
||||||
Copyright (C) 1989-2000 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
Permission is granted to make and distribute verbatim copies of
|
|
||||||
this manual provided the copyright notice and this permission notice
|
|
||||||
are preserved on all copies.
|
|
||||||
|
|
||||||
Permission is granted to copy and distribute modified versions of this
|
|
||||||
manual under the conditions for verbatim copying, provided that the
|
|
||||||
entire resulting derived work is distributed under the terms of a
|
|
||||||
permission notice identical to this one.
|
|
||||||
|
|
||||||
Permission is granted to copy and distribute translations of this
|
|
||||||
manual into another language, under the above conditions for modified
|
|
||||||
versions, except that this permission notice may be included in
|
|
||||||
translations approved by the Free Software Foundation instead of in
|
|
||||||
the original English.
|
|
||||||
..
|
|
||||||
.TH GROTTY @MAN1EXT@ "@MDATE@" "Groff Version @VERSION@"
|
|
||||||
.SH NAME
|
|
||||||
grotty \- groff driver for typewriter-like devices
|
|
||||||
.SH SYNOPSIS
|
|
||||||
.B grotty
|
|
||||||
[
|
|
||||||
.B \-hfbuodBUv
|
|
||||||
] [
|
|
||||||
.BI \-F dir
|
|
||||||
] [
|
|
||||||
.IR files \|.\|.\|.
|
|
||||||
]
|
|
||||||
.PP
|
|
||||||
It is possible to have whitespace between the
|
|
||||||
.B \-F
|
|
||||||
option and its parameter.
|
|
||||||
.SH DESCRIPTION
|
|
||||||
.B grotty
|
|
||||||
translates the output of GNU
|
|
||||||
.B troff
|
|
||||||
into a form suitable for typewriter-like devices.
|
|
||||||
Normally
|
|
||||||
.B grotty
|
|
||||||
should invoked by using the
|
|
||||||
.B groff
|
|
||||||
command
|
|
||||||
with a
|
|
||||||
.BR \-Tascii ,
|
|
||||||
.BR \-Tkoi8-r ,
|
|
||||||
.B \-Tlatin1
|
|
||||||
or
|
|
||||||
.B \-Tutf8
|
|
||||||
option on ASCII based systems, and with
|
|
||||||
.B \-Tcp1047
|
|
||||||
on EBCDIC based hosts.
|
|
||||||
If no files are given,
|
|
||||||
.B grotty
|
|
||||||
will read the standard input.
|
|
||||||
A filename of
|
|
||||||
.B \-
|
|
||||||
will also cause
|
|
||||||
.B grotty
|
|
||||||
to read the standard input.
|
|
||||||
Output is written to the standard output.
|
|
||||||
.LP
|
|
||||||
Normally
|
|
||||||
.B grotty
|
|
||||||
prints a bold character
|
|
||||||
.I c
|
|
||||||
using the sequence
|
|
||||||
.RI ` c
|
|
||||||
.SM BACKSPACE
|
|
||||||
.IR c '
|
|
||||||
and a italic character
|
|
||||||
.I c
|
|
||||||
by the sequence
|
|
||||||
.RB ` _
|
|
||||||
.SM BACKSPACE
|
|
||||||
.IR c '.
|
|
||||||
These sequences can be displayed on a terminal
|
|
||||||
by piping through
|
|
||||||
.BR ul (1).
|
|
||||||
Pagers such as
|
|
||||||
.BR more (1)
|
|
||||||
or
|
|
||||||
.BR less (1)
|
|
||||||
are also able to display these sequences.
|
|
||||||
Use either
|
|
||||||
.B \-B
|
|
||||||
or
|
|
||||||
.B \-U
|
|
||||||
when piping into
|
|
||||||
.BR less (1);
|
|
||||||
use
|
|
||||||
.B \-b
|
|
||||||
when piping into
|
|
||||||
.BR more (1).
|
|
||||||
There is no need to filter the output through
|
|
||||||
.BR col (1)
|
|
||||||
since
|
|
||||||
.B grotty
|
|
||||||
never outputs reverse line feeds.
|
|
||||||
.LP
|
|
||||||
The font description file may contain a command
|
|
||||||
.IP
|
|
||||||
.BI internalname\ n
|
|
||||||
.LP
|
|
||||||
where
|
|
||||||
.I n
|
|
||||||
is a decimal integer.
|
|
||||||
If the 01 bit in
|
|
||||||
.I n
|
|
||||||
is set,
|
|
||||||
then the font will be treated as an italic font;
|
|
||||||
if the 02 bit is set,
|
|
||||||
then it will be treated as a bold font.
|
|
||||||
The code field in the font description field gives the
|
|
||||||
code which will be used to output the character.
|
|
||||||
This code can also be used in the
|
|
||||||
.B \eN
|
|
||||||
escape sequence in
|
|
||||||
.BR troff .
|
|
||||||
.SH OPTIONS
|
|
||||||
.TP
|
|
||||||
.BI \-F dir
|
|
||||||
Search the directory
|
|
||||||
.IB dir /dev name
|
|
||||||
for font and device description files;
|
|
||||||
.I name
|
|
||||||
is the name of the device, usually
|
|
||||||
.BR ascii ,
|
|
||||||
.BR koi8-r ,
|
|
||||||
.BR latin1 ,
|
|
||||||
.BR utf8 ,
|
|
||||||
or
|
|
||||||
.BR cp1047 .
|
|
||||||
.TP
|
|
||||||
.B \-h
|
|
||||||
Use horizontal tabs in the output.
|
|
||||||
Tabs are assumed to be set every 8 columns.
|
|
||||||
.TP
|
|
||||||
.B \-f
|
|
||||||
Use form feeds in the output.
|
|
||||||
A form feed will be output at the end of each page that has no output
|
|
||||||
on its last line.
|
|
||||||
.TP
|
|
||||||
.B \-b
|
|
||||||
Suppress the use of overstriking for bold characters.
|
|
||||||
.TP
|
|
||||||
.B \-u
|
|
||||||
Suppress the use of underlining for italic characters.
|
|
||||||
.TP
|
|
||||||
.B \-B
|
|
||||||
Use only overstriking for bold-italic characters.
|
|
||||||
.TP
|
|
||||||
.B \-U
|
|
||||||
Use only underlining for bold-italic characters.
|
|
||||||
.TP
|
|
||||||
.B \-o
|
|
||||||
Suppress overstriking (other than for bold or underlined characters).
|
|
||||||
.TP
|
|
||||||
.B \-d
|
|
||||||
Ignore all
|
|
||||||
.B \eD
|
|
||||||
commands.
|
|
||||||
Without this
|
|
||||||
.B grotty
|
|
||||||
will render
|
|
||||||
.B \eD'l\|.\|.\|.'
|
|
||||||
commands that have at least at least one zero argument
|
|
||||||
(and so are either horizontal or vertical)
|
|
||||||
using
|
|
||||||
.BR \- ,
|
|
||||||
.B |
|
|
||||||
and
|
|
||||||
.B +
|
|
||||||
characters.
|
|
||||||
.TP
|
|
||||||
.B \-v
|
|
||||||
Print the version number.
|
|
||||||
.SH FILES
|
|
||||||
.TP
|
|
||||||
.B @FONTDIR@/devascii/DESC
|
|
||||||
Device description file for
|
|
||||||
.B ascii
|
|
||||||
device.
|
|
||||||
.TP
|
|
||||||
.BI @FONTDIR@/devascii/ F
|
|
||||||
Font description file for font
|
|
||||||
.I F
|
|
||||||
of
|
|
||||||
.B ascii
|
|
||||||
device.
|
|
||||||
.TP
|
|
||||||
.B @FONTDIR@/devkoi8-r/DESC
|
|
||||||
Device description file for
|
|
||||||
.B koi8-r
|
|
||||||
device.
|
|
||||||
.TP
|
|
||||||
.BI @FONTDIR@/devkoi8-r/ F
|
|
||||||
Font description file for font
|
|
||||||
.I F
|
|
||||||
of
|
|
||||||
.B koi8-r
|
|
||||||
device.
|
|
||||||
.TP
|
|
||||||
.B @FONTDIR@/devlatin1/DESC
|
|
||||||
Device description file for
|
|
||||||
.B latin1
|
|
||||||
device.
|
|
||||||
.TP
|
|
||||||
.BI @FONTDIR@/devlatin1/ F
|
|
||||||
Font description file for font
|
|
||||||
.I F
|
|
||||||
of
|
|
||||||
.B latin1
|
|
||||||
device.
|
|
||||||
.TP
|
|
||||||
.B @FONTDIR@/devutf8/DESC
|
|
||||||
Device description file for
|
|
||||||
.B utf8
|
|
||||||
device.
|
|
||||||
.TP
|
|
||||||
.BI @FONTDIR@/devutf8/ F
|
|
||||||
Font description file for font
|
|
||||||
.I F
|
|
||||||
of
|
|
||||||
.B utf8
|
|
||||||
device.
|
|
||||||
.TP
|
|
||||||
.B @FONTDIR@/devcp1047/DESC
|
|
||||||
Device description file for
|
|
||||||
.B cp1047
|
|
||||||
device.
|
|
||||||
.TP
|
|
||||||
.BI @FONTDIR@/devcp1047/ F
|
|
||||||
Font description file for font
|
|
||||||
.I F
|
|
||||||
of
|
|
||||||
.B cp1047
|
|
||||||
device.
|
|
||||||
.TP
|
|
||||||
.B @MACRODIR@/tmac.tty
|
|
||||||
Macros for use with
|
|
||||||
.BR grotty .
|
|
||||||
.TP
|
|
||||||
.B @MACRODIR@/tmac.tty-char
|
|
||||||
Additional klugey character definitions for use with
|
|
||||||
.BR grotty .
|
|
||||||
.LP
|
|
||||||
Note that on EBCDIC hosts, only files for the
|
|
||||||
.B cp1047
|
|
||||||
device will be installed.
|
|
||||||
.SH BUGS
|
|
||||||
.LP
|
|
||||||
.B grotty
|
|
||||||
is intended only for simple documents.
|
|
||||||
.LP
|
|
||||||
There is no support for fractional horizontal or vertical motions.
|
|
||||||
.LP
|
|
||||||
There is no support for
|
|
||||||
.B \eD
|
|
||||||
commands
|
|
||||||
other than horizontal and vertical lines.
|
|
||||||
.LP
|
|
||||||
Characters above the first line (ie with a vertical position of 0)
|
|
||||||
cannot be printed.
|
|
||||||
.SH "SEE ALSO"
|
|
||||||
.BR groff (@MAN1EXT@),
|
|
||||||
.BR @g@troff (@MAN1EXT@),
|
|
||||||
.BR groff_out (@MAN5EXT@),
|
|
||||||
.BR groff_font (@MAN5EXT@),
|
|
||||||
.BR groff_char (@MAN7EXT@),
|
|
||||||
.BR ul (1),
|
|
||||||
.BR more (1),
|
|
||||||
.BR less (1)
|
|
@ -1,62 +0,0 @@
|
|||||||
// -*- C++ -*-
|
|
||||||
/* Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc.
|
|
||||||
Written by James Clark (jjc@jclark.com)
|
|
||||||
|
|
||||||
This file is part of groff.
|
|
||||||
|
|
||||||
groff is free software; you can redistribute it and/or modify it under
|
|
||||||
the terms of the GNU General Public License as published by the Free
|
|
||||||
Software Foundation; either version 2, or (at your option) any later
|
|
||||||
version.
|
|
||||||
|
|
||||||
groff is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
||||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with groff; see the file COPYING. If not, write to the Free Software
|
|
||||||
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|
||||||
|
|
||||||
#include <ctype.h>
|
|
||||||
#ifdef __FreeBSD__
|
|
||||||
#include <locale.h>
|
|
||||||
#endif
|
|
||||||
#include "cmap.h"
|
|
||||||
|
|
||||||
cmap cmlower(CMAP_BUILTIN);
|
|
||||||
cmap cmupper(CMAP_BUILTIN);
|
|
||||||
|
|
||||||
#if defined(isascii) && !defined(__FreeBSD__)
|
|
||||||
#define ISASCII(c) isascii(c)
|
|
||||||
#else
|
|
||||||
#define ISASCII(c) (1)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
cmap::cmap()
|
|
||||||
{
|
|
||||||
unsigned char *p = v;
|
|
||||||
for (int i = 0; i <= UCHAR_MAX; i++)
|
|
||||||
p[i] = i;
|
|
||||||
}
|
|
||||||
|
|
||||||
cmap::cmap(cmap_builtin)
|
|
||||||
{
|
|
||||||
// these are initialised by cmap_init::cmap_init()
|
|
||||||
}
|
|
||||||
|
|
||||||
int cmap_init::initialised = 0;
|
|
||||||
|
|
||||||
cmap_init::cmap_init()
|
|
||||||
{
|
|
||||||
if (initialised)
|
|
||||||
return;
|
|
||||||
initialised = 1;
|
|
||||||
#ifdef __FreeBSD__
|
|
||||||
(void) setlocale(LC_CTYPE, "");
|
|
||||||
#endif
|
|
||||||
for (int i = 0; i <= UCHAR_MAX; i++) {
|
|
||||||
cmupper.v[i] = ISASCII(i) && islower(i) ? toupper(i) : i;
|
|
||||||
cmlower.v[i] = ISASCII(i) && isupper(i) ? tolower(i) : i;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,108 +0,0 @@
|
|||||||
// -*- C++ -*-
|
|
||||||
/* Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc.
|
|
||||||
Written by James Clark (jjc@jclark.com)
|
|
||||||
|
|
||||||
This file is part of groff.
|
|
||||||
|
|
||||||
groff is free software; you can redistribute it and/or modify it under
|
|
||||||
the terms of the GNU General Public License as published by the Free
|
|
||||||
Software Foundation; either version 2, or (at your option) any later
|
|
||||||
version.
|
|
||||||
|
|
||||||
groff is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
||||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with groff; see the file COPYING. If not, write to the Free Software
|
|
||||||
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|
||||||
|
|
||||||
#include <ctype.h>
|
|
||||||
#ifdef __FreeBSD__
|
|
||||||
#include <locale.h>
|
|
||||||
#endif
|
|
||||||
#include "cset.h"
|
|
||||||
|
|
||||||
cset csalpha(CSET_BUILTIN);
|
|
||||||
cset csupper(CSET_BUILTIN);
|
|
||||||
cset cslower(CSET_BUILTIN);
|
|
||||||
cset csdigit(CSET_BUILTIN);
|
|
||||||
cset csxdigit(CSET_BUILTIN);
|
|
||||||
cset csspace(CSET_BUILTIN);
|
|
||||||
cset cspunct(CSET_BUILTIN);
|
|
||||||
cset csalnum(CSET_BUILTIN);
|
|
||||||
cset csprint(CSET_BUILTIN);
|
|
||||||
cset csgraph(CSET_BUILTIN);
|
|
||||||
cset cscntrl(CSET_BUILTIN);
|
|
||||||
|
|
||||||
#if defined(isascii) && !defined(__FreeBSD__)
|
|
||||||
#define ISASCII(c) isascii(c)
|
|
||||||
#else
|
|
||||||
#define ISASCII(c) (1)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void cset::clear()
|
|
||||||
{
|
|
||||||
char *p = v;
|
|
||||||
for (int i = 0; i <= UCHAR_MAX; i++)
|
|
||||||
p[i] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
cset::cset()
|
|
||||||
{
|
|
||||||
clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
cset::cset(const char *s)
|
|
||||||
{
|
|
||||||
clear();
|
|
||||||
while (*s)
|
|
||||||
v[(unsigned char)*s++] = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
cset::cset(const unsigned char *s)
|
|
||||||
{
|
|
||||||
clear();
|
|
||||||
while (*s)
|
|
||||||
v[*s++] = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
cset::cset(cset_builtin)
|
|
||||||
{
|
|
||||||
// these are initialised by cset_init::cset_init()
|
|
||||||
}
|
|
||||||
|
|
||||||
cset &cset::operator|=(const cset &cs)
|
|
||||||
{
|
|
||||||
for (int i = 0; i <= UCHAR_MAX; i++)
|
|
||||||
if (cs.v[i])
|
|
||||||
v[i] = 1;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int cset_init::initialised = 0;
|
|
||||||
|
|
||||||
cset_init::cset_init()
|
|
||||||
{
|
|
||||||
if (initialised)
|
|
||||||
return;
|
|
||||||
initialised = 1;
|
|
||||||
#ifdef __FreeBSD__
|
|
||||||
(void) setlocale(LC_CTYPE, "");
|
|
||||||
#endif
|
|
||||||
for (int i = 0; i <= UCHAR_MAX; i++) {
|
|
||||||
csalpha.v[i] = ISASCII(i) && isalpha(i);
|
|
||||||
csupper.v[i] = ISASCII(i) && isupper(i);
|
|
||||||
cslower.v[i] = ISASCII(i) && islower(i);
|
|
||||||
csdigit.v[i] = ISASCII(i) && isdigit(i);
|
|
||||||
csxdigit.v[i] = ISASCII(i) && isxdigit(i);
|
|
||||||
csspace.v[i] = ISASCII(i) && isspace(i);
|
|
||||||
cspunct.v[i] = ISASCII(i) && ispunct(i);
|
|
||||||
csalnum.v[i] = ISASCII(i) && isalnum(i);
|
|
||||||
csprint.v[i] = ISASCII(i) && isprint(i);
|
|
||||||
csgraph.v[i] = ISASCII(i) && isgraph(i);
|
|
||||||
cscntrl.v[i] = ISASCII(i) && iscntrl(i);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,940 +0,0 @@
|
|||||||
// -*- C++ -*-
|
|
||||||
/* Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc.
|
|
||||||
Written by James Clark (jjc@jclark.com)
|
|
||||||
|
|
||||||
This file is part of groff.
|
|
||||||
|
|
||||||
groff is free software; you can redistribute it and/or modify it under
|
|
||||||
the terms of the GNU General Public License as published by the Free
|
|
||||||
Software Foundation; either version 2, or (at your option) any later
|
|
||||||
version.
|
|
||||||
|
|
||||||
groff is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
||||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with groff; see the file COPYING. If not, write to the Free Software
|
|
||||||
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|
||||||
|
|
||||||
/* $FreeBSD$ */
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <ctype.h>
|
|
||||||
#include <assert.h>
|
|
||||||
#include <math.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include "errarg.h"
|
|
||||||
#include "error.h"
|
|
||||||
#include "cset.h"
|
|
||||||
#include "font.h"
|
|
||||||
#include "lib.h"
|
|
||||||
|
|
||||||
const char *const WS = " \t\n\r";
|
|
||||||
|
|
||||||
struct font_char_metric {
|
|
||||||
char type;
|
|
||||||
int code;
|
|
||||||
int width;
|
|
||||||
int height;
|
|
||||||
int depth;
|
|
||||||
int pre_math_space;
|
|
||||||
int italic_correction;
|
|
||||||
int subscript_correction;
|
|
||||||
char *special_device_coding;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct font_kern_list {
|
|
||||||
int i1;
|
|
||||||
int i2;
|
|
||||||
int amount;
|
|
||||||
font_kern_list *next;
|
|
||||||
|
|
||||||
font_kern_list(int, int, int, font_kern_list * = 0);
|
|
||||||
};
|
|
||||||
|
|
||||||
struct font_widths_cache {
|
|
||||||
font_widths_cache *next;
|
|
||||||
int point_size;
|
|
||||||
int *width;
|
|
||||||
|
|
||||||
font_widths_cache(int, int, font_widths_cache *);
|
|
||||||
~font_widths_cache();
|
|
||||||
};
|
|
||||||
|
|
||||||
/* text_file */
|
|
||||||
|
|
||||||
struct text_file {
|
|
||||||
FILE *fp;
|
|
||||||
char *path;
|
|
||||||
int lineno;
|
|
||||||
int size;
|
|
||||||
int skip_comments;
|
|
||||||
char *buf;
|
|
||||||
text_file(FILE *fp, char *p);
|
|
||||||
~text_file();
|
|
||||||
int next();
|
|
||||||
void error(const char *format,
|
|
||||||
const errarg &arg1 = empty_errarg,
|
|
||||||
const errarg &arg2 = empty_errarg,
|
|
||||||
const errarg &arg3 = empty_errarg);
|
|
||||||
};
|
|
||||||
|
|
||||||
text_file::text_file(FILE *p, char *s)
|
|
||||||
: fp(p), path(s), lineno(0), size(0), skip_comments(1), buf(0)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
text_file::~text_file()
|
|
||||||
{
|
|
||||||
a_delete buf;
|
|
||||||
a_delete path;
|
|
||||||
if (fp)
|
|
||||||
fclose(fp);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int text_file::next()
|
|
||||||
{
|
|
||||||
if (fp == 0)
|
|
||||||
return 0;
|
|
||||||
if (buf == 0) {
|
|
||||||
buf = new char [128];
|
|
||||||
size = 128;
|
|
||||||
}
|
|
||||||
for (;;) {
|
|
||||||
int i = 0;
|
|
||||||
for (;;) {
|
|
||||||
int c = getc(fp);
|
|
||||||
if (c == EOF)
|
|
||||||
break;
|
|
||||||
if (illegal_input_char(c))
|
|
||||||
error("illegal input character code `%1'", int(c));
|
|
||||||
else {
|
|
||||||
if (i + 1 >= size) {
|
|
||||||
char *old_buf = buf;
|
|
||||||
buf = new char[size*2];
|
|
||||||
memcpy(buf, old_buf, size);
|
|
||||||
a_delete old_buf;
|
|
||||||
size *= 2;
|
|
||||||
}
|
|
||||||
buf[i++] = c;
|
|
||||||
if (c == '\n')
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (i == 0)
|
|
||||||
break;
|
|
||||||
buf[i] = '\0';
|
|
||||||
lineno++;
|
|
||||||
char *ptr = buf;
|
|
||||||
while (csspace(*ptr))
|
|
||||||
ptr++;
|
|
||||||
if (*ptr != 0 && (!skip_comments || *ptr != '#'))
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void text_file::error(const char *format,
|
|
||||||
const errarg &arg1,
|
|
||||||
const errarg &arg2,
|
|
||||||
const errarg &arg3)
|
|
||||||
{
|
|
||||||
error_with_file_and_line(path, lineno, format, arg1, arg2, arg3);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* font functions */
|
|
||||||
|
|
||||||
font::font(const char *s)
|
|
||||||
: ligatures(0), kern_hash_table(0), space_width(0), ch_index(0), nindices(0),
|
|
||||||
ch(0), ch_used(0), ch_size(0), special(0), widths_cache(0)
|
|
||||||
{
|
|
||||||
name = new char[strlen(s) + 1];
|
|
||||||
strcpy(name, s);
|
|
||||||
internalname = 0;
|
|
||||||
slant = 0.0;
|
|
||||||
// load(); // for testing
|
|
||||||
}
|
|
||||||
|
|
||||||
font::~font()
|
|
||||||
{
|
|
||||||
a_delete ch;
|
|
||||||
a_delete ch_index;
|
|
||||||
if (kern_hash_table) {
|
|
||||||
for (int i = 0; i < KERN_HASH_TABLE_SIZE; i++) {
|
|
||||||
font_kern_list *kerns = kern_hash_table[i];
|
|
||||||
while (kerns) {
|
|
||||||
font_kern_list *tem = kerns;
|
|
||||||
kerns = kerns->next;
|
|
||||||
delete tem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
a_delete kern_hash_table;
|
|
||||||
}
|
|
||||||
a_delete name;
|
|
||||||
a_delete internalname;
|
|
||||||
while (widths_cache) {
|
|
||||||
font_widths_cache *tem = widths_cache;
|
|
||||||
widths_cache = widths_cache->next;
|
|
||||||
delete tem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static int scale_round(int n, int x, int y)
|
|
||||||
{
|
|
||||||
assert(x >= 0 && y > 0);
|
|
||||||
int y2 = y/2;
|
|
||||||
if (x == 0)
|
|
||||||
return 0;
|
|
||||||
if (n >= 0) {
|
|
||||||
if (n <= (INT_MAX - y2)/x)
|
|
||||||
return (n*x + y2)/y;
|
|
||||||
return int(n*double(x)/double(y) + .5);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (-(unsigned)n <= (-(unsigned)INT_MIN - y2)/x)
|
|
||||||
return (n*x - y2)/y;
|
|
||||||
return int(n*double(x)/double(y) - .5);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
inline int font::scale(int w, int sz)
|
|
||||||
{
|
|
||||||
return sz == unitwidth ? w : scale_round(w, sz, unitwidth);
|
|
||||||
}
|
|
||||||
|
|
||||||
int font::get_skew(int c, int point_size, int sl)
|
|
||||||
{
|
|
||||||
int h = get_height(c, point_size);
|
|
||||||
return int(h*tan((slant+sl)*PI/180.0) + .5);
|
|
||||||
}
|
|
||||||
|
|
||||||
int font::contains(int c)
|
|
||||||
{
|
|
||||||
return c >= 0 && c < nindices && ch_index[c] >= 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int font::is_special()
|
|
||||||
{
|
|
||||||
return special;
|
|
||||||
}
|
|
||||||
|
|
||||||
font_widths_cache::font_widths_cache(int ps, int ch_size,
|
|
||||||
font_widths_cache *p = 0)
|
|
||||||
: next(p), point_size(ps)
|
|
||||||
{
|
|
||||||
width = new int[ch_size];
|
|
||||||
for (int i = 0; i < ch_size; i++)
|
|
||||||
width[i] = -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
font_widths_cache::~font_widths_cache()
|
|
||||||
{
|
|
||||||
a_delete width;
|
|
||||||
}
|
|
||||||
|
|
||||||
int font::get_width(int c, int point_size)
|
|
||||||
{
|
|
||||||
assert(c >= 0 && c < nindices);
|
|
||||||
int i = ch_index[c];
|
|
||||||
assert(i >= 0);
|
|
||||||
|
|
||||||
if (point_size == unitwidth)
|
|
||||||
return ch[i].width;
|
|
||||||
|
|
||||||
if (!widths_cache)
|
|
||||||
widths_cache = new font_widths_cache(point_size, ch_size);
|
|
||||||
else if (widths_cache->point_size != point_size) {
|
|
||||||
font_widths_cache **p;
|
|
||||||
for (p = &widths_cache; *p; p = &(*p)->next)
|
|
||||||
if ((*p)->point_size == point_size)
|
|
||||||
break;
|
|
||||||
if (*p) {
|
|
||||||
font_widths_cache *tem = *p;
|
|
||||||
*p = (*p)->next;
|
|
||||||
tem->next = widths_cache;
|
|
||||||
widths_cache = tem;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
widths_cache = new font_widths_cache(point_size, ch_size, widths_cache);
|
|
||||||
}
|
|
||||||
int &w = widths_cache->width[i];
|
|
||||||
if (w < 0)
|
|
||||||
w = scale(ch[i].width, point_size);
|
|
||||||
return w;
|
|
||||||
}
|
|
||||||
|
|
||||||
int font::get_height(int c, int point_size)
|
|
||||||
{
|
|
||||||
assert(c >= 0 && c < nindices && ch_index[c] >= 0);
|
|
||||||
return scale(ch[ch_index[c]].height, point_size);
|
|
||||||
}
|
|
||||||
|
|
||||||
int font::get_depth(int c, int point_size)
|
|
||||||
{
|
|
||||||
assert(c >= 0 && c < nindices && ch_index[c] >= 0);
|
|
||||||
return scale(ch[ch_index[c]].depth, point_size);
|
|
||||||
}
|
|
||||||
|
|
||||||
int font::get_italic_correction(int c, int point_size)
|
|
||||||
{
|
|
||||||
assert(c >= 0 && c < nindices && ch_index[c] >= 0);
|
|
||||||
return scale(ch[ch_index[c]].italic_correction, point_size);
|
|
||||||
}
|
|
||||||
|
|
||||||
int font::get_left_italic_correction(int c, int point_size)
|
|
||||||
{
|
|
||||||
assert(c >= 0 && c < nindices && ch_index[c] >= 0);
|
|
||||||
return scale(ch[ch_index[c]].pre_math_space, point_size);
|
|
||||||
}
|
|
||||||
|
|
||||||
int font::get_subscript_correction(int c, int point_size)
|
|
||||||
{
|
|
||||||
assert(c >= 0 && c < nindices && ch_index[c] >= 0);
|
|
||||||
return scale(ch[ch_index[c]].subscript_correction, point_size);
|
|
||||||
}
|
|
||||||
|
|
||||||
int font::get_space_width(int point_size)
|
|
||||||
{
|
|
||||||
return scale(space_width, point_size);
|
|
||||||
}
|
|
||||||
|
|
||||||
font_kern_list::font_kern_list(int c1, int c2, int n, font_kern_list *p)
|
|
||||||
: i1(c1), i2(c2), amount(n), next(p)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
inline int font::hash_kern(int i1, int i2)
|
|
||||||
{
|
|
||||||
int n = ((i1 << 10) + i2) % KERN_HASH_TABLE_SIZE;
|
|
||||||
return n < 0 ? -n : n;
|
|
||||||
}
|
|
||||||
|
|
||||||
void font::add_kern(int i1, int i2, int amount)
|
|
||||||
{
|
|
||||||
if (!kern_hash_table) {
|
|
||||||
kern_hash_table = new font_kern_list *[KERN_HASH_TABLE_SIZE];
|
|
||||||
for (int i = 0; i < KERN_HASH_TABLE_SIZE; i++)
|
|
||||||
kern_hash_table[i] = 0;
|
|
||||||
}
|
|
||||||
font_kern_list **p = kern_hash_table + hash_kern(i1, i2);
|
|
||||||
*p = new font_kern_list(i1, i2, amount, *p);
|
|
||||||
}
|
|
||||||
|
|
||||||
int font::get_kern(int i1, int i2, int point_size)
|
|
||||||
{
|
|
||||||
if (kern_hash_table) {
|
|
||||||
for (font_kern_list *p = kern_hash_table[hash_kern(i1, i2)]; p; p = p->next)
|
|
||||||
if (i1 == p->i1 && i2 == p->i2)
|
|
||||||
return scale(p->amount, point_size);
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int font::has_ligature(int mask)
|
|
||||||
{
|
|
||||||
return mask & ligatures;
|
|
||||||
}
|
|
||||||
|
|
||||||
int font::get_character_type(int c)
|
|
||||||
{
|
|
||||||
assert(c >= 0 && c < nindices && ch_index[c] >= 0);
|
|
||||||
return ch[ch_index[c]].type;
|
|
||||||
}
|
|
||||||
|
|
||||||
int font::get_code(int c)
|
|
||||||
{
|
|
||||||
assert(c >= 0 && c < nindices && ch_index[c] >= 0);
|
|
||||||
return ch[ch_index[c]].code;
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *font::get_name()
|
|
||||||
{
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *font::get_internal_name()
|
|
||||||
{
|
|
||||||
return internalname;
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *font::get_special_device_encoding(int c)
|
|
||||||
{
|
|
||||||
assert(c >= 0 && c < nindices && ch_index[c] >= 0);
|
|
||||||
return( ch[ch_index[c]].special_device_coding );
|
|
||||||
}
|
|
||||||
|
|
||||||
void font::alloc_ch_index(int index)
|
|
||||||
{
|
|
||||||
if (nindices == 0) {
|
|
||||||
nindices = 128;
|
|
||||||
if (index >= nindices)
|
|
||||||
nindices = index + 10;
|
|
||||||
ch_index = new short[nindices];
|
|
||||||
for (int i = 0; i < nindices; i++)
|
|
||||||
ch_index[i] = -1;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
int old_nindices = nindices;
|
|
||||||
nindices *= 2;
|
|
||||||
if (index >= nindices)
|
|
||||||
nindices = index + 10;
|
|
||||||
short *old_ch_index = ch_index;
|
|
||||||
ch_index = new short[nindices];
|
|
||||||
memcpy(ch_index, old_ch_index, sizeof(short)*old_nindices);
|
|
||||||
for (int i = old_nindices; i < nindices; i++)
|
|
||||||
ch_index[i] = -1;
|
|
||||||
a_delete old_ch_index;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void font::extend_ch()
|
|
||||||
{
|
|
||||||
if (ch == 0)
|
|
||||||
ch = new font_char_metric[ch_size = 16];
|
|
||||||
else {
|
|
||||||
int old_ch_size = ch_size;
|
|
||||||
ch_size *= 2;
|
|
||||||
font_char_metric *old_ch = ch;
|
|
||||||
ch = new font_char_metric[ch_size];
|
|
||||||
memcpy(ch, old_ch, old_ch_size*sizeof(font_char_metric));
|
|
||||||
a_delete old_ch;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void font::compact()
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
for (i = nindices - 1; i >= 0; i--)
|
|
||||||
if (ch_index[i] >= 0)
|
|
||||||
break;
|
|
||||||
i++;
|
|
||||||
if (i < nindices) {
|
|
||||||
short *old_ch_index = ch_index;
|
|
||||||
ch_index = new short[i];
|
|
||||||
memcpy(ch_index, old_ch_index, i*sizeof(short));
|
|
||||||
a_delete old_ch_index;
|
|
||||||
nindices = i;
|
|
||||||
}
|
|
||||||
if (ch_used < ch_size) {
|
|
||||||
font_char_metric *old_ch = ch;
|
|
||||||
ch = new font_char_metric[ch_used];
|
|
||||||
memcpy(ch, old_ch, ch_used*sizeof(font_char_metric));
|
|
||||||
a_delete old_ch;
|
|
||||||
ch_size = ch_used;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void font::add_entry(int index, const font_char_metric &metric)
|
|
||||||
{
|
|
||||||
assert(index >= 0);
|
|
||||||
if (index >= nindices)
|
|
||||||
alloc_ch_index(index);
|
|
||||||
assert(index < nindices);
|
|
||||||
if (ch_used + 1 >= ch_size)
|
|
||||||
extend_ch();
|
|
||||||
assert(ch_used + 1 < ch_size);
|
|
||||||
ch_index[index] = ch_used;
|
|
||||||
ch[ch_used++] = metric;
|
|
||||||
}
|
|
||||||
|
|
||||||
void font::copy_entry(int new_index, int old_index)
|
|
||||||
{
|
|
||||||
assert(new_index >= 0 && old_index >= 0 && old_index < nindices);
|
|
||||||
if (new_index >= nindices)
|
|
||||||
alloc_ch_index(new_index);
|
|
||||||
ch_index[new_index] = ch_index[old_index];
|
|
||||||
}
|
|
||||||
|
|
||||||
font *font::load_font(const char *s, int *not_found)
|
|
||||||
{
|
|
||||||
font *f = new font(s);
|
|
||||||
if (!f->load(not_found)) {
|
|
||||||
delete f;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
return f;
|
|
||||||
}
|
|
||||||
|
|
||||||
static char *trim_arg(char *p)
|
|
||||||
{
|
|
||||||
if (!p)
|
|
||||||
return 0;
|
|
||||||
while (csspace(*p))
|
|
||||||
p++;
|
|
||||||
char *q = strchr(p, '\0');
|
|
||||||
while (q > p && csspace(q[-1]))
|
|
||||||
q--;
|
|
||||||
*q = '\0';
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If the font can't be found, then if not_found is non-NULL, it will be set
|
|
||||||
// to 1 otherwise a message will be printed.
|
|
||||||
|
|
||||||
int font::load(int *not_found)
|
|
||||||
{
|
|
||||||
char *path;
|
|
||||||
FILE *fp;
|
|
||||||
if ((fp = open_file(name, &path)) == NULL) {
|
|
||||||
if (not_found)
|
|
||||||
*not_found = 1;
|
|
||||||
else
|
|
||||||
error("can't find font file `%1'", name);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
text_file t(fp, path);
|
|
||||||
t.skip_comments = 1;
|
|
||||||
char *p;
|
|
||||||
for (;;) {
|
|
||||||
if (!t.next()) {
|
|
||||||
t.error("missing charset command");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
p = strtok(t.buf, WS);
|
|
||||||
if (strcmp(p, "name") == 0) {
|
|
||||||
}
|
|
||||||
else if (strcmp(p, "spacewidth") == 0) {
|
|
||||||
p = strtok(0, WS);
|
|
||||||
int n;
|
|
||||||
if (p == 0 || sscanf(p, "%d", &n) != 1 || n <= 0) {
|
|
||||||
t.error("bad argument for spacewidth command");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
space_width = n;
|
|
||||||
}
|
|
||||||
else if (strcmp(p, "slant") == 0) {
|
|
||||||
p = strtok(0, WS);
|
|
||||||
double n;
|
|
||||||
if (p == 0 || sscanf(p, "%lf", &n) != 1 || n >= 90.0 || n <= -90.0) {
|
|
||||||
t.error("bad argument for slant command", p);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
slant = n;
|
|
||||||
}
|
|
||||||
else if (strcmp(p, "ligatures") == 0) {
|
|
||||||
for (;;) {
|
|
||||||
p = strtok(0, WS);
|
|
||||||
if (p == 0 || strcmp(p, "0") == 0)
|
|
||||||
break;
|
|
||||||
if (strcmp(p, "ff") == 0)
|
|
||||||
ligatures |= LIG_ff;
|
|
||||||
else if (strcmp(p, "fi") == 0)
|
|
||||||
ligatures |= LIG_fi;
|
|
||||||
else if (strcmp(p, "fl") == 0)
|
|
||||||
ligatures |= LIG_fl;
|
|
||||||
else if (strcmp(p, "ffi") == 0)
|
|
||||||
ligatures |= LIG_ffi;
|
|
||||||
else if (strcmp(p, "ffl") == 0)
|
|
||||||
ligatures |= LIG_ffl;
|
|
||||||
else {
|
|
||||||
t.error("unrecognised ligature `%1'", p);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (strcmp(p, "internalname") == 0) {
|
|
||||||
p = strtok(0, WS);
|
|
||||||
if (!p) {
|
|
||||||
t.error("`internalname command requires argument");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
internalname = new char[strlen(p) + 1];
|
|
||||||
strcpy(internalname, p);
|
|
||||||
}
|
|
||||||
else if (strcmp(p, "special") == 0) {
|
|
||||||
special = 1;
|
|
||||||
}
|
|
||||||
else if (strcmp(p, "kernpairs") != 0 && strcmp(p, "charset") != 0) {
|
|
||||||
char *command = p;
|
|
||||||
p = strtok(0, "\n");
|
|
||||||
handle_unknown_font_command(command, trim_arg(p), t.path, t.lineno);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
char *command = p;
|
|
||||||
int had_charset = 0;
|
|
||||||
t.skip_comments = 0;
|
|
||||||
while (command) {
|
|
||||||
if (strcmp(command, "kernpairs") == 0) {
|
|
||||||
for (;;) {
|
|
||||||
if (!t.next()) {
|
|
||||||
command = 0;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
char *c1 = strtok(t.buf, WS);
|
|
||||||
if (c1 == 0)
|
|
||||||
continue;
|
|
||||||
char *c2 = strtok(0, WS);
|
|
||||||
if (c2 == 0) {
|
|
||||||
command = c1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
p = strtok(0, WS);
|
|
||||||
if (p == 0) {
|
|
||||||
t.error("missing kern amount");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
int n;
|
|
||||||
if (sscanf(p, "%d", &n) != 1) {
|
|
||||||
t.error("bad kern amount `%1'", p);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
int i1 = name_to_index(c1);
|
|
||||||
if (i1 < 0) {
|
|
||||||
t.error("illegal character `%1'", c1);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
int i2 = name_to_index(c2);
|
|
||||||
if (i2 < 0) {
|
|
||||||
t.error("illegal character `%1'", c2);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
add_kern(i1, i2, n);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (strcmp(command, "charset") == 0) {
|
|
||||||
had_charset = 1;
|
|
||||||
int last_index = -1;
|
|
||||||
for (;;) {
|
|
||||||
if (!t.next()) {
|
|
||||||
command = 0;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
char *nm = strtok(t.buf, WS);
|
|
||||||
if (nm == 0)
|
|
||||||
continue; // I dont think this should happen
|
|
||||||
p = strtok(0, WS);
|
|
||||||
if (p == 0) {
|
|
||||||
command = nm;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (p[0] == '"') {
|
|
||||||
if (last_index == -1) {
|
|
||||||
t.error("first charset entry is duplicate");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if (strcmp(nm, "---") == 0) {
|
|
||||||
t.error("unnamed character cannot be duplicate");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
int index = name_to_index(nm);
|
|
||||||
if (index < 0) {
|
|
||||||
t.error("illegal character `%1'", nm);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
copy_entry(index, last_index);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
font_char_metric metric;
|
|
||||||
metric.height = 0;
|
|
||||||
metric.depth = 0;
|
|
||||||
metric.pre_math_space = 0;
|
|
||||||
metric.italic_correction = 0;
|
|
||||||
metric.subscript_correction = 0;
|
|
||||||
int nparms = sscanf(p, "%d,%d,%d,%d,%d,%d",
|
|
||||||
&metric.width, &metric.height, &metric.depth,
|
|
||||||
&metric.italic_correction,
|
|
||||||
&metric.pre_math_space,
|
|
||||||
&metric.subscript_correction);
|
|
||||||
if (nparms < 1) {
|
|
||||||
t.error("bad width for `%1'", nm);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
p = strtok(0, WS);
|
|
||||||
if (p == 0) {
|
|
||||||
t.error("missing character type for `%1'", nm);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
int type;
|
|
||||||
if (sscanf(p, "%d", &type) != 1) {
|
|
||||||
t.error("bad character type for `%1'", nm);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if (type < 0 || type > 255) {
|
|
||||||
t.error("character code `%1' out of range", type);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
metric.type = type;
|
|
||||||
p = strtok(0, WS);
|
|
||||||
if (p == 0) {
|
|
||||||
t.error("missing code for `%1'", nm);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
char *ptr;
|
|
||||||
metric.code = (int)strtol(p, &ptr, 0);
|
|
||||||
if (metric.code == 0 && ptr == p) {
|
|
||||||
t.error("bad code `%1' for character `%2'", p, nm);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
p = strtok(0, WS);
|
|
||||||
if ((p == NULL) || (strcmp(p, "--") == 0)) {
|
|
||||||
metric.special_device_coding = NULL;
|
|
||||||
} else {
|
|
||||||
char *name=(char *)malloc(strlen(p)+1);
|
|
||||||
|
|
||||||
if (name == NULL) {
|
|
||||||
fatal("malloc failed while reading character encoding");
|
|
||||||
}
|
|
||||||
strcpy(name, p);
|
|
||||||
metric.special_device_coding = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (strcmp(nm, "---") == 0) {
|
|
||||||
last_index = number_to_index(metric.code);
|
|
||||||
add_entry(last_index, metric);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
last_index = name_to_index(nm);
|
|
||||||
if (last_index < 0) {
|
|
||||||
t.error("illegal character `%1'", nm);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
add_entry(last_index, metric);
|
|
||||||
copy_entry(number_to_index(metric.code), last_index);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (last_index == -1) {
|
|
||||||
t.error("I didn't seem to find any characters");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
t.error("unrecognised command `%1' after `kernpairs' or `charset' command", command);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!had_charset) {
|
|
||||||
t.error("missing charset command");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if (space_width == 0)
|
|
||||||
space_width = scale_round(unitwidth, res, 72*3*sizescale);
|
|
||||||
compact();
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct {
|
|
||||||
const char *command;
|
|
||||||
int *ptr;
|
|
||||||
} table[] = {
|
|
||||||
{ "res", &font::res },
|
|
||||||
{ "hor", &font::hor },
|
|
||||||
{ "vert", &font::vert },
|
|
||||||
{ "unitwidth", &font::unitwidth },
|
|
||||||
{ "paperwidth", &font::paperwidth },
|
|
||||||
{ "paperlength", &font::paperlength },
|
|
||||||
{ "spare1", &font::biggestfont },
|
|
||||||
{ "biggestfont", &font::biggestfont },
|
|
||||||
{ "spare2", &font::spare2 },
|
|
||||||
{ "sizescale", &font::sizescale }
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
int font::load_desc()
|
|
||||||
{
|
|
||||||
int nfonts = 0;
|
|
||||||
FILE *fp;
|
|
||||||
char *path;
|
|
||||||
if ((fp = open_file("DESC", &path)) == 0) {
|
|
||||||
error("can't find `DESC' file");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
text_file t(fp, path);
|
|
||||||
t.skip_comments = 1;
|
|
||||||
res = 0;
|
|
||||||
while (t.next()) {
|
|
||||||
char *p = strtok(t.buf, WS);
|
|
||||||
int found = 0;
|
|
||||||
int idx;
|
|
||||||
for (idx = 0; !found && idx < sizeof(table)/sizeof(table[0]); idx++)
|
|
||||||
if (strcmp(table[idx].command, p) == 0)
|
|
||||||
found = 1;
|
|
||||||
if (found) {
|
|
||||||
char *q = strtok(0, WS);
|
|
||||||
if (!q) {
|
|
||||||
t.error("missing value for command `%1'", p);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
//int *ptr = &(this->*(table[idx-1].ptr));
|
|
||||||
int *ptr = table[idx-1].ptr;
|
|
||||||
if (sscanf(q, "%d", ptr) != 1) {
|
|
||||||
t.error("bad number `%1'", q);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (strcmp("tcommand", p) == 0) {
|
|
||||||
tcommand = 1;
|
|
||||||
}
|
|
||||||
else if (strcmp("pass_filenames", p) == 0) {
|
|
||||||
pass_filenames = 1;
|
|
||||||
}
|
|
||||||
else if (strcmp("use_charnames_in_special", p) == 0) {
|
|
||||||
use_charnames_in_special = 1;
|
|
||||||
}
|
|
||||||
else if (strcmp("family", p) == 0) {
|
|
||||||
p = strtok(0, WS);
|
|
||||||
if (!p) {
|
|
||||||
t.error("family command requires an argument");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
char *tem = new char[strlen(p)+1];
|
|
||||||
strcpy(tem, p);
|
|
||||||
family = tem;
|
|
||||||
}
|
|
||||||
else if (strcmp("fonts", p) == 0) {
|
|
||||||
p = strtok(0, WS);
|
|
||||||
if (!p || sscanf(p, "%d", &nfonts) != 1 || nfonts <= 0) {
|
|
||||||
t.error("bad number of fonts `%1'", p);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
font_name_table = (const char **)new char *[nfonts+1];
|
|
||||||
for (int i = 0; i < nfonts; i++) {
|
|
||||||
p = strtok(0, WS);
|
|
||||||
while (p == 0) {
|
|
||||||
if (!t.next()) {
|
|
||||||
t.error("end of file while reading list of fonts");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
p = strtok(t.buf, WS);
|
|
||||||
}
|
|
||||||
char *temp = new char[strlen(p)+1];
|
|
||||||
strcpy(temp, p);
|
|
||||||
font_name_table[i] = temp;
|
|
||||||
}
|
|
||||||
p = strtok(0, WS);
|
|
||||||
if (p != 0) {
|
|
||||||
t.error("font count does not match number of fonts");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
font_name_table[nfonts] = 0;
|
|
||||||
}
|
|
||||||
else if (strcmp("sizes", p) == 0) {
|
|
||||||
int n = 16;
|
|
||||||
sizes = new int[n];
|
|
||||||
int i = 0;
|
|
||||||
for (;;) {
|
|
||||||
p = strtok(0, WS);
|
|
||||||
while (p == 0) {
|
|
||||||
if (!t.next()) {
|
|
||||||
t.error("list of sizes must be terminated by `0'");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
p = strtok(t.buf, WS);
|
|
||||||
}
|
|
||||||
int lower, upper;
|
|
||||||
switch (sscanf(p, "%d-%d", &lower, &upper)) {
|
|
||||||
case 1:
|
|
||||||
upper = lower;
|
|
||||||
// fall through
|
|
||||||
case 2:
|
|
||||||
if (lower <= upper && lower >= 0)
|
|
||||||
break;
|
|
||||||
// fall through
|
|
||||||
default:
|
|
||||||
t.error("bad size range `%1'", p);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if (i + 2 > n) {
|
|
||||||
int *old_sizes = sizes;
|
|
||||||
sizes = new int[n*2];
|
|
||||||
memcpy(sizes, old_sizes, n*sizeof(int));
|
|
||||||
n *= 2;
|
|
||||||
a_delete old_sizes;
|
|
||||||
}
|
|
||||||
sizes[i++] = lower;
|
|
||||||
if (lower == 0)
|
|
||||||
break;
|
|
||||||
sizes[i++] = upper;
|
|
||||||
}
|
|
||||||
if (i == 1) {
|
|
||||||
t.error("must have some sizes");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (strcmp("styles", p) == 0) {
|
|
||||||
int style_table_size = 5;
|
|
||||||
style_table = (const char **)new char *[style_table_size];
|
|
||||||
int j;
|
|
||||||
for (j = 0; j < style_table_size; j++)
|
|
||||||
style_table[j] = 0;
|
|
||||||
int i = 0;
|
|
||||||
for (;;) {
|
|
||||||
p = strtok(0, WS);
|
|
||||||
if (p == 0)
|
|
||||||
break;
|
|
||||||
// leave room for terminating 0
|
|
||||||
if (i + 1 >= style_table_size) {
|
|
||||||
const char **old_style_table = style_table;
|
|
||||||
style_table_size *= 2;
|
|
||||||
style_table = (const char **)new char*[style_table_size];
|
|
||||||
for (j = 0; j < i; j++)
|
|
||||||
style_table[j] = old_style_table[j];
|
|
||||||
for (; j < style_table_size; j++)
|
|
||||||
style_table[j] = 0;
|
|
||||||
a_delete old_style_table;
|
|
||||||
}
|
|
||||||
char *tem = new char[strlen(p) + 1];
|
|
||||||
strcpy(tem, p);
|
|
||||||
style_table[i++] = tem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (strcmp("charset", p) == 0)
|
|
||||||
break;
|
|
||||||
else if (unknown_desc_command_handler) {
|
|
||||||
char *command = p;
|
|
||||||
p = strtok(0, "\n");
|
|
||||||
(*unknown_desc_command_handler)(command, trim_arg(p), t.path, t.lineno);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (res == 0) {
|
|
||||||
t.error("missing `res' command");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if (unitwidth == 0) {
|
|
||||||
t.error("missing `unitwidth' command");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if (font_name_table == 0) {
|
|
||||||
t.error("missing `fonts' command");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if (sizes == 0) {
|
|
||||||
t.error("missing `sizes' command");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if (sizescale < 1) {
|
|
||||||
t.error("bad `sizescale' value");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if (hor < 1) {
|
|
||||||
t.error("bad `hor' value");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if (vert < 1) {
|
|
||||||
t.error("bad `vert' value");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void font::handle_unknown_font_command(const char *, const char *,
|
|
||||||
const char *, int)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
FONT_COMMAND_HANDLER
|
|
||||||
font::set_unknown_desc_command_handler(FONT_COMMAND_HANDLER func)
|
|
||||||
{
|
|
||||||
FONT_COMMAND_HANDLER prev = unknown_desc_command_handler;
|
|
||||||
unknown_desc_command_handler = func;
|
|
||||||
return prev;
|
|
||||||
}
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
|||||||
/* $FreeBSD$ */
|
|
||||||
|
|
||||||
#include "lib.h"
|
|
||||||
|
|
||||||
// Table of illegal input characters.
|
|
||||||
|
|
||||||
char illegal_char_table[256]= {
|
|
||||||
#ifndef IS_EBCDIC_HOST
|
|
||||||
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1,
|
|
||||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
#else
|
|
||||||
1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1,
|
|
||||||
1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
#endif
|
|
||||||
};
|
|
@ -1,106 +0,0 @@
|
|||||||
.ig \"-*- nroff -*-
|
|
||||||
Copyright (C) 1989-2000 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
Permission is granted to make and distribute verbatim copies of
|
|
||||||
this manual provided the copyright notice and this permission notice
|
|
||||||
are preserved on all copies.
|
|
||||||
|
|
||||||
Permission is granted to copy and distribute modified versions of this
|
|
||||||
manual under the conditions for verbatim copying, provided that the
|
|
||||||
entire resulting derived work is distributed under the terms of a
|
|
||||||
permission notice identical to this one.
|
|
||||||
|
|
||||||
Permission is granted to copy and distribute translations of this
|
|
||||||
manual into another language, under the above conditions for modified
|
|
||||||
versions, except that this permission notice may be included in
|
|
||||||
translations approved by the Free Software Foundation instead of in
|
|
||||||
the original English.
|
|
||||||
|
|
||||||
$FreeBSD$
|
|
||||||
|
|
||||||
..
|
|
||||||
.TH @G@NROFF @MAN1EXT@ "@MDATE@" "Groff Version @VERSION@"
|
|
||||||
.SH NAME
|
|
||||||
@g@nroff \- emulate nroff command with groff
|
|
||||||
.SH SYNOPSIS
|
|
||||||
.nr a \n(.j
|
|
||||||
.ad l
|
|
||||||
.nr i \n(.i
|
|
||||||
.in +\w'\fB@g@nroff 'u
|
|
||||||
.ti \niu
|
|
||||||
.B @g@nroff
|
|
||||||
.de OP
|
|
||||||
.ie \\n(.$-1 .RI "[\ \fB\\$1\fP" "\\$2" "\ ]"
|
|
||||||
.el .RB "[\ " "\\$1" "\ ]"
|
|
||||||
..
|
|
||||||
.OP \-h
|
|
||||||
.OP \-i
|
|
||||||
.OP \-m name
|
|
||||||
.OP \-n num
|
|
||||||
.OP \-o list
|
|
||||||
.OP \-p
|
|
||||||
.OP \-r cn
|
|
||||||
.OP \-t
|
|
||||||
.OP \-T name
|
|
||||||
.RI "[\ " file\|.\|.\|. "\ ]"
|
|
||||||
.br
|
|
||||||
.ad \na
|
|
||||||
.SH DESCRIPTION
|
|
||||||
The
|
|
||||||
.B @g@nroff
|
|
||||||
script emulates the
|
|
||||||
.B nroff
|
|
||||||
command using groff.
|
|
||||||
The
|
|
||||||
.B \-T
|
|
||||||
option with an argument other than
|
|
||||||
.BR ascii ,
|
|
||||||
.BR latin1 ,
|
|
||||||
.BR koi8-r ,
|
|
||||||
.BR utf8 ,
|
|
||||||
or
|
|
||||||
.B cp1047
|
|
||||||
will be ignored.
|
|
||||||
The
|
|
||||||
.B \-h
|
|
||||||
option
|
|
||||||
is equivalent to the
|
|
||||||
.B grotty
|
|
||||||
.B \-h
|
|
||||||
option.
|
|
||||||
The
|
|
||||||
.BR \-i ,
|
|
||||||
.BR \-n ,
|
|
||||||
.BR \-m ,
|
|
||||||
.B \-o
|
|
||||||
and
|
|
||||||
.B \-r
|
|
||||||
options have the effect described in
|
|
||||||
.BR @g@troff (@MAN1EXT@).
|
|
||||||
In addition
|
|
||||||
.B @g@nroff
|
|
||||||
silently ignores options of
|
|
||||||
.BR \-e ,
|
|
||||||
.B \-q
|
|
||||||
or
|
|
||||||
.BR \-s .
|
|
||||||
Options
|
|
||||||
.BR \-p ,
|
|
||||||
.BR \-t ,
|
|
||||||
.B \-S
|
|
||||||
(safer) and
|
|
||||||
.B \-U
|
|
||||||
(unsafe) are passed to
|
|
||||||
.BR groff .
|
|
||||||
.B \-S
|
|
||||||
is passed by default.
|
|
||||||
.SH NOTES
|
|
||||||
This shell script is basically intended for use with
|
|
||||||
.BR man (1),
|
|
||||||
so warnings are suppressed.
|
|
||||||
nroff-style character definitions (in the file tmac.tty-char) are also
|
|
||||||
loaded to emulate unrepresentable glyphs.
|
|
||||||
.SH "SEE ALSO"
|
|
||||||
.BR groff (@MAN1EXT@),
|
|
||||||
.BR @g@troff (@MAN1EXT@),
|
|
||||||
.BR grotty (@MAN1EXT@)
|
|
@ -1,88 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# Emulate nroff with groff.
|
|
||||||
# $FreeBSD$
|
|
||||||
|
|
||||||
prog="$0"
|
|
||||||
# Default device.
|
|
||||||
# First try the "locale charmap" command, because it's most reliable.
|
|
||||||
# On systems where it doesn't exist, look at the environment variables.
|
|
||||||
case "`#locale charmap 2>/dev/null`" in
|
|
||||||
UTF-8)
|
|
||||||
T=-Tutf8 ;;
|
|
||||||
ISO-8859-1)
|
|
||||||
T=-Tlatin1 ;;
|
|
||||||
IBM-1047)
|
|
||||||
T=-Tcp1047 ;;
|
|
||||||
*)
|
|
||||||
case "${LC_ALL-${LC_CTYPE-${LANG}}}" in
|
|
||||||
*.UTF-8)
|
|
||||||
T=-Tutf8 ;;
|
|
||||||
iso_8859_1 | *.ISO-8859-1 | *.ISO_8859-1)
|
|
||||||
T=-Tlatin1 ;;
|
|
||||||
*.IBM-1047)
|
|
||||||
T=-Tcp1047 ;;
|
|
||||||
*.KOI8-R)
|
|
||||||
T=-Tkoi8-r ;;
|
|
||||||
*)
|
|
||||||
case "$LESSCHARSET" in
|
|
||||||
utf-8)
|
|
||||||
T=-Tutf8 ;;
|
|
||||||
latin1)
|
|
||||||
T=-Tlatin1 ;;
|
|
||||||
cp1047)
|
|
||||||
T=-Tcp1047 ;;
|
|
||||||
*)
|
|
||||||
T=-Tascii ;;
|
|
||||||
esac ;;
|
|
||||||
esac ;;
|
|
||||||
esac
|
|
||||||
opts=
|
|
||||||
safer=-S
|
|
||||||
|
|
||||||
# `for i; do' doesn't work with some versions of sh
|
|
||||||
|
|
||||||
for i
|
|
||||||
do
|
|
||||||
case $1 in
|
|
||||||
-h)
|
|
||||||
opts="$opts -P-h" ;;
|
|
||||||
-[eq] | -s*)
|
|
||||||
# ignore these options
|
|
||||||
;;
|
|
||||||
-[mrnoT])
|
|
||||||
echo "$prog: option $1 requires an argument" >&2
|
|
||||||
exit 1 ;;
|
|
||||||
-[itp] | -[mrno]*)
|
|
||||||
opts="$opts $1" ;;
|
|
||||||
-Tascii | -Tlatin1 | -Tkoi8-r | -Tutf8 | -Tcp1047)
|
|
||||||
T=$1 ;;
|
|
||||||
-T*)
|
|
||||||
# ignore other devices
|
|
||||||
;;
|
|
||||||
-S)
|
|
||||||
# safer behaviour
|
|
||||||
safer=-S ;;
|
|
||||||
-U)
|
|
||||||
# unsafe behaviour
|
|
||||||
safer=-U ;;
|
|
||||||
-u*)
|
|
||||||
# Solaris 2.2 `man' uses -u0; ignore it,
|
|
||||||
# since `less' and `more' can use the emboldening info.
|
|
||||||
;;
|
|
||||||
--)
|
|
||||||
shift
|
|
||||||
break ;;
|
|
||||||
-)
|
|
||||||
break ;;
|
|
||||||
-*)
|
|
||||||
echo "$prog: invalid option $1" >&2
|
|
||||||
exit 1 ;;
|
|
||||||
*)
|
|
||||||
break ;;
|
|
||||||
esac
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
# This shell script is intended for use with man, so warnings are
|
|
||||||
# probably not wanted. Also load nroff-style character definitions.
|
|
||||||
exec groff $safer -Wall -mtty-char $T $opts ${1+"$@"}
|
|
@ -1,46 +0,0 @@
|
|||||||
.\" Copyright (c) 1997 Wolfram Schneider <wosch@FreeBSD.org>.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions
|
|
||||||
.\" are met:
|
|
||||||
.\" 1. Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer in the
|
|
||||||
.\" documentation and/or other materials provided with the distribution.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
|
||||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
.\" SUCH DAMAGE.
|
|
||||||
.\"
|
|
||||||
.\" $FreeBSD$
|
|
||||||
.Dd September 15, 1997
|
|
||||||
.Dt PSROFF 1
|
|
||||||
.Os
|
|
||||||
.Sh NAME
|
|
||||||
.Nm psroff
|
|
||||||
.Nd "send troff to PostScript printer"
|
|
||||||
.Sh SYNOPSIS
|
|
||||||
.Nm
|
|
||||||
.Op Ar "groff options"
|
|
||||||
.Op Ar
|
|
||||||
.Sh DESCRIPTION
|
|
||||||
The
|
|
||||||
.Nm
|
|
||||||
program is actually just a shell script which invokes the
|
|
||||||
.Xr groff 1
|
|
||||||
command to print the troff files to a PostScript printer.
|
|
||||||
.Sh SEE ALSO
|
|
||||||
.Xr groff 1 ,
|
|
||||||
.Xr lpr 1 ,
|
|
||||||
.Xr vgrind 1 ,
|
|
||||||
.Xr environ 7
|
|
@ -1,2 +0,0 @@
|
|||||||
#! /bin/sh -
|
|
||||||
exec groff -Tps -l -C ${1+"$@"}
|
|
File diff suppressed because it is too large
Load Diff
@ -1,231 +0,0 @@
|
|||||||
.\"
|
|
||||||
.\" Copyright (C) 1999, 2000 Alexey Zelkin, <phantom@cris.net>,
|
|
||||||
.\" Simferopol, Crimea, Urkaine. All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions
|
|
||||||
.\" are met:
|
|
||||||
.\" 1. Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer in the
|
|
||||||
.\" documentation and/or other materials provided with the distribution.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE ALEXEY ZELKIN AND CONTRIBUTORS ``AS IS''
|
|
||||||
.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
|
||||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
.\" SUCH DAMAGE.
|
|
||||||
.\"
|
|
||||||
.\" $FreeBSD$
|
|
||||||
.\"
|
|
||||||
.\" This file is addition to groff package. It allows to translate Section
|
|
||||||
.\" Headers (.Sh) and correctly display man page header and footer. It
|
|
||||||
.\" also contains translated version of .Dt macros (.DtL).
|
|
||||||
.\" Current translation: Russian (ru_RU.KOI8-R)
|
|
||||||
.\"
|
|
||||||
.\"
|
|
||||||
.\" Localized (russian) .Sh macro version for troff
|
|
||||||
.\" Original code derived from mdoc/doc-ditroff
|
|
||||||
.\"
|
|
||||||
.if t \{\
|
|
||||||
. rm Sh
|
|
||||||
. de Sh
|
|
||||||
. nr nS 0
|
|
||||||
. nr sE 0
|
|
||||||
. nr iS 0
|
|
||||||
' ad
|
|
||||||
. ie "\\$1"NAME" \{\
|
|
||||||
. hK
|
|
||||||
' in 0
|
|
||||||
. \}
|
|
||||||
. el \{\
|
|
||||||
. ie "\\$1"îáú÷áîéå" \{\
|
|
||||||
. hK
|
|
||||||
' in 0
|
|
||||||
. \}
|
|
||||||
. el \{\
|
|
||||||
. nr nS 0
|
|
||||||
. nr nA 0
|
|
||||||
. nr nF 0
|
|
||||||
. nr nT 0
|
|
||||||
. nr nY 0
|
|
||||||
. nr oT 0
|
|
||||||
. if "\\$1"SYNOPSIS" \{\
|
|
||||||
. na
|
|
||||||
. nr nS 1
|
|
||||||
. \}
|
|
||||||
. if "\\$1"DESCRIPTION" \{\
|
|
||||||
. nr fY 0
|
|
||||||
. nr fZ 0
|
|
||||||
. nr fB 0
|
|
||||||
. nr Fb 0
|
|
||||||
. ds Fb
|
|
||||||
. \}
|
|
||||||
. if "\\$1"SEE" \{\
|
|
||||||
. nr nA 1
|
|
||||||
. na
|
|
||||||
. \}
|
|
||||||
. if "\\$1"FILES" .nr nF 1
|
|
||||||
. if "\\$1"STANDARDS" .nr nT 1
|
|
||||||
. if "\\$1"AUTHORS" .nr nY 1
|
|
||||||
. if "\\$1"SEE" .nr sE 1
|
|
||||||
.\"
|
|
||||||
.\" russian chapter names
|
|
||||||
.\"
|
|
||||||
. if "\\$1"óéîôáëóéó" \{\
|
|
||||||
. na
|
|
||||||
. nr nS 1
|
|
||||||
. \}
|
|
||||||
. if "\\$1"ïðéóáîéå" \{\
|
|
||||||
. nr fY 0
|
|
||||||
. nr fZ 0
|
|
||||||
. nr fB 0
|
|
||||||
. nr Fb 0
|
|
||||||
. ds Fb
|
|
||||||
. \}
|
|
||||||
. if "\\$1"óíïôòé" \{\
|
|
||||||
. nr nA 1
|
|
||||||
. na
|
|
||||||
. \}
|
|
||||||
. if "\\$1"æáêìù" .nr nF 1
|
|
||||||
. if "\\$1"óôáîäáòôù" .nr nT 1
|
|
||||||
. if "\\$1"á÷ôïòù" .nr nY 1
|
|
||||||
. if "\\$1"óíïôòé" .nr sE 1
|
|
||||||
. in 0
|
|
||||||
. nr aN 0
|
|
||||||
. \}
|
|
||||||
. \}
|
|
||||||
. pL
|
|
||||||
' sp
|
|
||||||
. ns
|
|
||||||
. ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
|
|
||||||
. if !\\n(cR .ne 3
|
|
||||||
' fi
|
|
||||||
\&\\*(sH\\$1 \|\\$2 \|\\$3 \|\\$4 \|\\$5 \|\\$6 \|\\$7 \|\\$8 \|\\$9
|
|
||||||
\&\fP\s0\&
|
|
||||||
. in \\n(.iu+\\n(Tiu
|
|
||||||
. ns
|
|
||||||
..
|
|
||||||
. \}
|
|
||||||
.\"
|
|
||||||
.\" Localized .Sh macro version for nroff
|
|
||||||
.\" Original code derived from mdoc/doc-nroff
|
|
||||||
.\"
|
|
||||||
.if n \{\
|
|
||||||
. rm Sh
|
|
||||||
. de Sh
|
|
||||||
. nr nS 0
|
|
||||||
. nr sE 0
|
|
||||||
. nr iS 0
|
|
||||||
. ie "\\$1"NAME" \{\
|
|
||||||
. hK
|
|
||||||
' in 0
|
|
||||||
. \}
|
|
||||||
. el \{\
|
|
||||||
. ie "\\$1"îáú÷áîéå" \{\
|
|
||||||
. hK
|
|
||||||
' in 0
|
|
||||||
. \}
|
|
||||||
. el \{\
|
|
||||||
. nr nS 0
|
|
||||||
. nr nA 0
|
|
||||||
. nr nF 0
|
|
||||||
. nr nT 0
|
|
||||||
. nr nY 0
|
|
||||||
. nr aN 0
|
|
||||||
. nr oT 0
|
|
||||||
. if "\\$1"SEE" .nr nA 1
|
|
||||||
. if "\\$1"FILES" .nr nF 1
|
|
||||||
. if "\\$1"STANDARDS" .nr nT 1
|
|
||||||
. if "\\$1"SYNOPSIS" .nr nS 1
|
|
||||||
. if "\\$1"DESCRIPTION" \{\
|
|
||||||
. rr fB
|
|
||||||
. rr Fb
|
|
||||||
. ds Fb
|
|
||||||
. nr fY 0
|
|
||||||
. nr fZ 0
|
|
||||||
. \}
|
|
||||||
. if "\\$1"AUTHORS" .nr nY 1
|
|
||||||
.\"
|
|
||||||
.\" russian chapters names
|
|
||||||
.\"
|
|
||||||
. if "\\$1"óíïôòé" .nr nA 1
|
|
||||||
. if "\\$1"æáêìù" .nr nF 1
|
|
||||||
. if "\\$1"óôáîäáòôù" .nr nT 1
|
|
||||||
. if "\\$1"óéîôáëóéó" .nr nS 1
|
|
||||||
. if "\\$1"ïðéóáîéå" \{\
|
|
||||||
. rr fB
|
|
||||||
. rr Fb
|
|
||||||
. ds Fb
|
|
||||||
. nr fY 0
|
|
||||||
. nr fZ 0
|
|
||||||
. \}
|
|
||||||
. if "\\$1"á÷ôïòù" .nr nY 1
|
|
||||||
. in 0
|
|
||||||
. \}
|
|
||||||
. \}
|
|
||||||
. pL
|
|
||||||
' sp
|
|
||||||
. ns
|
|
||||||
. ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
|
|
||||||
. if !\\n(cR .ne 3
|
|
||||||
' fi
|
|
||||||
\&\\*(sH\\$1 \|\\$2 \|\\$3 \|\\$4 \|\\$5 \|\\$6 \|\\$7 \|\\$8 \|\\$9
|
|
||||||
\&\fP\s0\&
|
|
||||||
. in \\n(.iu+\\n(Tiu
|
|
||||||
. if "\\$1"SEE" .nr sE 1
|
|
||||||
. if "\\$1"óíïôòé" .nr sE 1
|
|
||||||
. ns
|
|
||||||
..
|
|
||||||
.\}
|
|
||||||
.\"
|
|
||||||
.\" .Dt macro replacement for localized manpages (.DtL)
|
|
||||||
.\" Original code derived from mdoc/doc-common
|
|
||||||
.\"
|
|
||||||
.de DtL
|
|
||||||
.ds dT UNTITLED
|
|
||||||
.ds vT LOCAL
|
|
||||||
.ds cH Null
|
|
||||||
.if !"\\$1"" .ds dT \\$1
|
|
||||||
.if !"\\$2"" \{\
|
|
||||||
. ds cH \\$2
|
|
||||||
. if \\$2>=1 .if \\$2<=9 \{\
|
|
||||||
. ds vT óÐÒÁ×ÏÞÎÉË FreeBSD
|
|
||||||
. if "\\$2"1" .ds vT óÐÒÁ×ÏÞÎÉË ïÓÎÏ×ÎÙÈ ëÏÍÁÎÄ FreeBSD
|
|
||||||
. if "\\$2"2" .ds vT óÐÒÁ×ÏÞÎÉË óÉÓÔÅÍÎÙÈ ÷ÙÚÏ×Ï× FreeBSD
|
|
||||||
. if "\\$2"3" .ds vT óÐÒÁ×ÏÞÎÉË âÉÂÌÉÏÔÅÞÎÙÈ æÕÎËÃÉÊ FreeBSD
|
|
||||||
. if "\\$2"4" .ds vT óÐÒÁ×ÏÞÎÉË éÎÔÅÒÆÅÊÓÏ× ñÄÒÁ FreeBSD
|
|
||||||
. if "\\$2"5" .ds vT óÐÒÁ×ÏÞÎÉË æÏÒÍÁÔÏ× æÁÊÌÏ× FreeBSD
|
|
||||||
. if "\\$2"6" .ds vT óÐÒÁ×ÏÞÎÉË éÇÒ FreeBSD
|
|
||||||
. if "\\$2"7" .ds vT óÐÒÁ×ÏÞÎÉË òÁÚÎÏÊ éÎÆÏÒÍÁÃÉÉ FreeBSD
|
|
||||||
. if "\\$2"8" .ds vT óÐÒÁ×ÏÞÎÉË óÉÓÔÅÍÎÏÇÏ áÄÍÉÎÉÓÔÒÁÔÏÒÁ FreeBSD
|
|
||||||
. if "\\$2"9" .ds vT óÐÒÁ×ÏÞÎÉË òÁÚÒÁÂÏÔÞÉËÁ ñÄÒÁ FreeBSD
|
|
||||||
. nr sN \\$2
|
|
||||||
. \}
|
|
||||||
. if "\\$2"unass" .ds vT DRAFT
|
|
||||||
. if "\\$2"draft" .ds vT DRAFT
|
|
||||||
. if "\\$2"paper" .ds vT UNTITLED
|
|
||||||
.\}
|
|
||||||
.if !"\\$3"" \{\
|
|
||||||
. if "\\$3"USD" .ds vT FreeBSD äÏÐÏÌÎÉÔÅÌØÎÙÅ äÏËÕÍÅÎÔÙ ÄÌÑ ðÏÌØÚÏ×ÁÔÅÌÑ
|
|
||||||
. if "\\$3"PS1" .ds vT FreeBSD äÏÐÏÌÎÉÔÅÌØÎÙÅ äÏËÕÍÅÎÔÙ ÄÌÑ ðÒÏÇÒÁÍÍÉÓÔÁ
|
|
||||||
. if "\\$3"AMD" .ds vT FreeBSD äÏËÕÍÅÎÔÙ õÎÁÓÌÅÄÏ×ÁÎÎÏÇÏ óÐÒÁ×ÏÞÎÉËÁ
|
|
||||||
. if "\\$3"SMM" .ds vT FreeBSD òÕËÏ×ÏÄÓÔ×Ï óÉÓÔÅÍÎÏÇÏ áÄÍÉÎÉÓÔÒÁÔÏÒÁ
|
|
||||||
. if "\\$3"URM" .ds vT FreeBSD óÐÒÁ×ÏÞÎÏÅ òÕËÏ×ÏÄÓÔ×Ï
|
|
||||||
. if "\\$3"PRM" .ds vT FreeBSD òÕËÏ×ÏÄÓÔ×Ï ðÒÏÇÒÁÍÍÉÓÔÁ
|
|
||||||
. if "\\$3"IND" .ds vT FreeBSD ïÓÎÏ×ÎÏÊ ðÒÅÄÍÅÔÎÙÊ õËÁÚÁÔÅÌØ óÐÒÁ×ÏÞÎÉËÁ
|
|
||||||
. if "\\$3"LOCAL" .ds vT FreeBSD ìÏËÁÌØÎÙÊ óÐÒÁ×ÏÞÎÉË
|
|
||||||
. if "\\$3"tahoe" .as vT \ (áÒÈÉÔÅËÔÕÒÁ Tahoe)
|
|
||||||
. if "\\$3"vax" .as vT \ (áÒÈÉÔÅËÔÕÒÁ VAX)
|
|
||||||
. if "\\$3"hp300" .as vT \ (áÒÈÉÔÅËÔÕÒÁ HP300)
|
|
||||||
. if "\\$3"i386" .as vT \ (áÒÈÉÔÅËÔÕÒÁ i386)
|
|
||||||
. if "\\*(vT"LOCAL" .ds vT \\$3
|
|
||||||
.\}
|
|
||||||
..
|
|
@ -1,32 +0,0 @@
|
|||||||
.\"
|
|
||||||
.\" Copyright (C) 1999, 2000 Alexey Zelkin <phantom@cris.net>,
|
|
||||||
.\" Simferopol, Crimea, Urkaine. All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions
|
|
||||||
.\" are met:
|
|
||||||
.\" 1. Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer in the
|
|
||||||
.\" documentation and/or other materials provided with the distribution.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE ALEXEY ZELKIN AND CONTRIBUTORS ``AS IS''
|
|
||||||
.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
|
||||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
.\" SUCH DAMAGE.
|
|
||||||
.\"
|
|
||||||
.\" $FreeBSD$
|
|
||||||
.\"
|
|
||||||
.\" Include [tg]roff russian translated if [tg]roff invoked with -Tkoi8-r.
|
|
||||||
.\"
|
|
||||||
.if "\*[.T]"koi8-r" \{\
|
|
||||||
. sOl koi8-r
|
|
||||||
.\}
|
|
@ -1,13 +0,0 @@
|
|||||||
.\" $FreeBSD$
|
|
||||||
.\" Load either tmac.an or tmac.doc.
|
|
||||||
.if !\n(.g .ab These macros require groff.
|
|
||||||
.de Dd
|
|
||||||
.rm Dd
|
|
||||||
.do mso tmac.doc
|
|
||||||
\\*(Dd\\
|
|
||||||
..
|
|
||||||
.de TH
|
|
||||||
.rm TH
|
|
||||||
.do mso tmac.an-old
|
|
||||||
\\*(TH\\
|
|
||||||
..
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,49 +0,0 @@
|
|||||||
.\" $FreeBSD$
|
|
||||||
.nr _C \n(.C
|
|
||||||
.cp 0
|
|
||||||
.nroff
|
|
||||||
.\" Don't warn about non-existent fonts.
|
|
||||||
.warn \n[.warn]-(\n[.warn]/131072%2*131072)
|
|
||||||
.po 0
|
|
||||||
.if c\[shc] .shc \[shc]
|
|
||||||
.de tty-char
|
|
||||||
.if !c\\$1 .char \\$1 "\\$2
|
|
||||||
..
|
|
||||||
.ie c\(pc .tr \(bu\(pc
|
|
||||||
.el .if c\(md .tr \(bu\(md
|
|
||||||
.tty-char \(bu \z+o
|
|
||||||
.tty-char \(14 1/4
|
|
||||||
.tty-char \(12 1/2
|
|
||||||
.tty-char \(34 3/4
|
|
||||||
.tty-char \(ff ff
|
|
||||||
.tty-char \(fi fi
|
|
||||||
.tty-char \(fl fl
|
|
||||||
.tty-char \(Fi ffi
|
|
||||||
.tty-char \(Fl ffl
|
|
||||||
.tty-char \(<- <-
|
|
||||||
.tty-char \(-> ->
|
|
||||||
.tty-char \(<> <->
|
|
||||||
.tty-char \(em --
|
|
||||||
.tty-char \(+- +-
|
|
||||||
.tty-char \(co (C)
|
|
||||||
.tty-char \(<= <=
|
|
||||||
.tty-char \(>= >=
|
|
||||||
.tty-char \(!= !=
|
|
||||||
.tty-char \(== ==
|
|
||||||
.tty-char \(~= ~=
|
|
||||||
.tty-char \(sq []
|
|
||||||
.tty-char \(lh <=
|
|
||||||
.tty-char \(rh =>
|
|
||||||
.tty-char \(lA <=
|
|
||||||
.tty-char \(rA =>
|
|
||||||
.tty-char \(hA <=>
|
|
||||||
.tty-char \(rg (R)
|
|
||||||
.tty-char \(OE OE
|
|
||||||
.tty-char \(oe oe
|
|
||||||
.tty-char \(AE AE
|
|
||||||
.tty-char \(ae ae
|
|
||||||
.tty-char \(an -
|
|
||||||
.cp \n(_C
|
|
||||||
.\" If you want the character definitions in tmac.tty-char to be loaded
|
|
||||||
.\" automatically, remove the `\"' from the next line.
|
|
||||||
.\"do mso tmac.tty-char
|
|
@ -1,204 +0,0 @@
|
|||||||
.\" This file defines standard troff characters and some groff characters for
|
|
||||||
.\" use with -Tascii, -Tlatin1, -Tutf8, and -Tcp1047.
|
|
||||||
.\"
|
|
||||||
.\" These definitions are chosen so that, as far as possible, they:
|
|
||||||
.\" - work with all of -Tascii, -Tlatin1, -Tutf8, and -Tcp1047.
|
|
||||||
.\" - work on devices that display only the last overstruck character
|
|
||||||
.\" as well as on devices that support overstriking
|
|
||||||
.\" - represent the character's graphical shape (not its meaning)
|
|
||||||
.\"
|
|
||||||
.\" $FreeBSD$
|
|
||||||
.\"
|
|
||||||
.nr _C \n(.C
|
|
||||||
.cp 0
|
|
||||||
.de tty-char
|
|
||||||
.if !c\\$1 .char \\$1 "\\$2
|
|
||||||
..
|
|
||||||
.ie c\(a- .ds tty-rn \(a-
|
|
||||||
.el .ds tty-rn \v'-1m'_\v'+1m'
|
|
||||||
.tty-char \(tm tm
|
|
||||||
.tty-char \(rn \*[tty-rn]
|
|
||||||
.tty-char \(ua \z|^
|
|
||||||
.tty-char \(da \z|v
|
|
||||||
.tty-char \(sc S
|
|
||||||
.tty-char \(ct \z/c
|
|
||||||
.tty-char \(dg \z|-
|
|
||||||
.tty-char \(dd \z|=
|
|
||||||
.tty-char \(ib (\z=_
|
|
||||||
.tty-char \(ip \z=_)
|
|
||||||
.tty-char \(sb (=
|
|
||||||
.tty-char \(sp =)
|
|
||||||
.tty-char \(if oo
|
|
||||||
.tty-char \(pt oc
|
|
||||||
.tty-char \(es {}
|
|
||||||
.tty-char \(ca (^)
|
|
||||||
.tty-char \(cu U
|
|
||||||
.tty-char \(de o
|
|
||||||
.tty-char \(di -:-
|
|
||||||
.tty-char \(no ~
|
|
||||||
.tty-char \(gr \Z'\*[tty-rn]'V
|
|
||||||
.tty-char \(is \z'\z,I
|
|
||||||
.tty-char \(mo E
|
|
||||||
.tty-char \(pd a
|
|
||||||
.tty-char \(sr \e/
|
|
||||||
.tty-char \(*C \z_H
|
|
||||||
.tty-char \(*D \z_/\z_\e
|
|
||||||
.tty-char \(*F \zIO
|
|
||||||
.tty-char \(*G |\*[tty-rn]
|
|
||||||
.tty-char \(*H \z-O
|
|
||||||
.tty-char \(*L /\e
|
|
||||||
.tty-char \(*P TT
|
|
||||||
.tty-char \(*Q \zIY
|
|
||||||
.tty-char \(*S \z_\Z'\*[tty-rn]'>
|
|
||||||
.tty-char \(*W \z_O
|
|
||||||
.if c\(ss .tty-char \(*b \(ss
|
|
||||||
.tty-char \(*b B
|
|
||||||
.tty-char \(*a a
|
|
||||||
.tty-char \(*c \z,E
|
|
||||||
.tty-char \(*d d
|
|
||||||
.tty-char \(*e e
|
|
||||||
.tty-char \(*f \z|o
|
|
||||||
.tty-char \(+f \z|o
|
|
||||||
.tty-char \(*g y
|
|
||||||
.tty-char \(*h \z-0
|
|
||||||
.tty-char \(+h \z-0
|
|
||||||
.tty-char \(*i i
|
|
||||||
.tty-char \(*k k
|
|
||||||
.tty-char \(*l \z>\e
|
|
||||||
.tty-char \(*m \z,u
|
|
||||||
.tty-char \(*n v
|
|
||||||
.tty-char \(*p \z-n
|
|
||||||
.tty-char \(+p \z-w
|
|
||||||
.tty-char \(*q \z|u
|
|
||||||
.tty-char \(*r p
|
|
||||||
.tty-char \(*s \z-o
|
|
||||||
.tty-char \(*t \z~t
|
|
||||||
.tty-char \(*u u
|
|
||||||
.tty-char \(*w w
|
|
||||||
.tty-char \(*x x
|
|
||||||
.tty-char \(*y n
|
|
||||||
.tty-char \(*z \z,C
|
|
||||||
.tty-char \(ts s
|
|
||||||
.\" Definition of \(ss should follow that of \(*b.
|
|
||||||
.tty-char \(ss B
|
|
||||||
.tty-char \(c* \zO\(mu
|
|
||||||
.tty-char \(c+ \zO+
|
|
||||||
.tty-char \(AN ^
|
|
||||||
.tty-char \(OR v
|
|
||||||
.tty-char \(uA \z=^
|
|
||||||
.tty-char \(dA \z=v
|
|
||||||
.if c\(md .tty-char \(pc \(md
|
|
||||||
.if c\(pc .tty-char \(md \(pc
|
|
||||||
.if c\(pc .tty-char \(a. \(pc
|
|
||||||
.tty-char \(Im I
|
|
||||||
.tty-char \(Re R
|
|
||||||
.tty-char \(/L \z/L
|
|
||||||
.tty-char \(/l \z/l
|
|
||||||
.tty-char \(%0 %o
|
|
||||||
.tty-char \(ao o
|
|
||||||
.tty-char \(a" """"
|
|
||||||
.tty-char \(ab \z'`
|
|
||||||
.tty-char \(ah v
|
|
||||||
.tty-char \(ho \(ac
|
|
||||||
.tty-char \(/_ \z_/
|
|
||||||
.tty-char \(=~ =~
|
|
||||||
.tty-char \(Ah N
|
|
||||||
.tty-char \(CR _|
|
|
||||||
.tty-char \(fa \z-V
|
|
||||||
.tty-char \(nm \z/E
|
|
||||||
.tty-char \(pp \z_|
|
|
||||||
.tty-char \(sd ''
|
|
||||||
.tty-char \(st -)
|
|
||||||
.tty-char \(te 3
|
|
||||||
.if c\(md .tty-char \(tf .\(md.
|
|
||||||
.tty-char \(tf .:.
|
|
||||||
.tty-char \(wp p
|
|
||||||
.tty-char \(~~ ~~
|
|
||||||
.tty-char \(Fn \z,f
|
|
||||||
.tty-char \(Bq ,,
|
|
||||||
.tty-char \(bq ,
|
|
||||||
.tty-char \(lz <>
|
|
||||||
.\" Latin-1 characters
|
|
||||||
.tty-char \(r! \z,i
|
|
||||||
.tty-char \(Po \z-L
|
|
||||||
.tty-char \(Cs \zox
|
|
||||||
.tty-char \(Ye \z=Y
|
|
||||||
.tty-char \(bb |
|
|
||||||
.tty-char \(ad """"
|
|
||||||
.tty-char \(Of \z_a
|
|
||||||
.tty-char \(Fo <<
|
|
||||||
.tty-char \(a- \*[tty-rn]
|
|
||||||
.tty-char \(S2 2
|
|
||||||
.tty-char \(S3 3
|
|
||||||
.tty-char \(ps 9|
|
|
||||||
.tty-char \(md .
|
|
||||||
.tty-char \(pc .
|
|
||||||
.tty-char \(ac ,
|
|
||||||
.tty-char \(S1 1
|
|
||||||
.tty-char \(Om \z_o
|
|
||||||
.tty-char \(Fc >>
|
|
||||||
.tty-char \(r? \z'c
|
|
||||||
.tty-char \(`A \z`A
|
|
||||||
.tty-char \('A \z'A
|
|
||||||
.tty-char \(^A \z^A
|
|
||||||
.tty-char \(~A \z~A
|
|
||||||
.tty-char \(:A \z"A
|
|
||||||
.tty-char \(oA \zoA
|
|
||||||
.tty-char \(,C \z,C
|
|
||||||
.tty-char \(`E \z`E
|
|
||||||
.tty-char \('E \z'E
|
|
||||||
.tty-char \(^E \z^E
|
|
||||||
.tty-char \(:E \z"E
|
|
||||||
.tty-char \(`I \z`I
|
|
||||||
.tty-char \('I \z'I
|
|
||||||
.tty-char \(^I \z^I
|
|
||||||
.tty-char \(:I \z"I
|
|
||||||
.tty-char \(-D \z-D
|
|
||||||
.tty-char \(~N \z~N
|
|
||||||
.tty-char \(`O \z`O
|
|
||||||
.tty-char \('O \z'O
|
|
||||||
.tty-char \(^O \z^O
|
|
||||||
.tty-char \(~O \z~O
|
|
||||||
.tty-char \(:O \z"O
|
|
||||||
.tty-char \(/O \z/O
|
|
||||||
.tty-char \(`U \z`U
|
|
||||||
.tty-char \('U \z'U
|
|
||||||
.tty-char \(^U \z^U
|
|
||||||
.tty-char \(:U \z"U
|
|
||||||
.tty-char \('Y \z'Y
|
|
||||||
.tty-char \(TP \zIb
|
|
||||||
.tty-char \(`a \z`a
|
|
||||||
.tty-char \('a \z'a
|
|
||||||
.tty-char \(^a \z^a
|
|
||||||
.tty-char \(~a \z~a
|
|
||||||
.tty-char \(:a \z"a
|
|
||||||
.tty-char \(oa \zoa
|
|
||||||
.tty-char \(,c \z,c
|
|
||||||
.tty-char \(`e \z`e
|
|
||||||
.tty-char \('e \z'e
|
|
||||||
.tty-char \(^e \z^e
|
|
||||||
.tty-char \(:e \z"e
|
|
||||||
.tty-char \(`i \z`i
|
|
||||||
.tty-char \('i \z'i
|
|
||||||
.tty-char \(^i \z^i
|
|
||||||
.tty-char \(:i \z"i
|
|
||||||
.tty-char \(Sd \z`\z'o
|
|
||||||
.tty-char \(~n \z~n
|
|
||||||
.tty-char \(`o \z`o
|
|
||||||
.tty-char \('o \z'o
|
|
||||||
.tty-char \(^o \z^o
|
|
||||||
.tty-char \(~o \z~o
|
|
||||||
.tty-char \(:o \z"o
|
|
||||||
.tty-char \(/o \z/o
|
|
||||||
.tty-char \(`u \z`u
|
|
||||||
.tty-char \('u \z'u
|
|
||||||
.tty-char \(^u \z^u
|
|
||||||
.tty-char \(:u \z"u
|
|
||||||
.tty-char \('y \z'y
|
|
||||||
.tty-char \(Tp \zpb
|
|
||||||
.tty-char \(:y \z"y
|
|
||||||
.\"tty-char \(:y \ij
|
|
||||||
.tty-char \[arrowvertex] |
|
|
||||||
.cp \n(_C
|
|
||||||
.if !'\*(.T'cp1047' \
|
|
||||||
. do mso tmac.latin1
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user