Hallo liebe Leute,
das Problem scheint eher speziell zu sein. Vielleicht kann mir doch jemand helfen. Ich möchte Elemente der Ergebnissequenz z.B. eines Splits an pgfkeys weiterleiten -- entweder an ein eigenes pgfkeys oder über einen optionalen Parameter. Beispielsweise:
\ExplSyntaxOn \def\quader#1(#2,#3,#4),(#5,#6,#7);{% \regex_split:nnNTF { [\[\]] } {#1} \l_seq% { \seq_pop:NN \l_seq \dummy \seq_pop:NN \l_seq \argument } { \def\argument{} } \draw[dashed,\argument] (#2,#3,#4) --+ (#5,0,0); \draw[dashed,\argument] (#2,#3,#4) --+ (0,#6,0); \draw[dashed,\argument] (#2,#3,#4) --+ (0,0,#7); \draw[\argument] (#2+#5,#3,#4) --+ (0,#6,0); \draw[\argument] (#2+#5,#3,#4) --+ (0,0,#7); \draw[\argument] (#2,#3+#6,#4) --+ (#5,0,0); \draw[\argument] (#2,#3+#6,#4) --+ (0,0,#7); \draw[\argument] (#2,#3,#4+#7) --+ (#5,0,0); \draw[\argument] (#2,#3,#4+#7) --+ (0,#6,0); \draw[\argument] (#2+#5,#3+#6,#4+#7) --+ (-#5,0,0); \draw[\argument] (#2+#5,#3+#6,#4+#7) --+ (0,-#6,0); \draw[\argument] (#2+#5,#3+#6,#4+#7) --+ (0,0,-#7); } \ExplSyntaxOff
Aufzurufen durch
\quader[green!70!black] (0,0,0),(1,-3,2);
zeichnet in ein 3d-Koordinatensystem einen Quader mit dem Eckpunkt (0,0,0) und einer Diagonale (1,-3,2). Funktioniert auch soweit. Nur wenn ich mehr als ein optionales Argument angebe, werden diese nicht als zwei keys betrachet, sondern als einer mit einem Komma mittendrin. Ein Aufruf von
\quader[green!70!black,thick] (0,0,0),(1,-3,2);
führt zu der Meldung: Package xcolor Error: Undefined color `black,thick'. ...der[green!70!black,thick] (0,0,0),(1,-3,2);
Ich bin ein wenig ratlos, kann mir aber vorstellen, dass es sich um irgendein Expansionsproblem handelt. Ein Herumexperimentieren daran meinerseits blieb aber leider erfolglos.
Das prinzipielle Vorgehen mit dem def möchte ich gerne beibehalten, da es sich als sehr praktisch erwiesen hat, so kann ich Befehle definieren die z.B. in der Form $\punkt A(1,2;3;4)$ aufzurufen sind und zu $A(\,1{,}2\,|\,3\,|\,4\,)$ expandieren.
Viele Grüße,
Sven