
Escribí una macro para imprimir combinaciones lineales y cosas relacionadas usando TikZ ( pgffor
en 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 tikzpicture
entorno, pero nada cambia. Después de buscar, he visto muchas preguntas pidiendoeliminarespacio después de tikzpicture
, pero quiero agregarlo. Como puede ver, xspace
tampoco funciona aquí. ¡¡Gracias de antemano!!
Respuesta1
No es necesario poner los comandos en tikz
o 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 tikzpicture
entorno 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}