Các biểu tượng định dạng ẩn trong MS Word


2

Tôi có một tài liệu Word bằng tiếng Ba Tư và có nhiều cụm từ trong đó như thế này:

Vấn đề của tôi là nơi "و ششبب" kết nối với "هایی".

Lúc đầu, dường như có một nhân vật không tham gia chiều rộng bằng không giữa họ nhưng thực sự khi tôi cố gắng sao chép nó, không có gì được sao chép.

Tôi cũng đã sao chép tất cả các cụm từ vào Notepad và tôi đã nhận được điều này: "و نشیبهایی" Như bạn thấy không có gì giữa hai từ đã nói ở trên.

Tôi đã bật chương trình / ẩn trong nhóm "Đoạn" của tab "Trang chủ" để xem liệu có bất kỳ ký tự ẩn nào không và đây là kết quả:

Bây giờ, tôi tự hỏi nếu có bất kỳ cách nào để làm việc với nhân vật này; ví dụ: thay thế nó bằng ZWNJ.

Một tập tin với vấn đề đó (cũng đọc bên dưới)

Câu trả lời:


2

Đây là sự thay thế hoàn toàn cho Câu trả lời gốc của tôi (văn bản gốc bên dưới).

Tài liệu của bạn đánh dấu các từ màu xanh lá cây ("từ sao chép cách bạn muốn") và màu đỏ ("từ không sao chép cách bạn muốn").

Cả hai loại đều sử dụng ZWNJ, ví dụ: đi trước một nhân vật Heh chỉ nên tham gia bên trái, không phải bên phải.

Sự khác biệt là trong các từ màu xanh lá cây, ZWNJ đã được nhập RTL, nhưng trong các từ màu đỏ, nó đã được nhập LTR.

Tôi không biết bạn thường nhập ZWNJ như thế nào, nhưng ở đây, nếu tôi chọn "Ngắt tùy chọn không có chiều rộng" từ ngăn Ký tự đặc biệt trong hộp thoại Biểu tượng, trong khi đó, ZWNJ được nhập LTR (xấu, trong trường hợp này) nếu tôi chọn ký tự 0x200C từ bảng ký tự trong hộp thoại Biểu tượng, nó được nhập RTL (tốt, trong trường hợp này). Trong Word 2010, nếu tôi đi vào Word-> Tùy chọn tệp-> Tùy chỉnh ruy băng-> Phím tắt bàn phím-> Tùy chỉnh ... và gán một phím tắt cho Ngắt tùy chọn không có chiều rộng, nhấn phím đó khi nhập văn bản RTL sẽ xuất hiện để chèn ZWNJ là RTL (tốt). Bạn có thể chỉ định như sau:

  • trong danh sách Danh mục, cuộn xuống "Biểu tượng chung" và chọn nó
  • trong danh sách Biểu tượng chung được hiển thị, chọn "Không có tùy chọn phá vỡ chiều rộng"
  • bấm vào hộp "Nhấn phím tắt mới"
  • nhấn phím tắt bạn muốn (Tôi đã sử dụng ctrl-9 làm thử nghiệm)
  • nhấp vào Gán
  • bấm Đóng

Tôi không biết nếu điều đó sẽ đạt được mọi thứ bạn cần, nhưng tôi nghĩ nó ít nhất giải thích những gì đang xảy ra.

(Tôi nghi ngờ đó là một thứ tương tự, nhưng tôi phải lưu dưới dạng .docx và xem XML. "Các từ màu xanh lá cây" được mã hóa trong một từ "run" với "run property" RTL (một chuỗi là một chuỗi các ký tự có chung đặc điểm, vì vậy nếu bạn thay đổi màu văn bản, sẽ có một lần chạy mới). Các từ màu đỏ được mã hóa thành ba lần chạy: hai lần chạy RTL chứa văn bản và một lần chạy không RTL có chứa ký tự ZWNJ.)

Để thay đổi LTR ZWNJ thành RTL, bạn có thể sử dụng VBA sau. (Đối với những người biết VBA, đây là một trong những dịp bạn phải làm việc với Lựa chọn thay vì Phạm vi, vì AFAIK cách duy nhất để đặt văn bản Run to RTL là thông qua phương thức RTLRun của đối tượng Lựa chọn):

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

Văn bản gốc của câu trả lời của tôi theo sau ...

Nó có thể một ZWNJ. Nếu bạn chọn nó, sau đó nhấp vào Chèn-> Biểu tượng-> Biểu tượng khác, ZWNJ (0x200C) sẽ được chọn. Nó giống như ký tự mà Microsoft gọi là "Không phá vỡ tùy chọn không có chiều rộng" trong ngăn "Ký tự đặc biệt" trong hộp thoại Biểu tượng.

Theo tôi biết, NotePad bỏ qua ZWNJ. Tôi nghi ngờ bạn sẽ phải thay thế ZWNJ (nếu đó là chính xác) bằng một khoảng trắng (được chọn, bạn phải có thể nhấn phím cách để làm điều đó) sẽ khiến NotePad hiển thị dạng ký tự chính xác.

Sao chép từ một điểm trong tài liệu Word sang điểm khác sẽ giữ được ZWNJ, nhưng đó có phải là những gì bạn đang thấy không?


Là phần đầu tiên trong câu trả lời của bạn, có vẻ như NWOB giống với ZWNJ trong Word. Tôi có cả trong tài liệu của tôi và câu nói của bạn là đúng về từng người. Tôi đã cố gắng thay thế cái này bằng cái khác và kết quả luôn là NWOB mà Word hiển thị nó với một char giống như hình chữ nhật. Notepad không bỏ qua ZWNJ, bạn có thể chèn nó thông qua nhấp chuột phải> Chèn ký tự điều khiển unicode> ZWNJ.
kaku

Ngoài ra, nếu chúng tôi sao chép văn bản đó (có kèm theo NOB) và dán nó dưới dạng văn bản không được định dạng, những từ đó sẽ hoàn toàn kết nối với nhau. Nhưng nếu chúng tôi sao chép văn bản đó (có ZWNJ đi kèm) và dán nó dưới dạng văn bản không định dạng thì ZWNJ sẽ vẫn ở giữa những từ đó và tôi cần hành vi này. Tôi sẽ bao gồm một số phần của tài liệu của tôi trong câu hỏi để rõ ràng hơn.
kaku

@Iman: Tài liệu mẫu của bạn rất hữu ích. Tôi sẽ sửa đổi câu trả lời của tôi.

Cảm ơn bạn @bibadia, tôi sẽ chờ đợi bất kỳ lời đề nghị nào từ bạn và những người khác
kaku

@Iman: Bây giờ tôi đã sửa đổi câu trả lời ban đầu của mình.

0

Hôm nay tôi tìm thấy một cách khác để giải quyết vấn đề. Bí quyết là thay thế NAOB (bằng một ký tự trước và sau) bằng chính nó, Word sẽ thực hiện thủ thuật ...

  • Tìm cái gì: (?)^o(?)
  • Thay bằng: \1^o\2
  • Đừng quên đặt dấu kiểm bên cạnh Use wildcardstrong More >>khung

Sau đó, nó sẽ thay đổi LTR ZWNJ thành chế độ hình chữ nhật đó và chế độ RTL thành những gì tôi mong đợi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.