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