Überarbeitungsverlauf[Zurück]
Klicke auf Einblenden/Ausblenden von Überarbeitungen 8
pdfTeX engine eingestellt

17 Mär '21, 20:07

stefan's gravatar image

stefan
18.4k163148

Erste Idee: % !TEX pdftex \long\def\firstoftwo#1#2{#1} \long\def\secondoftwo#1#2{#2} % \ifnumber{<Zahlenbeziehung>}{<wahr>}{<falsch>}: \def\ifnumber#1{% \ifnum#1\relax \expandafter\firstoftwo \else \expandafter\secondoftwo \fi } % eine Schleife für \if-Abfragen mit der Syntax wie das oben definierte \ifnumber, % also mit {wahr}{falsch} Argumenten, die in der Schleife weggelassen werden: % \dowhile{<Bedingung>}{<Ausführung wenn Bedingung wahr>} \long\def\dowhile#1#2{% #1{#2\dowhile{#1}{#2}}{}% } % test, ob's funktioniert: \newcount\step \dowhile{\ifnumber{\the\step<3}}{\advance\step by 1 \the\step} % damit \while mit derselben Syntax definieren wie in ctansearchs Antwort: % \while[<Start>,<Obergrenze>,<Ausführung solange Zeiger kleiner Obergrenze>] \long\def\while[#1,#2,#3]{% % mit der Gruppe wird die Schleife schachtelbar \begingroup \step=#1 \dowhile {\ifnumber{\the\step<#2}} {#3\advance\step by 1 }% \endgroup } \while[0,3,4] \while[1,5,Schritt \the\step\par] \while[0,5,{a(\while[0,3,b]}) ] \bye ![alt text][1] ---------- Im LaTeX-Kernel kann man eine weitere Lösung finden: % !TEX pdftex \catcode`\@=11 \long\def\@gobble#1{} % Definition von \@whilenum aus dem LaTeX-Kernel: \long\def\@whilenum#1\do #2{% \ifnum #1\relax #2\relax\@iwhilenum{#1\relax #2\relax}% \fi} \long\def\@iwhilenum#1{% \ifnum #1% \expandafter\@iwhilenum \else \expandafter\@gobble \fi{#1}} \newcount\step % Test, ob's funktioniert: \@whilenum\the\step<3\do{\the\step \advance\step by 1 } % \while mit derselben Syntax definieren wie in ctansearchs Antwort: % \while[<Start>,<Obergrenze>,<Ausführung solange Zeiger kleiner Obergrenze>] \long\def\while[#1,#2,#3]{% \step=#1 \@whilenum\the\step<#2\do{#3\advance\step by 1 }% } \catcode`\@=12 \while[0,3,4] \while[1,5,Schritt \the\step\par] \bye [1]: http://texwelt.de/wissen/upfiles/schleife.png
Klicke auf Einblenden/Ausblenden von Überarbeitungen 7

28 Okt '14, 11:22

cgnieder's gravatar image

cgnieder
22.1k253463

Eine alternative Lösung: Erste Idee: \long\def\firstoftwo#1#2{#1} \long\def\secondoftwo#1#2{#2} % \ifnumber{<Zahlenbeziehung>}{<wahr>}{<falsch>}: \def\ifnumber#1{% \ifnum#1\relax \expandafter\firstoftwo \else \expandafter\secondoftwo \fi } % eine Schleife für \if-Abfragen mit der Syntax wie das oben definierte \ifnumber, % also mit {wahr}{falsch} Argumenten, die in der Schleife weggelassen werden: % \dowhile{<Bedingung>}{<Ausführung wenn Bedingung wahr>} \long\def\dowhile#1#2{% #1{#2\dowhile{#1}{#2}}{}% } % test, ob's funktioniert: \newcount\step \dowhile{\ifnumber{\the\step<3}}{\advance\step by 1 \the\step} % damit \while mit derselben Syntax definieren wie in ctansearchs Antwort: % \while[<Start>,<Obergrenze>,<Ausführung solange Zeiger kleiner Obergrenze>] \long\def\while[#1,#2,#3]{% % mit der Gruppe wird die Schleife schachtelbar \begingroup \step=#1 \dowhile {\ifnumber{\the\step<#2}} {#3\advance\step by 1 }% \endgroup } \while[0,3,4] \while[1,5,Schritt \the\step\par] \while[0,5,{a(\while[0,3,b]}) ] \bye ![Ergebnis][1] ![alt text][1] ---------- Im LaTeX-Kernel kann man eine weitere Lösung finden: \catcode`\@=11 \long\def\@gobble#1{} % Definition von \@whilenum aus dem LaTeX-Kernel: \long\def\@whilenum#1\do #2{% \ifnum #1\relax #2\relax\@iwhilenum{#1\relax #2\relax}% \fi} \long\def\@iwhilenum#1{% \ifnum #1% \expandafter\@iwhilenum \else \expandafter\@gobble \fi{#1}} \newcount\step % Test, ob's funktioniert: \@whilenum\the\step<3\do{\the\step \advance\step by 1 } % \while mit derselben Syntax definieren wie in ctansearchs Antwort: % \while[<Start>,<Obergrenze>,<Ausführung solange Zeiger kleiner Obergrenze>] \long\def\while[#1,#2,#3]{% \step=#1 \@whilenum\the\step<#2\do{#3\advance\step by 1 }% } \catcode`\@=12 \while[0,3,4] \while[1,5,Schritt \the\step\par] \bye [1]: /upfiles/while-beispiel.pnghttp://texwelt.de/wissen/upfiles/schleife.png
Klicke auf Einblenden/Ausblenden von Überarbeitungen 6

22 Jun '13, 01:22

cgnieder's gravatar image

cgnieder
22.1k253463

Klicke auf Einblenden/Ausblenden von Überarbeitungen 5
weitere Lösung

18 Jun '13, 11:18

cgnieder's gravatar image

cgnieder
22.1k253463

Klicke auf Einblenden/Ausblenden von Überarbeitungen 4
Code kommentiert

17 Jun '13, 22:49

cgnieder's gravatar image

cgnieder
22.1k253463

Klicke auf Einblenden/Ausblenden von Überarbeitungen 3
Bild auf Server geladen

17 Jun '13, 14:17

stefan's gravatar image

stefan
18.4k163148

Klicke auf Einblenden/Ausblenden von Überarbeitungen 2

17 Jun '13, 13:20

cgnieder's gravatar image

cgnieder
22.1k253463

Klicke auf Einblenden/Ausblenden von Überarbeitungen 1

17 Jun '13, 13:01

cgnieder's gravatar image

cgnieder
22.1k253463

Willkommen, erstes Mal hier? Schau mal unter FAQ!

×