فونت در xepersian

از پارسی لاتک
پرش به: ناوبری، جستجو

انواع فونت‌ها در رایانه

در حالت کلی تمامی فونت هایی که شما با آن سروکار دارید، در سه دسته کلی طبقه‌بندی می‌گردد[۱].

  1. فونت‌های bitmap: فونت‌های Bitmap به صورت ماتریسی از نقاط بیان می‌شوند. به همین علت این فونت‌ها به سخت افزار سیستم وابسته‌ هستند و فقط در یک resolution معین به کار می‌آیند. یک bitmap روی صفحه ۷۵DPI با وجود یک چاپگر ۱۲۰۰DPI همچنان به صورت ۷۵DPI خواهد بود. فونت‌های bitmap صفحه نمایش معمولاً دارای پسوند bdf یا pcf می‌باشند. این فونت‌ها اغلب در پنجره‌ها، کنسول‌ها و ویرایشگرهای متنی کاربرد دارند، زیرا در این محلها عدم مقیاس پذیری مسئله چندان مهمی نیست.
  2. فونت‌های Outline: به این دسته از فونت‌ها اصطلاحا فونت‌های برداری (vector font) نیز گفته می‌شود. در این دسته از فونت‌ها، توصیف کلی فونت به صورت یکسری قواعد برداری و روابط ریاضیاتی بیان می‌شود، بدین‌سان این فونت‌‌ها تا هر اندازه دلخواهی توانایی مقیاس‌پذیر بودن دارند. برخی از انواع فونت های این دسته به شرح زیر است.
    • Post script Type 1
    • Post script Type 3
    • True Type
    • Open Type
  3. فونت‌ها نوع Stroke: این دسته از فونت ها از یکسری خطوط به همراه توصیفی از نحوه چیدمان خطوط در کنار یکدیگر، تشکیل شده است. فونت های metafont در این دسته جای می‌گیرند.

فونت در xepersian

در xepersian شما می توانید سه دسته فونت کلی تعریف کنید. این سه دسته عبارت اند از:

  • فونت مخصوص عبارات فارسی که با دستور settextfont تعیین می شود، به عنوان مثال:
\settextfont{B Nazanin}
  • فونت برای عبارات انگلیسی. اولا دقت کنید که برای این که xepersian بتواند بفهمد که کلمه شما انگلیسی است، بدین‌سان شما باید کلمه و یا عبارت خود را درون دستور \lr{} قرار دهید، مثلا:
 \lr{English Words}

و توسط دستور setlatintextfont نیز یک فونت انگلیسی تعریف کنید. مانند آن چه که در ادامه آمده است.

\setlatintextfont{Times New Roman}
  • در ضمن شما می توانید یک فونت هم برای اعداد و ارقام در فرمول های ریاضی تعریف کنید. به صورت زیر:
\setdigitfont{XB Zar}

دقت کنید که به صورت پیش فرض اعداد و ارقام به صورت فارسی در فرمول ها در لاتک نوشته می شود، اگر بخواهد اعداد و ارقام به صورت انگلیسی در فرمول ها ظاهر شوند، کافی است دستور زیر را بنویسید:

\DefaultMathsDigits

در مورد نحوه تنظیم اندازه فونت در بخش بعدی سخن به میان خواهد آمد.

تعریف اندازه فونت برای فونت های انگلیسی
تعریف اندازه فونت برای فونت های انگلیسی

اندازه فونت

قبل از این‌که وارد بحث اصلی شویم، ابتدا باید بفهمیم که منظور از اندازه فونت چیست؟ در یک تعریف کلی به تفاوت ارتفاع بین بلندترین حرف و کوتاهترین حرف، اندازه فونت گویند.


اگر تاکنون با word کار کرده اید، حتما فونت ها را با معیاری به نام اندازه می شناسید. این معیار اندازه با معیار اندازه بر حسب point در Latex متفاوت است. البته این تفاوت برای همه فونت ها یکسان نیست، لذا کار کمی پیچیده می شود. اما اگر در ادامه نیز همراهی کنید، فکر کنم به خوبی می توانید موضوع را متوجه شوید. فرض کنید که می‌خواهید نوشتار خود را با اندازه فونت ۱۴ در Latex تایپ کنید. برای این کار باید چند نکته و گام را در نظر بگیرید.

گام نخست

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

  • اندازه 10pt که اندازه کوچک نامیده شده (که فونت‌اندازه پیشفرض تک می‌باشد.)
  • اندازه 11pt که اندازه متوسط نامیده می‌شود.
  • اندازه 12pt که اندازه بزرگ محصوب می‌شود.

برای تنظیم اندازه فونت پایه در Latex چندین روش وجود دارد، که ما در ادامه به دو مورد از آن‌ها اشاره می‌کنیم.

  • می توانید این مورد را در قسمت اختیاری documentclass بنویسید. مانند:
\documentclass[12pt]{report}

