bienchen
31-05-2007, 12:00
Hallo LaTexFans!
Ich habe mir mal mit tex etwas gebastelt, was mir helfen soll, Indices einfacher zu verwenden. Der Code unten produziert folgendes:
\substr(1){s} --> s[1]
\substr(1,3){s} --> s[1]...s[3]
\substr(1,3,10) --> s[1]...s[3]...s[10]
Nun der Code:
\def\gensubstr(#1)#2{\count0=0{\exsubstr#2,#1,xxx, }}
\def\endidx{xxx} % end symbol for index list
\def\exsubstr#1,{\def\temp{#1}%
\ifx%
\temp\endidx
\else%
\ifnum\count0=2 % from second index draw dots
\ldots%
\fi%
\ifnum\count0=0 % from second index draw dots
\def\tempseq{#1}%
\count0=1
\else%
\tempseq[#1]%
\count0=2%
\fi%
\expandafter\exsubstr %
\fi%
}
Nun die Frage ;-)
Sieht jemand eine Moeglichkeit den Teil
\ifnum\count0=0 % from second index draw dots
\def\tempseq{#1}%
\count0=1
\else%
loszuwerden? Damit man nur noch irgendwie \exsubstr(#1)#2 schreiben braucht? Somit spaeter dann #1[#2]? Ich bekomme das nicht hin.
Oder ist das mit dem If-Statement eine akzeptable Loesung?
Ich suche halt nach einer "schoeneren" Loesung.
mfg,
bienchen
Ich habe mir mal mit tex etwas gebastelt, was mir helfen soll, Indices einfacher zu verwenden. Der Code unten produziert folgendes:
\substr(1){s} --> s[1]
\substr(1,3){s} --> s[1]...s[3]
\substr(1,3,10) --> s[1]...s[3]...s[10]
Nun der Code:
\def\gensubstr(#1)#2{\count0=0{\exsubstr#2,#1,xxx, }}
\def\endidx{xxx} % end symbol for index list
\def\exsubstr#1,{\def\temp{#1}%
\ifx%
\temp\endidx
\else%
\ifnum\count0=2 % from second index draw dots
\ldots%
\fi%
\ifnum\count0=0 % from second index draw dots
\def\tempseq{#1}%
\count0=1
\else%
\tempseq[#1]%
\count0=2%
\fi%
\expandafter\exsubstr %
\fi%
}
Nun die Frage ;-)
Sieht jemand eine Moeglichkeit den Teil
\ifnum\count0=0 % from second index draw dots
\def\tempseq{#1}%
\count0=1
\else%
loszuwerden? Damit man nur noch irgendwie \exsubstr(#1)#2 schreiben braucht? Somit spaeter dann #1[#2]? Ich bekomme das nicht hin.
Oder ist das mit dem If-Statement eine akzeptable Loesung?
Ich suche halt nach einer "schoeneren" Loesung.
mfg,
bienchen