summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-10-17 21:01:27 +0000
committerKarl Berry <karl@freefriends.org>2020-10-17 21:01:27 +0000
commit0e5e2f0d8a0472c17785e552e27fa41b0930c74c (patch)
tree74cc3b9c5fba575cb5f2252b08ee07dbaa7cf71f
parentcb284828fadb6a1c28889b823132099c337ceea6 (diff)
syntaxdi (17oct20)
git-svn-id: svn://tug.org/texlive/trunk@56685 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/syntaxdi/README46
-rw-r--r--Master/texmf-dist/doc/latex/syntaxdi/syntaxdi.pdfbin0 -> 187370 bytes
-rw-r--r--Master/texmf-dist/doc/latex/syntaxdi/syntaxdi.tex89
-rw-r--r--Master/texmf-dist/tex/latex/syntaxdi/syntaxdi.sty117
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check2
-rwxr-xr-xMaster/tlpkg/libexec/ctan2tds1
-rw-r--r--Master/tlpkg/tlpsrc/collection-pictures.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/syntaxdi.tlpsrc0
8 files changed, 255 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/latex/syntaxdi/README b/Master/texmf-dist/doc/latex/syntaxdi/README
new file mode 100644
index 00000000000..349c0191084
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/syntaxdi/README
@@ -0,0 +1,46 @@
+PACKAGE `syntaxdi'
+========================================================================
+The 'syntaxdi' package provides styles for TikZ to create special syntax
+diagrams. These are known as railroad diagrams. The package was
+originally part of the 'schule' package.
+Cf. pgfmanual.pdf
+5 Tutorial: Diagrams as Simple Graphs (pp.66-74)
+------------------------------------------------------------------------
+Version: 0.8.2
+Last change: 2020/10/16
+
+The package is still a work in progress. Open development steps are
+shown in the documentation.
+------------------------------------------------------------------------
+
+LICENCE
+========================================================================
+Copyright (C)
+2010, 2011, 2012, 2013, 2014, 2018, 2020
+Johannes Pieper, André Hilbig, Johannes Kuhaupt, André Hilbig,
+Daniel Spittank, Ludger Humbert, Adrian Salamon
+
+(schulepaket@johpie.de)
+
+This work 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 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Johannes Pieper.
+--------------------------------------------------------------------------
+The main code file of the package syntaxdi is:
+ syntaxdi.sty
+--------------------------------------------------------------------------
+The package syntaxdi consists of the documentation files:
+ README
+ syntaxdi.tex, syntaxdi.pdf
+--------------------------------------------------------------------------
+If you have any ideas, questions, suggestions or bugs to report, please
+feel free to contact me.
+--------------------------------------------------------------------------
diff --git a/Master/texmf-dist/doc/latex/syntaxdi/syntaxdi.pdf b/Master/texmf-dist/doc/latex/syntaxdi/syntaxdi.pdf
new file mode 100644
index 00000000000..495c09e362b
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/syntaxdi/syntaxdi.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/syntaxdi/syntaxdi.tex b/Master/texmf-dist/doc/latex/syntaxdi/syntaxdi.tex
new file mode 100644
index 00000000000..1adbbd6cbc2
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/syntaxdi/syntaxdi.tex
@@ -0,0 +1,89 @@
+\documentclass[a4paper,add-index]{cnltx-doc}
+
+\usepackage{syntaxdi}
+
+\usepackage{hyperref}
+
+\setcnltx{
+ name = syntaxdi ,
+ title = syntaxdi ,
+ version = 0.8.2 ,
+ date = 2020-10-16 ,
+ subtitle = {\LaTeX-Paket zum Setzen von Syntaxdiagrammen in Form von Railroaddiagrammen},
+ info = Paketdokumentation ,
+ authors = {Johannes Pieper, Johannes Kuhaupt, Ludger Humbert, Andr\'e Hilbig, Adrian Salamon, Daniel Spittank} ,
+ email = schulepaket@johpie.de ,
+ url = https://ddi.uni-wuppertal.de/material/schulepaket.html ,
+ abstract = {%
+ Mit diesem Paket werden Styles für TikZ bereit gestellt, um spezielle Syntaxdiagramme erstellen zu können. Diese sind auch als Railroaddiagramme bekannt und wurden von Niklaus Wirth zur Dokumentation der Syntax von Pascal eingeführt. In der Dokumentation des Pakets \pkg{pgf} wird die Erstellung in dem Tutorium \textbf{Diagrams as Simple Graphs} (S.~66--74) Schritt für Schritt beschrieben. Das Paket war vormals Teil des Schulepakets.
+ } ,
+ index-setup = { othercode=\footnotesize,level=\section},
+ add-listings-options= {
+ morekeywords={
+ }
+ },
+}
+
+\begin{document}
+
+\section{Syntaxdiagramme}
+\label{paket:syntaxdi}
+
+Mit den Paketen \pkg{syntaxdi} und \pkg{tikz} ist es möglich, spezielle Syntaxdiagramme als Railroaddiagramme zu erstellen. Dazu sind Elemente definiert worden, die automatisch durch Pfeile miteinander verbunden werden.
+
+Hierzu definiert das Paket \pkg{syntaxdi} einige TikZ-Stile, die einfach genutzt werden können.
+
+\subsection{TikZ-Stile}
+\begin{options}
+ \opt{nonterminal} definiert ein Non-Terminal.
+ \opt{terminal} definiert ein Terminal.
+ \opt{fnonterminal} definiert ein Non-Terminal ohne automatische Verzweigung.
+ \opt{fterminal} definiert ein Terminal ohne automatische Verzweigung.
+ \opt{point} definiert einen Punkt, der ohne ankommenden Pfeil gezeichnet wird.
+ \opt{endpoint} definiert einen Punkt, der mit ankommenden Pfeil gezeichnet wird.
+\end{options}
+
+\subsection{Beispiel}
+
+Damit kann z.\,B. das Syntaxdiagramm für eine Mehrfachverzweigung in der Programmiersprache Python in Form eines Railroaddiagramms dargestellt werden.
+
+\begin{example}[gobble=0]
+\begin{tikzpicture}[syntaxdiagramm]
+ \node [] {};
+ \node [terminal] {if};
+ \node [nonterminal] {Bedingung};
+ \node [terminal] {:};
+ \node [nonterminal] {Anweisungsblock};
+ \node (ersteReiheEnde) [point] {};
+ \node (ersteReiheEndeUnten) [point, below=of ersteReiheEnde] {};
+ \node (zweiteReiheStartOben) [point, left=of ersteReiheEndeUnten,
+ xshift=-75mm] {};
+ \node (zweiteReiheStart) [point, below=of zweiteReiheStartOben] {};
+ {
+ [start chain=elif going right]
+ \chainin (zweiteReiheStart);
+ \node [terminal] {elif};
+ \node [nonterminal] {Bedingung};
+ \node [terminal] {:};
+ \node [nonterminal] {Anweisungsblock};
+ \node (elifEnde) [point] {};
+ \node (elifEndeOben) [point, above=of elifEnde] {};
+ \draw[->,left] (elifEndeOben) -- (ersteReiheEndeUnten);
+ }
+ \node (dritteReiheStart) [point, below=of zweiteReiheStart,
+ yshift=-5mm] {};
+ \node (vierteReiheStart) [point, below=of dritteReiheStart,
+ yshift=-5mm] {};
+ \node (vierteReiheEnde) [point, xshift=84mm] {};
+ {
+ [start chain=else going right]
+ \chainin (dritteReiheStart);
+ \node [terminal] {else};
+ \node [terminal] {:};
+ \node (elseEnde) [nonterminal] {Anweisungsblock};
+ \draw[->] (elseEnde) -| (vierteReiheEnde);
+ }
+ \node (ende) [endpoint] {};
+\end{tikzpicture}
+\end{example}
+\end{document}
diff --git a/Master/texmf-dist/tex/latex/syntaxdi/syntaxdi.sty b/Master/texmf-dist/tex/latex/syntaxdi/syntaxdi.sty
new file mode 100644
index 00000000000..97e0672fdc2
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/syntaxdi/syntaxdi.sty
@@ -0,0 +1,117 @@
+% \subsection{Das Paket \texttt{syntaxdi}}
+%
+% Beginn der Definition, Voraussetzung der \LaTeXe{} Version und die
+% eigene Identifizierung
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesPackage{syntaxdi}[2020/10/16 v0.8.2 %
+ Syntaxdiagramme mit TikZ]
+% \end{macrocode}
+% Einbinden der benötigten Pakete
+% \begin{macrocode}
+\RequirePackage{tikz}
+\usetikzlibrary{chains}
+\usetikzlibrary{arrows,shadows,shapes.misc,scopes}
+% \end{macrocode}
+%
+% \subsubsection{TikZ-Definitionen}
+%
+% Definition für nicht terminale Symbole für Syntaxdiagramme in TikZ
+% \begin{macrocode}
+\tikzset{
+ fnonterminal/.style={
+ rectangle,
+ minimum size=6mm,
+ text height=1.5ex,text depth=.25ex,
+ very thick,
+ draw=red!50!black!50, % 50% red und 50% black,
+ top color=white, % oben: weisser Schatten ...
+ bottom color=red!50!black!20, % unten: anderer Schatten
+ font=\itshape
+ }
+}
+\tikzset{
+ nonterminal/.style={
+ % Die Form:
+ rectangle,
+ % Die Größe:
+ minimum size=6mm,
+ text height=1.5ex,text depth=.25ex,
+ % Der Rand:
+ very thick,
+ draw=red!50!black!50, % 50% red und 50% black,
+ % gemischt mit 50% white
+ % Füllfarbe:
+ top color=white, % oben: weisser Schatten ...
+ bottom color=red!50!black!20, % unten: anderer Schatten
+ % Font
+ font=\itshape
+ }
+}
+% \end{macrocode}
+%
+% Definitionen für terminale Symbole im Syntaxdiagramm in TikZ
+% \begin{macrocode}
+\tikzset{
+ fterminal/.style={
+ rounded rectangle,
+ minimum size=6mm,
+ very thick,draw=black!50,
+ text height=1.5ex,text depth=.25ex,
+ top color=white,bottom color=black!20,
+ font=\ttfamily
+ }
+}
+\tikzset{
+ terminal/.style={
+ % Die Form:
+ rounded rectangle,
+ minimum size=6mm,
+ % Der Rest ...
+ very thick,draw=black!50,
+ text height=1.5ex,text depth=.25ex,
+ top color=white,bottom color=black!20,
+ font=\ttfamily
+ }
+}
+% \end{macrocode}
+%
+% Definitionen eines Punktes für das Syntaxdiagramm in TikZ
+% \begin{macrocode}
+\tikzset{
+ point/.style={
+ circle,
+ inner sep=0pt,
+ minimum size=0pt
+ }
+}
+% \end{macrocode}
+%
+% Definition eines Endpunktes für das Syntaxdiagramm in TikZ
+% \begin{macrocode}
+\tikzset{
+ endpoint/.style={
+ circle,
+ inner sep=0pt,
+ minimum size=0pt
+ }
+}
+% \end{macrocode}
+%
+% Definition der Syntaxdiagramme in TikZ
+% \begin{macrocode}
+\tikzset{
+ syntaxdiagramm/.style={
+ start chain,
+ node distance=7mm and 5mm,
+ every node/.style={on chain},
+ nonterminal/.append style={join=by ->},
+ terminal/.append style={join=by ->},
+ endpoint/.append style={join=by ->},
+ point/.append style={join=by -},
+ skip loop/.style={to path={-- ++(0,-.5) -| (\tikztotarget)}}
+ }
+}
+% \end{macrocode}
+%
+% Ende des Pakets \texttt{syntaxdi}
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index 858c801c1cf..ef1de7bc5d5 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -704,7 +704,7 @@ my @TLP_working = qw(
superiors supertabular susy svg svg-inkscape svgcolor
svn svn-multi svn-prov svninfo svrsymbols
swebib swfigure swimgraf swrule syllogism
- symbol sympytexpackage syntax synproof syntrace synttree
+ symbol sympytexpackage syntax synproof syntaxdi syntrace synttree
systeme
t-angles t2
tabfigures table-fct tableaux tablefootnote tableof tablestyles
diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds
index e32b18aee56..e8ac694fda1 100755
--- a/Master/tlpkg/libexec/ctan2tds
+++ b/Master/tlpkg/libexec/ctan2tds
@@ -1213,6 +1213,7 @@ chomp (my $ctan_root = `tlpkginfo --ctan-root`);
'svjour', "die 'skipping, license and packaging unclear'",
'symbol', "die 'skipping, part of urw-base35, frozen'",
'symbolindex', "die 'skipping, requires binary'",
+ 'syntaxdi', "&MAKEflatten",
't2', "&MAKEt2",
'tabbing', "die 'skipping, use Tabbing'",
'tabto', "die 'skipping, use tabto-generic or tabto-ltx'",
diff --git a/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc b/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc
index 382cb41e249..d0beee53b73 100644
--- a/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc
@@ -141,6 +141,7 @@ depend smartdiagram
depend spath3
depend spectralsequences
depend swimgraf
+depend syntaxdi
depend table-fct
depend texdraw
depend ticollege
diff --git a/Master/tlpkg/tlpsrc/syntaxdi.tlpsrc b/Master/tlpkg/tlpsrc/syntaxdi.tlpsrc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/syntaxdi.tlpsrc