빈 매크로가 tikz 노드 내에서 공간을 차지하는 이유는 무엇입니까?

빈 매크로가 tikz 노드 내에서 공간을 차지하는 이유는 무엇입니까?

안녕하세요. 미리 감사드립니다!

빈 매크로 정의가 tikz 노드의 레이블 내에서 공간을 차지하고 의도한 정렬을 방해하는 이유를 알아내려고 합니다. (빈 매크로는 피할 수 없습니다. 그 정의가 다음에서 추출되기 때문입니다.목록, 빈 항목을 포함할 수 있습니다.) 레이블이 수직선에 왼쪽 정렬되어야 하는 다음 MWE를 고려하십시오.

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

여기에 이미지 설명을 입력하세요

관련 정보