Tikz:应该位于当前页面的图片。西北不在正确的位置

Tikz:应该位于当前页面的图片。西北不在正确的位置

我想用 Tikz 在页面的左上角绘制一幅图片。但是我用下面的代码绘制的图片无法到达附图所示的正确位置。为什么?如何处理?

代码

\documentclass{article}
\usepackage{tikz}
\usepackage{geometry}
\geometry{showframe}

\begin{document}

\begin{tikzpicture}[remember picture,overlay]
\path [inner sep=0,,outer sep=0pt,line width=1mm,opacity=.25,draw=red,fill=blue,scale=2]
(current page.north west) (0,0)--(2,0)--(2,-2)--(0,-2)--cycle;
\end{tikzpicture}

% Contrast with current page.south west
\begin{tikzpicture}[remember picture,overlay]
\node [xshift=0cm,yshift=0cm] at (current page.south west)
[text width=7cm,fill=red!20,rounded corners,above right]
{
This is an absolutely positioned text in the
lower left corner. No shipout-hackery is used.
};
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案1

我无法回答为什么,但我的猜测是tikz将任何图像的边界框默认为文本区域。

正如评论中提到的,(current page.north west)坐标类似于(0,0)坐标。您的绘制命令使用绝对定位,并且没有从 开始绘制的线。这与您的使用符号定位的坐标(current page.north west)不同。nodeat

因此,您基本上可以使用坐标,然后使用以下++符号对坐标进行相对定位:

\documentclass{article}
\usepackage{tikz}
\usepackage{geometry}
\geometry{showframe}

\begin{document}
    \begin{tikzpicture}[remember picture,overlay]
        \path [inner sep=0,,outer sep=0pt,line width=1mm,opacity=.25,draw=red,fill=blue,scale=2]
        (current page.north west) -- ++(2,0) -- ++(0,-2) -- ++(-2,0) -- cycle;
    \end{tikzpicture}
\end{document}

相关内容