我正在尝试使用 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}