체인에 관한 몇 가지 질문

체인에 관한 몇 가지 질문

다음 다이어그램을 만들려고 합니다.

\begin{tikzpicture}[
  start chain=1 going right,node distance=-0.15mm]
\node [on chain=1] at (-1.5,-.4) {f(};  

 \node [draw,on chain=1] {*};  
 \node [draw,on chain=1] {*};
 \node [draw,on chain=1] {*};
 \node [draw,on chain=1] {0};
 \node [draw,on chain=1] {0};
 \node [draw,on chain=1] {*};
 \node [draw,on chain=1] {0};
 \node [draw,on chain=1] {1};
 \node [draw,on chain=1] {*};
 \node [draw,on chain=1] {*};
 \node [draw,on chain=1] {0};

 \node [name=r,on chain=1] {$) = 0$}; 
\end{tikzpicture}

내가 겪고 있는 문제는 * 주변의 상자가 숫자 1,0 주변의 상자보다 약간 크다는 것입니다. 모든 상자의 크기가 동일하다는 것을 어떻게 보장할 수 있나요?

또한 변수 x를 체인 중앙 위에 표시하고 싶습니다. 이를 수행하는 가장 쉬운 방법은 무엇입니까? 지금 내가 아는 유일한 방법은 (x,y) 명령의 노드입니다. 체인 중간에 노드 이름을 지정하고 바로 위에 노드를 정의하는 방법이 있어야 할 것 같은데 이에 대한 구문을 모르겠습니다.

답변1

minimum size노드에 대한 옵션을 설정할 수 있습니다 . 이 값을 충분히 큰 값으로 설정하면 모든 상자의 크기가 동일해집니다.

x체인 중앙 위에 배치하려면 몇 가지 옵션이 있습니다. 다음 구문을 사용하여 노드 이름을 지정할 수 있습니다.

\node (<name>) [<options>] {<node label>};

(이것은 와 동일합니다 \node [name=<name>] {}.) 그런 다음 <name>좌표로 사용하고 이를 기준으로 다른 노드를 배치할 수 있습니다.

\node [above=of <name>] {$x$};

또 다른 방법은 체인의 첫 번째 노드와 마지막 노드의 이름을 지정하고 두 노드 사이의 중간에 새 노드를 배치하는 것입니다.

\path (startnode) -- node[above] {$x$} (endnode);

다이어그램 생성을 단순화하기 위해 다음을 사용하여 자신만의 스타일을 선언할 수 있습니다.

<style name>/.style={<options>}

이를 의 선택적 인수에 추가하거나 전역 정의를 원하는 경우 매크로 tikzpicture에 추가합니다. \tikzset이렇게 하면 해당 스타일을 사용하는 모든 노드의 크기, 색상 등을 빠르게 변경할 수 있습니다. 아래 코드에서는 box on chain스타일을 정의했습니다.

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

\documentclass[border=2mm]{standalone}

\usepackage{tikz}
\usetikzlibrary{chains}
\begin{document}

\begin{tikzpicture}[
  start chain=1 going right,node distance=-0.15mm,
  box on chain/.style={draw, on chain=1,minimum size=.5cm}]
\node [on chain=1] at (-1.5,-.4) {f(};  

 \node(start) [box on chain] {*};  
 \node [box on chain] {*};
 \node [box on chain] {*};
 \node [box on chain] {0};
 \node [box on chain] {0};
 \node (mid) [box on chain] {*};
 \node [box on chain] {0};
 \node [box on chain] {1};
 \node [box on chain] {*};
 \node [box on chain] {*};
 \node(end) [box on chain] {0};

 \node [name=r,on chain=1] {$) = 0$}; 

 % place new node above node called mid
 \node [above=of mid] {\( x \)};

% different method: place node in the middle between start and end, 2ex above
%  \path (start) -- node[above=2ex]{\( x \)} (end);
\end{tikzpicture}

\end{document}

관련 정보