Zero-width non-joiner
The zero-width non-joiner (ZWNJ, Template:IPAc-en; rendered: Template:Not a typo; HTML entity: Template:Kbd or Template:Kbd) is a non-printing character used in the computerization of writing systems that make use of ligatures. For example, in writing systems that feature initial, medial and final letter-forms, such as the Persian alphabet, when a ZWNJ is placed between two characters that would otherwise be joined into a ligature, it instead prevents the ligature and 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 characters closer together or to connect a word with its morpheme.
The ZWNJ is encoded in Unicode as Template:Unichar.
Use of ZWNJ for correct typography
In certain languages, the ZWNJ is necessary for unambiguously specifying the correct typographic form of a character sequence.
| Correct (with ZWNJ) | Incorrect | Meaning | ||||
|---|---|---|---|---|---|---|
| Display | Picture | Code | Display | Picture | Code | |
| Template:Script/Arabic | File:Correct display of Persian with ZWNJ.svg | می‌خواهم(rendered from right to left): می‌خواهم |
Template:Script/Arabic | File:Incorrect display of Persian without ZWNJ.svg | میخواهم
|
Persian 'I want to' |
| Template:Script/Arabic | File:Correct display of Malay with ZWNJ.svg | ساءين‌س(rendered from right to left): ساءين‌س |
Template:Script/Arabic | File:Incorrect display of Malay without ZWNJ.svg | ساءينس
|
Malay 'science' |
| <templatestyles src="Script/styles_hebrew.css" />הֱֽיֹות | File:Correct Hebrew metag with hataf with ZWNJ.svg | הֱ‌ֽיֹות(rendered from right to left): הֱ‌ֽיֹות |
<templatestyles src="Script/styles_hebrew.css" />הֱֽיֹות | File:Incorrect Hebrew metag with hataf without ZWNJ.svg | הֱֽיֹות
|
Old Hebrew 'be' |
| Script error: No such module "Lang". | File:Correct display of German with ZWNJ.svg | Auf‌lage
|
Script error: No such module "Lang". | File:Incorrect display of German without ZWNJ.svg | Auflage
|
German 'edition' (compound of "Script error: No such module "Lang"."+"Script error: No such module "Lang".") |
| Template:Script | File:Correct display of Fraktur with ZWNJ.svg | Brot‌zeit
|
Template:Script | File:Incorrect display of Fraktur without ZWNJ.svg | Brotzeit
|
German (regional) '(kind of) snack' (compound noun "Script error: No such module "Lang"."+"Script error: No such module "Lang"." = 'bread time'), shown in Fraktur |
| deafly | File:Correct display of English word “deafly” with ZWNJ.svg | deaf‌ly
|
deafly | File:Incorrect display of English word “deafly” without ZWNJ.svg | deafly
|
Not a compound of "dea"+"fly", but the adverb of "deaf" |
| Script error: No such module "Lang". | श्रीमान्‌को
|
Script error: No such module "Lang". | श्रीमान्को
|
In Nepali "of husband" or "of respected person" according as what "श्रीमान्" is used to represent (husband or respected person). | ||
| Script error: No such module "Lang". | File:উদ্যাপন.png | উদ্‌যাপন
|
Script error: No such module "Lang". | File:উদ্যাপন.png | উদ্যাপন
|
Bengali meaning of celebration. |
| Script error: No such module "Lang". | अय्‌लाः
|
Script error: No such module "Lang". | अय्लाः
|
Wine in Nepalbhasa | ||
| Script error: No such module "Lang". | File:Hyderabad with ZWNJ in Telugu.png | హైద్‌రాబాదు
|
Script error: No such module "Lang". | హైద్రాబాదు
|
Hyderabad written in Telugu | |
The picture shows how the code looks when it is rendered correctly, and in every row the correct and incorrect pictures should be different. On a system which not configured to display the Unicode correctly, the correct display and the incorrect one may look the same, or either of them may be significantly different from the corresponding picture.
In this Biblical Hebrew example, the placement of the Script error: No such module "Lang". to the left of the Script error: No such module "Lang". is correct, which has a Script error: No such module "Lang". sign written as two vertical dots to denote short vowel. If a Script error: No such module "Lang". were placed to the left of Script error: No such module "Lang"., it would be erroneous. In Modern Hebrew, there is no reason to use the Script error: No such module "Lang". 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 Script error: No such module "Lang". is separated from the rest of the word to prohibit the ligature fl. Similarly, in English, some argue ligatures should not cross morpheme boundaries.[2]Template:Better source needed For example, in some words fly and fish are morphemes but in others they're not; therefore, by their reasoning, words like Template:Not a typo and Template:Not a typo (here shown with the non-joiner) 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.[3] It is necessary for disambiguating compounds from non-compound words, which use a full space.
In the Jawi script of Malay, ZWNJ is used whenever more than one consonants are written at the end of any phrase (Script error: No such module "Lang"., Malay for 'science' or Script error: No such module "Lang". in Latin script, pronounced /ˈsa.ɪns/.) It is used to signify that there are no vowels (specifically 'a' or 'ə') in between the two consonant letters as Script error: No such module "Lang". would otherwise be pronounced either /ˈsa.ɪnas/ or /ˈsa.ɪnəs/. A space would separate the phrase into different words, where phrases such as Script error: No such module "Lang". would now mean 'to sign the Arabic letter sin' (Script error: No such module "Lang". in Latin script.)
Use of ZWNJ to display alternative forms
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:[4]
In Devanagari, the characters Template:Script and Template:Script typically combine to form Template:Script, but when a ZWNJ is inserted between them, Template:Script (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 foreign words in Kannada script: "Facebook" is written as ಫೇಸ್ಬುಕ್, though it can be written as ಫೇಸ್ಬುಕ್. ರಾಜ್ಕುಮಾರ್ and ರಾಮ್ಗೊಪಾಲ್ are examples of other proper nouns that need ZWNJ.
To insert a ZWNJ in Kannada, use Shift-V on Linux (iBus, InScript). On Windows (InScript), you can produce a ZWNJ with Ctrl+Shift+2 or Alt+0157. For the LipikaIME on Mac, the caret returns a 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 ক্য (ক ্ য). Thus, when we want to write উদ্যাপন (correct Bengali spelling for celebration), it becomes উদ্যাপন (which is incorrect). Here ZWNJ works. If we want to write উদ্যাপন, we have to write in the following sequence (code: উদ্‌যাপন),[5][6] then we will get the proper rendering and the correct spelling. In Bengali, the hôsôntô is used for making any conjuncts and falas (such as ra-fala, ba-fala etc). Where the hôsôntô needs to be displayed explicitly, it is required to insert ZWNJ after the hôsôntô.
Also in Bengali, 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 ZWJ Template:Unichar is inserted right after র, i.e., র‍্য to render র্য.[5][6] র্য is commonly used for loanwords from English such as র্যাম (RAM), র্যান্ডম (random) etc.
Symbol
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
External links
- Using the ZWNJ in Persian
- Every character has a story #19: U+200c and U+200d (ZERO WIDTH [NON] JOINER)
- ↑ Navarro Tomás (1962) Atlas lingüístico de la la Península Ibérica (ALPI), tomo 1 ‘Fonética.’ Consejo superior de investigaciones científicas, Madrid. From map 69, location 240.
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ a b Script error: No such module "citation/CS1".
- ↑ a b Also see the Unicode chapter 12, Bengali (Bangla) between page 475 to 479 here in PDF.