Langkau ke kandungan

Arahan anda sendiri dengan \newcommand

Tulis \newcommand{\name}{gantian} dalam mukadimah, dengan [n] untuk argumen #1 hingga #n; mulai saat itu \name digantikan dengan takrifannya, dalam teks dan dalam matematik.

Arahan tanpa argumen

Arahan menjimatkan penaipan dan mengekalkan tatatanda yang konsisten. Takrifkannya sekali dalam mukadimah dan gunakannya di mana-mana.

Pintasan untuk set 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}
Disusun atur oleh Scissor LaTeX: Pintasan untuk set dan nama produk

Argumen dan nilai lalai

[n] selepas nama menyatakan berapa banyak argumen yang diterima arahan itu; di dalam takrifan, argumen itu ialah #1, #2 dan seterusnya. Kurungan kedua memberikan nilai lalai kepada argumen pertama, yang menjadikannya pilihan.

Argumen dan argumen pertama pilihan

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

Menukar arahan sedia ada

\renewcommand menggantikan arahan yang sudah wujud, dan \providecommand mentakrifkan arahan hanya jika ia belum wujud. \newcommand untuk nama yang sudah digunakan ialah ralat dalam pemasangan TeX; gunakan \renewcommand dalam keadaan itu.

\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 diatur tegak dengan jarak yang betul. \DeclareMathOperator (amsmath) membuat operator anda sendiri; bentuk berbintangnya meletakkan had di bawah dalam paparan, 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}

Persekitaran anda sendiri

\newenvironment{name}[n]{sebelum}{selepas} mentakrifkan persekitaran: kod "sebelum" dijalankan pada \begin{name} dan kod "selepas" pada \end{name}. Argumen boleh digunakan dalam bahagian "sebelum".

Persekitaran dengan satu 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

ArahanDalam Scissor LaTeXCatatan
\newcommand, \renewcommand, \providecommandBerfungsiHingga 9 argumen, argumen pertama pilihan dengan nilai lalai. Bentuk berbintang juga.
\DeclareRobustCommandBerfungsiSeperti \newcommand.
\newenvironment, \renewenvironmentBerfungsiDengan argumen dan nilai lalai.
\DeclareMathOperator, \DeclareMathOperator*Berfungsi
\def\name{...}, \gdef, \edef, \xdefSebahagianTakrifan mudah dan argumen gaya #1 berfungsi; parameter berpembatas seperti \def\pt(#1,#2){...} tidak dipadankan dan memberikan output yang bercelaru.
\let\new\oldBerfungsi
\NewDocumentCommand, \RenewDocumentCommand (xparse)Tidak disokongTakrifan digugurkan dan arahan dilaporkan sebagai tidak dikenali di tempat ia digunakan.
\DeclarePairedDelimiter (mathtools)Berfungsi
\makeatletter, \makeatotherDiterimaArahan dengan @ dalam namanya tidak dijalankan.

Takrifan dikembangkan sebelum atur huruf, jadi arahan boleh digunakan dalam teks, dalam matematik, dalam kapsyen dan dalam tajuk bahagian. Untuk mengelakkan gelung, pengembangan berhenti pada had keselamatan, dengan mesej dalam tab Masalah.

Arahan xparse

\NewDocumentCommand daripada xparse tidak dibaca. Takrifannya digugurkan, dan di tempat arahan itu digunakan, namanya dilangkau dengan mesej manakala argumennya kekal dalam teks.

\NewDocumentCommand tidak disokong

\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 membaikinya, tulis arahan yang sama dengan \newcommand{\pair}[2]{(#1, #2)}. Untuk argumen pilihan, \newcommand dengan nilai lalai merangkumi kes yang lazim.

Apa yang berbeza daripada pemasangan TeX

Manual xparse dan mathtools terdapat di CTAN: xparse, mathtools. Untuk operator dan nama fungsi, lihat juga Hasil tambah, kamiran dan nama fungsi.

Soalan dan jawapan

Bagaimanakah saya mentakrifkan arahan baharu dalam LaTeX?

Tulis \newcommand{\name}{teks} dalam mukadimah. Tambah [2] selepas nama untuk dua argumen dan gunakan #1 dan #2 dalam teks.

Apakah perbezaan antara \newcommand dan \def?

\newcommand memeriksa bahawa nama itu masih bebas dan menyokong argumen pilihan. \def ialah arahan TeX aras rendah; ia menulis ganti tanpa bertanya. Utamakan \newcommand dan \renewcommand.

Adakah \NewDocumentCommand berfungsi dalam Scissor LaTeX?

Tidak. Tulis semula arahan sedemikian dengan \newcommand, yang merangkumi argumen wajib dan satu argumen pilihan.

Setiap contoh di halaman ini disusun atur oleh Scissor LaTeX semasa laman dibina. Kali terakhir dikemas kini 2026-11-07.