groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

eqn... the first missing email


From: Deri
Subject: eqn... the first missing email
Date: Tue, 26 Jul 2022 21:44:08 +0100

I've managed to find the complete reply I sent!

On Tuesday, 26 July 2022 09:00:25 BST joerg van den hoff wrote:
> me again with an update/correction to the previous description of the issue
> (the described problem remains, though):
> 
> 1.
> regarding the symobl fonts used by grops and gropdf I previously stated the
> former were using SS (symbols slanted) and the latter S (symbols) which I
> presumed according to the looks of the greek letters in the ps output
> (upright) and pdf output (slanted to the right like italics). this was
> *wrong*. looking into the font information in the formatted files it was
> the other way around (grops was using SS and gropdf using S).
> 
> looking into the DESC files, I do find indeed entries
> 
> grops:  fonts 9 0 0 0 0 0 SS S ZD ZDR
> gropdf: fonts 9 0 0 0 0 0 0 S ZD ZDR
> 
> which explains the font selection that occurred. I do not understand,
> however, while this ultimately lead to _slanted_ glyphs with gropdf and
> _upright_ glyphs with grops (exactly the other way around as I would have
> expected for S vs SS).
> 
> 2.
> forcing grops to also use S (by editing the DESC file and removing SS from
> the entry) leads to sane ps and pdf output with both devices (no
> misalignment and strange irregular widths of the greek letters). so this
> would be the quick patch to "repair" grops: change the DESC file.
> 
> 3.
> using now the same font S, the glyphs produced by grops are upright
> (expected) and those produced by gropdf are slanted (unexpected). why is
> that??
> 
> the main observation remains unaltered: in standard setup grops uses SS for
> typesetting greek letters since SS is found before S according to DESC and
> this leads to rather massive typesetting errors in equations using possibly
> many greek letters: cumulative mispositioning of stuff later on the same
> line.
> 
> what do to about this?
> 
> thank you
> joerg
> 


Hi Joerg,

You are correct that gropdf does not include the SS font. The reason is 
because it is not a proper font, it is instead a postscript program, which, 
when run by a postscript interpreter such as ghostscript or a postscript 
printer, generates a slanted version of the symbol font. This is not valid as 
a pdf font.

The SS font and the S font both define *a but only S defines *A so when they 
are both loaded with .special SS S the lower case is found in SS but uppercase 
in S. Since gropdf does not have SS *a is found in S and a special command is 
sent to gropdf "x Slant 16" which tells it to slant the glyph by 16 degrees.

If you type:-

echo "\[*a]" | groff -Z

You will see:-

x T ps
x res 72000 1 1
x init
p1
x font 11 S
f11
s10000
V12000
H72000
md
DFd
C*a
h6310
n12000 0
x trailer
V792000
x stop

But if you type:-

echo "\[*a]" | groff -Tpdf -Z

It changes to:-

x T pdf
x res 72000 1 1
x init
p1
x font 11 S
f11
s10000
x Slant 16
V12000
H72000
md
DFd
C*a
h6310
n12000 0
x trailer
V792000
x stop

You can see that it has added the Slant command. If you change the text to "\
[*A]\[*a]" you see it is only the lowercase alpha which is slanted. Since 
gropdf cannot use the slanted symbol font, in the file pdf.tmac you will 
find:-

.de pdf:SS
.    char \\$1 \\S'16'\\$1\\S'0'
..
.pdf:SS \[+h]
.pdf:SS \[ts]
.pdf:SS \[*a]
.pdf:SS \[*b]

Which maps \[*a] to a slanted version of itself, where the "x Slant 16" comes 
from. This file is not used when output is postscript. 

Now look for the reason the spacing of the characters is different. If we 
compare the entry for "*a" in both fonts:-

S: *a    631,500,18    3    97    alpha
SS: *a    562,445,16,145,-34,99    3    97    alpha

The extra numbers are to do with italic correction, giving extra space if it 
is preceded or followed by a non-italic font. This extra space is triggered by 
using \, and \/ which is what eqn has placed around each greek character, like 
this:-

\f[R]\,\[*a]\/\fP\f[R]\,\[*b]\/\fP\f[R]\,\[*g]\/\fP\f[R]\,\[*d]\/\fP\f[R]\,\
[*r]\/\fP\f[R]\,\[*s]\/\fP

This is what is causing the extra space between the greek glyphs when using 
the SS font. When eqn runs it is inserting \/ and \, around each of these 
greek characters which cause italic correction to be applied to each 
character.

If you want slanted glyphs after you have prevented grops from using the SS 
font you could copy the relevant part from pdf.tmac to your own file.


Cheers 

Deri







reply via email to

[Prev in Thread] Current Thread [Next in Thread]