Archiv verlassen und diese Seite im Standarddesign anzeigen : mehr als einen optionalen Parameter
Hi,
wie kann man ein Makro mit mehr als einen optionalen Parameter definieren???
Es soll dann auf diese Weise aufgerufen werden.
\mycommand[textcolor={red}, textform={bold}]
Danke
ich weiss nicht einmal, wie man macht, dass man einen optionalen Parameter angeben kann :o
- Adrian
... versuch es mal so:
...
\newcommand{\myfont}[1]{ \textcolor{red}{{\bf #1}} }
...
\myfont{Diese Zeichen werden fett und mit roter Tinte gesetzt}.
...
edico
:confused: :confused:
Wo ist denn da der optionale Parameter??
- Adrian
@badera: schau dir die mapage an ... und warum kompliziert, wenns einfach geht. Aber vielleicht hab ich auch alles und den Sinn der Ausgangafrage falsch verstanden ...
Ansonsten kann man sich bei Dante informieren:
5.1.8 Wie kann ich in LaTeX eine Anweisung mit mehr als einem optionalen Parameter definieren?
Mit \newcommand kann man nur ein Makro mit einem einzigen optionalen Parameter definieren. Will man ein Makro mit mehr als einem optionalen Parameter definieren, so muß man hierzu mehrere Makros mit jeweils einem optionalen Parameter definieren, die den Wert des Parameters zwischenspeichern und ...
edico
Naja, vielleicht hab auch ich alles falsch verstanden.
Unter einem optionalen Parameter verstehe ich einen Parameter, den man angeben kann oder nicht, und wenn man ihn nicht angibt, passiert irgendwas, das per default gesetzt ist. So wie das bei Latex üblicherweise in Eckigen Klammern vor den eigentlichen Parametern gemacht wird. Beispiel
\minipage[t]{10cm}
Der optionale Parameter ist hier t, und wenn er weggelassen wird, ist eben eigentlich c gesetzt...
Soviel zu dem, um was es meiner Ansicht nach geht. Gefragt wäre nun, wie dass man mehr als einen solchen optionalen Parameter machen kann, siehe Post zuoberst. Aber möglicherweise habe ich alles falsch verstanden...
- Adrian
Nee, das mit den optionalen Parametern ist schon ok. Aber warum? Egal , sonst das mal probieren:
... optparams.sty - macros with multiple optinal parameters
http://www.tug.org/tex-archive/help/Catalogue/entries/optparams.html
edico
Hi,
also ich hab einen Beispiel auf der manpage gefunden, dass gewissermaßen das Problem löst.
____________________________________________
Beispiel :
\cubic[a][b][c]{d} mit drei optionalen Argumenten:
\newcommand{\erstesargument}{}
\newcommand{\zweitesargument}{}
\newcommand{\cubic}[1][a]{
\begingroup
\renewcommand{\erstesargument}{#1}
\cubicZwei}
\newcommand{\cubicZwei}[1][b ]{
\renewcommand{\zweitesargument}{#1}
\cubicDrei}
\newcommand{\cubicDrei}[2][c ]{ \({\erstesargument}x^3+{\zweitesargument}x^2+#1x+# 2\)
\endgroup}
____________________________________________
Jedoch ist die Paramaterreihenfolge in diesem Beispiel festvorgegeben , d.h. wenn ich diesen Makro mit einem optionalen Parameter aufrufe, z.B.
\cubic[k]{n}
wird dieser übergebene Paramater k immer an erster Stelle, anstelle von a eingesetzt. Wie kann ich nun TeX oder LaTeX mitteilen, dass der optionale Parameter k nicht a sondern c ersetzen soll. Dabei hatte ich mir vorgestellt, dass man vielleicht dieses Problem in dieser Schreibform
\cubic[param3=k]{n} elegant lösen könnte.
Da gibt es Pakete zur Unterstützung:
http://texcatalogue.sarovar.org/entries/keyval.html
http://texcatalogue.sarovar.org/entries/processkv.html
http://texcatalogue.sarovar.org/entries/xkeyval.html
(Anwendungsbsp. ist z.B. das graphicx-Paket.
Hi blubb,
danke für die Links. ;) Ich hab im xkeyval-Package die entsprechende Lösung gesehen.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.