如何使用 schemabloc 包绘制自上而下的框图(流程图)

如何使用 schemabloc 包绘制自上而下的框图(流程图)

我看了一些绘制流程图的例子,所以我选择了schemabloc 包。在我使用它的过程中,我注意到,所有块都是从左到右或从右到左连接的。虽然块可以放置在主线的上方或下方,但箭头仍然在其左边缘或右边缘的中点处连接到它们。

我的框图不适合这种方式,所以我想做一个从上到下的框图。我可以用什么方法做到这一点schemabloc

所以我举个例子:

\documentclass{article}
\usepackage{graphicx,schemabloc}
\usetikzlibrary{circuits}

\begin{document}    
\begin{figure}
\begin{tikzpicture}
\sbEntree{start}
\sbBloc{block}{Block}{start}
\sbRelier[input]{start}{block}
\sbSortie{end}{block}
\sbRelier[output]{block}{end}
\end{tikzpicture}
\end{figure}

\end{document}

就是这样。它在桌面上为我编译。

答案1

由于文档只有法语,我不知道调整它的官方方法,但这里有一个可以产生更好输出的黑客解决方案:

在此处输入图片描述

\documentclass{article}
\usepackage{graphicx,schemabloc}
\usetikzlibrary{circuits}

\newcommand{\Spacing}{\phantom{ab}}%

\begin{document}    
\begin{figure}
\begin{tikzpicture}
\sbEntree{start}
\sbBloc{block}{Block}{start}
\sbRelier[input\Spacing]{start}{block}
\sbSortie{end}{block}
\sbRelier[\Spacing output]{block}{end}
\end{tikzpicture}
\end{figure}
\end{document}

答案2

schemabloc设计时考虑了控制系统框图表示,而实际上并没有指向块底部顶部的箭头(加法器除外)。

不幸的是,这就是为什么无法强制箭头schemabloc从块的底部或顶部开始,这是包的实现方式。您可以从包源文件中复制代码并编辑副本以满足您的需求(我认为,如果对此有一定的了解,这TikZ并不是什么大问题),或者您可以使用垂直排列的块来绘制图表,但箭头是横向的:

\documentclass{article}
\usepackage{graphicx,schemabloc}
\usetikzlibrary{circuits}

\begin{document}
\begin{tikzpicture}
\sbEntree{E}
\sbComp{comp}{E}
\sbRelier[$E_1$]{E}{comp}
\sbBloc{sys}{Systeme}{comp}
\sbRelier[u]{comp}{sys}
\sbSortie{S}{sys}
\sbRelier{sys}{S}
\sbDecaleNoeudy[4]{S}{U}
\sbBlocr{cap}{Capteur}{U}
\sbRelieryx{sys-S}{cap}
\sbDecaleNoeudy[8]{comp}{D}
\sbBlocL[6]{U}{Other}{D}
\sbSortie{S2}{U}
\sbRelier[$S_2$]{U}{S2}
\sbRelieryx{cap}{U}
\end{tikzpicture}
\end{document}

这可能不是你真正想要的:

在此处输入图片描述

笔记:可选参数 in\sbBlocL[6]{U}{Other}{D}是块前箭头的长度。长度 inschemabloc均以 em 为单位,无法直接指定其他单位(根据文档)。

答案3

Schémabloc 包允许一些垂直链接,但需要对块的垂直定位进行一点“欺骗”。

这样合适吗?

\documentclass{文章}
\usepackage{tikz}
\usepackage{schemabloc}


\开始{文档}
{\定心

\开始{tikzpicture}
\sbEntree{E}

\sbBlocL[5]{H1}{$H_1$}{E}
\sbBlocL{H2}{$H_2$}{H1}
\sbDecaleNoeudy[4]{H2}{H3}
\sbBloc[3]{H3}{$H_3$}{H3}
\sbRelierxy[aa]{H2}{H3}

\sbDecaleNoeudy[10]{H2}{H4}
\sbBloc[3]{H4}{$H_4$}{H4}
\sbRelier[bb]{H3}{H4}

\sbDecaleNoeudy[4]{H4}{H5}
\sbBloc[3]{H5}{$H_5$}{H5}
\sbRelieryx{H4}{H5}

\sbBlocL{H6}{$H_6$}{H5}

\结束{tikzpicture}

}

\结束{文档}

结构图示例

相关内容