Estoy tratando de definir un entorno que colocará los contenidos en un tikzpicture
node
entorno que se posicione en función de los parámetros del entorno. Soy muy nuevo en LaTeX, TikZ y PGF, por lo que la sintaxis está resultando un desafío.
Actualmente tengo lo siguiente:
\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}
}
Luego intento usarlo con:
\begin{absnode}{500 pt}{-10 pt}
Text inside the node positioned relative to the top left corner
\end{absnode}
Esto... no está funcionando. Lo anterior se compila, pero el nodo no parece posicionarse excepto en la esquina superior izquierda (sin aplicar desplazamiento).
¿Qué me estoy perdiendo?
Respuesta1
Bien, resulta que esto es olvidar el [remember picture, overlay] arguments to
\begin{tikzpicture}`
Con lo siguiente, funciona como se esperaba:
\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}
}
Respuesta2
Hay muchas maneras de lograr este resultado. Recuerda ejecutarlo dos veces.
Normalmente el texto está alineado por la línea base [ancla=base oeste].
\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}