+2 امتیاز
قبل در کامپیوتر و اینترنت توسط (4.9هزار امتیاز)
ویرایش شده قبل توسط

فایل وردی دارم که داخلش بعضی جاها متن اینطوری است:

منظورم فاصلهٔ بین «نشیب» و «هایی» است که نیم‌فاصله نیست و وقتی این عبارت را در notepad کپی کنم به صورت «و نشیبهایی» درمی‌آید؛ درصورتی که اگر نیم‌فاصله باشد به این صورت کپی می‌شود: «و نشیب‌هایی»

وقتی گزینهٔ show/hide ¶‎ را در سربرگ home » گروه Paragraph روشن می‌کنم عبارت بالا اینطور دیده می‌شود:

حالا من می‌خواهم همهٔ این نویسه‌هایی را که به شکل دو مستطیل تودرتو هستند با نیم‌فاصله جایگزین کنم؛ اما مشکل اینجاست که وقتی این نویسه را کپی می‌کنم هیچ چیزی کپی نمی‌شود و همانطور که گفتم با کپی کردنِ کل عبارت هم این نویسه کپی نمی‌شود و اصلاً نمی‌دانم چیست. راهی می‌شناسید تا بشود با این نویسه کار کرد؟

3 پاسخ

+1 امتیاز
قبل توسط (4.9هزار امتیاز)
ویرایش شده قبل توسط
 
بهترین پاسخ

همانطوری که خانم malekpour گفتند، Zero width non-joiner همان no-width optional break است که نرم‌افزار Word از این نام برای آن استفاده می‌کند و تفاوت کوچکی باعث شد تا فکر کنم اینها دو نویسهٔ متفاوت هستند. این تفاوت مربوط به نحوهٔ درج آنها می‌شود. مواردی که مشکلی با آنها ندارم به صورت راست به چپ درج شده‌اند و مواردی که می‌خواستم آنها را جایگزین کنم به صورت چپ به راست داخل متن فارسی درج شده بودند. اینکه چطور به وجود آمده بودند را نمی‌دانم؛ ولی راه حل‌هایی پیدا کردم:

روش ۱ جواب جدیدی است که برای این سوال پیدا کرده‌ام و راحت‌تر است. جواب قدیمی را بعد از این روش قرار دادم:

روش ۱: در پنجره Find and Replace در قسمت Find what عبارت زیر را قرار دهید. این عبارت نیم‌فاصله با یک حرف قبل و و یک حرف بعدش را پیدا می‌کند:

(?)^o(?)

در قسمت Replace with عبارت زیر را قرار دهید. این عبارت موردی را که پیدا کرده جایگزین خودش می‌کند ولی نیم‌فاصله به شکل صحیح اصلاح می‌شود:

\1^o\2

قبل از کلیک کردن روی Replace All گزینه Use wildcards را در قسمت More علامت بزنید.

روش ۲: طبق این پاسخ برای این کار باید ماکروی زیر را در ورد استفاده کرد. این ماکرو همه نیم‌فاصله‌های چپ به راست را راست به چپ می‌کند.

Sub replace_LTR_NBZWs_with_RTL_ones()

ActiveDocument.Select
With Selection.Find
  .ClearFormatting
  .Text = ChrW(8204)
  .Forward = True
  .Wrap = wdFindStop
  .Format = False
  .MatchCase = False
  .MatchWholeWord = False
  .MatchKashida = False
  .MatchDiacritics = False
  .MatchAlefHamza = False
  .MatchControl = False
  .MatchByte = False
  .MatchWildcards = False
  .MatchSoundsLike = False
  .MatchAllWordForms = False
  While .Execute
    Selection.RtlRun
  Wend
End With
End Sub

 

0 امتیاز
قبل توسط (0 امتیاز)

اشتباه شما اینه که به جای استفاده از ctrl+shift+2 از ترکیب ctrl و - استفاده میکنید که این کاملا غلطه. استانداردترین حالت برای نیم فاصله ctrl+shift+2 هستش که توی هیچ نرم افزاری هیچ بهم ریختگی ای نداره، مخصوصا توی نوت پد.

برای اصلاح این مشکل باید از دکمه ctrl+H رو بزنین که find and replace بکنه، 

توی قسمت جستجو باید این رو تایپ کنید: 

^-

توی قسمت جایگزینی باید این رو تایپ کنید:

^o

