Espacio después de macro que involucra una imagen de TikZ

Espacio después de macro que involucra una imagen de TikZ

Escribí una macro para imprimir combinaciones lineales y cosas relacionadas usando TikZ ( pgfforen realidad, pero necesito TikZ para otras cosas en un documento grande). Aquí hay un MWE:

\documentclass[11pt]{article}

\usepackage{tikz,spalign,xspace,amsmath}

\newcommand\lincomb[3]{% 3args: list of coeffs, vector symb, operation
%   \begin{tikzpicture}
    \tikz{
        \foreach \x [count=\j] in {#1}{
            \ifnum\j=1
                $\x{#2}_{\j}$
            \else
                ${#3}\x{#2}_{\j}$
            \fi
        }\xspace
%   \end{tikzpicture}
    }
}


\begin{document}

\begin{equation}
    \spalignmat{0.7;0.5;0.1}={\lincomb{0.7,0.5,0.1}{\mathbf{e}}{+}}\quad
    \;\text{and}\:
    \spalignmat{0.1;0.5;0.7}=\lincomb{0.1,0.5,0.7}{\mathbf{e}}{+}
\end{equation}

$\lincomb{a,b,c}{f}{-}$ and then some text.

\begin{tikzpicture}
    \foreach \x [count=\j] in {a,b,c,d}{
        \ifnum\j=1
            $\x f_{\j}$
        \else
            $+ \x f_{\j}$
        \fi
    }
\end{tikzpicture}\ and then some text

\end{document}

La salida está al final. Lo que quiero es tener un espacio adecuado entre dos de estos. Como puede ver, incluso intenté usar el código como un texto independiente, pero obtuve el mismo resultado; También intenté usar el tikzpictureentorno, pero nada cambia. Después de buscar, he visto muchas preguntas pidiendoeliminarespacio después de tikzpicture, pero quiero agregarlo. Como puede ver, xspacetampoco funciona aquí. ¡¡Gracias de antemano!!

ingrese la descripción de la imagen aquí

Respuesta1

No es necesario poner los comandos en tikzo tikzpicture, ya que el código es solo un texto, no comandos de dibujo. De hecho, TeX está intentando componer estas letras, pero como está en medio de tikzpicture, se le ha indicado que utilice nullfont, que es una fuente interna que no tiene ningún carácter y tampoco produce espacios entre palabras. Entonces \tikz, el tikzpictureentorno simplemente suelta el texto ya que no está en un nodo.

\documentclass[11pt]{article}

\usepackage{tikz,spalign,amsmath}

\newcommand\lincomb[3]{% 3args: list of coeffs, vector symb, operation
%   \begin{tikzpicture}
%    \tikz{
        \foreach \x [count=\j] in {#1}{
            \ifnum\j=1
               \x{#2}_{\j}
            \else
               {#3}\x{#2}_{\j}
            \fi
%        \xspace
%   \end{tikzpicture}
        }
}

\begin{document}

\begin{equation}
  \spalignmat{0.7;0.5;0.1}={\lincomb{0.7,0.5,0.1}{\mathbf{e}}{+}}\quad
    \;\text{and}\:
  \spalignmat{0.1;0.5;0.7}=\lincomb{0.1,0.5,0.7}{\mathbf{e}}{+}
\end{equation}

$\lincomb{a,b,c}{f}{+}$ and then some text.

\end{document}

información relacionada