From 0f61512806cc7ccc5df35e1b02561388a0b108a5 Mon Sep 17 00:00:00 2001 From: Gerd Moellmann Date: Mon, 2 Apr 2001 10:38:26 +0000 Subject: [PATCH] Line and paragraph spacing feature. (LineHS, ParagraphHS, EffectUnderline, EffectStrikeou, EffectOverline) (EffectShadow, EffectBox, EffectOutline): New vars. (PSL, S, EF, printZebra, doColumnZebra, doZebra): Code fix. (PHL, LHL): New funs. --- etc/ps-prin1.ps | 59 ++++++++++++++++++++++++++++++++++--------------- 1 file changed, 41 insertions(+), 18 deletions(-) diff --git a/etc/ps-prin1.ps b/etc/ps-prin1.ps index 9c9a6ac8204..d5e53e902c0 100644 --- a/etc/ps-prin1.ps +++ b/etc/ps-prin1.ps @@ -187,12 +187,15 @@ StandardEncoding 46 82 getinterval aload pop dobackground }def -/PSL{bg{eolbg}if 0 currentpoint exch pop LineHeight sub moveto}def +/LineHS LineHeight LineSpacing add def +/ParagraphHS LineHeight ParagraphSpacing add def +/PSL{/h exch def bg{eolbg}if 0 currentpoint exch pop h sub moveto}def /PLN{PrintLineNumber{doLineNumber}if}def -/SL{PSL isLineStep pop}def % Soft Linefeed +/SL{LineHS PSL isLineStep pop}def % Soft Linefeed -/HL{PSL PLN}def % Hard Linefeed +/PHL{ParagraphHS PSL PLN}def % Paragraph Hard Linefeed +/LHL{LineHS PSL PLN}def % Hard Linefeed % Some debug /dcp{currentpoint exch 40 string cvs print(, )print =}def @@ -207,36 +210,51 @@ StandardEncoding 46 82 getinterval aload pop 0 rmoveto }def -/Effect 0 def -/EF{/Effect exch def}def +/Effect 0 def +/EffectUnderline false def +/EffectStrikeout false def +/EffectOverline false def +/EffectShadow false def +/EffectBox false def +/EffectOutline false def -% stack: string |- -- % effect: 1 - underline 2 - strikeout 4 - overline % 8 - shadow 16 - box 32 - outline +/EF{ + /Effect exch def + /EffectUnderline Effect 1 and 0 ne def + /EffectStrikeout Effect 2 and 0 ne def + /EffectOverline Effect 4 and 0 ne def + /EffectShadow Effect 8 and 0 ne def + /EffectBox Effect 16 and 0 ne def + /EffectOutline Effect 32 and 0 ne def +}def + +% stack: string |- -- /S{ /xx currentpoint dup Descent add/yy exch def Ascent add/YY exch def def dup stringwidth pop xx add/XX exch def - Effect 8 and 0 ne{ + EffectShadow{ /yy yy Yshadow add def /XX XX Xshadow add def }if bg{ true - Effect 16 and 0 ne + EffectBox {SpaceBackground doBox} {xx yy XX YY doRect} ifelse }if % background - Effect 16 and 0 ne{false 0 doBox}if % box - Effect 8 and 0 ne{dup doShadow}if % shadow - Effect 32 and 0 ne + EffectBox {false 0 doBox}if % box + EffectShadow {dup doShadow}if % shadow + EffectOutline {true doOutline} % outline {show} % normal text ifelse - Effect 1 and 0 ne{UnderlinePosition Hline}if % underline - Effect 2 and 0 ne{StrikeoutPosition Hline}if % strikeout - Effect 4 and 0 ne{OverlinePosition Hline}if % overline + EffectUnderline{UnderlinePosition Hline}if % underline + EffectStrikeout{StrikeoutPosition Hline}if % strikeout + EffectOverline {OverlinePosition Hline}if % overline }bind def % stack: position |- -- @@ -351,7 +369,7 @@ StandardEncoding 46 82 getinterval aload pop gsave ZebraColor SetColor /double-zebra ZebraHeight ZebraHeight add def - /yiter double-zebra LineHeight mul neg def + /yiter double-zebra LineHS mul neg def /xiter PrintWidth InterColumn add def /zebra-line LinesPrinted def NumberOfColumns{LinesPerColumn doColumnZebra xiter 0 rmoveto}repeat @@ -370,18 +388,23 @@ StandardEncoding 46 82 getinterval aload pop /lpc lpc ZebraHeight sub def H ZebraHeight add} {H}ifelse % "white" stripe - LineHeight mul neg 0 exch rmoveto + LineHS mul neg 0 exch rmoveto /zebra-line zebra-line LinesPerColumn add def }if + /zspacing 0 def lpc dup double-zebra idiv{ZebraHeight doZebra 0 yiter rmoveto}repeat double-zebra mod dup 0 le{pop} - {dup ZebraHeight gt ZebraFollow 2 and 0 ne or{pop ZebraHeight}if doZebra}ifelse + {dup ZebraHeight gt + {pop ZebraHeight} + {/zspacing LineSpacing def + ZebraFollow 2 and 0 ne{pop ZebraHeight}if}ifelse + doZebra}ifelse grestore }def % stack: zebra-height (in lines) |- -- /doZebra{ - /zh exch 0.05 sub LineHeight mul def + /zh exch 0.05 sub LineHS mul zspacing sub def gsave 0 LineHeight 0.65 mul rmoveto PrintWidth 0 rlineto -- 2.39.2