نادیده گرفته شدن نیم‌فاصله هنگام کپی کردن آن در Word

+2 رأی
میانگین بازدید روزانه 0.882,212 بازدید

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

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

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

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

سوال 6 سال قبل در تالار کامپیوتر و اینترنت توسط ایمان (4,837 امتیاز)
ویرایش 5 سال قبل توسط ایمان

2 جواب

+1 رأی
 
بهترین جواب

همانطوری که خانم 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

 

جواب 6 سال قبل توسط ایمان (4,837 امتیاز)
ویرایش 5 سال قبل توسط ایمان
–1 رأی

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 فعال کنید. عدم استفاده از نیم‌فاصله در نوشتار به غیر از ایجاد بی‌نظمی و آشفتگی در متن، می‌تواند باعث ایجاد معانی غلط و همچنین باعث محدودیت بیشتر تولید کلمات جدید در زبان فارسی شود.

مرجع مطلب فوق

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

سوال های مشابه

0 رأی
1 جواب میانگین بازدید روزانه 0.39677 بازدید
0 رأی
3 جواب میانگین بازدید روزانه 1.072,500 بازدید
+1 رأی
0 جواب میانگین بازدید روزانه 0.1561 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 5.3114,108 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 1.012,044 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 4.314,936 بازدید
0 رأی
0 جواب میانگین بازدید روزانه 3.044,420 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.08118 بازدید
0 رأی
0 جواب میانگین بازدید روزانه 0.961,788 بازدید
کانال تلگرام جواب یاب
...