سلام،
ببخشید کسی اطلاع دارد که چطور میتوان در اسلایدها اعداد داخل فرمولها را به فارسی درآورد؟
من چند کار را امتحان کردم نشد:
1. به جای بسته ی bidi از بسته ی xepersian استفاده کردم.
2. در آرگمانهای تعریف فونتها به جای Script=Arabic,Mapping=parsidigits از Script=Parsi,Language=Parsi,Mapping=parsidigits استفاده کردم
3. دستورات زیر را هم از ``xepersian-mathsdigitspec" اضافه کردم:
\renewcommand\setdigitfont[2][]{ %
\let\glb@currsize\relax
\setkeys*[xepersian-mathsdigitspec]{options}{#1}%
\edef\@tempa{\noexpand\zf@fontspec{%
\XKV@rm}{#2}}\@tempa
\xepersian@PackageInfo{Defining the default Persian maths digits font as '#2'}
\DeclareSymbolFont{OPERATORS} {EU1}{\zf@family} {m}{n}
\def\persianmathsdigits{%
\SetMathCode{`0}{\mathord}{OPERATORS}{"06F0}
\SetMathCode{`1}{\mathord}{OPERATORS}{"06F1}
\SetMathCode{`2}{\mathord}{OPERATORS}{"06F2}
\SetMathCode{`3}{\mathord}{OPERATORS}{"06F3}
\SetMathCode{`4}{\mathord}{OPERATORS}{"06F4}
\SetMathCode{`5}{\mathord}{OPERATORS}{"06F5}
\SetMathCode{`6}{\mathord}{OPERATORS}{"06F6}
\SetMathCode{`7}{\mathord}{OPERATORS}{"06F7}
\SetMathCode{`8}{\mathord}{OPERATORS}{"06F8}
\SetMathCode{`9}{\mathord}{OPERATORS}{"06F9}
\SetMathCode{`\%}{\mathbin}{OPERATORS}{`٪}
\SetMathCharDef{\decimalseparator}{\mathpunct}{OPERATORS}{"066B}}
}
\def\DefaultMathsDigits{\def\SetMathsDigits{}}
\def\PersianMathsDigits{\def\SetMathsDigits{\ifx\persianmathsdigits\undefied\else\persianmathsdigits\fi}}
\def\AutoMathsDigits{\def\SetMathsDigits{\ifx\persianmathsdigits\undefied\else\if@Latin\else\persianmathsdigits\fi\fi}}
\AutoMathsDigits
\everymath{\SetMathsDigits}
\g@addto@macro\document{\everydisplay{\predisplaydirection=0 \SetMathsDigits}
\@ifpackageloaded{amsmath}{\everydisplay\@xp{\the\everydisplay \@displaytrue}}{}}
با تشکر، اوژن
سلام،
ببخشید کسی اطلاع دارد که چطور میتوان در اسلایدها اعداد داخل فرمولها را به فارسی درآورد؟
من چند کار را امتحان کردم نشد:
1. به جای بسته ی bidi از بسته ی xepersian استفاده کردم.
2. در آرگمانهای تعریف فونتها به جای Script=Arabic,Mapping=parsidigits از Script=Parsi,Language=Parsi,Mapping=parsidigits استفاده کردم
3. دستورات زیر را هم از ``xepersian-mathsdigitspec" اضافه کردم:
\renewcommand\setdigitfont[2][]{ %
\let\glb@currsize\relax
\setkeys*[xepersian-mathsdigitspec]{options}{#1}%
\edef\@tempa{\noexpand\zf@fontspec{%
\XKV@rm}{#2}}\@tempa
\xepersian@PackageInfo{Defining the default Persian maths digits font as '#2'}
\DeclareSymbolFont{OPERATORS} {EU1}{\zf@family} {m}{n}
\def\persianmathsdigits{%
\SetMathCode{`0}{\mathord}{OPERATORS}{"06F0}
\SetMathCode{`1}{\mathord}{OPERATORS}{"06F1}
\SetMathCode{`2}{\mathord}{OPERATORS}{"06F2}
\SetMathCode{`3}{\mathord}{OPERATORS}{"06F3}
\SetMathCode{`4}{\mathord}{OPERATORS}{"06F4}
\SetMathCode{`5}{\mathord}{OPERATORS}{"06F5}
\SetMathCode{`6}{\mathord}{OPERATORS}{"06F6}
\SetMathCode{`7}{\mathord}{OPERATORS}{"06F7}
\SetMathCode{`8}{\mathord}{OPERATORS}{"06F8}
\SetMathCode{`9}{\mathord}{OPERATORS}{"06F9}
\SetMathCode{`\%}{\mathbin}{OPERATORS}{`٪}
\SetMathCharDef{\decimalseparator}{\mathpunct}{OPERATORS}{"066B}}
}
\def\DefaultMathsDigits{\def\SetMathsDigits{}}
\def\PersianMathsDigits{\def\SetMathsDigits{\ifx\persianmathsdigits\undefied\else\persianmathsdigits\fi}}
\def\AutoMathsDigits{\def\SetMathsDigits{\ifx\persianmathsdigits\undefied\else\if@Latin\else\persianmathsdigits\fi\fi}}
\AutoMathsDigits
\everymath{\SetMathsDigits}
\g@addto@macro\document{\everydisplay{\predisplaydirection=0 \SetMathsDigits}
\@ifpackageloaded{amsmath}{\everydisplay\@xp{\the\everydisplay \@displaytrue}}{}}
با تشکر، اوژن
اصلاً تیازی به این کارها نیست، شما اگر از سبک xepersian استفاده کنید و قلمی را برای اعداد با استفاده از دستور \setdigitfont مشخص کنید، در محیط فارسی، اعداد فارسی و در محیط لاتین، اعداد لاتین خواهند بود.
سلام،
خیلی ممنون، من در فایل cls ای که استفاده میکردم فونتهای مورد نیازم را با دستورهای
\setmainfont[Scale=1,Script=Parsi,Language=Parsi,Mapping=parsidigits]{ ... }
\newfontfamily\...[Scale=0.7,Script=Parsi,Language=Parsi,Mapping=farsidigits]{ ... }
معرفی میکردم و برای فونت پارسی دیجیت هم از دستور دوم در الا استفاده میکردم:
\newfontfamily\parsidigits[Scale=1]{Parsi Digits}
و نتیجه نمیگرفتم، ولی این بار از دستور زیر استفاده کردم و شکر خدا همه چیز درست شد:
\setdigitfont[Scale=1]{Parsi Digits}
خیلی ممنونم!
چرا لقمه رو دور سرت میچرخونی؟
سلام،
خیلی ممنون، من در فایل cls ای که استفاده میکردم فونتهای مورد نیازم را با دستورهای
\setmainfont[Scale=1,Script=Parsi,Language=Parsi,Mapping=parsidigits]{ ... }
\settextfont{...}
\newfontfamily\...[Scale=0.7,Script=Parsi,Language=Parsi,Mapping=farsidigits]{ ... }[/left]
معرفی میکردم و برای فونت پارسی دیجیت هم از دستور دوم در الا استفاده میکردم:
\newfontfamily\parsidigits[Scale=1]{Parsi Digits}
و نتیجه نمیگرفتم،
\defpersianfont\myfontname{...}