/usr/share/lout/include/bsf.lpg is in lout-common 3.39-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 | %%BeginResource: procset LoutBasicSetup
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% PostScript @SysPrependGraphic file for @BasicSetup %
% %
% This file has been placed in the public domain by its author, %
% Jeffrey H. Kingston %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% width height linethickness louteuro -
% draw a Euro symbol of this width and height with this line thickness
/louteuro {
20 dict begin
/eurothick exch def
/euroheight exch def
/eurowidth exch def
/eurostrokewidth euroheight 0.8 mul def
/eurostep eurothick 60 cos mul 60 sin div def
/eurotheta 40 def
% llx lly width thickness louteurobox -
% draw angled box starting at (llx, lly) with given width and thickness
/louteurobox
{
/euroboxthick exch def
/euroboxwidth exch def
newpath moveto euroboxwidth 0 rlineto
eurostep euroboxthick rlineto
euroboxwidth neg 0 rlineto closepath fill
} def
% lower cross stroke
0 euroheight 2 div eurothick 1.5 mul sub
eurostrokewidth eurothick louteurobox
% upper cross stroke
0 euroheight 2 div eurothick 0.5 mul add
eurostrokewidth eurostep 2 mul add eurothick louteurobox
% circular part
/eurohctr eurowidth euroheight 2 div eurotheta cos mul sub def
/eurovctr euroheight 2 div def
newpath
eurohctr eurovctr eurovctr eurotheta 350 eurotheta sub arc
eurohctr eurovctr eurovctr eurothick sub 365 eurotheta sub eurotheta arcn
closepath fill
end
} def
% path for @FullWidthRule symbol
/LoutRule
{ 0 0 moveto xsize 0 lineto
} def
% path for @Box symbol
/LoutBox
{ 0 0 moveto xsize 0 lineto
xsize ysize lineto 0 ysize lineto
closepath
} def
% path for @CurveBox symbol
/LoutCurveBox
{ xmark 0 moveto
xsize xmark sub xmark xmark 270 360 arc
xsize xmark sub ysize xmark sub xmark 0 90 arc
xmark ysize xmark sub xmark 90 180 arc
xmark xmark xmark 180 270 arc
closepath
} def
% path for @ShadowBox symbol
/LoutShadowBox
{ xmark 2 mul 0 moveto xsize 0 lineto
xsize ysize xmark 2 mul sub lineto
xsize xmark sub ysize xmark 2 mul sub lineto
xsize xmark sub xmark lineto
xmark 2 mul xmark lineto
closepath
} def
% set up dictionary containing margin note data: parity LoutMargSet -
/LoutMargSet
{ /LoutMargDict 12 dict def
LoutMargDict begin
/parity exch def
/matr matrix currentmatrix def
/rightx xsize def
/lefty ysize def % highest allowable point for top of next left note
/righty ysize def % highest allowable point for top of next right note
/max { 2 copy gt { pop } { exch pop } ifelse } def
/min { 2 copy lt { pop } { exch pop } ifelse } def
end
} def
%translate coordinate system for marginal notes: type LoutMargShift -
% where type 0 is left margin, 1 is right margin, 2 is outer, 3 is inner
/LoutMargShift
{ LoutMargDict begin
% y coordinate of top of note, in margin coords, before vertical adjust
0 ysize transform matr itransform exch pop
% decide whether left or right margin based on type and parity
exch [ 0 1 parity 1 parity sub ] exch get 0 eq
{
% left margin: adjust top of note downwards if overlaps previous note
lefty min
% bottom of note is new lefty position and also translate position
ysize sub dup /lefty exch def
% want right edge of note at coordinate zero
xsize neg exch
}
{
% right margin: adjust top of note downwards if overlaps previous note
righty min
% bottom of note is new righty position and also translate position
ysize sub dup /righty exch def
% want left edge of note at coordinate rightx
rightx exch
} ifelse
% stack now contains coord of bottom left corner in margin coordinates
matr setmatrix translate
end
} def
% create LoutPageDict with left, right, foot, top for @Place symbol users
/LoutPageSet
{
/LoutPageDict 5 dict def
LoutPageDict begin
/matr matrix currentmatrix def
/left 0 def
/right xsize def
/foot 0 def
/top ysize def
end
} def
%%EndResource
|