%\iffalse meta-comment
%
% na-list.dtx
% Version: 1.0 (Final Edition)
% Date: 2026/05/24
%
% --- AUTHOR / المؤلف ---
% NAAM MOHAMED (الأستاذ: ناعم محمد)
%
% --- LICENSE / الترخيص ---
% English:
% This work (the na-list package) is licensed under the 
% LaTeX Project Public License (LPPL), version 1.3c or later.
%
% Arabic:
% هذا العمل (حزمة na-list) مرخص تحت شروط رخصة مشروع لاتيك 
% العامة (LPPL)، الإصدار 1.3c أو أي إصدار لاحق.
%
% \fi
%
% \iffalse
%<*driver>
\ProvidesFile{na-list.dtx}
\documentclass{ltxdoc}
\usepackage[x11names,svgnames]{xcolor}
\usepackage{na-list}
\usepackage[explicit]{titlesec}
\usepackage{etoolbox}
\usepackage{contour}
\usepackage{array}
\usepackage{verbatim}
\usepackage{tikz,geometry,eso-pic,polyglossia}
\usetikzlibrary{shapes.geometric, calc,shapes.arrows, shadows}
\usetikzlibrary{shadows.blur}
\geometry{left=2.5cm, right=2.5cm, top=2.5cm, bottom=2.5cm}
\setmainlanguage[numerals=maghrib,locale=algeria]{arabic}
\setotherlanguage{english}
\newfontfamily\arabicfont[Script=Arabic,Scale=1.2]{Amiri} 
\newfontfamily\na[Script=Arabic,Scale=1.2]{Amiri} 
\newfontfamily\arabicfontsf[Script=Arabic,Scale=1.2]{Amiri}
\newfontfamily\latinfont{Latin Modern Roman}
\AtBeginEnvironment{verbatim}{%
  \selectlanguage{english}%
  \setLTR%
}
\renewcommand{\thesection}{\arabic{section}}
\titleformat{\section}
{\bf\Large\sffamily}
{\begin{tikzpicture}[baseline=(a.base)]
\node[text=white,scale=1,anchor=east,draw=blue!50!black,
fill=red!50!black,rounded corners=3pt] (a) {\thesection};
\node [text=black,anchor=east] at (a.west) (2){\large\textarabic{\bf\sffamily #1}};
\end{tikzpicture}}
{0pt}{}
\titleformat{\subsection}
{\bf}
{\begin{tikzpicture}[baseline=(a.base)]
\node[text=white,scale=1,anchor=east,draw=blue!50!black,
fill=blue!50!black,rounded corners=3pt] (a) {\thesubsection};
\node [text=black,anchor=east] at (a.west) (2){\large\textarabic{\bf\sffamily #1}};
\end{tikzpicture}}
{0pt}{}
\setnonlatin
\definecolor{Navy}{RGB}{0,0,128}
\definecolor{DeepBlue}{HTML}{0A192F}
\definecolor{SoftSlate}{HTML}{2C3E50} 
\definecolor{coverfgcolor}{RGB}{20, 60, 100}
\EnableCrossrefs
\CodelineIndex
\RecordChanges
 \tikzset{ render blur shadow/.prefix code={
\colorlet{black}{black}}}
\newcommand\boxtitle[1]{%
\begin{tikzpicture}
    % --- إضافة الزخرفة الجديدة ---
    \foreach \sx/\sy in {1/1, 1/-1, -1/1, -1/-1} {
        \begin{scope}[shift={(\sx*6.5, \sy*3.8)}] 
            \foreach \i in {0,0.08,...,5.5} {
                \draw[blue, thin, opacity=0.7] (-\sx*\i, 0) -- (0, -\sy*5.5 + \sy*\i);
            }
        \end{scope}
    }
    % --- الإطار الأساسي ---
    \node[text width=0.5\textwidth, rectangle, draw=none,minimum width=0.55\textwidth, inner ysep=0.4cm, fill=white]{%
        \huge
        \begin{RTL}
        \begin{center}
            #1
        \end{center}
        \end{RTL}
    };
\end{tikzpicture}}
\begin{document}
\OnlyDescription  % <--- هذا السطر هو التعديل الوحيد: يمنع ظهور صفحة الأكواد الأخيرة
\DocInput{na-list.dtx}
\end{document}
%</driver>
% \fi
%
%\title{\boxtitle{\fontsize{1.4cm}{1cm}\color{blue} \texttt{na-list}\\[0.4cm]\fontsize{0.8cm}{1cm}\color{Navy}\bf\textarabic{ حزمة لانشاء القوائم \\ الإصدار 1.0}}}
%\author{} \date{}
%\maketitle
% \section{مقدمة عن الحزمة}
% تُعد حزمة \texttt{na-list} أداة برمجية متطورة ومخصصة لنظام (LaTeX)، صُممت خصيصاً لتوفير تحكم مرن 
% واحترافي في تنسيق القوائم التعدادية وتخصيص أشكالها الهندسية والرمزية. تمنح هذه الحزمة المستخدم 
% قدرة فائقة على دمج التصاميم البصرية المميزة مع المحتوى النصي، مما يضفي لمسة جمالية وتنظيمية متقنة 
% تخدم مختلف الأغراض التحريرية، خاصة في المجلات والمستندات الأكاديمية.\\
%\textbf{ملاحظة هامة:}\\
%تعمل الحزمة بكفاءة مع المعالجات التالية  \texttt{pdfLaTeX}, \texttt{XeLaTeX}, و \texttt{LuaLaTeX}.
%
% \begin{otherlanguage}{english}
% The \texttt{na-list} package is a sophisticated tool designed for the \LaTeX{} system, 
% engineered to provide flexible and professional control over list formatting and 
% the customization of geometric and symbolic shapes. This package grants users the 
% powerful ability to seamlessly integrate distinctive visual designs with textual 
% content, adding an aesthetic and organized touch that serves various editorial 
% purposes, particularly in journals and academic documents.
% \end{otherlanguage}
% \section{آلية العمل \LR{(Technical Overview)}}
% \section{استخدام بيئة \texttt{nalist}}
% تتيح هذه البيئة إنشاء قوائم مرقمة بأشكال هندسية متنوعة مع تحكم كامل في المظهر. 
%
% \subsection{طريقة الاستخدام}
% يتم استدعاء البيئة بالشكل التالي:
% \begin{quote}
% \texttt{\textbackslash begin\{nalist\}[color]\{shape\}} \\
% \quad \texttt{\textbackslash item المحتوى النصي} \\
% \texttt{\textbackslash end\{nalist\}}
% \end{quote}
%
% \subsection{شرح الوسائط (Arguments)}
% \begin{description}
%     \item[[color] \textbf{اللون (اختياري)}:] القيمة داخل الأقواس المربعة \texttt{[ ]} تحدد لون الشكل. 
%     القيمة الافتراضية هي \texttt{blue}، ويمكنك اختيار أي لون من حزمة \texttt{xcolor}.
%     \item[\{shape\} \textbf{الشكل (إجباري)}:] القيمة داخل الحاضنات \texttt{\{ \}} تحدد الشكل الهندسي. الخيارات المتاحة هي:
%     \begin{itemize}
%         \item \texttt{circle}: دائرة.
%         \item \texttt{rectangle}: مستطيل.
%         \item \texttt{star}: نجمة خماسية.
%         \item \texttt{diamond}: معين.
%         \item \texttt{polygon}: مضلع خماسي.
%         \item \texttt{arrow}: سهم يتبع اتجاه النص.
%         \item \texttt{arrowar}: سهم موجه لليسار دائماً.
%     \end{itemize}
% \end{description}
%
% \subsection{أوامر التحكم الإضافية}
% قبل فتح البيئة، يمكنك استخدام هذه الأوامر لتخصيص القائمة:
% \begin{itemize}
%     \item \texttt{\textbackslash nascale\{قيمة\}}: لتكبير أو تصغير حجم الشكل (الافتراضي 1.0).
%     \item \texttt{\textbackslash nasize\{\textbackslash small/ \textbackslash Large\}}: لتغيير حجم الخط داخل الشكل.
%     \item \texttt{\textbackslash nanumbercolor\{اللون\}}: لتغيير لون الرقم داخل الشكل.
%     \item \texttt{\textbackslash nastartat\{رقم\}}: للبدء من رقم معين غير الواحد.
%     \item \texttt{\textbackslash nashadow\{yes/no\}}: لتفعيل أو تعطيل الظل خلف الشكل.
%     \item \texttt{\textbackslash naListmargin\{مسافة\}}: لتحديد مقدار الإزاحة (الهامش) عن يسار القائمة (الافتراضي 1cm).
% \end{itemize}
% \subsection{القوائم الحرفية \LR{(nalistalpha)}}
% تستخدم هذه البيئة للترقيم باستخدام الحروف بدلاً من الأرقام. 
% تتكيف هذه البيئة تلقائياً مع لغة المستند:
% \begin{itemize}
%     \item \textbf{في المستندات العربية:} يتم الترقيم أبجدياً (أ، ب، ج...).
%     \item \textbf{في المستندات اللاتينية:} يتم الترقيم أبجدياً (a, b, c...).
% \end{itemize}
%
% \paragraph{مثال للاستخدام:}
% \begin{verbatim}
% \begin{nalistalpha}[blue]{circle}
%     \item العنصر الأول
%     \item العنصر الثاني
% \end{nalistalpha}
% \end{verbatim}
% \begin{nalistalpha}[blue]{circle}
%     \item العنصر الأول
%     \item العنصر الثاني
% \end{nalistalpha}
%
% \paragraph{مثال للاستخدام باللغة اللاتينية:}
% \begin{otherlanguage}{english}
%\begin{LTR}
% \begin{verbatim}
%\begin{nalistalpha}[blue]{circle}[label=\protect\drawmylabel{blue}{circle}{\latinfont\Alph*}{\mynodefont}]
%     \item First item
%     \item Second item
% \end{nalistalpha}
% \end{verbatim}
%
%\begin{nalistalpha}[blue]{circle}[label=\protect\drawmylabel{blue}{circle}{\latinfont\Alph*}{\mynodefont}]
%     \item First item
%     \item Second item
% \end{nalistalpha}
%\end{LTR}
% \end{otherlanguage}
% \subsection{استمرارية الترقيم \LR{(Series and Resume)}}
% للحصول على تحكم كامل في استمرارية الترقيم، خاصة عند تقسيم القائمة إلى أجزاء 
% منفصلة في المستند، نستخدم نظام الـ \texttt{series}. 
%
% \paragraph{كيفية الاستخدام:}
% \begin{enumerate}
%     \item في البيئة الأولى، قم بتعريف السلسلة باستخدام الخيار \texttt{series=mySeries}.
%     \item في البيئات اللاحقة، استخدم \texttt{resume*=mySeries} لمتابعة الترقيم.
% \end{enumerate}
%
% \paragraph{مثال توضيحي:}
% \begin{verbatim}
% \begin{nalist}[blue]{circle}[series=mySeries]
%     \item العنصر الأول
%     \item العنصر الثاني
% \end{nalist}
%
% % نص إضافي بين القائمتين
%
% \begin{nalist}[blue]{circle}[resume*=mySeries]
%     \item العنصر الثالث (سيبدأ تلقائياً بالرقم 3)
% \end{nalist}
% \end{verbatim}
% \begin{nalist}[blue]{circle}[series=mySeries]
%     \item العنصر الأول
%     \item العنصر الثاني
% \end{nalist}
%
% % نص إضافي بين القائمتين
%
% \begin{nalist}[blue]{circle}[resume*=mySeries]
%     \item العنصر الثالث (سيبدأ تلقائياً بالرقم 3)
% \end{nalist}
%
% \noindent \textbf{ملاحظة:} هذا النظام يضمن ربط عدادات القائمة بشكل دقيق، ويعمل بكفاءة مع \texttt{nalist} و \texttt{nalistalpha}.
% \subsection{الترقيم الروماني \LR{(Roman Numerals)}}
% لدعم الترقيم الروماني (سواءً بالأحرف الصغيرة \texttt{i, ii, iii} أو الأحرف الكبيرة \texttt{I, II, III})، 
% لا نحتاج لتعريف بيئة جديدة، بل نكتفي بتمرير "نمط العداد" إلى خيار \texttt{label} داخل الوسيط الثالث للبيئة.
%
% \paragraph{مثال للترقيم الروماني الصغير:}
% \begin{verbatim}
% \begin{nalist}[blue]{circle}[label=\protect\drawmylabel{blue}{circle}{\roman*}{\mynodefont}]
%     \item First item
%     \item Second item
% \end{nalist}
% \end{verbatim}
% \begin{otherlanguage}{english}
% \begin{nalist}[blue]{circle}[label=\protect\drawmylabel{blue}{circle}{\roman*}{\mynodefont}]
%     \item First item
%     \item Second item
% \end{nalist}
% \end{otherlanguage}
%
% \paragraph{مثال للترقيم الروماني الكبير:}
% \begin{verbatim}
% \begin{nalist}[blue]{circle}[label=\protect\drawmylabel{blue}{circle}{\Roman*}{\mynodefont}]
%     \item First item
%     \item Second item
% \end{nalist}
% \end{verbatim}
% \begin{otherlanguage}{english}
% \begin{nalist}[blue]{circle}[label=\protect\drawmylabel{blue}{circle}{\Roman*}{\mynodefont}]
%     \item First item
%     \item Second item
% \end{nalist}
% \end{otherlanguage}
% \section{استعراض الأشكال المتاحة}
% يوضح الجدول التالي الأشكال الهندسية التي تدعمها حزمة \texttt{na-list} وكيفية استدعائها.
%
% \begin{center}
% \begin{tabular}{|l|l|l|}
% \hline
% \textbf{اسم الشكل} & \textbf{كود الاستدعاء} & \textbf{الوصف البصري} \\ \hline
% Circle & \texttt{\{circle\}} & دائرة متناظرة \\ \hline
% Rectangle & \texttt{\{rectangle\}} & مستطيل بزوايا قائمة \\ \hline
% Star & \texttt{\{star\}} & نجمة خماسية \\ \hline
% Diamond & \texttt{\{diamond\}} & شكل معين \\ \hline
% Polygon & \texttt{\{polygon\}} & مضلع خماسي \\ \hline
% Arrow & \texttt{\{arrow\}} & سهم (يتبع اتجاه النص) \\ \hline
% Arrow Reversed & \texttt{\{arrowar\}} & سهم موجه دائماً لليسار \\ \hline
% Signal Right & \texttt{\{signalright\}} & إشارة تتجه لليمين \\ \hline
% Signal Left & \texttt{\{signalleft\}} & إشارة تتجه لليسار \\ \hline
% Signal E-W & \texttt{\{signalle\}} & إشارة من الغرب للشرق \\ \hline
% Signal W-E & \texttt{\{signaldual\}} & إشارة من الشرق للغرب \\ \hline
% \end{tabular}
% \end{center}
%
% \section{أمثلة تفصيلية للأشكال}
%
% \textbf{الأشكال الهندسية الأساسية:}
% \begin{itemize}
%     \item \texttt{\textbackslash begin\{nalist\}[blue]\{circle\} \item دائرة \textbackslash end\{naList\}}
%     \item \texttt{\textbackslash begin\{naList\}[red]\{rectangle\} \item مستطيل \textbackslash end\{nalist\}}
%     \item \texttt{\textbackslash begin\{nalist\}[orange]\{star\} \item نجمة \textbackslash end\{nalist\}}
%     \item \texttt{\textbackslash begin\{nalist\}[purple]\{diamond\} \item معين \textbackslash end\{nalist\}}
%     \item \texttt{\textbackslash begin\{nalist\}[teal]\{polygon\} \item مضلع \textbackslash end\{nalist\}}
% \end{itemize}
%
% \textbf{الأسهم:}
% \begin{itemize}
%     \item \texttt{\textbackslash begin\{nalist\}[gray]\{arrow\} \item سهم تلقائي \textbackslash end\{nalist\}}
%     \item \texttt{\textbackslash begin\{nalist\}[gray]\{arrowar\} \item سهم ثابت \textbackslash end\{nalist\}}
% \end{itemize}
%
% \textbf{إشارات الاتجاه (Signals):}
% \begin{itemize}
%     \item \texttt{\textbackslash begin\{nalist\}[blue]\{signalright\} \item يمين \textbackslash end\{nalist\}}
%     \item \texttt{\textbackslash begin\{nalist\}[red]\{signalleft\} \item يسار \textbackslash end\{nalist\}}
%     \item \texttt{\textbackslash begin\{nalist\}[green]\{signalle\} \item شرق \textbackslash end\{nalist\}}
%     \item \texttt{\textbackslash begin\{nalist\}[orange]\{signaldual\} \item غرب \textbackslash end\{nalist\}}
% \end{itemize}
%
% \begin{quote}
% \textbf{ملاحظة:} أشكال الإشارات (Signal) مثالية للنصوص العربية؛ حيث تظل الأرقام بداخلها ثابتة.
% \end{quote}
% \section{تخصيص القوائم \texttt{(Customization Commands)}}
% توفر الحزمة مجموعة من أوامر التحكم التي تسمح للمستخدم بتغيير مظهر القوائم وتعديل سلوكها البرمجي.
% يمكن وضع هذه الأوامر في أي مكان قبل استدعاء البيئة (\texttt{nalist}) لتؤثر على القائمة التالية فقط، أو في ديباجة المستند (\texttt{Preamble}) لتؤثر على كافة قوائم المستند.
%
% \subsection{قائمة أوامر التخصيص}
% \begin{description}
%     \item[\texttt{\textbackslash nascale{قيمة}}:] للتحكم في مقياس الشكل الهندسي. القيمة الافتراضية هي \texttt{1.0}. يمكنك استخدام قيم مثل \texttt{0.8} للتصغير أو \texttt{1.2} للتكبير.
%     \item[\texttt{\textbackslash nasize{حجم_الخط}}:] لتغيير حجم النص داخل الشكل. تقبل أوامر لاتيك القياسية مثل \texttt{\textbackslash small}, \texttt{\textbackslash Large}, \texttt{\textbackslash footnotesize}.
%     \item[\texttt{\textbackslash nanumbercolor{اللون}}:] لتغيير لون الرقم أو الرمز داخل الشكل (مثلاً: \texttt{red}, \texttt{blue!50!black}).
%     \item[\texttt{\textbackslash nastartat{رقم}}:] لضبط القيمة الأولية للعداد. مفيد جداً إذا كنت ترغب في استكمال ترقيم قائمة تم قطعها بنص أو صورة.
%     \item[\texttt{\textbackslash nafont{الخط}}:] لتحديد نوع الخط المستخدم داخل الشكل (مثل \texttt{\textbackslash bfseries} للخط العريض).
%     \item[\texttt{\textbackslash nashadow{yes/no}}:] تفعيل أو تعطيل تأثير الظل خلف الشكل الهندسي.
% \end{description}
%
% \subsection{مثال تطبيقي على التخصيص}
% يمكنك تخصيص القائمة باستخدام الأوامر التالية قبل استدعاء البيئة:
%
% \begin{tabular}{ll}
% \texttt{\textbackslash nashadow\{no\}} & إلغاء الظل خلف الشكل \\
% \texttt{\textbackslash nascale\{1.2\}} & تكبير حجم الشكل \\
% \texttt{\textbackslash nasize\{\textbackslash Large\}} & تكبير حجم الخط داخل الشكل \\
% \texttt{\textbackslash nanumbercolor\{red\}} & تغيير لون الرقم إلى الأحمر \\
% \texttt{\textbackslash nastartat\{5\}} & البدء من الرقم 5 \\
% \end{tabular}
% مثال
%\nashadow{no} % إلغاء تفعيل الظل لهذه القائمة
%\begin{nalist[blue]{circle}
%    \item هذا العنصر سيظهر بدون ظل خلف الدائرة.
 %   \item الظل تم تعطيله محلياً.
%\end{nalist}
% \section{شرح بيئة التعداد الرمزي \texttt{nalistding} تقنياً}
% 
% تختلف بيئة \texttt{nalistding} عن بيئة \texttt{nalist} في أنها لا ترسم أشكالاً هندسية، بل تستخدم نظام تصفيف الرموز المستند إلى خطوط \texttt{ZapfDingbats} (Pifont).
%
% \subsection{آلية الترقيم الرياضي \texttt{(Symbol Mapping)}}
% بدلاً من الاعتماد على عدادات الأرقام التقليدية فقط، تستخدم الحزمة عمليات حسابية على قيم الـ (\texttt{slot}) الخاصة بالخط:
% \begin{enumerate}
%     \item \textbf{تحديد البداية:} يستقبل الأمر الوسيط الثاني (كود الرمز)، حيث يتم تخزينه كقيمة مرجعية.
%     \item \textbf{الحساب الديناميكي:} عند كل عنصر (\texttt{\textbackslash item})، تقوم الحزمة بتنفيذ عملية حسابية باستخدام \texttt{\textbackslash numexpr}:
%     \[ \text{الرمز الحالي} = \text{كود البداية} + (\text{رقم العداد} - 1) \]
%     هذا يسمح للحزمة بالانتقال التلقائي للرمز التالي في الخط المختار بناءً على ترتيب الـ (\texttt{slot}) الخاص به.
% \end{enumerate}
%
% \subsection{إدارة الرموز (Pifont Integration)}
% \begin{itemize}
%     \item \textbf{الارتباط بالخط:} يتم استدعاء حزمة \texttt{pifont} داخلياً لضمان توفر الجداول الرمزية.
%     \item \textbf{تحويل المدخلات:} يتم تمرير الرقم المحسوب إلى أمر \texttt{\textbackslash ding\{...\}} الذي يقوم بتحويل القيمة الرقمية إلى الرمز البصري المقابل في خط \texttt{ZapfDingbats}.
% \end{itemize}
%
% \subsection{الفائدة التقنية للبيئة}
% توفر هذه البيئة دقة عالية للمستخدمين الذين يحتاجون لترقيم يعتمد على رموز خاصة (مثل الدوائر المصمتة، الأسهم المحددة، أو الأرقام داخل أشكال مسبقة الصنع في الخطوط)، وتتميز بـ:
% \begin{itemize}
%     \item \textbf{الخفة:} لا تستخدم محرك الرسم الثقيل \texttt{TikZ}، مما يجعل تجميع الملف (Compilation) أسرع بكثير.
%     \item \textbf{التوافق:} تضمن الحفاظ على محاذاة الرمز مع بداية النص (Baseline) دون أي إزاحة إضافية.
% \end{itemize}
% \section{أمثلة تفصيلية لبيئة \texttt{nalistding}}
% 
% تستخدم هذه البيئة رموز الخطوط (Dingbats) للترقيم. يوضح الجدول التالي أنماطاً شائعة للترقيم الرمزي.
%
% \begin{center}
% \begin{minipage}{0.48\textwidth}
% \textbf{الكود:} \\
% \begin{verbatim}
% \begin{nalistding}[blue][182]
%     \item دوائر مصمتة
%     \item رقم 2 في دائرة
% \end{nalistding}
% \end{verbatim}
% \end{minipage}
% \hfill
% \begin{minipage}{0.48\textwidth}
% \textbf{الناتج:} \\
% \ding{182} دوائر مصمتة \\
% \ding{183} رقم 2 في دائرة
% \end{minipage}
% \end{center}
%
% \begin{center}
% \begin{minipage}{0.48\textwidth}
% \textbf{الكود:} \\
% \begin{verbatim}
% \begin{nalistding}[red][202]
%     \item أرقام بيضاء داخل مربعات
%     \item الرمز التالي تلقائياً
% \end{nalistding}
% \end{verbatim}
% \end{minipage}
% \hfill
% \begin{minipage}{0.48\textwidth}
% \textbf{الناتج:} \\
% \ding{202} أرقام بيضاء \\
% \ding{203} الرمز التالي
% \end{minipage}
% \end{center}
%
% \begin{center}
% \begin{minipage}{0.48\textwidth}
% \textbf{الكود:} \\
% \begin{verbatim}
% \begin{nalistding}[green][42]
%     \item رمز النجمة (سفلي)
%     \item رمز النجمة (علوي)
% \end{nalistding}
% \end{verbatim}
% \end{minipage}
% \hfill
% \begin{minipage}{0.48\textwidth}
% \textbf{الناتج:} \\
% \ding{42} رمز النجمة \\
% \ding{43} رمز النجمة
% \end{minipage}
% \end{center}
% \section{دليل الرموز الرقمية \texttt{(Symbol Codes)}}
% توفر بيئة \texttt{nalistding} وصولاً مباشراً إلى رموز الترقيم الاحترافية. 
% الأرقام المدخلة في الوسيط الثاني تمثل كود الرمز (Slot) في جدول الرموز، وإليك أهم المجموعات:
%
% \begin{table}[h]
% \centering
% \begin{tabular}{|c|c|l|}
% \hline
% \textbf{كود البداية} & \textbf{النمط البصري} & \textbf{الوصف} \\ \hline
% 172 & \ding{172} & أرقام داخل دوائر (بداية من 1) \\ \hline
% 182 & \ding{182} & أرقام داخل دوائر سوداء \\ \hline
% 192 & \ding{192} & أرقام داخل مربعات \\ \hline
% 202 & \ding{202} & أرقام داخل مربعات سوداء \\ \hline
% \end{tabular}
% \end{table}
%
% \subsection{ملاحظة تقنية حول الترقيم التلقائي}
% عند اختيارك لأحد هذه الأكواد، تقوم البيئة تلقائياً بحساب الرموز اللاحقة:
% \begin{itemize}
%     \item إذا اخترت \texttt{172}، فإن العنصر الأول سيكون \ding{172}، والثاني \ding{173}، والثالث \ding{174} وهكذا.
%     \item هذا يعني أنك لست بحاجة لتغيير الرقم لكل سطر؛ الحزمة تتكفل بالانتقال إلى الرمز التالي في الجدول.
% \end{itemize}
% \section{التوافقية والمرونة \texttt{(Compatibility)}}
% تم تصميم حزمة \texttt{na-list} لتكون مرنة ومتوافقة تماماً مع أدوات \LaTeX القياسية.
%
% \subsection{الاستخدام مع حزمة \texttt{enumitem}}
% لا تفرض حزمتنا قيوداً على هيكلية القوائم التقليدية. يمكنك استخدام حزمة \texttt{enumitem} 
% جنباً إلى جنب مع \texttt{na-list} دون أي تعارض برمجياً.
%
% \subsection{استخدام الترقيم العادي \texttt{(Standard Numbering)}}
% إذا كنت ترغب في العودة إلى الترقيم العادي أو الدمج بين الأشكال الرسومية والترقيم الرقمي 
% التقليدي داخل نفس المستند، يمكنك ذلك بكل سهولة. 
%
% \begin{quote}
% \textbf{ملاحظة:} الحزمة تحترم إعدادات \texttt{enumitem}؛ لذا يمكنك استدعاء القوائم التقليدية 
% (\texttt{enumerate}) في أي جزء من المستند وسوف تعمل بشكلها الافتراضي دون أي تداخل مع 
% الأنماط الرسومية الخاصة بـ \texttt{na-list}.
% \end{quote}
%
% \textbf{مثال للدمج:}
% \begin{verbatim}
% % هنا استخدام حزمتنا
% \begin{nalist}[blue]{circle}
%     \item شكل رسومي مخصص
% \end{nalist}
%
% % هنا استخدام الترقيم العادي (Standard)
% \begin{enumerate}
%     \item ترقيم رقمي عادي (1, 2, 3)
%     \item يبقى يعمل بكامل كفاءته
% \end{enumerate}
% \end{verbatim}
% \section{إعادة تعريف اللون الافتراضي}
% لتسهيل العمل وتوحيد مظهر المستند، يمكنك تغيير اللون الافتراضي للأرقام أو الرموز 
% بحيث لا تضطر لتحديده في كل بيئة على حدة.
%
% \subsection{تغيير اللون الافتراضي عالمياً}
% يمكنك إعادة تعريف الأمر \texttt{\textbackslash nanumbercolor} في ديباجة المستند (Preamble) 
% أو في أي مكان تريده، وسوف تعتمد الحزمة هذا اللون كقيمة افتراضية جديدة.
%
% \begin{quote}
% \textbf{الكود:} \\
% \texttt{\textbackslash nanumbercolor\{red!80!black\}} \\
% \textit{بعد هذا الأمر، ستظهر جميع القوائم التالية باللون الأحمر الغامق تلقائياً.}
% \end{quote}
%
% \subsection{الاستثناء المحلي}
% إذا قمت بتغيير اللون عالمياً ولكنك أردت تغيير لون قائمة واحدة فقط (مثلاً قائمة باللون الأزرق 
% وسط مستند أحمر)، يمكنك ببساطة استدعاء الأمر مرة أخرى قبل البيئة المطلوبة:
%
% \begin{verbatim}
% \nanumbercolor{red!80!black} % اللون الافتراضي للمستند
%
% \begin{nalist}{circle} \item عنصر أحمر \end{nalist}
%
% \nanumbercolor{blue} % تغيير مؤقت
% \begin{nalist}{circle} \item عنصر أزرق \end{nalist}
% \end{verbatim}
%
% \textbf{نصيحة للمحترفين:} للحصول على نتائج احترافية، نوصي بتعريف اللون في ديباجة المستند 
% (Preamble) باستخدام \texttt{\textbackslash definecolor} من حزمة \texttt{xcolor} 
% لاستخدام درجات ألوان خاصة بك، ثم تمريرها إلى الأمر \texttt{\textbackslash nanumbercolor}.
% \section{أمثلة متقدمة للدمج بين الأنماط}
% تُظهر الأمثلة التالية كيف يمكنك استخدام \texttt{na-list} جنباً إلى جنب مع 
% قوائم \texttt{enumerate} القياسية، مع تخصيص الألوان والأنماط بشكل مستقل.
%
% \subsection{المثال الأول: هيكلية تعليمية متنوعة}
% \begin{minipage}{0.48\textwidth}
% \textbf{الكود:}
% \begin{verbatim}
% \begin{nalist}[teal]{polygon}
%     \item خطوة 1: تهيئة البيئة
%     \item خطوة 2: تحديد الشكل
% \end{nalist}
% 
% \begin{enumerate}
%     \item شرح تقني للخطوات
%     \item ملاحظات إضافية
% \end{enumerate}
% \end{verbatim}
% \end{minipage}
% \hfill
% \begin{minipage}{0.48\textwidth}
% \textbf{الناتج:} \\
% \begin{nalist}[teal]{polygon} \item خطوة 1: تهيئة البيئة \item خطوة 2: تحديد الشكل \end{nalist}
% \begin{enumerate} \item شرح تقني للخطوات \item ملاحظات إضافية \end{enumerate}
% \end{minipage}
%
% \hrulefill
%
% \subsection{المثال الثاني: قائمة متداخلة احترافية}
% \begin{minipage}{0.48\textwidth}
% \textbf{الكود:}
% \begin{verbatim}
% \begin{nalist}[orange]{star}
%     \item العنوان الرئيسي
%     \begin{enumerate}
%         \item تفاصيل فرعية 1
%         \item تفاصيل فرعية 2
%     \end{enumerate}
% \end{nalist}
% \end{verbatim}
% \end{minipage}
% \hfill
% \begin{minipage}{0.48\textwidth}
% \textbf{الناتج:} \\
% \begin{nalist}[orange]{star} 
%     \item العنوان الرئيسي
%     \begin{enumerate} \item تفاصيل فرعية 1 \item تفاصيل فرعية 2 \end{enumerate}
% \end{nalist}
% \end{minipage}
% \section{مثال شامل (تمرين رياضيات)}
% يوضح هذا المثال كيفية الدمج بين بيئات الترقيم الثلاث في تمرين واحد 
% باستخدام شكل الدائرة (\texttt{circle}) كنمط موحد.
%
% \begin{verbatim}
% \section*{مثال تطبيقي للحزمة عبارة عن تمرين}
%
% \begin{nalist}[blue]{circle}
%     \item أوجد قيمة $\sin(30^\circ)$.
%     \item أوجد قيمة $\cos(60^\circ)$.
% \end{nalist}
%
% \begin{nalistalpha}[blue]{circle}
%     \item القيمة هي $0.5$.
%     \item القيمة هي $1$.
% \end{nalistalpha}
%
% \begin{nalistding}[blue][172]
%     \item تذكر دائماً وحدة القياس.
% \end{nalistding}
% \end{verbatim}
%
% \paragraph{الناتج بعد المعالجة:}
% عند تجميع الكود أعلاه، سيظهر التمرين كالتالي:
%
% \section*{تمرين: الدوال المثلثية}
% \begin{nalist}[blue]{circle}
%     \item أوجد قيمة $\sin(30^\circ)$.
%     \item أوجد قيمة $\cos(60^\circ)$.
% \end{nalist}
%
% \begin{nalistalpha}[blue]{circle}
%     \item القيمة هي $0.5$.
%     \item القيمة هي $1$.
% \end{nalistalpha}
%
% \begin{nalistding}[blue][172]
%     \item تذكر دائماً وحدة القياس.
% \end{nalistding}
% \section{إعدادات إضافية (مهم جداً)}
% لضمان عمل الأشكال الهندسية (خاصة الأسهم والإشارات) بشكل صحيح ومتناسق مع قياسات الخط 
% والتدوير، يُرجى إضافة السطر التالي في ديباجة المستند \LR{(Preamble)}: 
%
% \begin{verbatim}
% \tikzset{every node/.append style={transform shape}}
% \end{verbatim}
%
% \noindent \textbf{لماذا هذا الأمر ضروري؟}
% يعمل هذا الأمر على تفعيل تأثير القياس والتدوير على عقد (\texttt{nodes}) حزمة \texttt{TikZ}، 
% مما يضمن أن الأسهم والإشارات تظهر بالشكل الصحيح عند تطبيق أوامر التكبير 
% (\texttt{\textbackslash nascale}) أو عند تغيير اتجاه النص.
%
% \StopEventually{\PrintIndex \PrintChanges}
%
% \iffalse
%<*package>
% \fi
%    \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{na-list}[2026/05/24 v1.0 Final Edition]
\RequirePackage{tikz}
\usetikzlibrary{shapes.geometric, shapes.arrows, shadows,shapes.symbols}
\RequirePackage{xparse}
\RequirePackage{enumitem}
\RequirePackage{graphicx}
\RequirePackage{pifont}
\RequirePackage{xcolor}
\newif\ifnashadow \nashadowtrue
\newcommand{\nashadow}[1]{\ifnum\pdfstrcmp{#1}{yes}=0 \nashadowtrue \else \nashadowfalse \fi}
\def\myscalevalue{1.0}
\newcommand{\nascale}[1]{\def\myscalevalue{#1}}
\def\mynodesize{\normalsize}
\newcommand{\nasize}[1]{\def\mynodesize{#1}}
\def\mynodefont{}
\newcommand{\nafont}[1]{\def\mynodefont{#1}}
\def\mynodestart{1}
\newcommand{\nastartat}[1]{\def\mynodestart{#1}}
\def\mynumbercolor{black}
\newcommand{\nanumbercolor}[1]{\def\mynumbercolor{#1}}
\def\mynodelistmargin{1cm}
\newcommand{\nalistmargin}[1]{\def\mynodelistmargin{#1}}
\newif\ifisltr
\isltrtrue
\AtBeginDocument{
  \@ifpackageloaded{bidi}{\if@RTL\isltrfalse\fi}{}
  \@ifpackageloaded{polyglossia}{\if@rl\isltrfalse\fi}{}
}
% إضافة لربط الأبجد بـ enumitem
\AddEnumerateCounter{\abjad}{\@abjad}{أ}
\newcommand{\myshadow}{\ifnashadow drop shadow\fi}
\newcommand{\drawmylabel}[4]{%
\ifisltr \def\myrot{0} \else \def\myrot{180} \fi
\tikz[baseline=-0.6ex, scale=\myscalevalue]{
\ifnum\pdfstrcmp{#2}{circle}=0
\node[draw=#1, fill=#1!10, circle, \myshadow, inner sep=2pt, minimum size=0.5cm, font=\mynodefont \mynodesize, text=\mynumbercolor] {#3};
\else\ifnum\pdfstrcmp{#2}{rectangle}=0
\node[draw=#1, fill=#1!10, rectangle, \myshadow, inner sep=2pt, minimum size=0.5cm, font=\mynodefont \mynodesize, text=\mynumbercolor] {#3};
\else\ifnum\pdfstrcmp{#2}{star}=0
\node[draw=#1, fill=#1!10, star, star points=5, \myshadow, inner sep=1pt, minimum size=0.6cm, font=\mynodefont \mynodesize, text=\mynumbercolor] {#3};
\else\ifnum\pdfstrcmp{#2}{diamond}=0
\node[draw=#1, fill=#1!10, diamond, \myshadow, inner sep=2pt, minimum size=0.5cm, font=\mynodefont \mynodesize, text=\mynumbercolor] {#3};
\else\ifnum\pdfstrcmp{#2}{polygon}=0
\node[draw=#1, fill=#1!10, regular polygon, regular polygon sides=5, \myshadow, inner sep=2pt, minimum size=0.5cm, font=\mynodefont \mynodesize, text=\mynumbercolor] {#3};
\else\ifnum\pdfstrcmp{#2}{arrow}=0
\node[draw=#1, fill=#1!10, single arrow, rotate=\myrot, \myshadow, minimum height=0.6cm, inner sep=2pt, font=\mynodefont \mynodesize, text=\mynumbercolor]
{\ifnum\pdfstrcmp{\myrot}{180}=0 \rotatebox{180}{#3} \else #3 \fi};
\else\ifnum\pdfstrcmp{#2}{arrowar}=0
\node[draw=#1, fill=#1!10, single arrow, rotate=180, \myshadow, minimum height=0.6cm, inner sep=2pt, font=\mynodefont \mynodesize, text=\mynumbercolor]
 {\rotatebox{180}{#3}};
\else\ifnum\pdfstrcmp{#2}{signalright}=0
\node[draw=#1, fill=#1!10, signal, signal to=right, \myshadow, inner sep=2pt, minimum height=0.5cm, font=\mynodefont \mynodesize, text=\mynumbercolor] {#3};
\else\ifnum\pdfstrcmp{#2}{signalleft}=0
\node[draw=#1, fill=#1!10, signal, signal to=left, \myshadow, inner sep=2pt, minimum height=0.5cm, font=\mynodefont \mynodesize, text=\mynumbercolor] {#3};
\else\ifnum\pdfstrcmp{#2}{signalle}=0
\node[draw=#1, fill=#1!10, signal, signal from=west, signal to=east, \myshadow, inner sep=2pt, minimum height=0.5cm, font=\mynodefont \mynodesize, text=\mynumbercolor] {#3};
\else\ifnum\pdfstrcmp{#2}{signaldual}=0
\node[draw=#1, fill=#1!10, signal, signal from=east, signal to=west, \myshadow, inner sep=2pt, minimum height=0.5cm, font=\mynodefont \mynodesize, text=\mynumbercolor] {#3};
\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}}
\newlist{customlist}{enumerate}{3}
\newlist{dinglistsimple}{enumerate}{3}
\NewDocumentEnvironment{nalist}{O{blue} g O{}}{%
    \IfNoValueTF{#2}
        {\setlist[customlist]{label=\protect\drawmylabel{#1}{circle}{\arabic*}{\mynodefont}, leftmargin=\mynodelistmargin, start=\mynodestart}}
        {\setlist[customlist]{label=\protect\drawmylabel{#1}{#2}{\arabic*}{\mynodefont}, leftmargin=\mynodelistmargin, start=\mynodestart}}%
    \begin{customlist}[#3]
}{\end{customlist}}
\newlist{alphalist}{enumerate}{3}

\NewDocumentEnvironment{nalistalpha}{O{blue} g O{}}{%
    \IfNoValueTF{#2}{\def\myType{circle}}{\def\myType{#2}}
    % استخدام الشرط الديناميكي للغة الحالية
    \ifisltr
        \setlist[alphalist]{label=\protect\drawmylabel{#1}{\myType}{\alph*}{\mynodefont}, leftmargin=\mynodelistmargin, start=\mynodestart, #3}
    \else
        \setlist[alphalist]{label=\protect\drawmylabel{#1}{\myType}{\abjad*}{\mynodefont}, leftmargin=\mynodelistmargin, start=\mynodestart, #3}
    \fi
    \begin{alphalist}
}{\end{alphalist}}
\NewDocumentEnvironment{nalistding}{O{blue} O{171}}{%
\setlist[dinglistsimple]{%
label=\textcolor{#1}{\mynodesize\mynodefont\protect\ding{\numexpr\value{dinglistsimplei}+#2-\mynodestart}},
 leftmargin=\mynodelistmargin%
}%
\begin{dinglistsimple}
\setcounter{dinglistsimplei}{\numexpr\mynodestart-1\relax}
}{\end{dinglistsimple}}
%    \end{macrocode}
% \iffalse
%</package>
% \fi
% \Finale
\endinput