Langsung ke konten

Perintah buatan sendiri dengan \newcommand

Tulis \newcommand{\name}{pengganti} di preambul, dengan [n] untuk argumen #1 sampai #n; sejak itu \name diganti dengan definisinya, di dalam teks maupun matematika.

Perintah tanpa argumen

Perintah menghemat ketikan dan menjaga notasi tetap konsisten. Definisikan sekali di preambul dan pakai di mana saja.

Pintasan untuk himpunan dan nama produk

\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}
Ditata oleh Scissor LaTeX: Pintasan untuk himpunan dan nama produk

Argumen dan nilai bawaan

[n] setelah nama menyatakan berapa banyak argumen yang diterima perintah; di dalam definisi argumen itu ditulis #1, #2, dan seterusnya. Kurung siku kedua memberi argumen pertama nilai bawaan, sehingga argumen itu menjadi opsional.

Argumen dan argumen pertama yang opsional

\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}

Mengubah perintah yang sudah ada

\renewcommand mengganti perintah yang sudah ada, dan \providecommand mendefinisikan perintah hanya jika belum ada. \newcommand untuk nama yang sudah dipakai adalah galat di instalasi TeX; dalam hal itu pakai \renewcommand.

\renewcommand dan \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}

Nama operator

Nama fungsi seperti sin dan log disusun tegak dengan jarak yang tepat. \DeclareMathOperator (amsmath) membuat operator Anda sendiri; bentuk berbintangnya menempatkan batas di bawah dalam tampilan, seperti \max.

\DeclareMathOperator dan bentuk berbintangnya

\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}

Lingkungan buatan sendiri

\newenvironment{name}[n]{before}{after} mendefinisikan lingkungan: kode "before" dijalankan pada \begin{name} dan kode "after" pada \end{name}. Argumen bisa dipakai di bagian "before".

Lingkungan dengan sebuah argumen

\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}

Apa yang berfungsi

PerintahDi Scissor LaTeXCatatan
\newcommand, \renewcommand, \providecommandBerfungsiSampai 9 argumen, argumen pertama opsional dengan nilai bawaan. Bentuk berbintang juga.
\DeclareRobustCommandBerfungsiSama seperti \newcommand.
\newenvironment, \renewenvironmentBerfungsiDengan argumen dan nilai bawaan.
\DeclareMathOperator, \DeclareMathOperator*Berfungsi
\def\name{...}, \gdef, \edef, \xdefSebagianDefinisi sederhana dan argumen gaya #1 berfungsi; parameter berpembatas seperti \def\pt(#1,#2){...} tidak dicocokkan dan menghasilkan keluaran yang kacau.
\let\new\oldBerfungsi
\NewDocumentCommand, \RenewDocumentCommand (xparse)Tidak didukungDefinisinya dibuang dan perintahnya dilaporkan tidak dikenal di tempat ia dipakai.
\DeclarePairedDelimiter (mathtools)Berfungsi
\makeatletter, \makeatotherDiterimaPerintah dengan @ di namanya tidak dijalankan.

Definisi diekspansi sebelum tata huruf, sehingga perintah bisa dipakai di teks, matematika, keterangan, dan judul bagian. Untuk mencegah perulangan tanpa akhir, ekspansi berhenti pada batas pengaman, disertai pesan di tab Masalah.

Perintah xparse

\NewDocumentCommand dari xparse tidak dibaca. Definisinya dibuang, dan di tempat perintah itu dipakai, namanya dilewati dengan pesan sementara argumennya tetap ada di teks.

\NewDocumentCommand tidak didukung

\documentclass{article}
\usepackage{xparse}
\NewDocumentCommand{\pair}{m m}{(#1, #2)}
\begin{document}
The pair \pair{a}{b} loses its parentheses and comma.
\end{document}

Tab Masalah: Skipped 1 unknown command: \pair

Untuk memperbaikinya, tulis perintah yang sama dengan \newcommand{\pair}[2]{(#1, #2)}. Untuk argumen opsional, \newcommand dengan nilai bawaan sudah mencakup kasus yang umum.

Perbedaan dengan instalasi TeX

Manual xparse dan mathtools ada di CTAN: xparse, mathtools. Untuk operator dan nama fungsi, lihat juga Jumlah, integral, dan nama fungsi.

Tanya jawab

Bagaimana cara mendefinisikan perintah baru di LaTeX?

Tulis \newcommand{\name}{teks} di preambul. Tambahkan [2] setelah nama untuk dua argumen dan pakai #1 serta #2 di dalam teks.

Apa bedanya \newcommand dan \def?

\newcommand memeriksa bahwa namanya belum dipakai dan mendukung argumen opsional. \def adalah perintah TeX tingkat rendah; perintah ini menimpa tanpa bertanya. Utamakan \newcommand dan \renewcommand.

Apakah \NewDocumentCommand berfungsi di Scissor LaTeX?

Tidak. Tulis ulang perintah seperti itu dengan \newcommand, yang mencakup argumen wajib dan satu argumen opsional.

Setiap contoh di halaman ini ditata oleh Scissor LaTeX saat situs dibuat. Terakhir diperbarui 2026-11-07.