如何在tikz上的图箭头上编写brakets

时间:2016-04-07 16:29:42

标签: latex tikz

我想在tikz数字中的箭头上写出方程式。例如,此代码:

\begin{figure}
    \centering
    \begin{sequencediagram}
        \newinst{c}{client}
        \newinst[6]{s}{server}

        \mess[1]{c}{X=f(y)}{s}

        \stepcounter{seqlevel}
        \mess[1]{c}{C}{s}

    \end{sequencediagram}
    \caption{Client-Server messaging}
\end{figure}


    \end{sequencediagram}
    \caption{Client-Server messaging}
\end{figure}

产生很多错误:

> auth.tex(31): Error: Package tikz Error: A node must have a (possibly
> empty) label text. auth.tex(31): Error: Use of \@next doesn't match
> its definition. auth.tex(31): Error: Package tikz Error: A node must
> have a (possibly empty) label text. , +, coordinate, pic, or node
> expected.(31): Error: Package tikz Error: (, +, coordinate, pic, or
> node expected. , +, coordinate, pic, or node expected.(31): Error:
> Package pgf Error: No shape named  is known. , +, coordinate, pic, or
> node expected.(31): Error: Package pgf Error: No shape named  is
> known. , +, coordinate, pic, or node expected.(31): Error: Package
> tikz Error: Giving up on this path. Did you forget a semicolon?. , +,
> coordinate, pic, or node expected.(36): Error: Extra }, or forgotten
> \endgroup. , +, coordinate, pic, or node expected.(36): Error: Missing
> } inserted. , +, coordinate, pic, or node expected.(36): Error: Extra
> }, or forgotten \endgroup. , +, coordinate, pic, or node
> expected.(36): Error: Missing } inserted. , +, coordinate, pic, or
> node expected.(36): Error: LaTeX Error: \begin{tikzpicture} on input
> line 27 ended by \end{sequencediagram}. , +, coordinate, pic, or node
> expected.(38): Error: Extra }, or forgotten \endgroup.

但是当箭头中的消息不包含括号时,我不会收到这些错误。你能帮我吗?

1 个答案:

答案 0 :(得分:1)

我无法使用你的序列图来解决它,也许是因为它在某种程度上以不同的方式在linux下工作,但我使用了TikZ。要绕过此问题,必须将具有数学公式或字符的相应节点放在相关坐标处。也许这已经足够了,直到现在我才找到另一种解决方案:

\documentclass[]{amsart}
\usepackage[ngerman, english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}
  \begin{tikzpicture}
  \coordinate (a) at (0,0);
  \coordinate (b) at (0,5);
  \coordinate (c) at (6,0);
  \coordinate (d) at (6,5);
  \draw (a) -- (b)node[pos=1.1,scale=1]{Drain} (c) -- (d)node[pos=1.1,scale=1]{Source};
  \draw[-stealth] ($(a)!.8!(b)$) -- node[above,scale=0.5,midway]{Initiate}($(c)!.8!(d)$);
  \begin{scope}[execute at begin node=$, execute at end node=$]    
  \node at (4.5,4.5) {\frac{e^{jn \pi\ }  + e^{-jn \pi\ }}{-jn \pi\ }} ;
  \node at (2.2,3.5) {\int_{-a}^bf(x)g(x)dx=f(b)g(b)} ;
  \node at (3,2) { f(x) = \pi \{ x^4 + 7x^3 + 2x^2 \} } ;
  \end{scope}    
  \draw[stealth-] ($(a)!0.65!(b)$) -- node[below,scale=0.5,midway]{OK} ($(c)!0.65!(d)$);
  \draw[-stealth] ($(a)!.5!(b)$) -- node[above,scale=0.5,midway]{Request}($(c)!.5!(d)$);
  \draw[stealth-] ($(a)!0.35!(b)$) -- node[below,scale=0.5,midway]{Data} ($(c)!0.35!(d)$);
  \draw[stealth-] ($(a)!0.3!(b)$) -- node[below,scale=0.5,midway]{Data} ($(c)!0.3!(d)$);
  \draw[stealth-] ($(a)!0.25!(b)$) -- node[below,scale=0.5,midway]{Data} ($(c)!0.25!(d)$);
  \draw[-stealth] ($(a)!.1!(b)$) -- node[above,scale=0.5,midway]{Close}($(c)!.1!(d)$);
  \end{tikzpicture}
\end{document}

导致这张照片(所有标志,图表等都是有用的,仅用于演示):

Math Symbols within tikz