متاسفانه من خودم از Plain TeX استفاده میکنم و کاربر لاتک نیستم و دسترسی به لاتک ندارم. بنابراین نمیتونم فایل شما رو آزمایش کنم. اما من تصور نمیکنم تغییری داده باشم که باعث ایجاد این مشکل بشه. بهتره اشخاص دیگری که میتونند آزمایش کنند و نتیجه رو اطلاع بدهند.
بسته bidi
جهت حروف چینی شماره ها رو توی سطح خیلی پایینی انجام میده و نباید این مشکل وجود داشته باشه.
اگر شما توی متن چیزی مثل 1.2.3
بنویسید چه اتفاقی می افته؟ اگر این به درستی حروفچینی میشه پس نباید مشکلی وجود داشته باشه.
اگر \newtheorem{proposition}{گزاره}[section]
را به کد زیر تغییر بدهید چه اتفاقی می آفته؟
\ApplyPatchCodeToFile{book-xetex-bidi}{\newtheorem{proposition}{گزاره}[section]}
توجه داشته باشید که نسخه جدیدی از بسته ها وجود نخواهد داشت و هر باگی که وجود داره ویژگی محسوب خواهد شد.
همچنین هنگامی که من سیستم قدیمی فراخوانی بسته ها رو با سیستم جدید جایگزین کردم از همه خواستم که فایلهای قدیمیشون رو آزمایش کنند و هر مشکلی که وجود داره رو گزارش کنند و بیشتر از یک ماه وقت برای درست کردن این مشکلات گذاشتم. متاسفانه به هر دلیلی شما تصمیم گرفتید اون زمان آزمایش نکنید و من هم نمیتونم تا آخر عمرم منتظر بمونم تا تک تک کاربرها آزمایش کنند و مشکل گزارش کنند. من هم مشغولیات زندگی خودم رو دارم.
ویرایش
من هم به کد بسته bidi
و هم به کد بسته ntheorem
نگاه کردم و ادعای شما مبنی بر اینکه این مشکل قبل از تکلایو ۲۰۲۵ وجود نداشته، نادرست است. بسته ntheorem
شمارندهها را بصورت 1.2.{3}
به جای 1.2.3
قرار میدهد که اشتباه است و این گروهبندی اضافه باعث میشود تا تک متوجه نشود که پس از نقطه، عدد وجود دارد. این رفتار چه در تکلایو ۲۰۲۵ چه قبل از آن وجود داشته است. شما دقیقا باید خروجی یکسان با تکلایو قدیمیتر از ۲۰۲۵ بگیرید مگر اینکه از نسخه خیلی قدیمی استفاده میکردید که بسته bidi
جهت حروفچینی شمارهها را در سطح خیلی پایین تغییر نمیداد.
برای حل شمکل کافی است این گروهبندی اضافه اشتباه را حذف کنید تا تک به درستی متوجه شود که پس از نقطه، عدد قرار دارد.
\documentclass{book}
\usepackage[thmmarks,framed]{ntheorem}
\usepackage{xepersian}
\settextfont[Path]{ParsiMatn-Regular}
\makeatletter
\gdef\@xnthm#1#2[#3]{%
\ifthm@tempif
\expandafter\@ifundefined{c@#1}%
{\@definecounter{#1}}{}%
\@newctr{#1}[#3]%
\expandafter\xdef\csname the#1\endcsname{%
\expandafter\noexpand\csname the#3\endcsname \@thmcountersep
% {\noexpand\csname\the\theoremnumbering\endcsname{#1}}}%
\noexpand\csname\the\theoremnumbering\endcsname{#1}}%
\expandafter\gdef\csname mkheader@#1\endcsname
{\csname setparms@#1\endcsname
\@thm{#1}{#1}{#2}}%
\global\@namedef{end#1}{\@endtheorem}\fi}
\makeatother
\newtheorem{proposition}{گزاره}[section]
\begin{document}
این
1.2.{3}
با این
1.2.3
چه تفاوتی دارد؟
\chapter{آزمایش}
\section{شماره}
\begin{proposition}
هر ایدهآل سره از \( R \) شامل هیچ یکه نیست. 1.1.1
\end{proposition}
\begin{proposition}
هر ایدهآل ماکسیمال از \( R \) اول است. 1.1.2
\end{proposition}
\section{دیگر}
\begin{proposition}
هر ایدهآل سره از \( R \) شامل هیچ یکه نیست. 1.2.1
\end{proposition}
\begin{proposition}
هر ایدهآل ماکسیمال از \( R \) اول است. 1.2.2
\end{proposition}
\end{document}