unicoderotationpositionmirroringcombiners

Are they unicode code points that enable geometric transformation such as rotation and mirroring?


Playing with Unicode to create symbols with the already large set of combiners and other modifiers allows to already go far.

Although, there are times where some arrows are only given in a single direction, or a diacritic is available only placed above, but not for example bellow on the left side.

So are they modifiers/combiners that allow to instruct such a composition?

For example, the combining rectangle allows to make something like . At least on the current terminal, it's rendered with a rectangle on the above right position compared to the a glyph to which it's combined, having it's longest side oriented horizontally. Now, what if :

Obviously the last point don't make much difference for a rectangle, but for asymmetric glyphs it would.


Solution

  • No, there is no such mechanism in Unicode. Different positional variants of the same diacritic are encoded as separate characters. For example, U+0307 COMBINING DOT ABOVE, U+0358 COMBINING DOT ABOVE RIGHT, and U+1DF8 COMBINING DOT ABOVE LEFT are all different codepoints. There is currently no way to represent, say, a generic combining dot below right in Unicode.

    Similarly, arbitrary Unicode characters cannot be mirrored or rotated. Where such transformations make a meaningful distinction (for example the pair “E” and “Ǝ”), they have once again been encoded atomicly.

    There are some very specific circumstances where such modifiers can be applied. In Sutton SignWriting, rotation is a productive feature. Rotating glyphs is necessary to display text correctly, so a number of rotation modifiers have been defined. For example, U+1D800 SIGNWRITING HAND-FIST INDEX points upwards in its base orientation (𝠀), but by appending U+1DAA1 SIGNWRITING ROTATION MODIFIER-2 you can make it point north-west instead (𝠀𝪡).

    For emoji only, Unicode also specifies a mechanism for defining whether a given glyph is supposed to face left or right. For example, “🚗‍⬅️” would be an automobile going to the left and “🚗‍➡️” would be an automobile going to the right. No commercially available fonts presently support this mechanism, however.