summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/decision-table/decision-table.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/decision-table/decision-table.sty')
-rw-r--r--macros/latex/contrib/decision-table/decision-table.sty149
1 files changed, 0 insertions, 149 deletions
diff --git a/macros/latex/contrib/decision-table/decision-table.sty b/macros/latex/contrib/decision-table/decision-table.sty
deleted file mode 100644
index 2e1bf38539..0000000000
--- a/macros/latex/contrib/decision-table/decision-table.sty
+++ /dev/null
@@ -1,149 +0,0 @@
-% The decision-table package is the easiest way to generate tables in the Decision Model and Notation (DMN) format.
-%
-%% decision-table.sty
-%% Copyright 2020 Simon Vandevelde
-%
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3c
-% 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.3c or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-%
-% This work has the LPPL maintenance status “maintained”.
-%
-% The Current Maintainer of this work is Simon Vandevelde.
-%
-% This work consists of the file decision-table.sty
-%
-%% This package creates the \dmntable command.
-%% Requires the following input:
-%% 1: table title
-%% 2: hit policy
-%% 3: input columns, separated by commas (e.g. 'weight, length')
-%% 4: output columns, separated by commas (e.g. 'BMI')
-%% 5: cell values, separated by commas (e.g. '>80, ---, weight/length*length,
-%
-%% The package depends on two other packages: 'colortbl' and 'booktabs'.
-
-\ProvidesPackage{decision-table}[2020/08/22 v0.0.2 LaTeX package for DMN]
-
-
-\RequirePackage{colortbl} % Color in the cells.
-\RequirePackage{booktabs} % Special header format.
-
-
-\definecolor{inputgreen}{RGB}{182, 215, 168}
-\definecolor{inputblue}{RGB}{207, 226, 243}
-\definecolor{glossaryorange}{RGB}{255, 123, 89}
-\definecolor{executered}{RGB}{236, 155, 164}
-\newcommand{\inputcol}[1]{\cellcolor{inputgreen} \textbf{#1}}
-\newcommand{\outputcol}[1]{\cellcolor{inputblue} \textbf{#1}}
-\newcommand{\glossarycol}[0]{\cellcolor{glossaryorange}}
-\newcommand{\executecol}[0]{\cellcolor{executered}}
-\newcommand{\dmnfont}[0]{\fontsize{7}{9} \fontfamily{put} \selectfont \setlength{\belowrulesep}{0pt}}
-
-% Code to iterate over strings separated by comma's and executing a macro on each of them.
-\makeatletter
-
-% Functional foreach construct
-% 1 - Function to call on each comma-separated item in param 3
-% 2 - Parameter to pass to function in param 1 as first parameter
-% 3 - Comma-separated list of items to pass as second parameter to function in param 1
-\def\foreach#1#2#3{%
- \@test@foreach{#1}{#2}#3,\@end@token%
-}
-
-% Internal helper function - Eats one input
-\def\@swallow#1{}
-
-% Internal helper function - Checks the next character after param 1 and param 2 and
-% continues loop iteration if \@end@token is not found
-\def\@test@foreach#1#2{%
- \@ifnextchar\@end@token%
- {\@swallow}%
- {\@foreach{#1}{#2}}%
-}
-
-% Internal helper function - Calls 1{2}{3} and recurses
-% The magic of splitting the third parameter occurs in the pattern matching of the \def
-\def\@foreach#1#2#3,#4\@end@token{%
- #1{#2}{#3}%
- \@test@foreach{#1}{#2}#4\@end@token%
-}
-
-%%% Macro's which are used in the above iteration function.
-% Formats the inputcol as "\& \inputcol('input')".
-\def\makeinputcol#1#2{&\inputcol{#2}}
-% Formats the outputcol as "\& \outputcol('output')".
-\def\makeoutputcol#1#2{&\outputcol{#2}}
-
-\def\makecol#1#2{ % Format the cells. Needs to add in \\\hline after the right amount of cells.
- \ifnum\colcounter=\nbcols% If we're at the end of a row, reset the counter and add the \\\hline
- \global\colcounter=0\relax
- \uppercase{\\} \hline \the\rowcounter
- \global\advance\rowcounter by 1
- \else
- \fi%5
- \global\advance\colcounter by 1
- \uppercase{&} {#2}
-}
-
-% Increments the counters by one, in order to count inputs or outputs using the above loop function.
-\def\countinput#1#2{\global\advance\nbinputs by 1\relax}
-\def\countoutput#1#2{\global\advance\nboutputs by 1\relax}
-
-\makeatother
-
-% Command to create a DMN table in a tabular environment.
-% Requires the following input:
-% 1: table title
-% 2: hit policy
-% 3: input columns, separated by commas (e.g. 'weight, length')
-% 4: output columns, separated by commas (e.g. 'BMI')
-% 5: cell values, separated by commas (e.g. '>80, ---, weight/length*length,
-% <80, ---, length/weight*weight')
-\newcommand{\dmntable}[5]{
- % Create and instantiate counters.
- \newcount{\nbinputs}
- \newcount{\nboutputs}
- \newcount{\nbcols} % The width of a table.
- \newcount{\colcounter}
- \newcount{\rowcounter}
- \nbinputs=0\relax
- \nboutputs=0\relax
- \nbcols=0\relax
- \colcounter=0\relax
- \rowcounter=2\relax
-
- \newcount\X
- {
- % Set the correct font.
- \dmnfont
-
- % Count the amount of inputs and outputs.
- \foreach{\countinput}{}{#3}
- \foreach{\countoutput}{}{#4}
- % Sum them together to find the number of columns of the table.
- \advance\nbcols by \nbinputs
- \advance\nbcols by \nboutputs
-
- % X is the first index number, always 1.
- \X=1
- \advance\nbinputs by 1\relax % To make space for the index
- \begin{tabular}{|r|*{\nbcols}{l|}}
- \expandafter\cmidrule{1-\nbinputs} % Makes sure the top hline is not the full width.
- \multicolumn{\nbinputs}{|l|}{#1} & \multicolumn{\nboutputs}{c}{}\\ % Set the input and output as multicolumn.
- \hline
- #2 \foreach{\makeinputcol}{}{#3} \foreach{\makeoutputcol}{}{#4} \\ % Generate input and outputheaders.
- \hline
- \the\X \foreach{\makecol}{}{#5} \\ % Generate the cell values
- \hline
- \end{tabular}
- }
-}
-
-\endinput
-%%%
-%%% End of file 'dmn.sty'