Skip to content

Added Scandinavian and German glyphs#30

Open
kaj-se wants to merge 9 commits into
comcode-org:mainfrom
kaj-se:add-scan-and-ger-glyphs
Open

Added Scandinavian and German glyphs#30
kaj-se wants to merge 9 commits into
comcode-org:mainfrom
kaj-se:add-scan-and-ger-glyphs

Conversation

@kaj-se

@kaj-se kaj-se commented Feb 9, 2026

Copy link
Copy Markdown
Contributor

Changes

  • Added glyphs for full support of Scandinavian and German letters
  Char UniCode SFDName
  ------------------------
  Ä    U+00C4  "Adieresis"
  Å    U+00C5  "Aring"
  Æ    U+00C6  "AE"
  Ö    U+00D6  "Odieresis"
  Ø    U+00D8  "Oslash"
  Ü    U+00DC  "Udieresis"
  ß    U+00DF  "germandbls"
  à    U+00E0  "agrave"
  ä    U+00E4  "adieresis"
  å    U+00E5  "aring"
  æ    U+00E6  "ae"
  é    U+00E9  "eacute"
  ö    U+00F6  "odieresis"
  ø    U+00F8  "oslash"
  ü    U+00FC  "udieresis"

Edit:

  Char UniCode SFDName
  ------------------------
  à    U+00E0  "agrave"
  é    U+00E9  "eacute"

Removed from changes (by request):

  • Added <FontLog> to track changes made by contributors~
  • Added <Comment> in <StartChar><EndChar> to easily track who created which glyph
  • Added myself to the copyright in <Copyright> and <LangName>
  • Updated from version 1.00 to 1.1 in <Version> and <LangName>

- Added myself to the copyright in `<Copyright>` and `<LangName>`
- Updated from version 1.00 to 1.1 in <Version> and `<LangName>`
- Added `<Comment>` in `<StartChar><EndChar>` to easily track who created which glyph
- Added `<FontLog>` to track changes made by contributors
- Added glyphs for full support of Scandinavian and German letters
```
  Char UniCode SFDName
  ------------------------
  Ä    U+00C4  "Adieresis"
  Å    U+00C5  "Aring"
  Æ    U+00C6  "AE"
  Ö    U+00D6  "Odieresis"
  Ø    U+00D8  "Oslash"
  Ü    U+00DC  "Udieresis"
  ß    U+00DF  "germandbls"
  à    U+00E0  "agrave"
  ä    U+00E4  "adieresis"
  å    U+00E5  "aring"
  æ    U+00E6  "ae"
  é    U+00E9  "eacute"
  ö    U+00F6  "odieresis"
  ø    U+00F8  "oslash"
  ü    U+00FC  "udieresis"
 ```
@CLAassistant

CLAassistant commented Feb 9, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@hmdunce

hmdunce commented Feb 9, 2026

Copy link
Copy Markdown
Contributor

I had chatgpt generate Swedish-, German-, and Norwegian-eqsue "lorum ipsum" texts with lots of special characters, then followed the same test procedure as described here and took a bunch of screenshots with gui.size from like -3-6 (and at the end I skipped to 10.)

The grid looked fine throughout -- after I replaced chatgpt's dang smart quotes with normal ones:

Screenshot from 2026-02-09 22-14-43 Screenshot from 2026-02-09 22-15-11 Screenshot from 2026-02-09 22-15-28 Screenshot from 2026-02-09 22-15-58 Screenshot from 2026-02-09 22-16-14 Screenshot from 2026-02-09 22-16-33 Screenshot from 2026-02-09 22-16-53 Screenshot from 2026-02-09 22-17-16 Screenshot from 2026-02-09 22-17-32 Screenshot from 2026-02-09 22-17-55 Screenshot from 2026-02-09 22-18-27

@hmdunce

hmdunce commented Feb 9, 2026

Copy link
Copy Markdown
Contributor

Side note typing also seems to work (at least on Linux) with one extra tweak to client:

image

@kaj-se

kaj-se commented Feb 10, 2026

Copy link
Copy Markdown
Contributor Author

Hej @hmdunce, the random sentences are crazy funny to be honest.
You forgot the à and é, examples for that would be:

é:
Names: Sandén, Norén, Rosén, Löfvén, Rabén, Franzén, ...
Words: armé, filé, idé, béchamelsås, gelé, déjà vu, cyberkafé (very important), entrédörr, allé, ...

à:
Phrases: à jour, à la, à la carte, à pris/à-pris, déjà vu, folie à deux, ...
Sentence: Tre hundra säckar à två dussin betor -> "Three hundred sacks of two dozen beets each"