امیدوارم متوجه باشید که اینجا کمی جابجا شده و ممکنه جای ^ و O رو برعکس نشون بده.

من برای اصلاح نیم فاصله در ورد یک سری راهکارهای خیلی خوب دادم که میتونین از لینکی دادم استفاده کنید.

–1 امتیاز
قبل توسط (7.0هزار امتیاز)

1.    بر روی نوار Insert کلیک می‌کنیم و سپس در انتهای نوار سراغ گزینه Symbol  می‌رویم و آن را انتخاب می‌کنیم.

2.    پس از باز شدن پنجره Symbol  بر روی گزینه More Symbols کلیک می‌کنیم.

3.    در پنجره جدیدی که باز می‌شود بر روی زبانه‌ی Special Characters کلیک می‌کنیم و مطابق عکس گزینه‌ی No-Width Optional Break را انتخاب می‌کنیم و کلید Shortcut Key…  را می‌زنیم.

4.    در پنجره جدید بر روی نوار سفیدِ Press new shortcut key:  کلیک می‌کنیم و کلید ترکیبی مورد نظرمان را فشار می‌دهیم. معمولا برای نیم‌فاصله از کلیدهای  Ctrl+Space استفاده می‌کنند. به این منظور بعد از کلیک روی نوار مربوطه، کلید Ctrl را فشار داده و سپس کلید Space را می‌زنیم.
در انتها و پس از انتخاب کلید ترکیبی بر روی کلید Assign کلیک می‌کنیم و در انتها کلیک Close را انتخاب می‌کنیم.

به این صورت می‌توانید کلید نیم‌فاصله را در نرم‌افزار Word فعال کنید. عدم استفاده از نیم‌فاصله در نوشتار به غیر از ایجاد بی‌نظمی و آشفتگی در متن، می‌تواند باعث ایجاد معانی غلط و همچنین باعث محدودیت بیشتر تولید کلمات جدید در زبان فارسی شود.

مرجع مطلب فوق

قبل توسط (4.9هزار امتیاز)
ویرایش شده قبل توسط
من نیم‌فاصله‌ها را با صفحه‌کلید استاندارد 9147 می‌نویسم(Shift+space)
این روشی که شما گفتین برای درج نویسهٔ No-width optional break در ورده که یکی دو جا خوندم این همون نیم‌فاصله یا zero width non-joiner (با کد یونیکد 200c) است که من از طریق shift+space وارد می‌کنم.
اما ظاهرا یکی نیستن، چون وقتی با shift+space نیم‌فاصله میذارم مشکلی که تو سوال گفتم نیست و با روشن کردن نمایش نویسه‌های مخفی به صورت اون مستطیل هم دیده نمیشه. اما وقتی از طریق symbols درج میکنم، هم موقع کپی کردن کپی نمیشه و هم با روشن کردن نمایش نویسه‌های مخفی به صورت اون مستطیل دیده میشه.
ورد هم انگار هر دو را یکی میدونه. چون اومدم ^o را که همون No-width optional break توی ورده با نیم‌فاصله‌ای که با shift+space میذارم جایگزین کنم که جایگزینی انجام شد(تو پیغامش گفت مثلا چند تا جایگزینی انجام شد) ولی در عمل همون چیزی که بود موند!
مشکل الآن اینه که چرا وقتی به صورت اون مستطیل نشان داده میشه کپی نمیشه ولی وقتی به صورت مستطیل نشان داده نمیشه کپی میشه!
من هر دو جورش را هم تو این فایل دارم!
قبل توسط (4.9هزار امتیاز)
این تکه‌ای از همون فایله که اون دوجور بودن نیم‌فاصله‌ها در عین این که ورد یکی میدونشون، توش قابل مشاهده است:
http://s5.picofile.com/file/8110845776/8359_zwnj_problem_in_word.docx.html
با ورد 2013 درست شده.

سوالات مشابه

0 امتیاز
1 پاسخ 1.6هزار بازدید
0 امتیاز
3 پاسخ 6.2هزار بازدید
سوال شده 9 سال قبل در کامپیوتر و اینترنت توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
0 پاسخ 448 بازدید
0 امتیاز
1 پاسخ 17.4هزار بازدید
0 امتیاز
1 پاسخ 3.0هزار بازدید
0 امتیاز
1 پاسخ 6.9هزار بازدید
0 امتیاز
0 پاسخ 5.8هزار بازدید
...