<p>The question you are asking is basically, &quot;how do I shape ideographic description sequences (IDS's)&quot;? Text shaping is how the Arabic word <strong>خ‌ط‌ ‌ا‌ل‌ع‌ا‌ئ‌ل‌ة</strong> becomes <strong>خط العائلة</strong>.</p>
<p>It is technically possible. I am working on a proof-of-concept that can shape any IDS with a recursion depth of 2 or less. The recursion depth is needed due to limits of the number of glyphs possible in a SFNT-based font.</p>
<p>An SFNT-based font can contain 65535 glyphs. There are 26 presentation forms of a radical shaped in an IDS:</p>
<ol>
<li>口_Plain.</li>
<li>⿰: 口_Left; 口_Right.</li>
<li>⿱: 口_Above; 口_Below.</li>
<li>⿲: 口_LeftOf3; 口_HMiddleOf3; 口_RightOf3.</li>
<li>⿳: 口_TopOf3; 口_VMiddleOf3; 口_BottomOf3.</li>
<li>⿴: 口_Surrounding; 口_Surrounded.</li>
<li>⿵: 口_SurroundingFromAbove; 口_SurroundedFromAbove.</li>
<li>⿶: 口_SurroundingFromBelow; 口_SurroundedFromBelow.</li>
<li>⿷: 口_SurroundingFromLeft; 口_SurroundedFromLeft.</li>
<li>⿸: 口_SurroundingFromUpperLeft; 口_SurroundedFromUpperLeft.</li>
<li>⿹: 口_SurroundingFromUpperRight; 口_SurroundedFromUpperRight.</li>
<li>⿺: 口_SurroundingFromLowerLeft; 口_SurroundedFromLowerLeft.</li>
<li>⿺: 口_OverlaidA; 口_OverlaidB.</li>
</ol>
<p>If you take the 216 radicals and draw them in all 26 presentation forms, you have 5,616 glyphs. (You can prune the list some by remembering that not all radicals make sense in all presentation forms; for example, <strong>辶</strong> can never be Surrounding or Overlaid.)</p>
<p>You can then use contextual alternates (<a href="https://docs.microsoft.com/en-us/typography/opentype/spec/gsub" rel="nofollow noreferrer">GSUB</a>) and contextual substitution (<a href="https://docs.microsoft.com/en-us/typography/opentype/spec/gpos" rel="nofollow noreferrer">GPOS</a>) to begin shaping. Wherever possible, to reduce the number of needed glyphs, you want to merge where possible. So, to shape <strong>務</strong>, you want to shape <strong>⿰矛务</strong>, not <strong>⿰⿹予丿⿱夂力</strong>; even if this means that you need more &quot;radicals&quot;.</p>
<p>This is a broad overview; I am working on a proof of concept, and also font standards which would make things easier for font authors. I also wrote a paper on the subject for the Text Shaping Working Group:</p>
<p><a href="https://docs.google.com/document/d/1NYKsNOjkOamIRdfMReZfxAhtOUMiHNm_TIidb0Daob4" rel="nofollow noreferrer">https://docs.google.com/document/d/1NYKsNOjkOamIRdfMReZfxAhtOUMiHNm_TIidb0Daob4</a></p>

CC BY-SA 4.0
2020-08-20T21:12:53.743Z
2020-08-20T21:53:06.800Z
2020-08-20T21:53:06.800Z
Fredrick Brennan
<p>Let’s turn this into an answer.</p>

<ol>
<li><p>If you wish to create arbitrarily new characters, give GluphWiki.org a try. Make a version in their editor (not flawless, as you’ll have to physically stretch and resize components, but better than lots), save and then extract as one-glyph font. (The symbol will be at GETA MARK [U+3013].) Only watch out for their naming practices and be careful to keep to the national preferences. These glyphs look best with Hanazono fonts, which are basically pre-made from GlyphWiki.org, so try it on. Especially the Hanazono-AFDKO (Google it) versions, as they are well-versed in setting up the variants.</p></li>
<li><p>If, however, your wish is to recreate some characters really existing but not in Unicode, first scan BabelStone Han PUA font, it might be there. Works best with BabelStone Han (actually, is part of it), so you might want to install that. Note: only includes PRC forms.</p></li>
<li><p>The actual composer of IDS (for lost of well-known non-Unicodes) is the Hanazono Mincho I from the aforementioned AFDKO. Scan its proof (<a href="https://github.com/cjkvi/HanaMinAFDKO/releases/download/8.030/HanaMinI.proof.pdf" rel="nofollow noreferrer">https://github.com/cjkvi/HanaMinAFDKO/releases/download/8.030/HanaMinI.proof.pdf</a>) to learn which are supported. Note that the most well-popularized examples of non-Unicodes are sometimes even in mass-use fonts, such as ⿰氵恩 (only unencoded Korean Name) or ⿳雲⿲雲龍雲⿰龍龍 (taito) are in Source Han sans.</p></li>
</ol>

CC BY-SA 4.0
2019-08-22T16:26:09.233Z
I installed the BabelStone Han font but I copy the characters on my Word file and the font isn't there. Do you know why? Maybe it has another name? I already went through all the font list and didn't find it. =(
Enrico Brasil
CC BY-SA 4.0
2019-08-22T17:13:54.483Z
Font absolutely absent? Not even in Control Panel font collection? Probably deleting and installing again would work, or even clearing cache. Also, have you closed all Office apps after installing fonts?
Alexander Z.
CC BY-SA 4.0
2019-08-26T17:32:10.103Z
After rebooting the computer everything is OK. You're a lifesaver. Thank you!
Enrico Brasil
CC BY-SA 4.0
2019-08-09T06:42:36.753Z
2019-08-09T06:42:36.753Z
Alexander Z.
<p>you can edit two like a picture and insert it in text</p>

CC BY-SA 4.0
2019-08-07T03:05:19.730Z
2019-08-07T03:05:19.730Z
cauckf
<p>Are there any fonts that try to compose <a href="https://en.wikipedia.org/wiki/Ideographic_Description_Characters_(Unicode_block)" rel="nofollow noreferrer">Unicode Ideographic Description Characters</a> into one character? E.g., ⿰女子 would look like 好. I know the Wikipedia page says "rendering systems are not intended to automatically compose the pieces into a complete ideograph", but this could be helpful for scripts like Sawndip that aren't fully encoded in Unicode. Composing characters overlaid with ⿻ would probably be impossible, but it seems that it shouldn't be hard to at least try to compose characters that are put together just side-by-side with ⿰ ⿱ ⿲ ⿳, especially since something like this is <a href="https://docs.microsoft.com/en-us/typography/script-development/hangul" rel="nofollow noreferrer">already done for Old Hangul syllable blocks</a>.</p>

CC BY-SA 4.0
2019-08-07T03:09:15.617Z
Check out recursive radical packing language https://github.com/LingDong-/rrpl
dROOOze
CC BY-SA 4.0
2019-08-07T03:23:34.483Z
Oh, if you’re looking for a database of already composed Sawndip characters, or if you’re looking to have a freely available interface to make your own characters, GlyphWiki has both. It’s a bit hard to navigate though..
dROOOze
CC BY-SA 4.0
2019-08-07T03:50:08.337Z
I'm actually more interested in making my own characters than in Sawndip, but both of those look pretty good!
mic
CC BY-SA 4.0
2019-08-07T04:02:47.710Z
Not an answers, but your question totally reminds me of this: http://blog.otoro.net/2015/12/28/recurrent-net-dreams-up-fake-chinese-characters-in-vector-format-with-tensorflow/ & also this linked in the article above: http://otoro.net/kanji-rnn/
Mou某
CC BY-SA 4.0
2019-08-07T07:30:31.587Z
What you want can easily be handled case-by-case with GlyphWiki.org composition and then getting one-glyph fonts, but check up Hanazono Mincho I at https://github.com/cjkvi/HanaMinAFDKO . Apparently, it assembles a lot of IDS outside unicode.
Alexander Z.
<characters><software><fonts>
Fonts that compose Ideographic Description Characters into one character
# Fonts that compose Ideographic Description Characters into one character

(Asked by: username_0 on 2019-08-07)

Are there any fonts that try to compose [Unicode Ideographic Description Characters](https://en.wikipedia.org/wiki/Ideographic_Description_Characters_(Unicode_block)) into one character? E.g., ⿰女子 would look like 好. I know the Wikipedia page says "rendering systems are not intended to automatically compose the pieces into a complete ideograph", but this could be helpful for scripts like Sawndip that aren't fully encoded in Unicode. Composing characters overlaid with ⿻ would probably be impossible, but it seems that it shouldn't be hard to at least try to compose characters that are put together just side-by-side with ⿰ ⿱ ⿲ ⿳, especially since something like this is [already done for Old Hangul syllable blocks](https://docs.microsoft.com/en-us/typography/script-development/hangul).

**Tags:** characters, software, fonts

> **Comments:**
> **username_1**: Check out recursive radical packing language https://github.com/LingDong-/rrpl  
> **username_1**: Oh, if you’re looking for a database of already composed Sawndip characters, or if you’re looking to have a freely available interface to make your own characters, GlyphWiki has both. It’s a bit hard to navigate though..  
> **username_0**: I'm actually more interested in making my own characters than in Sawndip, but both of those look pretty good!  
> **username_2**: Not an answers, but your question totally reminds me of this: http://blog.otoro.net/2015/12/28/recurrent-net-dreams-up-fake-chinese-characters-in-vector-format-with-tensorflow/ & also this linked in the article above: http://otoro.net/kanji-rnn/  
> **username_3**: What you want can easily be handled case-by-case with GlyphWiki.org composition and then getting one-glyph fonts, but check up Hanazono Mincho I at https://github.com/cjkvi/HanaMinAFDKO . Apparently, it assembles a lot of IDS outside unicode.  

---

## 3 answers

### Answer by username_4 on 2020-08-20. Score: 2

The question you are asking is basically, "how do I shape ideographic description sequences (IDS's)"? Text shaping is how the Arabic word **خ‌ط‌ ‌ا‌ل‌ع‌ا‌ئ‌ل‌ة** becomes **خط العائلة**.

It is technically possible. I am working on a proof-of-concept that can shape any IDS with a recursion depth of 2 or less. The recursion depth is needed due to limits of the number of glyphs possible in a SFNT-based font.

An SFNT-based font can contain 65535 glyphs. There are 26 presentation forms of a radical shaped in an IDS:

1. 口\_Plain.
2. ⿰: 口\_Left; 口\_Right.
3. ⿱: 口\_Above; 口\_Below.
4. ⿲: 口\_LeftOf3; 口\_HMiddleOf3; 口\_RightOf3.
5. ⿳: 口\_TopOf3; 口\_VMiddleOf3; 口\_BottomOf3.
6. ⿴: 口\_Surrounding; 口\_Surrounded.
7. ⿵: 口\_SurroundingFromAbove; 口\_SurroundedFromAbove.
8. ⿶: 口\_SurroundingFromBelow; 口\_SurroundedFromBelow.
9. ⿷: 口\_SurroundingFromLeft; 口\_SurroundedFromLeft.
10. ⿸: 口\_SurroundingFromUpperLeft; 口\_SurroundedFromUpperLeft.
11. ⿹: 口\_SurroundingFromUpperRight; 口\_SurroundedFromUpperRight.
12. ⿺: 口\_SurroundingFromLowerLeft; 口\_SurroundedFromLowerLeft.
13. ⿺: 口\_OverlaidA; 口\_OverlaidB.

If you take the 216 radicals and draw them in all 26 presentation forms, you have 5,616 glyphs. (You can prune the list some by remembering that not all radicals make sense in all presentation forms; for example, **辶** can never be Surrounding or Overlaid.)

You can then use contextual alternates ([GSUB](https://docs.microsoft.com/en-us/typography/opentype/spec/gsub)) and contextual substitution ([GPOS](https://docs.microsoft.com/en-us/typography/opentype/spec/gpos)) to begin shaping. Wherever possible, to reduce the number of needed glyphs, you want to merge where possible. So, to shape **務**, you want to shape **⿰矛务**, not **⿰⿹予丿⿱夂力**; even if this means that you need more "radicals".

This is a broad overview; I am working on a proof of concept, and also font standards which would make things easier for font authors. I also wrote a paper on the subject for the Text Shaping Working Group:

<https://docs.google.com/document/d/1NYKsNOjkOamIRdfMReZfxAhtOUMiHNm_TIidb0Daob4>


---

### Answer by username_3 on 2019-08-09. Score: 1

Let’s turn this into an answer.

1. If you wish to create arbitrarily new characters, give GluphWiki.org a try. Make a version in their editor (not flawless, as you’ll have to physically stretch and resize components, but better than lots), save and then extract as one-glyph font. (The symbol will be at GETA MARK [U+3013].) Only watch out for their naming practices and be careful to keep to the national preferences. These glyphs look best with Hanazono fonts, which are basically pre-made from GlyphWiki.org, so try it on. Especially the Hanazono-AFDKO (Google it) versions, as they are well-versed in setting up the variants.
2. If, however, your wish is to recreate some characters really existing but not in Unicode, first scan BabelStone Han PUA font, it might be there. Works best with BabelStone Han (actually, is part of it), so you might want to install that. Note: only includes PRC forms.
3. The actual composer of IDS (for lost of well-known non-Unicodes) is the Hanazono Mincho I from the aforementioned AFDKO. Scan its proof (<https://github.com/cjkvi/HanaMinAFDKO/releases/download/8.030/HanaMinI.proof.pdf>) to learn which are supported. Note that the most well-popularized examples of non-Unicodes are sometimes even in mass-use fonts, such as ⿰氵恩 (only unencoded Korean Name) or ⿳雲⿲雲龍雲⿰龍龍 (taito) are in Source Han sans.

> **Comments:**
> **username_5**: I installed the BabelStone Han font but I copy the characters on my Word file and the font isn't there. Do you know why? Maybe it has another name? I already went through all the font list and didn't find it. =(  
> **username_3**: Font absolutely absent? Not even in Control Panel font collection? Probably deleting and installing again would work, or even clearing cache. Also, have you closed all Office apps after installing fonts?  
> **username_5**: After rebooting the computer everything is OK. You're a lifesaver. Thank you!  

---

### Answer by username_6 on 2019-08-07. Score: -2

you can edit two like a picture and insert it in text


---

