![Tikz:应该位于当前页面的图片。西北不在正确的位置](https://linux22.com/image/436421/Tikz%EF%BC%9A%E5%BA%94%E8%AF%A5%E4%BD%8D%E4%BA%8E%E5%BD%93%E5%89%8D%E9%A1%B5%E9%9D%A2%E7%9A%84%E5%9B%BE%E7%89%87%E3%80%82%E8%A5%BF%E5%8C%97%E4%B8%8D%E5%9C%A8%E6%AD%A3%E7%A1%AE%E7%9A%84%E4%BD%8D%E7%BD%AE.png)
我想用 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)
不同。node
at
因此,您基本上可以使用坐标,然后使用以下++
符号对坐标进行相对定位:
\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}