Date Редакция Категория comp Теги LaTeX / формулы

Допустим, нам нужно создать в LaTeX новую команду для записи математической функции. Допустим, нужно нам использовать функцию sign(x). Функция эта используется часто, однако в отличие от синусов-косинусов, специальной команды для нее – вроде \sign – в LaTeX нет. Вот такую команду мы сейчас и создадим.

Имена функций записываются прямым шрифтом, поэтому самым простым решением будет использовать команду для записи прямым шрифтом в формулах \mathrm:

\[
f(x) = \mathrm{sign} x
\]

Однако при этом имя функции склеится с ее аргументом

mathrm1.png

Поэтому между ними нужно добавить небольшой пробел

\[
f(x) = \mathrm{sign}\,x
\]

mathrm2.png

Уже лучше.

Оформим это как новую команду

\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}

declaremathstar.png

А вот что будет, если использовать версию команды без "звездочки":

declaremath.png



Комментарии

comments powered by Disqus