|Editor||Koji Ishii 石井宏治 (firstname.lastname@example.org)|
|Latest Proposed Update||http://www.unicode.org/reports/tr50/proposed.html|
The Unicode code charts generally show characters oriented for horizontal presentation. However, some of the glyphs are actually oriented for vertical presentation. A few characters change shape or orientation when the text is rotated from horizontal to vertical.
When text is presented, there are various conventions for the orientation of the characters with respect to the line. In most cases, characters are oriented in an upright manner similar to their presentation in the Unicode code charts. In a few cases, when presented in vertical lines, the characters will appear rotated or transformed in various ways. For example, in East Asia, Han ideographs, Kana syllables, Hangul syllables, and Latin letters in acronyms are upright, while words and sentences in the Latin script are typically sideways. This report describes a Unicode character property which can serve as a stable default orientation of characters for reliable document interchange.
A Unicode Technical Report (UTR) contains informative material. Conformance to the Unicode Standard does not imply conformance to any UTR. Other specifications, however, are free to make normative references to a UTR.
Please submit corrigenda and other comments with the online reporting form [Feedback]. Related information that is useful in understanding this document is found in References. For the latest version of the Unicode Standard see [Unicode]. For a list of current Unicode Technical Reports see [Reports]. For more information about versions of the Unicode Standard, see [Versions].
When text is displayed in vertical lines, there are various conventions for the orientation of the characters with respect to the line. In East Asia, Han ideographs, Kana syllables, and Hangul syllables, along with Latin letters of acronyms, remain upright, meaning that they appear with the same orientation as in the code charts, but words and sentences that are composed of characters of the Latin script are typically oriented sideways, as can be seen in figure 1.
In many parts of the world, most characters are upright, as can be seen in figure 2.
Most languages and scripts are written horizontally and vertical presentation is a special case, usually used for short runs of text (as in figure 2). Some languages, however, have publishing traditions that provide for long-format vertical text presentation, notably East Asian languages such as Japanese. In those languages, the orientation in which characters are laid out can vary, depending on the scripts, the style, and sometimes the context. The preferred or desired orientation may also change over time.
While the choice of orientation for a character can vary across documents, it is important that the choice made by an author for a specific document be clearly established, so that a rendering system can display what the author intended. It is also important that this choice be established independently of the font resources, as the rendering systems may have to use other fonts than those intended or specified in the document. Finally, the expression of the author’s choice should be relatively concise, to facilitate document authoring and minimize document size.
This report describes a Unicode character property which can serve as a stable default character orientation for the purpose of reliable document interchange.
For the purpose of reliable document interchange, this property defines an unambiguous default value, so that implementations could reliably render a character stream based solely on the property values, without depending on other information such as provided in the tables of the selected font.
The intent is that document formats should offer to the author the possibility of specifying the desired orientation of a given character (either all occurrences or a particular occurrence), and that in the absence of an explicit specification, the orientation is implicitly that defined by the property presented in this report.
In plain text, which by definition does not allow the recording of any data beyond the characters, the orientations are by necessity those specified by the property.
The actual choice for the property values should result in a reasonable or legible default, but it may not be publishing-material quality, and it may not be a good choice if used in a specific style or context.
The property values are chosen first to match existing practice in Japanese context in Japan and then in other East Asian contexts in their respective environments. For characters that are not generally used in such environments, similarity to existing characters has been taken into consideration. Commonly used characters of Latin and other scripts that appear in Japanese and other East Asian environments are also taken into account, but with the lower priority.
The scope of the property is limited by the scope of Unicode. For example, Unicode does not directly support the representation of texts and inscriptions using Egyptian Hieroglyphs. Instead, Unicode provides characters intended for use when writing about such texts or inscriptions, or for use in conjunction with a markup system such as the Manuel de Codage. While the property values are defined for Egyptian Hieroglyphs, they are meaningful only for occurrences of these characters in discursive texts; when the characters are used with markup, the markup ultimately controls the orientation. See [Unicode], Ssection 11.414.8 for a more complete discussion of the scope of Egyptian Hieroglyph characters.
The property defined in this report is informative. The intent of this report is to provide, in the absence of other information, a reasonable way to determine the correct orientation of characters, but this behavior can be overridden by a higher-level protocol, such as through markup or by the preferences of a layout application. This default determination is defined in the accompanying data file, but in no way implies that the character is used only in that orientation.
For more information on the conformance implications, see [Unicode], Ssection 3.5, Properties, in particular the definition (D35) of an informative property.
Note that the property is not part of the Unicode Character Database [UCD].
The possible property values are given in table 1.
|U||Characters which are displayed upright, with the same orientation that appears in the code charts.|
|R||Characters which are displayed sideways, rotated 90 degrees clockwise compared to the code charts.|
|Tu||Characters which are not just upright or sideways, but generally require a different glyph than in the code charts when used in vertical texts. In addition, as a fallback, the character can be displayed with the code chart glyph upright.|
|Tr||Same as Tu except that, as a fallback, the character can be displayed with the code chart glyph rotated 90 degrees clockwise.|
Note that the orientation is described with respect to the appearance in the code charts.
As in all matters of typography, the interesting unit of text is not the character, but a grapheme cluster: it does not make sense to use a base character upright and a combining mark attached to it sideways. Implementations should apply the orientation to each grapheme cluster.
A possible choice for the notion of grapheme cluster is either that of legacy grapheme cluster or that of extended grapheme cluster, as defined in [UAX29].
The orientation for a grapheme cluster as a whole is then determined by taking the orientation of the first character in the cluster, with the following exception:
If the cluster contains an enclosing combining mark (general category Me), then the whole cluster has the Vertical_Orientation value U.
The Unicode code charts generally show characters in the orientation they take when used in horizontal lines. However, prior to forthcoming Unicode 7.0, there wereare a few exceptions, mostly for characters or scripts which are normally written in vertical lines; in those cases, the code charts used to show the characters in the same orientation as in vertical lines. Furthermore, such characters are often rotated when displayed in horizontal lines; figure 3 shows an example of Mongolian text in horizontal lines in which the Mongolian characters are rotated 90 degrees counterclockwise with respect to the code charts prior to Unicode 7.0.
The Unicode 7.0 code charts changedwill change the orientation of characters for Mongolian and Phags-pa by rotating counterclockwise so that they match the orientation in horizontal lines. This change makes the code charts more consistent with other scripts in terms of the orientation of characters. It also aligns the code charts with many recent rendering systems such as OpenType, and therefore it is expected to make implementations of the property easier. However, implementations should be aware that underlying rendering systems may not have exactly the same orientation of characters as the code charts.
While this property defines only default orientations compared to the code charts, high-level protocols or applications could combine information provided in a font's tables with the property values to more reliably calculate in which orientation they should render such glyphs, in order to achieve the desired visual result.
To facilitate tailorings, this report identifies sets of characters which behave similarly, and for which it can useful to tailor the orientation as a group.
This set contains brackets, which while they appear rotated, are commonly implemented as if they were transformed.
This set contains arrows.
Table 4 provides representative glyphs for the horizontal and vertical appearance of characters with the property value Tu and Tr.
The vertical glyphs that are shown in the table are exemplary, and their presence does not imply that font implementations should necessarily support them. Font developers should instead research the vertical glyph conventions for the intended regions to determine whether a vertical glyph is necessary for a particular character, and what the appropriate vertical glyph should be.
|U+2329 LEFT-POINTING ANGLE BRACKET|
|U+232A RIGHT-POINTING ANGLE BRACKET|
|U+3001 IDEOGRAPHIC COMMA|
|U+3002 IDEOGRAPHIC FULL STOP|
|U+3008 LEFT ANGLE BRACKET|
|U+3009 RIGHT ANGLE BRACKET|
|U+300A LEFT DOUBLE ANGLE BRACKET|
|U+300B RIGHT DOUBLE ANGLE BRACKET|
|U+300C LEFT CORNER BRACKET|
|U+300D RIGHT CORNER BRACKET|
|U+300E LEFT WHITE CORNER BRACKET|
|U+300F RIGHT WHITE CORNER BRACKET|
|U+3010 LEFT BLACK LENTICULAR BRACKET|
|U+3011 RIGHT BLACK LENTICULAR BRACKET|
|U+3014 LEFT TORTOISE SHELL BRACKET|
|U+3015 RIGHT TORTOISE SHELL BRACKET|
|U+3016 LEFT WHITE LENTICULAR BRACKET|
|U+3017 RIGHT WHITE LENTICULAR BRACKET|
|U+3018 LEFT WHITE TORTOISE SHELL BRACKET|
|U+3019 RIGHT WHITE TORTOISE SHELL BRACKET|
|U+301A LEFT WHITE SQUARE BRACKET|
|U+301B RIGHT WHITE SQUARE BRACKET|
|U+301C WAVE DASH|
|U+301D REVERSED DOUBLE PRIME QUOTATION MARK|
|U+301E DOUBLE PRIME QUOTATION MARK|
|U+301F LOW DOUBLE PRIME QUOTATION MARK|
|U+3030 WAVY DASH|
|U+3041 HIRAGANA LETTER SMALL A|
|U+3043 HIRAGANA LETTER SMALL I|
|U+3045 HIRAGANA LETTER SMALL U|
|U+3047 HIRAGANA LETTER SMALL E|
|U+3049 HIRAGANA LETTER SMALL O|
|U+3063 HIRAGANA LETTER SMALL TU|
|U+3083 HIRAGANA LETTER SMALL YA|
|U+3085 HIRAGANA LETTER SMALL YU|
|U+3087 HIRAGANA LETTER SMALL YO|
|U+308E HIRAGANA LETTER SMALL WA|
|U+3095 HIRAGANA LETTER SMALL KA|
|U+3096 HIRAGANA LETTER SMALL KE|
|U+309B KATAKANA-HIRAGANA VOICED SOUND MARK|
|U+309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK|
|U+30A0 KATAKANA-HIRAGANA DOUBLE HYPHEN|
|U+30A1 KATAKANA LETTER SMALL A|
|U+30A3 KATAKANA LETTER SMALL I|
|U+30A5 KATAKANA LETTER SMALL U|
|U+30A7 KATAKANA LETTER SMALL E|
|U+30A9 KATAKANA LETTER SMALL O|
|U+30C3 KATAKANA LETTER SMALL TU|
|U+30E3 KATAKANA LETTER SMALL YA|
|U+30E5 KATAKANA LETTER SMALL YU|
|U+30E7 KATAKANA LETTER SMALL YO|
|U+30EE KATAKANA LETTER SMALL WA|
|U+30F5 KATAKANA LETTER SMALL KA|
|U+30F6 KATAKANA LETTER SMALL KE|
|U+30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK|
|U+3127 BOPOMOFO LETTER I|
|U+31F0 KATAKANA LETTER SMALL KU|
|U+31F1 KATAKANA LETTER SMALL SI|
|U+31F2 KATAKANA LETTER SMALL SU|
|U+31F3 KATAKANA LETTER SMALL TO|
|U+31F4 KATAKANA LETTER SMALL NU|
|U+31F5 KATAKANA LETTER SMALL HA|
|U+31F6 KATAKANA LETTER SMALL HI|
|U+31F7 KATAKANA LETTER SMALL HU|
|U+31F8 KATAKANA LETTER SMALL HE|
|U+31F9 KATAKANA LETTER SMALL HO|
|U+31FA KATAKANA LETTER SMALL MU|
|U+31FB KATAKANA LETTER SMALL RA|
|U+31FC KATAKANA LETTER SMALL RI|
|U+31FD KATAKANA LETTER SMALL RU|
|U+31FE KATAKANA LETTER SMALL RE|
|U+31FF KATAKANA LETTER SMALL RO|
|U+3300 SQUARE APAATO|
|U+3301 SQUARE ARUHUA|
|U+3302 SQUARE ANPEA|
|U+3303 SQUARE AARU|
|U+3304 SQUARE ININGU|
|U+3305 SQUARE INTI|
|U+3306 SQUARE UON|
|U+3307 SQUARE ESUKUUDO|
|U+3308 SQUARE EEKAA|
|U+3309 SQUARE ONSU|
|U+330A SQUARE OOMU|
|U+330B SQUARE KAIRI|
|U+330C SQUARE KARATTO|
|U+330D SQUARE KARORII|
|U+330E SQUARE GARON|
|U+330F SQUARE GANMA|
|U+3310 SQUARE GIGA|
|U+3311 SQUARE GINII|
|U+3312 SQUARE KYURII|
|U+3313 SQUARE GIRUDAA|
|U+3314 SQUARE KIRO|
|U+3315 SQUARE KIROGURAMU|
|U+3316 SQUARE KIROMEETORU|
|U+3317 SQUARE KIROWATTO|
|U+3318 SQUARE GURAMU|
|U+3319 SQUARE GURAMUTON|
|U+331A SQUARE KURUZEIRO|
|U+331B SQUARE KUROONE|
|U+331C SQUARE KEESU|
|U+331D SQUARE KORUNA|
|U+331E SQUARE KOOPO|
|U+331F SQUARE SAIKURU|
|U+3320 SQUARE SANTIIMU|
|U+3321 SQUARE SIRINGU|
|U+3322 SQUARE SENTI|
|U+3323 SQUARE SENTO|
|U+3324 SQUARE DAASU|
|U+3325 SQUARE DESI|
|U+3326 SQUARE DORU|
|U+3327 SQUARE TON|
|U+3328 SQUARE NANO|
|U+3329 SQUARE NOTTO|
|U+332A SQUARE HAITU|
|U+332B SQUARE PAASENTO|
|U+332C SQUARE PAATU|
|U+332D SQUARE BAARERU|
|U+332E SQUARE PIASUTORU|
|U+332F SQUARE PIKURU|
|U+3330 SQUARE PIKO|
|U+3331 SQUARE BIRU|
|U+3332 SQUARE HUARADDO|
|U+3333 SQUARE HUIITO|
|U+3334 SQUARE BUSSYERU|
|U+3335 SQUARE HURAN|
|U+3336 SQUARE HEKUTAARU|
|U+3337 SQUARE PESO|
|U+3338 SQUARE PENIHI|
|U+3339 SQUARE HERUTU|
|U+333A SQUARE PENSU|
|U+333B SQUARE PEEZI|
|U+333C SQUARE BEETA|
|U+333D SQUARE POINTO|
|U+333E SQUARE BORUTO|
|U+333F SQUARE HON|
|U+3340 SQUARE PONDO|
|U+3341 SQUARE HOORU|
|U+3342 SQUARE HOON|
|U+3343 SQUARE MAIKURO|
|U+3344 SQUARE MAIRU|
|U+3345 SQUARE MAHHA|
|U+3346 SQUARE MARUKU|
|U+3347 SQUARE MANSYON|
|U+3348 SQUARE MIKURON|
|U+3349 SQUARE MIRI|
|U+334A SQUARE MIRIBAARU|
|U+334B SQUARE MEGA|
|U+334C SQUARE MEGATON|
|U+334D SQUARE MEETORU|
|U+334E SQUARE YAADO|
|U+334F SQUARE YAARU|
|U+3350 SQUARE YUAN|
|U+3351 SQUARE RITTORU|
|U+3352 SQUARE RIRA|
|U+3353 SQUARE RUPII|
|U+3354 SQUARE RUUBURU|
|U+3355 SQUARE REMU|
|U+3356 SQUARE RENTOGEN|
|U+3357 SQUARE WATTO|
|U+337B SQUARE ERA NAME HEISEI|
|U+337C SQUARE ERA NAME SYOUWA|
|U+337D SQUARE ERA NAME TAISYOU|
|U+337E SQUARE ERA NAME MEIZI|
|U+337F SQUARE CORPORATION|
|U+FE50 SMALL COMMA|
|U+FE51 SMALL IDEOGRAPHIC COMMA|
|U+FE52 SMALL FULL STOP|
|U+FE59 SMALL LEFT PARENTHESIS|
|U+FE5A SMALL RIGHT PARENTHESIS|
|U+FE5B SMALL LEFT CURLY BRACKET|
|U+FE5C SMALL RIGHT CURLY BRACKET|
|U+FE5D SMALL LEFT TORTOISE SHELL BRACKET|
|U+FE5E SMALL RIGHT TORTOISE SHELL BRACKET|
|U+FF01 FULLWIDTH EXCLAMATION MARK|
|U+FF08 FULLWIDTH LEFT PARENTHESIS|
|U+FF09 FULLWIDTH RIGHT PARENTHESIS|
|U+FF0C FULLWIDTH COMMA|
|U+FF0E FULLWIDTH FULL STOP|
|U+FF1A FULLWIDTH COLON|
|U+FF1B FULLWIDTH SEMICOLON|
|U+FF1F FULLWIDTH QUESTION MARK|
|U+FF3B FULLWIDTH LEFT SQUARE BRACKET|
|U+FF3D FULLWIDTH RIGHT SQUARE BRACKET|
|U+FF3F FULLWIDTH LOW LINE|
|U+FF5B FULLWIDTH LEFT CURLY BRACKET|
|U+FF5C FULLWIDTH VERTICAL LINE|
|U+FF5D FULLWIDTH RIGHT CURLY BRACKET|
|U+FF5E FULLWIDTH TILDE|
|U+FF5F FULLWIDTH LEFT WHITE PARENTHESIS|
|U+FF60 FULLWIDTH RIGHT WHITE PARENTHESIS|
|U+FFE3 FULLWIDTH MACRON|
|U+1F200 SQUARE HIRAGANA HOKA|
|U+1F201 SQUARED KATAKANA KOKO|
The data file is in versioned directories under [Data50]. The character repertoire of this revision is the repertoire of Unicode Version 7.0.
Thanks to the original editor Eric Muller, and reviewers: Julie Allen, Van Anderson, John Cowan, John Daggett, Mark Davis, Martin Dürst, Elika J. Etemad, Michael Everson, Asmus Freytag, Laurențiu Iancu, Soji Ikeda, Norikazu Ishizu, Nozomu Katō, Yasuo Kida, Ken Lunde, Nat McCully, Shinyu Murakami, Addison Phillips, Roozbeh Pournader, Dwayne Robinson, Kyoko Sato, Hiroshi Takenaka, Ken Whistler, Taro Yamamoto, the W3C CSS Working group, the W3C I18N Interest group, the W3C Internationalization Working Group.
|[Errata]||Updates and Errata
For reporting errors and requesting information online.
|[JLREQ]||Requirements for Japanese Text layout, W3C Working Group Note|
|[Reports]||Unicode Technical Reports
For information on the status and development process for technical reports, and for a list of technical reports.
|[UAX29]||UAX #29: Unicode Text Segmentation
|[UCD]||Unicode Character Database
For detailed documentation about the Unicode Character Database, see Unicode Standard Annex #44: Unicode Character Database
|[Unicode]||The Unicode Standard, Version 7.0.06.2.0,
defined by: The Unicode Standard, Version 6.2.0
(Mountain View, CA: The Unicode Consortium,
20142. ISBN 978-1-936213-09-2978-1-936213-07-8)
|[Versions]||Versions of the Unicode Standard
For details on the precise contents of each version of the Unicode Standard, and how to cite them.
This section indicates the changes introduced by each revision.
Updated for the character repertoire of Unicode 7.0.
Changes made to designated code points as of Unicode 6.3:
Characters moved from U to R: 2066..2069, FFFFE..FFFFF, 10FFFE..10FFFF.
Characters moved from U to Tr, and added to Table 4: 3127.
Changes made for assigned characters and allocated blocks in Unicode 7.0:
Characters moved from U to R: 2B4D..2B4F, 2B5A..2BB7.
Characters moved from R to U: 11580..115FF, 1F650..1F67F, 1F780..1F7FF.
Characters added to the arrows tailoring set: 2B4D..2B4F, 2B5A..2BB7, assigned characters in 1F800..1F8FF (1F800..1F80B, 1F810..1F847, 1F850..1F859, 1F860..1F887, 1F890..1F8AD).
First approved published version.
The property value Tx was removed because it was no longer used.
Characters moved from U to R: 1800..18AF (Mongolian), A840..A87F (Phags-Pa).
Characters moved from U to Tu: FF1F.
Characters moved from Tu to U: 309D..309E.
Changes to Table 4:
Removed erroneously included FF61..FF70.
Added a variant form to 3001..3002, 337B..337E, 337F, FE50..FE52, FF01, FF0C, FF0E, FF1A, and FF1F.
Added two variant forms to FF1B.
Table 4 is updated.
Characters moved from U to R: 2126, 212A, 212B.
Characters moved from R to Tr: 2329, 232A.
The property renamed back to vo.
T renamed to Tx.
Clarified priorities of contexts and environments.
Overview and Scope edited to clarify what tailoring is better.
Characters moved from U/T to R: 00B6, 02E5..02E9, 2018..2019, 203D, 2044, 2102, 210A..210E, 2110..2112, 2115, 2119..211D, 2124, 2128, 212C..212D, 212F..2131, 2133..2134, 2322..2323, 2329..232A, 23B4..23B6, 23BA..23BD, 23CE, 2423.
Characters moved from R to U: 00B1, 00D7, 00F7, 221E, 2234..2235, 10980..1099F.
Characters that were undefined and are defined as R: E0000..E007F
Characters that were undefined and are defined as U: FFFC, F0000..10FFFF
The scope is clarified to serve as a stable default for reliable document interchange.
The svo property is removed because supporting multiple styles and scripts is out of scope for document interchange.
The ho property is removed because it is out of scope for document interchange. Refer to ?? for more details.
The 'L' value is removed from table 1.
Data updated. No change to the text.
TR renamed to include “Horizontal”.
New property for horizontal text. The current assignment is L for Mongolian and Phags-pa, U for all the other characters.
Proposal B has been accepted; removed proposal A.
Characters moved from U or R to T: 3008..3011 3014..301B 301D..301F 309B..309E 20A0 FF01 FF08..FF09 FF0C..FF0E FFaA..FF1E FF3B FF3F FF5b..FF60 FF62..FF63 FF70 FFE3, on the basis of small shift in the box, similar to small kana.
T moved to Tr or Tu, following MS proposal. The only T characters remaining are 2018 and 2019, which are R/R in MS proposal.
Arrow set introduced, as in MS proposal.
Yi blocks changed from svo/mvo R to U.
UCAS changed from mvo R to U, except for U+1400 ᐀ CANADIAN SYLLABICS HYPHEN.
Properties renamed to Stacked Vertical Orientation (previously Default Vertical Orientation) and Mixed Vertical Orientation (previously East Asian Vertical Orientation)
Introduced sets of characters for tailoring.
Property value S renamed to R.
Property value Sb merged with R; set created for brackets.
Mongolian and Egyptian Hieroglyphs changed to U.
Implementation of the UTC decisions made during meeting #130, February 2012.
Removal of the East Asian Class property
East Asian Orientation renamed East Asian Vertical Orientation
New property, Default Vertical Orientation. The initial assignment is: T if EAVO=T, SB if EAVO=SB and the bracket is specific to CJK, S to align with CSS Sv value except for vertical presentation forms, Tibetan, Mongolian, sup/sub parens, sup punctuation, FD3E, FD3F, which remain U.
Clarification of the status of the properties (end of section 1)
Clarification of the handling of grapheme clusters
Removed the "comments" column in table 3.
Hangul characters: new class cl-19.4, hangul, orientation U
Yijing Hexagram symbols are now cl-19-3, symbols, orientation U.
Small forms variants are treated like their fullwidth r-cllkjljrparts.
Superscripts and subscript characters are now cl-27, western, orientation S
Small kana: orientation U; class split in cl-11.1, smallHiragana and cl-11.2, smallKatakana
U+3030 〰 WAVY DASH has orientation T.
The two alternatives for math, etc. are described.
First working draft.
Unicode and the Unicode logo are trademarks of Unicode, Inc., and are registered in some jurisdictions.