Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ارقام با عرض یکسان #78

Open
rastikerdar opened this issue Oct 14, 2017 · 7 comments

Comments

@rastikerdar
Copy link
Owner

commented Oct 14, 2017

دوستی درخواست کرده‌اند که نسخه ای از فونت در بسته قرار گیرد که عرض ارقام در آن یکسان باشد. ایشان برای حسابداری می‌‌خواهند از قلم استفاده نمایند.

@morealaz

This comment has been minimized.

Copy link
Contributor

commented Oct 28, 2017

بهتر نیست که از فونت vazir code استفاده کنند که یک فونت مونو هست؟
@aziz

This comment has been minimized.

Copy link

commented Oct 28, 2017

موافق نیستم. وزیر کد یه قلم دیگه است با طراحی متفاوت. گاهی اوقات طراحی اعداد خود وزیر مناسب‌تره.
این کار با امکانات اوپن تایپ باید پیاده سازی بشه.
این قلم رو نگاه کنید به عنوان مثال
https://rsms.me/inter/

@MehdiSaeedifar

This comment has been minimized.

Copy link

commented Nov 11, 2017

میشه دلیل اصلی اینکه عرض اعداد در خود فونت یکسان نیست را توضیح بدهید؟ چون واقعا ما هم در برنامه خودمان که با اعداد زیاد سر و کار داریم به مشکل برخورده ایم. با سپاس

@zoghal

This comment has been minimized.

Copy link

commented Nov 11, 2017

@MehdiSaeedifar دوست عزیز من قبل از اینکه برایتان توضیح بدم می‌خواستم بدانم شما در چه حوزه‌ای فعالیت می‌کنید که به این مورد نیاز پیدا کردید؟(وب- ویندوز فرم، موبایل یا ...). من برای شناخت نیازمندی‌ها، مشکلات پیرامون فونت فارسی و بازتاب انها در پژوهشنامه‌ فونت فارسی نیاز به پاسخ شما دارم. با تشکر

مقدمه:

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

عرض اعداد:

اکثر اعداد در لاتین عرض بسیار نزدیک به هم دارند و فقط عدد ۱ با سایر اعداد متمایز است:

screenshot-rsms me-2017-11-11-23-36-52

اما در اعداد فارسی/عربی عرض اکثر اعداد تفاوت زیادی با یکدیگر دارند.(البته بسته به طراحی نوع فونت)

screenshot 2017-11-11 22 29 32


در حالت عادی در فونت وزیر عرض و فواصل اعداد به صورت زیر تعریف شده‌اند:

screenshot 2017-11-11 22 29 15


حال اگر من عرض اعداد را یکسان ست کنم ببینید چه اتفاقی می‌افتد:

screenshot 2017-11-11 22 28 03

همانطور که مشهود هست:

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

راهکارها و مشکلات:

بطور کلی سه راه برای ایجاد اعداد هم عرض وجود دارد:

۱- اضافه کردن حاشیه‌ها به اعداد که در بالا مشکلش را توضیح دادم

