\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}আর্গুমেন্ট ও ডিফল্ট মান
নামের পরে [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 | গ্রহণ করা হয় | নামে @ থাকা কমান্ড চালানো হয় না। |
টাইপসেট করার আগে সংজ্ঞাগুলো প্রসারিত করা হয়, তাই একটি কমান্ড টেক্সটে, গণিতে, ক্যাপশনে আর সেকশনের শিরোনামে ব্যবহার করা যায়। লুপ থেকে রক্ষা পেতে প্রসারণ একটি নিরাপত্তা সীমায় থেমে যায়, সমস্যা ট্যাবে একটি বার্তাসহ।
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 ব্যবহার করাই ভালো।
Scissor LaTeX-এ কি \NewDocumentCommand কাজ করে?
না। এ ধরনের কমান্ড \newcommand দিয়ে আবার লিখুন, যা বাধ্যতামূলক আর্গুমেন্ট আর একটি ঐচ্ছিক আর্গুমেন্ট সামলায়।
সাইট তৈরির সময় এই পেজের প্রতিটি উদাহরণ Scissor LaTeX টাইপসেট করে। সর্বশেষ আপডেট: 2026-11-07।