Hallo und vielen Dank schon mal im Voraus!
Ich versuche herauszufinden, warum eine leere Makrodefinition Platz innerhalb der Beschriftung eines Tikz-Knotens einnimmt und die beabsichtigte Ausrichtung verhindert. (Ich kann ein leeres Makro nicht vermeiden, da seine Definition aus einemListe, das leere Einträge enthalten kann.) Bitte beachten Sie das folgende MWE, bei dem die Beschriftungen linksbündig auf der vertikalen Linie ausgerichtet sein sollten:
\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}
Antwort1
\fbox hat einen Rand von \fboxsep. Sie können jedoch testen, ob Ihr Befehl leer ist:
\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}