Counter im Befehl auf Eingabe setzen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Counter im Befehl auf Eingabe setzen

von mathe42 » Mo 9. Jan 2017, 16:31

Danke für die Antwort ich hab das jetzt hinbekommen :wink:

von Gast » Mo 9. Jan 2017, 08:11

Funktionen berechnen und deren Wert ausgeben, geht beispielsweise mit den mathematischen Fähigkeiten von pgf bzw. pgfplots sehr schön. Als Tabelle ausgeben wäre dann beispielsweise mit pgfplotstable möglich. Dabei stehen einem auch Schleifenkonstrukte zur Verfügung.

Zu deinem Beispiel: Du kannst m und r natürlich über Argumente von \Rest setzen, wobei es ggf. sinnvoll ist dann für die Rekursion eine interne Anweisung zu verwenden, also etwas wie:
\makeatletter
\newcommand*{\Rest}[2]{\setcounter{r}{#1}\setcounter{m}{#2}\@Rest}
\newcommand{\@Rest}{%   
    \ifnum\value{r}<\value{m}
        \ther
    \else
        \addtocounter{r}{-\value{m}}%
        \expandafter\@Rest
    \fi
}\makeatother
Man könnte für die Schleife aber auch einfach \@whilenum aus dem LaTeX-Kern verwenden und so die Rekursion verstecken.

Ob das alles für dein Ziel nix ist, kann ich natürlich nicht beurteilen, da ich dazu zu wenig Informationen über das Ziel habe.

von mathe42 » So 8. Jan 2017, 22:48

Also im Grunde möchte ich eine Mathematische Funktion als Befehl darstellen (Also imgrunde will ich f(x) mit verschiedenen x Berechnen...)

Als vereinfachtes Beispiel:
\newcounter{foo}
\newcomand{\function}[1]{
   %Setzte foo auf #1
   \setcounter{foo}{#1}
   \addtocounter{foo}{\value{foo}}
   \thefoo
}
Wäre jetzt f(x)=2*x

(in Wirklichkeit ist das Problem deutlich komplexer)


EDIT:
Hier mal ein kleines Beispiel wie ich das jetzt umgesetzt habe (eine der einfachen Dinge). Wenn ich mein Ziel ansehe ist das leider nix...
\documentclass{report} 

\newcounter{r}
\setcounter{r}{0}
\newcounter{m}
\setcounter{m}{0}

\newcommand{\Rest}{     
    \ifnum\value{r}<\value{m}
        \ther
    \else
        \addtocounter{r}{-\value{m}}    
        \Rest
    \fi
}
\begin{document} 
	\setcounter{m}{2}
	\setcounter{r}{6}
	\Rest
\end{document}
Mich würde also dennoch eine Möglichkeit das umzusetzen Interessieren...

von Gast » So 8. Jan 2017, 18:41

\setcounter hat übrigens zwei Argumente. Als erstes Argument ist der Name des Zählers anzugeben. Der Wert ist erst als zweites Argument anzugeben.

von ChristianHupfer » So 8. Jan 2017, 17:58

Man sollte
\newcounter
nicht in einem
\newcommand
- Makro 'verstecken', insbesondere kann man den Befehl pro Zählername nur einziges Mal verwenden (wenn man den Trick nicht kennt ;-))

Bitte definiere genau, was Du mit deinem Makro erreichen willst.

Counter im Befehl auf Eingabe setzen

von mathe42 » So 8. Jan 2017, 17:41

Hallo,

Ich möchte gerne ein Befehl definieren, in dem mit verschiedenen countern gearbeitet wird. Dafür möchte ich einen Counter auf den übergebenen wert setzen. (Nach dem Motto:)
\newcomand{\test}[1]{
  \newcounter{c}
  \setcounter{#1}
 ...
}
Wie geht das?

Gruß
Mathe42

Nach oben