PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Viele ähnliche Befehle



AureusPhoenix
28-09-2010, 17:57
Hi Leute,
ich bin am überlegen meine Packete etwas zu überarbeiten und möchte einige Sachen (wenn das möglich ist) abkürzen. Und zwar habe ich folgenden Befehl


\renewcommand*{\sin}[2][]{\,\text{sin}^{#1}\left({#2}\right)\,}

für verdammt viele Funktionen (also tan, cos, cot, ...) definiert und wollte wissen ob ich das irgendwie einfacher machen kann als die alle hinter einander zu schreiben.

Eine Idee hab ich schon. Ich schreib nen Befehl der die Formatierungen umfasst und definiere alle neuen Funktionen mit dem Hilfsbefehl. Das macht das ganze schon hübscher. Aber gibt es auch ne Variante ihm zu sagen, er möge die nächsten X Funktionen so definieren?

Sodass ich also im Grunde alles in 2 Zeilen bekomme?

Wäre cool wenn ihr ne Idee hättet.
Schonmal DANKE !!!

voss
28-09-2010, 18:40
ich bin am überlegen meine Packete etwas zu überarbeiten und möchte einige Sachen (wenn das möglich ist) abkürzen. Und zwar habe ich folgenden Befehl


\renewcommand*{\sin}[2][]{\,\text{sin}^{#1}\left({#2}\right)\,}

für verdammt viele Funktionen (also tan, cos, cot, ...) definiert und wollte wissen ob ich das irgendwie einfacher machen kann als die alle hinter einander zu schreiben.


das ist schon mal völlig falsch, denn \sin ist ein Operator, was im Mathematiksatz gewisse Konventionen nach sich zieht, was du komplett überbügelst. Wenn schon, dann

\newcommand*\Sin[2][]{\sin^{#1}\left({#2}\right)}
Wahrscheinlich sollte man noch abfragen, ob #1 leer ist.

Herbert

Schweinebacke
28-09-2010, 18:49
\newcommand*{\renewfunction}[1]{%
\expandafter\newcommand\csname orig@#1\endcsname{}%
\expandafter\let\csname orig@#1\expandafter\endcsname\csname #1\endcsname
\expandafter\renewcommand\expandafter*\csname #1\endcsname[2]{%
\ensuremath{\csname orig@#1\endcsname^{##1}\left(##2\right)}}%
}
\renewfunction{sin}\renewfunction{cos}\renewfuncti on{tan}\renewfunction{cot}Mangels vollständigem Minimalbeispiel (http://www.minimalbeispiel.de) ungetestet. Was das bringen soll, erschließt sich mir allerdings nicht. Ein \sin{2}{x+y} ist auch nicht viel schneller geschrieben als ein \sin^2(x+y). \left und \right wird sooo häufig an der Stelle wohl nicht benötigt, oder? Aber selbst wenn das der Fall ist, ist es schnell geschrieben.

AureusPhoenix
29-09-2010, 00:26
Hi ihr beiden und schonmal Danke für eure Antworten. Werd das morgen gleich mal ausprobieren.

Zu euren Bemerkungen:
@Voss:
Danke für den Hinweis mit dem Operator. Hab mal schnell gegoogelt und Infos über robuste und zerbrechliche befehle gefunden. Aber könnte das in meinem Fall wirklich relevant werden? Ich hatte noch nie Probleme mit dieser Befehlsdefinition.

@Schweinebacke (komischer Nickname ^^):
Erstmal danke für deinen Code. Werd ihn wie gesagt morgen ausprobieren. Zu deiner Frage, warum ich das mache:
a) Weil ich gerne immer \left und \right benutze da ich sinusse weder ohne klammern noch mit zu kleinen klammern mag. Das einfache \sin(x) ist ja eher selten. Häufiger hat man ja Brüche oder wenigstens Quadrate drin.
b) Weil dadurch insbesondere längere Formelabschnitte übersichtlicher bleiben. Ein \sin[3]{x^2} sieht ist halt kürzer und übersichtlicher als \sin^3\left(x^2\right) aus.


Grüße und gute Nacht ...