21

ダイアグラムに水平線を引こうとしています。線の Y 座標は、点 a と b (a は b の下) の中間にある必要があります。線の左右の終点は、tikzpicture の境界ボックスにあります。交差演算子を使用して、これを行う方法は次のとおりです。

\coordinate (h0) at ($(a.north)!0.5!(b.south)$);
\draw (h0 -| 現在の境界 box.west) -- (h0 -| 現在の境界 box.east);

これはかなり遠回しに思えます。私がやりたいのは、(h0) の Y 座標とバウンディング ボックスの東側と西側の X 座標を取得し、自分で座標を作成することです。これを実行したいのですが、サポートされていない構文です:

\coordinate (h0) at ($(a.north)!0.5!(b.south)$);
\draw (現在の境界 box.west.x,h0.y) -- (現在の境界 box.east.x,h0.y);

欠落している座標の個々のコンポーネントを参照する方法はありますか?

4

3 に答える 3

21

オペレーション内のコンポーネントを取得できますlet。作品についてはPGFマニュアルで調べてください。ただし、メモリから:

\draw
  let
    \p1=($(a.north)!0.5!(b.south)$),
    \p2=(current bounding box.west),
    \p3=(current bounding box.east)
  in
    (\x2,\y1) -- (\x3, \y1);

おそらくデバッグが必要になるでしょう...編集:そして今は質問者のおかげです。

于 2009-11-22T18:39:15.247 に答える
9

または、使用します

\pgfextractx{<dimension>}{<point>}
\pgfextracty{<dimension>}{<point>}

これらは生の PGF コマンドであるため、使用するのはあまり便利ではありません。

于 2010-02-06T13:25:34.667 に答える