Jump to content

Zero-width non-joiner

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Yobot (talk | contribs) at 22:29, 14 January 2021 (References after punctuation per WP:REFPUNCT, WP:CITEFOOT, WP:PAIC + other fixes). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

ISO keyboard symbol for ZWNJ

The zero-width non-joiner (ZWNJ) is a non-printing character used in the computerization of writing systems that make use of ligatures. When placed between two characters that would otherwise be connected into a ligature, a ZWNJ causes them to be printed in their final and initial forms, respectively. This is also an effect of a space character, but a ZWNJ is used when it is desirable to keep the words closer together or to connect a word with its morpheme.

The ZWNJ is encoded in Unicode as U+200C ZERO WIDTH NON-JOINER (‌).

Use of ZWNJ and unit separator for correct typography

In certain languages, the ZWNJ is necessary for unambiguously specifying the correct typographic form of a character sequence.

The ASCII control code unit separator was formerly used.[dubiousdiscuss]

Correct (with ZWNJ) Incorrect Meaning
Display Picture Code Display Picture Code
می‌خواهم می‌خواهم

(rendered from right to left):
می‌خواهم
میخواهم میخواهم Persian 'I want to'
הֱ‌ֽיֹות הֱ‌ֽיֹות

(rendered from right to left):
הֱ‌ֽיֹות
הֱֽיֹות הֱֽיֹות Old Hebrew 'be'
Auf‌lage Auf‌lage Auflage Auflage German 'edition' (compound of "auf"+"Lage")
Brot‌zeit Brot‌zeit Brotzeit Brotzeit German (regional) '(kind of) snack'
(compound noun "Brot"+"Zeit" = 'bread time'),
shown in Fraktur
deaf‌ly deaf‌ly deafly deafly Not a compound of "dea"+"fly", but the adverb of "deaf"
श्रीमान्‌को श्रीमान्‌को श्रीमान्को श्रीमान्को In Nepali "of husband" or "of respected person" according as what "श्रीमान्" is used to represent (husband or respected person).
র‌্যাঁদা Rendered image of র‌্যাঁদা র‌্যাঁদা র্যাঁদা র্যাঁদা Bengali word for a carpenter's plane.

The picture shows how the code looks when it is rendered correctly, and in every row the correct and incorrect pictures should be different. If the correct display and the incorrect one look the same to you, or if either of them is significantly different from the corresponding picture, your system is not displaying the Unicode correctly.

In this Biblical Hebrew example, the placement of the meteg to the left of the segol is correct, which has a shva sign written as two vertical dots to denote short vowel. If a meteg were placed to the left of shva, it would be erroneous. In Modern Hebrew, there is no reason to use the meteg for spoken language, so it is rarely used in Modern Hebrew typesetting.

In German typography, ligatures may not cross the constituent boundaries within compounds. Thus, in the first German example, the prefix Auf- is separated from the rest of the word to prohibit the ligature fl. Similarly, in English, some argue ligatures should not cross morpheme boundaries.[1] For example, in some words 'fly' and 'fish' are morphemes but in others they're not; therefore words like 'deaf‌ly' and 'self‌ish' should not have ligatures (respectively of fl and fi) while 'dayfly' and 'catfish' should have them.

Persian uses this character extensively for certain prefixes, suffixes and compound words.[2] It is necessary for disambiguating compounds from non-compound words, which use a full space.

Use of ZWNJ to display alternate forms

Use of ZWNJ and ZWJ to select alternate forms of Devanagari, Tamil, Kannada, Sinhala and emoji.

In Indic scripts, insertion of a ZWNJ after a consonant either with a halant or before a dependent vowel prevents the characters from being joined properly:[3]

In Devanagari, the characters क् and typically combine to form क्ष, but when a ZWNJ is inserted between them, क्‌ष (code: क्‌ष) is seen instead.

In Kannada, the characters ನ್ and ನ combine to form ನ್ನ, but when a ZWNJ is inserted between them, ನ್‌ನ is displayed. That style is typically used to write non-Kannada words in Kannada script: "Facebook" is written as ಫೇಸ್‌ಬುಕ್, though it can be written as ಫೇಸ್ಬುಕ್. ರಾಜ್‌ಕುಮಾರ್ and ರಾಮ್‌ಗೊಪಾಲ್ are examples of other proper nouns that need ZWNJ.

In Bengali, when the Bengali letter য occurs at the end of a consonant cluster—i.e., য preceded by a ◌্ (hôsôntô)—it appears in a special shape, Rendering of Bengali Ja-phala, known as the য-ফলা (ja-phala), such as in ক্য (ক ্ য). However, when the Bengali letter র occurs at the beginning of a consonant cluster—i.e., র succeeded by a hôsôntô—it appears in a special shape, known as the রেফ (reph). Thus, the sequence র ্ য is rendered by default as র্য. When the য-ফলা shape needs to be retained rather than the রেফ shape, the ZWNJ is inserted right after র, i.e., র‌্য to render র‌্য.[4] র‌্য is commonly used for loanwords from English such as র‍্যান্ডম (random). Words like উদ্‌ঘাটন (code: উদ্‌ঘাটন) where the hôsôntô needs to be displayed explicitly also require ZWNJ inserted after the hôsôntô.

Symbol

German T2 keyboard (detail), showing the ZWNJ symbol on the "." key

The symbol to be used on keyboards which enable the input of the ZWNJ directly is standardized in Amendment 1 (2012) of ISO/IEC 9995-7:2009 "Information technology – Keyboard layouts for text and office systems – Symbols used to represent functions" as symbol number 81, and in IEC 60417 "Graphical Symbols for use on Equipment" as symbol no. IEC 60417-6177-2.

See also

References

  1. ^ "When should I not use a ligature in English typesetting?". english.stackexchange.org.[better source needed]
  2. ^ "The Zero-Width-Non-Joiner". nmelrc.org. Archived from the original on July 8, 2012.
  3. ^ "FAQ - Indic Scripts and Languages". www.unicode.org. Retrieved 2020-03-15.
  4. ^ "FAQ - Bengali (Bangla)". www.unicode.org. Retrieved 2020-03-15.