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

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

ابزار شمارش کلمات لیبره‌آفیس متأسفانه انعطاف‌پذیری لازم را ندارد و تمامی متون موجود در سند را محاسبه می‌کند، از جمله:

  • توضیحات اضافی در پانویس‌ها
  • ارجاعات در پی‌نوشت‌ها یا یادداشت‌های پایان
  • ینوشته‌های داخل کادرهای متنی (که ممکن است نمودار یا توضیح تصویر باشند)

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

چه باید کرد؟ 🤔

یک راه‌حل ساده و کاربردی برای این مشکل وجود دارد که قبلاً در واژه‌پرداز مایکروسافت ورد پیاده‌سازی شده است.

واژه‌شمار در وُردهمان‌طور که در تصویر مشخص است، یک چک‌باکس ساده در پایین پنجره وجود دارد با عنوان: شامل کردن کادرهای متنی، پانویس‌ها و یادداشت‌های پایانی.

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

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

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

در بسیاری از قلم‌های (فونت‌های) فارسی، حروف فقط یک شکل ندارند. گاهی طراح چند نسخهٔ جایگزین برای یک حرف می‌سازد؛ مثلاً «ک کلاسیک»، «ک مدرن»، «ک خوش‌نویسانه». این شکل‌های متفاوت در قالب بسته‌هایی به نام 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 حجیم با محتوای راست به چپ همچنان یک چالش برای واژه‌پرداز لیبره‌آفیس است و نیاز به بهینه‌سازی‌های بیشتری دارد تا تجربهٔ کاربری روان‌تری را برای کاربران زبان‌هایی مثل فارسی فراهم کند.