2009-02-27 11 views
29

फ्रेंच में, टाइपोग्राफी की आवश्यकता है कि हम विभिन्न स्थानों पर संकीर्णगैर-ब्रेकिंग स्पेस (यू + 202 एफ) का उपयोग करें ("Comme ça!")।विंडोज के लिए एचटीएमएल में संकीर्ण गैर-ब्रेकिंग रिक्त स्थान कैसे प्रस्तुत करें?

स्पष्ट रूप से विंडोज़ पर हर ब्राउज़र इसका समर्थन करने में विफल रहता है और वे सभी इसके बजाय एक अजीब चरित्र प्रदर्शित करते हैं। यह मैक ओएस एक्स के साथ-साथ लिनक्स पर अधिकांश ब्राउज़रों पर भी काम करता है।

क्या कोई यह जानता है कि विंडोज ब्राउज़र को इसे सही तरीके से कैसे प्रस्तुत करना है?

(मुझे लगता है कि यह ब्राउज़र बग की बजाय एक विंडोज बग है क्योंकि फ़ायरफ़ॉक्स और सफारी दोनों इसे तब तक समर्थन देते हैं जब तक कि यह विंडोज़ पर नहीं है)।

उत्तर

55

हमम ... नहीं। अगर केवल समस्या तथ्य यह है कि   (U + 2009) अभी भी टूट रहा है है, मैं का उपयोग करना पसंद करेंगे:

<span style="white-space:nowrap">&thinsp;</span>

