PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Kombination amsmath und newcommand



Steffen1187
14-08-2013, 13:44
Servus zusammen,

ich muss einige (viele) Gleichungen etc. erstellen, in denen gewisse Vektoren etc. oft vorkommen, sodass ich mir diese als Command erstellen möchte:


\documentclass{scrreprt}
\usepackage{amsmath, amsfonts,amsthm}

\newcommand{\blau}[1]{\textcolor{blaugruen}{#1}}
\newcommand{\e0x}{\vec{e}_\textrm{0x}}

\begin{document}
test test
$\vec{e}_\textrm{0x}$
$\e0x$
\end{document}

Mein Dokument funktioniert mit dem neuen Command \blau problemlos, sobald ich wie beim Command \e0x etwas definieren möchte, bekomme ich zwei Fehlermeldungen:
- Latex error: missing begin document
- amsmath error: missing $ inserted \vec only allowed in math mode

ich denke wenn ich $$ um die "Gleichung" machen würde, wäre das Problem zunächst behoben, allerding möchte ich den Befehl \e0x nachher in equation Umgebungen o.Ä. verwenden, sodass die $$ dann ja doppelt wären, oder?

Hat mir einer einen Tip?

Grüße und Dankeschön

rstuby
14-08-2013, 14:05
Im Mathemodus musst du doch \mathrm und nicht \textrm verwenden, oder sehe ich das falsch?

LuPi
14-08-2013, 14:14
Probier's mal so:


\documentclass{scrreprt}
\usepackage{amsmath, amsfonts,amsthm}

\newcommand{\blau}[1]{\textcolor{blaugruen}{#1}}
\newcommand{\ezerox}{\vec{e}_{\textrm{0x}}}

\begin{document}
test test
$\vec{e}_\textrm{0x}$
$\vec{e}_\text{0x}$
$\ezerox$
\end{document}

Hintergrund: Soweit ich weiß, sind Ziffern in Makronamen nicht zulässig.

Anstelle von \textrm kannst Du auch \text nehmen.

Steffen1187
14-08-2013, 15:05
Dankeschön =) Dass man meine Zahlen in den Befehlsnamen verwenden darf, wusste ich nicht

sommerfee
14-08-2013, 20:04
Geht doch:


\documentclass{scrreprt}
\usepackage{amsmath, amsfonts,amsthm}

\newcommand{\blau}[1]{\textcolor{blaugruen}{#1}}
\def\e0x{\vec{e}_\textrm{0x}}

\begin{document}
test test
$\vec{e}_\textrm{0x}$
$\e0x$
\end{document}


:D

Das definiert allerdings ein Makro namens \e, welches zwingend durch '0' und 'x' gefolgt sein muß. Der Trick funktioniert also nur 1x, wenn man z.B. auf die gleiche Art und Weise \e1x definieren möchte, würde man damit die Definition von \e0x überschreiben. So würde es aber wieder funktionieren:


\documentclass{scrreprt}
\usepackage{amsmath, amsfonts,amsthm}

\newcommand{\blau}[1]{\textcolor{blaugruen}{#1}}
\def\e#1x{\vec{e}_\textrm{#1x}}

\begin{document}
test test
$\vec{e}_\textrm{0x}$
$\e0x$ $\e1x$
\end{document}

cgnieder
15-08-2013, 14:45
Dankeschön =) Dass man meine Zahlen in den Befehlsnamen verwenden darf, wusste ich nicht

Vielleicht interessieren Dich dann die folgenden Posts:

[ in optionalen Argumenten (http://texwelt.de/wissen/fragen/355/in-optionalen-argumenten#361)
Warum verschwindet der Leerraum nach selbst definierten Befehlen? (http://texwelt.de/wissen/fragen/17/warum-verschwindet-der-leerraum-nach-selbst-definierten-befehlen#25)


Grüße

Steffen1187
15-08-2013, 15:34
Tatsächlich sehr interessant :) Gibt einem ein bisschen Einblick, wie LaTeX arbeitet