Como posso criar uma posição de ambiente absolutamente posicionada determinada por parâmetros usando tikz?

Como posso criar uma posição de ambiente absolutamente posicionada determinada por parâmetros usando tikz?

Estou tentando definir um ambiente que colocará o conteúdo em um tikzpicture nodeque seja posicionado com base nos parâmetros do ambiente. Sou muito novo em LaTeX, TikZ e PGF, então a sintaxe está se mostrando desafiadora.

Atualmente tenho o seguinte:

\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}
}

Estou então tentando usá-lo com:

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

Isso... não está funcionando. O procedimento acima é compilado, mas o nó não parece estar posicionado, exceto no canto superior esquerdo (sem deslocamento aplicado).

o que estou perdendo?

Responder1

Ok, então isso é esquecer o [remember picture, overlay] arguments to\begin{tikzpicture}`

Com o abaixo, funciona conforme o esperado:

\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}
}

Responder2

Existem muitas maneiras de efetuar esse resultado. Lembre-se de executá-lo duas vezes.

Normalmente o texto é alinhado pela linha de base [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}

informação relacionada