Макроси, які зберігають нотацію чесною
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. У назві має бути вказано значення нотації, тому визначення можна вільно змінювати, як воно виглядає. І не визначайте макрос для того, що ви використовуєте двічі; оплата починається приблизно після третього використання.