Макроси, які зберігають нотацію чесною

newcommand, NewDocumentCommand, спільний файл макросів.

Макроси, які зберігають нотацію чесною

У кожній статті є позначення, які повторюються: дійсні числа, оператор очікування, абсолютне значення зі смужками правильного розміру. Якщо ви введете \mathbb{R} у сорока місцях, а ваш консультант пізніше віддасть перевагу \mathbf{R}, у вас є сорок правок, і ви пропустите одну. Макрос перетворює це позначення на єдину команду з назвою, визначену один раз. Змініть визначення, і ви отримаєте весь документ. Ось як ви зберігаєте нотацію чесною: джерело не може вийти з синхронізації із самим собою.

Визначення команд за допомогою newcommand

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

Перше визначення є найпростішим: \R тепер є чистим скороченням, і введення \R будь-де створює \mathbb{R}.

Друга форма приймає аргумент. «[1]» після назви вказує, що «\E» приймає один аргумент, а «#1» позначає місце розташування цього аргументу в розширенні. Тому \E{X} стає \mathbb{E}\left[X\right]. Визначення вимагає більше, ніж стислість: пара \left[ і \right] змушує дужки зростати, щоб вмістити все, що всередині, тому \E{\frac{X}{n}} автоматично отримує високі дужки. Макрос \abs робить те саме з \lvert і \rvert, правильною парою вертикальних смужок для абсолютного значення. Ви можете оголосити до дев’яти аргументів і посилатися на них від «#1» до «#9».

Якщо команда вже існує, \newcommand відмовляється перевизначати її та зупиняється з повідомленням про помилку, що захищає вас від мовчки щось зламати. Щоб навмисно замінити існуючу команду, використовуйте натомість \renewcommand.

Сучасний інтерфейс

Поточний LaTeX також надає більш багату команду визначення:

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

\NewDocumentCommand використовує рядок специфікації аргументу замість підрахунку. Тут mm означає два обов’язкові аргументи, тому \citepair{knuth84}{lamport94} цитує обидва ключі. Мова специфікації йде далі, ніж \newcommand: o оголошує необов’язковий аргумент у квадратних дужках, s визначає варіант із зірочкою, а O{default} надає необов’язковому аргументу значення за замовчуванням. Для будь-чого, крім простої заміни, скористайтеся цим інтерфейсом.

Поділіться визначеннями

Зберігайте macros.sty спільно для всіх розділів. Розмістіть ваші визначення в цьому одному файлі, завантажте його з \usepackage{макросами} з кожного документа, і кожен розділ дисертації, а також слайди та паперова версія, все узгоджується з позначеннями. Коли співавтор приєднується, він читає один короткий файл, щоб дізнатися про ваші умовності, замість того, щоб реконструювати їх із тексту. Це природно поєднується з налаштуванням кількох файлів.

Порада щодо іменування: дайте макросам значущі назви, як-от \abs або \norm, а не засновані на зовнішньому вигляді імена, як-от \bigbars. У назві має бути вказано значення нотації, тому визначення можна вільно змінювати, як воно виглядає. І не визначайте макрос для того, що ви використовуєте двічі; оплата починається приблизно після третього використання.

Назад до Час виконання