Μετάβαση στο περιεχόμενο

Δικές σας εντολές με \newcommand

Γράψτε \newcommand{\name}{αντικατάσταση} στο προοίμιο, με [n] για ορίσματα #1 έως #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 ορίζει μια εντολή μόνο αν δεν υπάρχει ακόμη. Η \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

Η \NewDocumentCommand του xparse δεν διαβάζεται. Ο ορισμός παραλείπεται, και εκεί όπου χρησιμοποιείται η εντολή, το όνομά της παραλείπεται με μήνυμα, ενώ τα ορίσματά της μένουν στο κείμενο.

Η \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}{κείμενο} στο προοίμιο. Προσθέστε [2] μετά το όνομα για δύο ορίσματα και χρησιμοποιήστε #1 και #2 στο κείμενο.

Ποια είναι η διαφορά ανάμεσα στην \newcommand και την \def;

Η \newcommand ελέγχει ότι το όνομα είναι ελεύθερο και υποστηρίζει προαιρετικό όρισμα. Η \def είναι η χαμηλού επιπέδου εντολή του TeX· αντικαθιστά χωρίς να ρωτήσει. Προτιμήστε τις \newcommand και \renewcommand.

Λειτουργεί η \NewDocumentCommand στο Scissor LaTeX;

Όχι. Ξαναγράψτε τέτοιες εντολές με \newcommand, που καλύπτει υποχρεωτικά ορίσματα και ένα προαιρετικό όρισμα.

Κάθε παράδειγμα σε αυτή τη σελίδα στοιχειοθετείται από το Scissor LaTeX κατά τη δημιουργία του ιστότοπου. Τελευταία ενημέρωση: 2026-11-07.