The à is also used in German the same way for saying "of ... each"

Comment thread white-bunnybat.sfd Outdated
Comment thread white-bunnybat.sfd Outdated
Comment thread white-bunnybat.sfd Outdated
@hmdunce

hmdunce commented Feb 10, 2026

Copy link
Copy Markdown
Contributor

Side note, I was just curious what un-"squished" capital letters with diacritics would've looked like... Here's one test, where I copied "A" exactly and stuck an umlaut on top:

image

Vs current glyphs in this PR:

image

@kaj-se

kaj-se commented Feb 10, 2026

Copy link
Copy Markdown
Contributor Author

Side note, I was just curious what un-"squished" capital letters with diacritics would've looked like... Here's one test, where I copied "A" exactly and stuck an umlaut on top:

image Vs current glyphs in this PR: image

I have opened a new issue for this problem -> #31
This should prevent such issues from occurring in the future. The issue affects the upper and lower sections. If you place elements lower then the parts of the glyphs j or g, it will also overlap.

@seanmakesgames

Copy link
Copy Markdown
Member

Thanks for submitting this change!

@kaj-se

kaj-se commented Feb 10, 2026

Copy link
Copy Markdown
Contributor Author

@hmdunce the Å is even more "squished", that's the trade of by sticking to the current font line spacing. My idea was to change it so you can use the full height, but sean sad it's on purpose, so we have to do it like that.

Comment thread white-bunnybat.sfd
Comment thread white-bunnybat.sfd Outdated
@kaj-se

kaj-se commented Feb 18, 2026

Copy link
Copy Markdown
Contributor Author

@seanmakesgames Pull Request is ready to be merged.

Comment thread white-bunnybat.sfd
Comment thread white-bunnybat.sfd

@kaj-se kaj-se left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So all ready to be merged now. Merge this first then the others.

@seanmakesgames

Copy link
Copy Markdown
Member

So all ready to be merged now. Merge this first then the others.

Thanks @kaj-se!
Just an update for ya: the code changes here look good, but before we merge we need to validate the font renders correctly in our client. Once that's confirmed, we'll be able to approve this.

@kaj-se

kaj-se commented Mar 4, 2026

Copy link
Copy Markdown
Contributor Author

@seanmakesgames sounds good.

A little thought of mine: we should try to not overthink the font stuff. If FontForge passes the comprehensive test and the glyphs are in the areas of the guidelines, the font should be "normally" production ready.

@kaj-se

kaj-se commented Mar 6, 2026

Copy link
Copy Markdown
Contributor Author

@seanmakesgames @hmdunce

I found the problem causing this part and all related issues with it to change after saving:

StartChar: ae         |  StartChar: ae
Encoding: 230 230 206 |  Encoding: 230 230 206
Width: 1200           |  Width: 1200
GlyphClass: 2         |  GlyphClass: 2
Flags: W              |  Flags: W
LayerCount: 2         |  LayerCount: 2
Fore                  |  Fore
SplineSet             |  SplineSet
668 30 m 5,0,1        |> 668 30 m 1,0,1

Lets take this as an example:

668 30 m 5,0,1        |> 668 30 m 1,0,1

The 5 0b00000101 represents point flags, if the Glyph was created with SaveEditorState=1, bit 2 (value 4) which represents the selected state, got set. If the Glyph get then saved again with SaveEditorState=0, this flag get cleared which results in 1 0b00000001in this case.

Short:
Value 5 = point type 1 (corner) + selected flag (4)
Value 1 = point type 1 (corner) only

I tested this and you can reproduce this change.

  1. Add a new simple glyph while having SaveEditorState=1
  2. Save the project
  3. Make a copy of the project and open this one
  4. Set SaveEditorState=0 and save the copy project
  5. On Linux run diff on both files -> it will show up those lines where the bit got switched. Comparing the values will show that only bit 2 has been changed.

Conclusion:

  1. Let FontForge unset bit 2, there is NO CHANGE of the glyph it self, this flag is only editor state relevant and don't matter.
  2. For the future it's VERY important to have SaveEditorState=0 set.
  3. Optional - a better way of merging glyphs in the project to have a consistent flag state.

@kaj-se

kaj-se commented Mar 6, 2026

Copy link
Copy Markdown
Contributor Author

I changed the code of the pull request acording to the "Point Editor State Flag Bits" problem. @hmdunce if you find the post that mentioned this, please re-post it here. I couldn't find it.

Also fixed the bug of the duplicate BeginChars field in the SFD file which caused the FontForge editor to display the project as empty.

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

Successfully merging this pull request may close these issues.

4 participants