Draw Inline Symbol List with Rotation using Tikz

tikz-pgftikz-pic

Let's say I have the following string list of symbol: {a,b,+,9,3}.

Is there a way to print each element of this list with the possibility – EDIT 1: to control the space between each symbol and – to change some property (e.g. the rotate angle or color shade) and all this using pic and decoration if possible?

So, with this kind of code (1,2):

\documentclass[tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.markings,positioning}

\tikzset{%
symbols/.pic={% https://tex.stackexchange.com/a/350347/262081
    \node{a,b,+,9,3};% Not working !!!!!!!!!!!!!!!!!!!
},%
    inlinesymbols/.style={%
        decoration={%
            markings,%
            mark =%
                between positions 0 and 1 step 5mm % adjust step size here
                with {{\pgfmathsetmacro{\myangle}{360*rnd}%
                      \pic[rotate=\myangle] {symbols};}% https://tex.stackexchange.com/a/576704/262081
                    }%
        },%
        postaction={decorate}%
    },%
}%

\begin{document}
\begin{tikzpicture} 
\path[inlinesymbols] (0,0) -- (2,0);%
\end{tikzpicture}
\end{document}

I would like to obtain something like this:

enter image description here

With the horizontal space between each symbol set for e.g. by decoration mark step (set to 5mm in the exemple above) or something else.

If it's not possible with a Tikz decoration or even a pic I'm also aware of alternative ways but with the possibility of changing some parameters (as the rotation angle) if possible.

EDIT 2: Why I want that ?

I would like to be able to inline (horizontally) draw a list of symbol regardless of the number of elements in this list and with the possibility of controling the space between each symbol and some property (e.g. rotation, shade, color) set for all symbol (i.e. the property is aplied to all symbols globally).

So, the use of Tikz pics and decoration are not mandatory but I like to use them.

EDIT 4: Final Working attempt

The Sandy G's answer below can be use in a Pic and so in a decoration:

\documentclass[tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}

\newcommand{\hsp}{.5}

\tikzset{symbols/.pic={%
    \foreach \s[count=\n from 0] in {a,b,c,f}{%
    \pgfmathsetmacro{\myangle}{360*rnd}%
    \node[anchor=base, inner sep=0pt, outer sep=0pt, rotate=\myangle] at (\hsp*\n,0){\s};%
}},%
    inlinesymbols/.style={%
        decoration={%
            markings,%
            mark =%
                between positions 0 and 1 step 30mm % adjust step size here
                with {\pic[red] {symbols};}%
        },%
        postaction={decorate}%
    },%
}%

\begin{document}
\begin{tikzpicture}%[baseline]
\pic[red] {symbols};%
\path[inlinesymbols] (0,-1) -- (4,-1);%
\end{tikzpicture}
\end{document}

enter image description here

This permits to repeat the pattern and also – as Sandy G's method does – to individually set property to one symbol (as for the rotate angle in the above exemple) and globally (as for the red color in e.g.).

EDIT 3: First attempt

I tried something using listoftitems package in order to slipt the comma separated list and loop under the list elements (compared to the previous M(Non)WE above, the new lines of code are encapsulated between the tags: % < Begin NEW > and % < End NEW >).

\documentclass[tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.markings,positioning}
\usepackage{listofitems}

\def\mysymbollist{a,b,+,9,3}

\tikzset{%
% < Begin NEW >
\setsepchar{,}%
\readlist\mylist\mysymbollist
\foreachitem\x\in\mylist{%
\def\mymacroname{symbols\xcnt}%
\mymacroname/.pic={%
    \node{\x};%
},}%
% < End NEW >
    inlinesymbols/.style={%
        decoration={%
            markings,%
            mark =%
                between positions 0 and 1 step 20mm % adjust step size here
                with {% < Begin NEW >
                     {\foreachitem\x\in\mylist{%
                     \def\mypicname{symbols\xcnt}%
                     \pgfmathsetmacro{\myangle}{360*rnd}%
                      \pic[rotate=\myangle] {\mypicname};}%
                      }%
                      % < End NEW >
                    }%
        },%
        postaction={decorate}%
    },%
}%

\begin{document}
\begin{tikzpicture} 
\path[inlinesymbols] (0,0) -- (2,0);%
\end{tikzpicture}
\end{document}

But I got an error :

Incomplete \iffalse; all text was ignored after line 32.

Also the space between two symbols print is not controlled.

Any idea to fix the error and control space between symbols print?

M(Non)WE inspirational sources:

Best Answer

Not sure if this is exactly what you're looking for, but it's a simple solution.

enter image description here

The call is \symlist[<options>]{a,b,+,9,3}

<options> can be any attribute(s) recognized by tikz nodes. Spacing is controlled globally by setting \hsp (unit = cm).

Here is the code:

\documentclass{article}

\usepackage{tikz}

\newcommand{\hsp}{.5}

\newcommand{\symlist}[2][]{\begin{tikzpicture}[baseline]
\foreach \s[count=\n] in {#2}{\node[anchor=base, inner sep=0pt, outer sep=0pt, #1] at (\hsp*\n,0){\s};
}\end{tikzpicture}}

\begin{document}

Here is a symbol list \symlist{a,b,+,9,3} inline.

Here is a symbol list \symlist[red, rotate=30]{a,b,+,9,3} inline.

Here is a symbol list \symlist[blue, xscale=-.7]{a,b,+,9,3} inline.

\end{document}