¿Por qué una macro vacía ocupa espacio dentro de un nodo tikz?

¿Por qué una macro vacía ocupa espacio dentro de un nodo tikz?

Hola y muchas gracias de antemano!

Estoy tratando de descubrir por qué una definición de macro vacía ocupa espacio dentro de la etiqueta de un nodo tikz e impide la alineación deseada. (No puedo evitar una macro vacía, ya que su definición se extrae de unlista, que puede contener entradas vacías). Considere el siguiente MWE, donde las etiquetas deben estar alineadas a la izquierda en la línea vertical:

\documentclass{article}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}[every node/.style={anchor=west, inner sep=0}]
    \draw[gray] (0,1) -- (0,-2);
    \def\a{One!}\def\b{And two!}
    \node at (0,0) {\fbox{\a}\fbox{\b}};
    \def\a{}\def\b{Only two!}
    \node at (0,-1) {\fbox{\a}\fbox{\b}};
\end{tikzpicture}
\end{document}

Respuesta1

\fbox tiene un borde de \fboxsep. Pero puedes probar si tu comando está vacío:

\documentclass{article}
\usepackage{tikz,etoolbox}

\begin{document}
\begin{tikzpicture}[every node/.style={anchor=west, inner sep=0}]
    \draw[gray] (0,1) -- (0,-2);
    \def\a{One!}\def\b{And two!}
    \node at (0,0) {\fbox{\a}\fbox{\b}};
    \def\a{}\def\b{Only two!}
    \node at (0,-1) {\ifdefempty{\a}{}{\fbox{\a}}\fbox{\b}};
\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

información relacionada