Algumas perguntas sobre correntes

Algumas perguntas sobre correntes

Estou tentando fazer o seguinte diagrama:

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

O problema que estou enfrentando é que as caixas ao redor dos * são um pouco maiores do que os números 1,0. Como posso garantir que todas as caixas sejam do mesmo tamanho?

Também gostaria que a variável x aparecesse acima do centro da cadeia, qual a maneira mais fácil de fazer isso? A única maneira que conheço agora é o comando node at (x,y). Acho que deveria haver uma maneira de nomear um nó no meio da cadeia e definir um nó diretamente acima dele, mas não sei a sintaxe para isso.

Responder1

Você pode definir a minimum sizeopção para os nós. Se for definido com um valor grande o suficiente, todas as caixas terão o mesmo tamanho.

Para colocar xacima do centro da corrente, existem diversas opções. Você poderia nomear um nó com a sintaxe

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

(Isso faz o mesmo que \node [name=<name>] {}.) Você pode então usar <name>como uma coordenada e colocar outro nó relativo a ela, com

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

Outra forma seria nomear o primeiro e o último nó da cadeia e colocar o novo nó no meio do caminho entre eles, com, por exemplo,

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

Para simplificar a geração de diagramas, você pode declarar seus próprios estilos com

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

Adicione isso ao argumento opcional de tikzpictureou em uma \tikzsetmacro se desejar uma definição global. Desta forma, você pode alterar rapidamente o tamanho, a cor, etc. de todos os nós com esse estilo. No código abaixo defini um box on chainestilo.

insira a descrição da imagem aqui

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

informação relacionada