9base

revived minimalist port of Plan 9 userland to Unix
git clone git://git.suckless.org/9base
Log | Files | Refs | README | LICENSE

LH.example (4433B)


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