सामग्री पर जाएँ

\newcommand से अपनी कमांड बनाएँ

प्रीएम्बल में \newcommand{\name}{replacement} लिखें, और #1 से #n तक आर्ग्युमेंट के लिए [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}
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 कमांड तभी परिभाषित करती है जब वह अभी मौजूद न हो। TeX इंस्टॉलेशन में पहले से लिए गए नाम के लिए \newcommand एक एरर है; तब \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स्वीकारजिन कमांड के नाम में @ है, वे नहीं चलतीं।

परिभाषाएँ टाइपसेटिंग से पहले एक्सपैंड होती हैं, इसलिए कमांड टेक्स्ट, मैथ, कैप्शन और सेक्शन टाइटल में इस्तेमाल की जा सकती है। लूप से बचाने के लिए एक्सपैंशन एक सुरक्षा सीमा पर रुक जाता है, और Problems टैब में एक मैसेज आता है।

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 में नई कमांड कैसे परिभाषित करें?

प्रीएम्बल में \newcommand{\name}{text} लिखें। दो आर्ग्युमेंट के लिए नाम के बाद [2] जोड़ें और टेक्स्ट में #1 और #2 इस्तेमाल करें।

\newcommand और \def में क्या फ़र्क है?

\newcommand जाँचता है कि नाम खाली है और एक वैकल्पिक आर्ग्युमेंट सपोर्ट करता है। \def लो-लेवल TeX कमांड है; यह बिना पूछे ओवरराइट कर देता है। \newcommand और \renewcommand को प्राथमिकता दें।

क्या \NewDocumentCommand Scissor LaTeX में काम करता है?

नहीं। ऐसी कमांड को \newcommand से दोबारा लिखें, जो ज़रूरी आर्ग्युमेंट और एक वैकल्पिक आर्ग्युमेंट संभाल लेता है।

इस पेज का हर उदाहरण साइट बनते समय Scissor LaTeX टाइपसेट करता है। पिछला अपडेट: 2026-11-07।