Giter Club home page Giter Club logo

noqte's Introduction

Noqte

A fun, minimalistic Persian pixel font.

Introduction

I made this font in a week from scratch in order to use it in my game. The em-height is 1024 points. Each glyph is made of 100x100 points squares. There are some exceptions, sadly, mainly for designing diacritics. Those might be removed in a final version, however. For those at moment another square size is used which is 75% of the base square, i.e. 75x75 points.

I have made a few design choices and tried to remain consistent as much as possible:

  • There is no left bearing anywhere
  • All initial glyphs have one block right bearing (100 points empty space to the right)
  • Important: medial forms have no bearing to the right. I assumed that other initial or medial glyph should consider this and add blocks to the left if necessary
  • The bottom left block on each initial glyph is empty (exceptions FEH & QAF)
  • The bottom left block on each medial glyph is full

There might be some minor divergences, which is either a bug and should be fixed or is due to diacritics.

Features

The font covers main charachters for Persian from the following Unicode blocks:

  • Arabic (0600–06FF)
  • Arabic Presentation Forms-A (FB50–FDFF)
  • Arabic Presentation Forms-B (FE70–FEFF)
  • Basic Latin (ASCII)
  • Latin-1 Supplement (partial)

Moreover, Basic Latin i.e. ASCII and some suplementary letters and signs are included. I included as much as necessary to make the font usable for German and Spanish.

Glyphs

Here is a subset of glyphs.

Building

Install FontForge then build either using FontForge or the Makefile:

$ make

A font file should be generated in the same folder called noqte.ttf.

Bugs

Please report them on the repository or email me. The following problems are known to me:

  • There is no kerning
  • There are no anchors: top and bottom anchors added back in January 2024
  • Diacritics are not well-positioned: positioning improved using the aforementioned anchors
  • Lookup tables still incomplete

Test

There is a development script and an SDL test file included. To watch the changes and rebuild do:

$ make watch

or directly

$ make ttftest

and then run ttftest executable. SDL and HarfBuzz should be available on your system.

Aknowledgement

Credit when credit is due. I benefited from the work of others mentioned below.

License

Copyright 2022 Mehdi Sadeghi

Licensed under the SIL Open Font License, Version 1.1, with Reserved Font Name Noqte.

noqte's People

Contributors

mehdisadeghi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

noqte's Issues

Kerning

سلامی دیگر
یکی دیگه از موارد وجود کرنینگ هست
Screenshot 2024-02-12 161531
مهم ترین استثناء مربوط به حروف ر هست که توی تصویر بالا چند نمونه هست
Screenshot 2024-02-12 161531
استثناء های دیگه ای هم هست که توی سایت زیر میتونی نگاهشون کنی
http://libre.font-store.ir/PersianFontTestingTools

Ligatures

درودی دیگر.
میدونم که میدونی، ولی اینجا میزارمش که یادآوری کرده باشم. از کنار هم قرار گرفتن الف لام لام ه باید لیگچر الله تشکیل بشه و از کنار هم قرار گرفتن لام الف باید انواع لیگچر های مربوط ساخته بشن.
لا ـلا لآ ـلآ لأ ـلأ لإ ـلإ

Opentype Features

سلام مهدی جان
متوجه شدم هنوز برای این فونت داری کار میکنی، پس گفتم که یه ایراد قدیمی از فونت نقطه رو برات بفرستم.
یکی از مشکلات فونت نقطه نبود اسکریپت هست - به اصطلاح Opentype Features -
4564654
فیچر های medi & fina & init برای فونت های فارسی اجباریه تا به درستی توی اکثر محیط ها کار کنه.
توی عکسی که فرستادم فونت استعداد رو می‌‌بینی که با داشتن این قابلیت ها، توی محیط های مختلف کار میکنه، ولی فونت نقطه اینطور نیست(مثال خیلی ساده‌ش نرم افزار Word، واقعیتش اینه که خیلی از نرم افزار ها وابسته به وجود این فیچر ها هستن).

حالا این فیچر ها چی هستن؟ این فیچر ها مشخص میکنن که حروف ابتدا، انتها و وسط مرتبط با چه حرفی هستن.
مثلاً « ب‍ » مرتبط با « ب » هست و ما این موضوع رو توی اسکریپت فونت مشخص میکنیم تا زمانی که فونت میخواد توی برنامه‌ای اجرا بشه، بتونه درست فونت رو اجرا کنه.

البته فیچر های مختلف دیگه ای رو هم داریم، مثل rlig که برای ساخت ترکیبات اجباری استفاده میشه «لا» و...

حقیقتا تابحال با فونت فورج کار نکردم که بدونم چطوری باید این ویژگی رو پیاده کرد، ولی اگه کاری ازم بر بیاد حتما انجام میدم.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.