Допустим, нам нужно создать в LaTeX новую команду для записи математической функции. Допустим, нужно нам использовать функцию sign(x)
. Функция эта используется часто, однако в отличие от синусов-косинусов, специальной команды для нее – вроде \sign
– в LaTeX нет. Вот такую команду мы сейчас и создадим.
Имена функций записываются прямым шрифтом, поэтому самым простым решением будет использовать команду для записи прямым шрифтом в формулах \mathrm
:
\[
f(x) = \mathrm{sign} x
\]
Однако при этом имя функции склеится с ее аргументом
Поэтому между ними нужно добавить небольшой пробел
\[
f(x) = \mathrm{sign}\,x
\]
Уже лучше.
Оформим это как новую команду
\newcommand{\sign}{\mathrm{sign}\,}
Минус этого решения -- жесткое задание определенного вида пробела в макросе. Более грамотно будет поступить следующим образом
\newcommand{\sign}{\mathop{\mathrm{sign}}}
Команда \mathop
указывает, что заключенное внутрь нее – математический оператор (функция) и после него нужно сделать отступ.
Но и это еще не все :)
Еще проще создать команду для математической функции с помощью пакета amsmath
. Здесь есть два варианта:
- вариант 1-й – более длинный
\newcommand{\sign}{\operatorname{sign}}
- 2-й вариант – более короткий
\DeclareMathOperator{\sign}{sign}
или даже
\DeclareMathOperator\sign{sign}
Если же вам нужна функция, у которой будут верхние и/или нижние индексы (как у предела или интеграла), то можно использовать версию \DeclareMathOperator
со "звездочкой" (у \operatorname
тоже есть такой вариант)
\DeclareMathOperator*{\esssup}{ess\,sup}
А вот что будет, если использовать версию команды без "звездочки":
Комментарии
comments powered by Disqus