aboutsummaryrefslogtreecommitdiff
path: root/troff/font/devutf/charlib/LH.example
blob: 9374c45d5f2f263273bc120d07fc9a279273e1e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
%
% An example logo character. Building the PostScript program that prints
% your company logo is not addressed here; we assume you already have
% such a program, that it's relatively simple, and that it prints the
% logo by itself on a page. What you'll find here are instructions for
% converting that logo program into a character that can be accessed by
% troff and dpost.
%
% Building a new charlib character involves some PostScript programming.
% We've tried to isolate parameters that you'll need to change (Xoffset,
% Yoffset, and Scaling), but we can't guarantee things will work properly
% with every logo program. PostScript is a complex language and subtle
% interactions between your logo program and what we've done here can
% cause problems.
%
% Tuning the new character is an iterative process. You may want to adjust
% the size of the logo (via Scaling), it's position relative to adjacent
% characters and the baseline (Xoffset and Yoffset), and the distance troff
% moves after printing the character (width field in file ../S1). The steps
% to follow are:
%
%	1: Create a simple troff test file for the new character. Something
%	   like,
%
%		.sp 1i
%		.ps 10
%		size 10: \(LH
%		.sp 1i
%		.ps 18
%		size 18: \(LH
%		.sp 1i
%		.ps 36
%		size 36: \(LH
%		.sp 1i
%		.ps 10
%		four logo characters: \(LH\(LH\(LH\(LH
%
%	   is sufficient. The test file can go anywhere.
% 
%	2: Change into directory /usr/lib/font/devpost/charlib. All file
%	   pathnames will be relative to that directory.
%
%	3: Save a copy of the working LH logo file. Then replace LH with
%	   this file (i.e. LH.example). Changes described below should be
%	   be made in the new LH file (not in LH.example).
%
%	4: Your PostScript logo program will eventually replace whatever
%	   you find between the <<StartLogo>> and <<EndLogo>> comment lines
%	   in the PostScript build_LH procedure (below). What's there now
%	   prints an example logo that you can use until you understand the
%	   remaining steps.
%
%	5: Print your troff test file using (assuming your making changes
%	   in the devpost charlib directory),
%
%		troff -Tpost testfile | dpost | lp ...
%
%	6: Adjust the logo positioning by changing the numbers assigned to
%	   Xoffset and Yoffset (below). Both are in units of 72 per inch.
%	   Positive offsets should move the logo to the right and up the
%	   page.
%
%	7: Adjust the logo size by changing the the number assigned to
%	   Scaling. Unitsize also controls scaling, but there's no good
%	   reason to change both Scaling and Unitsize.
%
%	8: Control the horizontal distance troff moves after printing the
%	   new LH character by changing the width (i.e. the number in the
%	   second column) assigned to LH in file ../S1. Character width
%	   adjustments should probably wait until you're satisfied with
%	   the Scaling set in step 7.
%
%	9: Back to step 5 until your satisfied with the output.
%
% The remaining steps are suggested but not required:
%
%      10: Delete PostScript comments in your new LH charlib file - comments
%	   start with % and go to the end of the line.
%
%      11: Update the width field assigned to LH in file ../shell.lib. The
%	   new width should reflect what's currently in your S1 font file.
%
%      12: Make a similiar set of changes in /usr/lib/font/devLatin1/charlib.
%	   You can use the devpost version of LH to devLatin1/charlib/LH,
%	   but changes to files devLatin1/S1 and devLatin1/shell.lib must be
%	   entered by hand.
%

/Logo_Dict 100 dict dup begin
	/Xoffset 0 def			% 72 dpi with positive to the right
	/Yoffset 0 def			% 72 dpi with positive up the page
	/Scaling 1.0 def		% adjust this number to change the size
	/Unitsize 36 def		% for point size scaling - leave it be
	/showpage {} def
end def

/build_LH {				% don't bind this procedure
	Logo_Dict begin
		gsave
		/charwidth exch def
		currentpoint translate
		resolution 72 div dup scale
		Xoffset Yoffset translate
		Scaling Scaling scale
		ptsize Unitsize div dup scale

		%% Replace everything between the <<StartLogo>> and <<EndLogo>>
		%% comment lines by the PostScript program that prints your
		%% logo.

		%% <<StartLogo>>
			newpath
			.5 .5 scale
			0 0 moveto
			100 0 lineto
			100 100 lineto
			closepath
			.5 setgray
			fill
			0 setgray
			10 10 translate
			45 rotate
			0 5 moveto
			/Helvetica findfont 18 scalefont setfont
			(Example Logo) show
		%% <<EndLogo>>

		grestore
	end
} def