Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wrong questionmark in 14.ttf #3

Open
Finii opened this issue Jun 11, 2024 · 1 comment
Open

Wrong questionmark in 14.ttf #3

Finii opened this issue Jun 11, 2024 · 1 comment

Comments

@Finii
Copy link

Finii commented Jun 11, 2024

The sdf file is ok, but the ttf has an inverted question mark.

Original reporter is @dsvoid here:

Visuals:

image

It does have a proper question mark, but the glyph is connected to no codepoint

image

@Finii
Copy link
Author

Finii commented Jun 11, 2024

The bitmap file is correct, though:

image
Circled the dot of the question mark

Hmm, linking error?

image

Look into the ttf file via ttx, just some lines shown here:

  <GlyphOrder>                                         
    <!-- The 'id' attribute is only for humans; it is ignored when parsed. -->
    <GlyphID id="64" name="question"/>                  
    <GlyphID id="192" name="question#1"/>           
  </GlyphOrder>
  <cmap>                                                        
    <tableVersion version="0"/>                                 
    <cmap_format_4 platformID="0" platEncID="3" language="0">   
      <map code="0x3f" name="question#1"/><!-- QUESTION MARK -->
    </cmap_format_4>
    <cmap_format_6 platformID="1" platEncID="0" language="0">
      <map code="0x3f" name="question"/>
    </cmap_format_6>
    <cmap_format_4 platformID="3" platEncID="1" language="0">
      <map code="0x3f" name="question#1"/><!-- QUESTION MARK -->
    </cmap_format_4>
  </cmap>
  <post>
    <psNames>
      <!-- This file uses unique glyph names based on the information
           found in the 'post' table. Since these names might not be unique,
           we have to invent artificial names in case of clashes. In order to
           be able to retain the original information, we need a name to
           ps name mapping for those cases where they differ. That's what
           you see below.
            -->
      <psName name="question#1" psName="question"/>
    </psNames>
  <post>

    <TTGlyph name="question" xMin="146" yMin="1" xMax="1024" yMax="1464">
      <contour>
        <pt x="439" y="147" on="1"/>
        <pt x="439" y="293" on="1"/>
        <pt x="512" y="293" on="1"/>
        <pt x="585" y="293" on="1"/>
        <pt x="585" y="147" on="1"/>
        <pt x="585" y="1" on="1"/>
        <pt x="512" y="1" on="1"/>
        <pt x="439" y="1" on="1"/>
      </contour>
      <contour>
        <pt x="293" y="1391" on="1"/>
        <pt x="293" y="1464" on="1"/>
        <pt x="585" y="1464" on="1"/>
        <pt x="878" y="1464" on="1"/>
        <pt x="878" y="1391" on="1"/>
        <pt x="878" y="1317" on="1"/>
        <pt x="951" y="1317" on="1"/>
        <pt x="1024" y="1317" on="1"/>
        <pt x="1024" y="1098" on="1"/>
        <pt x="1024" y="878" on="1"/>
        <pt x="951" y="878" on="1"/>
        <pt x="878" y="878" on="1"/>
        <pt x="878" y="805" on="1"/>
        <pt x="878" y="732" on="1"/>
        <pt x="805" y="732" on="1"/>
        <pt x="732" y="732" on="1"/>
        <pt x="732" y="659" on="1"/>
        <pt x="732" y="586" on="1"/>
        <pt x="659" y="586" on="1"/>
        <pt x="585" y="586" on="1"/>
        <pt x="585" y="513" on="1"/>
        <pt x="585" y="439" on="1"/>
        <pt x="512" y="439" on="1"/>
        <pt x="439" y="439" on="1"/>
        <pt x="439" y="513" on="1"/>
        <pt x="439" y="586" on="1"/>
        <pt x="512" y="586" on="1"/>
        <pt x="585" y="586" on="1"/>
        <pt x="585" y="659" on="1"/>
        <pt x="585" y="732" on="1"/>
        <pt x="659" y="732" on="1"/>
        <pt x="732" y="732" on="1"/>
        <pt x="732" y="805" on="1"/>
        <pt x="732" y="878" on="1"/>
        <pt x="805" y="878" on="1"/>
        <pt x="878" y="878" on="1"/>
        <pt x="878" y="1098" on="1"/>
        <pt x="878" y="1317" on="1"/>
        <pt x="585" y="1317" on="1"/>
        <pt x="293" y="1317" on="1"/>
        <pt x="293" y="1244" on="1"/>
        <pt x="293" y="1171" on="1"/>
        <pt x="219" y="1171" on="1"/>
        <pt x="146" y="1171" on="1"/>
        <pt x="146" y="1244" on="1"/>
        <pt x="146" y="1317" on="1"/>
        <pt x="219" y="1317" on="1"/>
        <pt x="293" y="1317" on="1"/>
      </contour>
      <instructions/>
    </TTGlyph>

    <TTGlyph name="question#1" xMin="146" yMin="1" xMax="1024" yMax="1464">
      <contour>
        <pt x="585" y="951" on="1"/>
        <pt x="585" y="1025" on="1"/>
        <pt x="659" y="1025" on="1"/>
        <pt x="732" y="1025" on="1"/>
        <pt x="732" y="951" on="1"/>
        <pt x="732" y="878" on="1"/>
        <pt x="659" y="878" on="1"/>
        <pt x="585" y="878" on="1"/>
        <pt x="585" y="805" on="1"/>
        <pt x="585" y="732" on="1"/>
        <pt x="512" y="732" on="1"/>
        <pt x="439" y="732" on="1"/>
        <pt x="439" y="659" on="1"/>
        <pt x="439" y="586" on="1"/>
        <pt x="366" y="586" on="1"/>
        <pt x="293" y="586" on="1"/>
        <pt x="293" y="366" on="1"/>
        <pt x="293" y="147" on="1"/>
        <pt x="585" y="147" on="1"/>
        <pt x="878" y="147" on="1"/>
        <pt x="878" y="220" on="1"/>
        <pt x="878" y="293" on="1"/>
        <pt x="951" y="293" on="1"/>
        <pt x="1024" y="293" on="1"/>
        <pt x="1024" y="220" on="1"/>
        <pt x="1024" y="147" on="1"/>
        <pt x="951" y="147" on="1"/>
        <pt x="878" y="147" on="1"/>
        <pt x="878" y="74" on="1"/>
        <pt x="878" y="1" on="1"/>
        <pt x="585" y="1" on="1"/>
        <pt x="293" y="1" on="1"/>
        <pt x="293" y="74" on="1"/>
        <pt x="293" y="147" on="1"/>
        <pt x="219" y="147" on="1"/>
        <pt x="146" y="147" on="1"/>
        <pt x="146" y="366" on="1"/>
        <pt x="146" y="586" on="1"/>
        <pt x="219" y="586" on="1"/>
        <pt x="293" y="586" on="1"/>
        <pt x="293" y="659" on="1"/>
        <pt x="293" y="732" on="1"/>
        <pt x="366" y="732" on="1"/>
        <pt x="439" y="732" on="1"/>
        <pt x="439" y="805" on="1"/>
        <pt x="439" y="878" on="1"/>
        <pt x="512" y="878" on="1"/>
        <pt x="585" y="878" on="1"/>
      </contour>
      <contour>
        <pt x="585" y="1317" on="1"/>
        <pt x="585" y="1464" on="1"/>
        <pt x="659" y="1464" on="1"/>
        <pt x="732" y="1464" on="1"/>
        <pt x="732" y="1317" on="1"/>
        <pt x="732" y="1171" on="1"/>
        <pt x="659" y="1171" on="1"/>
        <pt x="585" y="1171" on="1"/>
      </contour>
      <instructions/>
    </TTGlyph>

