我用 TikZ 3.0 创建了一张包含\includegraphics
语句的图片,以及一个带有参数的路径上方的标签[sloped, above, midway]
。
图片的目的是在我的代码的其他部分重复使用它。有时,我想旋转整个图片。但是,图形和标签不受影响。
以下是 MWE:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\tikzset{
testpic/.pic={
\node at (3,0) {\includegraphics[width=1cm] {Rock.png}};
\draw (0,0) -- (1,1) node [midway, sloped, above] {test};
}
}
\begin{tikzpicture}
\pic[rotate=90] {testpic};
\end{tikzpicture}
\end{document}
输出如下:
正如你所见,这块岩石不是旋转了 90 度。它本来也应该被旋转,就像我指定的一样\includegraphics[angle=90]
。路径上方的标签也没有旋转。
如何修复此问题?
资产:
答案1
默认情况下,缩放或旋转不适用于节点。原因是即使图形缩放或旋转,文本通常也不应该变换。
如果您希望转换节点,则必须在命令transform shape
中添加选项\pic
:
\documentclass[tikz,margin=5mm]{standalone}
\begin{document}
\tikzset{
testpic/.pic={
\node at (3,0) {\includegraphics[width=1cm] {Rock}};
\draw (0,0) -- (1,1) node [midway, sloped, above] {test};
}
}
\begin{tikzpicture}
\pic[rotate=90,transform shape] {testpic};
\end{tikzpicture}
\end{document}