نمونه زیر را ببینید:
\documentclass{article}
\usepackage{xepersian}
\settextfont{Times New Roman}
\defpersianfont\yasfont{Yas}
\makeatletter
\XeTeXinterchartoks \e@alloc@intercharclass@top \bidi@digits@charclass = {\BeginSwitchDigitFont}
\XeTeXinterchartoks \bidi@digits@charclass \e@alloc@intercharclass@top = {\EndSwitchDigitFont}
\newcommand*{\BeginSwitchDigitFont}{\if@nonlatin\bgroup\yasfont \fi}
\newcommand*{\EndSwitchDigitFont}{\if@nonlatin\egroup \fi}
\makeatother
\begin{document}
\setcounter{section}{-1}
\section{این یک آزمایش است}
\subsection{یک آزمایش دیگر}
\subsubsection{آزمایش آخر}
این یک آزمایش است که در بین متن اعداد لاتین 098987 وجود دارد و حالا اعداد پارسی ۰۸۷۸۸ خروجی به چه شکل خواهد بود.
\end{document}
در این نمونه قلم متن اصلی Times New Roman
است اما اعداد با قلم یاس حروفچینی میشوند. چنانچه بخواهید اعداد داخل محیط ریاضی نیز با قلم یاس حروفچینی شوند، افزودن
\setdigitfont{Yas}
باید کافی باشد.
اگر از تکلایو ۲۰۱۶ استفاده نمیکنید، احتمالا (خودم امتحان نکردم) باید کار کند:
\documentclass{article}
\usepackage{xepersian}
\settextfont{Times New Roman}
\defpersianfont\yasfont{Yas}
\makeatletter
\newcount\bidi@digits
\XeTeXinterchartokenstate=\@ne
\newXeTeXintercharclass\bidi@digits@charclass
\bidi@digits=`\0 \loop \XeTeXcharclass \bidi@digits \bidi@digits@charclass \ifnum\bidi@digits<`\9 \advance\bidi@digits \@ne \repeat
\bidi@digits=`\۰ \loop \XeTeXcharclass \bidi@digits \bidi@digits@charclass \ifnum\bidi@digits<`\۹ \advance\bidi@digits \@ne \repeat
\XeTeXinterchartoks 255 \bidi@digits@charclass = {\BeginSwitchDigitFont}
\XeTeXinterchartoks \bidi@digits@charclass 255 = {\EndSwitchDigitFont}
\newcommand*{\BeginSwitchDigitFont}{\if@Latin\else\bgroup\yasfont \fi}
\newcommand*{\EndSwitchDigitFont}{\if@Latin\else\egroup \fi}
\makeatother
\begin{document}
\setcounter{section}{-1}
\section{این یک آزمایش است}
\subsection{یک آزمایش دیگر}
\subsubsection{آزمایش آخر}
این یک آزمایش است که در بین متن اعداد لاتین 098987 وجود دارد و حالا اعداد پارسی ۰۸۷۸۸ خروجی به چه شکل خواهد بود.
\end{document}