Como posso escrever uma macro que entra no modo matemático quando chamada no modo texto, mas quando chamada no modo matemático não quebra?

Como posso escrever uma macro que entra no modo matemático quando chamada no modo texto, mas quando chamada no modo matemático não quebra?

Estou usando o pacote braketpara minhas anotações de física, e isso acelera bastante as coisas, mas estou constantemente escrevendo \ket{\psi}or \bra{\psi}, e como esse par específico de sutiã e colete aparece com tanta frequência, isso se torna repetitivo e eu gostaria de uma macro para acelerar isso. No entanto, como o braketpacote funciona apenas no modo matemático, minha tentativa \newcommand{\ketp}{$\ket{\psi}}$funciona quando estou escrevendo no modo texto, mas quando estou escrevendo no modo matemático ele quebra (sem surpresa).

Existe alguma maneira de fazer esse comando funcionar tanto no modo matemático quanto no modo texto sem precisar definir duas macros diferentes, uma para cada?

Agradecemos antecipadamente por qualquer ajuda.

PS Tenho certeza de que esta é uma pergunta muito simples, mas encontrei pouca ou nenhuma explicação sobre esse recurso.

Responder1

Você pode usar

\newcommand{\ketp}{\ensuremath{\ket{\psi}}}

No entanto, não está claro se é sempre uma boa ideia fazer isso. A marcação TeX é baseada em um design que tem uma distinção clara entre comandos de texto e matemáticos, a suposição é que o autor sempre sabe qual modo está em uso, e normalmente comandos semelhantes para uso em texto e matemática têm nomes diferentes, compare \^e \hatpor exemplo .

Dito isto, \ensuremathfoi adicionado ao LaTeX para fazer exatamente o que você pede, então se você quiser usá-lo, está aí...

Responder2

Existe um comando exatamente para esse fim: \ensuremath{…}. Se usado no modo matemático, seu argumento será inalterado; se usado em modo texto, fornece seu argumento, mas colocado em modo matemático.

Então \newcommand{\ketp}{\ensuremath{\ket{\psi}}}farei exatamente o que você pedir.

Algumas boas orientações sobre seu uso:Maneira correta de usarensuremath;Quandonãousarensuremath.

informação relacionada