variable Anzahl von Werten zw.speichern und später ausgeben

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: variable Anzahl von Werten zw.speichern und später ausgeben

von MoonKid » So 5. Jun 2016, 10:54

DADABBI hat geschrieben:unerwünschte Leerzeichen
Wäre ich nicht schon verheiratet, würd ich dem Kohm einen Antrag machen! :D

von DADABBI » Sa 4. Jun 2016, 12:58

Außerdem solltest du bei Definitionen auf unerwünschte Leerzeichen achten!

Falsche Platzierung

von Stamm- » Sa 4. Jun 2016, 12:02

Die Makros \makeatletter und \makeatother stehen an der falschen Stelle. Sie dürfen nicht innerhalb der Definition eines neuen Befehls platziert werden, sondern müssen diese umrahmen.
\makeatletter
\newcommand{\robItem}[2]{%
    % die zwei Werte „zwischenspeichern“
    \g@addto@macro\robItemsA{
        #1
    }
    \g@addto@macro\robItemsB{
        #2
    }
}
\makeatother

variable Anzahl von Werten zw.speichern und später ausgeben

von MoonKid » Sa 4. Jun 2016, 11:47

Bin ganz neu auf dieser Ebene von *TeX. Daher ist es gut möglich, dass es für mein use-case auch eine ganz andere Lösung gibt.
\documentclass{article}
\usepackage{xltxtra}

\newcommand{\robItemsA}{%
}
\newcommand{\robItemsB}{%
}
\newcommand{\robItem}[2]{%
    % die zwei Werte „zwischenspeichern“
    \makeatletter
    \g@addto@macro\robItemsA{

        #1
    }
    \makeatother
    \makeatletter
    \g@addto@macro\robItemsB{

        #2
    }
   \makeatother
}

\newcommand{\robA}{%
    \section{A}
    \robItemsA
}

\newcommand{\robB}{%
    \section{B}
    \robItemsB
}

\begin{document}
% Werte übergeben
% Anzahl variabel!
\robItem{ItemA}{rot}
\robItem{ItemB}{rot}
\robItem{ItemC}{grün}
\robItem{ItemC}{gelb}

\robA

\robB
\end{document}
Schmeißt diese Fehler:
! Undefined control sequence.
\robItem #1#2->\makeatletter \g 
                                @addto@macro\robItemsA { \par #1 } \makeatot...
l.36 \robItem{ItemA}{rot}
Mal ein leicht praktischs Anwendungs-Beispiel:
Es geht um die Trennung von Content und Layout/Darstellung.
Ein bestimter Sachverhalt (\robItem) gehört logisch zusammen. Dieser soll aber auf zwei Arten (\robItemsA und \robItemsB) im Dokument dargestellt werden. Beispielseise soll es einmal in einer hübschen Grafik dargelegt werden und auf einer anderen Seite in einer trockenen Tabelle. Jeweils auch mit unterschiedlichen Teilinformationen.
\robItem hat in meinem realen Fall vier Werte/Parameter. In die Grafik gehören #1, #2 und die Tabelle gehören #1, #3, #4.

Das wäre genial, wenn ich das irendwie hinbekommen könnte.
Is das einigermaßen verständlich, was ich will?

Nach oben