2016-04-07 19 views
0

tikz digramımdaki oklar üzerine denklem yazmak istiyorum. Örneğin, bu kod:Tikz'de diyagram okları nasıl yazılır tikz

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

Ama ok ileti parantez içermiyorsa, ben bu hataları alamadım:

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

bir hata sürü oluşturur. Bana yardım edebilir misin lütfen?

cevap

1

Belki de bir şekilde farklı bir şekilde çalıştığından, sıralı şema ile çözemedim, ancak TikZ kullandım. Bu sorunu atlamak için, uygun düğümün matematik formülü veya karakteriyle ilgili koordinatlara yerleştirilmesi gerekir. Belki bu yeterlidir, şimdiye kadar başka bir çözüm bulamadık:

(tüm işaretler, şekiller, vb sadece gösteri için abritrary olan) Bu resimde sonuçlanır
\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