Tikz: Alinhamento de rótulos em relação a um retângulo dividido

Tikz: Alinhamento de rótulos em relação a um retângulo dividido

Existe uma maneira de posicionar rótulos com precisão em relação ao centro de cada uma das partes de um retângulo dividido? O exemplo a seguir mostra dois erros:

  • O alinhamento é com o lado esquerdo da subpeça
  • O alinhamento vertical parece estar errado.

O seguinte é um exemplo mínimo de trabalho:

 \documentclass{standalone}
 \usepackage{tikz}
 \usetikzlibrary{positioning,shapes.multipart}

 \begin{document}
 \begin{tikzpicture}[
     date/.style= {
       rectangle split,
       rectangle split horizontal, 
       rectangle split parts=3,
       draw
   }]
   \node[date] (today) {
     \nodepart{one}   {\texttt{2014}}
     \nodepart{two}   {\texttt{01}}
     \nodepart{three} {\texttt{01}}
   };
   \node[below=2mm of today.one] {\texttt{y}};
   \node[below=2mm of today.two] {\texttt{m}};
   \node[below=2mm of today.three] {\texttt{d}};
 \end{tikzpicture}
 \end{document}

o documento acima quando renderizado

Responder1

Para corrigir o alinhamento horizontal, coloque-os em relação a today.one southetc. Para corrigir o alinhamento vertical defina a âncora dos nós como base, que é a linha de base do texto.

insira a descrição da imagem aqui

 \documentclass{standalone}
 \usepackage{tikz}
 \usetikzlibrary{positioning,shapes.multipart}

 \begin{document}
 \begin{tikzpicture}[
     date/.style= {
       rectangle split,
       rectangle split horizontal, 
       rectangle split parts=3,
       draw
   }]
   \node[date] (today) {
     \nodepart{one}   {\texttt{2014}}
     \nodepart{two}   {\texttt{01}}
     \nodepart{three} {\texttt{01}}
   };
   \node[below=3mm of today.one south,anchor=base] {\texttt{y}};
   \node[below=3mm of today.two south,anchor=base] {\texttt{m}};
   \node[below=3mm of today.three south,anchor=base] {\texttt{d}};
 \end{tikzpicture}
 \end{document}

informação relacionada