مواد پر جائیں

\newcommand کے ساتھ اپنی کمانڈز

preamble میں \newcommand{\name}{replacement} لکھیں، اور آرگیومنٹس #1 سے #n کے لیے [n] لگائیں؛ اس کے بعد \name متن اور ریاضی دونوں میں اپنی تعریف سے بدل جاتی ہے۔

آرگیومنٹ کے بغیر کمانڈ

کمانڈ ٹائپنگ بچاتی ہے اور علامات کو یکساں رکھتی ہے۔ اسے ایک بار preamble میں تعریف کریں اور کہیں بھی استعمال کریں۔

سیٹس اور پروڈکٹ کے نام کے لیے مختصر کمانڈز

\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}
Scissor LaTeX نے ٹائپ سیٹ کیا: سیٹس اور پروڈکٹ کے نام کے لیے مختصر کمانڈز

آرگیومنٹس اور طے شدہ قدر

نام کے بعد [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 کمانڈز

xparse کی \NewDocumentCommand نہیں پڑھی جاتی۔ تعریف چھوڑ دی جاتی ہے، اور جہاں کمانڈ استعمال ہو وہاں اس کا نام ایک پیغام کے ساتھ چھوڑ دیا جاتا ہے جبکہ اس کے آرگیومنٹس متن میں رہتے ہیں۔

\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 میں نئی کمانڈ کیسے بناؤں؟

preamble میں \newcommand{\name}{text} لکھیں۔ دو آرگیومنٹس کے لیے نام کے بعد [2] لگائیں اور متن میں #1 اور #2 استعمال کریں۔

\newcommand اور \def میں کیا فرق ہے؟

\newcommand جانچتی ہے کہ نام خالی ہے اور ایک اختیاری آرگیومنٹ سپورٹ کرتی ہے۔ \def نچلی سطح کی TeX کمانڈ ہے؛ یہ پوچھے بغیر اوور رائٹ کر دیتی ہے۔ \newcommand اور \renewcommand کو ترجیح دیں۔

کیا \NewDocumentCommand Scissor LaTeX میں کام کرتی ہے؟

نہیں۔ ایسی کمانڈز کو \newcommand سے دوبارہ لکھیں، جو لازمی آرگیومنٹس اور ایک اختیاری آرگیومنٹ کو پورا کرتی ہے۔

اس صفحے کی ہر مثال سائٹ بنتے وقت Scissor LaTeX ٹائپ سیٹ کرتا ہے۔ آخری بار اپ ڈیٹ: 2026-11-07۔