在框图中,我想用块箭头而不是单个箭头连接两个块。有没有可以实现此目的的 LaTex 命令?
\documentclass[10pt,a4paper]{article}
\usepackage{tikz}
\usepackage{adjustbox}
\usetikzlibrary{shapes,shadows,arrows,decorations.markings}
\begin{document}
\tikzstyle{decision}=[diamond,draw,fill=blue!50]
\tikzstyle{line}=[draw, -stealth,thick]
\tikzstyle{block}=[draw,rectangle, text width=4.5 em, minimum height=10 mm,text centered,node distance=4 em]
\begin{figure}[htbp]
\begin{adjustbox}{max width=0.9\textheight,center} %% adjust max height
\begin{tikzpicture}[thick]
\node [block] (a) {A};
\node [block,right of=a,xshift=6em] (b) {B};
\node [block,right of=b,xshift=3.5em] (c) { C};
\node [block,right of=c,xshift=3.5em] (d) {D};
\node [block,right of=d,xshift=3.5em] (e) {E};
\node [block,right of=e,xshift=3.5em] (f) {Accomodating Text inside a block needed};
% ARROWS
\path [line] (a) -- (b);
\path [line] (b) -- (c);
\path [line] (c) -- (d);
\path [line] (d) -- (e);
\path [line] (e) -- (f);
\end{tikzpicture}
\end{adjustbox}
\end{figure}
\end{document}
我有两个主要问题:
- 在块 C 和 D 之间以及 E 和 F 之间,我想要从代码中获得的箭头内的块箭头。
- 我希望最后一个块中的长文本能够容纳在块内或沿垂直方向定位。
答案1
你介意下图中红色的箭头吗?
\documentclass[10pt,a4paper]{article}
\usepackage{tikz}
\usepackage[margin=25mm,showframe]{geometry}
%\usepackage{adjustbox}% <--- not needed
\usetikzlibrary{arrows,
chains,% <--- new
decorations.markings,
shadows, shapes.arrows}
\tikzset{% <--- modified
decision/.style = {diamond,draw, fill=blue!50},
line/.style = {draw, -stealth, thick},
block/.style = {rectangle, draw, text width=4 em, minimum height=10 mm,
align=center}
}
\makeatletter
\tikzset{suspend join/.code={\def\tikz@after@path{}}}
\makeatother
\begin{document}
\begin{figure}[htbp]
\begin{tikzpicture}[thick,
node distance = 0ex and 3em,
start chain = A going right,
every join/.style = {draw, -stealth, thick},
block/.append style = {on chain=A, join}
]
\node [block] {A};% <-- A-1
\node [block,right=5em of A-1] {B};
\node [block] {C};
\node [block] {D};
\node [block] {E};% <-- A-5
\node [block,suspend join] {Accom\-modating Text
inside a block needed};
\node [single arrow, draw=red, minimum height=3em, outer sep=0pt,
right=0pt of A-5.east] {\vphantom{x}};
\end{tikzpicture}
\end{figure}
\end{document}
我修改了您的 MWE,目的是使代码尽可能简洁。对于箭头,我使用single arrow
tikzlibrary 中的形状shapes.arrows
。adjustbox
可能会成为意外问题的根源,因此更好的解决方案是相应地调整节点和字体大小。如您所见,我将其删除。