Tikz:装饰弧时出现错误“尺寸太大”

Tikz:装饰弧时出现错误“尺寸太大”

我在 3D 中绘制带箭头的圆圈。为此,我使用装饰,并将圆圈分成两半,以便我可以稍后更改颜色并绘制穿透它们的箭头,同时保持 3D 透视。

无论如何,这是我的 MWE:

\documentclass[varwidth, border=5pt]{standalone}

\usepackage{tikz}
\usepackage{tikz-3dplot}
\usetikzlibrary{3d}
\usetikzlibrary{decorations.markings}

\begin{document}
\begin{tikzpicture}

\tikzset{zxplane/.style={canvas is zx plane at y=#1,very thin}}
\tikzset{yxplane/.style={canvas is yx plane at z=#1,very thin}}

\begin{scope}[canvas is zy plane at x=-1.5]
\begin{scope}[thick,decoration={markings,mark=at position 0.5 with {\arrow{>}}}] 
\draw[postaction={decorate}] ([shift=(0:0.5)]-1,1) arc (0:180:0.5);
\draw[postaction={decorate}] ([shift=(0:-0.5)]-1,1) arc (180:360:0.5);
\end{scope}
\end{scope}

\begin{scope}[canvas is zy plane at x=3]
\begin{scope}[thick,decoration={markings,mark=at position 0.5 with {\arrow{>}}}] 
\draw[postaction={decorate}] ([shift=(0:0.5)]-1,1) arc (0:180:0.5);
\draw[postaction={decorate}] ([shift=(0:-0.5)]-1,1) arc (180:360:0.5);
\end{scope}
\end{scope}

\end{tikzpicture}
\end{document}

事实上,这段代码无法编译。它给出错误“尺寸太大”。

如果您取出postaction={decorate}和装饰范围,它就可以正常工作。此外,如果您将 的值更改为{markings,mark=at position 0.5几个特殊值之一,它确实可以编译。我发现它接受 0.2、0.3、0.7、0.8、0.9 和 1.0,但不能接受介于两者之间的值(我只以 0.1 的步长移动)。

不过我希望箭头位于 0.5 处。有人知道为什么它不能处理这个值范围吗?是什么阻止了它?请注意,两个圆圈之间的唯一区别应该是 x 维度。

干杯。


编辑:其中一条评论提到了我的 tikz 版本。我的 TexLive 版本是 2013,但 tikz 只有版本 2。有人知道如何更新 tikz 吗?

相关内容