Código

Código

Tenho a seção de código abaixo, o rótulo “B” é exibido na parte externa do canto, como podemos trocá-lo para o canto interno? ou alguma outra boa sugestão para rotulá-lo?

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning,fit,calc}
\begin{document}

\begin{tikzpicture}[inner sep=0mm,outer sep=0,node distance=4em,
  box/.style={draw,anchor=west,minimum width=10em,minimum height=3em},
]
  \node (A) [box] {A};
  \node (B) [below=of A.west,box,label=south west:B] {};  
\end{tikzpicture}
\end{document}

A imagem de saída é:

insira a descrição da imagem aqui

Responder1

Supõe-se que exista um rótuloforaum nó para evitar confusão entre o conteúdo e o rótulo. O IMO mais fácil é adicionar um nó extra para rotulagem.

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning,fit,calc}
\begin{document}

\begin{tikzpicture}[inner sep=0mm,outer sep=0,node distance=4em,
  box/.style={draw,anchor=west,minimum width=10em,minimum height=3em},
]
  \node (A) [box] {A};
  \node (B) [below=of A.west,box] {}node at ($(B.south west) +(0.15,0.15)$) {B};
\end{tikzpicture}
\end{document}

insira a descrição da imagem aqui

Responder2

Uma alternativa à solução do @Harish (que considero mais fácil) é definir manualmente a âncora do nó do rótulo. eu sigoesta resposta e defina uma insidechave, que faz com que os rótulos sejam colocados "dentro" de um nó:

\usepackage{etoolbox}
\makeatletter
\tikzset{inside/.code=\preto\tikz@auto@anchor{\pgf@x-\pgf@x\pgf@y-\pgf@y}}
\makeatother

Então pode-se passar esta chave para a labeloperação junto com outras opções (por exemplo, inner sep=1ptpara dar preenchimento extra ao nó do rótulo).

Código

\documentclass[border=2pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning,fit,calc}
\usepackage{etoolbox}
\makeatletter
\tikzset{inside/.code=\preto\tikz@auto@anchor{\pgf@x-\pgf@x\pgf@y-\pgf@y}}
\makeatother

\begin{document}

\begin{tikzpicture}[inner sep=0mm,outer sep=0,node distance=4em,
  box/.style={draw,anchor=west,minimum width=10em,minimum height=3em},
]
  \node (A) [box] {A};
  \node (B) [below=of A.west,box,label={[inside,inner sep=1pt]south west:B}] {};  
\end{tikzpicture}
\end{document}

Saída

insira a descrição da imagem aqui

Responder3

Esta tentativa também é uma solução alternativa quando comparada com as soluções de @Harish e @Kevin (que considero fáceis e simples). O primeiro precisa calc, o outro precisa inside/.code. Esta solução usa anchorcomandos atde posição de nó.

insira a descrição da imagem aqui

Código

\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning,fit,calc}
\begin{document}

\begin{tikzpicture}[inner sep=0.1mm,outer sep=0,node distance=4em,
  box/.style={draw,anchor=west,minimum width=10em,minimum height=3em},
]
  \node (A) [box] {A};
  \node (B) [below=of A.west, box] {}; 
  \node     [anchor=south west, at=(B.south west)]{B};
\end{tikzpicture}
\end{document}

informação relacionada