خوب وقتی شما از بستهای (chngcntr
) استفاده میکنید که پشتیبانی نمیشود خودتان مسئول حل مشکلات خود هستید. به جای این بسته، بسته amsthm
را فراخوانی کنید و دستور \counterwithin
را به دستور \numberwithin
تغییر دهید.
ویرایش: در فایل اصلی از بسته tcolorbox
استفاده شده اما در فایل شما از بسته mdframed
. بهرحال تغییرات لازم را دادم:
\documentclass{book}
\usepackage[most]{tcolorbox}
\usepackage{amsmath}
\usepackage{ptext}
\usepackage{xepersian}
\settextfont[Scale=1]{Yas}
% counters
\newcounter{theorem}
\newcounter{lemma}
\numberwithin{theorem}{chapter}
\numberwithin{lemma}{chapter}
% names for the structures
\newcommand\theoname{قضیه}
\newcommand\lemmname{لما}
\makeatletter
% environment for theorems
\newtcolorbox{theorem}[1][]{
breakable,
enhanced,
colback=blue!05,
colframe=orange,
top=\baselineskip,
enlarge top by=\topsep,
overlay unbroken and first={
\node[xshift=-10pt,thick,draw=blue,fill=blue!20,rounded corners,anchor=east] at (frame.north east) %
{\setRTL\hboxR{\refstepcounter{theorem}\strut{\bfseries\theoname~\thetheorem}\if#1\@empty\relax\relax\else~(#1)\fi}};
}
}
% environment for lemas
\newtcolorbox{lemma}[1][]{
breakable,
enhanced,
colback=red!05,
colframe=red!70!black,
top=\baselineskip,
enlarge top by=\topsep,
overlay unbroken and first={
\node[thick,draw=green!40!black,fill=green!20,rounded corners] at (frame.north) %
{\setRTL\hboxR{\refstepcounter{lemma}\strut{\bfseries\lemmname~\thelemma}\if#1\@empty\relax\relax\else~(#1)\fi}};
}
}
\makeatother
\begin{document}
\chapter{Test chapter}
\begin{theorem}
\ptext[4]
\end{theorem}
\begin{lemma}[Lemme de Zorn]
\ptext[4]
\end{lemma}
\begin{theorem}[Loi des grands nombres]
\ptext[4]
\end{theorem}
\end{document}
\setRTL
باعث میشود تا جهت شمارندهها راست به چپ باشند و \hboxR
موجب راست به چپ بودن محتوای \node
میشود.
توجه کنید که رمزینه فایل UTF8 نیست.