带有传入和传出箭头的框

带有传入和传出箭头的框

我正在尝试使用 TikZ 制作图形,但似乎无法达到预期的效果。
我需要制作一个带有一些传入箭头和一些传出箭头的框。

我的最小例子

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{arrows}
\begin{document}
    \pagestyle{empty}
    %
    \tikzstyle{int}=[draw, fill=blue!20, minimum size=7em]
    \tikzstyle{init} = [pin edge={to-,thin,black}]

    \begin{tikzpicture}[node distance=2.5cm,auto,>=latex']
    \node [int] (a) {$U$ \vspace{1cm} evolution operator};
    \node (b) [left of=a,node distance=3cm, coordinate] {a1};
    \node (c) [right of=a,node distance=3cm, coordinate] {b1};
    \node (d) [left of=a,node distance=3cm, coordinate] {a2};
    \node (e) [right of=a,node distance=3cm, coordinate] {b2};
    \path[->] (b) edge node {$a1$} (a);
    \path[<-] (c) edge node {$b1$} (a);
    \path[->] (d) edge node {$a2$} (a);
    \path[<-] (e) edge node {$b2$} (a);
    \end{tikzpicture}

\end{document}

我遇到的问题是,我以为 a1 和 a2 将会被一段垂直距离分隔开,但它们合并了,b1 和 b2 也是如此。

有没有办法可以将它们分开,并制作一个带有 a1、a2、a3 传入箭头和 b1、b2 和 b3 传出箭头的图形

答案1

如果您只更改最后四行,使得箭头相对于a.west和开始a.east,那么您就可以实现您想要的。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning}
\begin{document}
    \pagestyle{empty}
    %
    \tikzstyle{int}=[draw, fill=blue!20, minimum size=7em]
    \tikzstyle{init} = [pin edge={to-,thin,black}]

    \begin{tikzpicture}[node distance=2.5cm,auto,>=latex']
    \node [int,align=center] (a) {$U$\\evolution operator};    
    \draw[<-] ([yshift=5pt]a.west)  -- node[above]{$a1$} ++(-4em,0em);
    \draw[<-] ([yshift=-5pt]a.west) -- node[below]{$a2$} ++(-4em,0em);
    \draw[->] ([yshift=5pt]a.east)  -- node[above]{$b1$} ++(4em,0em);
    \draw[->] ([yshift=-5pt]a.east) -- node[below]{$b2$} ++(4em,0em);
    \end{tikzpicture}

\end{document}

在此处输入图片描述

答案2

这解决了问题,经过一番努力我找到了解决方案。感谢大家

\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node [draw,minimum height=3cm] (a) {$U$ \vspace{1cm} evolution operator};
\path (a.south east) -- (a.north east)
      coordinate [pos=0.2] (p1)
      coordinate [pos=0.5] (p2)      
      coordinate [pos=0.8] (p3);
\path (a.south west) -- (a.north west)
      coordinate [pos=0.2] (p4)
      coordinate [pos=0.5] (p5)      
      coordinate [pos=0.8] (p6);
\draw [->] (p1) -- +(1cm,0) node[right]{$b_1$};
\draw [->] (p2) -- +(1cm,0) node[right]{$b_2$};
\draw [->] (p3) -- +(1cm,0) node[right]{$b_3$};
\draw [<-] (p4) -- +(-1cm,0) node[left]{$a_1$};
\draw [<-] (p5) -- +(-1cm,0) node[left]{$a_2$};
\draw [<-] (p6) -- +(-1cm,0) node[left]{$a_3$};
\end{tikzpicture}
\end{document}

相关内容