
Знак \sim
используется в математике для эквивалентности последовательностей. Как это сделать в LaTeX?
Я пытался
\documentclass{article}
\usepackage{amsmath}
\DeclareMathOperator{\isEquivTo}{\sim}
\begin{document}
\[
\sin(n) + n \isEquivTo\limits_{+\infty} n
\]
\end{document}
но вывод не тот, что я ищу. Я бы хотел, +\infty
чтобы было под \sim
знаком. Возможно ли иметь команду \isEquivTo
, которая автоматически поместит +\infty
под знаком, даже без ввода \limits
?
решение1
Если вы хотите, чтобы оператор уважал, \limits
вы должны использовать \DeclareMathOperator*
. Однако это неправильный инструмент для требуемого символа, потому что он создаст оператор, а не символ отношения, с неправильным интервалом. Тогда
\newcommand{\isEquivTo}[1]{\underset{#1}{\sim}}
кажется лучше для ваших нужд. Обратите внимание, что \underset
будет «знать», что \sim
это символ отношения, поэтому он будет использовать правильный интервал вокруг него.
\documentclass{article}
\usepackage{amsmath}
\newcommand{\isEquivTo}[1]{\underset{#1}{\sim}}
\begin{document}
\[
\sin(n) + n \isEquivTo{+\infty} n
\]
\end{document}
С другой стороны, установка нижнего индекса под символом не даст хороших результатов при встраивании; вот лучшее определение, которое использует \underset
только стиль отображения. Внимательно посмотрите на вывод, чтобы понять, почему лучше не использовать форму \underset
для встраиваемых формул.
\documentclass{article}
\usepackage{amsmath}
\newcommand{\isEquivTo}[1]{%
\mathpalette\isEquivToInner{#1}%
}
\newcommand{\isEquivToInner}[2]{%
\ifx#1\displaystyle
\underset{#2}{\sim}
\else
\sim_{#2}
\fi
}
\begin{document}
some text some text some text some text some text some text some text some text
some text some text some text some text some text some text some text some text
$\displaystyle\sin(n) + n \isEquivTo{+\infty} n$
some text some text some text some text some text some text some text
some text some text some text some text some text some text some text
$\sin(n) + n \isEquivTo{+\infty} n$
some text some text some text some text some text some text some text
some text some text some text some text some text some text some text
\[
\sin(n) + n \isEquivTo{+\infty} n
\]
\end{document}
Если вам нужен синтаксис вроде \isEquivTo_{+\infty}
, вы можете сделать это с помощью xparse
:
\documentclass{article}
\usepackage{amsmath}
\usepackage{xparse}
\NewDocumentCommand{\isEquivTo}{e{_}}{\isEquivToA#1}
\NewDocumentCommand{\isEquivToA}{m}{%
\IfNoValueTF{#1}
{\sim}
{\mathpalette\isEquivToB{#1}}%
}
\newcommand{\isEquivToB}[2]{%
\ifx#1\displaystyle
\underset{#2}{\sim}
\else
\sim_{#2}
\fi
}
\begin{document}
Here is the command without subscript $n \isEquivTo n$
some text some text some text some text some text some text some text some text
some text some text some text some text some text some text some text some text
$\displaystyle\sin(n) + n \isEquivTo_{+\infty} n$
some text some text some text some text some text some text some text
some text some text some text some text some text some text some text
$\sin(n) + n \isEquivTo_{+\infty} n$
some text some text some text some text some text some text some text
some text some text some text some text some text some text some text
\[
\sin(n) + n \isEquivTo_{+\infty} n
\]
\end{document}
Вы увидите, что первый вызов просто делает \sim
.