پارسی‌لاتک

زی‌پرشین XePersian => زی‌تک => نويسنده: فرشاد ترابی در می 30, 2012, 12:55:20 بعد از ظهر

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

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

با تشکر از همه


عنوان: پاسخ : انتخاب فونت برای اعداد فارسی
رسال شده توسط: هادی صفی‌اقدم در می 30, 2012, 01:07:39 بعد از ظهر
تا جایی که من اطلاع دارم وجود نداره. (اگر هست دوستان بگن.)
ولی یک راهش اینه که اعداد داخل متن را هم به صورت داخل دلاری بنویسید.
عنوان: پاسخ : انتخاب فونت برای اعداد فارسی
رسال شده توسط: vafa در می 30, 2012, 03:38:47 بعد از ظهر
نقل قول از: Farschad در می 30, 2012, 12:55:20 بعد از ظهر
با سلام خدمت همه دوستان عزیز

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

با تشکر از همه
بهترین راه حل این است که از یک قلم هم برای متن معمولی و هم برای قلم ریاضی استفاده کنید اما اگر بخواهید اعداد در متن معمولی، داخل محیط ریاضی باشند، احتمالاً بتوانید از دستور بدوی \XeTeXinterchartoks استفاده کنید تا اگر عددی در متن قرار می‌گیرد، بصورت خودکار داخل محیط ریاضی قرار بگیرد.
عنوان: پاسخ : انتخاب فونت برای اعداد فارسی
رسال شده توسط: فرشاد ترابی در می 30, 2012, 05:12:19 بعد از ظهر
نقل قول از: هادی صفی‌اقدم در می 30, 2012, 01:07:39 بعد از ظهر
تا جایی که من اطلاع دارم وجود نداره. (اگر هست دوستان بگن.)
ولی یک راهش اینه که اعداد داخل متن را هم به صورت داخل دلاری بنویسید.

البته تنها راهش فعلا همینه ولی یک مشکل داره و اون اینه که تمامی شماره های اتوماتیک مثل شماره صفحه، شماره معادله، شماره فصل و ..
همه با فونت مبنا نوشته میشه و برای اینکه متن کلا یکسان بشه لازمه که تمامی شمارنده ها رو هم عوض کرد.
عنوان: پاسخ : انتخاب فونت برای اعداد فارسی
رسال شده توسط: هادی صفی‌اقدم در می 30, 2012, 10:58:30 بعد از ظهر
نقل قول از: وفا کارن‌پهلو در می 30, 2012, 03:38:47 بعد از ظهر
بهترین راه حل این است که از یک قلم هم برای متن معمولی و هم برای قلم ریاضی استفاده کنید اما اگر بخواهید اعداد در متن معمولی، داخل محیط ریاضی باشند، احتمالاً بتوانید از دستور بدوی \XeTeXinterchartoks استفاده کنید تا اگر عددی در متن قرار می‌گیرد، بصورت خودکار داخل محیط ریاضی قرار بگیرد.
لطفا میشه نحوه‌ی استفاده را بفرمایید؟
با تشکر قبلی
عنوان: پاسخ : انتخاب فونت برای اعداد فارسی
رسال شده توسط: حسن ذاکری در می 31, 2012, 12:27:01 قبل از ظهر
نقل قول از: هادی صفی‌اقدم در می 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 در جون 04, 2012, 08:49:36 قبل از ظهر
نقل قول از: هادی صفی‌اقدم در می 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}
عنوان: پاسخ : انتخاب فونت برای اعداد فارسی
رسال شده توسط: فرشاد ترابی در سپتامبر 22, 2012, 02:10:38 بعد از ظهر
من این متن را پردازش کردم با خطایی که در فایل پیوست است مواجه شدم. مشکل از کجاست؟
عنوان: پاسخ : انتخاب فونت برای اعداد فارسی
رسال شده توسط: vafa در سپتامبر 22, 2012, 02:42:37 بعد از ظهر
نقل قول از: Farschad در سپتامبر 22, 2012, 02:10:38 بعد از ظهر
من این متن را پردازش کردم با خطایی که در فایل پیوست است مواجه شدم. مشکل از کجاست؟
بروز نبودن توزیع تک.