texlive[44699] Master/texmf-dist: struktex (25jun17)

commits+karl at tug.org commits+karl at tug.org
Sun Jun 25 23:52:00 CEST 2017


Revision: 44699
          http://tug.org/svn/texlive?view=revision&revision=44699
Author:   karl
Date:     2017-06-25 23:51:59 +0200 (Sun, 25 Jun 2017)
Log Message:
-----------
struktex (25jun17)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/struktex/struktex.de.pdf
    trunk/Master/texmf-dist/doc/latex/struktex/struktex.el
    trunk/Master/texmf-dist/doc/latex/struktex/struktex.en.pdf
    trunk/Master/texmf-dist/doc/latex/struktex/struktex.mk
    trunk/Master/texmf-dist/source/latex/struktex/struktex.dtx
    trunk/Master/texmf-dist/source/latex/struktex/struktex.ins
    trunk/Master/texmf-dist/tex/latex/struktex/strukdoc.sty
    trunk/Master/texmf-dist/tex/latex/struktex/struktex.sty
    trunk/Master/texmf-dist/tex/latex/struktex/struktxf.sty
    trunk/Master/texmf-dist/tex/latex/struktex/struktxp.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/struktex/LIESMICH.md
    trunk/Master/texmf-dist/doc/latex/struktex/README.md
    trunk/Master/texmf-dist/doc/latex/struktex/THIS_IS_VERSION_v2.2-1

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/latex/struktex/LIESMICH
    trunk/Master/texmf-dist/doc/latex/struktex/README
    trunk/Master/texmf-dist/doc/latex/struktex/THIS_IS_VERSION_v141
    trunk/Master/texmf-dist/doc/latex/struktex/getversion.tex

Deleted: trunk/Master/texmf-dist/doc/latex/struktex/LIESMICH
===================================================================
--- trunk/Master/texmf-dist/doc/latex/struktex/LIESMICH	2017-06-25 21:51:46 UTC (rev 44698)
+++ trunk/Master/texmf-dist/doc/latex/struktex/LIESMICH	2017-06-25 21:51:59 UTC (rev 44699)
@@ -1,23 +0,0 @@
-#
-# $Revision: 52 $
-#
-Das LaTeX-Paket "struktex.dtx" enthaelt Makros zur Erzeugung von
-Nassi-Shneidermann-Struktogrammen.
-
-Es besteht aus sechs Dateien:
-    LIESMICH          - diese Datei
-    README            - diese Datei in einer englischen Version
-    struktex.dtx      - das eigentliche Paket mit integrierter zweisprachiger
-                        Dokumentation
-    struktex.ins      - das Installationsskript
-    struktex.de.pdf   - die Dokumentation in deutscher Sprache
-    struktex.en.pdf   - die Dokumentation in englischer Sprache
-    
-Weitere Informationen sind der Dokumentation zu entnehmen.
-
-Hinweise auf Fehler nehme ich genauso wie Vorschlaege fuer die weitere 
-Entwicklung gerne entgegen unter j.hoffmann at fh-aachen.de.
-
-Diese Dateien unterliegen der LaTeX Project Public License. 
-Vgl. http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html 
-zu Details dieser Lizenz.

Added: trunk/Master/texmf-dist/doc/latex/struktex/LIESMICH.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/struktex/LIESMICH.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/struktex/LIESMICH.md	2017-06-25 21:51:59 UTC (rev 44699)
@@ -0,0 +1,64 @@
+StrukTeX - Zeichnen von Nassi-Shneidermann-Struktogrammen
+=========================================================
+
+Das LaTeX-Paket `StrukTeX` stellt Makros zur Erzeugung von
+Nassi-Shneidermann-Struktogrammen bereit.
+
+Das Paket besteht aus sechs Dateien:
+* `LIESMICH`             - diese Datei
+* `README`               - diese Datei in einer englischen Version
+* `struktex.dtx`         - der Quellcode des Paketes integrierter
+                           zweisprachiger Dokumentation
+* `struktex.ins`         - das Installationsskript
+
+Installation
+------------
+
+Mit
+    tex struktex.ins
+werden weitere Dateien erzeugt:
+
+ * `struktex.sty`         - das eigentliche Paket
+ * `struktex.el`          - eine Stil Datei zur Benutzung mit AUCTeX
+
+ * `strukdoc.sty`        \
+ * `struktxf.sty`        |
+ * `struktxp.sty`        |
+ * `struktex-test-0.nss` |- Dateien für die Formatierung der
+ * `struktex-test-1.tex` |  Dokumentation
+ * `struktex-test-2.tex` |
+ * `struktex-test-3.tex` |
+ * `struktex-test-4.tex` /
+
+ * `struktex.makemake`    - Skript zur Erstellung der Datei `Makefile`
+                           aus der Datei
+ * `struktex.mk`
+
+Mit
+    pdflatex struktex.dtx
+    makeindex -s gind.ist struktex.idx
+    pdflatex struktex.dtx
+    pdflatex struktex.dtx
+wird dann die formatierte deutschsprachige Dokumentation erzeugt.
+
+Für die Formatierung der Dokumentation werden neben den genannten
+Dateien die folgenden Pakete benötigt:
+ * `color`
+ * `hyperref`
+ * `ifthen`
+ * `nameref`
+ * `pict2e` (empfohlen) oder `curves` oder `emlines`
+ * `url`
+
+Abschließend müssen die Dateien `struktex.sty`, struktxf.sty`,
+`struktxp.sty`, `struktex.el` (emacs-AUCTeX-Unterstützung)
+und `struktex.pdf` in die üblichen Verzeichnisse kopiert werden.
+
+Weitere Informationen sind der Dokumentation zu entnehmen.
+
+Hinweise auf Fehler nehme ich genauso wie Vorschlaege fuer die weitere
+Entwicklung gerne entgegen unter j.hoffmann |at| fh-aachen.de.
+
+Diese Dateien unterliegen der LaTeX Project Public License.
+Vgl. http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html
+zu Details dieser Lizenz.


Property changes on: trunk/Master/texmf-dist/doc/latex/struktex/LIESMICH.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/doc/latex/struktex/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/struktex/README	2017-06-25 21:51:46 UTC (rev 44698)
+++ trunk/Master/texmf-dist/doc/latex/struktex/README	2017-06-25 21:51:59 UTC (rev 44699)
@@ -1,28 +0,0 @@
-#
-# $Revision: 52 $
-#
-The LaTeX package "struktex.dtx" contains some macros which
-generate Nassi Shneidermann structure charts
-
-It consists of six files:
-    LIESMICH          - this file in a german version
-    README            - this file
-    struktex.dtx      - the actual package with integrated bi-lingual
-                        documentation
-    struktex.ins      - the installation script
-    struktex.de.pdf   - the documentation in german language
-    struktex.en.pdf   - the documentation in english language
-
-For further information see the documentation.
-
-At this moment the english documentation is very erroneous, I'm not an english 
-native speaker and some times I've missed updating the translation (the 
-package first was intended for internal use only). But I think the examples are 
-very helpful and speaking for themselves.
-
-Any hint as well as any proposal for further development are welcome at my
-email-address j.hoffmann at fh-aachen.de.
-
-This material is subject to the LaTeX Project Public License. 
-See http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html 
-for the details of that license.

Added: trunk/Master/texmf-dist/doc/latex/struktex/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/struktex/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/struktex/README.md	2017-06-25 21:51:59 UTC (rev 44699)
@@ -0,0 +1,65 @@
+StrukTeX - Drawing of Nassi-Shneidermann Structured Box Charts
+==============================================================
+
+The LaTeX package `StrukTeX` provides macros for the generation of
+Nassi-Shneidermann structured box charts.
+
+The package consists of six files:
+* `README.md`            - this file
+* `LIESMICH.dm`          - this file in an german version
+* `struktex.dtx`         - the source code of the package with
+                           an integrated bilingual documentation
+* `struktex.ins`         - the installation script
+
+
+Installation
+------------
+
+With
+    tex struktex.ins
+several additional files are created:
+
+* `struktex.sty`         - the actual package
+* `struktex.el`          - a style file for use with AUCTeX
+
+* `strukdoc.sty`        \
+* `struktxf.sty`        |
+* `struktxp.sty`        |
+* `struktex-test-0.nss` |- Files for formatting the
+* `struktex-test-1.tex` |  documentation
+* `struktex-test-2.tex` |
+* `struktex-test-3.tex` |
+* `struktex-test-4.tex` /
+
+* `struktex.makemake`    - script for creating a `Makefile` file
+                           from the file
+* `struktex.mk`
+
+With
+    pdflatex "\def\primarylanguage{english}\input{struktex.dtx}"
+    makeindex -s gind.ist struktex.idx
+    pdflatex "\def\primarylanguage{english}\input{struktex.dtx}"
+    pdflatex "\def\primarylanguage{english}\input{struktex.dtx}"
+the formatted English-language documentation is generated.
+
+Finally, the files `struktex.sty`, `struktxf.sty`, `struktxp.sty`,
+`struktex.el` (emacs-AUCTeX-support) as well as
+`struktex.pdf` have to be copied into the usual directories.
+
+For the formatting of the documentation, besides the mentioned files
+the following packages are required:
+ * `color`
+ * `hyperref`
+ * `ifthen`
+ * `nameref`
+ * `pict2e` (empfohlen) oder `curves` oder `emlines`
+ * `url`
+
+Further information can be found in the documentation.
+
+I take notes for mistakes as well as suggestions for the further
+Development gladly under j.hoffmann | at | fh-aachen.de.
+
+This material issubject to the LaTeX Project Public License.
+See http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html
+To details of this license.


Property changes on: trunk/Master/texmf-dist/doc/latex/struktex/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/doc/latex/struktex/THIS_IS_VERSION_v141
===================================================================
--- trunk/Master/texmf-dist/doc/latex/struktex/THIS_IS_VERSION_v141	2017-06-25 21:51:46 UTC (rev 44698)
+++ trunk/Master/texmf-dist/doc/latex/struktex/THIS_IS_VERSION_v141	2017-06-25 21:51:59 UTC (rev 44699)
@@ -1 +0,0 @@
-VERSION v141 of 2012/04/10

Added: trunk/Master/texmf-dist/doc/latex/struktex/THIS_IS_VERSION_v2.2-1
===================================================================
--- trunk/Master/texmf-dist/doc/latex/struktex/THIS_IS_VERSION_v2.2-1	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/struktex/THIS_IS_VERSION_v2.2-1	2017-06-25 21:51:59 UTC (rev 44699)
@@ -0,0 +1 @@
+struktex version v2.2-1-g6fb75d1 of 2017-06-25

Deleted: trunk/Master/texmf-dist/doc/latex/struktex/getversion.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/struktex/getversion.tex	2017-06-25 21:51:46 UTC (rev 44698)
+++ trunk/Master/texmf-dist/doc/latex/struktex/getversion.tex	2017-06-25 21:51:59 UTC (rev 44699)
@@ -1,8 +0,0 @@
-
-\documentclass{ltxdoc}
-\nofiles
-\usepackage{struktex}
-\GetFileInfo{struktex.sty}
-\typeout{VERSION \fileversion\space of \filedate}
-\begin{document}
-\end{document}

Modified: trunk/Master/texmf-dist/doc/latex/struktex/struktex.de.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/struktex/struktex.el
===================================================================
--- trunk/Master/texmf-dist/doc/latex/struktex/struktex.el	2017-06-25 21:51:46 UTC (rev 44698)
+++ trunk/Master/texmf-dist/doc/latex/struktex/struktex.el	2017-06-25 21:51:59 UTC (rev 44699)
@@ -1,11 +1,11 @@
 
 ;;; struktex.el --- AUCTeX style for `struktex.sty'
 
-;; Copyright (C) 2006 Free Software Foundation, Inc.
+;; Copyright (C) 2006 - 2017 Free Software Foundation, Inc.
 
 ;; Author: J. Hoffmann <j.hoffmann_(at)_fh-aachen.de>
 ;; Maintainer: j.hoffmann_(at)_fh-aachen.de
-;; Created: 2006/01/17
+;; Created: 2017/06/06
 ;; Keywords: tex
 
 ;;; Commentary:
