شکل تزئینی و خوش‌نویسانهٔ حروف فارسی

در بسیاری از قلم‌های (فونت‌های) فارسی، حروف فقط یک شکل ندارند. گاهی طراح چند نسخهٔ جایگزین برای یک حرف می‌سازد؛ مثلاً «ک کلاسیک»، «ک مدرن»، «ک خوش‌نویسانه». این شکل‌های متفاوت در قالب بسته‌هایی به نام Stylistic Set (که معمولاً با ss01، ss02 و … مشخص می‌شوند) ارائه می‌شوند.فعال‌کردن هر Stylistic Set باعث می‌شود مجموعه‌ای از شکل‌های جایگزین به‌طور هماهنگ در متن ظاهر شوند. این کار فقط ظاهر را تغییر می‌دهد و محتوای متن دست‌نخورده باقی می‌ماند.
برای مثال در شکل‌های زیر حرف «ی»، حرف «ک» و حرف «گ» و همچنین نویسهٔ «ریال» و «تومان» به‌شکلی متفاوت از شکل رسمی و کلاسیکشان نمایش داده شدند.شکل تزئینی و خوشنویسانهٔ حروف در فونت آرادشکل تزئینی و خوشنویسانهٔ فونت آراداما چطور باید در لیبره‌آفیس از این قابلیت استفاده کرد؟

برای دسترسی به این بخش در واژه‌پرداز لیبره‌آفیس کافی است مسیر زیر را دنبال کنید:

Format→Character→Complex→Font Features

پنجرهٔ ویژگی‌های پیشرفتهٔ فونت

گزینه‌های این پنجره:

پنجرهٔ تنظیمات ویژگی‌های پیشرفتهٔ فونت

Swash:
حالت‌های تزئینی و خوش‌نویسانهٔ حروف را فعال می‌کند. اگر طراح فونت شکل‌های آراسته‌ای برای برخی حروف ساخته باشد، با فعال شدن این گزینه آن شکل‌ها جایگزین حالت معمولی می‌شوند.

Tabular Numbers:
شکل عددها را «جدولی» می‌کند. در این حالت همهٔ رقم‌ها پهنای یکسان دارند تا ستون‌های عددی در جدول‌ها کاملاً زیر هم قرار بگیرند.

Horizontal Kerning:
فاصلهٔ بین حروف را به‌صورت هوشمند تنظیم می‌کند. اگر فونت کرنینگ داشته باشد، فعال بودنِ این گزینه باعث منسجم‌تر دیده شدن متن می‌شود.

Digit Substitution: Arabic and English to Persian:
نمایش عددهای عربی-هندی و لاتین را به صورت «اعداد فارسی» درمی‌آورد. متن تغییری نمی‌کند و فقط شکل نمایش عوض می‌شود.

Swash Kaf and Gaf:
اگر فونت نسخهٔ تزئینی ویژه‌ای از حرف‌های «ک» و «گ» داشته باشد، این گزینه آن نسخه‌ها را فعال می‌کند.

Reversed Yeh:
در صورتی که فونت گلیف مخصوص «ی وارونه» داشته باشد، این گزینه آن را فعال می‌کند. اگر فونت چنین شکلی نداشته باشد، انتخابِ این گزینه تأثیری ندارد.

Rial, Toman and Derham symbols:
این گزینه استفاده از علائم پولیِ ریال، تومان و درهم را فعال می‌کند. اگر فونت نمادهای ویژه‌ای برای آن‌ها داشته باشد، فعال‌سازی این گزینه آن نمادها را جایگزین حالت معمولی می‌کند.

UI Numbers and Symbols:
بعضی فونت‌ها مجموعهٔ خاصی از عددها و نمادها را برای استفاده در رابط‌های کاربری طراحی می‌کنند. این گزینه مجموعهٔ سفارشی‌شدهٔ مخصوص رابط کاربری را فعال می‌کند.

 

جدول جایگزینی قلم (فونت)

لیبره‌آفیس سال‌هاست قابلیت مفیدی به نام Font Replacement Table (جدول جایگزینی فونت) دارد.
با این قابلیت می‌توان مشخص کرد که اگر فلان قلم در سیستم وجود نداشت، به‌جایش از قلم دیگری استفاده شود. برای مثال می‌توان تعیین کرد اگر در سندی از قلم غیرآزاد ایران‌سنس استفاده شده بود و این قلم روی سیستم نصب نبود، لیبره‌آفیس به‌جایش از یک قلم آزاد به‌عنوان جایگزین استفاده کند، قلمی که از نظر اندازه و شکل شبیه به همان قلم باشد.
اما این جدول به‌طور پیش‌فرض خالی است و باید خودِ کاربر آن را پر کند، یعنی کاربر باید خودش بداند چه فونتی شبیه کدام است و آن را دستی تنظیم کند.

