Чтобы поместить короткую стрелку и пояснительный текст под отдельным термином LaTeX, объедините \underset с двухстрочной конструкцией \substack из пакета amsmath. В этом руководстве приведён полный документ для рабочего процесса на компьютере Mac, а также способ скорректировать интервалы в перегруженных выражениях.
Создайте аннотацию с помощью amsmath
В базовой конструкции три уровня: алгебраический термин, направленная вверх стрелка под ним и короткая подпись под стрелкой. Стрелка указывает на поясняемый ею термин. В руководстве amsmath описаны \underset для размещения материала под основанием и \substack для наложения нескольких строк. Их сочетание даёт используемую здесь аннотацию. Руководство пользователя пакета amsmath
Если на Mac не установлена работающая система LaTeX, проект LaTeX рекомендует MacTeX, включающий систему TeX и редакторы документов. Если вы уже успешно компилируете документы LaTeX, используйте имеющуюся установку. Установка LaTeX
Сохраните приведённый ниже полный документ в редакторе LaTeX под именем annotations.tex. Скомпилируйте его с помощью pdfLaTeX и проверьте полученный PDF. Все подписи и выражения приведены для примера.
\documentclass{article}
\usepackage{amsmath}
% First argument: mathematical term.
% Second argument: short text label.
\newcommand{\termnote}[2]{%
\underset{\substack{\uparrow\\\text{#2}}}{#1}%
}
\begin{document}
\[
F(x)=
\termnote{ax^2}{quadratic}
+\termnote{bx}{linear}
+\termnote{c}{constant}.
\]
\end{document}
В примере отдельная аннотация назначена каждому из терминов ax^2, bx и c. Знаки плюса остаются за пределами аргументов команды, благодаря чему область действия каждого пояснения очевидна. Чтобы аннотировать целое выражение в скобках, передайте эту группу первым аргументом.
Имя \termnote — это пользовательская команда, определённая в этом документе; она не является встроенной командой пакета. Её определение объединяет документированные компоненты. Команда \text позволяет вставлять обычный текст в математический режим и подстраивает его размер под окружающий математический стиль. Пакет amstext
Разберитесь в порядке аргументов
Читайте \termnote{bx}{linear} как «аннотировать термин bx подписью linear». Внутри определения \underset сначала принимает нижний материал, а затем основание. \\ отделяет строку со стрелкой от строки с подписью.
Для разовой аннотации используйте следующий фрагмент математического режима, эквивалентный вызову этой команды. Его нужно поместить внутрь разделителей формулы из полного документа выше:
\underset{\substack{\uparrow\\\text{linear}}}{bx}
Соблюдайте единое направление стрелок во всём документе. Стрелка вверх подсказывает, что пояснение относится к расположенному над ней термину. Если вы хотите, чтобы чтение шло от выражения вниз к пояснению, замените \uparrow на \downarrow в определении команды.
Выберите компоновку в соответствии с пояснением
Прежде чем добавлять пакеты, определите, что именно должна связывать стрелка. Для аннотации одного термина, стрелки под протяжённым выражением и стрелки, поясняющей переход между строками уравнений, нужны разные конструкции.
| Требуемый результат | Подходящая конструкция | Где разместить |
|---|---|---|
| Короткая вертикальная стрелка и текст под одним термином | Пользовательское сочетание \underset, \substack и \text |
Внутри математического выражения |
| Горизонтальная стрелка под выражением | \underrightarrow, \underleftarrow или \underleftrightarrow из пакета amsmath |
Вокруг выражения, к которому относится стрелка |
| Горизонтальная стрелка с текстом над стержнем или под ним | \xrightarrow или \xleftarrow из пакета amsmath |
Между математическими объектами |
| Пояснительные стрелки рядом с последовательными строками уравнений | WithArrows или DispWithArrows из пакета witharrows |
В средах выравнивания уравнений этого пакета |
В руководстве amsmath различаются стрелки под выражениями и растягиваемые стрелки: первые украшают выражения, а вторые позволяют добавлять подписи к стрелке. Ни одна из них автоматически не создаёт трёхуровневую вертикальную аннотацию из первого примера. Руководство пользователя пакета amsmath
В пакете witharrows среда WithArrows описана как компонент выравнивания, похожий на aligned, а DispWithArrows — как среда отображения, похожая на align. В основном варианте компоновки пояснительные стрелки располагаются справа от строк уравнений. Для подписей непосредственно под отдельными терминами используйте первый пример; witharrows подойдёт для пояснения шагов между строками. Пакет witharrows для plain-TeX и LaTeX
Управляйте шириной подписи, не допуская наложений
Начните с первого документа и проверьте интервалы, прежде чем менять их. Подпись вроде constant может быть намного шире термина c. Из-за этой дополнительной ширины короткое выражение может выглядеть растянутым, зато для пояснения будет больше места.
Если важно сохранить компактные интервалы между терминами, mathtools предоставляет \mathclap. Эта команда центрирует содержимое в блоке с нулевой сообщаемой шириной. Пакет загружает amsmath, поэтому для обновлённого документа достаточно \usepackage{mathtools}. Пакет mathtools, разделы 2 и 3.1.1
Ниже приведён второй полный документ для сравнения. В нём скрывается только ширина подписи; стрелка по-прежнему учитывается при измерении аннотации.
\documentclass{article}
\usepackage{mathtools}
\newcommand{\compacttermnote}[2]{%
\underset{%
\substack{\uparrow\\\mathclap{\text{#2}}}%
}{#1}%
}
\begin{document}
\[
F(x)=
\compacttermnote{ax^2}{quadratic}
\quad+\quad
\compacttermnote{bx}{linear}
\quad+\quad
\compacttermnote{c}{constant}.
\]
\end{document}
Нулевая сообщаемая ширина не означает, что текст невидим. Подпись по-прежнему выступает в обе стороны от центра. Поэтому соседние подписи могут накладываться друг на друга, даже если алгебраическое выражение свободно помещается в строке. Явный интервал \quad в этой иллюстративной компоновке оставляет больше места; подберите его, проверив собственное выражение.
Действуйте по порядку: сначала укоротите подписи, затем сравните обычный и компактный варианты и, наконец, добавьте необходимые интервалы. Если для пояснения всё ещё нужно целое предложение, перенесите его в окружающий текст, а под термином оставьте краткое обозначение. Так аннотация останется полезной при обычном размере шрифта.
Помещайте аннотированные выражения в правильную среду
Для одного ненумерованного выражения используйте \[ ... \], как показано выше. Для нескольких выровненных строк используйте align* непосредственно в теле документа. Среда aligned, напротив, должна находиться внутри охватывающей её математической среды. Эти границы описаны в руководстве amsmath. Руководство пользователя пакета amsmath, раздел 3
Ниже приведён фрагмент формулы на замену в первом документе. Он использует имеющееся определение \termnote; замените весь исходный блок формулы, включая открывающие и закрывающие разделители.
\begin{align*}
F(x) &= ax^2+bx+c \\
&= \termnote{ax^2}{quadratic}
+\termnote{bx}{linear}
+\termnote{c}{constant}.
\end{align*}
Проверяйте аннотированную строку вместе со следующим абзацем или уравнением. Подписи увеличивают высоту под математической базовой линией, поэтому компоновка, которая выглядит сбалансированной сама по себе, может оказаться тесной в длинном выводе. Если пояснения нужны для нескольких терминов, лучше разместить их в отдельной формуле.
Решение распространённых проблем
- Пользовательская команда не определена: добавьте её определение
\newcommandперед\begin{document}. - Команда пакета не определена: проверьте, загружен ли соответствующий пакет. Для компактного примера требуется
mathtoolsдля\mathclap. - Аннотация относится не к тому материалу: проверьте фигурные скобки вокруг первого аргумента. Используйте
\termnote{ax^2}{quadratic}, чтобы включить коэффициент и показатель степени. - Подписи накладываются друг на друга: вернитесь к версии с обычной шириной, сократите текст или увеличьте расстояние между аннотированными терминами.
- При выравнивании возникает ошибка вложенности: используйте приведённую выше структуру среды целиком, а не помещайте
align*внутрь другой формулы.
Для этих обычных алгебраических терминов команда оставляет термин основанием и помещает под ним пояснение. Реализация amsmath также сохраняет классификацию основания как бинарного оператора или отношения, если оно так классифицировано, однако аннотирование операторов требует дополнительно учитывать интервалы. Начните с аннотации самих терминов. Пакет amsmath, раздел 12
Примеры сверены с документацией команд, но не компилировались в исследовательской среде. Прежде чем включать команду в более крупную рукопись, скомпилируйте полный документ в установленной на вашем Mac системе.
Начните с версии с обычной шириной. Убедившись, что каждая стрелка ясно указывает на свой термин, а подписи остаются читаемыми, используйте компактный вариант только там, где видимому тексту хватает места в выражении.
Источники
- Установка LaTeX — проект LaTeX.
- Руководство пользователя пакета amsmath — Американское математическое общество и проект LaTeX.
- Пакет amstext — проект LaTeX, через CTAN.
- Пакет mathtools — Morten Høgholm, Lars Madsen и проект LaTeX3, через CTAN.
- Пакет witharrows для plain-TeX и LaTeX — F. Pantigny, через CTAN.
- Пакет amsmath — проект LaTeX, через CTAN.