حل شدن مشکل هم‌پوشانی حروف فارسی

لیبره‌آفیس ۲۵.۲.۴ امروز منتشر شد. آنچه در این نسخه برای ما به‌عنوان یک کاربر فارسی‌زبان اهمیت دارد حل شدن مشکل (باگ) هم‌پوشانی حروف فارسی در جعبه‌های متنی است.

مشکل این بود که حروف فارسی وقتی در یک جعبهٔ متنی (Text Box) به صورت تراز شده (Justified) قرار می‌گیرند، به‌شکل نادرستی به هم می‌چسبند و هم‌پوشانی (Overlap) بیش از حدی پیدا می‌کنند. این هم‌پوشانی باعث می‌شود که متن به‌هم‌ریخته و دارای اشکالات بصری زیادی به نظر برسد.

گلیف کشیده

هم‌پوشانی حروف

یکی از توسعه‌دهندگان (Jonathan Clark) با بررسی مشکل به این نتیجه رسیده است که این هم‌پوشانی به‌دلیل قرارگیری نادرست گلیف‌های کشیده (Kashida Glyphs) اتفاق می‌افتد.
کشیده نوعی اتصال افقی در حروف فارسی و عربی است که برای تراز کردن خطوط استفاده می‌شود و کارکرد آن پر کردن فضای خالی بین کلمات یا حروف در یک سطر، بدون اضافه کردن فضای سفید (White-space) زیاد است. به‌بیانی دیگر به جای اینکه فاصلهٔ بین کلمات زیاد شود، حروف به‌طور خودکار کشیده می‌شوند.

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

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

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

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

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

گاهی انسان آرزو می‌کند که ای‌کاش این قدرت را داشت که چیزی را از بیخ‌وبن از بین ببرد! حالا حکایت قلم‌های (فونت‌های) برنارایانه است، همان فونت‌هایی که با حرف B آغاز می‌شوند و در میان کاربران به فونت‌های سری B شناخته می‌شوند.
در طول این سال‌ها زبان من مو درآورد که آقا! اگر به نمایش صحیح فارسی علاقه‌مند هستید، این فونت‌ها را فراموش کنید و از نسخهٔ اصلاح‌شدهٔ آن‌ها (فونت‌های سری IR) استفاده کنید، اما همچنان برخی که متأسفانه کم هم نیستند، به‌دلایل مختلف خواه و ناخواه به حیات این قلم‌های پُراِشکال ادامه می‌دهند!

بعد از این گلایهٔ قدیمی اجازه بدهید به باگی اشاره کنم که همین چند روز پیش گزارش شده و مرتبط با همین قلم‌هاست. این‌طور که از گزارش برمی‌آید ظاهراً وقتی کاربر از نویسه‌هایی مانند تشدید استفاده می‌کند، متن به‌نوعی از هم می‌پاشد و اجزاء جمله از هم دور می‌افتند. جالب این که این اِشکال صرفاً در فونت‌های سری B وجود دارد و با بررسی‌ای که من کردم روی هیچ‌یک از فونت‌های سری IR مشکلی در نمایش صحیح متن وجود ندارد!

ممکن است تیم توسعه‌دهندهٔ لیبره‌آفیس با اصلاحاتی که در موتور پردازشگر متن (حرف‌باز) اِعمال می‌کنند، اِشکال پیش‌آمده را برطرف کنند، اما آخر ما چرا باید با پافشاری بر استفاده از این فونت‌های پرعیب‌ونقص وقت برنامه‌نویسان را صَرف برطرف کردن چنین اشکالاتی کنیم؟!
واقعاً وقت آن نرسیده است که در قلمی که انتخاب می‌کنیم، تجدیدنظر کنیم؟

دسته‌بندی اشکال‌ها در لیبره آفیس

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

در این ساختار درختی، می‌توان دید که چه تعداد اشکال ذیل یک metabug وجود دارند، و ارتباط آن‌ها با یکدیگر چگونه است. برای هر اشکال، دسته‌بندی‌هایی انجام می‌شود، و از همین دسته‌بندی‌ها برای ایجاد این نمایش درخت اشکالات استفاده می‌شود.

