2016-04-07 18 views
0

Ich möchte Gleichungen auf die Pfeile in meinem tikz Digram schreiben. Zum Beispiel dieser Code:Wie schreibe ich Klammern auf Diagramm Pfeile in 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} 

Erzeugt eine Menge Fehler:

> 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. 

Aber wenn die Nachricht in den Pfeil nicht Klammern enthalten, verstehe ich nicht, diese Fehler. Kannst du mir bitte helfen?

Antwort

1

Ich konnte es mit Ihrem Sequenzdiagramm nicht lösen, vielleicht weil es unter Linux irgendwie anders funktioniert, aber ich habe TikZ benutzt. Um dieses Problem zu umgehen, muss der entsprechende Knoten mit den mathematischen Formeln oder Zeichen an den entsprechenden Koordinaten platziert werden. Vielleicht ist dies ausreichend, ich fand nicht, eine andere Lösung bisher:

\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} 

, die in diesem Bild ergibt sich (alle Zeichen, Grafiken usw. sind abritrary, nur zur Demonstration):

Math Symbols within tikz