tikz 中无法将 xshift 与 decorations.markings 一起使用

tikz 中无法将 xshift 与 decorations.markings 一起使用

我正在使用该库来用 来标记的decorations.markings中间:plot\node

\documentclass[a4paper,11pt]{article}

\usepackage{tikz}
\usetikzlibrary{decorations.markings}

\tikzset{midmark/.style={
postaction=decorate,decoration={pre length=1pt, post length=1pt,
markings,mark=at position 0.5 with \node #1;}}}

\begin{document}

\begin{tikzpicture}
  \draw[domain=0:pi,variable=\t,midmark={[above,xshift=1em]{text}}]
    plot (\t,{sin(deg(\t))});
\end{tikzpicture}

\end{document}

但我得到了错误

! Package pgfkeys Error: I do not know the key '/pgf/decoration/\pgfkeyscurrent
name ', to which you passed '1em]{text};', and I am going to ignore it. Perhaps
 you misspelled it.

,xshift=1em如果删除则不会出现错误。

tikzpicture单独包含的编译也\node [above,xshift=1em]{text};不会出现错误。

为什么我们不能使用xshiftwith decorations.markings,是否有一种不涉及重新定义的解决方法midmark

答案1

看起来它的参数接受方式有问题midmark。如果你使用花括号来包含节点选项,那么一切都会正常:

midmark={[{above,xshift=1em}]{text}}

相关内容