أوامرك الخاصة باستخدام \newcommand
اكتب \newcommand{\name}{replacement} في التمهيد، مع [n] للوسائط من #1 إلى #n؛ ومن ثَمّ يُستبدل \name بتعريفه، في النص وفي الرياضيات.
أمر بلا وسائط
يوفّر عليك الأمر الكتابة ويحافظ على اتساق الترميز. عرّفه مرة واحدة في التمهيد واستخدمه في أي مكان.
اختصارات للمجموعات ولاسم منتج
\documentclass{article}
\usepackage{amssymb}
\newcommand{\R}{\mathbb{R}}
\newcommand{\product}{Scissor LaTeX}
\begin{document}
Every $x \in \R$ has a square $x^2 \ge 0$.
This page was typeset by \product.
\end{document}الوسائط والقيمة الافتراضية
يحدد [n] بعد الاسم عدد الوسائط التي يأخذها الأمر؛ وهي داخل التعريف #1 و#2 وهكذا. ويعطي قوسٌ مربع ثانٍ الوسيطَ الأول قيمة افتراضية، فيصبح اختياريًا.
وسائط ووسيط أول اختياري
\documentclass{article}
\newcommand{\vect}[1]{\mathbf{#1}}
\newcommand{\norm}[1]{\left\lVert #1 \right\rVert}
\newcommand{\greet}[2][Hello]{#1, #2!}
\begin{document}
The length of $\vect{v}$ is $\norm{\vect{v}}$.
\greet{Erika} \greet[Good morning]{John}
\end{document}تغيير أمر موجود
يستبدل \renewcommand أمرًا موجودًا بالفعل، ويعرّف \providecommand أمرًا فقط إن لم يكن موجودًا بعد. واستخدام \newcommand لاسم مستخدَم يُعدّ خطأً في تثبيت TeX؛ فاستخدم حينها \renewcommand.
الأمران \renewcommand و\providecommand
\documentclass{article}
\renewcommand{\emph}[1]{\textbf{#1}}
\providecommand{\R}{\mathbb{R}}
\begin{document}
This is \emph{emphasised} in bold now, and $\R$ is defined.
\end{document}أسماء المؤثرات
تُكتب أسماء الدوال مثل sin وlog بخط قائم مع التباعد الصحيح. ويتيح لك \DeclareMathOperator (من amsmath) إنشاء أسمائك الخاصة؛ والصيغة ذات النجمة تضع الحدود تحت المؤثر في المعادلات المعروضة، مثل \max.
الأمر \DeclareMathOperator وصيغته ذات النجمة
\documentclass{article}
\usepackage{amsmath}
\DeclareMathOperator{\Var}{Var}
\DeclareMathOperator*{\argmax}{arg\,max}
\begin{document}
\[
\Var(X) = \mathbb{E}\left[(X - \mu)^2\right],
\qquad
\hat{\theta} = \argmax_{\theta} L(\theta)
\]
\end{document}بيئاتك الخاصة
يعرّف \newenvironment{name}[n]{before}{after} بيئة: تُنفَّذ شيفرة «before» عند \begin{name} وشيفرة «after» عند \end{name}. ويمكن استخدام الوسائط في جزء «before».
بيئة بوسيط
\documentclass{article}
\newenvironment{task}[1]
{\par\noindent\textbf{Task #1.}\ }
{\par}
\begin{document}
\begin{task}{44}
Measure the rainfall every morning.
\end{task}
\end{document}ما الذي يعمل
| الأمر | في Scissor LaTeX | ملاحظات |
|---|---|---|
\newcommand، \renewcommand، \providecommand | يعمل | حتى 9 وسائط، ووسيط أول اختياري بقيمة افتراضية. والصيغ ذات النجمة أيضًا. |
\DeclareRobustCommand | يعمل | مثل \newcommand. |
\newenvironment، \renewenvironment | يعمل | مع الوسائط والقيمة الافتراضية. |
\DeclareMathOperator، \DeclareMathOperator* | يعمل | |
\def\name{...}، \gdef، \edef، \xdef | جزئيًا | تعمل التعريفات البسيطة والوسائط بأسلوب #1؛ أما المعاملات المحدَّدة بفواصل مثل \def\pt(#1,#2){...} فلا تُطابَق وتعطي ناتجًا مشوّهًا. |
\let\new\old | يعمل | |
\NewDocumentCommand، \RenewDocumentCommand (xparse) | غير مدعوم | يُحذف التعريف، ويُبلَّغ عن الأمر بأنه غير معروف حيث يُستخدم. |
\DeclarePairedDelimiter (mathtools) | يعمل | |
\makeatletter، \makeatother | مقبول | لا تُنفَّذ الأوامر التي تحتوي أسماؤها على @. |
تُوسَّع التعريفات قبل التنضيد، لذا يمكن استخدام الأمر في النص وفي الرياضيات وفي التسميات التوضيحية وفي عناوين الأقسام. وللحماية من الحلقات اللانهائية، يتوقف التوسيع عند حدّ أمان، مع رسالة في تبويب المشكلات.
أوامر xparse
لا يُقرأ \NewDocumentCommand من xparse. يُحذف التعريف، وحيث يُستخدم الأمر يُتخطّى اسمه مع رسالة، بينما تبقى وسائطه في النص.
الأمر \NewDocumentCommand غير مدعوم
\documentclass{article}
\usepackage{xparse}
\NewDocumentCommand{\pair}{m m}{(#1, #2)}
\begin{document}
The pair \pair{a}{b} loses its parentheses and comma.
\end{document}تبويب المشكلات: Skipped 1 unknown command: \pair
لإصلاح ذلك، اكتب الأمر نفسه باستخدام \newcommand{\pair}[2]{(#1, #2)}. وللوسائط الاختيارية، يغطي \newcommand مع قيمة افتراضية الحالة الشائعة.
ما الذي يختلف عن تثبيت TeX
دليلا xparse وmathtools متاحان على CTAN: xparse، mathtools. وللمؤثرات وأسماء الدوال، انظر أيضًا المجاميع والتكاملات وأسماء الدوال.
أسئلة وأجوبة
كيف أعرّف أمرًا جديدًا في LaTeX؟
اكتب \newcommand{\name}{text} في التمهيد. أضف [2] بعد الاسم لوسيطين واستخدم #1 و#2 في النص.
ما الفرق بين \newcommand و\def؟
يتحقق \newcommand من أن الاسم غير مستخدَم ويدعم وسيطًا اختياريًا. أما \def فهو أمر TeX منخفض المستوى؛ يكتب فوق التعريف القديم دون سؤال. فضّل \newcommand و\renewcommand.
هل يعمل \NewDocumentCommand في Scissor LaTeX؟
لا. أعد كتابة هذه الأوامر باستخدام \newcommand، الذي يغطي الوسائط الإلزامية ووسيطًا اختياريًا واحدًا.
كل مثال في هذه الصفحة ينضّده Scissor LaTeX عند بناء الموقع. آخر تحديث: 2026-11-07.