From 10c3673a8a4e6bf901bc7aac6d2d021de03472fe Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 20 Aug 2014 20:01:43 +0000 Subject: blox (20aug14) git-svn-id: svn://tug.org/texlive/trunk@34992 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/blox/bloX.sty | 247 ++++++++++++++++++++++++++++++ 1 file changed, 247 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/blox/bloX.sty (limited to 'Master/texmf-dist/tex/latex/blox') diff --git a/Master/texmf-dist/tex/latex/blox/bloX.sty b/Master/texmf-dist/tex/latex/blox/bloX.sty new file mode 100644 index 00000000000..e5d17208eb6 --- /dev/null +++ b/Master/texmf-dist/tex/latex/blox/bloX.sty @@ -0,0 +1,247 @@ +%% +%% 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/18 v2.4 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'. -- cgit v1.2.3