با سلام
این سوال در ادامه سوال قبلی مطرح شدهاست. در نظرهایی داده شده در سوال قبلی، جناب کارنپهلو به این سایت اشاره کردند که مطالب بسیار خوبی داشت. طبق آنچه که در لینک مذکور گفته شده و آنچه که من برداشت کردم، به نظر میاد که تعریف سایز فونت کاملا مشخص است. اما چون ظاهر گلیفها در فونتها فرق داره، احساس کوچکی و بزرگی به آدم دست میده. به همین دلیل به نظرم رسید که یک کد بنویسم و این موضوع را چک کنم. در کد اول برای مقایسه فونتهای انگلیسی مشابه با الگوریتمی که آقای کارنپهلو برای تعیین فاصله کرسی استفاده کردند، تمام حروف انگلیسی را داخل یک جعبه قرار دادم و مجموع ارتفاع و عمق آنها را حساب کردم. نتیجه برای دوتا فونت Arial
و Computer Modern
عینا برابر شد. نتیجه هم در شکل مشخص است.
\documentclass[12pt]{article}
\usepackage{fontspec}
\begin{document}
\newsavebox\TimesBox
\setbox\TimesBox\hbox{%
Q W E R T Y U I O P A S D F G H J K L Z X C V B N M
q w e r t y u i o p a s d f g h j k l z x c v b n m
}
\newdimen\TimesHeight
\setlength{\TimesHeight}{\dimexpr\dp\TimesBox+\ht\TimesBox\relax}
\newsavebox\ArialBox
\setbox\ArialBox\hbox{%
Q W E R T Y U I O P A S D F G H J K L Z X C V B N M
q w e r t y u i o p a s d f g h j k l z x c v b n m
}
\newdimen\ArialHeight
\setlength{\ArialHeight}{\dimexpr\dp\ArialBox+\ht\ArialBox\relax}
uuuuu ggggg Computer Modern Font:
\the\TimesHeight
\setmainfont{Arial}
uuuuu ggggg Arial:
\the\ArialHeight
\end{document}
نتیجه این شد
اما هنگامی که همین کار را برای فونتهای فارسی انجام دادم، نتیجه این شد که سایز آنها با یکدیگر برابر
نیست. این کد نوشته شده:
\documentclass[a4paper,12pt]{article}
\usepackage[margin=2cm]{geometry}
\usepackage{xepersian}
\settextfont{HM XNiloofar}
\setdigitfont{HM XNiloofar}
\setlatintextfont{Times New Roman}
\makeatletter
\newcommand*{\showfontsize}{%
اندازه این قلم
\f@size
است.
}
\makeatother
\newsavebox\TextBox
\newdimen\TextHeight
\def\TextSize{
\setbox\TextBox\hbox{%
چ ج ح خ ه ع غ ف ق ث ص ض ش س ی ب ل ا ت ن م ک گ و پ د ذ ر ز ط ظ ژ ّ َ ِ ُ ً ً ً ٍ ٌ ْ
}
\setlength{\TextHeight}{\dimexpr\dp\TextBox+\ht\TextBox\relax}
}
\long\def\Text#1%
{\rule{\textwidth}{1pt}
\par
این متن با فونت \lr{#1}\ و سایز \showfontsize \ نوشته شده است.
سایز فونت برابر است با:
\lr{\the\TextHeight}
}
\def\useFont#1{\settextfont{#1}\setdigitfont{#1}\fontsize{14}{15}\selectfont\TextSize\Text{#1}}
\begin{document}
\useFont{HM XNiloofar}
\useFont{IRNazanin}
\useFont{IRNazli}
\end{document}
و اینم نتیجه کار:
سوال اول اینکه آیا کدهایی که نوشتم مشکلی دارند؟
در صورتی که مشکل ندارند و الگوریتم درست است، آیا این همه اختلاف بین فونتهای فارسی وجود دارد؟
در این حالت بهتر است مسأله را با شورای عالی اطلاع رسانی هم مطرح کنیم تا نسبت به استانداردسازی
فونتهای خود اقدام کنند.