Here is one option:
Don't use overlay at all.
\documentclass{article}
\usepackage{lipsum,tikz}
\usepackage[margin=1in,showframe]{geometry}
\begin{document}
\noindent
\hspace*{-2mm}
\begin{tikzpicture}
\coordinate (my spot) at (0,0);
\fill[blue] (my spot) circle (1mm);
\node[above right,align=left,blue,draw=blue,thick,outer sep=0pt] at (my spot)
{I want the red text to appear\\right below this box};
\fill[red] (my spot) circle (1mm);
\node[below right,align=left,red,draw=red,thick,outer sep=0pt] at (my spot)
{the red dot should go where the blue dot is\\
lipsum should remain below this red box};
\end{tikzpicture}
\lipsum
\end{document}
![enter image description here](https://i.stack.imgur.com/D6XuJ.jpg)
And option 2:
overlay
really overlays. Hence main text will not know where that picture comes. You have to manually adjust the distances.
\documentclass{article}
\usepackage{lipsum,tikz}
\usepackage[margin=1in,showframe]{geometry}
\begin{document}
\begin{tikzpicture}[shift={(current page.north west)},shift={(1in,-1in)},
remember picture,overlay]
\coordinate (my spot) at (0,0);
\fill[blue] (my spot) circle (1mm);
\node[above right,align=left,blue,draw=blue,thick,outer sep=0pt] at (my spot)
{I want the red text to appear\\right below this box};
\end{tikzpicture}
% to make second pic, remove \noindent and add overlay option
\noindent\begin{tikzpicture}[remember picture,overlay]
\fill[red] (my spot) circle (1mm);
\node[below right,align=left,red,draw=red,thick,outer sep=0pt] at (my spot)
{the red dot should go where the blue dot is\\
lipsum should remain below this red box};
\end{tikzpicture}
\vspace*{.5\baselineskip} %% use appropriate length
\lipsum
\end{document}
![enter image description here](https://i.stack.imgur.com/8g6lh.jpg)
If you want to leave the page nodes precisely where the were in portrait (except rotated), you can use the following.
\documentclass{article}
%\usepackage{fontspec}
\usepackage[%
letterpaper,
% includeheadfoot,
head=1.5cm,%\baselineskip, % distance from bottom of header to block of text aka \headsep e.g. \baselineskip
foot=1.5cm, % distance from top of footer to block of text aka \footskip
headheight=12pt, % height for the header block (no equivalent for footer)
% heightrounded, % ensure an integer number of lines
marginparwidth=2cm, % right marginal note width
marginparsep=2mm, % distance from text block to marginal note box
% height=\textheight, % height of the text block
% width=\textwidth, % width of the text block
top=2.5cm, % distance of the text block from the top of the page
bottom=3cm,
left=2.5cm,
right=2.5cm,
% twoside
% showframe, % show the main blocks
% verbose, % show the values of the parameters in the log file
]{geometry}
\usepackage{pdflscape}
\usepackage{tikz} % Absolute positioning, advanced vector graphics
\usetikzlibrary{calc,positioning,decorations} % Extensions for tikz (increase compilation time)
\usepackage{tikzpagenodes} % Adds nodes around page boxes (e.g. body)
\usepackage{fancyhdr}
\usepackage[compact,explicit,noindentafter]{titlesec}
\usepackage[rightlabels,dotinlabels]{titletoc}
\usepackage{tocloft}
\usepackage{needspace}
\usepackage{lipsum}
\makeatletter
\newif\if@landscape% add test for landscape mode
\@landscapefalse
\let\old@landscape=\landscape
\def\landscape{\@landscapetrue\old@landscape}
\let\old@endlandscape=\endlandscape
\def\endlandscape{\old@endlandscape
\@landscapefalse}
\expandafter\def\csname pgf@sh@np@current page\endcsname{%
\if@landscape
\def\southwest{\pgfpointorigin}%
\def\northeast{\pgfpoint{\pgfsys@thepageheight}{\pgfsys@thepagewidth}}%
\else
\def\southwest{\pgfpointorigin}%
\def\northeast{\pgfpoint{\pgfsys@thepagewidth}{\pgfsys@thepageheight}}%
\fi}
\expandafter\def\csname pgf@sh@nt@current page\endcsname{%
\if@landscape{1}{0}{0}{1}{\dimexpr\paperwidth-2.17in}{.5cm}%
\else{1}{0}{0}{1}{0pt}{0pt}%
\fi}
\def\pgf@sh@nt@pagenodes{%
\if@landscape{0}{-1}{1}{0}{\dimexpr\paperheight-2.17in}{\dimexpr\paperwidth+0.5cm}%
\else{1}{0}{0}{1}{0pt}{0pt}%
\fi}
\def\@newtikzpagenode#1{%
\expandafter\let\csname pgf@sh@ns@#1\expandafter\endcsname\csname pgf@sh@ns@current page\endcsname
\expandafter\let\csname pgf@sh@nt@#1\endcsname\pgf@sh@nt@pagenodes
\expandafter\let\csname pgf@sh@pi@#1\expandafter\endcsname\csname pgf@sh@pi@current page\endcsname
\expandafter\def\csname pgf@sh@np@#1\endcsname
}
\@newtikzpagenode{current page text area}{%
\if@landscape
\def\southwest{\pgfpoint{\current@textarea@left}{\paperwidth-\current@textarea@top-\linewidth}}%
\def\northeast{\pgfpoint{\current@textarea@left+\textwidth}{\paperwidth-\current@textarea@top}}%
\else
\def\southwest{\pgfpoint{\current@textarea@left}{\paperheight-\current@textarea@top-\textheight}}%
\def\northeast{\pgfpoint{\current@textarea@left+\textwidth}{\paperheight-\current@textarea@top}}%
\fi}
\@newtikzpagenode{current page header area}{%
\if@landscape
\def\southwest{\pgfpoint{\current@textarea@left}{\paperwidth-\current@textarea@top+\headsep}}%
\def\northeast{\pgfpoint{\current@textarea@left+\textwidth}{\paperwidth-\current@textarea@top+\headsep+\headheight}}%
\else
\def\southwest{\pgfpoint{\current@textarea@left}{\paperheight-\current@textarea@top+\headsep}}%
\def\northeast{\pgfpoint{\current@textarea@left+\textwidth}{\paperheight-\current@textarea@top+\headsep+\headheight}}%
\fi}
\@newtikzpagenode{current page footer area}{%
\if@landscape
\def\southwest{\pgfpoint{\current@textarea@left}{\paperwidth-\current@textarea@top-\linewidth-\footskip}}%
\def\northeast{\pgfpoint{\current@textarea@left+\textwidth}{\paperwidth-\current@textarea@top-\linewidth-\footskip+\headheight}}%
\else
\def\southwest{\pgfpoint{\current@textarea@left}{\paperheight-\current@textarea@top-\textheight-\footskip}}%
\def\northeast{\pgfpoint{\current@textarea@left+\textwidth}{\paperheight-\current@textarea@top-\textheight-\footskip+\headheight}}%
\fi}
\@newtikzpagenode{current page marginpar area}{%
\if@landscape
\def\southwest{\pgfpoint
{\current@textarea@left\ifoddpageoroneside+\textwidth+\marginparsep\else-\marginparsep-\marginparwidth\fi}%
{\paperwidth-\current@textarea@top-\linewidth}%
}%
\def\northeast{\pgfpoint
{\current@textarea@left\ifoddpageoroneside+\textwidth+\marginparsep+\marginparwidth\else-\marginparsep\fi}%
{\paperwidth-\current@textarea@top}%
}%
\else
\def\southwest{\pgfpoint
{\current@textarea@left\ifoddpageoroneside+\textwidth+\marginparsep\else-\marginparsep-\marginparwidth\fi}%
{\paperheight-\current@textarea@top-\textheight}%
}%
\def\northeast{\pgfpoint
{\current@textarea@left\ifoddpageoroneside+\textwidth+\marginparsep+\marginparwidth\else-\marginparsep\fi}%
{\paperheight-\current@textarea@top}%
}%
\fi}
\newcommand{\lsrotate}{\if@landscape 90\else 0\fi}
%\tikzset{every node/.style={rotate=\lsrotate}}% this will also affect nodes in the text area
\makeatother
% TikZ Definitions
\newcommand{\tikztitlenumber}[1]{%
\begin{tikzpicture}[remember picture, overlay,baseline]
\node [font=\Huge\fontsize{50}{60}\selectfont,text=blue,anchor=south east,inner sep=0pt, outer sep=0pt] (titlenumber) {#1};
\node [] (titlerighttop) at (titlenumber.north -| current page.east) {};
\node [] (titlerightbottom) at (titlenode -| current page.east) {};
\path [fill=blue] (titlerighttop.north) rectangle ($ (titlerightbottom) + (-2mm,0mm) $);
\end{tikzpicture}}
\newcommand{\marginmark}[1]{%
\tikz[overlay,remember picture] \node [minimum height=2cm,anchor=west,rotate=90, color=gray] at (current page marginpar area.south) {\fontsize{20}{30}\selectfont #1}; }
\newcommand{\tikztitleline}{%
\begin{tikzpicture}[overlay,remember picture]
\draw (titlenode.west) -- (titlenode -| current page text area.north east);
\end{tikzpicture}
}%
% TITLE FORMATTING
\titleformat{\section}[hang]{\needspace{6cm}\color{blue}\Huge\bfseries}{}{0pt}{\tikz[remember picture,overlay] \node [anchor=base west,yshift=-4mm] (titlenode) {};#1\hfill\tikztitlenumber{\thesection}}[\thispagestyle{sectionpage}\tikztitleline]
\titlespacing{\section}{0pt}{40pt}{20pt}
\newcommand{\showboxes}{%
\begin{tikzpicture}[remember picture,overlay]
\draw [red] (current page text area.south west) rectangle
(current page text area.north east);
\draw [green] (current page header area.south west) rectangle
(current page header area.north east);
\draw [blue] (current page footer area.south west) rectangle
(current page footer area.north east);
\draw [black] (current page marginpar area.south west) rectangle
(current page marginpar area.north east);
\end{tikzpicture}
}%
\fancypagestyle{sectionpage}
{
\fancyhf{} % clear all fields
\renewcommand{\headrulewidth}{0pt}
\lhead{}
\rhead{}
\lfoot{}
\cfoot{}
\rfoot{%
\begin{minipage}[m]{.3\textwidth}
\begin{flushright}
\bfseries\footnotesize \thepage
\end{flushright}
\end{minipage}
\marginmark{}
}%
}%
\begin{document}
\begin{landscape}
\section{Landscape Section}
\showboxes{}
\lipsum[1-4]
\begin{tikzpicture}
\node{normal tikzpicture};
\end{tikzpicture}
\end{landscape}
\section{Portrait Section}
\showboxes{}
\lipsum[1-4]
\begin{tikzpicture}
\node{normal tikzpicture};
\end{tikzpicture}
\end{document}
![alternate page nodes](https://i.stack.imgur.com/Mv6FZ.png)
Best Answer
What I usually do in LaTeX is setting up a header and place the TikZ code which should appear on every page in the header. If you do not want to display a header, you can anyway use this pattern and leave all other header fields empty. And if you are already using a header you can place this code to an arbitrary cell since it is using the
overlay
option.