۲- استفاده از تکنیک ست کردن کرنینگ و تنظیم فاصله هر عدد با عدد مجاورش که ماکزیمم ۱۰ *۱۰ حالت ایجاد می‌شود، البته علایم رو هم باید در نظر گرفت. همین مورد رو ضربدر تعداد وزن‌های فونت وزیر کنید ببینید چقدر می‌تواند زمانبر و دشوار باشد. البته موفق شدم یک فرمول و الگوریتم برای کمتر و سریع شدن این مورد پیدا کنم که متاسفانه هنوز بقدر کافی تست نکردم و نتیجه فعلی اصلا مطلوب خودم قرار نگرفته :( است.

۳- تعریف یکسری اعداد سفارشی که فرم اعداد دفرمه شوند به امید اینکه کمی مقدار عرض اعداد نزدیکتر به یکدیگر شوند.

۴- شاید دیگران راهکار بهتری مد نظر داشته باشند!

امیدوارم توانسته باشم بخوبی مطلب را توضیح داده باشم.
اگر سوالی یا پیشنهاد و … بنده در خدمت هستم.
شاد و پیروز باشید.

@MehdiSaeedifar

This comment has been minimized.

Copy link

commented Nov 12, 2017

@zoghal
جناب سوزنچی؛ ابتدا بابت پاسخ کاملتان تشکر می کنم.
حوزه ی کاری ما برنامه های مالی و اداری هم در زمینه وب و هم در ویندوز فرم است که طبیعتا با اعداد و ارقام زیاد سر و کار داریم. مشکلی هست که فرض کنید مبلغ بزرگی شامل ارقام با عرض کم مثل یک باشد و در مقایسه با مبلغ کمتری که ارقام آن عرض بیشتری داشته باشند، از نظر عرضی کمتر به نظر می رسد که در نگاه اول کاربر را گمراه می کند.
همچنین هنگامی که مبالغ به صورت ستونی زیر هم چیده شده باشند، کاربر بیشتر مواقع دو مبلغ زیر هم را می خواهد به صورت چشمی با هم جمع بزند و به دلیل تراز نبودن اعداد زیر یکدیگر این کار برایش مشکل می شود.
با سپاس

@Javid-Izadfar

This comment has been minimized.

Copy link

commented Nov 12, 2017

برای حل کردن این مشکل حداقل در وب راه‌ حل آسونی وجود داره:
font-variant-numeric: tabular-nums;

تا جایی که میدونم، اکثر مرورگرهای (بجز اینترنت اکسپلورر و اج) ساپورتش میکنن

اطلاعات بیشترش رو میتونید اینجا بخونید.
https://www.w3.org/TR/css-fonts-3/#propdef-font-variant-numeric

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

بروز رسانی:
راه حل دوم برای وب:
font-feature-settings: "tnum";

به نظر میرسه پشتیبانی مرورگرها از راه حل دوم بهتر باشه و حداقل اینترنت اکسپلورر ۱۰ ساپورتش کنه

اطلاعات بیشترش رو میتونید اینجا بخونید
https://www.w3.org/TR/css-fonts-3/#propdef-font-feature-settings

@zoghal

This comment has been minimized.

Copy link

commented Nov 12, 2017

درود مجدد

حوزه ی کاری ما برنامه های مالی و اداری هم در زمینه وب و هم در ویندوز فرم است که طبیعتا با اعداد و ارقام زیاد سر و کار داریم.

خیلی هم عالی،بطور کلی توسعه‌دهنده که هم تجربه دسکتاپ و وب رو داشته باشد کمتر تو گیت‌هاب دیدم. ادامه بدیم ببینیم آخرش به نتیجه می‌رسیم یا نه :)

مشکلی هست که فرض کنید مبلغ بزرگی شامل ارقام با عرض کم مثل یک باشد و در مقایسه با مبلغ کمتری که ارقام آن عرض بیشتری داشته باشند، از نظر عرضی کمتر به نظر می رسد که در نگاه اول کاربر را گمراه می کند.

دوست عزیز شما کاملا حق دارید، این مشکل وجود دارد.

همچنین هنگامی که مبالغ به صورت ستونی زیر هم چیده شده باشند، کاربر بیشتر مواقع دو مبلغ زیر هم را می خواهد به صورت چشمی با هم جمع بزند و به دلیل تراز نبودن اعداد زیر یکدیگر این کار برایش مشکل می شود.

من چند مثال آماده کردم تا سایر دوستان دقیقا نسبت به مشکل آشنا شوند تا بتونم بدین شکل یک راهکار اساسی

screenshot 2017-11-12 16 11 05
screenshot 2017-11-12 16 11 08
screenshot 2017-11-12 16 11 28
screenshot 2017-11-12 16 11 37

چندتا نکته فنی و قابل تامل:

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

چند نکته درباره پیاده‌سازی فونت:

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

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

شاد و پیروز باشید.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
6 participants
You can’t perform that action at this time.