با این کار شما اندازه فونت پایه را 12pt گذاشتید.

  • اگر دارید فایل استایل می نویسید، در دستور loadClass عدد 12pt را بگذارید.
 \LoadClass[12pt]{.....}
  • در اکثر استایل‌های پیش‌فرض Latex به مانند report، book، article، letter و ... اندازه پیش‌فرض 10pt است [۲].

گام دوم

اکنون شما می‌توانید با دو روش اندازه فونت خود را تعیین کنید. در روش اول، از دستور Scale در تعریف فونت استفاده می‌گردد. به عنوان مثال:

\settextfont[Scale=1.4]{XB Niloofar}
\setlatintextfont[Scale=1.3]{Times New Roman}

برای مثال با اندازه فونت پایه 10pt و Scale=1.2 اندازه فونت برابر با 12pt خواهد شد، و یا برای اندازه فونت پایه 12pt و Scale=1.2 اندازه فونت برابر با 14.4 خواهد شد. روش دوم مسستقل از اندازه فونت پایه است، در این روش در هرجایی از متن که می‌خواهید از دستور fontsize به صورت زیر استفاده کنید.

\fontsize{x}{y}\selectfont

در این روش از هر جایی از متن که دستورات فوق زده شود، اندازه فونت به مقدار x تنظیم خواهد شد و اندازه فاصله خط کرسی به y. البته هر جایی از متن که خواستید می‌توانید این اندازه را تغییر دهید به عنوان مثال، کد زیر را در نظر بگیرید.

\documentclass[10pt]{article}
\usepackage{xepersian}
\settextfont{XB Niloofar}
 
\begin{document}
در حالتی که اندازه‌ای تعریف نشده، نوشتار با اندازه فونت پایه چاپ می‌شود.‎
 
\fontsize{13}{14}\selectfont
از این قسمت به بعد اندازه فونت ۱۳ خواهد شد.
 
\fontsize{16}{17}\selectfont
از این قسمت به بعد اندازه فونت 16 خواهد شد.
\end{document}

خروجی در شکل زیر نشان داده شده است.

مثالی از تغییر اندازه فونت با دستور fontsize

در کل بهتر است از روش fontsize برای تغییر اندازه فونت به جای روش Scale استفاده کنید. دلیلش هم این است که (۱) کیفیت در مقیاس‌های بزرگ پایین می‌آید زیرا که شما تنها ابعاد را بزرگ یا کوچک می‌کنید (۲) هیچ کنترلی روی فاصله خط کرسی وجود ندارد [۳]

گام سوم

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

فونت فارسی و انگلیسی

در نرم افزار word وقتی شما از یک فونت به عنوان نمونه B Nazanin استفاده می کنید، word در هنگام مواجه با کلمات انگلیسی، این کلمات را به یک فونت پیش فرض تبدیل می کند. چرا که اغلب فونت هایی که ما با آن ها کار می کنیم، تنها می توانند زبان فارسی و یا انگلیسی را پشتیبانی کنند. مثلا B Nazanin فقط برای پشتیبانی از زبان فارسی است و نه برای انگلیسی. اما در LATEX این گونه نیست. برای حل این مشکل دو راه حل دارید:

  1. از فونت‌هایی استفاده کنید که هم فارسی را پشتیبانی می کنند و هم انگلیسی را، به مانند فونت‌های سری XB مثل XB Niloofar. برای دانلود فونت‌های از این قبیل به پیوند X Series fonts مراجعه کنید.
  2. در این روش، می بایست عبارات انگلیسی در متن فارسی را در داخل یک \lr{} قرار دهید تا فهمیده شود که این عبارت باید با فونت انگلیسی نوشته شود. در این روش عبارت‌های انگلیسی با فونت انگلیسی در متن ظاهر می‌گردد.

نکات:

  • در کل به نظر من راه حل دوم بهتر است.
  • در روش اوّل، نیازی نیست که کلمات انگلیسی خود را درون دستور \lr{} قرار دهید.

نحوه تعریف فونت های دیگر

توسط دستورات defpersianfont و deflatinfont به ترتیب می توان یکسری فونت فارسی و انگلیسی دیگر تعریف کرد که در جاهای دیگر متن بتوان از آن استفاده کرد. مثلا در ادامه ما دو فونت تعریف کرده ایم:

\defpersianfont\myFafont[Scale=.8]{XM Traffic}
\deflatinfont\myEnfont[Scale=.9]{Adobe Arabic}

هرگاه خواستیم یک عبارت از متن ما به صورت فونت های یادشده نوشته شود کافی است به صورت زیر عمل کنیم:

\myFafont{.................}

که به جای نقطه چین کافی است عبارتی را که می خواهیم به صورت آن فونت در آید را قرار دهیم.


همچنین ببینید


مراجع

  1. انواع فونتها
  2. What is the default font size of a LaTeX document?
  3. تنظیم اندازه قلم لاتک برای همخوانی با اندازه قلم میکروسافت ورد