حالا از طریق این افزونه (که به‌زودی با فهرستی جدید از قلم‌های آزاد به‌روزتر هم خواهد شد) می‌شود جدول پیش‌فرض و آماده‌ای (شامل بیشتر قلم‌های پرکاربردِ مایکروسافت با مجوز محدود) درست کرد که این جایگزینی‌ها را خودش انجام دهد. یعنی نیازی نیست کاربر چیزی بداند یا تنظیمی انجام دهد.

متأسفانه لیبره‌آفیس در ایران جامعهٔ فعالی ندارد، وگرنه می‌شد ما هم فهرستی از قلم‌های آزاد فارسی را در اختیار توسعه‌دهندهٔ این افزونه بگذاریم تا قلم‌های آزاد ما هم در این جدول گنجانده شود.

پاک‌نویس و گیت‌هاب

اولین نسخهٔ ماکروی پاک‌نویس را روی گیت‌هاب منتشر کردم.
در این مدت، برخی اشکالات کد قبلی را برطرف کردم و قابلیت مهم گزینش اصلاحات را هم اضافه کردم.

پنجرهٔ گزینش اصلاح‌ها

امیدوارم انتشار ماکرو بر بستر گیت‌هاب باعث جلب مشاکت علاقه‌مندان شود و در آینده‌ای نزدیک این ماکرو در نهایت به یک افزونهٔ قابل نصب تبدیل شود.

چطور از این ماکرو استفاده کنیم؟

جدیدترین نسخهٔ ماکرو را که فایلی با پسوند deb است، از اینجا دریافت کنید و نصبش کنید. پس از نصب، ۳ فایل در شاخهٔ کاربر خانگی و در مسیری مانند مسیر زیر کپی می‌شوند.

/home/afshin/.config/libreoffice/4/user/Scripts/python/

این ۳ فایل چی هستند؟
یکی فایلی با نام PAKNEVIS.py که ماکروی پاک‌نویس است و تقریباً همه‌کار با اوست.
فایل بعدی فایلی با نام DocumentList.json است و بانک لغاتی است که ماکرو از آن برای تصحیح غلط‌های املایی استفاده می‌کند و آخرین فایل هم فایلی است با نام TextFixer.conf که تنظیمات پنجرهٔ «گزینش اصلاح‌ها» را در خودش ذخیره می‌کند.

حالا به مسیر زیر بروید و ماکرو را مطابق شکل زیر اجرا کنید:

Tools → Macros… → Run Macro

پنجرهٔ انتخاب ماکرو

 

نسخهٔ جدید بانک کلمات غلط فارسی

نسخهٔ جدید بانک کلمات غلط فارسی

مدتی پیش نسخهٔ جدیدی از بانک کلمات غلط فارسی را در اختیار توسعه‌دهندگان لیبره‌آفیس گذاشتم.
امروز و هم‌زمان با انتشار لیبره‌آفیس ۲۵.۸.۱ کلمات اضافه‌شده هم در لیبره‌آفیس قرار گرفتند.
علاوه بر کلماتِ جدید چندین کلمه را هم که به رسم‌الخط مرتبط بودند و غلط املایی قلمداد نمی‌شدند از بانک حذف کردم.
با توجه به اصلاحاتِ صورت‌گرفته می‌شود گفت که الان این بانک در وضعیت کم‌وبیش بهینه‌ای قرار گرفته است.

نیم‌فاصله‌های کاذب

نیم‌فاصلهٔ کاذب

یکی از چالش‌های متون فارسی وجود نیم‌فاصله‌های کاذب است. ظاهری شبیه به نیم‌فاصله دارند، اما در حقیقت نویسه‌های دیگری هستند.
این نویسه‌ها خصوصاً وقتی از یک سند به سند دیگری کپی می‌شوند، می‌توانند باعث نمایش نادرست متن، به‌هم‌ریختگی خطوط و مشکلاتی در جست‌وجوی محتوا شوند.

در واژه‌پرداز لیبره‌آفیس با کمک عبارت‌های باقاعده می‌شود همهٔ آن‌ها را یافت، اما استفاده از آن زحمت‌های خاص خودش را دارد. بنابراین با کمک هوش مصنوعی یک ماکروی پایتون ساختم که همان کار را بی‌دردسر و بدون خطا انجام بدهد.
این ماکرو همهٔ نیم‌فاصله‌های کاذب (که ۷ تا هستند) را پیدا و اصلاحشان می‌کند. در پایان کارش هم یک گزارش از نتیجهٔ اصلاحاتش می‌دهد.

1. Soft Hyphen (SHY) ← کد یونیکد: U+00AD
2. Not Sign ← کد یونیکد: U+00AC
3. Right-to-Left Mark (RLM) ← کد یونیکد: U+200F
4. Four-Per-Em Space ← کد یونیکد: U+2005
5. Zero Width No-Break Space (BOM, ZWNBSP) ← کد یونیکد: U+FEFF
6. Zero Width Space (ZWSP) ← کد یونیکد: U+200B
7. Zero Width Joiner (ZWJ) ← کد یونیکد: U+200D

📥 ماکرو را می‌توانید از اینجا یا اینجا دریافت کنید.

