Jump to content
You must now use your email address to sign in [click for more info] ×

A_B_C

Members
  • Posts

    4,402
  • Joined

Profile Information

  • Gender
    Male
  • Location
    Germany

Recent Profile Visitors

6,225 profile views
  1. Of course, there is no issue in this case, because Publisher simply does not replace the uppercase glyphs by the small cap alternates when you enable Petites capitales (Small Caps). Both the uppercase glyphs and the small caps have the same metrics in my example font: The reported issue is specifically about tracking in the context of applied OpenType GSUB features. And this is where Publisher goes wrong. 🙂
  2. Publisher 2.3.1, latest MAS version, macOS Sonoma 14.3.1 (23D60), MacBook Pro 16'', 2019, 2.6 GHz 6-Core Intel Core i7
  3. Please take a look at the attached files. The .zip archive contains a Publisher file and a test font. The test font contains six glyphs /A/B/C/A.sc/B.sc/C.sc/, all of which are just rectangles of the same width (but different heights). There is something strange with the computation of tracking. In the screenshot below, there are two text frames, one containing the text string /ABC/ with the OpenType Feature c2sc applied to the text (blue text), the other one containing the string /A.sc/B.sc/C.sc/ where the small caps glyphs were entered through the Glyph Panel without using the OpenType Feature (red text). Additionally, a tracking value of -50 per mille is applied to both frames. Now, one would expect that the glyphs should perfectly line up. It shouldn’t matter whether the uppercase letters are replaced by the small caps letters through an OpenType feature or whether the small caps letters are directly inserted by the user through the Glyph Panel. The text should look identical. Yet, the two text frames look different. So there seems to be something wrong with your text shaper when tracking is applied. The glyph positions are not computed consistently. Please take a look. Thank you. 🙂 Test files: Tracking-Issue.zip
  4. This is a super-tiny request, but it would help in recurring instances. Could you turn the Lock Children checkbox on the context toolbar into a toggle button with an icon, such that you can get rid of the label text? This way, the toggle would not require so much space on the context toolbar and could be shown in a situation like the one below. This is the full-width of a 16" MBP screen with these settings: It happens so often that I use a rectangle with child content, and Lock Children is always hidden in that instance. Please consider. 🙂
  5. So it’s probably a slightly different problem than the one of the OP. Please split this thread if useful.
  6. Ahh … I see what the problem is. Publisher 2.2 seems to open at the external screen’s resolution and does not understand that it plays now on a smaller field. When I grab the corner of the window frame and resize it, everything gets back to normal. Thank goodness there is a workaround, but the bug is still mildly annoying.
  7. Similar problem here. Whenever I plug out my external 4k monitor (BenQ Design Vue PD Series, Thunderbolt to MacBook Pro 16'', 2019, macOS Ventura 13.6 build 22G120) and relaunch Publisher 2.2 on my internal MBP screen, my workspace looks like this. This is really a problem. Please fix.
  8. Congratulations to the new versions! The new features are awesome! It feels like everything is coming together. Keep up the great work, and grant yourself a little break now! You deserve it. 😀
  9. Hi there, please take a look at this. When I double click a panel to reduce it to the tab header, and double click it again to restore it, it always opens at minimal height: Panel-Height.mov This is very inconvenient, and I have the impression it hadn’t been that way in earlier versions. The panel should remember its previous height and be restored to this height when it is restored. Thanks for correcting.
  10. Is there a point in my reply where I spoke about glyph widths? Or where I said that the glyph substitution would be responsible for the problem we see? Neither the first nor the second. 🙂 Rather, the only detail I meant to address was the following: Since you are aware of the distinction between characters (codepoints) and glyphs, you will understand that this way of speaking can be misleading. In OpenType Layout, we do not substitute characters for characters, but glyphs for glyphs. Hence, it does not make much sense to speak of “substituted characters” and properties such “characters” would “inherit.” This is likely to lead to a confusion between characters and glyphs and to paint a wrong picture of OpenType Layout processing. But as I said, the way of expression in the quote above does not invalidate your diagnosis (and there’s certainly no need to put every word under close scrutiny, if the underlying distinctions are clear – so no offense). As you noted, the application seems to lose track of which glyph corresponds to which character (with its particular line breaking property) when glyph substitution occurs. It does not retrace the text shaping process correctly before entering the stage where the output of the text shaper is distributed to paragraph lines.
  11. I think this is basically the correct explanation, although there are some details I would rephrase somewhat differently. The problem is that we are talking about two different levels in text processing here. Being assigned to a Line Breaking Class is a property of a Unicode character, while the kind of substitutions we are talking about in this thread is a substitution that happens on the glyph level. A character is an abstract entity (a location in an encoding space), while a glyph is, basically, a set of drawing rules that, when applied, result in a visual object, such as a letter or symbol. In order to turn a sequence of Unicode characters into something visible, the codepoints belonging to this sequence must be mapped to the corresponding glyphs of the font that is selected for text rendering, and these glyphs must be positioned correctly in relation to each other. This mapping and positioning process is performed by a text shaping engine. If the selected font is an OpenType font, it may also include OpenType Layout (GSUB, GPOS) lookups that must be applied by the text shaping engine, either by default (e.g. depending on script and language settings for the Unicode input sequence) or based on user choices. Such a user choice would be enabling the GSUB feature ss05 in Dave’s font that replaces the /space/ glyph by the /space.alt/ glyph. Now, a text shaping engine is typically not concerned with problems of line-breaking, hyphenation or justification. The output of a text shaper is usually a data stream that can be visualised as a glyph sequence laid out on a single, indefinitely long line. To find out where potential word, sentence or line break points are in this line, you will have to apply another process that iterates over the output of the text shaper and remembers the shaping process, starting from the Unicode input sequence. In Dave’s example, this process will have to retrace the character-to-glyph mapping from the codepoint U+0020 to the glyph /space/ (GID 3), and then the glyph-to-glyph substitution from /space/ (GID 3) to /space.alt/ (GID 1011). And by retracing, the process might be able to identify the position in the glyph sequence where an instance of the /space.alt/ glyph occurs as a potential break point for line breaking. So since we are not substituting characters by characters (that is, codepoints by codepoints) when applying an OpenType Layout rule (the /space.alt/ glyph is not encoded anyway), but glyphs by glyphs, there is a slight conceptual problem in saying that “the solution is for the substituted character to inherit the Line Breaking Class characteristics of the character it is replacing”, but apart from that, I think you are right.
×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.