恢复比例=1

恢复比例=1

我经常编写从主绘制程序调用的程序。我希望我的程序与调用它的 tikz 图片的比例无关。

在下面的例子中,我希望程序\cir能够绘制8pt圆形,而不管 tikz 图片的比例如何。有没有办法恢复到 scale=1?

\documentclass{standalone}
\usepackage{tikz}
\begin{document}

\newcommand{\cir}[1]{%
\draw #1 circle (8pt);}

\begin{tikzpicture}[scale=10]
\draw (0,0) -- (1,1);
\cir{(0.5,0.5)};
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案1

您可以应用该shift only选项以确保忽略缩放效果,如(红色圆圈)所示\cirA。如果您希望将缩放应用于位置,则可以scope使用缩放位置,然后应用于宏shift only生成的圆形绘图\cirB(蓝色圆圈):

在此处输入图片描述

代码:

\documentclass{standalone}
\usepackage{tikz}
\begin{document}

\newcommand{\cirA}[2][]{%
\draw [shift only, #1] #2 circle (8pt);}

\newcommand{\cirB}[2][]{%
\begin{scope}[shift={#2}]
   \draw [shift only, #1] (0,0) circle (8pt);
\end{scope}
}
\begin{tikzpicture}[scale=10]
\draw (0,0) -- (1,1);
\cirA[fill=red]{(0.5,0.5)};
\cirB[fill=blue]{(0.5,0.5)};
\end{tikzpicture}

\end{document}

相关内容