
Я использую пакет braket
для своих заметок по физике, и это значительно ускоряет работу, но я постоянно пишу \ket{\psi}
или \bra{\psi}
, и поскольку эта конкретная пара бюстгальтера и кета появляется так часто, это становится повторяющимся, и я хотел бы макрос для ускорения этого. Однако, поскольку пакет braket
работает только в математическом режиме, моя попытка \newcommand{\ketp}{$\ket{\psi}}$
работает, когда я пишу в текстовом режиме, но когда я пишу в математическом режиме, он ломается (что неудивительно).
Есть ли способ заставить эту команду работать как в математическом, так и в текстовом режиме, не определяя два разных макроса, по одному для каждого?
Заранее благодарю за любую помощь.
P.S. Я уверен, что это очень простой вопрос, но я не смог найти практически никакого объяснения этой функции.
решение1
Вы можете использовать
\newcommand{\ketp}{\ensuremath{\ket{\psi}}}
Однако не ясно, всегда ли это хорошая идея. Разметка TeX основана на дизайне, который имеет четкое различие между текстовыми и математическими командами, предполагается, что автор всегда знает, какой режим используется, и обычно похожие команды для использования в тексте и математике имеют разные названия, например , Compare \^
и .\hat
Тем не менее, \ensuremath
он был добавлен в LaTeX, чтобы делать именно то, что вы просите, так что если вы хотите его использовать, он там есть...
решение2
Для этой цели как раз и существует команда: \ensuremath{…}
. При использовании в математическом режиме она возвращает свой аргумент без изменений; при использовании в текстовом режиме она возвращает свой аргумент, но переводится в математический режим.
Поэтому \newcommand{\ketp}{\ensuremath{\ket{\psi}}}
сделаю именно то, о чем вы просите.
Несколько полезных рекомендаций по его использованию:Правильный способ использованияensuremath
;Когданетиспользоватьensuremath
.