\ExplSyntaxOn \int_new:N \g_lauf_int \int_zero:N \g_lauf_int \seq_new:N \l_einlauf_seq \clist_new:N \l_einlaufReihenfolge_clist \clist_new:N \l_einlaufZusammen_clist \seq_new:N \l_zeiten_seq \seq_new:N \l_zeitenZeilen_seq \int_new:N \l_bahn_int \NewDocumentCommand\lauf{+m +m}{ \int_incr:N \g_lauf_int \int_set:Nn \l_bahn_int {1} \seq_set_split:Nnn \l_einlauf_seq {\\} {#1} \seq_map_inline:Nn \l_einlauf_seq { \str_if_empty:nF {##1} { \zieleinlaufKarte {\int_use:N \g_lauf_int} {##1} } } \par \seq_set_split:Nnn \l_zeiten_seq {\\} {#2} \seq_map_inline:Nn \l_zeiten_seq { \str_if_empty:nF {##1} { \zeitKarte {\int_use:N \g_lauf_int}{\int_use:N \l_bahn_int} {##1} \int_incr:N \l_bahn_int } } \clearpage } \NewDocumentCommand\zeitenSplitten{+m}{ \seq_set_split:Nnn \l_zeitenZeilen_seq {;} {#1} \seq_map_inline:Nn \l_zeitenZeilen_seq { \str_if_empty:nF {##1} { ##1 \\ } } } \cs_new_nopar:Npe \__cs_laufzeile:n #1 {1 \& 1 \\} \NewDocumentCommand\zieleinlaufTabelle{+m}{ \clist_set:Nn \l_einlaufReihenfolge_clist {#1} \clist_map_inline:Nn \l_einlaufReihenfolge_clist {\tl_if_novalue:nF{##1} {##1 \,\newline}} } \NewDocumentCommand\platzZusammen{m}{ \clist_set:Nn \l_einlaufZusammen_clist {#1} \begin{tabular}{|l} \clist_use:Nn \l_einlaufZusammen_clist {\\} \end{tabular} } \ExplSyntaxOff \NewDocumentCommand\zieleinlaufKarte{m +m}{ \begin{tcolorbox}[tcbox raise base, nobeforeafter, width=0.325\linewidth,height=0.23\textheight,height plus=0.2\textheight,title={Zieleinlauf},colbacktitle=yellow!10!white,coltitle=black,colframe=black,colback=yellow!10!white,sharp corners] Lauf: #1 \vspace{0.4cm} \zieleinlaufTabelle{#2} \end{tcolorbox} } \NewDocumentCommand\zeitKarte{m m +m}{ \begin{tcolorbox}[tcbox raise base, nobeforeafter, width=0.325\linewidth,height=0.18\textheight,title={Startkarte},colback=white,colbacktitle=white,coltitle=black,sharp corners] \begin{tabbing} \hspace{2cm}\=b\kill Lauf #1 \> Bahn #2 \end{tabbing} \zeitenSplitten{#3} \end{tcolorbox} }