bug-groff
[Top][All Lists]
Advanced

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

[bug #57506] Suspicious "slant" values in devps/TI, devlbp/HI, devlbp/HB


From: Deri James
Subject: [bug #57506] Suspicious "slant" values in devps/TI, devlbp/HI, devlbp/HBI
Date: Sun, 2 Jul 2023 08:51:35 -0400 (EDT)

Follow-up Comment #13, bug #57506 (project groff):

I wanted to find out why the position of the diaeresis was so different
between Tinos and Libertine, given that the Z files were identical and the
font entries are similar, both have a zero width. So, it must be something
different in the type 1 fonts themselves, below are the disassembled glyph
definitions from both fonts.

TinosI

u0308   0,632,0,136,136 2       1384    uni0308
/uni0308 {
        205 0 hsbw
        555 1231 rmoveto
        288 callsubr
        -356 hmoveto
        87 callsubr
        endchar
        } ND

LibertineI

u0308   0,620,0,83,271,75       2       2004    uni0308
/uni0308 {
        -451 0 hsbw
        1174 vmoveto
        136 callsubr
        328 hmoveto
        129 callsubr
        endchar
        } ND

Notice the left side bearing in the Libertine font is negative compared to the
Tinos version, I think this is the reason Libertine gets it right.
Interestingly, if I use the original Tinos ttf font in libreoffice, it gets
the position of the diaeresis spot on. TrueType fonts allow little scripts
within the font to be called before a glyph is stroked, so I suspect this is
what is happening to correct the glyph position. Of course, when fontforge
converts the font to type 1, any scriptlets in the font get dropped.

What a good reason for gropdf to support otf/ttf fonts natively!!

hsbw

sbx wx hsbw (13)
sets the left sidebearing point at (sbx, 0) and sets the character
width vector to (wx, 0) in character space. This command also
sets the current point to (sbx, 0), but does not place the point in
the character path. Use rmoveto for the first point in the path.
The name hsbw stands for horizontal sidebearing and width; hor-
izontal indicates that the y component of both the sidebearing
and width is 0. Either sbw or hsbw must be used once as the first
command in a character outline definition. It must be used only
once. In non-marking characters, such as the space character, the
left sidebearing point should be (0, 0).

And now for something completely different...

Assuming you have called your Libertine font family "Lib", try this:-

echo "\fI\s'200'\v'200p'\N[2364]" | ./test-groff -Tpdf -fLib -ms > T.pdf

Surprised he hasn't an italic lean!



    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?57506>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/




reply via email to

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