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