bug-groff
[Top][All Lists]
Advanced

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

Re: eqn formatting issues with grops and gropdf


From: Deri
Subject: Re: eqn formatting issues with grops and gropdf
Date: Tue, 26 Jul 2022 17:19:04 +0100

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]