@@ -12,11 +12,12 @@
 ;;  This file adds support for `struktex.sty'
 
 ;;; Code:
+
 (TeX-add-style-hook
  "struktex"
  (lambda ()
-   ;; Add declaration to the list of environments which have an optional
-   ;; argument for each item.
+   ;; Add declaration to the list of environments which have
+   ;; an optional argument for each item.
    (add-to-list 'LaTeX-item-list
                 '("declaration" . LaTeX-item-argument))
    (LaTeX-add-environments
@@ -37,6 +38,8 @@
     '("exit" [ "Height" ] "What" )
     '("forever" TeX-mac-forever)
     "foreverend"
+    '("forallin" TeX-mac-forallin)
+    "forallin"
     '("ifthenelse" TeX-mac-ifthenelse)
     "change"
     "ifend"
@@ -65,7 +68,8 @@
    ))
 
 (defun LaTeX-env-struktogramm (environment)
-  "Insert ENVIRONMENT with width, height specifications and optional title."
+  "Insert ENVIRONMENT with width, height specifications and
+optional title."
   (let ((width (read-string "Width: "))
         (height (read-string "Height: "))
         (title (read-string "Title (optional): ")))
@@ -79,13 +83,14 @@
   "Insert ENVIRONMENT with an optional title."
   (let ((title (read-string "Title (optional): ")))
     (LaTeX-insert-environment environment
-                               (if (not (zerop (length title)))
-                                   (format "[%s]" title)))))
+                              (if (not (zerop (length title)))
+                                  (format "[%s]" title)))))
 
 (defun TeX-mac-case (macro)
-  "Insert \\case with all arguments, the needed \\switch(es) and the final \\caseend.
-These are optional height and the required arguments slope, number of cases,
-condition, and the texts for the different cases"
+  "Insert \\case with all arguments, the needed \\switch(es) and
+the final \\caseend. These are optional height and the required
+arguments slope, number of cases, condition, and the texts for
+the different cases"
   (let ((height (read-string "Height (optional): "))
         (slope (read-string "Slope: "))
         (number (read-string "Number of cases: "))
@@ -105,11 +110,25 @@
       (setq prompt (format "Case no. %d: " (+ 1 count)))
       (insert (format "\\switch{%s}" (read-string prompt)))
       (setq count (1+ count)))
-      (end-of-line)
-      (newline-and-indent)
-      (newline-and-indent)
-      (insert "\\caseend")))
+    (end-of-line)
+    (newline-and-indent)
+    (newline-and-indent)
+    (insert "\\caseend")))
 
+(defun TeX-mac-forallin (macro)
+  "Insert \\forallin-block with all arguments.
+This is the optional height and the description of the loop"
+  (let ((height (read-string "Height (optional): "))
+        (loop-description (read-string "Description of loop: ")))
+    (insert (concat (if (not (zerop (length height)))
+                        (format "[%s]" height))
+                    (format "{%s}"
+                            loop-description)))
+    (end-of-line)
+    (newline-and-indent)
+    (newline-and-indent)
+    (insert "\\forallinend")))
+
 (defun TeX-mac-forever (macro)
   "Insert \\forever-block with all arguments.
 This is only the optional height"
@@ -123,8 +142,9 @@
 
 (defun TeX-mac-ifthenelse (macro)
   "Insert \\ifthenelse with all arguments.
-These are optional height and the required arguments left slope, right slope,
-condition, and the possible values of the condition"
+These are optional height and the required arguments
+left slope, right slope, condition, and the possible
+values of the condition"
   (let ((height (read-string "Height (optional): "))
         (lslope (read-string "Left slope: "))
         (rslope (read-string "Right slope: "))
@@ -134,7 +154,8 @@
     (insert (concat (if (not (zerop (length height)))
                         (format "[%s]" height))
                     (format "{%s}{%s}{%s}{%s}{%s}"
-                            lslope rslope condition conditionvl conditionvr)))
+                            lslope rslope condition conditionvl
+                            conditionvr)))
     (end-of-line)
     (newline-and-indent)
     (newline-and-indent)
@@ -145,9 +166,10 @@
     (insert "\\ifend")))
 
 (defun TeX-mac-inparallel (macro)
-  "Insert \\inparallel with all arguments, the needed \\task(es) and the final \\inparallelend.
-These are optional height and the required arguments number of tasks
-and the descriptions for the parallel tasks"
+  "Insert \\inparallel with all arguments, the needed \\task(s)
+and the final \\inparallelend. These are optional height and the
+required arguments number of tasks and the descriptions for the
+parallel tasks"
   (let ((height (read-string "Height (optional): "))
         (number (read-string "Number of parallel tasks: "))
         (text (read-string "Task no. 1: "))
@@ -164,10 +186,10 @@
       (setq prompt (format "Task no. %d: " (+ 1 count)))
       (insert (format "\\task{%s}" (read-string prompt)))
       (setq count (1+ count)))
-      (end-of-line)
-      (newline-and-indent)
-      (newline-and-indent)
-      (insert "\\inparallelend")))
+    (end-of-line)
+    (newline-and-indent)
+    (newline-and-indent)
+    (insert "\\inparallelend")))
 
 (defun TeX-mac-until (macro)
   "Insert \\until with all arguments.
@@ -197,7 +219,7 @@
 
 (defvar LaTeX-struktex-package-options '("curves" "draft" "emlines" "final"
                                          "pict2e" "anygradient" "verification"
-                                         "nofiller")
+                                         "nofiller" "debug" "outer")
   "Package options for the struktex package.")
 
 ;;; struktex.el ends here.

Modified: trunk/Master/texmf-dist/doc/latex/struktex/struktex.en.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/struktex/struktex.mk
===================================================================
--- trunk/Master/texmf-dist/doc/latex/struktex/struktex.mk	2017-06-25 21:51:46 UTC (rev 44698)
+++ trunk/Master/texmf-dist/doc/latex/struktex/struktex.mk	2017-06-25 21:51:59 UTC (rev 44699)
@@ -22,7 +22,7 @@
 #          - clean-example
 #
 # Author:  Jobst Hoffmann, Fachhochschule Aachen, Standort Juelich
-# Date:    2006/08/23
+# Date:    2017/06/06
 #-----------------------------------------------------------------------
 
 # The texmf-directory, where to install new stuff (see texmf.cnf)
@@ -66,53 +66,100 @@
 # It's not really a good solution, but it's a working solution.
 TEXINPUTS := $(PWD):$(TEXINPUTS)
 
-# To generate the version number of the distribution from the source
-VERSION_L := latex getversion | grep '^VERSION'
-VERSION_S := `latex getversion | grep '^VERSION' | \
-              sed 's+^VERSION \\(.*\\) of .*+\\1+'`
 ########################################################################
 #   End of customization section
 ########################################################################
 
-DVIPS = dvips
 LATEX = latex
 PDFLATEX = pdflatex
+TEX = TEX
 
-# postscript viewer
-GV = gv
-
 COMMON_OPTIONS = # \OnlyDescription\CodelineNumbered\PageIndex
 HISTORY_OPTIONS = \RecordChanges
 DEVELOPER_OPTIONS = \EnableCrossrefs\RecordChanges\AlsoImplementation\CodelineIndex
 
+# tarring options
+EXgit = --exclude .git --exclude .gitignore --exclude auto --exclude tests \
+ --exclude *.tgz --exclude *.bib
+
 # The name of the game
 PACKAGE = struktex
 
+DISTRIBUTION_FILES = ../$(PACKAGE)/$(PACKAGE).de.pdf \
+../$(PACKAGE)/$(PACKAGE).en.pdf \
+ ../$(PACKAGE)/$(PACKAGE).dtx \
+ ../$(PACKAGE)/$(PACKAGE).ins \
+ ../$(PACKAGE)/LIESMICH.md \
+ ../$(PACKAGE)/README.md
+PACKAGE_FILES_A = $(subst ../$(PACKAGE)/,,$(DISTRIBUTION_FILES))
+PACKAGE_FILES_B = $(subst $(PACKAGE).dtx ,,$(PACKAGE_FILES_A))
+PACKAGE_FILES_C = $(subst $(PACKAGE).ins ,,$(PACKAGE_FILES_B))
+PACKAGE_FILES_D = $(subst LIESMICH.md,,$(PACKAGE_FILES_C))
+PACKAGE_FILES = $(subst README.md,,$(PACKAGE_FILES_D))
+
+# To generate the version number of the distribution from the source
+VERSION_L := git describe --long | xargs git --no-pager show -s \
+         --date=short --format=format:"$(PACKAGE) version ???? of %ad%n" |\
+         sed -e "s/????/`git describe --long`/"
+VERSION_S := `git describe --long | \
+             sed 's+-g.*++'`
+
+## Main Targets
+
 # strip off the comments from the package
-$(PACKAGE).sty $(PACKAGE)-test-*.tex: $(PACKAGE).ins $(PACKAGE).dtx
- +$(LATEX) $<; \
-  sh $(PACKAGE).makemake
+$(PACKAGE).sty $(PACKAGE)-test-*.tex: $(PACKAGE).ins $(PACKAGE).dtx $(PACKAGE).sed
+ +$(TEX) $<; \
+  source $(PACKAGE).makemake; \
+  make revision_no; \
+  source $(PACKAGE).sed  # set version number
 
 all-de: $(PACKAGE).de.pdf
 
 all-en: $(PACKAGE).en.pdf
 
+# prepare the file with git revision information
+.PHONY: revision_no
+revision_no: $(PACKAGE).sed
+
+$(PACKAGE).sed: $(PACKAGE).dtx
+ printf "%b\n" "set_git_info() {" \
+    > $(PACKAGE).sed; \
+ printf "%b\n" "sed -i -e 's/^[ \\\\t]*%% git revision information$$/\\"  \
+    >> $(PACKAGE).sed; \
+ git describe --long | \
+    xargs git --no-pager show -s --format=format:\
+ "    \\\\@git@ \$$Date: %ci $$%%\%n" >> $(PACKAGE).sed; \
+ git describe --long | cut -c 2- |\
+    sed -e "s/^/      \$$Revision: /" -e "s/$$/ $$\\\\/" \
+    >> $(PACKAGE).sed; \
+ git describe --long | \
+    xargs git --no-pager show -s --format=format:"    %%%% \$$Author: %an $$\\%n" \
+    >> $(PACKAGE).sed; \
+ printf "%b\n" "/' \$$1" \
+    >> $(PACKAGE).sed; \
+ printf "%b\n" "};" \
+    >> $(PACKAGE).sed; \
+ printf "%b\n" "for f in  \\\\" \
+    >> $(PACKAGE).sed; \
+ printf "%b\n" "$(PACKAGE).sty \\\\" \
+    >> $(PACKAGE).sed; \
+ printf "%b\n" "struktxf.sty \\\\" \
+    >> $(PACKAGE).sed; \
+ printf "%b\n" "struktxp.sty \\\\" \
+    >> $(PACKAGE).sed; \
+ printf "%b\n" "strukdoc.sty \\\\" \
+    >> $(PACKAGE).sed; \
+ printf "%b\n" "; do \\\\" \
+    >> $(PACKAGE).sed; \
+ printf "%b\n" "  set_git_info \$$f; done" \
+    >> $(PACKAGE).sed; \
+
 # generate the documentation
-$(PACKAGE).de.dvi: $(PACKAGE).dtx $(PACKAGE).sty
- +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\input{$<}"
- +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\input{$<}"
- +mv $(<:.dtx=.dvi) $(<:.dtx=.de.dvi)
-
-$(PACKAGE).de.pdf: $(PACKAGE).dtx $(PACKAGE).sty
+$(PACKAGE).de.pdf: $(PACKAGE).dtx $(PACKAGE).sty struktex.sed
  +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\input{$<}"
  +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\input{$<}"
  +mv $(<:.dtx=.pdf) $(<:.dtx=.de.pdf)
 
-$(PACKAGE).en.dvi: $(PACKAGE).dtx $(PACKAGE).sty
- +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\def\primarylanguage{english}\input{$<}"
- +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\def\primarylanguage{english}\input{$<}"
- +mv $(<:.dtx=.dvi) $(<:.dtx=.en.dvi)
-
 $(PACKAGE).en.pdf: $(PACKAGE).dtx $(PACKAGE).sty
  +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\def\primarylanguage{english}\input{$<}"
  +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\def\primarylanguage{english}\input{$<}"
@@ -120,37 +167,29 @@
 
 # generate the documentation with revision history (only german)
 history: $(PACKAGE).dtx $(PACKAGE).sty
- +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(HISTORY_OPTIONS)}\input{$<}"
- +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(HISTORY_OPTIONS)}\input{$<}"
+ +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(HISTORY_OPTIONS)}\input{$<}"
+ +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(HISTORY_OPTIONS)}\input{$<}"
  +makeindex -s gind.ist                 $(PACKAGE).idx
  +makeindex -s gglo.ist -o $(PACKAGE).gls -t $(PACKAGE).glg $(PACKAGE).glo
- +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(HISTORY_OPTIONS)}\input{$<}"
+ +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(HISTORY_OPTIONS)}\input{$<}"
 
 # generate the documentation for the developer (revision history always
 # in german)
 develop-de: $(PACKAGE).dtx $(PACKAGE).sty
- +$(LATEX) "\AtBeginDocument{$(HISTORY_OPTIONS)$(DEVELOPER_OPTIONS)}\input{$<}"
- +$(LATEX) "\AtBeginDocument{$(HISTORY_OPTIONS)$(DEVELOPER_OPTIONS)}\input{$<}"
+ +$(PDFLATEX) "\AtBeginDocument{$(HISTORY_OPTIONS)$(DEVELOPER_OPTIONS)}\input{$<}"
+ +$(PDFLATEX) "\AtBeginDocument{$(HISTORY_OPTIONS)$(DEVELOPER_OPTIONS)}\input{$<}"
  +makeindex -s gind.ist                 $(PACKAGE).idx
  +makeindex -s gglo.ist -o $(PACKAGE).gls -t $(PACKAGE).glg $(PACKAGE).glo
- +$(LATEX) "\AtBeginDocument{$(HISTORY_OPTIONS)$(DEVELOPER_OPTIONS)}\input{$<}"
-ifneq (,$(findstring pdf,$(LATEX)))
+ +$(PDFLATEX) "\AtBeginDocument{$(HISTORY_OPTIONS)$(DEVELOPER_OPTIONS)}\input{$<}"
  +mv $(<:.dtx=.pdf) $(<:.dtx=.de.pdf)
-else
- +mv $(<:.dtx=.dvi) $(<:.dtx=.de.dvi)
-endif
 
 develop-en: $(PACKAGE).dtx $(PACKAGE).sty
- +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(DEVELOPER_OPTIONS)}\def\primarylanguage{english}\input{$<}"
- +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(DEVELOPER_OPTIONS)}\def\primarylanguage{english}\input{$<}"
+ +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(DEVELOPER_OPTIONS)}\def\primarylanguage{english}\input{$<}"
+ +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(DEVELOPER_OPTIONS)}\def\primarylanguage{english}\input{$<}"
  +makeindex -s gind.ist                 $(PACKAGE).idx
  +makeindex -s gglo.ist -o $(PACKAGE).gls -t $(PACKAGE).glg $(PACKAGE).glo
- +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(DEVELOPER_OPTIONS)}\def\primarylanguage{english}\input{$<}"
-ifneq (,$(findstring pdf,$(LATEX)))
+ +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(DEVELOPER_OPTIONS)}\def\primarylanguage{english}\input{$<}"
  +mv $(<:.dtx=.pdf) $(<:.dtx=.en.pdf)
-else
- +mv $(<:.dtx=.dvi) $(<:.dtx=.en.dvi)
-endif
 
 # format the example/test files
 test:
@@ -157,9 +196,7 @@
  for i in `seq 1 3`; do \
      f=$(PACKAGE)-test-$$i; \
      echo file: $$f; \
-     $(LATEX) $$f; \
-     $(DVIPS) -o $$f.ps $$f.dvi; \
-     $(GV) $$f.ps \&; \
+     $(PDFLATEX) $$f; \
  done
 
 install: $(PACKAGE).dtx $(PACKAGE).dvi
@@ -181,12 +218,41 @@
  rm -fr $(SRCDIR)
 
 dist: $(PACKAGE).de.pdf $(PACKAGE).en.pdf  $(PACKAGE).dtx  $(PACKAGE).ins \
-LIESMICH README
+LIESMICH.md README.md
  + rm -f THIS_IS_VERSION_*
  + $(VERSION_L) > THIS_IS_VERSION_$(VERSION_S)
  + tar cfvz  $(PACKAGE)-$(VERSION_S).tgz $^ THIS_IS_VERSION_*
- + rm getversion.log
 
+tds-zip:  $(PACKAGE_FILES)
+ + rm -f THIS_IS_VERSION_* *.zip; \
+ $(VERSION_L) | sed -e "s/??????????/$(VERSION_S)/" > THIS_IS_VERSION_$(VERSION_S); \
+ DOC_FILES="LIESMICH.md README.md THIS_IS_* $(PACKAGE).??.pdf"; \
+ MAKE_FILES="$(PACKAGE).m*"; \
+ SRC_FILES="$(PACKAGE).dtx $(PACKAGE).ins"; \
+ STY_FILES="struk*.sty"; \
+ TEST_FILES="./$(PACKAGE)-test*"; \
+ SUPPORT_FILES="./$(PACKAGE).el"; \
+ if [[ -d /tmp/texmf ]]; then \
+   rm -rf /tmp/texmf; \
+ fi; \
+ if [[ -f $(PACKAGE)-TDS.zip ]]; then \
+   rm $(PACKAGE)-TDS.zip; \
+ fi; \
+ mkdir -p /tmp/texmf/doc/latex/$(PACKAGE); \
+ mkdir -p /tmp/texmf/source/latex/$(PACKAGE); \
+ mkdir -p /tmp/texmf/tex/latex/$(PACKAGE); \
+ cp -a $${DOC_FILES} /tmp/texmf/doc/latex/$(PACKAGE); \
+ cp -a $${MAKE_FILES} /tmp/texmf/doc/latex/$(PACKAGE); \
+ cp -a $${SRC_FILES} /tmp/texmf/source/latex/$(PACKAGE); \
+ cp -a $${STY_FILES} /tmp/texmf/tex/latex/$(PACKAGE); \
+ cp -a $${TEST_FILES} /tmp/texmf/doc/latex/$(PACKAGE); \
+ cp -a $${SUPPORT_FILES} /tmp/texmf/doc/latex/$(PACKAGE); \
+ VERSION_SHORT="xxx"; \
+ pushd /tmp/texmf; \
+ zip -r /tmp/$(PACKAGE)-TDS.zip .; \
+ popd; \
+ mv /tmp/$(PACKAGE)-TDS.zip ./$(PACKAGE)-TDS-$(VERSION_S).zip
+
 clean:
  -rm -f *.log *.aux *.brf *.idx *.ilg *.ind
  -rm -f *.glg *.glo *.gls *.lof *.lot *.out *.toc *.tmp *~
@@ -193,8 +259,8 @@
  -rm *.mk *.makemake
 
 realclean:  clean
- -rm -f *.sty *.cls *.ps *.dvi *.pdf
- -rm -f *test* getversion.* Makefile
+ -rm -f *.sty *.cls *.pdf
+ -rm -f *-test-* Makefile
 
 clean-test:
  rm $(PACKAGE)-test-*.* # this $-sign is needed for font-locking in XEmacs only

Modified: trunk/Master/texmf-dist/source/latex/struktex/struktex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/struktex/struktex.dtx	2017-06-25 21:51:46 UTC (rev 44698)
+++ trunk/Master/texmf-dist/source/latex/struktex/struktex.dtx	2017-06-25 21:51:59 UTC (rev 44699)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1995 - 2012 Jobst Hoffmann, FH Aachen, Campus J"ulich
+% Copyright (C) 1995 - 2017 Jobst Hoffmann, FH Aachen, Campus J"ulich
 % <j.hoffmann_(at)_fh-aachen.de>
 % -------------------------------------------------------------------------------------------
 %
@@ -17,6 +17,10 @@
 %
 % \fi
 %
+% \changes{v2.2}{17/06/18}{rewrote LIESMICH.md and README.md}
+% \changes{v2.1a}{17/06/11}{made the versioning git aware}
+% \changes{v2.0}{17/06/01}{changed version control system to git}
+% \changes{v2.0}{17/06/01}{updated copyright}
 % \changes{v141}{12/04/10}{updated copyright}
 % \changes{v131}{10/09/21}{some more layout changes}
 % \changes{v130}{10/09/21}{some changes in the layout of the source,
@@ -30,16 +34,16 @@
 % \changes{v057}{10/01/21}{added some missing closing braces at the end of `ProvidesPackage}
 % \iffalse
 %<struktex|struktxf|struktxp|strukdoc>\NeedsTeXFormat{LaTeX2e}[1999/12/01]{%
-%<struktex|struktxf|struktxp|strukdoc>  \def\@svn@ $#1Date: #2-#3-#4 #5$$#6Revision: #7$ {%
+%<struktex|struktxf|struktxp|strukdoc>  \def\@git@ $#1Date: #2-#3-#4 #5$$#6Revision: #7$ {%
 %<struktex>  \ProvidesPackage{struktex}[#2/#3/#4 v#7 Nassi Shneiderman Charts (Jobst Hoffmann)]}
 %<struktxf>  \ProvidesPackage{struktxf}[#2/#3/#4 v#7 Fonts for Nassi Shneiderman Charts (Jobst Hoffmann)]}
 %<struktxp>  \ProvidesPackage{struktxp}[#2/#3/#4 v#7 Keywords for Nassi Shneiderman Charts (Jobst Hoffmann)]}
 %<strukdoc>  \ProvidesPackage{strukdoc}[#2/#3/#4 v#7 support for reading and writing files verbatim (Jobst Hoffmann)]}
-%<struktex|struktxf|struktxp|strukdoc>  \@svn@ $Date: 2012-04-10 21:57:12 +0200 (Di, 10 Apr 2012) $$Revision: 141 $ %
+%<struktex|struktxf|struktxp|strukdoc>  %% git revision information
 %<struktex|struktxf|struktxp|strukdoc>}
 % \fi
-% \CheckSum{2473}  ^^A set to 0 to inactivate the CheckSum
-% \def\docdate {2010/09/21} ^^A not style'able!!
+% \CheckSum{2532}  ^^A set to 0 to inactivate the CheckSum
+% \def\docdate {2017/06/02} ^^A not style'able!!
 %
 %    \iffalse meta-comment
 %            Alles bis zum n"achsten `\ fi' (ohne Leerzeichen) wird
@@ -47,7 +51,7 @@
 %            Kommentar einleitet, wenn diese Datei eingelesen wird.
 %
 % Stil-Option `struktex' zum Gebrauch mit LaTeX2e
-% Copyright (C) 1995-2012 Jobst Hoffmann, alle Rechte vorbehalten.
+% Copyright (C) 1995-2017 Jobst Hoffmann, alle Rechte vorbehalten.
 %
 %
 % Das Kopieren dieser Datei ist nur zul"assig, wenn
@@ -123,32 +127,32 @@
 % \changes{v-5.4a}{99/11/16}{\textsf{stuktxp.sty} "uberarbeitet zur
 % besseren Darstellung von Programmen}
 % \changes{v-5.3a}{98/11/27}{Die Form des Textes in Bedingungen ist nun an
-% beliebige Steigungen angepasst} 
+% beliebige Steigungen angepasst}
 % \changes{v-5.2b}{98/05/28}{Tippfehlerkorrektur: Umlaut "`ue"' durch
-% "`"u"' ersetzt} 
+% "`"u"' ersetzt}
 % \changes{v-5.2a}{97/12/03}{Umstellung der Dokumentation, dadurch Verzicht
 % auf eigene Treiberdatei m"oglich}
 % \changes{v-5.2a}{97/12/03}{kleinere Korrekturen}
 % \changes{v-5.1b}{97/11/02}{Umstellung der Dokumentation mittels Umgebung
-% \texttt{example}, `verbatiminput und verbatimwrite} 
+% \texttt{example}, `verbatiminput und verbatimwrite}
 % \changes{v-5.1a}{97/04/29}{kleinere stilistische "Anderungen nach W. Hanrath}
 % \changes{v-5.0}{97/04/28}{Dateinamen zwecks Kompatibilit"at auf
-% Kleinschreibung umgesetzt} 
+% Kleinschreibung umgesetzt}
 % \changes{v-5.0}{97/04/28}{kleinere textuelle "Anderungen, Fontauswahl
-% teilweise ge"andert} 
+% teilweise ge"andert}
 % \changes{v-5.0}{97/04/28}{Abh"angigkeiten der Dokumentation von
-% zus"atzlichen Paketen beseitigt} 
+% zus"atzlichen Paketen beseitigt}
 % \changes{v-4.5e}{97/04/25}{Verzicht auf Gro"s- und Kleinschreibung im
-% Namen von .sty-Dateien} 
+% Namen von .sty-Dateien}
 % \changes{v-4.5a}{96/03/14}{Umgebung \texttt{description} auf
-% \texttt{list}-Umgebung zur"uckgef"uhrt} 
+% \texttt{list}-Umgebung zur"uckgef"uhrt}
 % \changes{v-4.5a}{96/03/14}{Eigenes Paket zur Formatierung von
-% Programminhalten integriert} 
+% Programminhalten integriert}
 % \changes{v-4.1c}{95/07/24}{Dokumentation verbessert}
 % \changes{v-4.1b}{95/07/19}{H"ohe des Bedingungsrechteckes bei `ifthenelse
-% vorgebbar} 
+% vorgebbar}
 % \changes{v-4.1a}{95/07/17}{Geraden mit beliebiger Steigung durch `emline
-% m"oglich} 
+% m"oglich}
 % \changes{v-4.0a}{95/04/12}{Anpassung an LaTeX2e}
 % \changes{v-3.5a}{94/11/22}{Entwicklunglinien J. Dietel, J. Hoffmann vereinigt}
 % \changes{v-3.3a}{94/09/14}{Schnittstellenbeschreibung verallgemeinert}
@@ -178,7 +182,7 @@
 % \DoNotIndex{\mark, \month, \newpage, \nobreak, \noindent, \normalsize, \null}
 % \DoNotIndex{\number, \onecolumn, \or, \overfullrule}
 % \DoNotIndex{\pagebreak, \parbox, \penalty, \phantom}
-% \DoNotIndex{\raggedbottom, \raggedleft} 
+% \DoNotIndex{\raggedbottom, \raggedleft}
 % \DoNotIndex{\relax, \renewcommand, \reversemarginpar}
 % \DoNotIndex{\rightmargin, \rule, \setbox, \setcounter}
 % \DoNotIndex{\setlength, \settowidth, \strut, \svtnsfb}
@@ -295,13 +299,13 @@
 % \tableofcontents
 % }
 %
-% 
 %
+%
 % \changes{v074}{10/06/08}{little corrections concerning the license}
 % \section{\ifnum\language=\languageNGerman Lizenzvereinbarung\else
 % License\fi}
 %
-% This package is copyright \copyright{} 1995 -- 2012 by:
+% This package is copyright \copyright{} 1995 -- 2017 by:
 % \begin{quote}
 %      Jobst Hoffmann, c/o University of Applied Sciences Aachen \\
 %      Aaachen, Germany \\
@@ -310,7 +314,7 @@
 % This program can be redistributed and/or modified under the terms of the LaTeX
 % Project Public License, distributed from the CTAN archives as file
 % |macros/latex/base/lppl.txt|; either version 1 of the License, or (at
-% your option) any later version. 
+% your option) any later version.
 %
 %
 % \section{\ifnum\language=\languageNGerman Vorwort\else Preface\fi}
@@ -319,7 +323,7 @@
 % \changes{v100}{10/06/25}{added remark about Struktorizer}
 % \changes{v-8.0b}{04/07/14}{Hinweis auf \textsf{pict2e.sty}}
 % \changes{v-8.0b}{04/07/14}{Entwicklungsgeschichte korrigiert und
-% erweitert} 
+% erweitert}
 % \ifnum\language=\languageNGerman
 % Mit dem hier beschriebenen Makropaket ist es m"oglich,
 % Struktogramme mit \LaTeX\ zu zeichnen. Das Makropaket wird im folgenden
@@ -701,8 +705,9 @@
 % but with the "``"' (\foreign{accent}).
 % \fi
 %
+% \changes{v2.1b}{17/06/17}{better wording: leftright $\rightarrow$ outer}
+% \changes{v-8.0b}{04/07/14}{Umstellung der Sprachverwaltung auf babel}
 % \ifnum\language=\languageNGerman
-% \changes{v-8.0b}{04/07/14}{Umstellung der Sprachverwaltung auf babel}
 % Die n"achsten Anweisungen bilden den Treiber f"ur die hier vorliegende
 % Dokumentation.
 % \else
@@ -725,7 +730,7 @@
         \primarylanguage]{ltxdoc}
 
 \PassOptionsToPackage{obeyspaces}{url} % must be done before any package is
-                                % loaded 
+                                % loaded
 
 \usepackage{babel}              % for switching the documentation language
 \usepackage{strukdoc}           % the style-file for formatting this
@@ -736,7 +741,10 @@
                                 % curves or emlines2 (visible only under
                                 % ghostscript), leave out if not
                                 % available
-    verification]
+    verification,
+    outer, % <------------------- to set the position of the \ifthenelse
+                                % flags to the outer edges
+    ]
     {struktex}
 \GetFileInfo{struktex.sty}
 
@@ -789,6 +797,7 @@
 % \end{quote}
 % \fi
 %
+% \changes{v2.0c}{17/06/06}{added description of debug and leftright option}
 % \changes{v141}{12/04/10}{added description of default values}
 % \changes{v141}{12/04/10}{added description of language option}
 % \ifnum\language=\languageNGerman
@@ -797,7 +806,7 @@
 %   \item |english|, |ngerman| oder |german|:
 %
 %     Die jeweilige Option legt die Sprache für definierte Werte wie
-%     |\sTrue| fest, Standardwert ist |english|. 
+%     |\sTrue| fest, Standardwert ist |english|.
 %   \item |emlines|, |curves| oder |pict2e|:
 %
 %     Durch Angabe einer der drei Optionen ist es m"oglich, beliebige
@@ -828,6 +837,18 @@
 %     eines Struktogramms in der vom Benutzer vorgegebenen Gr"o"se
 %     ausgegeben, diese Markierung f"allt in der endg"ultigen Fassung
 %     weg. Der Standardwert ist |final|.
+%   \item |debug|:
+%
+%     Mit dem Setzen dieser Option werden Zeilen der Form
+%     \begin{quote}
+%         |===> dbg |\meta{Text}
+%     \end{quote}
+%      in die .log-Datei geschrieben.
+%   \item |outer|:
+%
+%     Das Setzen dieser Option f"uhrt dazu, die ja/nein Flaggen statt auf
+%     der Mitte der Grundlinie jeweils links bzw. rechts außen erscheinen
+%     zu lassen.
 % \end{enumerate}
 % Nach dem Laden der |.sty|-Datei stehen verschiedene Kommandos und Umgebungen
 % zur Verf"ugung, die das Zeichnen der Struktogramme erm"oglichen.%
@@ -837,7 +858,7 @@
 %   \item |english|, |ngerman| oder |german|:
 %
 %     This option defines the language of defined values as |\sTrue|,
-%     default: |english|. 
+%     default: |english|.
 %   \item |emlines|, |curves|, or |pict2e|:
 %
 %     If you set one of these options, any ascent can be drawn in the
@@ -860,6 +881,15 @@
 %     the draft mode the user given size of the chart is denoted by the
 %     four bullets, the final version leaves out these markers; the default
 %     value is |final|.
+%   \item |debug|:
+%
+%     Setting this option produces lines of the form %
+%     |===> dbg |\meta{text} in the .log-file.
+%   \item |outer|:
+%
+%     Setting this option changes the position of flags in the
+%     |ifthenelse|-triangles from the mid to the left and right of the
+%     baselines of the triangles.
 % \end{enumerate}
 % After loading the |.sty|-file there are different commands and environments,
 % which enable the draw of structured box charts.
@@ -968,7 +998,7 @@
 % \DescribeMacro{\pKey}
 % \DescribeMacro{\pComment}
 % \changes{v131}{10/09/21}{changed location of documentation of new use of
-% struktxp.sty} 
+% struktxp.sty}
 % \changes{v130}{10/09/21}{enhanced the description of using source code}
 % \ifnum\language=\languageNGerman
 % Struktogramme enthalten manchmal direkt zu programmierenden Code.
@@ -981,7 +1011,7 @@
 % ermöglicht, verbatim gesetzte Texte als Parameter an ein anderes Makro zu
 % übergeben. Wenn diese Texte ein Leerzeichen enthalten, das erhalten
 % bleiben soll, muss der Benutzer vor dem Laden von \textsf{url.sty},
-% typischerweise also vor der Anweisung 
+% typischerweise also vor der Anweisung
 % \begin{quote}
 %     |\usepackage{struktex}|
 % \end{quote}
@@ -1003,7 +1033,7 @@
 %     |\PassOptionsToPackage{obeyspaces}{url}|
 % \end{quote}
 % before \textsf{url.sty} is loaded, that is in most of the cases before
-% the command 
+% the command
 % \begin{quote}
 %     |\usepackage{struktex}|
 % \end{quote}
@@ -1342,7 +1372,7 @@
 % \fi
 %
 % \ifnum\language=\languageNGerman
-% Der \textit{Text} wird normalerweise linksbündig in den
+% Der \textit{Text} wird normalerweise linksb"undig in den
 % Kasten gesetzt; ist er daf"ur zu lang, so wird ein Paragraph (im
 % Blocksatz) gesetzt.
 % \else
@@ -1817,8 +1847,15 @@
 %\DescribeMacro{\whileend}
 %\DescribeMacro{\until}
 %\DescribeMacro{\untilend}
+%\DescribeMacro{\forallin}
+%\DescribeMacro{\forallinend}
 %\DescribeMacro{\forever}
 %\DescribeMacro{\foreverend}
+% \changes{v2.1}{17/06/06}{`forallin, `forallinend: added english documentation}
+% \changes{v2.0c}{17/06/06}{`forallin, `forallinend: added german documentation}
+% \changes{v2.0b}{17/06/02}{`forallin, `forallinend: renamed from
+% `foreach, `foreach to avoid conflict with tikz}
+% \changes{v2.0a}{17/06/02}{`foreach, `foreachend: renamed from `forall, `forallend}
 % \ifnum\language=\languageNGerman
 % Zum Darstellen von Schleifenkonstrukten stehen die drei Befehle
 % \cs{while}, \cs{until} und \cs{forever} zur Verf"ugung.
@@ -1840,7 +1877,17 @@
 % der Bedingungstext, der in diesen Rahmen geschrieben wird. Wird die
 % Breite nicht angegeben, richtet sich die Rahmendicke nach der H"ohe des
 % Textes. Der Text wird linksb"undig in den Rahmen geschrieben.
-% Ist der Text leer,  so wird ein d"unner Rahmen gezeichnet
+% Ist der Text leer,  so wird ein d"unner Rahmen gezeichnet.
+%
+% Ein Kontrollkonstrukt, das heute in vielen Programmiersprachen verf"ugbar
+% ist, ist eine Schleife, die abh"angig von der jeweiligen Sprache als
+% |forall|-, |for| \ldots{} |in| oder |foreach|-Schleife bezeichnet
+% wird. Diese Schleifenart kann prinzipiell als kopfgesteuerte Schleife
+% angesehen werden, manche ziehen aber eine Schreibweise vor, die von der
+% Endlosschleife abgeleitet wird. F"ur diesen Fall gibt es das Konstrukt
+% \begin{quote}
+%  \cs{forallin}\oarg{Breite}\marg{Text}\meta{Unterstruktogramm}\cs{forallin}
+% \end{quote}
 % \else
 % For representation of loop constructions there are three instructions
 % available:
@@ -1863,6 +1910,15 @@
 % is not given, the thickness of frame depends on the height of text. The
 % text will be written left adjusted inside the frame. If there is'nt given
 % any text, there will be a thin frame.
+%
+% A control structure which nowadays is provided by many programming
+% languages is a loop known as |forall|-, |for| \ldots |in|-, or
+% |foreach|-loop. This kind of loop can be seen as tail first loop but some
+% people prefer the form of the endless loop with included text. For this
+% case there is the control structure
+% \begin{quote}
+%     \cs{forallin}\oarg{width}\marg{text}\meta{structured subbox chart}\cs{forallin}
+% \end{quote}
 % \fi
 %
 % \ifnum\language=\languageNGerman
@@ -1880,17 +1936,19 @@
 % \fi
 %
 % \ifnum\language=\languageNGerman
+% \changes{v2.0}{17/06/01}{corrected typos}
 % Um Kompatiblit"at mit der Weiterentwicklung des \StrukTeXSty\ von J.~Dietel
 % zu erreichen, gibt es die Makros \cs{dfr} und \cs{dfrend} mit derselben
 % Bedeutung wie \cs{forever} und \cs{foreverend}.
 % \else
 % For compatibility with further development of the \StrukTeXSty\ of J.~Dietel
-% there are the macros \cs{dfr} and \cs{dfrend} with the same meaning as |forever|
-% and |foreverend|.
+% there are the macros \cs{dfr} and \cs{dfrend} with the same meaning as
+% \cs{forever} and \cs{foreverend}.
 % \fi
 %
 % \ifnum\language=\languageNGerman
-% Die folgenden Beispiele zeigen den Einsatz der \cs{while}- und \cs{until}-Makros,
+% Die beiden folgenden Beispiele zeigen den Einsatz der \cs{while}- und
+% \cs{until}-Makros sowie der \cs{forallin}-Makros,
 % \cs{forever} wird weiter unten gezeigt.
 % \begin{verbatimwrite}{struktex.tmp}
 % \begin{struktogramm}(95,40)
@@ -1906,7 +1964,7 @@
 %  \end{struktogramm}
 % \end{verbatimwrite}
 % \else
-% The following examples show use of \cs{while} and \cs{until} macros. \cs{forever}
+% The two following examples show use of \cs{while} and \cs{until} macros. \cs{forever}
 % will be shown later.
 % \begin{verbatimwrite}{struktex.tmp}
 % \begin{struktogramm}(95,40)
@@ -1922,6 +1980,7 @@
 %  \end{struktogramm}
 % \end{verbatimwrite}
 % \fi
+%
 % \begin{tExample}
 % \begin{quote}
 % \verbatiminput{struktex.tmp}
@@ -1937,44 +1996,81 @@
 % \end{tExample}
 %
 % \ifnum\language=\languageNGerman
+% \begin{verbatimwrite}{struktex.tmp}
+% \begin{struktogramm}(95, 25)
+%     \sub{berechne Liste \(L\) der ersten 100 Primzahlen}
+%     \forallin{\(\forall l\in L\)}
+%         \assign{gib \(l\) aus}
+%     \forallinend
+%  \end{struktogramm}
+% \end{verbatimwrite}
+% \else
+% \begin{verbatimwrite}{struktex.tmp}
+% \begin{struktogramm}(95, 25)
+%     \sub{compute the list \(L\) of the first 100 primes}
+%     \forallin{\(\forall l\in L\)}
+%         \assign{print \(l\)}
+%     \forallinend
+%  \end{struktogramm}
+% \end{verbatimwrite}
+% \fi
+%
+% \begin{tExample}
+% \begin{quote}
+% \verbatiminput{struktex.tmp}
+% \end{quote}
+% \ifnum\language=\languageNGerman
+% Diese Anweisungen f"uhren zu folgendem Struktogramm:
+% \else
+% These instructions lead to the following structured box chart:
+% \fi
+% \begin{quote}
+% \input{struktex.tmp}
+% \end{quote}
+% \end{tExample}
+%
+% \ifnum\language=\languageNGerman
 % Die \cs{exit}-Anweisung gibt nur im Zusammenhang mit einfachen oder mehrfachen
 % Verzweigungen Sinn, daher wird sie im Anschluss an die Diskussion der
-% Verzweigungen diskutiert.
+% Verzweigungen vorgestellt.
 % \else
-% The \cs{exit} instruction makes only sense in connection with simple or
-% multiple branches. Therefore it will be discussed after the discussion
+% The \cs{exit} instruction only makes sense in connection with simple or
+% multiple branches. Therefore it will be presented after the discussion
 % of branches.
 % \fi
 %
-% \DescribeMacro{\ifthenelse}
-% \DescribeMacro{\change}
-% \DescribeMacro{\ifend}
-% \ifnum\language=\languageNGerman
+% \DescribeMacro{\ifthenelse}%
+% \DescribeMacro{\change}%
+% \DescribeMacro{\ifend}%
+% \ifnum\language=\languageNGerman%
 % Zur Darstellung von Alternativen stellt \StrukTeX\ die Sinnbilder f"ur
 % einen If-Then-Else-Block und f"ur mehrfache Alternativen eine
-% Case-Konstruktion zur Verf"ugung. Da in der Picture-Umgebung von \LaTeX\
-% nur Linien mit bestimmten Steigungen gezeichnet werden k"onnen, muss der
-% Benutzer bei beiden Befehlen selbst den Winkel bestimmen, mit dem
-% die notwendigen schr"agen Linien gezeichnet werden sollen (hier ist also
-% etwas mehr \glq Handarbeit\grq\ n"otig).
-% \else
-% For representation of alternatives \StrukTeX\ provides mapping conventions
-% for an If-Then-Else-block and a Case-construction for multiple alternatives.
-% Since in the picture environment of \LaTeX\ only lines of certain gradients
-% can be drawn, in both cases the user has to specify himself the angle, with
-% which the necessary slanted lines shall be drawn. (Here is a little bit more
-% \grq handy work\grq\ required.)
-% \fi
+% Case-Konstruktion zur Verf"ugung. Da in der klassischen
+% |picture|-Umgebung von \LaTeX\ nur Linien mit bestimmten Steigungen
+% gezeichnet werden k"onnen, muss der Benutzer bei beiden Befehlen selbst
+% den Winkel bestimmen, mit dem die notwendigen schr"agen Linien gezeichnet
+% werden sollen (hier ist also etwas mehr \glq Handarbeit\grq\ n"otig).%
+% \else%
+% For the representation of alternatives \StrukTeX\ provides mapping
+% conventions for an If-Then-Else-block and a Case-construction for
+% multiple alternatives.  Since in the traditional |picture| environment of
+% \LaTeX\ only lines of certain gradients can be drawn, in both cases the
+% user has to specify himself the angle, with which the necessary slanted
+% lines shall be drawn. (Here is a little bit more \grq handy work\grq\
+% required.)%
+% \fi%
 %
+% \changes{v2.0}{17/06/01}{mention pict2e.sty}
 % \changes{v-6.0}{00/11/24}{Einsatz von curves.sty zum Zeichnen beliebiger
-% Steigungen implementiert} 
+% Steigungen implementiert}
 % \ifnum\language=\languageNGerman
-% Wenn hingegen der der \textsf{curves.sty} bzw. der \textsf{emlines2.sty}
-% eingesetzt wird, ist die Darstellung von Geraden mit beliebiger Steigung
-% m"oglich.
+% Wenn hingegen der \textsf{curves.sty}, der \textsf{emlines2.sty} oder der
+% \textsf{pict2e.sty} eingesetzt wird, ist die Darstellung von Geraden mit
+% beliebiger Steigung m"oglich.
 % \else
-% If however the \textsf{curves.sty} or the \textsf{emlines2.sty} is used,
-% then the representation of lines with any gradient can be drawn.
+% If however the \textsf{curves.sty}, the \textsf{emlines2.sty} or the
+% \textsf{pict2e.sty} is used, then the representation of lines with any
+% gradient can be drawn.
 % \fi
 %
 % \ifnum\language=\languageNGerman
@@ -3628,6 +3724,9 @@
 %   of the \StrukTeXSty
 % \fi}
 % \label{sec:Makefile}
+% \changes{v2.1b}{17/06/17}{added tds-zip as new target}
+% \changes{v2.1b}{17/06/17}{changed basic formatting engine to pdflatex}
+% \changes{v2.1a}{17/06/11}{Makefile now reflects git git aware}
 % \changes{v101}{10/06/25}{changed Makefile according to subversion
 % revision numbers}
 % \changes{v061}{10/05/31}{corrected some more typos}
@@ -3675,7 +3774,7 @@
 #          - clean-example
 #
 # Author:  Jobst Hoffmann, Fachhochschule Aachen, Standort Juelich
-# Date:    2006/08/23
+# Date:    2017/06/06
 #-----------------------------------------------------------------------
 
 # The texmf-directory, where to install new stuff (see texmf.cnf)
@@ -3719,53 +3818,100 @@
 # It's not really a good solution, but it's a working solution.
 TEXINPUTS := $(PWD):$(TEXINPUTS)
 
-# To generate the version number of the distribution from the source
-VERSION_L := latex getversion | grep '^VERSION'
-VERSION_S := `latex getversion | grep '^VERSION' | \
-              sed 's+^VERSION \\(.*\\) of .*+\\1+'`
 ########################################################################
 #   End of customization section
 ########################################################################
 
-DVIPS = dvips
 LATEX = latex
 PDFLATEX = pdflatex
+TEX = TEX
 
-# postscript viewer
-GV = gv
-
 COMMON_OPTIONS = # \OnlyDescription\CodelineNumbered\PageIndex
 HISTORY_OPTIONS = \RecordChanges
 DEVELOPER_OPTIONS = \EnableCrossrefs\RecordChanges\AlsoImplementation\CodelineIndex
 
+# tarring options
+EXgit = --exclude .git --exclude .gitignore --exclude auto --exclude tests \
+ --exclude *.tgz --exclude *.bib
+
 # The name of the game
 PACKAGE = struktex
 
+DISTRIBUTION_FILES = ../$(PACKAGE)/$(PACKAGE).de.pdf \
+../$(PACKAGE)/$(PACKAGE).en.pdf \
+ ../$(PACKAGE)/$(PACKAGE).dtx \
+ ../$(PACKAGE)/$(PACKAGE).ins \
+ ../$(PACKAGE)/LIESMICH.md \
+ ../$(PACKAGE)/README.md
+PACKAGE_FILES_A = $(subst ../$(PACKAGE)/,,$(DISTRIBUTION_FILES))
+PACKAGE_FILES_B = $(subst $(PACKAGE).dtx ,,$(PACKAGE_FILES_A))
+PACKAGE_FILES_C = $(subst $(PACKAGE).ins ,,$(PACKAGE_FILES_B))
+PACKAGE_FILES_D = $(subst LIESMICH.md,,$(PACKAGE_FILES_C))
+PACKAGE_FILES = $(subst README.md,,$(PACKAGE_FILES_D))
+
+# To generate the version number of the distribution from the source
+VERSION_L := git describe --long | xargs git --no-pager show -s \
+         --date=short --format=format:"$(PACKAGE) version ???? of %ad%n" |\
+         sed -e "s/????/`git describe --long`/"
+VERSION_S := `git describe --long | \
+             sed 's+-g.*++'`
+
+## Main Targets
+
 # strip off the comments from the package
-$(PACKAGE).sty $(PACKAGE)-test-*.tex: $(PACKAGE).ins $(PACKAGE).dtx
- +$(LATEX) $<; \
-  sh $(PACKAGE).makemake
+$(PACKAGE).sty $(PACKAGE)-test-*.tex: $(PACKAGE).ins $(PACKAGE).dtx $(PACKAGE).sed
+ +$(TEX) $<; \
+  source $(PACKAGE).makemake; \
+  make revision_no; \
+  source $(PACKAGE).sed  # set version number
 
 all-de: $(PACKAGE).de.pdf
 
 all-en: $(PACKAGE).en.pdf
 
+# prepare the file with git revision information
+.PHONY: revision_no
+revision_no: $(PACKAGE).sed
+
+$(PACKAGE).sed: $(PACKAGE).dtx
+ printf "%b\n" "set_git_info() {" \
+    > $(PACKAGE).sed; \
+ printf "%b\n" "sed -i -e 's/^[ \\\\t]*%% git revision information$$/\\"  \
+    >> $(PACKAGE).sed; \
+ git describe --long | \
+    xargs git --no-pager show -s --format=format:\
+ "    \\\\@git@ \$$Date: %ci $$%%\%n" >> $(PACKAGE).sed; \
+ git describe --long | cut -c 2- |\
+    sed -e "s/^/      \$$Revision: /" -e "s/$$/ $$\\\\/" \
+    >> $(PACKAGE).sed; \
+ git describe --long | \
+    xargs git --no-pager show -s --format=format:"    %%%% \$$Author: %an $$\\%n" \
+    >> $(PACKAGE).sed; \
+ printf "%b\n" "/' \$$1" \
+    >> $(PACKAGE).sed; \
+ printf "%b\n" "};" \
+    >> $(PACKAGE).sed; \
+ printf "%b\n" "for f in  \\\\" \
+    >> $(PACKAGE).sed; \
+ printf "%b\n" "$(PACKAGE).sty \\\\" \
+    >> $(PACKAGE).sed; \
+ printf "%b\n" "struktxf.sty \\\\" \
+    >> $(PACKAGE).sed; \
+ printf "%b\n" "struktxp.sty \\\\" \
+    >> $(PACKAGE).sed; \
+ printf "%b\n" "strukdoc.sty \\\\" \
+    >> $(PACKAGE).sed; \
+ printf "%b\n" "; do \\\\" \
+    >> $(PACKAGE).sed; \
+ printf "%b\n" "  set_git_info \$$f; done" \
+    >> $(PACKAGE).sed; \
+
 # generate the documentation
-$(PACKAGE).de.dvi: $(PACKAGE).dtx $(PACKAGE).sty
- +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\input{$<}"
- +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\input{$<}"
- +mv $(<:.dtx=.dvi) $(<:.dtx=.de.dvi)
-
-$(PACKAGE).de.pdf: $(PACKAGE).dtx $(PACKAGE).sty
+$(PACKAGE).de.pdf: $(PACKAGE).dtx $(PACKAGE).sty struktex.sed
  +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\input{$<}"
  +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\input{$<}"
  +mv $(<:.dtx=.pdf) $(<:.dtx=.de.pdf)
 
-$(PACKAGE).en.dvi: $(PACKAGE).dtx $(PACKAGE).sty
- +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\def\primarylanguage{english}\input{$<}"
- +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\def\primarylanguage{english}\input{$<}"
- +mv $(<:.dtx=.dvi) $(<:.dtx=.en.dvi)
-
 $(PACKAGE).en.pdf: $(PACKAGE).dtx $(PACKAGE).sty
  +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\def\primarylanguage{english}\input{$<}"
  +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\def\primarylanguage{english}\input{$<}"
@@ -3773,37 +3919,29 @@
 
 # generate the documentation with revision history (only german)
 history: $(PACKAGE).dtx $(PACKAGE).sty
- +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(HISTORY_OPTIONS)}\input{$<}"
- +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(HISTORY_OPTIONS)}\input{$<}"
+ +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(HISTORY_OPTIONS)}\input{$<}"
+ +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(HISTORY_OPTIONS)}\input{$<}"
  +makeindex -s gind.ist                 $(PACKAGE).idx
  +makeindex -s gglo.ist -o $(PACKAGE).gls -t $(PACKAGE).glg $(PACKAGE).glo
- +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(HISTORY_OPTIONS)}\input{$<}"
+ +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(HISTORY_OPTIONS)}\input{$<}"
 
 # generate the documentation for the developer (revision history always
 # in german)
 develop-de: $(PACKAGE).dtx $(PACKAGE).sty
- +$(LATEX) "\AtBeginDocument{$(HISTORY_OPTIONS)$(DEVELOPER_OPTIONS)}\input{$<}"
- +$(LATEX) "\AtBeginDocument{$(HISTORY_OPTIONS)$(DEVELOPER_OPTIONS)}\input{$<}"
+ +$(PDFLATEX) "\AtBeginDocument{$(HISTORY_OPTIONS)$(DEVELOPER_OPTIONS)}\input{$<}"
+ +$(PDFLATEX) "\AtBeginDocument{$(HISTORY_OPTIONS)$(DEVELOPER_OPTIONS)}\input{$<}"
  +makeindex -s gind.ist                 $(PACKAGE).idx
  +makeindex -s gglo.ist -o $(PACKAGE).gls -t $(PACKAGE).glg $(PACKAGE).glo
- +$(LATEX) "\AtBeginDocument{$(HISTORY_OPTIONS)$(DEVELOPER_OPTIONS)}\input{$<}"
-ifneq (,$(findstring pdf,$(LATEX)))
+ +$(PDFLATEX) "\AtBeginDocument{$(HISTORY_OPTIONS)$(DEVELOPER_OPTIONS)}\input{$<}"
  +mv $(<:.dtx=.pdf) $(<:.dtx=.de.pdf)
-else
- +mv $(<:.dtx=.dvi) $(<:.dtx=.de.dvi)
-endif
 
 develop-en: $(PACKAGE).dtx $(PACKAGE).sty
- +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(DEVELOPER_OPTIONS)}\def\primarylanguage{english}\input{$<}"
- +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(DEVELOPER_OPTIONS)}\def\primarylanguage{english}\input{$<}"
+ +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(DEVELOPER_OPTIONS)}\def\primarylanguage{english}\input{$<}"
+ +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(DEVELOPER_OPTIONS)}\def\primarylanguage{english}\input{$<}"
  +makeindex -s gind.ist                 $(PACKAGE).idx
  +makeindex -s gglo.ist -o $(PACKAGE).gls -t $(PACKAGE).glg $(PACKAGE).glo
- +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(DEVELOPER_OPTIONS)}\def\primarylanguage{english}\input{$<}"
-ifneq (,$(findstring pdf,$(LATEX)))
+ +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(DEVELOPER_OPTIONS)}\def\primarylanguage{english}\input{$<}"
  +mv $(<:.dtx=.pdf) $(<:.dtx=.en.pdf)
-else
- +mv $(<:.dtx=.dvi) $(<:.dtx=.en.dvi)
-endif
 
 # format the example/test files
 test:
@@ -3810,9 +3948,7 @@
  for i in `seq 1 3`; do \
      f=$(PACKAGE)-test-$$i; \
      echo file: $$f; \
-     $(LATEX) $$f; \
-     $(DVIPS) -o $$f.ps $$f.dvi; \
-     $(GV) $$f.ps \&; \
+     $(PDFLATEX) $$f; \
  done
 
 install: $(PACKAGE).dtx $(PACKAGE).dvi
@@ -3834,12 +3970,42 @@
  rm -fr $(SRCDIR)
 
 dist: $(PACKAGE).de.pdf $(PACKAGE).en.pdf  $(PACKAGE).dtx  $(PACKAGE).ins \
-LIESMICH README
+LIESMICH.md README.md
  + rm -f THIS_IS_VERSION_*
  + $(VERSION_L) > THIS_IS_VERSION_$(VERSION_S)
  + tar cfvz  $(PACKAGE)-$(VERSION_S).tgz $^ THIS_IS_VERSION_*
- + rm getversion.log
 
+tds-zip:  $(PACKAGE_FILES)
+ + rm -f THIS_IS_VERSION_* *.zip; \
+ $(VERSION_L) | sed -e "s/??????????/$(VERSION_S)/" > THIS_IS_VERSION_$(VERSION_S); \
+ DOC_FILES="LIESMICH.md README.md THIS_IS_* $(PACKAGE).??.pdf"; \
+ MAKE_FILES="$(PACKAGE).m*"; \
+ SRC_FILES="$(PACKAGE).dtx $(PACKAGE).ins"; \
+ STY_FILES="struk*.sty"; \
+ TEST_FILES="./$(PACKAGE)-test*"; \
+ SUPPORT_FILES="./$(PACKAGE).el"; \
+ if [[ -d /tmp/texmf ]]; then \
+   rm -rf /tmp/texmf; \
+ fi; \
+ if [[ -f $(PACKAGE)-TDS.zip ]]; then \
+   rm $(PACKAGE)-TDS.zip; \
+ fi; \
+ mkdir -p /tmp/texmf/doc/latex/$(PACKAGE); \
+ mkdir -p /tmp/texmf/source/latex/$(PACKAGE); \
+ mkdir -p /tmp/texmf/tex/latex/$(PACKAGE); \
+ cp -a $${DOC_FILES} /tmp/texmf/doc/latex/$(PACKAGE); \
+ cp -a $${MAKE_FILES} /tmp/texmf/doc/latex/$(PACKAGE); \
+ cp -a $${SRC_FILES} /tmp/texmf/source/latex/$(PACKAGE); \
+ cp -a $${STY_FILES} /tmp/texmf/tex/latex/$(PACKAGE); \
+ cp -a $${TEST_FILES} /tmp/texmf/doc/latex/$(PACKAGE); \
+ cp -a $${SUPPORT_FILES} /tmp/texmf/doc/latex/$(PACKAGE); \
+ VERSION_SHORT="xxx"; \
+ pushd /tmp/texmf; \
+ zip -r /tmp/$(PACKAGE)-TDS.zip .; \
+ popd; \
+ mv /tmp/$(PACKAGE)-TDS.zip ./$(PACKAGE)-TDS-$(VERSION_S).zip
+
+
 clean:
  -rm -f *.log *.aux *.brf *.idx *.ilg *.ind
  -rm -f *.glg *.glo *.gls *.lof *.lot *.out *.toc *.tmp *~
@@ -3846,8 +4012,8 @@
  -rm *.mk *.makemake
 
 realclean:  clean
- -rm -f *.sty *.cls *.ps *.dvi *.pdf
- -rm -f *test* getversion.* Makefile
+ -rm -f *.sty *.cls *.pdf
+ -rm -f *-test-* Makefile
 
 clean-test:
  rm $(PACKAGE)-test-*.* # this $-sign is needed for font-locking in XEmacs only
@@ -3876,23 +4042,6 @@
 sed -e "`echo \"s/^ /@/g\" | tr '@' '\011'`" struktex.mk > Makefile
 %</setup>
 %    \end{macrocode}
-% \ifnum\language=\languageNGerman
-% Die folgende Datei dient allein dazu, die Version des Paketes zu
-% ermitteln.
-% \else
-% The following file only serves to get the version of the package.
-% \fi
-%    \begin{macrocode}
-%<*getversion>
-\documentclass{ltxdoc}
-\nofiles
-\usepackage{struktex}
-\GetFileInfo{struktex.sty}
-\typeout{VERSION \fileversion\space of \filedate}
-\begin{document}
-\end{document}
-%</getversion>
-%    \end{macrocode}
 %
 %
 % \changes{v055}{10/01/21}{added "declaration" to LaTeX-item-list again
@@ -3945,11 +4094,11 @@
 %<*auctex>
 ;;; struktex.el --- AUCTeX style for `struktex.sty'
 
-;; Copyright (C) 2006 Free Software Foundation, Inc.
+;; Copyright (C) 2006 - 2017 Free Software Foundation, Inc.
 
 ;; Author: J. Hoffmann <j.hoffmann_(at)_fh-aachen.de>
 ;; Maintainer: j.hoffmann_(at)_fh-aachen.de
-;; Created: 2006/01/17
+;; Created: 2017/06/06
 ;; Keywords: tex
 
 ;;; Commentary:
@@ -3956,11 +4105,12 @@
 ;;  This file adds support for `struktex.sty'
 
 ;;; Code:
+
 (TeX-add-style-hook
  "struktex"
  (lambda ()
-   ;; Add declaration to the list of environments which have an optional
-   ;; argument for each item.
+   ;; Add declaration to the list of environments which have
+   ;; an optional argument for each item.
    (add-to-list 'LaTeX-item-list
                 '("declaration" . LaTeX-item-argument))
    (LaTeX-add-environments
@@ -3981,6 +4131,8 @@
     '("exit" [ "Height" ] "What" )
     '("forever" TeX-mac-forever)
     "foreverend"
+    '("forallin" TeX-mac-forallin)
+    "forallin"
     '("ifthenelse" TeX-mac-ifthenelse)
     "change"
     "ifend"
@@ -4009,7 +4161,8 @@
    ))
 
 (defun LaTeX-env-struktogramm (environment)
-  "Insert ENVIRONMENT with width, height specifications and optional title."
+  "Insert ENVIRONMENT with width, height specifications and
+optional title."
   (let ((width (read-string "Width: "))
         (height (read-string "Height: "))
         (title (read-string "Title (optional): ")))
@@ -4023,13 +4176,14 @@
   "Insert ENVIRONMENT with an optional title."
   (let ((title (read-string "Title (optional): ")))
     (LaTeX-insert-environment environment
-                               (if (not (zerop (length title)))
-                                   (format "[%s]" title)))))
+                              (if (not (zerop (length title)))
+                                  (format "[%s]" title)))))
 
 (defun TeX-mac-case (macro)
-  "Insert \\case with all arguments, the needed \\switch(es) and the final \\caseend.
-These are optional height and the required arguments slope, number of cases,
-condition, and the texts for the different cases"
+  "Insert \\case with all arguments, the needed \\switch(es) and
+the final \\caseend. These are optional height and the required
+arguments slope, number of cases, condition, and the texts for
+the different cases"
   (let ((height (read-string "Height (optional): "))
         (slope (read-string "Slope: "))
         (number (read-string "Number of cases: "))
@@ -4049,11 +4203,25 @@
       (setq prompt (format "Case no. %d: " (+ 1 count)))
       (insert (format "\\switch{%s}" (read-string prompt)))
       (setq count (1+ count)))
-      (end-of-line)
-      (newline-and-indent)
-      (newline-and-indent)
-      (insert "\\caseend")))
+    (end-of-line)
+    (newline-and-indent)
+    (newline-and-indent)
+    (insert "\\caseend")))
 
+(defun TeX-mac-forallin (macro)
+  "Insert \\forallin-block with all arguments.
+This is the optional height and the description of the loop"
+  (let ((height (read-string "Height (optional): "))
+        (loop-description (read-string "Description of loop: ")))
+    (insert (concat (if (not (zerop (length height)))
+                        (format "[%s]" height))
+                    (format "{%s}"
+                            loop-description)))
+    (end-of-line)
+    (newline-and-indent)
+    (newline-and-indent)
+    (insert "\\forallinend")))
+
 (defun TeX-mac-forever (macro)
   "Insert \\forever-block with all arguments.
 This is only the optional height"
@@ -4067,8 +4235,9 @@
 
 (defun TeX-mac-ifthenelse (macro)
   "Insert \\ifthenelse with all arguments.
-These are optional height and the required arguments left slope, right slope,
-condition, and the possible values of the condition"
+These are optional height and the required arguments
+left slope, right slope, condition, and the possible
+values of the condition"
   (let ((height (read-string "Height (optional): "))
         (lslope (read-string "Left slope: "))
         (rslope (read-string "Right slope: "))
@@ -4078,7 +4247,8 @@
     (insert (concat (if (not (zerop (length height)))
                         (format "[%s]" height))
                     (format "{%s}{%s}{%s}{%s}{%s}"
-                            lslope rslope condition conditionvl conditionvr)))
+                            lslope rslope condition conditionvl
+                            conditionvr)))
     (end-of-line)
     (newline-and-indent)
     (newline-and-indent)
@@ -4089,9 +4259,10 @@
     (insert "\\ifend")))
 
 (defun TeX-mac-inparallel (macro)
-  "Insert \\inparallel with all arguments, the needed \\task(es) and the final \\inparallelend.
-These are optional height and the required arguments number of tasks
-and the descriptions for the parallel tasks"
+  "Insert \\inparallel with all arguments, the needed \\task(s)
+and the final \\inparallelend. These are optional height and the
+required arguments number of tasks and the descriptions for the
+parallel tasks"
   (let ((height (read-string "Height (optional): "))
         (number (read-string "Number of parallel tasks: "))
         (text (read-string "Task no. 1: "))
@@ -4108,10 +4279,10 @@
       (setq prompt (format "Task no. %d: " (+ 1 count)))
       (insert (format "\\task{%s}" (read-string prompt)))
       (setq count (1+ count)))
-      (end-of-line)
-      (newline-and-indent)
-      (newline-and-indent)
-      (insert "\\inparallelend")))
+    (end-of-line)
+    (newline-and-indent)
+    (newline-and-indent)
+    (insert "\\inparallelend")))
 
 (defun TeX-mac-until (macro)
   "Insert \\until with all arguments.
@@ -4141,7 +4312,7 @@
 
 (defvar LaTeX-struktex-package-options '("curves" "draft" "emlines" "final"
                                          "pict2e" "anygradient" "verification"
-                                         "nofiller")
+                                         "nofiller" "debug" "outer")
   "Package options for the struktex package.")
 
 ;;; struktex.el ends here.
