|  | % | 
|  | % 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 | 
|  |  |