From the contours question is the upside-down one and question#1 is the ordinary questionmark.

Fix

This directly fixes the ttf file via modifying its ttx:

--- gohufont-14.ttx	2024-06-11 21:49:37.271329386 +0200
+++ gohufont-14_.ttx	2024-06-11 22:01:46.502759124 +0200
@@ -195,7 +195,7 @@
     <GlyphID id="189" name="onequarter"/>
     <GlyphID id="190" name="onehalf"/>
     <GlyphID id="191" name="threequarters"/>
-    <GlyphID id="192" name="question#1"/>
+    <GlyphID id="192" name="inverted"/>
     <GlyphID id="193" name="Agrave"/>
     <GlyphID id="194" name="Aacute"/>
     <GlyphID id="195" name="Acircumflex"/>
@@ -532,7 +532,7 @@
     <mtx name="plusminus" width="1170" lsb="146"/>
     <mtx name="q" width="1170" lsb="146"/>
     <mtx name="question" width="1170" lsb="146"/>
-    <mtx name="question#1" width="1170" lsb="146"/>
+    <mtx name="inverted" width="1170" lsb="146"/>
     <mtx name="quotedbl" width="1170" lsb="293"/>
     <mtx name="quotesingle" width="1170" lsb="439"/>
     <mtx name="r" width="1170" lsb="146"/>