کند باز شدن فایل‌های حجیم مایکروسافت‌ورد

گزارش باگ شماره ۶۴۹۹۱ به یک مشکل قدیمی و ادامه‌دار در واژه‌پرداز لیبره‌آفیس اشاره دارد: کند باز شدن و عدم پاسخ‌گویی برنامه در زمان کار با فایل‌های DOC (فرمت قدیمی مایکروسافت‌ورد) که حجم بالایی دارند و حاوی متن راست به چپ (RTL) هستند.

این مسئله ابتدا در سال ۲۰۱۳ (۱۳۹۲ جلالی) گزارش شد و نشان می‌داد که باز کردن یک فایل DOC خاص با محتوای فارسی یا عربی، چندین دقیقه زمان می‌برد. جالب اینجاست که اگر همان فایل در مایکروسافت‌ورد به فرمت جدیدتر DOCX ذخیره می‌شد، مشکل حل و فایل به‌سرعت باز می‌شد. این موضوع به احتمال زیاد به نحوهٔ پردازش فایل‌های DOC قدیمی توسط لیبره‌آفیس برای محتوای RTL مربوط می‌شود.

با گذشت زمان و انتشار نسخه‌های جدیدتر لیبره‌آفیس، کاربران از سیستم‌عامل‌های مختلف همچنان این مشکل را تأیید کرده‌اند. تیم توسعهٔ لیبره‌آفیس تلاش‌هایی برای رفع این باگ انجام داده و وصله‌هایی را نیز برای بهبود وضعیت ارائه کرده‌اند. با این حال بر اساس آخرین به‌روزرسانی‌ها در سال ۲۰۲۳ (۱۴۰۲ جلالی)، هرچند زمان باز شدن فایل‌ها کمی بهبود یافته است، اما واژه‌پرداز لیبره‌آفیس همچنان پس از بارگذاری سند، برای مدتی بدون پاسخ باقی می‌ماند که این موضوع پیمایش و ویرایش متن را برای کاربر بسیار دشوار می‌کند.
در مجموع این باگ نشان می‌دهد که پردازش فایل‌های DOC حجیم با محتوای راست به چپ همچنان یک چالش برای واژه‌پرداز لیبره‌آفیس است و نیاز به بهینه‌سازی‌های بیشتری دارد تا تجربهٔ کاربری روان‌تری را برای کاربران زبان‌هایی مثل فارسی فراهم کند.

بهبود ردگیری تغییرات در لیبره‌آفیس

یکی از ویژگی‌های واژه‌پرداز لیبره‌آفیس قابلیت ردگیری تغییرات (Track Change) در سند است. این قابلیت با همهٔ مفید بودنش یک مشکل مهم داشت:

قبلاً، تنظیمات ردگیری تغییرات برای کل سند اعمال می‌شد. یعنی اگر یک نفر ردگیری تغییرات را روشن می‌کرد، تمام افرادی که روی آن سند کار می‌کردند، تغییراتشان ثبت می‌شد. این موضوع می‌توانست مشکل‌ساز باشد، به‌ویژه وقتی چند نفر به‌صورت هم‌زمان روی یک سند کار می‌کردند.

فرض کنید علی مشغول تایپ کردن در یک سند است و رضا ردگیری تغییرات را روشن کند. متأسفانه بلافاصله هر چی علی تایپ کرده است به‌صورت تغییراتِ ثبت‌شده (اضافه شدن) نشان داده می‌شود، که برای رضا گیج‌کننده است، چون او فقط در حال تایپ کردن بوده و تنظیمات را تغییر نداده است.

راه‌حل جدید این است که هر کاربر می‌تواند به‌طور مستقل ردگیری تغییرات را برای خود روشن یا خاموش کند. این یعنی اگر کاربر اول ردگیری تغییرات را خاموش کند، آنچه تایپ کرده است به‌عنوان تغییر ثبت نمی‌شوند، حتی اگر کاربر دوم ردگیری تغییرات را روشن کرده باشد.

Per-user track changes recording in Writer

مزایای راه‌حل جدید:

  • هر کاربر می‌تواند تصمیم بگیرد که آیا می‌خواهد تغییراتش ثبت شود یا خیر؛
  • وقتی چند نفر به‌صورت هم‌زمان روی یک سند کار می‌کنند، تداخل کمتری ایجاد می‌شود؛
  • کاربران می‌توانند به‌راحتی ببینند که چه کسی چه تغییراتی در سند داده است.

به‌عبارت ساده‌تر قبلاً مثل این بود که یک کلید برای روشن و خاموش کردن ردگیری تغییرات وجود داشت که برای همه اعمال می‌شد. حالا، هر کاربر یک کلید جداگانه برای خودش دارد. این ویژگی جدید، کار با اسناد مشترک را آسان‌تر و شفاف‌تر می‌کند، زیرا به هر کاربر اجازه می‌دهد تا کنترل بیشتری بر ردگیری تغییرات داشته باشد.