@@ -4279,7 +4450,7 @@
 % version these macros are eliminated by the command:%
 % \fi%
 % \begin{verbatim}
-%sed -e "/dbg/d" struktex.dtx > struktex.dtx.dbg 
+%sed -e "/dbg/d" struktex.dtx > struktex.dtx.dbg
 % \end{verbatim}
 % \changes{v061}{10/05/31}{added some debugging macros}
 %    \begin{macrocode}
@@ -4362,6 +4533,7 @@
   \def\pTruename at nss{WAHR}%
   \def\pFalsename at nss{FALSCH}%
 }
+%    \end{macrocode}
 %
 % \changes{v-7.0a}{04/01/05}{Option \texttt{verification} eingef"uhrt}
 % \ifnum\language=\languageNGerman
@@ -4432,13 +4604,33 @@
 }
 %    \end{macrocode}
 %
-% \ifnum\language=\languageNGerman%
+%    \begin{macrocode}
+\newboolean{debug}
+\DeclareOption{debug}%
+{%
+  \setboolean{debug}{true}
+}
+\DeclareOption{nodebug}%
+{%
+  \setboolean{debug}{false}
+}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\newboolean{outer}
+\DeclareOption{outer}%
+{%
+  \setboolean{outer}{true}
+}
+%    \end{macrocode}
+%
+%% \ifnum\language=\languageNGerman%
 % Nun werden andere Pakete geladen und die Optionen verarbeitet.%
 % \else%
 % Now load additional packages and process the options.%
 % \fi
 % \changes{v141}{12/04/10}{added `ExecuteOptions call for settings default
-% values} 
+% values}
 % \changes{v104}{10/08/15}{corrected `ProcessOptions call}
 %    \begin{macrocode}
 \ExecuteOptions{pict2e,english,final}