तोड़ने व्यवहार को सही करने के। क्यूं कर?

  • क्योंकि फ्रेंच ठीक प्रभावी रूप से एक cadratin का एक चौथाई के लिए छठे जो लगभग निश्चित चौड़ाई उपयोग कर रहा है (0.166 सीए सीए, 0.25 के लिए जब मानक अंतरिक्ष 0.5 सीए है) की पसंद चौड़ाई किसी दिए गए फ़ॉन्ट में परिभाषित ग्लिफ के भीतर पहले से मौजूद दृष्टिकोण पर निर्भर करती है। approche (या अक्षरों के बीच शब्दों में अंतराल) संकरा है इन फ़ॉन्ट (फ्रेंच प्रतिपादन के लिए) फ्रेंच typographs द्वारा किए गए थे, तो:

  • फ़ॉन्ट्स अपनी पतली अंतरिक्ष की चौड़ाई (U + 2009) को समायोजित करने के बने होते हैं अंग्रेजी के लिए डिज़ाइन किए गए फोंटों की तुलना में: ऐसा इसलिए है क्योंकि फ्रांसीसी ग्रंथों में आम तौर पर समकक्ष अंग्रेजी ग्रंथों (मुद्रित बाइबल के उदाहरण के लिए) की तुलना में अधिक अक्षर होते हैं, और मुद्रित पृष्ठों की संख्या में वृद्धि से बचने के लिए, फ्रांसीसी फोंटों में ग्लिफ को थोड़ा संकुचित किया गया था और साथ एक कम दृष्टिकोण; इस कमी को भरने के लिए, फ्रेंच ठीक आकार में वृद्धि हुई थी। (अक्सर यह कहा जाता है कि यू + 200 9 कैडरेटिन का एक पांचवां हिस्सा है, यानी 0.2 सीए, लेकिन यह गलत है क्योंकि यह मान सिर्फ एक तर्कसंगत औसत मूल्य है, जिसे प्रभावी रूप से उनके डिजाइन के अनुसार फोंट में समायोजित किया जाना चाहिए)।

  • एक अंग्रेजी टाइपोग्राफी के साथ

    अंग्रेजी में, अंतर-चरित्र अंतराल पहले से ही इतना बड़ा तथ्य यह है कि एक नहीं पतली अंतरिक्ष सबसे डबल विराम चिह्न संकेत के पास ग्रंथों में प्रयोग किया जाता है का औचित्य साबित करने के लिए है। हालांकि, अगर फ्रांसीसी को अंग्रेजी टाइपोग्राफी (जिसमें बड़े अंतर-चरित्र अंतराल होते हैं) का उपयोग करके फ़ॉन्ट के साथ प्रस्तुत किया जाता है, तो ठीक संकुचित होना चाहिए और इसे 1/6 वें कैडरेटिन तक कम किया जाना चाहिए।

  • तो हाँ, यू + 200 (&thinsp; एसजीएमएल भंडार में) फोंट के आधार पर थोड़ा समायोज्य है।

  • इसके अलावा इसे आंशिक रूप से उचित ठहराया जा सकता है (जब पूर्ण औचित्य का उपयोग किया जाता है, जहां न केवल सामान्य अंतर-शब्द रिक्त स्थान की चौड़ाई बढ़ जाती है, बल्कि वर्णों और सामान्य या 'ठीक' रिक्त स्थान के बीच सभी अंतराल भी होते हैं (लेकिन अन्य ट्रैक्टर रिक्त स्थान नहीं है उनके चौड़ाई समायोजित करना चाहिए: वे वास्तव में ठीक)

आप जिसका पेज लेआउट पहले से ही precomputed है (ज्ञात फ़ॉन्ट के साथ और सही मीट्रिक के साथ एक दस्तावेज़), पतली अंतरिक्ष (प्रतिपादन कर रहे हैं। U + 2009) पहले से ही आप क्या चाहते हैं (क्योंकि आप तोड़ने व्यवहार के बारे में चिंता करने की ज़रूरत नहीं है।

दुर्भाग्य से, यूनिकोड भूल इन ट्रैक्टर रिक्त स्थान के लिए आवंटित करने के लिए U + 2000..U + 2006 (और पतली अंतरिक्ष U + 2009 तक) लाइन तोड़ने के गुणों में नॉन-ब्रेकिंग व्यवहार।

यूनिकोड को केवल इसे सही करने के लिए एकमात्र तरीका (केवल सादा पाठ दस्तावेज़ों के लिए), यूनिकोड 5.1 में एक और चरित्र, अर्थात् यू +202 एफ (नारोव नॉन-रीसिंग स्पेस) जोड़ना था, जिसे बाद में एसजीएमएल प्रतीकात्मक नाम दिया गया था चरित्र संदर्भ (लेकिन U + 202F को यह नाम दिया है चरित्र संस्था की मैपिंग के लिए "nnbsp" किसी भी HTML या XML मानक का हिस्सा नहीं है, इसलिए जब तक आपके दस्तावेज़ इसके एम्बेडेड DTD में स्पष्ट रूप में परिभाषित करता है यह वर्णित निकाय के रूप में अच्छी नहीं किया जाना चाहिए, !)

लेकिन दुर्भाग्य से, अधिकांश ब्राउज़र इस अलावा लागू करने के लिए भूल गए हैं और क्यों यह जरूरी था: वे मानते हैं कि चरित्र फोंट में होना चाहिए, लेकिन यह स्पष्ट रूप से मामला नहीं है।

सभी ब्राउज़रों नॉन-ब्रेकिंग के रूप में U + 202F (यह पहले से ही मामला है, भले ही वे UCD की अपनी आंतरिक नकल में चरित्र नहीं जानता है) व्यवहार करना चाहिए।

हालांकि, ब्राउज़र इस तथ्य पर निर्भर नहीं होना चाहिए कि यू +202 एफ को फ़ॉन्ट में परिभाषित किया गया है, इसके बजाय, उन्हें यू + 2002 (थिन स्पेस) को फेंकने पर उन्हें फॉलबैक प्रदान करना चाहिए, हर बार यू +202 एफ मैप नहीं किया जाता है वर्तमान फ़ॉन्ट में, लेकिन यू + 200 एक ही फ़ॉन्ट में मैप किया गया है (यह आम तौर पर कई फोंट के मामले में होता है)।

तो यह है (यानी ब्राउज़रों) एचटीएमएल दाता में एक समस्या है; मुझे यह भी लगता है कि यह फोंट की समस्या से कहीं अधिक है, यह वास्तव में ब्राउज़र का एक बग है (फोंट में बग या सीमा के बजाय), अगर वे व्हाइटस्पेस के लिए ऐसे फ़ॉलबैक प्रदान नहीं करते हैं। बेशक, सभी नए फोंट को यू +202 एफ को यू + 200 9 के समान ग्लाइफ पर मैप करना चाहिए।

यह देखते हुए कि पतली अंतरिक्ष (U + 2009, या &thinsp;) बहुत अच्छी तरह से कई फोंट में समर्थित है, और फ्रांस के मुद्रण मैट्रिक्स के साथ किए गए फ़ॉन्ट के साथ फ्रेंच ग्रंथों प्रतिपादन के लिए सही चौड़ाई है, या अंग्रेज़ी के साथ किए गए ग्रंथों प्रतिपादन के लिए टाइपोग्राफिक मेट्रिक्स, यह संकीर्ण गैर-ब्रेकिंग स्पेस उपलब्ध नहीं होने पर हर बार उपयोग करने के लिए सही फॉलबैक होना चाहिए!

आप यू + 200 9 का उपयोग करके एचटीएमएल में यू +202 एफ के वांछित व्यवहार को पूरी तरह से अनुकरण कर सकते हैं और इसे सीएसएस के "व्हाइट-स्पेस: अब्रैप" का उपयोग करके गैर-ब्रेकिंग कर सकते हैं। यह एक छद्म आधा अंतरिक्ष प्रदर्शित करने के लिए फ़ॉन्ट आकार को बदलने से हमेशा बेहतर होगा (क्योंकि यह कई फ़ॉन्ट्स के साथ सही नहीं है जिसके लिए यह अभी भी बहुत बड़ा होगा, और यह भी क्योंकि यह टेक्स्ट के स्पैन में अपेक्षित काम नहीं करता है रंगीन पृष्ठभूमि हैं: फ़ॉन्ट आकार बदलना लाइन-ऊंचाई को संशोधित करता है)।

तो बजाय अपने HTML या एसवीजी दस्तावेजों में इस कोड का इस्तेमाल करें (U + 202F रखने केवल सादे-पाठ दस्तावेज़ों के लिए):

<span style="white-space:nowrap">&thinsp;</span>

तुम एक पुन: प्रयोज्य टेम्पलेट में इस क्रम को बचा सकता है, कि आप नाम कर सकते हैं MediaWiki में Template:nnbsp उदाहरण के लिए, इसे अपने पृष्ठों में {{nnbsp}} के रूप में स्थानांतरित करने के लिए।

ध्यान दें कि यह अभी भी बल्कि &#x2009; की तरह एक सटीक यूनिकोड कोड बिंदु मजबूर कर की तुलना में पतली अंतरिक्ष संदर्भ के लिए &thinsp; के रूप में प्रतीकात्मक रूप से बेहतर है: वर्णित निकाय रेंडरर द्वारा पुनः मानचित्रित किया जा सकता है, या किसी अन्य काम कर खाली स्थान के लिए उपयोगकर्ता वरीयताओं के अनुसार।

ध्यान दें कि एमएस-शब्द वास्तव में यू + 200 9 का उपयोग करता है और यू +202 एफ नहीं, अपने ठीक का प्रतिनिधित्व करने के लिए। यह सही है, बशर्ते कि वर्ड दस्तावेज़ों में प्रीकंप्यूटेड लेआउट है, और यह देखते हुए कि पृष्ठ लेआउट की गणना करते समय एमएस-वर्ड स्थानीय रूप से गैर-ब्रेकिंग व्यवहार को लागू करता है। शब्द दस्तावेज़ सादे-पाठ दस्तावेज़ नहीं हैं। :

  • प्रतिपादन (पृष्ठभूमि रंग का उपयोग कर प्रदर्शन करने के लिए है कि line-height संशोधित नहीं है, लेकिन दुर्भाग्य से इस साइट यहाँ की तरह <code> वर्गों, जो monospace फ़ॉन्ट का उपयोग को छोड़कर पृष्ठभूमि रंग सेट की अनुमति नहीं है) के उदाहरण

    Exemple de « fine » insécable française correctement codée !

    • ही बिना <code> कंटेनर पृष्ठभूमि रंग प्रदर्शित नहीं करता है, लेकिन यह doe ताकि पतली अंतरिक्ष प्रभावी रूप से पतली के रूप में प्रदान की गई है रों सामान्य आनुपातिक फोंट का उपयोग करें:

    उदाहरण डी «और thinsp; ठीक & thinsp;» insécable française और thinsp ;; सुधार codée और thinsp ;!

    • उदाहरण &#x202F; का उपयोग कर (NNBSP जो आम तौर पर सबसे फोंट में समर्थित नहीं है, लेकिन यह अंत में अपने वर्तमान ब्राउज़र और फ़ॉन्ट में अपने सिस्टम पर स्थापित के साथ काम कर सकते हैं, इस तरह के DejaVu संस के रूप में):

    उदाहरण डी «& # x202F; ठीक & # x202F;» अपरिहार्य फ्रैंकाइज & # x202F ;; सुधार कॉडी और # x202F ;!

    • उदाहरण &#x2006; (CADRATIN के छठे, काम कर सकते हैं, लेकिन अपने फोंट के लिए बहुत सीमित हो सकती है, और नॉन-ब्रेकिंग संपत्ति का प्रदर्शन नहीं कर सकते हैं) का उपयोग करते हुए:

    उदाहरण डी «& # x2006 ; ठीक है & # x2006; »अजेय फ्रैंकाइज & # x202F ;; सुधार कॉडी और # x2006 ;! (हमम ...वास्तव में नहीं)

    • उदाहरण &nbsp; का उपयोग कर (जो लगभग हमेशा बहुत बड़ी है):

    उदाहरण डी «  ठीक  » insécable française  ; सुधार codée  ! (हम्म ... वास्तव में नहीं)

+0

न केवल आपका उत्तर सहायक है (यदि थोड़ा सा लंबा है), यह भी काफी शिक्षित और अच्छी तरह से उचित लगता है। आपकी सहायता के लिए धन्यवाद. यह हमारे जीवन को स्थानीय साइटों के व्यवसाय में दुखी बनाता है, क्योंकि संदेश जो सादा पाठ के लिए उपयोग किए जाते थे अब मार्कअप बन सकते हैं और इस प्रकार भागने वाले भाग को छोड़ने की आवश्यकता है। क्या आपके पास कोई विचार है तो फ़ायरफ़ॉक्स और सफारी ब्राउज़र दोनों क्यों समर्थन करते हैं, जो समर्थन करते हैं & # x202F; लिनक्स और मैक्स ओएस एक्स दोनों पर, विंडोज़ पर नहीं? क्या यह सिर्फ इतना है कि लिनक्स और मैक्स ओएस एक्स फोंट का प्रतीक है जबकि विंडोज फोंट नहीं है? यदि ब्राउजर फॉल-बैक लागू करता है तो कौन सी समस्या नहीं होगी? – FroMage

+1

लिनक्स और मैक ओएसएक्स संस्करण शायद एक टेक्स्ट प्रतिपादन लाइब्रेरी (या ओएस सेवा) का उपयोग कर रहे हैं जो फॉलबैक को लागू करता है जब फ़ॉन्ट में चरित्र नहीं होता है। ब्राउज़र तब बस इन एपीआई या पुस्तकालयों का उपयोग करें। यह देखते हुए कि विंडोज इस टेक्स्ट फॉलबैक को अपने टेक्स्ट रेंडरिंग एपीआई (जीडीआई, जीडीआई + ...) में लागू नहीं करता है, इसका उपयोग करने वाले ब्राउज़र चरित्र को प्रदर्शित करने में विफल रहता है। मुझे पता है कि फ़ायरफ़ॉक्स कुछ पात्रों के लिए अपने आंतरिक फॉलबैक का उपयोग करता है, लेकिन उनमें से कई काफी खराब हैं। लेकिन मुझे कोई कारण नहीं दिखता कि ब्राउजर व्हाइटस्पेस के लिए खुद को फॉलबैक क्यों लागू नहीं करेगा। –

+1

ध्यान दें कि सफारी विंडोज पर यू + 202 एफ प्रदर्शित नहीं करता है, लेकिन Google क्रोम इसे प्रदर्शित करता है (यहां तक ​​कि दोनों ब्राउज़र भी वेबकिट का उपयोग कर रहे हैं जो समान पाठ प्रतिपादन पुस्तकालयों का उपयोग करना चाहिए): क्रोम वेबकिट के बाहर फ़ॉलबैक को कार्यान्वित कर रहा है, या यह वेबकिट के एक पैच संस्करण का उपयोग करता है। –

2

क्यों नहीं &#x202F;?

+0

यह वही है जो मैं कर रहा हूं लेकिन विंडोज़ पर यह सही ढंग से प्रस्तुत नहीं करता है। – FroMage

+3

जिस फ़ॉन्ट का आप उपयोग कर रहे हैं वह शायद इस चरित्र के लिए कोई ग्लिफ नहीं है। – Gumbo

+0

क्या आप जानते हैं कि कोई विंडोज फ़ॉन्ट है जो इसे माना जाता है? कैरेक्टर पिकर में एक त्वरित नज़र से पता चलता है कि यह चरित्र अधिकांश सूचियों में नहीं है। – FroMage

2

आप यह कर सकते हैं, लेकिन यह आदर्श नहीं है।

<span style="font-size:50%;"> </span> 
+0

मैं कर सकता था, लेकिन मुझे लगता है कि विंडोज को इसे सही तरीके से प्रस्तुत करने का एक तरीका होना चाहिए ... शायद यह एक फ़ॉन्ट मुद्दा है ... – FroMage

3

मैं थोड़ा और अधिक खुदाई किया है, और यह एक फ़ॉन्ट समस्या की तरह प्रतीत होता है। FileFormatInfo सामान्य रूप से यूनिकोड समस्याओं से निपटने के लिए बहुत उपयोगी है, और इसमें page शामिल हैं जो फ़ॉन्ट्स को सूचीबद्ध करते हैं जो this particular character का समर्थन करते हैं। यहां तक ​​कि एक फ्लैश टूल भी है (पेज पर नीले रंग के बॉक्स के अंदर क्लिक करने के लिए समर्थित फ़ॉन्ट्स को सूचीबद्ध करने के लिए क्लिक करें - मैं किसी कारण से सही यूआरएल नहीं बना सकता) जो आपके सभी स्थानीय रूप से स्थापित फ़ॉन्ट्स को सूचीबद्ध करता है और प्रत्येक चरित्र के लिए यह चरित्र दिखाता है ।

+0

ठीक है यह निश्चित रूप से सहायक है। फ्लैश एप्लिकेशन बहुत सारे वर्ग, खाली या पूर्ण प्रदर्शित करता है, जिसका अर्थ है कि मुझे लगता है कि मेरे फ़ॉन्ट इसका समर्थन नहीं करते हैं। चूंकि यह एक डिफ़ॉल्ट XP स्थापित है, मुझे लगता है कि XP ​​डिफ़ॉल्ट रूप से इसका समर्थन नहीं करता है। अब कुछ विस्टा फ़ॉन्ट्स डाउनलोड करने का प्रयास कर रहे हैं ... – FroMage

+0

मैंने अभी फ़्रेंच-लोकेल विस्टा इंस्टॉलेशन पर फ्लैश पेज का दौरा किया है, और एकमात्र फ़ॉन्ट जो अस्पष्ट 'सामान्य' लगता है जो इस चरित्र का समर्थन करता है (यानी कोई बॉक्स दिखा रहा है) " माइक्रोसॉफ्ट सैन्स सेरिफ "। – Rich

0

आप CKEditor जैसे WYSIWYG संपादक में Ctrl + shift + 2 दबा सकते हैं और फिर स्रोत HTML दृश्य पर जा सकते हैं।

संबंधित मुद्दे