Nội dung này chưa có sẵn bằng ngôn ngữ của bạn. Hiển thị phiên bản tiếng Anh.

Makra, które zapewniają uczciwość zapisu

newcommand, NewDocumentCommand, udostępniony plik makr.

Makra, które zapewniają uczciwość zapisu

W każdej pracy występuje powtarzający się zapis: liczby rzeczywiste, operator oczekiwań, wartość bezwzględna ze słupkami o odpowiedniej wielkości. Jeśli wpiszesz \mathbb{R} w czterdziestu miejscach, a Twój doradca później wybierze \mathbf{R}, będziesz miał czterdzieści zmian do wprowadzenia i jedną pominiesz. Makro zamienia tę notację w jedno nazwane polecenie, zdefiniowane raz. Zmień definicję, a cały dokument będzie następujący. W ten sposób zachowuje się uczciwość zapisu: źródło nie może utracić synchronizacji ze sobą.

Definiowanie poleceń za pomocą nowego polecenia

\newcommand{\R}{\mathbb{R}}
\newcommand{\E}[1]{\mathbb{E}\left[#1\right]}
\newcommand{\abs}[1]{\left\lvert #1 \right\rvert}

Pierwsza definicja jest najprostsza: \R jest teraz czystym skrótem i wpisanie \R gdziekolwiek daje \mathbb{R}.

Druga forma przyjmuje argument. Znak „[1]” po nazwie deklaruje, że „\E” akceptuje jeden argument, a „#1” oznacza miejsce, w którym ten argument ląduje w rozwinięciu. Zatem \E{X} staje się \mathbb{E}\left[X\right]. Definicja pozwala na więcej niż tylko zwięzłość: para \left[ i \right] powoduje, że nawiasy powiększają się, dopasowując się do zawartości, więc \E{\frac{X}{n}} automatycznie otrzymuje wysokie nawiasy. Makro \abs robi to samo z \lvert i \rvert, poprawną parą pionowych kresek oznaczających wartość bezwzględną. Można zadeklarować maksymalnie dziewięć argumentów i odnosić się do nich jako od „#1” do „#9”.

Jeśli polecenie już istnieje, \nowe polecenie odmawia jego przedefiniowania i kończy się wyświetlaniem błędu, który chroni Cię przed cichym złamaniem czegoś. Aby celowo zastąpić istniejące polecenie, użyj zamiast niego \renewcommand.

Nowoczesny interfejs

Obecny LaTeX zawiera również bogatsze polecenie definicji:

\NewDocumentCommand{\citepair}{mm}{\cite{#1}, \cite{#2}}

\NewDocumentCommand używa ciągu znaków specyfikacji argumentu zamiast liczby. Tutaj mm oznacza dwa obowiązkowe argumenty, więc \citepair{knuth84}{lamport94} cytuje oba klucze. Język specyfikacji idzie dalej niż \newcommand: o deklaruje opcjonalny argument w nawiasach kwadratowych, s wykrywa wariant gwiazdki, a O{default} nadaje opcjonalnemu argumentowi wartość domyślną. Jeśli szukasz czegoś więcej niż proste podstawienie, sięgnij po ten interfejs.

Podziel się definicjami

Zachowaj plik „macros.sty” współdzielony między rozdziałami. Umieść swoje definicje w tym jednym pliku, załaduj go \usepackage{macros} z każdego dokumentu, a każdy rozdział pracy dyplomowej, a także slajdy i wersja papierowa, wszystkie są zgodne w notacji. Kiedy współpracownik dołącza, czyta jeden krótki plik, aby poznać Twoje konwencje, zamiast odtwarzać je na podstawie tekstu. To naturalnie łączy się z konfiguracją wielu plików.

Wskazówka dotycząca nazewnictwa: nadawaj makrom znaczące nazwy, takie jak \abs lub \norm, a nie nazwy oparte na wyglądzie, takie jak \bigbars. Nazwa powinna informować, co oznacza zapis, tak aby definicja mogła dowolnie zmieniać jej wygląd. I powstrzymaj się od definiowania makra dla czegoś, czego używasz dwa razy; wypłata zaczyna się około trzeciego użycia.

Quay lại Thời gian chạy