我试图将文档中的图像精确地从顶部向内移动 1 英寸,从左侧向内移动 2 英寸。但是,图像没有移动正确的距离。我该如何纠正?
\documentclass{article}
\usepackage{tikz}
\newcommand{\colorswitch}{5in}
\newcommand{\coverpageimagesize}{5in}
\definecolor{lside}{HTML}{FF88FF}
\definecolor{rside}{HTML}{FF88AA}
\begin{document}
\begin{tikzpicture}[remember picture,overlay]
\fill[rside] (current page.north west) rectangle (current page.south east);
\fill[lside] ([xshift=-\colorswitch]current page.north west) rectangle ([xshift=-\colorswitch]current page.south east);
\node[anchor=north west] (a) at (1in,-1in) {\includegraphics[width=\coverpageimagesize, height=\coverpageimagesize]{example-image}};
\end{tikzpicture}
\end{document}
目前来看:
答案1
我只需将其添加为图像的一个选项即可使其工作shift={(current page.north west)}
。这告诉 TikZ 原点应该在那里。另外,请注意,TikZ 中的坐标系就像几何中的坐标系一样:顶部和右侧为正值,左侧和底部为负值。我更改了节点坐标以指出这一点。
另外,请注意,我删除了单位,因为我在x
和y
选项中明确设置了它们。
\documentclass{article}
\usepackage{tikz}
\newcommand{\colorswitch}{5in}
\newcommand{\coverpageimagesize}{5in}
\definecolor{lside}{HTML}{FF88FF}
\definecolor{rside}{HTML}{FF88AA}
\begin{document}
\begin{tikzpicture}[remember picture,overlay,x=1in,y=1in,shift={(current page.north west)}]
\fill[rside] (current page.north west) rectangle (current page.south east);
\fill[lside] ([xshift=-\colorswitch]current page.north west) rectangle ([xshift=-\colorswitch]current page.south east);
\node[anchor=north west] (a) at (2,-1) {\includegraphics[width=\coverpageimagesize, height=\coverpageimagesize]{example-image}};
\end{tikzpicture}
\end{document}
答案2
您的代码只有一个问题,即使用绝对坐标(1in,-1in)
。
绘制路径时TikZ
采用绝对坐标,图形绘制完成后,整个图形以常规字符的形式放置。
操作说明
\node[anchor=north west] (a) at (1in,-1in)
{\includegraphics[width=\coverpageimagesize, height=\coverpageimagesize]
{example-image}};
表示将north west
图像锚点放置在绝对位置(1in,-1in)
。如果您知道绝对原点在哪里,此指令将非常完美。它在哪里?
\fill (0,0) circle (2pt) node[right] {(0,0)};
\draw[->] (0,0)|-(1in,-1in);
\node[anchor=north west, draw] (a) at (1in,-1in) ...
生产
因此,如果您期望原点是页面的左上角,那么您就错了,并且您的代码会失败。
或者,您可以使用positioning
库及其below right
选项。如果页面左上角和图形左上角之间的距离为,则可以1in
使用below of= 1in of current page.north west
,如果距离应为向右 1 英寸和向底部 1 英寸below of = 1in and 1in of current page.north west
。以下代码显示了这两个选项,请选择其中一个。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\newcommand{\colorswitch}{5in}
\newcommand{\coverpageimagesize}{5in}
\definecolor{lside}{HTML}{FF88FF}
\definecolor{rside}{HTML}{FF88AA}
\begin{document}
\begin{tikzpicture}[remember picture,overlay]
\fill[rside] (current page.north west) rectangle (current page.south east);
\fill[lside] ([xshift=-\colorswitch]current page.north west) rectangle ([xshift=-\colorswitch]current page.south east);
\node[below right = 1in of current page.north west] (a) {\includegraphics[width=\coverpageimagesize, height=\coverpageimagesize]{example-image}};
\draw (current page.north west) -- ++(-45:1in);
\node[below right = 1in and 1in of current page.north west] (a) {\includegraphics[width=\coverpageimagesize, height=\coverpageimagesize]{example-image}};
\draw (current page.north west) -| ++(1in,-1in);
\end{tikzpicture}
\end{document}