diff options
author | Karl Berry <karl@freefriends.org> | 2022-04-03 20:54:04 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-04-03 20:54:04 +0000 |
commit | 2281bfc17c1ab65344f2a8f353bf1e0d8f1bb895 (patch) | |
tree | 5c1b22c2bcd6da218e89790843f1314925c7f0b8 /Master/texmf-dist/doc | |
parent | 118e720e423bce68db5a8611cb9d3b572173eb4e (diff) |
simplenodes (3apr22)
git-svn-id: svn://tug.org/texlive/trunk@62888 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc')
-rw-r--r-- | Master/texmf-dist/doc/latex/simplenodes/LICENSE | 24 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/simplenodes/README.md | 23 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/simplenodes/simplenodes.org | 323 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/simplenodes/simplenodes.pdf | bin | 0 -> 204932 bytes |
4 files changed, 370 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/simplenodes/LICENSE b/Master/texmf-dist/doc/latex/simplenodes/LICENSE new file mode 100644 index 00000000000..af138442a26 --- /dev/null +++ b/Master/texmf-dist/doc/latex/simplenodes/LICENSE @@ -0,0 +1,24 @@ +Licenses for the simplenode package +=================================== + +MIT License + +Copyright (c) 2022 Bob Vergauwen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Master/texmf-dist/doc/latex/simplenodes/README.md b/Master/texmf-dist/doc/latex/simplenodes/README.md new file mode 100644 index 00000000000..b7261274e80 --- /dev/null +++ b/Master/texmf-dist/doc/latex/simplenodes/README.md @@ -0,0 +1,23 @@ +# simplenodes – Version 2022/03/31 + +simplenodes is a TeX macro package for generating simple node base +flow graphs or diagrams, build upon the Ti*k*Z package. +The package provides two basic commands, one to generate a node and +one command to create links between them. +The positioning of the nodes is not handled by the package itself +but is preferably done in the tabular environment. + +In total, 4 simple node types are defined, loosely based on the +nomenclature and color patterns of the popular java script bootstrap +(https://getbootstrap.com/). + +See the file `simplenodes.pdf` for more information on the possibilities +and best use case of this package. +See the file `LICENSE` for license details. + +## Development + +This package is currently maintained by Bob Vergauwen, (bob@vergauwen.me). +Please go to the official repository at +https://github.com/user9856749/simplenodes to submit bug reports, request +new features, etc. diff --git a/Master/texmf-dist/doc/latex/simplenodes/simplenodes.org b/Master/texmf-dist/doc/latex/simplenodes/simplenodes.org new file mode 100644 index 00000000000..ea50cf78ffd --- /dev/null +++ b/Master/texmf-dist/doc/latex/simplenodes/simplenodes.org @@ -0,0 +1,323 @@ +#+latex_class: my-article +#+title: Simplenodes +#+author: Bob Vergauwen +#+date: 2022/03/31 + +| {{{examplenode(1,Simple)}}} | | | +| | | {{{alertnode(2,simplenodes)}}} | +| {{{simplenode(3,Nodes)}}} | | | +{{{link(1,2)}}} +{{{link(3,2)}}} +* Introduction +Creating tikz figures may be fun but after a while it becomes repetitive and you find yourself implementing the same +repetitive patterns over and over again. +This has a few negative effects on your daily productivity; +- bad coding style by copy-pasting old solutions, +- un-maintainable code, +- repeating yourself over and over again, +- inconsistent styles in a single document and over multiple documents. + + + +This package tries to solve these issues by providing two simple commands; +- one command to create simple nodes, +- one command to link these nodes. + Some simple styling options can be changed upon loading the package. + +* Usage +After including the package via the command +#+BEGIN_EXAMPLE +\usepackage{simplenodes} +#+END_EXAMPLE +all package commands are available. +** Creating a node +Four different nodes are supported at the moment; + + +| *Command* | *Result* | +|-----------------------------+---------------------------------| +| =\simplenode{name}{Normal}= | {{{simplenode(name,Normal)}}} | +| =\examplenode{name}{Example}= | {{{examplenode(name,Example)}}} | +| =\warnnode{name}{Warning}= | {{{warnnode(name,Warning)}}} | +| =\alertnode{name}{Alert}= | {{{alertnode(name,Alert)}}} | +The first parameter is the =name= used to link two nodes together. +The third parameter is the =text= displayed inside the node. + +** Linking nodes +Linking nodes is done via the command =\link{name1}{name2}=, where the +name is defined upon creating the node. + +** Positioning nodes +The intended use of this package is to position the nodes using the tabular environment. +Nodes can be placed in cells of tables to create an easy and even layout. +This usage is demonstrated in the examples. +The usage of this package is not restricted to this usecase. + +* Package options +A few packaged options are provided by using +#+BEGIN_EXAMPLE +\usepackage[name1=value1,name2=value2,...]{simplenodes} +#+END_EXAMPLE +The name, default value and description is provided in the following table +| *Name* | *Default* | *Description* | +|-----------+---------+-----------------------------------------------------| +| =align= | center | Specifies the alignment of the text in the nodes. | +| =width= | 25mm | The width of the nodes. | +| =minheight= | 7mm | The minimum width of the nodes. | +| =innersep= | 2pt | The inner separation between the text and the node. | +| =outersep= | 0pt | The outer separation between the nodes. | +| =thickness= | 0.4pt | The line thickness of the nodes and links. | + +* Examples +** Hello world +| {{{simplenode(hello,hello)}}} | {{{simplenode(world,world)}}} | +{{{link(hello,world)}}} +#+begin_src latex :tangel no :exports code +\begin{tabular}{ll} +\simplenode{hello}{hello} & \simplenode{world}{world}\\ +\end{tabular} +\link{hello}{world} +#+end_src + +** More color +| {{{simplenode(1,simple)}}} | {{{examplenode(2,example)}}} | {{{warnnode(3,warn)}}} | {{{alertnode(4,alert)}}} | +{{{link(1,2)}}} +{{{link(2,3)}}} +{{{link(3,4)}}} + +#+begin_src latex :tangel no :exports code +\begin{tabular}{llll} +\simplenode{1}{simple} & +\examplenode{2}{example} & +\warnnode{3}{warn} & +\alertnode{4}{alert}\\ +\end{tabular} +\link{1}{2} +\link{2}{3} +\link{3}{4} +#+end_src +** Order of the arrows and doule arrows +| {{{simplenode(1,node 1)}}} | {{{examplenode(2,node 2)}}} | {{{warnnode(3,node 3)}}} | +{{{link(1,2)}}} +{{{link(2,3)}}} +{{{link(3,2)}}} + +#+begin_src latex :tangel no :exports code +\begin{tabular}{lll} +\simplenode{1}{node 1} & \examplenode{2}{node 2} & \warnnode{3}{node 3}\\ +\end{tabular} +\end{center} +\link{1}{2} +\link{2}{3} +\link{3}{2} +#+end_src +** Overly complex +| {{{simplenode(11, Simple node)}}} | | | | {{{simplenode(13, Simple node)}}} | +| | | | | | +| {{{examplenode(21, Example node)}}} | | {{{alertnode(22,Alert node)}}} | | {{{simplenode(23, Simple node)}}} | +| | | | | | +| {{{warnnode(31, Warn node)}}} | | | | {{{simplenode(33, Simple node)}}} | +| | | | | | +{{{link(22,23)}}} +{{{link(22,21)}}} +{{{link(22,33)}}} +{{{link(22,31)}}} +{{{link(22,11)}}} +{{{link(22,13)}}} +{{{link(11,13)}}} +{{{link(33,31)}}} +{{{link(21,11)}}} +{{{link(21,31)}}} +{{{link(13,23)}}} +{{{link(33,23)}}} + +#+begin_src latex :tangel no :exports code +\begin{tabular}{lllll} +\simplenode{11}{ Simple node} & & & & \simplenode{13}{ Simple node}\\ + & & & & \\ +\examplenode{21}{ Example node} & & \alertnode{22}{Alert node} + & & \simplenode{23}{ Simple node}\\ + & & & & \\ +\warnnode{31}{ Warn node} & & & & \simplenode{33}{ Simple node}\\ + & & & & \\ +\end{tabular} +\link{22}{23} \link{22}{21} \link{22}{33} +\link{22}{31} \link{22}{11} \link{22}{13} +\link{11}{13} \link{33}{31} \link{21}{11} +\link{21}{31} \link{13}{23} \link{33}{23} +#+end_src +* Implementation + +#+BEGIN_SRC latex :exports code :tangle simplenodes.sty +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% simplenodes.sty +%% <https://github.com/user9856749/simplenodes> +%% +%% MIT License +%% +%% Copyright (c) 2022 Bob Vergauwen +%% +%% Permission is hereby granted, free of charge, to any person obtaining a copy +%% of this software and associated documentation files (the "Software"), to deal +%% in the Software without restriction, including without limitation the rights +%% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +%% copies of the Software, and to permit persons to whom the Software is +%% furnished to do so, subject to the following conditions: +%% +%% The above copyright notice and this permission notice shall be included in all +%% copies or substantial portions of the Software. +%% +%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +%% SOFTWARE. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{simplenodes}[2022/03/31 A package that provides simple nodes in four colors.] + +\RequirePackage{kvoptions} + +\DeclareStringOption[25mm]{width} +\DeclareStringOption[7mm]{minheight} +\DeclareStringOption[center]{align} +\DeclareStringOption[2pt]{innersep} +\DeclareStringOption[0pt]{outersep} +\DeclareStringOption[0.4pt]{thickness} +\ProcessKeyvalOptions* + +\RequirePackage{kvoptions} +\RequirePackage{tikz} +\RequirePackage{color} +\usetikzlibrary{math} + +% Coordinate manipulations + + +\newcommand{\gettikzxy}[3]{% + \tikz@scan@one@point\pgfutil@firstofone#1\relax + \edef#2{\the\pgf@x}% + \edef#3{\the\pgf@y}% +} + +% Define the main color +\definecolor{InvisibleRed}{rgb}{0.97, 0.92, 0.92} +\definecolor{InvisibleGreen}{rgb}{0.92, 0.97, 0.92} +\definecolor{InvisibleBlue}{rgb}{0.92, 0.92, 0.97} +\definecolor{InvisibleYellow}{rgb}{1.0, 1.0, 0.88} + +\definecolor{MediumRed}{rgb}{0.925, 0.345, 0.345} +\definecolor{MediumGreen}{rgb}{0.37, 0.7, 0.66} +\definecolor{MediumBlue}{rgb}{0.015, 0.315, 0.45} +\definecolor{MediumYellow}{rgb}{1.0, 0.75, 0.0} + +% Define the node +\newcommand\mynode[2]{ + \tikz[remember picture,baseline] + \node[ + draw=#1,fill=#2, + rectangle, + line width = \simplenodes@thickness, + align=\simplenodes@align, + text width=\simplenodes@width, + inner sep=\simplenodes@innersep, + outer sep=\simplenodes@outersep, + minimum height=\simplenodes@minheight, + ] +} + +% Define the line +\newcommand\myline[2]{ + \draw[ + ->, + line width = \simplenodes@thickness + ] (#1) to (#2); +} + +\newcommand\link[2]{ + \begin{tikzpicture}[remember picture, overlay, >=stealth, shift={(0,0)}] + \gettikzxy{(#1)}{\ax}{\ay} + \gettikzxy{(#2)}{\bx}{\by} + \tikzmath{ + if \ax == \bx then { + if \ay < \by then { + {\myline{#1.north}{#2.south}}; + }; + if \ay > \by then { + {\myline{#1.south}{#2.north}}; + }; + }; + if \ax < \bx then { + {\myline{#1.east}{#2.west}}; + }; + if \ax > \bx then { + {\myline{#1.west}{#2.east}}; + }; + }; + \end{tikzpicture} +} + +% Provide the commands +\newcommand\simplenode[2]{\mynode{MediumBlue}{InvisibleBlue} (#1){#2};} +\newcommand\examplenode[2]{\mynode{MediumGreen}{InvisibleGreen} (#1){#2};} +\newcommand\alertnode[2]{\mynode{MediumRed}{InvisibleRed} (#1){#2};} +\newcommand\warnnode[2]{\mynode{MediumYellow}{InvisibleYellow} (#1){#2};} +#+END_SRC + +* Read me +#+begin_src markdown :exports code :tangle README.md +# simplenodes – Version 2022/03/31 + +simplenodes is a TeX macro package for generating simple node base +flow graphs or diagrams, build upon the Ti*k*Z package. +The package provides two basic commands, one to generate a node and +one command to create links between them. +The positioning of the nodes is not handled by the package itself +but is preferably done in the tabular environment. + +In total, 4 simple node types are defined, loosely based on the +nomenclature and color patterns of the popular java script bootstrap +(https://getbootstrap.com/). + +See the file `simplenodes.pdf` for more information on the possibilities +and best use case of this package. +See the file `LICENSE` for license details. + +## Development + +This package is currently maintained by Bob Vergauwen, (bob@vergauwen.me). +Please go to the official repository at +https://github.com/user9856749/simplenodes to submit bug reports, request +new features, etc. +#+end_src + +* Licence +#+begin_src markdown :exports code :tangle LICENSE +Licenses for the simplenode package +=================================== + +MIT License + +Copyright (c) 2022 Bob Vergauwen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +#+end_src diff --git a/Master/texmf-dist/doc/latex/simplenodes/simplenodes.pdf b/Master/texmf-dist/doc/latex/simplenodes/simplenodes.pdf Binary files differnew file mode 100644 index 00000000000..c1458701f01 --- /dev/null +++ b/Master/texmf-dist/doc/latex/simplenodes/simplenodes.pdf |