我正在绘制几个 TikZ 图片,其中我希望基向量按照通常的定义进行旋转,因此我使用了命令
\tikzset{x={(0cm,-1cm)}, y={(1cm,0cm)}}
在我的序言中。但是,这样做之后,我无法创建图形(我收到了未定义的控制序列错误消息,后面的内容也是如此\begin{figure}
)。对基向量的任何完全重新定义都会导致同样的问题。这是一个 MWE:
\documentclass{article}
\usepackage{tikz}
\tikzset{x={(1cm,0cm)},y={(0cm,1cm)}}
\begin{document}
\begin{figure}
text
\end{figure}
\end{document}
如果我仅使用例如 进行重新缩放,则不会收到错误\tikzset{x=-1}
。
我目前的解决方法是将\tikzset
命令放在每个 TikZ 图片内。
是什么导致了这个错误?有没有办法全局重新定义基向量以避免这种情况?
答案1
将这种样式应用到每张图片的正确方法是使用 key every picture
。对于你的情况,你可以说
\tikzset{every picture/.append style={x={(0cm,-1cm)}, y={(1cm,0cm)}}}
除非你做了其他转换,否则应该会有同样的效果
\tikzset{every picture/.append style={rotate=-90}}
第二种变体略有优势,即它可以应用于其他转换之上。