PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Parameter bei \newcommand



koXx
11-01-2012, 09:32
Hallo,
ich bin neu im Forum und auch noch recht neu, was den Umgang mit Latex betrifft.
Ich arbeite zurzeit an einer Studienarbeit und da diese sehr aufwendig ist, wollte ich einige immer wiederkehrende Symbole mit \newcommand definieren. Dies funktioniert auch sehr gut, aber ich hänge nun an einer Stelle fest, an der ich nicht weiter weiß. Und zwar möchte ich folgende Variable definieren:

\newcommand{\epstr}{\boldsymbol{\varepsilon_{tr}}}

Diese taucht einfach in der Variante, aber auch als zeitliche Ableitung und dadurch mit einem "Punkt" versehen auf:

\dot{\boldsymbol{\varepsilon}}_{tr}

Der Punkt befindet sich aber nur über \boldsymbol{\varepsilon} und nicht auch über dem Index. Meine Frage ist nun, ob ich diesen Umstand mit den Parametern innerhalb des \newcommand Befehls definieren kann. Dass ich die Variable also mal mit Punkt und mal ohne aufrufen kann?

Vielen Dank für eure Hilfe und ich hoffe mein Problem ist verständlich genug beschrieben!

Mit freundlichen Grüßen
Sebastian

sommerfee
11-01-2012, 09:41
Meine Frage ist nun, ob ich diesen Umstand mit den Parametern innerhalb des \newcommand Befehls definieren kann. Dass ich die Variable also mal mit Punkt und mal ohne aufrufen kann?

Natürlich geht das. Aber erstmal muß man sich überlegen, welche Syntax der Befehl \epstr denn letztendlich haben soll, wie soll die Ableitung im Quelltext geschrieben werden? Als \epstr. ? Als \epstr* ? Als \epstr[\dot]? Als...?

Hier mal eine mögliche Umsetzung von \epstr*:


\documentclass{article}
\usepackage{amsmath}

\makeatletter
\newcommand{\epstr}{%
\@ifstar
{\dot{\boldsymbol{\varepsilon}}_{tr}}%
{\boldsymbol{\varepsilon_{tr}}}}
\makeatother

\begin{document}
$\epstr \epstr*$
\end{document}


Kommandos wie \@ifstar findet man via "texdoc macros2e" auf der Kommandozeile.

(Deine beiden Definitionen habe ich hierbei einfach mal 1:1 übernommen, zusammen mit dem Fehler, daß bei der einen Definition das "tr" fett ist und bei der anderen nicht ;-))

koXx
11-01-2012, 10:27
Vielen Dank für die Hilfe, es funktioniert wunderbar! Was
Kommandos wie \@ifstar findet man via "texdoc macros2e" auf der Kommandozeile betrifft, so gehe ich davon aus, dass du Linux Benutzer bist? Denn unter Windows konnte ich dies nicht so ohne weiteres ausführen!
Damit ich das nun noch besser nachvollziehen kann, was müsste geändert werden, wenn ich nicht die Variante mit dem "*" verwenden möchte, sondern z.B. "\epstr[\dot]" ? Würde sich dass dann nur auf das "\@ifstar" auswirken? Und die Prozentzeichen sind wohl für Leerzeichen gedacht. Wenn ich den Befehl also in eine Zeile schreiben würde, so könnte ich diese auch weglassen, oder?

Gruß Sebastian

Achso: Wegen dem Fehler mit dem Fettgedruckt...ist geändert, danke für den Hinweis! Ich habe vor lauter Klammern nichts mehr gesehen... ;)

rstuby
11-01-2012, 11:02
Bei mri funktioniert der Befehl texdoc auch unter Windows.

sommerfee
11-01-2012, 11:48
Damit ich das nun noch besser nachvollziehen kann, was müsste geändert werden, wenn ich nicht die Variante mit dem "*" verwenden möchte, sondern z.B. "\epstr[\dot]" ?



\documentclass{article}
\usepackage{amsmath}

\newcommand{\epstr}[1][]{%
#1{\boldsymbol{\varepsilon}}_{tr}}

\begin{document}
$\epstr \epstr[\dot]$
\end{document}


wäre eine mögliche Lösung.


Und die Prozentzeichen sind wohl für Leerzeichen gedacht. Wenn ich den Befehl also in eine Zeile schreiben würde, so könnte ich diese auch weglassen, oder?

Japp.