به طور مثال، برای زبان‌های راست به چپ، یک megtabug با عنوان rtl-ctl وجود دارد که می‌توانید در صفحه زیر، ساختار درختی آن را ببینید.

https://bugs.documentfoundation.org/showdependencytree.cgi?id=43808&hide_resolved=1

این ساختار به خوبی نشان می‌دهد که چه اشکالاتی وجود دارد، هر کدام از اشکالات در چه دسته‌ای قرار می‌گیرند، و در هر دسته چه اشکالاتی وجود دارد. این دسته‌بندی شامل تمامی اشکالات همه زبان‌های راست به چپ (rtl) و خط پیچیده (complex script) است.

چگونه یک اشکال لیبره آفیس را در باگزیلا ثبت کنیم؟

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

همیشه ساده نیست که دیگران بدانند مشکل چیست و حتی در صورت واضح بودن مشکل برای شما، بدانند که حالت بدون اشکال دقیقاً چگونه باید باشد. این مسئله به ویژه در مورد اشکالات نمایشی لیبره آفیس در زبان‌هایی مانند فارسی صدق می‌کند که ممکن است برنامه‌نویسان دقیقاً ندانند که خروجی صحیح چگونه باید باشد.

برای ثبت گزارش به سایت زیر مراجعه کنید:

https://bugs.documentfoundation.org/enter_bug.cgi?product=LibreOffice&format=guided

در هنگام ثبت گزارش، مرحله به مرحله جلو بروید، و جزئیات خواسته شده را وارد کنید.

در summary عنوان مشکل را با یک عبارت کوتاه و ساده بنویسید. در description شرح مشکل را به صورت خلاصه بنویسید. در component بخشی از نرم‌افزار که دچار اشکال است (مثلاً Writer) را ثبت کنید. سخت‌افزار، سیستم عامل، اولین نسخه‌ای که این اشکال در آن رخ می‌دهد را بنویسید.

مهم‌تر از همه، در steps to reproduce گام‌های لازم برای ایجاد دوباره مشکل را شرح دهید. در Actual Results آن‌چه رخ می‌دهد و اشکال دارد را بنویسید و در Expected Results بنویسید که درستش چه باید می‌بود.

بخش مهم دیگر، Other Information است که اگر به Help – About LibreOffice رجوع کنید، می‌توانید با کلیک کردن روی دکمه کپی، نسخه نرم‌افزار و دیگر موارد لازم را کپی کرده و در این کادر بچسبانید.

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

اِشکال (باگ) اندازه پنجره

نسخه‌های ۷.۴.۰ و ۷.۴.۱ لیبره‌آفیس مشکلی داشتند که باعث می‌شد اندازهٔ پنجره به‌خصوص در میز کار KDE به‌درستی به خاطر سپرده نشود.

این مشکل در نسخهٔ ۷.۴.۲ حل شده، ولی اگر برای بار دوم هم اجرا کردید و هنوز هم این مشکل را داشتید، باید یا نمایهٔ کاربری‌تان را بازنشانی کنید یا کلیدهای مشکل‌دارشان را.
یعنی

ooSetupFactoryWindowAttributes

را به‌صورت دستی از این فایل بردارید:

~/.config/libreofficei/4/user/registrymodifications.xcu

منبع

 

ذخیرهٔ تنظیمات

یکی از ابزارهای مفید صفحه‌گستردهٔ لیبره‌آفیس SOLVER است.
متأسفانه تنظیمات این ابزار داخل فایل ذخیره نمی‌شد و هر بار که فایل را باز می‌کردید، تنظیماتش به وضعیت پیش‌فرض برمی‌گشت و عملاً استفاده از این ابزار را کم‌فایده می‌ساخت.

قسمتی از راهنمای این ابزارخوشبختانه به‌همت Rafael Lima این باگ برطرف شده و در نسخهٔ ۷.۶ لیبره‌آفیس از محدودیت‌هایی که تحمیل می‌کرد خلاص خواهیم شد.

Rafael Lima