--- title: انتشار فونت نقطه tags: بازی تفریح طراحی category: پروژه uuid: 30cd7244-f691-45df-a773-7c1344c4337d --- طی هفته گذشته تقریبا شبانهروز از بیخ و بن مشغول ساختن یک پیکسلفونت جدید و آزاد فارسی بودهام. امروز اصل کار تقریبا تمام شده است. نام این قلم را «نقطه» گذاشتهام. ![](assets/pimg/noqte.png) نقطه به اصطلاح یک پیکسلفونت است. یعنی تمام «گلیفهای» درون فونت از اجزائی شبیه به پیکسل ساخته شدهاند و بنابراین روی صفحههای نمایش قدیمی یا «رترو» بویژه برای بازیهای دوبعدی برای کنسولها به خوبی نمایش داده میشود. ## چرا نقطه را ساختم؟ معمولا جواب این پرسش این است: «چرا که نه؟» ولی شرح میدهم. مدتها پیش میخواستم یک صفحهی خطای ۴۰۴ رترو برای وبسایتم بسازم و مدتی پیش هم حین ساختن یک بازی کوچک دوبعدی به جستجوی یک قلم رترو آزاد فارسی برآمدم. اصلا چیزی پیدا نکردم چه برسد به یک فونت آزاد. بنابراین تصمیم گرفتم یکی بسازم. ## اصول طراحی نقطه ایدهی کلیام این بود که مثل حروفچینی و تایپوگرافی سنتی ایرانی یک نقطه را بع عنوان مبدا انتخاب کنم و تمام گلیفها را از روی آن و با کنار هم قرار دادن مربعها بسازم. هرچند حین ساخت پی بردم به دلیل استفاده زیاد از منحنی در الفبای عربی و نیز اتصال گیلفها از هر دو طرف این کار بسیار سخت است. بویژه هنگامی که اعراب وارد معادله میشود، چرا که طراحی آنها با مربع مرجع من به طول ۶۴ نقطه یک چالش جدی است. فعلا برای طراحی اعراب از یک مربع کوچکتر به طول ۳۲ نقطه استفاده کردهام. با مطالعهی کتاب تایپوگرافی آقای فرشید مثقالی سعی کردم اصولی را در طراحیام رعایت کنم. بویژه استفاده از کرسیهای مشخص برای دندانهها و نقطهها و اعراب و مانند آن. از طرفی در طراحی گلیفها هم تصمیماتی گرفته و سعی کردم در طراحی تمام گلیفها آنها را به صورت یکپارچه راعایت کنم: ۱. ارتفاع تمام گلیفها معمولا حداکثر ۷ بلاک است (هر بلاک ۶۴×۶۴ نقطه است) ۲. هر گلیف آغازی یک بلاک خالی سمت راست دارد ۳. هیچ گلیف میانی بلاک خالی دست راست ندارد ۴. هیچ گلیف بلاک خالی سمت چپ ندارد ۵. هر گلیف میانی موظف است به مقدار کافی از سمت چپ جا رزرو کند (بخاطر قانون ۲) یادآوری کنم که هر حرف به چهار حالت نیاز دارد: آغازی و میانی و پایانی و منزوی. یعنی چهار گلیف برای هر حرف که جمعا میشود ۱۳۳ گلیف فقط برای حروف الفبا بدون احتساب ارقام و نشانهها. ## چطور نقطه را ساختم؟ برای ساخت نقطه از برنامهی FontForge استفاده کردم. از جایی که میدانستم صابر راستیکردار تعداد زیادی قلم با آن طراحی کرده است متقاعد شدم که حتما کار من را هم راه میاندازد! [راهنمای صابر] را هم برای شروع خواندم که سودمند بود بویژه شرح رفرنسها. برای فهم طرز کار فونتفورج مرتب از [کتاب فونتفورج] بهره گرفتم که بسیار سودمند بود. همچنین از یک [فونت کنسول آزاد] ایده گرفتم. همینطور به کرات از [مستندات فونتفورج] برای فهم عملکرد برنامه و دیالوگهای مختلف آن استفاده کردم. در طراحی هم به وفور از رفرنسها استفاده کردهام تا از تکرار مکررات پرهیز کنم. ## کدام گلیفها را پیادهسازی کردهام؟ بیشتر گلیفهای لازم برای نمایش صحیح نوشتار فارسی و تا حدودی عربی و برخی از گلیفهای اسکی را از میان چهار بلاک یونیکد زیر پیادهسازی کردهام: Arabic (0600–06FF) Arabic Presentation Forms-A (FB50–FDFF) Arabic Presentation Forms-B (FE70–FEFF) Basic Latin (ASCII) - letters missing ![](assets/pimg/glyphs.png) توجه کنید که در حال حاضر نقطه همچنان نیاز به بهینهسازی دارد و در وضعیت بتا است. اشکالاتی وجود دارد که باید برطرف کنم بویژه در اعراب و قرارگیری نقطهها ولی برای استفاده اولیه مناسب است و در بازی کوچکی که دارم میسازم از آن استفاده کردهام. سعی میکنم حروف لاتین را هم به آن اضافه کنم. ![](assets/pimg/noqtegame.png) ## کجاست این نقطه؟ [سورس نقطه] را روی سورسهات منتشر کردهام. سورس تنها یک فایل است بنام `noqte.sfd` که میتوانید با سورسفورج باز کنید. [فایل ttf نقطه] هم از ریپازیتوری قابل دانلود است. اگر سورسفورس را نصب دارید (روی لینوکس و مانند آن) کافیست دستور `make` را در فولدر نقطه وارید کنید تا فایل `noqte.ttf` ساخته شود. روی لینوکس میتوانید این فایل را در پوشهی `~/.fonts` کپی کنید و بعد با دستور `fc-cache -v` کش سیستم را بروز کنید. بعد از آن باید بتوانید آن را در برنامهها ببینید و بکار ببرید. نقطه تحت مجوز آزاد OFL منتشر شده است. این هم عیدی امسال من به شما. آپدیت ۲۱ فروردین: افزودن پانگرام با فونت نقطه (جملهای که دربردگیرندهی همهی حروف باشد)