@@ -4450,6 +4642,14 @@
 \else\ifpictIIe
     \RequirePackage{pict2e}
 \fi\fi\fi
+\ifthenelse{\boolean{debug}}{
+  \typeout{debug active}}{
+  \typeout{debug inactive}
+  \renewcommand{\dbgString at nss}[1]{}
+  \renewcommand{\dbgCount at nss}[2][]{}
+  \renewcommand{\dbgCoord at nss}[3][]{}
+  \renewcommand{\dbgMark at nss}[3][]{}
+}
 %    \end{macrocode}
 %
 % \begin{macro}{\StrukTeX}
@@ -5621,6 +5821,7 @@
   \else
     \setbox\TextBox at nss=\hbox to \tempxx at nss\unitlength{#1\hss}%
   \fi%
+  \dbgString at nss{Ende \string\set at nss}
 }
 %    \end{macrocode}
 % \end{macro}
@@ -5630,7 +5831,7 @@
 % \changes{v-7.0a}{04/01/04}{umbenannt von `bl at ck}
 % \ifnum\language=\languageNGerman
 % |\block at nss| setzt die Box |\TextBox at nss| entsprechend dem zweiten Parameter. Ist dieser
-% 1, wird eine Box mit Rahmen gesetzt, ist dieser 0, wird eine Box ohne Rahmen
+% 2, wird ..., für den Wert 1 wird eine Box mit Rahmen gesetzt, ist dieser 0, wird eine Box ohne Rahmen
 % gesetzt. Bei allen anderen Werten wird nur die Gr"o"se des Struktogramms,
 % gegeben durch |\y at nss|, vergr"o"sert. der erste Parameter |#1| gibt die
 % (optionale) H"ohe des Kastens an.
@@ -5669,7 +5870,7 @@
   \dbgCount at nss[skaliert]{\TextBoxHt at nss}
 %    \end{macrocode}
 % \ifnum\language=\languageNGerman
-% Wegen der Orientierung Koordinatensystems wird der Ursprung des zu
+% Wegen der Orientierung des Koordinatensystems wird der Ursprung des zu
 % zeichnenden Objektes um \cs{ydepth at nss} nach unten verschoben, danach
 % wird das Objekt mit der H"ohe \cs{ydepth at nss} gezeichnet.
 % \else
@@ -5840,7 +6041,7 @@
 %    \begin{macrocode}
 \def\assign{\let\next=\@assign\getoption}%
 \def\@assign#1{%
-  \dbgString at nss{Beginn \string\@assign} 
+  \dbgString at nss{Beginn \string\@assign}
   \dbgCoord at nss[Ursprung]{\x at nss}{\y at nss}
   \dbgCount at nss[Breite]{\xsize at nss}
 %    \end{macrocode}
@@ -5848,7 +6049,7 @@
 % Das Setzen einer Zuweisung enth"alt Schritte, die immer wieder
 % auftreten. Deshalb werden diese Schritte an dieser Stelle genauer
 % beschrieben.
-% 
+%
 % Der aktuelle Kasten wird mit einer Breite von \cs{xsize at nss} gesetzt, und
 % der Text soll mit einer vern"unftigen Breite dahinein gesetzt werden. Nach
 % Augenschein sehen R"ander von \(\frac{1}{12}\) der Gesamtbreite gut aus, somit
@@ -5882,11 +6083,11 @@
 % \ifnum\language=\languageNGerman
 % und als letztes wird der Kasten mit dem vorbereiteten Text gesetzt:
 % \else
-% and at last the box with the previous prepared text gets set: 
+% and at last the box with the previous prepared text gets set:
 % \fi
 %    \begin{macrocode}
   \block at nss{\tempy at nss}{1}%
-  \dbgString at nss{Ende \string\@assign} 
+  \dbgString at nss{Ende \string\@assign}
   \dbgCoord at nss[Ursprung]{\x at nss}{\y at nss}
 }
 %    \end{macrocode}
@@ -6296,9 +6497,17 @@
   \ifodd\xx at nss\advance\tempxx at nss by 1\fi%
   \divide\xx at nss by 2\advance\tempxx at nss by \xx at nss%
   \advance\tempx at nss by \xx at nss%
-  \put(\x at nss,\y at nss){\makebox(\tempx at nss,\tempyy at nss){#4}}%
+  \ifouter%
+  \put(\x at nss,\y at nss){\makebox(\tempx at nss,\tempyy at nss)[l]{\hspace{1em}#4}}%
+  \else%\outer
+    \put(\x at nss,\y at nss){\makebox(\tempx at nss,\tempyy at nss){#4}}%
+  \fi %\outer
   \xx at nss=\x at nss\advance\xx at nss by \tempx at nss%
-  \put(\xx at nss,\y at nss){\makebox(\tempxx at nss,\tempyy at nss){#5}}%
+  \ifouter%
+    \put(\xx at nss,\y at nss){\makebox(\tempxx at nss,\tempyy at nss)[r]{#5\hspace{1em}}}%
+  \else%\outer
+    \put(\xx at nss,\y at nss){\makebox(\tempxx at nss,\tempyy at nss){#5}}%
+  \fi %\outer
   \str at kt{\x at nss}{\y at nss}{\tempx at nss}%
   \dbgString at nss{Ende \string\@ifthenelse at nss}
 }
@@ -6359,10 +6568,75 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}{\forloop at nss}
+% \changes{v2.0a}{17/06/02}{introduced a generic name}
+% \changes{v2.0}{17/06/02}{`forall: introduced loop over a set}
+% \begin{macro}{\forloopend at nss}
+% \changes{v2.0a}{17/06/02}{introduced a generic name}
+% \changes{v2.0}{17/06/02}{`forallend: introduced loop over a set}
+% \ifnum\language=\languageNGerman
+% Beginn und Ende einer Schleife, die über alle Elemente einer Menge
+% läuft. Die Beschreibung der Schleife wird als Parameter übergeben.
+% \else
+% Begin and end of a loop which traverses all elements of a set. The
+% description of the loop is passed as parameter.
+% \fi
+%    \begin{macrocode}
+\def\forloop at nss{\let\next=\@forloop at nss\getoption}
+\def\@forloop at nss#1{
+  \def\argi{#1}
+  \dbgString at nss{Beginn \string\@forloop}
+  \tempx at nss=\xsize at nss
+  \divide\tempx at nss by 6
+  \ifx\argi\empty%
+    \set at nss{\mbox{\rule{0mm}{2ex}}}{\tempx at nss}%
+  \else%
+    \set at nss{#1\hskip\xsize at nss\unitlength}{\tempx at nss}%
+  \fi%
+  \tempy at nss=\number\param at nss000
+  \block at nss{\tempy at nss}{0}
+  \advance\x at nss by \ydepth at nss
+  \tempxx at nss=\xsize at nss
+  \advance\tempxx at nss by -\ydepth at nss
+  \tempy at nss=\ydepth at nss
+  \str at kt{\x at nss}{\y at nss}{\tempxx at nss}
+}
+\def\forloopend at nss{
+  \endstr at kt
+  \advance\x at nss by-\tempy at nss
+  \advance\ydepth at nss by -\tempy at nss
+  \tempyy at nss=\ydepth at nss
+  \ydepth at nss=-\ydepth at nss
+  \advance\ydepth at nss by \y at nss
+  \advance\ydepth at nss by \tempy at nss
+  \y at nss=\tempyy at nss
+  \put(\x at nss,\y at nss){\framebox(\xsize at nss,\ydepth at nss){}}
+  \dbgString at nss{Ende \string\@forloop at nss}
+}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\forallin}
+% \changes{v2.0b}{17/06/02}{renamed from `foreach: conflict with tikz}
+% \changes{v2.0a}{17/06/02}{mapped the generic name onto the name for the user's interface}
+% \begin{macro}{\forallinend}
+% \changes{v2.0b}{17/06/02}{renamed from `foreach: conflict with tikz}
+% \changes{v2.0a}{17/06/02}{mapped the generic name the name for onto the user's interface}
+% \changes{v2.0a}{17/06/02}{introduced a generic name}
+%    \begin{macrocode}
+\let\forallin=\forloop at nss
+\let\forallinend=\forloopend at nss
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
 % \begin{macro}{\forever}
+% \changes{v2.0a}{17/06/02}{mapped the generic name onto the name for the user's interface}
 % \changes{v-3.5a}{94/11/22}{"ubernommen von J. Dietel}
 % \changes{v-2.0}{92/01/17}{Eingef"uhrt durch D. Rieger}
 % \begin{macro}{\foreverend}
+% \changes{v2.0a}{17/06/02}{mapped the generic name onto the name for the user's interface}
 % \changes{v-3.5a}{94/11/22}{"ubernommen von J. Dietel}
 % \changes{v-2.0}{92/01/17}{Eingef"uhrt durch D. Rieger}
 % \ifnum\language=\languageNGerman
@@ -6372,31 +6646,10 @@
 % \fi
 %    \begin{macrocode}
 \def\forever{\let\next=\@forever\getoption}
-\def\@forever{
-    \tempx at nss=\xsize at nss
-    \divide\tempx at nss by 6
-    \set at nss{\mbox{\rule{0mm}{3ex}}}{\tempx at nss}
-    \tempy at nss=\number\param at nss000
-    \block at nss{\tempy at nss}{2}
-    \advance\x at nss by \ydepth at nss
-    \advance\y at nss by -\ydepth at nss
-    \tempxx at nss=\xsize at nss
-    \advance\tempxx at nss by -\ydepth at nss
-    \tempy at nss=\ydepth at nss
-    \str at kt{\x at nss}{\y at nss}{\tempxx at nss}
+\def\@forever{%
+  \@forloop at nss{}%
 }
-\def\foreverend{
-    \endstr at kt
-    \advance\x at nss by-\tempy at nss
-    \advance\ydepth at nss by -\tempy at nss
-    \tempyy at nss=\ydepth at nss
-    \ydepth at nss=-\ydepth at nss
-    \advance\ydepth at nss by \y at nss
-    \advance\ydepth at nss by \tempy at nss
-    \y at nss=\tempyy at nss
-    \put(\x at nss,\y at nss){\framebox(\xsize at nss,\ydepth at nss){}}
-    \put(\x at nss,\y at nss){\makebox(\xsize at nss,\tempy at nss){\box\TextBox at nss}}
-}
+\let\foreverend=\forloopend at nss
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -6767,7 +7020,7 @@
 % werden demzufolge durch |\tempxx at nss| gesteuert.
 % \else
 % |\tempx at nss| is the width of the branch, that is equal for all
-% branches---total width divided by number of cases---, 
+% branches---total width divided by number of cases---,
 % |\tempy at nss| is the height of the text of case, that decreases from one case
 % to the other, |\condindent at nss| is the step size the height of the text of
 % case decreases with each \cs{switch}. Height and step size depend on wether
@@ -6963,7 +7216,7 @@
 % \else%
 % The steps to draw the box are as follows:
 % \begin{enumerate}
-%   \item Calculate the intended height of the tasks: 
+%   \item Calculate the intended height of the tasks:
 % \fi%
 %    \begin{macrocode}
 \tempyy at nss=\number\param at nss000%
@@ -6972,7 +7225,7 @@
 %   \ifnum\language=\languageNGerman%
 %   Zeichnen der gestrichelten Linien zu Beginn des Blocks; das muss in
 %   einer eigenen Gruppe geschehen, da der aktuelle Wert von \cs{y at nss}
-%   sp"ater noch gebraucht wird.  
+%   sp"ater noch gebraucht wird.
 %
 %   Die aktuelle Startposition des Blocks is |(\x at nss, \y at nss)|, die Breite
 %   ist \cs{xsize at nss}, um die Anzahl \cs{tempxx at css} der Striche in der
@@ -7096,7 +7349,7 @@
 \tempx at nss=\xsize at nss%
 \divide\tempx at nss by 2%
 \advance\xx at nss by -\tempx at nss%
-\tempx at nss=\x at nss%    
+\tempx at nss=\x at nss%
 \loop%
 \dbgString at nss{draw vertical line}
 \advance\tempx at nss by \xsize at nss%
@@ -7155,7 +7408,7 @@
 %
 % \begin{macro}{\task}
 %     \changes{v061}{10/05/31}{implemented the macro}
-%     \changes{v-9.1}{10/01/17}{added} 
+%     \changes{v-9.1}{10/01/17}{added}
 %     \ifnum\language=\languageNGerman%
 %     Der Makro \cs{task} definiert die parallelen
 %     Tasks, er hat zwei Parameter:

Modified: trunk/Master/texmf-dist/source/latex/struktex/struktex.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/struktex/struktex.ins	2017-06-25 21:51:46 UTC (rev 44698)
+++ trunk/Master/texmf-dist/source/latex/struktex/struktex.ins	2017-06-25 21:51:59 UTC (rev 44699)
@@ -1,5 +1,5 @@
 %%
-%% $Revision: 106 $
+%% $Revision$
 %%
 %% This file will generate fast loadable files and documentation
 %% driver files from the doc files in this package when run through
@@ -19,7 +19,7 @@
 
 \preamble
 
-Copyright (C) 1989-2010 by Jobst Hoffmann.  All rights reserved.
+Copyright (C) 1989-2017 by Jobst Hoffmann.  All rights reserved.
 
 IMPORTANT COPYRIGHT NOTICE:
 
@@ -36,14 +36,13 @@
 \declarepostamble\examplepost
 \endpostamble
 
-%\BaseDirectory{~/TeX/texmf}
-%\UseTDS
-%\usedir{tex/latex/jhf}
+\BaseDirectory{~/texmf}
+\UseTDS
 
 \keepsilent
 
 \def\targetdirectory{}                          % or may be for example
-%\def\targetdirectory{../../../../texmf/tex/latex/JHf/}
+%\def\targetdirectory{../../../../texmf/tex/latex/struktex/}
 
 % programs and packages
 
@@ -74,11 +73,9 @@
 }
 
 \Msg{*** Generating some additional files for easier handling ***}
-\generate
-{%
-    \askonceonly
-    \nopreamble\nopostamble\def\MetaPrefix{}%
-    \file{getversion.tex}{\from{struktex.dtx}{getversion}}
+\def\MetaPrefix{}
+\askforoverwritefalse%
+\generate{\nopreamble\nopostamble
     \file{struktex.makemake}{\from{struktex.dtx}{setup}}
     \file{struktex.mk}{\from{struktex.dtx}{makefile}}
     \file{struktex.el}{\from{struktex.dtx}{auctex}}

Modified: trunk/Master/texmf-dist/tex/latex/struktex/strukdoc.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/struktex/strukdoc.sty	2017-06-25 21:51:46 UTC (rev 44698)
+++ trunk/Master/texmf-dist/tex/latex/struktex/strukdoc.sty	2017-06-25 21:51:59 UTC (rev 44699)
@@ -6,7 +6,7 @@
 %%
 %% struktex.dtx  (with options: `strukdoc')
 %% 
-%% Copyright (C) 1989-2010 by Jobst Hoffmann.  All rights reserved.
+%% Copyright (C) 1989-2017 by Jobst Hoffmann.  All rights reserved.
 %% 
 %% IMPORTANT COPYRIGHT NOTICE:
 %% 
@@ -19,9 +19,9 @@
 %% to
 %%         j.hoffmann_(at)_fh-aachen.de
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]{%
-  \def\@svn@ $#1Date: #2-#3-#4 #5$$#6Revision: #7$ {%
+  \def\@git@ $#1Date: #2-#3-#4 #5$$#6Revision: #7$ {%
   \ProvidesPackage{strukdoc}[#2/#3/#4 v#7 support for reading and writing files verbatim (Jobst Hoffmann)]}
-  \@svn@ $Date: 2012-04-10 21:57:12 +0200 (Di, 10 Apr 2012) $$Revision: 141 $ %
+  %% git revision information
 }
 %%
 \RequirePackage{ifpdf}

Modified: trunk/Master/texmf-dist/tex/latex/struktex/struktex.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/struktex/struktex.sty	2017-06-25 21:51:46 UTC (rev 44698)
+++ trunk/Master/texmf-dist/tex/latex/struktex/struktex.sty	2017-06-25 21:51:59 UTC (rev 44699)
@@ -6,7 +6,7 @@
 %%
 %% struktex.dtx  (with options: `struktex')
 %% 
-%% Copyright (C) 1989-2010 by Jobst Hoffmann.  All rights reserved.
+%% Copyright (C) 1989-2017 by Jobst Hoffmann.  All rights reserved.
 %% 
 %% IMPORTANT COPYRIGHT NOTICE:
 %% 
@@ -19,9 +19,9 @@
 %% to
 %%         j.hoffmann_(at)_fh-aachen.de
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]{%
-  \def\@svn@ $#1Date: #2-#3-#4 #5$$#6Revision: #7$ {%
+  \def\@git@ $#1Date: #2-#3-#4 #5$$#6Revision: #7$ {%
   \ProvidesPackage{struktex}[#2/#3/#4 v#7 Nassi Shneiderman Charts (Jobst Hoffmann)]}
-  \@svn@ $Date: 2012-04-10 21:57:12 +0200 (Di, 10 Apr 2012) $$Revision: 141 $ %
+  %% git revision information
 }
 %%
 \RequirePackage{ifthen}
@@ -98,6 +98,21 @@
   \let\ifdraft at nss\iffalse
   \let\iffinal at nss\iftrue
 }
+\newboolean{debug}
+\DeclareOption{debug}%
+{%
+  \setboolean{debug}{true}
+}
+\DeclareOption{nodebug}%
+{%
+  \setboolean{debug}{false}
+}
+\newboolean{outer}
+\DeclareOption{outer}%
+{%
+  \setboolean{outer}{true}
+}
+%% \ifnum\language=\languageNGerman%
 \ExecuteOptions{pict2e,english,final}
 \ProcessOptions*\relax
 \ifcurves%
@@ -107,6 +122,14 @@
 \else\ifpictIIe
     \RequirePackage{pict2e}
 \fi\fi\fi
+\ifthenelse{\boolean{debug}}{
+  \typeout{debug active}}{
+  \typeout{debug inactive}
+  \renewcommand{\dbgString at nss}[1]{}
+  \renewcommand{\dbgCount at nss}[2][]{}
+  \renewcommand{\dbgCoord at nss}[3][]{}
+  \renewcommand{\dbgMark at nss}[3][]{}
+}
 \def\StrukTeX{S\kern-.05emt\kern-.05em\raise.5ex\hbox{r}%
               \kern-.1667emu\kern-.05em\lower.5ex\hbox{k}%
               \kern-.2emT\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}
@@ -219,6 +242,7 @@
   \else
     \setbox\TextBox at nss=\hbox to \tempxx at nss\unitlength{#1\hss}%
   \fi%
+  \dbgString at nss{Ende \string\set at nss}
 }
 \def\block at nss#1#2{%
   \dbgString at nss{Beginn \string\block at nss}
@@ -469,9 +493,17 @@
   \ifodd\xx at nss\advance\tempxx at nss by 1\fi%
   \divide\xx at nss by 2\advance\tempxx at nss by \xx at nss%
   \advance\tempx at nss by \xx at nss%
-  \put(\x at nss,\y at nss){\makebox(\tempx at nss,\tempyy at nss){#4}}%
+  \ifouter%
+  \put(\x at nss,\y at nss){\makebox(\tempx at nss,\tempyy at nss)[l]{\hspace{1em}#4}}%
+  \else%\outer
+    \put(\x at nss,\y at nss){\makebox(\tempx at nss,\tempyy at nss){#4}}%
+  \fi %\outer
   \xx at nss=\x at nss\advance\xx at nss by \tempx at nss%
-  \put(\xx at nss,\y at nss){\makebox(\tempxx at nss,\tempyy at nss){#5}}%
+  \ifouter%
+    \put(\xx at nss,\y at nss){\makebox(\tempxx at nss,\tempyy at nss)[r]{#5\hspace{1em}}}%
+  \else%\outer
+    \put(\xx at nss,\y at nss){\makebox(\tempxx at nss,\tempyy at nss){#5}}%
+  \fi %\outer
   \str at kt{\x at nss}{\y at nss}{\tempx at nss}%
   \dbgString at nss{Ende \string\@ifthenelse at nss}
 }
@@ -503,32 +535,44 @@
   \fi%
   \dbgString at nss{Ende \string\ifend at nss}
 }
+\def\forloop at nss{\let\next=\@forloop at nss\getoption}
+\def\@forloop at nss#1{
+  \def\argi{#1}
+  \dbgString at nss{Beginn \string\@forloop}
+  \tempx at nss=\xsize at nss
+  \divide\tempx at nss by 6
+  \ifx\argi\empty%
+    \set at nss{\mbox{\rule{0mm}{2ex}}}{\tempx at nss}%
+  \else%
+    \set at nss{#1\hskip\xsize at nss\unitlength}{\tempx at nss}%
+  \fi%
+  \tempy at nss=\number\param at nss000
+  \block at nss{\tempy at nss}{0}
+  \advance\x at nss by \ydepth at nss
+  \tempxx at nss=\xsize at nss
+  \advance\tempxx at nss by -\ydepth at nss
+  \tempy at nss=\ydepth at nss
+  \str at kt{\x at nss}{\y at nss}{\tempxx at nss}
+}
+\def\forloopend at nss{
+  \endstr at kt
+  \advance\x at nss by-\tempy at nss
+  \advance\ydepth at nss by -\tempy at nss
+  \tempyy at nss=\ydepth at nss
+  \ydepth at nss=-\ydepth at nss
+  \advance\ydepth at nss by \y at nss
+  \advance\ydepth at nss by \tempy at nss
+  \y at nss=\tempyy at nss
+  \put(\x at nss,\y at nss){\framebox(\xsize at nss,\ydepth at nss){}}
+  \dbgString at nss{Ende \string\@forloop at nss}
+}
+\let\forallin=\forloop at nss
+\let\forallinend=\forloopend at nss
 \def\forever{\let\next=\@forever\getoption}
-\def\@forever{
-    \tempx at nss=\xsize at nss
-    \divide\tempx at nss by 6
-    \set at nss{\mbox{\rule{0mm}{3ex}}}{\tempx at nss}
-    \tempy at nss=\number\param at nss000
-    \block at nss{\tempy at nss}{2}
-    \advance\x at nss by \ydepth at nss
-    \advance\y at nss by -\ydepth at nss
-    \tempxx at nss=\xsize at nss
-    \advance\tempxx at nss by -\ydepth at nss
-    \tempy at nss=\ydepth at nss
-    \str at kt{\x at nss}{\y at nss}{\tempxx at nss}
+\def\@forever{%
+  \@forloop at nss{}%
 }
-\def\foreverend{
-    \endstr at kt
-    \advance\x at nss by-\tempy at nss
-    \advance\ydepth at nss by -\tempy at nss
-    \tempyy at nss=\ydepth at nss
-    \ydepth at nss=-\ydepth at nss
-    \advance\ydepth at nss by \y at nss
-    \advance\ydepth at nss by \tempy at nss
-    \y at nss=\tempyy at nss
-    \put(\x at nss,\y at nss){\framebox(\xsize at nss,\ydepth at nss){}}
-    \put(\x at nss,\y at nss){\makebox(\xsize at nss,\tempy at nss){\box\TextBox at nss}}
-}
+\let\foreverend=\forloopend at nss
 \let\dfr\forever
 \let\dfrend\foreverend
 \def\while{\let\next=\@while\getoption}

Modified: trunk/Master/texmf-dist/tex/latex/struktex/struktxf.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/struktex/struktxf.sty	2017-06-25 21:51:46 UTC (rev 44698)
+++ trunk/Master/texmf-dist/tex/latex/struktex/struktxf.sty	2017-06-25 21:51:59 UTC (rev 44699)
@@ -6,7 +6,7 @@
 %%
 %% struktex.dtx  (with options: `struktxf')
 %% 
-%% Copyright (C) 1989-2010 by Jobst Hoffmann.  All rights reserved.
+%% Copyright (C) 1989-2017 by Jobst Hoffmann.  All rights reserved.
 %% 
 %% IMPORTANT COPYRIGHT NOTICE:
 %% 
@@ -19,9 +19,9 @@
 %% to
 %%         j.hoffmann_(at)_fh-aachen.de
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]{%
-  \def\@svn@ $#1Date: #2-#3-#4 #5$$#6Revision: #7$ {%
+  \def\@git@ $#1Date: #2-#3-#4 #5$$#6Revision: #7$ {%
   \ProvidesPackage{struktxf}[#2/#3/#4 v#7 Fonts for Nassi Shneiderman Charts (Jobst Hoffmann)]}
-  \@svn@ $Date: 2012-04-10 21:57:12 +0200 (Di, 10 Apr 2012) $$Revision: 141 $ %
+  %% git revision information
 }
 %%
 \@ifundefined{nat}{}{\endinput}

Modified: trunk/Master/texmf-dist/tex/latex/struktex/struktxp.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/struktex/struktxp.sty	2017-06-25 21:51:46 UTC (rev 44698)
+++ trunk/Master/texmf-dist/tex/latex/struktex/struktxp.sty	2017-06-25 21:51:59 UTC (rev 44699)
@@ -6,7 +6,7 @@
 %%
 %% struktex.dtx  (with options: `struktxp')
 %% 
-%% Copyright (C) 1989-2010 by Jobst Hoffmann.  All rights reserved.
+%% Copyright (C) 1989-2017 by Jobst Hoffmann.  All rights reserved.
 %% 
 %% IMPORTANT COPYRIGHT NOTICE:
 %% 
@@ -19,9 +19,9 @@
 %% to
 %%         j.hoffmann_(at)_fh-aachen.de
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]{%
-  \def\@svn@ $#1Date: #2-#3-#4 #5$$#6Revision: #7$ {%
+  \def\@git@ $#1Date: #2-#3-#4 #5$$#6Revision: #7$ {%
   \ProvidesPackage{struktxp}[#2/#3/#4 v#7 Keywords for Nassi Shneiderman Charts (Jobst Hoffmann)]}
-  \@svn@ $Date: 2012-04-10 21:57:12 +0200 (Di, 10 Apr 2012) $$Revision: 141 $ %
+  %% git revision information
 }
 %%
 \RequirePackage{url}



More information about the tex-live-commits mailing list