@@ -701,7 +701,7 @@
       <map code="0x3c" name="less"/><!-- LESS-THAN SIGN -->
       <map code="0x3d" name="equal"/><!-- EQUALS SIGN -->
       <map code="0x3e" name="greater"/><!-- GREATER-THAN SIGN -->
-      <map code="0x3f" name="question#1"/><!-- QUESTION MARK -->
+      <map code="0x3f" name="question"/><!-- QUESTION MARK -->
       <map code="0x40" name="at"/><!-- COMMERCIAL AT -->
       <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A -->
       <map code="0x42" name="B"/><!-- LATIN CAPITAL LETTER B -->
@@ -828,6 +828,7 @@
       <map code="0xbc" name="onequarter"/><!-- VULGAR FRACTION ONE QUARTER -->
       <map code="0xbd" name="onehalf"/><!-- VULGAR FRACTION ONE HALF -->
       <map code="0xbe" name="threequarters"/><!-- VULGAR FRACTION THREE QUARTERS -->
+      <map code="0xbf" name="inverted"/><!-- INVERTED QUESTION MARK -->
       <map code="0xc0" name="Agrave"/><!-- LATIN CAPITAL LETTER A WITH GRAVE -->
       <map code="0xc1" name="Aacute"/><!-- LATIN CAPITAL LETTER A WITH ACUTE -->
       <map code="0xc2" name="Acircumflex"/><!-- LATIN CAPITAL LETTER A WITH CIRCUMFLEX -->
@@ -1166,7 +1167,7 @@
       <map code="0x3c" name="less"/><!-- LESS-THAN SIGN -->
       <map code="0x3d" name="equal"/><!-- EQUALS SIGN -->
       <map code="0x3e" name="greater"/><!-- GREATER-THAN SIGN -->
-      <map code="0x3f" name="question#1"/><!-- QUESTION MARK -->
+      <map code="0x3f" name="question"/><!-- QUESTION MARK -->
       <map code="0x40" name="at"/><!-- COMMERCIAL AT -->
       <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A -->
       <map code="0x42" name="B"/><!-- LATIN CAPITAL LETTER B -->
@@ -1293,6 +1294,7 @@
       <map code="0xbc" name="onequarter"/><!-- VULGAR FRACTION ONE QUARTER -->
       <map code="0xbd" name="onehalf"/><!-- VULGAR FRACTION ONE HALF -->
       <map code="0xbe" name="threequarters"/><!-- VULGAR FRACTION THREE QUARTERS -->
+      <map code="0xbf" name="inverted"/><!-- INVERTED QUESTION MARK -->
       <map code="0xc0" name="Agrave"/><!-- LATIN CAPITAL LETTER A WITH GRAVE -->
       <map code="0xc1" name="Aacute"/><!-- LATIN CAPITAL LETTER A WITH ACUTE -->
       <map code="0xc2" name="Acircumflex"/><!-- LATIN CAPITAL LETTER A WITH CIRCUMFLEX -->
@@ -9721,7 +9723,7 @@
       <instructions/>
     </TTGlyph>
 
-    <TTGlyph name="question#1" xMin="146" yMin="1" xMax="1024" yMax="1464">
+    <TTGlyph name="inverted" xMin="146" yMin="1" xMax="1024" yMax="1464">
       <contour>
         <pt x="585" y="951" on="1"/>
         <pt x="585" y="1025" on="1"/>
@@ -11909,14 +11911,6 @@
     <minMemType1 value="0"/>
     <maxMemType1 value="0"/>
     <psNames>
-      <!-- This file uses unique glyph names based on the information
-           found in the 'post' table. Since these names might not be unique,
-           we have to invent artificial names in case of clashes. In order to
-           be able to retain the original information, we need a name to
-           ps name mapping for those cases where they differ. That's what
-           you see below.
-            -->
-      <psName name="question#1" psName="question"/>
     </psNames>
     <extraNames>
       <!-- following are the name that are not taken from the standard Mac glyph order -->

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant