PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Erkennung von math-mode in \newcommand



greenmoon
17-08-2020, 12:25
Hi,

ich verwende \newcommand um aufwändige Variablennamen überall konstant gleich zu schreiben. Problem ist, dass die sowohl im Text modus als auch im Mathe modus gleich ersetzt werden sollen. Das klappt mit meinem bisherigen Ansatz nicht, weil ich im Mathe modus nochmal $$ einfüge. Gibt es da eine elegante Lösung zu?


\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath, amssymb}
\usepackage{xspace}
\newcommand{\Abc}{$A_\text{bc}$}

\begin{document}

some test \Abc, but also in equation $\Abc = b - c$.

\end{document}



Fehlermeldung:

! Missing $ inserted.
<inserted text>
$
l.9 some test \Abc, but also in equation $\Abc
= b - c$.
I've inserted a begin-math/end-math symbol since I think
you left one out. Proceed, with fingers crossed.

! Missing $ inserted.
<inserted text>
$
l.10

I've inserted a begin-math/end-math symbol since I think
you left one out. Proceed, with fingers crossed

rais
17-08-2020, 18:08
Mit \ifmmode könntest Du testen, ob Du Dich im Mathematikmodus befindest. Wenn das Ergebnis eh im Mathematikmodus gesetzt werden soll, ist \ensuremath zu empfehlen:


\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath, amssymb}
\usepackage{xspace}
\newcommand{\Abc}{\ensuremath{A_\text{bc}}}

\begin{document}

some test \Abc, but also in equation $\Abc = b - c$.

\end{document}

VG

greenmoon
17-08-2020, 19:28
Super, das ist genau das, was ich gesucht habe. Vielen Dank!