• Welcome to پارسی‌لاتک.
 
از تاریخ ۱۳۹۳/۸/۱۴ به دلیل ارائه خدمات بهتر به سایت جدید پرسش و پاسخ مهاجرت کرده‌ایم؛ از این رو امکان عضویت و ارسال پست در تالار غیرفعال شده است. لطفاً برای پرسیدن سوال‌های خود به سایت جدید مراجعه کنید.

ورود به سایت جدید

Main Menu

انتخاب فونت برای اعداد فارسی

نویسنده فرشاد ترابی, می 30, 2012, 12:55:20 بعد از ظهر

« قبلی - بعدی »

فرشاد ترابی

با سلام خدمت همه دوستان عزیز

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

با تشکر از همه



هادی صفی‌اقدم

تا جایی که من اطلاع دارم وجود نداره. (اگر هست دوستان بگن.)
ولی یک راهش اینه که اعداد داخل متن را هم به صورت داخل دلاری بنویسید.

vafa

#2
نقل قول از: Farschad در می 30, 2012, 12:55:20 بعد از ظهر
با سلام خدمت همه دوستان عزیز

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

با تشکر از همه
بهترین راه حل این است که از یک قلم هم برای متن معمولی و هم برای قلم ریاضی استفاده کنید اما اگر بخواهید اعداد در متن معمولی، داخل محیط ریاضی باشند، احتمالاً بتوانید از دستور بدوی \XeTeXinterchartoks استفاده کنید تا اگر عددی در متن قرار می‌گیرد، بصورت خودکار داخل محیط ریاضی قرار بگیرد.

فرشاد ترابی

نقل قول از: هادی صفی‌اقدم در می 30, 2012, 01:07:39 بعد از ظهر
تا جایی که من اطلاع دارم وجود نداره. (اگر هست دوستان بگن.)
ولی یک راهش اینه که اعداد داخل متن را هم به صورت داخل دلاری بنویسید.

البته تنها راهش فعلا همینه ولی یک مشکل داره و اون اینه که تمامی شماره های اتوماتیک مثل شماره صفحه، شماره معادله، شماره فصل و ..
همه با فونت مبنا نوشته میشه و برای اینکه متن کلا یکسان بشه لازمه که تمامی شمارنده ها رو هم عوض کرد.

هادی صفی‌اقدم

نقل قول از: وفا کارن‌پهلو در می 30, 2012, 03:38:47 بعد از ظهر
بهترین راه حل این است که از یک قلم هم برای متن معمولی و هم برای قلم ریاضی استفاده کنید اما اگر بخواهید اعداد در متن معمولی، داخل محیط ریاضی باشند، احتمالاً بتوانید از دستور بدوی \XeTeXinterchartoks استفاده کنید تا اگر عددی در متن قرار می‌گیرد، بصورت خودکار داخل محیط ریاضی قرار بگیرد.
لطفا میشه نحوه‌ی استفاده را بفرمایید؟
با تشکر قبلی

حسن ذاکری

نقل قول از: هادی صفی‌اقدم در می 30, 2012, 10:58:30 بعد از ظهر
لطفا میشه نحوه‌ی استفاده را بفرمایید؟
با تشکر قبلی

\documentclass{article}
\usepackage{xepersian}
\defpersianfont\Yas[Scale=3]{Yas}
\XeTeXinterchartokenstate=1
\newXeTeXintercharclass\Sp
\newXeTeXintercharclass\nums
\XeTeXcharclass `0\nums
\XeTeXcharclass `1\nums
\XeTeXcharclass `2\nums
\XeTeXcharclass `3\nums
\XeTeXcharclass `4\nums
\XeTeXcharclass `5\nums
\XeTeXcharclass `6\nums
\XeTeXcharclass `7\nums
\XeTeXcharclass `8\nums
\XeTeXcharclass `9\nums
\XeTeXcharclass `۰\nums
\XeTeXcharclass `۱\nums
\XeTeXcharclass `۲\nums
\XeTeXcharclass `۳\nums
\XeTeXcharclass `۴\nums
\XeTeXcharclass `۵\nums
\XeTeXcharclass `۶\nums
\XeTeXcharclass `۷\nums
\XeTeXcharclass `۸\nums
\XeTeXcharclass `۹\nums
\chardef\CharNormal=0
\newtoks\Num
\Num={\bgroup\Yas}
\newtoks\Nor
\Nor={\egroup}
\begin{document}
\XeTeXinterchartoks\nums\CharNormal=\Nor
\XeTeXinterchartoks\nums\nums={}
\XeTeXinterchartoks\CharNormal\nums=\Num
\XeTeXinterchartoks\nums 255 =\Nor
\XeTeXinterchartoks255\nums=\Num
سلام ۱ سلام۱ سلام ۱سلام
لام۱ست

\lr{a12sf3 4 s s3 4s}
\end{document}


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

در صورتی که به تازگی عضو تالار شده‌اید، در صفحه معرفی اعضای جدید برای شما ایجاد شده است.

vafa

#6
نقل قول از: هادی صفی‌اقدم در می 30, 2012, 10:58:30 بعد از ظهر
لطفا میشه نحوه‌ی استفاده را بفرمایید؟
با تشکر قبلی
برای شما بهتره که از بسته xesearch استفاده کنید (این بسته از اون دستور بدوی استفاده کرده و کار کردن باهاش برای کاربر عادی راحت‌تره):

\documentclass{article}
\renewcommand{\baselinestretch}{1.5}
\usepackage{xesearch}
\usepackage{xepersian}
\settextfont{XB Zar}
\SearchList{LatinNumbers}{$#1$}{0?,1?,2?,3?,4?,5?,6?,7?,8?,9?}
\SearchList{PersianNumbers}{$#1$}{۰?,۱?,۲?,۳?,۴?,۵?,۶?,۷?,۸?,۹?}
\SetMathCode{`۰}{\mathalpha}{OPERATORS}{`۰}
\SetMathCode{`۱}{\mathalpha}{OPERATORS}{`۱}
\SetMathCode{`۲}{\mathalpha}{OPERATORS}{`۲}
\SetMathCode{`۳}{\mathalpha}{OPERATORS}{`۳}
\SetMathCode{`۴}{\mathalpha}{OPERATORS}{`۴}
\SetMathCode{`۵}{\mathalpha}{OPERATORS}{`۵}
\SetMathCode{`۶}{\mathalpha}{OPERATORS}{`۶}
\SetMathCode{`۷}{\mathalpha}{OPERATORS}{`۷}
\SetMathCode{`۸}{\mathalpha}{OPERATORS}{`۸}
\SetMathCode{`۹}{\mathalpha}{OPERATORS}{`۹}
\begin{document}
این یک آزمایش است ۲۰۱۲ یا می‌توانم بنویسم 2012 این در حالی است که اعداد در متن باید با قلم زر نوشته شوند اما با قلم پارسی نوین نوشته می‌شوند.
\end{document}

فرشاد ترابی

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

vafa

نقل قول از: Farschad در سپتامبر 22, 2012, 02:10:38 بعد از ظهر
من این متن را پردازش کردم با خطایی که در فایل پیوست است مواجه شدم. مشکل از کجاست؟
بروز نبودن توزیع تک.