درباره افشین

متولد ۲۴ دی ۱۳۵۶ و ساکن مشهد.

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

بعد از سازمان‌های دولتی دانمارک، ارتش اتریش نیز ۱۶,۰۰۰ رایانهٔ شخصی خود را از مایکروسافت‌آفیس به لیبره‌آفیس منتقل کرده است. 🙂

دلایل اصلی این تغییر عبارت‌اند از:

  • تقویت حاکمیت دیجیتال
  • حفظ استقلال زیرساخت آی‌تی
  • اطمینان از اینکه داده‌ها در داخل سازمان پردازش می‌شوند.

Insignia of the Bundesheer

برنامه‌ریزی اولیه برای مهاجرت به لیبره‌آفیس در سال ۲۰۲۰ (۱۳۹۹) شکل گرفت و برنامه‌ریزی مفصل و آموزش توسعه‌دهندگان داخلی برای انجام بهبودها در سال ۲۰۲۲ (۱۴۰۱) آغاز شد. در سال ۲۰۲۳ (۱۴۰۲)، قراردادی با یک شرکت در آلمان برای ارائهٔ پشتیبانی فنی و توسعهٔ بیشتر منعقد شد.

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

پیچیدگی مصنوعی در فایل‌های مایکروسافت‌آفیس

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

لوگوی اکسل

برای مثال در XLSX (فرمتی که صفحه‌گستردهٔ اکسل از آن استفاده می‌کند) داده‌ها تکه‌تکه و پراکنده در چند فایل مختلف نگه‌داری می‌شوند. مثلاً متن‌ها در یک فایل جداگانه ذخیره می‌شوند و سلول‌ها فقط به شمارهٔ آن متن اشاره می‌کنند. حتی تاریخ‌ها هم به‌صورت عددی از یک تاریخ مرجع اشتباه (۲۹ فوریه ۱۹۰۰ که اصلاً وجود ندارد) ذخیره می‌شوند که خودش مشکل‌ساز است. در نتیجه ساختار فایلی که در ظاهر باید ساده باشد، در قالب OOXML بسیار مبهم، نامنظم و درهم است؛ یعنی کسی که بخواهد دقیقاً بفهمد چه چیزی کجاست، باید زمان و دانش نسبتاً بالایی داشته باشد.

این پیچیدگی پنهان به‌صورت زیرکانه‌ای کاربران را وابسته به نرم‌افزار مایکروسافت‌آفیس نگه می‌دارد، چون فهم و بازتولید کامل این فرمت برای نرم‌افزارهای غیرمایکروسافتی سخت است.

افزونه‌ای مانند پاک‌نویس

همیشه افسوس می‌خوردم که چرا واژه‌پرداز لیبره‌آفیس برای ویرایش‌های صوریِ متن افزونه‌ای مشابه پاک‌نویس ندارد و افسوسِ بیشتر اینکه داوطلبی هم برای پیاده‌سازی‌اش وجود نداشت. 😔

بعد از روی کار آمدن هوش مصنوعی، بی‌اغراق چند ماه همهٔ تلاشم را کردم و تمام راه‌های ممکن را رفتم تا بلکه با کمک‌های او بتوانم یک اسکریپت (ماکروی پایتون) را به افزونه‌ای برای لیبره‌آفیس تبدیل کنم.
و اکنون پس از چند ماه آزمون و خطا به این نتیجه رسیدم که فعلاً شدنی نیست و مهارت و دانش یک برنامه‌نویس را می‌طلبد.

این شد که تصمیم گرفتم فعلاً همین اسکریپتی را که هست و درست هم کار می‌کند منتشر کنم تا ببینیم در آینده چه پیش می‌آید.

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

  • نیم‌فاصله‌دار کردن افعالی که پیشوند فعلی دارند، مانند می روم به ← می‌روم یا می شود به ← می‌شود.
  • اصلاح فاصله‌گذاری آن افعال پیشوندی که از ترکیب پیشوند+مصدر فعل ساخته شده‌اند، مثلاً اصلاح فرا گرفتن به ← فراگرفتن یا باز داشتن به ← بازداشتن
  • نیم‌فاصله‌دار کلماتی که به پسوندهایی مانند تر، ترین و علامت جمع ها ختم می‌شوند، مثلاً کثیف تر/کثیفتر به ← کثیف‌تر و کتاب ها/کتابها به ← کتاب‌ها
  • نیم‌فاصله‌دار کردن کلماتی که به ضمایر ملکی ختم می‌شوند، مثلاً خانه ام به ← خانه‌ام
  • تبدیل اعداد انگلیسی و عربی به اعداد فارسی
  • تبدیل حرف ي و ك عربی به ی و ک فارسی
  • تبدیل علائم سجاوندی انگلیسی به فارسی، مثلاً تبدیل ? به ؟
  • تبدیل گیومهٔ انگلیسی به فارسی
  • حذف فاصلهٔ اضافه بعد از علائم سجاوندی
  • حذف فاصلهٔ اضافهٔ بین کلمات مستقل، مثلاً زبان    فارسی به ← زبان فارسی
  • اصلاح کسرهٔ اضافه در کلماتی مثل خانه‌ی به ← خانهٔ
  • تصحیح کلماتی که غلط املایی دارند با کمک گرفتن از بانک کلمات فارسی (نکته: مسیر این بانک را نسبت به سیستم خود اصلاح کنید).

📥 اسکریپت را می‌توانید از اینجا بردارید. بانک کلمات را هم از اینجا می‌توانید بردارید.

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

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

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

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

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

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

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

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 باشد، لیبره‌آفیس در زمان باز کردن سند قفل می‌کند و عملاً نمی‌شود از آن استفاده کرد.

مشکل کوچکی نیست، اما خوشبختانه برطرف شده و در نسخهٔ 25.8 لیبره‌آفیس وجود نخواهد داشت.

دردسرهای تراز

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

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

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

این مشکل در اینجا گزارش شده است و امیدواریم تا پیش از انتشار نسخهٔ پایدار بعدی برطرف بشود.