tikz を使用して、パラメータによって決定される絶対配置の環境位置を作成するにはどうすればよいですか?

tikz を使用して、パラメータによって決定される絶対配置の環境位置を作成するにはどうすればよいですか?

環境パラメータに基づいて配置されるにコンテンツを配置する環境を定義しようとしていますtikzpicture node。私は LaTeX、TikZ、および PGF について非常に初心者なので、構文が難しいことが分かっています。

現在、私は次のものを所有しています:

\NewEnviron{absnode}[2]
{
    \tikzset{%
        XPOS/.style={xshift=#1},
        YPOS/.style={yshift=#2}
    }
    \begin{tikzpicture}
        \node[XPOS, YPOS, anchor=north west] at (current page.north west) {%
        \BODY
        };
    \end{tikzpicture}
}

次に、これを次のように使用してみます。

\begin{absnode}{500 pt}{-10 pt}
Text inside the node positioned relative to the top left corner
\end{absnode}

これは...動作しません。上記はコンパイルされますが、ノードは左上隅以外に配置されていないように見えます (シフトは適用されていません)。

何が足りないのでしょうか?

答え1

[remember picture, overlay] arguments toわかりました。これは\begin{tikzpicture}`を忘れていることになります。

以下のようにすると、期待どおりに動作します。

\NewEnviron{absnode}[2]
{
    \tikzset{%
        XPOS/.style={xshift=#1},
        YPOS/.style={yshift=#2}
    }
    \begin{tikzpicture}[remember picture, overlay]
        \node[XPOS, YPOS, anchor=north west] at (current page.north west) {%
        \BODY
        };
    \end{tikzpicture}
}

答え2

この結果を実現するには多くの方法があります。必ず 2 回実行してください。

通常、テキストはベースライン [anchor=base west] に合わせて配置されます。

\documentclass[landscape]{article}
\usepackage{tikz}
\usepackage{environ}

\NewEnviron{absnode}[2]
{\begin{tikzpicture}[remember picture, overlay]
  \path (current page.north west) ++(#1,#2) node[anchor=north west] {\BODY};
\end{tikzpicture}}

\begin{document}

\begin{absnode}{500 pt}{-10 pt}
Text inside the node positioned relative to the top left corner
\end{absnode}

\end{document}

関連情報