TikZでノードを正方形として描画します



Draw Node Square With Tikz



解決:

使用からの正多角形shapes.geometricライブラリ。 Alenannoがコメントで言及しているように、独自のスタイルを定義して冗長性を減らすことができます。

そのサイズがどのように計算されるのかわかりません。空白がたくさんあります。設定内部セプを負の値にするとサイズを小さくできますが、ノードラベルの長さに応じて値を変更する必要があります。



 documentclass {article}  usepackage {tikz}  usetikzlibrary {shapes.geometric}  begin {document}  begin {tikzpicture} [square / .style = {正多角形、正多角形sides = 4}]  node at(0、 0)[circle、draw](c100){$ c_ {100} $};  node at(3,0)[square、draw](v100){$ v_ {100} $};  node at(3、-5)[square、inner sep = -1.3em、draw] {はるかに長いノードラベル};  node at(3、-5)[circle、draw] {はるかに長いノードラベル};  draw(c100)-(v100);  end {tikzpicture}  end {document}

ここに画像の説明を入力してください


これは驚くほど難しいです。次のコードでは、カスタムノード形状を定義しましたから継承する正方形長方形ですが、サイズを強制的に正方形にします。残念ながら、継承メカニズムでは、継承された保存済みアンカーを再定義できないため、TikZからコードをコピーする必要がありました。長方形の定義。



プラス面では、すべての場合に正しいはずです(内側の[xy] sep、最小{幅、高さ}および外側の[xy] sep)であり、長方形の形。

 documentclass [tikz、margin = 5pt] {standalone}  usepackage {tikz}  makeatletter% squarecornerの内容はほとんどpgfmoduleshapes.code.texから盗まれました def  squarecorner#1 {%xを計算します%%まず、幅です 信じられないほどエキサイティングな結果


使用する最小サイズ=両方を変更します高さと単独でも変更できる幅。また、それを覚えておいてください長方形がデフォルトの形状であるため、指定する必要はありません。



書き込み node at(3,0)[minimum size = 1cm、draw](v100){$ v_ {100} $};あなたは得る必要があります

ここに画像の説明を入力してください