Open Finii opened 5 months ago
The bitmap file is correct, though:
Circled the dot of the question mark
Hmm, linking error?
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.
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 -->
The
sdf
file is ok, but thettf
has an inverted question mark.Original reporter is @dsvoid here:
Visuals:
It does have a proper question mark, but the glyph is connected to no codepoint