前言
前几天在做一个demo的时候图片的位置没法放到我想要的位置,想起来看过另一个MWE利用tikz把图片固定在一个锚点之后再利用 [xshift= , yshift= ]
去偏移来达到想要的效果。但是这种方法需要慎用,如果是投稿的话 , 直接劝退,如果单纯自己排着自己的文档玩的话,可以考虑考虑。
代码
需要用的是 tikz 包和插图的 graphics 包
代码如下
\documentclass[UTF8]{ctexart}
\usepackage{tikz}
\usepackage{graphics}
\begin{document}
%放页面中心,原始图片
\begin{tikzpicture}[overlay,remember picture]
\node(1)[xshift=0cm,yshift=0cm] at (current page.center) {\includegraphics[scale=0.3]{test.jpg}};
\end{tikzpicture}
%往左偏移
\begin{tikzpicture}[overlay,remember picture]
\node(1)[xshift=-5cm,yshift=0cm] at (current page.center) {\includegraphics[scale=0.3]{test.jpg}};
\end{tikzpicture}
%往右偏移
\begin{tikzpicture}[overlay,remember picture]
\node(2)[xshift=5cm,yshift=0cm] at (current page.center) {\includegraphics[scale=0.3]{test.jpg}};
\end{tikzpicture}
%放上面偏移
\begin{tikzpicture}[overlay,remember picture]
\node(1)[xshift=0cm,yshift=5cm] at (current page.center) {\includegraphics[scale=0.3]{test.jpg}};
\end{tikzpicture}
%往下偏移
\begin{tikzpicture}[overlay,remember picture]
\node(3)[xshift=0cm,yshift=-5cm] at (current page.center) {\includegraphics[scale=0.3]{test.jpg}};
\end{tikzpicture}
\end{document}
有个名称是 current page 的预定义 node, 它对应的是“当前页面”,它的形状是矩形,它的锚位置 south west 是当前页面的左下角,它的锚位置 north east 是当前页面的右上角。给环境或命令加上 remember picture 和 overlay 选项后,就可以在该环境或命令中引用 current page 坐标系统中的位置。
整个页面是一个矩形你可以用 currentpage.oritention 控制锚点的起始位置,例如在上面的代码中,中间那张图位于整个页面的中心,而通过tikz内部的可选参数[xshift=,yshift=]
可以让锚点位置进行变动,从而让图片的位置改变,需要强调的是,具体位置改变到哪里,需要自己去改变位置,编译尝试看看在不想要的位置!下面的原图是中间的图,上下左右分别移动了 5cm,得到下面的样子。
- 没有特殊需求慎用这种方法。
- tikz的基本语句得会,别没加封号一个劲的说运行不了。
- 插图的基本方法总得会。
这种方法是种绝对位置的放置,容易造成图片和文字重合叠置,有非常大的所见即所得的味道,所以慎用这种方法。
参考资料
1.TikZ & PGF 手册 (3.1.3) 笔记