summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerd Moellmann <gerd@gnu.org>2001-04-02 10:38:26 +0000
committerGerd Moellmann <gerd@gnu.org>2001-04-02 10:38:26 +0000
commit0f61512806cc7ccc5df35e1b02561388a0b108a5 (patch)
treee1f4c80c63ad190ee046985170211820860a0270
parent922be0197ddc5f73bf77c228ef6078f82158434b (diff)
downloademacs-0f61512806cc7ccc5df35e1b02561388a0b108a5.tar.gz
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.
-rw-r--r--etc/ps-prin1.ps59
1 files 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