bedingte anweisung (in diesem fall alternierende farben)

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: bedingte anweisung (in diesem fall alternierende farben)

von byteorder » Mo 10. Feb 2014, 23:19

Hab jetzt den ansatz, das boolsch zu machen über board geworfen, habs jetzt mit einem counter gemacht. mit dieser funktioniert es jetzt auch...

aber ist das so wie ich es gemacht hab wirklich sauber, oder gibts da eine bessere alternative?
\documentclass{scrbook}
\usepackage{ifthen}
\usepackage[framemethod=tikz]{mdframed}
\usepackage[a4paper,margin=3cm]{geometry}

\def\tmpvar{0}
\newcounter{counter}
\newcommand\getcolor{\ifodd\value{counter}green\else orange\fi}

\newenvironment{bbox}{\begin{mdframed}[linecolor=blue]}{\end{mdframed}}
    \newenvironment{cbox}{\stepcounter{counter}\begin{mdframed}
            [linecolor=\getcolor]
        }{\end{mdframed}}

\begin{document}
\getcolor\\ %test, that the function is working
\stepcounter{counter}
\getcolor\\ %test, that the function is working

\begin{bbox}
should be a blue framed box
\end{bbox}

\begin{cbox}
is now green or orange alternating
\end{cbox}

\begin{cbox}
is now green or orange alternating
\end{cbox}
\end{document}

bedingte anweisung (in diesem fall alternierende farben)

von byteorder » Mo 10. Feb 2014, 22:57

hallo, ich habe probleme mit einer if-abfrage.
ich habe 2 boxen, bei denen möchte ich jeweils alternierend die farbe des rahmens ändern

ich habe mir 2 commands geschrieben, die mir immer alternierend grün und orange zurückliefern, das funktioniert soweit (siehe beispiel)

wenn ich das ganze dann allerdings in ein environment einbaue, schreit pdflatex mit folgender meldung: Argument of \boolean has an extra }

woran könnte das liegen?

hinweis: der folgende code lässt sich mit pdflatex erzeugen, die entsprechende fehlerzeile wurde auskommentiert. es geht jedoch um die auskommentierte zeile.
\documentclass{scrbook}
\usepackage{ifthen}
\usepackage[framemethod=tikz]{mdframed}
\usepackage[a4paper,margin=3cm]{geometry}

\newboolean{boolvar}
\setboolean{boolvar}{false}

\newcommand\getcolor{\ifthenelse{\boolean{boolvar}}{green}{orange}}
\newcommand\flipcolor{\ifthenelse{\boolean{boolvar}}{\setboolean{boolvar}{false}}{\setboolean{boolvar}{true}}}

\newenvironment{bbox}{\begin{mdframed}[linecolor=blue]}{\end{mdframed}}
\newenvironment{cbox}{\flipcolor\begin{mdframed}
        %[linecolor=\getcolor]
    }{\end{mdframed}}

\begin{document}
\getcolor\\ %test, that the function is working
\flipcolor
\getcolor\\ %test, that the function is working

\begin{bbox}
should be a blue framed box
\end{bbox}

\begin{cbox}
should be green or orange alternating
\end{cbox}

\begin{cbox}
should be green or orange alternating
\end{cbox}
\end{document}

Nach oben