為什麼空宏會佔用 tikz 節點內的空間?

為什麼空宏會佔用 tikz 節點內的空間?

您好,非常感謝!

我試圖弄清楚為什麼空宏定義會佔用 tikz 節點標籤內的空間並阻止預期的對齊。 (我無法避免空宏,因為它的定義是從清單,它可以包含空白條目。

\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}

答案1

\fbox 的邊框為 \fboxsep。但你可以測試你的命令是否為空:

\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}

在此輸入影像描述

相關內容