%% %% This is file `blox.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% blox.dtx (with options: `package') %% This is a generated file. %% Copyright (C) 2014 by Ben Reish %% This file may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either %% version 1.3 of this license or (at your option) any later %% version. The latest version of this license is in: %% http://www.latex-project.org/lppl.txt %% and version 1.3 or later is part of all distributions of %% LaTeX version 1999/12/01 or later. \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesPackage{blox}% [2014/08/20 v2.5 Just an English translation of schemabloc] \typeout{* } \typeout{bloX: Just an English translation of schemabloc package.} \typeout{bloX Copyright (C) 2014 Ben Reish} \typeout{* } \typeout{This program comes with ABSOLUTELY NO WARRANTY.} \typeout{This is free software, and you are welcome to redistribute it} \typeout{under certain conditions.} \typeout{* } \RequirePackage{ifthen} \RequirePackage{tikz} \RequirePackage{pgffor} \usetikzlibrary{shapes,arrows} \tikzstyle{bXLineStyle}=[->,>=latex',] \tikzstyle{bXStyleBloc}=[draw, rectangle,] \tikzstyle{bXStyleBlocPotato}=[] \tikzstyle{bXStyleSum}=[draw, circle,]%style Sum CC \tikzstyle{bXLabelStyle}=[] \newcommand{\bXDefaultLineStyle}{ \tikzstyle{bXLineStyle}=[->,>=latex'] } \newcommand{\bXLineStyle}[1]{ \tikzstyle{bXLineStyle}+=[#1] } \newcommand{\bXStyleBloc}[1]{ \tikzstyle{bXStyleBloc}+=[#1] } \newcommand{\bXStyleBlocDefault}{ \tikzstyle{bXStyleBloc}=[draw, rectangle,] } \newcommand{\bXStylePotato}[1]{ \tikzstyle{bXStyleBlocPotato}+=[#1] } \newcommand{\bXStylePotatoDefault}{ \tikzstyle{bXStyleBlocPotato}=[draw, cloud, cloud puffs=5,] } \newcommand{\bXStyleSum}[1]{ \tikzstyle{bXStyleSum}+=[#1] } \newcommand{\bXStyleSumDefault}{ \tikzstyle{bXStyleSum}=[draw, circle,] } \newcommand{\bXLabelStyle}[1]{ \tikzstyle{bXLabelStyle}+=[#1] } \newcommand{\bXLabelStyleDefault}{ \tikzstyle{bXLabelStyle}=[font=\normalfont,] } \newcommand{\bXInput}{% \@ifnextchar[{\@bXInputi}{\@bXInputii} } \newcommand{\@bXInputi}[2][]{% \node [coordinate,name=#2,bXLabelStyle] {#1}; \bXBranchx[0]{#2}{#2}; \draw (0,0) node [anchor=east,name=#2label,] {#1}; } \newcommand{\@bXInputii}[1]{% \node [coordinate,name=#1] { }; \bXBranchx[0]{#1}{#1}; } \newcommand{\bXOutput}[3][2]{ \node [coordinate, right of=#3right, node distance=#1em, minimum size=0em,right] (#2) {}; } \newcommand{\bXBloc}[4][2]{ \node [draw, rectangle, minimum height=3em, minimum width=3em, right of = #4right, node distance=#1em,bXStyleBloc,right] (#2) {#3}; \node (#2right) at (#2.east){}; \node (Blocrightend) at (#2.east){}; } \newcommand{\bXBlocr}[4][2]{ \node [ minimum height=3em, minimum width=3em, left of = #4left, node distance=#1em, bXStyleBloc,left] (#2) {#3}; \node (#2left) at (#2.west){}; } \newcommand{\bXBlocL}[4][2]{ \node [draw, rectangle, minimum height=3em, minimum width=3em, right of = #4right,node distance=#1em,bXStyleBloc,right] (#2) {#3}; \node (#2right) at (#2.east){}; \node (Blocrightend) at (#2.east){}; \draw [bXLineStyle,auto] (#4) -- node[name=#4-#2] {} (#2); } \newcommand{\bXBlocrL}[4][2]{ \node [draw, rectangle, minimum height=3em, minimum width=3em, left of = #4left, node distance=#1em, bXStyleBloc,left] (#2) {#3}; \node (#2left) at (#2.west){}; \node (Blocleftend) at (#2.west){}; \draw [bXLineStyle,auto] (#4) -- node[name=#4-#2] {} (#2); } \newcommand{\bXBlocPotato}[4][2]{ \node [draw, cloud, cloud puffs=5, draw, minimum height=3em, minimum width=5em, right of = #4right, node distance=#1em,bXStyleBlocPotato,right] (#2) {#3}; \node (#2right) at (#2.east){}; } \newcommand{\bXonlyOneBloc}[4][1.5]{ \bXInput{E1} \bXBloc[#1]{B1}{#3}{E1} \bXOutput[#1]{S1}{B1} \bXLink{E1}{B1}{#2} \bXLink{B1}{S1}{#4} } \newcommand{\bXLink}[3][]{ \draw [bXLineStyle,auto] (#2) -- node[name=#2-#3] {#1} (#3); } \newcommand{\bXLinkyx}[2]{ \draw [bXLineStyle] (#1.south) |- (#2) ; } \newcommand{\bXLinkxy}[3][]{ \draw [bXLineStyle] (#2) -| node[name=#2-#3,near end,right] {#1} (#3) ; } \newcommand{\bXReturn}[4][4]{ \node [below of=#2, node distance=#1em, minimum size=0em](return#2) {}; \draw [bXLineStyle] (#2.south)--(return#2.south) -| node[name=#2-#3,near end,right] {#4} (#3) ; } \newcommand{\bXLinkName}[3][0.4]{ \node[above of=#2, node distance=#1em, bXLabelStyle] (#2name) at (#2) {#3}; } \newcommand*{\bXCompSum}{\@ifstar\bX@CompSumNorm\bX@CompSumOnly} \newcommand{\bX@CompSumOnly}[7][4]{ \node [draw, circle,minimum size=2em, right of=#3,node distance=#1em] (#2) {}; \node [draw, cross out,minimum size=1.414em, right of=#3,node distance=#1em] {}; \node [above of=#2,node distance=0.6em] {$#4$}; \node [below of=#2,node distance=0.6em] {$#5$}; \node [left of=#2,node distance=0.6em] {$#6$}; \node [right of=#2,node distance=0.6em] {$#7$}; \node (#2right) at (#2.east){}; \node (#2left) at (#2.west){}; } \newcommand{\bX@CompSumNorm}[7][4]{ \node [draw, circle,minimum size=1.5em, right of=#3,node distance=#1em, label=85:$#4$,label=-85:$#5$,label=175:$#6$, label=5:$#7$,bXStyleSum] (#2) {}; \node (#2right) at (#2.east){}; \node (#2left) at (#2.west){}; } \newcommand*{\bXComp}{\@ifstar\bX@CompNorm\bX@CompOnly} \newcommand{\bX@CompOnly}[3][4]{ \bXCompSum[#1]{#2}{#3}{}{-}{+}{} } \newcommand{\bX@CompNorm}[3][4]{ \bXCompSum*[#1]{#2}{#3}{}{-}{+}{} } \newcommand*{\bXCompa}{\@ifstar\bX@CompaNorm\bX@CompaOnly} \newcommand{\bX@CompaOnly}[3][4]{ \bXCompSum[#1]{#2}{#3}{-}{}{+}{} } \newcommand{\bX@CompaNorm}[3][4]{ \bXCompSum*[#1]{#2}{#3}{-}{}{+}{} } \newcommand*{\bXSuma}{\@ifstar\bX@SumaNorm\bX@SumaOnly} \newcommand{\bX@SumaOnly}[3][4]{ \bXCompSum[#1]{#2}{#3}{+}{}{+}{} } \newcommand{\bX@SumaNorm}[3][4]{ \bXCompSum*[#1]{#2}{#3}{+}{}{+}{} } \newcommand*{\bXSumb}{\@ifstar\bX@SumbNorm\bX@SumbOnly} \newcommand{\bX@SumbOnly}[3][4]{ \bXCompSum[#1]{#2}{#3}{}{+}{+}{} } \newcommand{\bX@SumbNorm}[3][4]{ \bXCompSum*[#1]{#2}{#3}{}{+}{+}{} } \newcommand{\bXSum}[6][4]{ \node [draw, circle,minimum size=1.5em, right of=#3,node distance=#1em, label=175:$#4$,label=-85:$#5$, label=85:$#6$,bXStyleSum] (#2) {}; \node (#2right) at (#2.east){}; \node (#2left) at (#2.west){}; } \newcommand{\bXBranchy}[3][5]{ \node [below of=#2, node distance=#1em, minimum size=0em](#3) {}; \node (#3right) at (#3){}; \node (#3left) at (#3){}; } \newcommand{\bXNodeShifty}[3][5]{ \bXBranchy[#1]{#2}{#3} } \newcommand{\bXBranchx}[3][5]{ \node [right of=#2, node distance=#1em, minimum size=0em](#3) {}; \node (#3right) at (#3){}; \node (#3left) at (#3){}; } \newcommand{\bXNodeShiftx}[3][5]{ \bXBranchx[#1]{#2}{#3} } \newcommand{\bXChain}[3][4]{ \def\lastx{#2}% \foreach \x / \y in {#3}% {\bXBlocL[#1]{\x}{\y}{\lastx} % \typeout{\x, \y, \lastx}% \global\let\lastx\x} } \newcommand{\bXChainReturn}[3][4]{ \def\lastx{#2}% \foreach \x / \y in {#3}% {\bXBlocrL[#1]{\x}{\y}{\lastx} % \typeout{\x, \y, \lastx}% \global\let\lastx\x} } \newcommand{\bXLoop}[3][4]{ \bXComp[#1]{Comp#2}{#2}\bXLink{#2}{Comp#2} \bXChain[#1]{Comp#2}{#3} \draw [bXLineStyle,auto,-] (Blocrightend.base) --++ (1em,0)coordinate[name=EndofChain]; \bXReturn{EndofChain}{Comp#2}{} } \endinput %% %% End of file `blox.sty'.