Seite 1 von 1
\newcommand -> subset und superset an bestimmter Position
Verfasst: Sa 28. Apr 2012, 17:48
von p90
Hi,
da ich an meinen Operatoren gerne Klammern habe, habe ich bisher soetwas verwendet.
\let\oldcos\cos
\renewcommand*{\cos}[1]{\oldcos{\left( #1\right)}}
Nun möchte ich dafür sorgen, dass
zu
wird statt
Wie bekomme ich das hin?
MfG
p90
Re: \newcommand -> subset und superset an bestimmter Posi
Verfasst: So 29. Apr 2012, 11:42
von rais
p90 hat geschrieben:
da ich an meinen Operatoren gerne Klammern habe, habe ich bisher soetwas verwendet.
\let\oldcos\cos
\renewcommand*{\cos}[1]{\oldcos{\left( #1\right)}}
Poste bitte (zukünftig) vollständige Minimalbeispiele, keine Schnippsel!
p90 hat geschrieben:
Nun möchte ich dafür sorgen, dass
zu
wird statt
Wie bekomme ich das hin?
wenn ich Dich recht verstehe, etwa so:
\documentclass{article}
\let\oldcos\cos
\makeatletter
\newcommand*\cos@ii[5]{%
\oldcos{%
\ifx\relax#2\relax\else#2#3\fi
\ifx\relax#4\relax\else#4#5\fi
\left(#1\right)}%
}
\newcommand*\cos@i[3]{%
\@ifnextchar_{\cos@ii{#1}{#2}{#3}}{%
\@ifnextchar^{\cos@ii{#1}{#2}{#3}}{\cos@ii{#1}{#2}{#3}{}{}}}%
}
\renewcommand*\cos[1]{%
\@ifnextchar^{\cos@i{#1}}{%
\@ifnextchar_{\cos@i{#1}}{\cos@i{#1}{}{}}}%
}
\makeatother
\begin{document}
\[
\cos{w}\quad\cos{w}_i\quad\cos{w}^j\quad\cos{w}^j_i\quad\cos{w}_i^j
\]
\end{document}
MfG
Rainer
Verfasst: Mi 14. Nov 2012, 23:18
von p91
Hi,
der Code von Reiner funktioniert gut solange man nur ein Subset hat, dass nur ein Zeichen lang ist.
hat man mehr Zeichen muss eine kleine Korrektur eingefügt werden und zwar:
\newcommand*\cos@ii[5]{%
\oldcos{%
\ifx\relax#2\relax\else#2{#3}\fi
\ifx\relax#4\relax\else#4{#5}\fi
\left(#1\right)}%
}
Verfasst: Mi 14. Nov 2012, 23:57
von guy.brush™
Ich vermute, du meinst, dass \cos(x)_i zu \oldcos_i\left( x \right) werden soll, oder?^^
Schau dir aber mal noch das Paket "xparse" an, damit sollte das sehr leicht moeglich sein. Du kannst dir da sehr maechtige Befehle mit zusammenbasteln. Mit dem Befehl \NewDocumentCommand und Konsorten kannst du dir das dann definieren und hast auch mehr optionale Parameter zur Verfuegung. Du kannst auch sagen, dass der optionale Parameter mit einem "_" beginnen muss/soll.
Die Version wuerde ich jetzt schoener finden als die Definition von rais

.