texlive[46873] Master/texmf-dist: struktex (7mar18)

commits+karl at tug.org commits+karl at tug.org
Wed Mar 7 22:48:57 CET 2018


Revision: 46873
          http://tug.org/svn/texlive?view=revision&revision=46873
Author:   karl
Date:     2018-03-07 22:48:57 +0100 (Wed, 07 Mar 2018)
Log Message:
-----------
struktex (7mar18)

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/source/latex/struktex/struktex.dtx
    trunk/Master/texmf-dist/source/latex/struktex/struktex.ins
    trunk/Master/texmf-dist/tex/latex/struktex/struktex.sty
    trunk/Master/texmf-dist/tex/latex/struktex/struktxf.sty

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	2018-03-07 21:48:40 UTC (rev 46872)
+++ trunk/Master/texmf-dist/doc/latex/struktex/struktex.el	2018-03-07 21:48:57 UTC (rev 46873)
@@ -1,7 +1,7 @@
 
 ;;; struktex.el --- AUCTeX style for `struktex.sty'
 
-;; Copyright (C) 2006 - 2017 Free Software Foundation, Inc.
+;; Copyright (C) 2006 - 2018 Free Software Foundation, Inc.
 
 ;; Author: J. Hoffmann <j.hoffmann_(at)_fh-aachen.de>
 ;; Maintainer: j.hoffmann_(at)_fh-aachen.de
@@ -217,9 +217,10 @@
     (newline-and-indent)
     (insert "\\whileend")))
 
-(defvar LaTeX-struktex-package-options '("curves" "draft" "emlines" "final"
-                                         "pict2e" "anygradient" "verification"
-                                         "nofiller" "debug" "outer")
+(defvar LaTeX-struktex-package-options '("anygradient" "curves" "debug"
+                                         "draft" "emlines" "final"
+                                         "fixedindent" "nofiller"
+                                         "outer" "pict2e" "verification")
   "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/source/latex/struktex/struktex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/struktex/struktex.dtx	2018-03-07 21:48:40 UTC (rev 46872)
+++ trunk/Master/texmf-dist/source/latex/struktex/struktex.dtx	2018-03-07 21:48:57 UTC (rev 46873)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1995 - 2017 Jobst Hoffmann, FH Aachen, Campus J"ulich
+% Copyright (C) 1995 - 2018 Jobst Hoffmann, FH Aachen, Campus J"ulich
 % <j.hoffmann_(at)_fh-aachen.de>
 % -------------------------------------------------------------------------------------------
 %
@@ -14,9 +14,9 @@
 % and version 1.2 or later is part of all distributions of LaTeX
 % version 1999/12/01 or later.
 %
-%
 % \fi
 %
+% \changes{v2.3a}{18/03/07}{updated Copyright to 2018}
 % \changes{v2.2b}{17/07/09}{better layout of the source code}
 % \changes{v2.2a}{17/06/30}{added notes about versioning scheme}
 % \changes{v2.2}{17/06/18}{rewrote LIESMICH.md and README.md}
@@ -34,7 +34,7 @@
 % \changes{v062}{10/05/31}{moved the docstrip guards into the corresponding macrocode environments}
 % \changes{v061}{10/05/31}{corrected some more typos}
 % \changes{v057}{10/01/21}{added some missing closing braces at the end of `ProvidesPackage}
-% \iffalse
+% \iffalse%
 %<struktex|struktxf|struktxp|strukdoc>\NeedsTeXFormat{LaTeX2e}[1999/12/01]{%
 %<struktex|struktxf|struktxp|strukdoc>  \def\@git@ $#1Date: #2-#3-#4 #5$$#6Revision: #7$ {%
 %<struktex>  \ProvidesPackage{struktex}[#2/#3/#4 v#7 Nassi Shneiderman Diagrams (Jobst Hoffmann)]}
@@ -43,10 +43,12 @@
 %<strukdoc>  \ProvidesPackage{strukdoc}[#2/#3/#4 v#7 support for reading and writing files verbatim (Jobst Hoffmann)]}
 %<struktex|struktxf|struktxp|strukdoc>  %% git revision information
 %<struktex|struktxf|struktxp|strukdoc>}%
-% \fi%
-% \CheckSum{2532}  ^^A set to 0 to inactivate the CheckSum
-% \def\docdate {2017/07/01} ^^A not style'able!!
+% \fi
 %
+%
+% \CheckSum{2634}  ^^A set to 0 to inactivate the CheckSum
+% \def\docdate {2017/12/31} ^^A not style'able!!
+%
 %    \iffalse meta-comment
 %            Alles bis zum n"achsten `\ fi' (ohne Leerzeichen) wird
 %            ignoriert.  Das ist notwendig, da `%' nicht weiter
@@ -53,7 +55,7 @@
 %            Kommentar einleitet, wenn diese Datei eingelesen wird.
 %
 % Stil-Option `struktex' zum Gebrauch mit LaTeX2e
-% Copyright (C) 1995-2017 Jobst Hoffmann, alle Rechte vorbehalten.
+% Copyright (C) 1995-2018 Jobst Hoffmann, alle Rechte vorbehalten.
 %
 %
 % Das Kopieren dieser Datei ist nur zul"assig, wenn
@@ -310,10 +312,10 @@
 % \section{\ifnum\language=\languageNGerman Lizenzvereinbarung\else
 % License\fi}
 %
-% This package is copyright \copyright{} 1995 -- 2017 by:
+% This package is copyright \copyright{} 1995 -- 2018 by:
 % \begin{quote}
 %      Jobst Hoffmann, c/o University of Applied Sciences Aachen \\
-%      Aaachen, Germany \\
+%      Aachen, Germany \\
 %      E-Mail: j.hoffmann\_(at)\_fh-aachen.de
 % \end{quote}
 % This program can be redistributed and/or modified under the terms of the LaTeX
@@ -788,6 +790,7 @@
     verification,
     outer, % <------------------- to set the position of the \ifthenelse
                                 % flags to the outer edges
+    debug,
     ]
     {struktex}
 \GetFileInfo{struktex.sty}
@@ -849,7 +852,7 @@
 % \begin{enumerate}
 %   \item |english|, |ngerman| oder |german|:
 %
-%     Die jeweilige Option legt die Sprache für definierte Werte wie
+%     Die jeweilige Option legt die Sprache f"ur definierte Werte wie
 %     |\sTrue| fest, Standardwert ist |english|.
 %   \item |emlines|, |curves| oder |pict2e|:
 %
@@ -891,7 +894,7 @@
 %   \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
+%     der Mitte der Grundlinie jeweils links bzw. rechts au"sen erscheinen
 %     zu lassen.
 % \end{enumerate}
 % Nach dem Laden der |.sty|-Datei stehen verschiedene Kommandos und Umgebungen
@@ -1049,13 +1052,13 @@
 % \ifnum\language=\languageNGerman%
 % Struktogramme enthalten manchmal direkt zu programmierenden Code.
 % Um hier ein einheitliches Aussehen zu erreichen, sind die hier
-% aufgeführten Makros definiert worden. Um diese Makros auch in anderem
+% aufgef"uhrten Makros definiert worden. Um diese Makros auch in anderem
 % Zusammenhang nutzen zu k"onnen, sind sie zu einem eigenen
 % \foreign{package} \textsf{struktxp.sty} zusammengefasst worden. Dabei
 % wird ab Version 122 zur Darstellung von Code auf das Paket
-% "`\textsf{url.sty}"' von Donald Arsenau zurückgegriffen, das es
-% ermöglicht, verbatim gesetzte Texte als Parameter an ein anderes Makro zu
-% übergeben. Wenn diese Texte ein Leerzeichen enthalten, das erhalten
+% "`\textsf{url.sty}"' von Donald Arsenau zur"uckgegriffen, das es
+% erm"oglicht, verbatim gesetzte Texte als Parameter an ein anderes Makro zu
+% "ubergeben. 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
 % \begin{quote}
@@ -4107,6 +4110,7 @@
 %    \end{macrocode}
 %
 %
+% \changes{v2.3a}{18/03/07}{struktex.el: added package option fixedindent}
 % \changes{v055}{10/01/21}{added "declaration" to LaTeX-item-list again
 % (previously removed unintentionally)}
 % \changes{v055}{10/01/21}{corrected "task" entry}
@@ -4160,7 +4164,7 @@
 %<*auctex>
 ;;; struktex.el --- AUCTeX style for `struktex.sty'
 
-;; Copyright (C) 2006 - 2017 Free Software Foundation, Inc.
+;; Copyright (C) 2006 - 2018 Free Software Foundation, Inc.
 
 ;; Author: J. Hoffmann <j.hoffmann_(at)_fh-aachen.de>
 ;; Maintainer: j.hoffmann_(at)_fh-aachen.de
@@ -4376,9 +4380,10 @@
     (newline-and-indent)
     (insert "\\whileend")))
 
-(defvar LaTeX-struktex-package-options '("curves" "draft" "emlines" "final"
-                                         "pict2e" "anygradient" "verification"
-                                         "nofiller" "debug" "outer")
+(defvar LaTeX-struktex-package-options '("anygradient" "curves" "debug"
+                                         "draft" "emlines" "final"
+                                         "fixedindent" "nofiller"
+                                         "outer" "pict2e" "verification")
   "Package options for the struktex package.")
 
 ;;; struktex.el ends here.
@@ -4466,9 +4471,6 @@
 % \subsection{\ifnum\language=\languageNGerman Allgemeines \else general \fi}
 %
 % \changes{v084}{10/06/24}{removed flag preventing double load of the package}
-%    \begin{macrocode}
-%<*struktex>
-%    \end{macrocode}
 % \ifnum\language=\languageNGerman%
 % Dies ist ein Paket, das f"ur \LaTeX2e entwickelt wurde, es wird daher
 % eine entsprechende Fehlermeldung ausgegeben, wenn ein anderes Format
@@ -4492,9 +4494,24 @@
 % be messaged.%
 % \fi%
 %    \begin{macrocode}
+%<*struktex>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
 \RequirePackage{ifthen}
 %    \end{macrocode}
 % \ifnum\language=\languageNGerman%
+% Der |\ifthenelse|-Makro muss unter einem anderen Namen verf"ugbar bleiben,
+% da \StrukTeX{} einen gleichnamigen Makro mit einer anderen Bedeutung
+% bereitstellt.%
+% \else%
+% The |\ifthenelse| must be mapped to |\@ifthenelse| to prevent overloading it by
+% the command from the current package with the same name.%
+% \fi%
+%    \begin{macrocode}
+\let\@ifthenelse\ifthenelse
+%    \end{macrocode}
+% \ifnum\language=\languageNGerman%
 % \StrukTeX{} ben"otigt zwei weitere Pakete, die zum Lieferumfang geh"oren.
 % Diese werden hier geladen.%
 % \else%
@@ -4509,28 +4526,36 @@
 % \changes{v075}{10/06/23}{added markers to make debug code removeable}
 % \ifnum\language=\languageNGerman%
 % Zu Entwicklungszwecken werden hier ein paar Makros definiert, die
-% Hilfsausgaben erzeugen, f"ur die Ver"offentlichung werden diese mit dem
-% folgenden Kommando eliminiert:%
+% Hilfsausgaben erzeugen (Option: |debug|, f"ur die Ver"offentlichung
+% sollte diese Option nicht gesetzt werden).%
 % \else%
-% For developing purposes there are some debugging macros; for the release
-% version these macros are eliminated by the command:%
+% For developing purposes there are some debugging macros (option: |debug|,
+% for the release
+% version this option shouldn't be set at all); .%
 % \fi%
-% \begin{verbatim}
-%sed -e "/dbg/d" struktex.dtx > struktex.dtx.dbg
-% \end{verbatim}
 % \changes{v061}{10/05/31}{added some debugging macros}
 %    \begin{macrocode}
-\newcommand{\dbgString at nss}[1]{\typeout{===> dbg String:\space#1}}
+\newcommand{\dbgArgs at nss}[1]{\typeout{===> dbg Args:\space\space\space#1}}
+\newcommand{\dbgCond at nss}[1]{%
+  \@ifthenelse{\boolean{#1}}{
+    \typeout{===> dbg Cond:\space #1 = true}
+  }{
+    \typeout{===> dbg Cond:\space #1 = false}
+  }
+}
 \newcommand{\dbgCount at nss}[2][]{%
   \def\argI{#1}%  ^^A dbg
-  \typeout{===> dbg Count:\space\space\ifx\argI\empty\else(#1)\space\fi\string#2 = \the#2}}
+  \typeout{===> dbg Count:\space\space\ifx\argI\empty\else(#1)\space\fi%
+    \string#2 = \the#2}}
 \newcommand{\dbgCoord at nss}[3][]{%
   \def\argI{#1}%  ^^A dbg
-  \typeout{===> dbg Coord:\space\space\ifx\argI\empty\else(#1)\space\fi(\string#2,
-    \string#3) = (\the#2, \the#3)}}%  ^^A dbg
+  \typeout{===> dbg Coord:\space\space\ifx\argI\empty\else(#1)\space\fi%
+    (\string#2, \string#3) = (\the#2, \the#3)}}%  ^^A dbg
 \newcommand{\dbgMark at nss}[3][]{%
   \def\argI{#1}%  ^^A dbg
-  \put(#2,#3){\makebox(0,0)[cc]{\ifx\argI\empty$\bullet$\else#1\fi}}}% ^^A dbg
+  \put(#2,#3){\makebox(0,0)[cc]{\ifx\argI\empty$\bullet$\else#1\fi%
+    }}}% ^^A dbg
+\newcommand{\dbgString at nss}[1]{\typeout{===> dbg String:\space#1}}
 %    \end{macrocode}
 % \changes{v075}{10/06/23}{added some more documentation about options}
 % \changes{v-5.3a}{98/11/27}{Option \texttt{emlines} eingef"uhrt}
@@ -4575,7 +4600,7 @@
 %    \end{macrocode}
 %
 % \ifnum\language=\languageNGerman%
-% Zur Unterstützung der Internationalisierung werden feste Texte in der
+% Zur Unterst"utzung der Internationalisierung werden feste Texte in der
 % jeweilig benutzten Sprache (beispielsweise als |babel|-Option definiert)
 % hier vorbereitet.
 % \else%
@@ -4690,6 +4715,38 @@
 }
 %    \end{macrocode}
 %
+% \changes{v2.3}{17/11/17}{introduced option \texttt{fixedindent}}
+% \ifnum\language=\languageNGerman%
+% Ab der Version v2.3 kennt \StrukTeX{} eine Option "`|fixedindent|"', die
+% den Einzug von Bl"ocken in |while|- und |until|-Schleifen
+% beeinflusst. Standardm"a"sig ist dieser Einzug gleich dem vertikalen
+% Abstand zum umgebenden Block, was bei mehrzeiligen Bedingungen zu einem
+% gro"sen, unsch"onen Einzug f"uhrt. Wenn |fixedindent| gesetzt ist, entspricht
+% der Einzug (ungef"ahr) dem Zeilenabstand, was einer einzeiligen Bedingung
+% entspricht. Der Makrobefehl |\dimtomm| stammt aus
+% \url{https://tex.stackexchange.com/questions/223740/convert-dimension-to-integer-number-of-mm}.%
+% \else%
+% From version v2.3 on  \StrukTeX{} has an option "`|fixedindent|"', which affects
+% the indentation of blocks in |while| and |until| loops. By default, this
+% indentation is the same as the vertical distance to the surrounding
+% block, which leads in multi-line conditions to a large, ugly
+% indentation. If |fixedindent| is set, the indentation (approximately)
+% corresponds to the line spacing, which is equivalent to a one-line
+% condition. The macro |\dimtomm| comes from
+% \url|https://tex.stackexchange.com/questions/223740/convert-dimension-to-integer-number-of-mm|.%
+% \fi%
+%    \begin{macrocode}
+\def\dimtomm #1{\the\numexpr \dimexpr #1\relax*635000/118407168\relax }
+%    \end{macrocode}
+%    \begin{macrocode}
+\newboolean{fixedindent at nss}
+\DeclareOption{fixedindent}%
+{%
+  \setboolean{fixedindent at nss}{true}
+  \gdef\xindent at nss{\dimtomm{\baselineskip}}
+}
+%    \end{macrocode}
+%
 %% \ifnum\language=\languageNGerman%
 % Nun werden andere Pakete geladen und die Optionen verarbeitet.%
 % \else%
@@ -4711,20 +4768,19 @@
 \ifthenelse{\boolean{debug}}{
   \typeout{debug active}}{
   \typeout{debug inactive}
-  \renewcommand{\dbgString at nss}[1]{}
+  \renewcommand{\dbgCond at nss}[1]{}
   \renewcommand{\dbgCount at nss}[2][]{}
   \renewcommand{\dbgCoord at nss}[3][]{}
   \renewcommand{\dbgMark at nss}[3][]{}
+  \renewcommand{\dbgString at nss}[1]{}
 }
 %    \end{macrocode}
 %
 % \begin{macro}{\StrukTeX}
 % \ifnum\language=\languageNGerman%
-% Das Logo des Paketes, anhand dessen sp"ateres erneutes Einlesen
-% unterbunden wird:
+% Das Logo des Paketes:%
 % \else%
-% The logo of package, with which a later second reading in will be
-% forestalled:%
+% The logo of package:%
 % \fi%
 %    \begin{macrocode}
 \def\StrukTeX{S\kern-.05emt\kern-.05em\raise.5ex\hbox{r}%
@@ -4733,6 +4789,11 @@
 %    \end{macrocode}
 % \end{macro}
 %
+%    \begin{macrocode}
+%</struktex>
+%    \end{macrocode}
+%
+%
 % \subsection{\ifnum\language=\languageNGerman Diverse Makros zur Vorbereitung
 %                 \else Various macros for preparation
 %                 \fi}
@@ -4747,8 +4808,10 @@
 % in another connection, therefore an own package is defined.%
 % \fi%
 %    \begin{macrocode}
-%</struktex>
 %<*struktxf>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
 \@ifundefined{nat}{}{\endinput}
 \DeclareSymbolFont{italics}{\encodingdefault}{\rmdefault}{m}{it}%
 \DeclareSymbolFont{AMSb}{U}{msb}{m}{n}
@@ -4801,8 +4864,7 @@
    <-8> cmbtt8 <9> cmbtt9 <10-> cmbtt10
 }{}
 
-\def\btt%
-{%
+\def\btt{%
     \fontencoding{\encodingdefault}\fontfamily{cmbtt}\fontseries{bx}%
     \fontshape{n}\selectfont%
 }
@@ -4839,11 +4901,14 @@
     \@setmcodes{`a}{`z}{"7161}
 }
 \MathItalics
-%</struktxf>
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 %
+%    \begin{macrocode}
+%</struktxf>
+%    \end{macrocode}
+%
 % \subsection[\ifnum\language=\languageNGerman Darstellung von Variablen
 % etc.\else Representation of variables etc.\fi]{%
 % \ifnum\language=\languageNGerman%
@@ -4860,6 +4925,9 @@
 % \changes{v121}{10/08/31}{added package url as an requirement}
 %    \begin{macrocode}
 %<*struktxp>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
 \RequirePackage{url}
 %    \end{macrocode}
 %
@@ -5290,8 +5358,6 @@
 \let\sKey=\pKeyword
 \let\sTrue=\pTrue
 \let\sFalse=\pFalse
-%</struktxp>
-%<*struktex>
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -5298,8 +5364,17 @@
 % \end{macro}
 % \end{macro}
 %
+%    \begin{macrocode}
+%</struktxp>
+%    \end{macrocode}
+%
+%
 % \subsection{\ifnum\language=\languageNGerman Belegung von Registern \else Reservation of registers \fi}
 %
+%    \begin{macrocode}
+%<*struktex>
+%    \end{macrocode}
+%
 % \begin{macro}{\savelength at nss}
 % \changes{v-4.0b}{95/05/02}{umbenannt von `s at velength}
 % \changes{v-2.5}{93/09/09}{`VarDeclWd eingef"uhrt}
@@ -5732,14 +5807,13 @@
 % \cs{openstrukt} begins a structured box chart.%
 % \fi%
 %    \begin{macrocode}
-\def\openstrukt#1#2%
-{%
+\def\openstrukt#1#2{%
 %    \end{macrocode}
-% \if
+% \ifnum\language=\languageNGerman%
 % Die aktuelle \cs{unitlength} wird zwischengespeichert, da mit einer eigenen
-% Gr"o"se gearbeitet wird.
+% Gr"o"se gearbeitet wird.%
 % \else%
-% The actual \cs{unitlength} will be stored intermediately, since it is worked with
+% The current \cs{unitlength} will be stored intermediately, since it is worked with
 % an own entity.%
 % \fi%
 %    \begin{macrocode}
@@ -5812,23 +5886,36 @@
 % \end{macro}
 %
 % \begin{macro}{\str at kt}
-% \ifnum\language=\languageNGerman%
-% |\str at kt| setzt globale Werte: |\gx at nss| als x-Koordinate (|#1|), |\gy at nss| als
-% y-Koordinate (|#2|) und |\gsize at nss| als Breite des aktuellen Struktogramms
-% (|#3|).
-% Gleichzeitig wird eine Gruppe ge"offnet, in der mit lokalen Kopien dieser
-% Werte (|\x at nss|, |\y at nss| und |\xsize at nss|) gearbeitet werden kann.
-% \else%
-% |\str at kt| sets global values: |\gx at nss| as x-coordinate (|#1|), |\gy at nss| as
-% y-coordinate (|#2|) and |\gsize at nss| as width of the actual structured box chart
-% (|#3|).
-% At the same time a group will be opened, in which one can work with local
-% copies of these values (|\x at nss|, |\y at nss| and |\xsize at nss|).%
-% \fi%
-% \changes{v061}{10/05/31}{added some debug code}
+%     \changes{v2.3}{17/12/04}{enhanced documentation}
+%     \changes{v061}{10/05/31}{added some debug code}
+%     \ifnum\language=\languageNGerman%
+%     |\str at kt| setzt globale Werte: |\gx at nss| als x-Koordinate (|#1|),
+%     |\gy at nss| als y-Koordinate (|#2|) der linken oberen Ecke und
+%     |\gsize at nss| als Breite des aktuellen Struktogramms (|#3|). Das
+%     Struktogramm selbst wird dann in ein Rechteck mit der unteren linken
+%     Ecke (0,0) und der oberen Ecke (|\gx at nss|, |\gy at nss|) gezeichnet.
+%
+%     Gleichzeitig wird eine Gruppe ge"offnet, in der mit lokalen Kopien
+%     dieser Werte (|\x at nss|, |\y at nss| und |\xsize at nss|) gearbeitet werden
+%     kann. Diese Gruppe kann dann Unterstruktogramme enthalten (Sequenzen,
+%     Schleifen und Entscheidungen).%
+%     \else%
+%     |\str at kt| sets global values: |\gx at nss| as x-coordinate (|#1|),
+%     |\gy at nss| as y-coordinate (|#2|) of the upper left corner and
+%     |\gsize at nss| as width of the actual structured box chart (|#3|). The
+%     actual structured box chart will be drawn in a recangular region with
+%     lower left corner (0, 0) and upper right corner at (|\gx at nss|,
+%     |\gy at nss|).
+%
+%     At the same time a group will be opened, in which one can work with
+%     local copies of these values (|\x at nss|, |\y at nss| and
+%     |\xsize at nss|). This group may contain further (sub) structured box
+%     charts (e.\,g. for loops or selections).%
+%     \fi%
 %    \begin{macrocode}
 \def\str at kt#1#2#3{%
   \dbgString at nss{Beginn \string\str at kt}
+  \dbgArgs at nss{#1, #2, #3}
   \global\gx at nss=#1\global\gy at nss=#2\global\gsize at nss=#3%
   \begingroup%
     \x at nss=\gx at nss\y at nss=\gy at nss\xsize at nss=\gsize at nss%
@@ -5864,21 +5951,24 @@
 % \changes{v-4.0b}{95/05/08}{umbenannt von `xin}
 % \changes{v-3.2a}{94/09/14}{Beschreibung eingef"uhrt}
 % \begin{macro}{\set at nss}
-% \changes{v061}{10/05/31}{enhanced the documentation and added some debug code}
-%\changes{v-4.0b}{95/05/08}{umbenannt von `set}
-% \ifnum\language=\languageNGerman%
-% |\set at nss| setzt den als ersten Parameter |#1| "ubergebenen Text in eine horizontale
-% Box |\TextBox at nss|. Die Breite der Box ist durch die aktuelle Breite
-% \cs{xsize at nss} um die Gr"o"se des Paramters |#2| vermindert. Ist die Breite
-% dieser Box gr"o"ser als die genannte Breite, wird der Text in eine vertikale Box
-% gesetzt.
-% \else%
-% |\set at nss| sets the text, which is given as parameter |#1|, into a horizontal
-% box |\TextBox at nss|. The width of this box is the current width
-% \cs{xsize at nss} decremented by |#2|. If this value is less than the
-% natural width of the first parameter the text will be set into a vertical box.%
-% \fi%
-% \changes{v104}{10/08/15}{corrected position of texts in `set at nss}
+%     \changes{v2.3}{17/12/04}{corrected documentation}
+%     \changes{v061}{10/05/31}{enhanced the documentation and added some
+%     debug code}%
+%     \changes{v-4.0b}{95/05/08}{umbenannt von `set}%
+%     \ifnum\language=\languageNGerman%
+%     |\set at nss| setzt den als ersten Parameter |#1| "ubergebenen Text in
+%     eine horizontale Box |\TextBox at nss|. Die Breite der Box ist die
+%     aktuelle Breite \cs{xsize at nss} vermindert um die Gr"o"se des
+%     Parameters |#2|. Ist die Breite dieser Box gr"o"ser als die genannte
+%     Breite, wird der Text in eine vertikale Box gesetzt.%
+%     \else%
+%     |\set at nss| sets the text, which is given as parameter |#1|, into a
+%     horizontal box |\TextBox at nss|. The width of this box is the current
+%     width \cs{xsize at nss} decremented by |#2|. If this value is less than
+%     the natural width of the first parameter the text will be set into a
+%     vertical box.%
+%     \fi%
+%     \changes{v104}{10/08/15}{corrected position of texts in `set at nss}
 %    \begin{macrocode}
 \def\set at nss#1#2{%
   \dbgString at nss{Beginn \string\set at nss}
@@ -5895,21 +5985,23 @@
 % \end{macro}
 %
 % \begin{macro}{\block at nss}
-% \changes{v061}{10/05/31}{enhanced the documentation and added some debug code}
-% \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
-% 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.
-% \else%
-% |\block at nss| sets the box |\TextBox at nss| corresponding to the second parameter.
-% If this parameter is 1, the box will be set in a frame, and if it is 0, a box without
-% frame will be set. In all other cases only the size of the structured box chart
-% given by |\y at nss| will be changed. Parameter |#1| gives the (optional)
-% height of the box.%
-% \fi%
+%     \changes{v061}{10/05/31}{enhanced the documentation and added some
+%     debug code}%
+%     \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 2, wird ..., f"ur 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.%
+%     \else%
+%     |\block at nss| sets the box |\TextBox at nss| corresponding to the second
+%     parameter.  If this parameter is 1, the box will be set in a frame,
+%     and if it is 0, a box without frame will be set. In all other cases
+%     only the size of the structured box chart given by |\y at nss| will be
+%     changed. Parameter |#1| gives the (optional) height of the box.%
+%     \fi%
 %    \begin{macrocode}
 \def\block at nss#1#2{%
   \dbgString at nss{Beginn \string\block at nss}
@@ -5961,6 +6053,7 @@
   \else%
       \advance\y at nss by \ydepth at nss%
   \fi\fi%
+  \dbgString at nss{Ende \string\block at nss}
 }
 %    \end{macrocode}
 % \end{macro}
@@ -6643,8 +6736,8 @@
 % \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.
+% Beginn und Ende einer Schleife, die "uber alle Elemente einer Menge
+% l"auft. Die Beschreibung der Schleife wird als Parameter "ubergeben.
 % \else%
 % Begin and end of a loop which traverses all elements of a set. The
 % description of the loop is passed as parameter.%
@@ -6752,12 +6845,18 @@
 \def\while{\let\next=\@while\getoption}
 \def\@while#1{%
   \dbgString at nss{Beginn \string\@while}
+  \dbgCond at nss{fixedindent at nss}
   \tempx at nss=\xsize at nss\divide\tempx at nss by 6
   \set at nss{#1\hskip\xsize at nss\unitlength}{\tempx at nss}
   \tempy at nss=\number\param at nss000 \block at nss{\tempy at nss}{0}
   \tempy at nss=\y at nss\advance\y at nss by \ydepth at nss
-  \tempx at nss=\x at nss\advance\tempx at nss by \ydepth at nss
-  \tempxx at nss=\xsize at nss\advance\tempxx at nss by -\ydepth at nss
+  \@ifthenelse{\boolean{fixedindent at nss}}{%
+    \tempx at nss=\x at nss\advance\tempx at nss by \xindent at nss
+    \tempxx at nss=\xsize at nss\advance\tempxx at nss by -\xindent at nss
+  }{%
+    \tempx at nss=\x at nss\advance\tempx at nss by \ydepth at nss
+    \tempxx at nss=\xsize at nss\advance\tempxx at nss by -\ydepth at nss
+  }
   \str at kt{\tempx at nss}{\tempy at nss}{\tempxx at nss}%
 }
 \def\whileend{%
@@ -6780,19 +6879,40 @@
 %    \begin{macrocode}
 \def\until{\let\next=\@until\getoption}
 \def\@until#1{\tempx at nss=\xsize at nss\divide\tempx at nss by 6
-    \set at nss{#1\hskip\xsize at nss\unitlength}{\tempx at nss}
-    \tempy at nss=\number\param at nss000 \block at nss{\tempy at nss}{2}
+  \dbgString at nss{Beginn \string\@until}
+  \dbgCoord at nss[Ursprung]{\x at nss}{\y at nss}
+  \dbgCount at nss[Breite]{\xsize at nss}
+  \set at nss{#1\hskip\xsize at nss\unitlength}{\tempx at nss}
+  \tempy at nss=\number\param at nss000 \block at nss{\tempy at nss}{2}
+  \@ifthenelse{\boolean{fixedindent at nss}}{%
+    \advance\x at nss by \xindent at nss\tempxx at nss=\xsize at nss
+    \advance\tempxx at nss by -\xindent at nss \tempy at nss=\ydepth at nss
+    % \advance\x at nss by \xindent at nss\tempxx at nss=\xsize at nss
+    % \advance\tempxx at nss by -\xindent at nss \tempy at nss=\ydepth at nss
+  }{
     \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\untilend{\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
-    \y at nss=\tempyy at nss
+  }
+  \str at kt{\x at nss}{\y at nss}{\tempxx at nss}
+}
+\def\untilend{\endstr at kt%
+  \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
+  \y at nss=\tempyy at nss
+  \@ifthenelse{\boolean{fixedindent at nss}}{%
+    \advance\x at nss by -\xindent 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}}}
+      {\box\TextBox at nss}}
+  }{%
+    \advance\x at nss by-\tempy 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}}
+  }%
+  \dbgString at nss{Ende \string\untilend}%
+}
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}

Modified: trunk/Master/texmf-dist/source/latex/struktex/struktex.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/struktex/struktex.ins	2018-03-07 21:48:40 UTC (rev 46872)
+++ trunk/Master/texmf-dist/source/latex/struktex/struktex.ins	2018-03-07 21:48:57 UTC (rev 46873)
@@ -60,7 +60,7 @@
 \Msg{*** Generating example files ***}
 
 \preamble
-\endpreamble
+\endpreamble%
 \generate%
 {%
     \askforoverwritefalse
@@ -73,9 +73,10 @@
 }
 
 \Msg{*** Generating some additional files for easier handling ***}
-\def\MetaPrefix{}
-\askforoverwritefalse%
-\generate{\nopreamble\nopostamble
+\def\MetaPrefix{}%
+\generate{%
+    \askforoverwritefalse%
+    \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/struktex.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/struktex/struktex.sty	2018-03-07 21:48:40 UTC (rev 46872)
+++ trunk/Master/texmf-dist/tex/latex/struktex/struktex.sty	2018-03-07 21:48:57 UTC (rev 46873)
@@ -25,19 +25,30 @@
 }%
 %%
 \RequirePackage{ifthen}
+\let\@ifthenelse\ifthenelse
 \RequirePackage{struktxf}
 \RequirePackage{struktxp}
-\newcommand{\dbgString at nss}[1]{\typeout{===> dbg String:\space#1}}
+\newcommand{\dbgArgs at nss}[1]{\typeout{===> dbg Args:\space\space\space#1}}
+\newcommand{\dbgCond at nss}[1]{%
+  \@ifthenelse{\boolean{#1}}{
+    \typeout{===> dbg Cond:\space #1 = true}
+  }{
+    \typeout{===> dbg Cond:\space #1 = false}
+  }
+}
 \newcommand{\dbgCount at nss}[2][]{%
   \def\argI{#1}%  ^^A dbg
-  \typeout{===> dbg Count:\space\space\ifx\argI\empty\else(#1)\space\fi\string#2 = \the#2}}
+  \typeout{===> dbg Count:\space\space\ifx\argI\empty\else(#1)\space\fi%
+    \string#2 = \the#2}}
 \newcommand{\dbgCoord at nss}[3][]{%
   \def\argI{#1}%  ^^A dbg
-  \typeout{===> dbg Coord:\space\space\ifx\argI\empty\else(#1)\space\fi(\string#2,
-    \string#3) = (\the#2, \the#3)}}%  ^^A dbg
+  \typeout{===> dbg Coord:\space\space\ifx\argI\empty\else(#1)\space\fi%
+    (\string#2, \string#3) = (\the#2, \the#3)}}%  ^^A dbg
 \newcommand{\dbgMark at nss}[3][]{%
   \def\argI{#1}%  ^^A dbg
-  \put(#2,#3){\makebox(0,0)[cc]{\ifx\argI\empty$\bullet$\else#1\fi}}}% ^^A dbg
+  \put(#2,#3){\makebox(0,0)[cc]{\ifx\argI\empty$\bullet$\else#1\fi%
+    }}}% ^^A dbg
+\newcommand{\dbgString at nss}[1]{\typeout{===> dbg String:\space#1}}
 \newboolean{curves}
 \newboolean{emlines}
 \newboolean{pictIIe}
@@ -112,6 +123,13 @@
 {%
   \setboolean{outer}{true}
 }
+\def\dimtomm #1{\the\numexpr \dimexpr #1\relax*635000/118407168\relax }
+\newboolean{fixedindent at nss}
+\DeclareOption{fixedindent}%
+{%
+  \setboolean{fixedindent at nss}{true}
+  \gdef\xindent at nss{\dimtomm{\baselineskip}}
+}
 %% \ifnum\language=\languageNGerman%
 \ExecuteOptions{pict2e,english,final}
 \ProcessOptions*\relax
@@ -125,10 +143,11 @@
 \ifthenelse{\boolean{debug}}{
   \typeout{debug active}}{
   \typeout{debug inactive}
-  \renewcommand{\dbgString at nss}[1]{}
+  \renewcommand{\dbgCond at nss}[1]{}
   \renewcommand{\dbgCount at nss}[2][]{}
   \renewcommand{\dbgCoord at nss}[3][]{}
   \renewcommand{\dbgMark at nss}[3][]{}
+  \renewcommand{\dbgString at nss}[1]{}
 }
 \def\StrukTeX{S\kern-.05emt\kern-.05em\raise.5ex\hbox{r}%
               \kern-.1667emu\kern-.05em\lower.5ex\hbox{k}%
@@ -203,8 +222,7 @@
     \let\struktogramm at nss=\struktogramm at NoProof%
 }
 \let\struktogramm at nss=\struktogramm at NoProof%
-\def\openstrukt#1#2%
-{%
+\def\openstrukt#1#2{%
     \setlength{\savelength at nss}{\unitlength}
     \setlength{\unitlength}{0.001mm}
     \begin{picture}(#1000,#2000)
@@ -220,6 +238,7 @@
 \def\getnum[#1]{\param at nss=#1\next}
 \def\str at kt#1#2#3{%
   \dbgString at nss{Beginn \string\str at kt}
+  \dbgArgs at nss{#1, #2, #3}
   \global\gx at nss=#1\global\gy at nss=#2\global\gsize at nss=#3%
   \begingroup%
     \x at nss=\gx at nss\y at nss=\gy at nss\xsize at nss=\gsize at nss%
@@ -272,6 +291,7 @@
   \else%
       \advance\y at nss by \ydepth at nss%
   \fi\fi%
+  \dbgString at nss{Ende \string\block at nss}
 }
 \def\declarationtitle{\declarationtitlename at nss}
 \newlength{\descriptionindent} \setlength{\descriptionindent}{1.5em}
@@ -578,12 +598,18 @@
 \def\while{\let\next=\@while\getoption}
 \def\@while#1{%
   \dbgString at nss{Beginn \string\@while}
+  \dbgCond at nss{fixedindent at nss}
   \tempx at nss=\xsize at nss\divide\tempx at nss by 6
   \set at nss{#1\hskip\xsize at nss\unitlength}{\tempx at nss}
   \tempy at nss=\number\param at nss000 \block at nss{\tempy at nss}{0}
   \tempy at nss=\y at nss\advance\y at nss by \ydepth at nss
-  \tempx at nss=\x at nss\advance\tempx at nss by \ydepth at nss
-  \tempxx at nss=\xsize at nss\advance\tempxx at nss by -\ydepth at nss
+  \@ifthenelse{\boolean{fixedindent at nss}}{%
+    \tempx at nss=\x at nss\advance\tempx at nss by \xindent at nss
+    \tempxx at nss=\xsize at nss\advance\tempxx at nss by -\xindent at nss
+  }{%
+    \tempx at nss=\x at nss\advance\tempx at nss by \ydepth at nss
+    \tempxx at nss=\xsize at nss\advance\tempxx at nss by -\ydepth at nss
+  }
   \str at kt{\tempx at nss}{\tempy at nss}{\tempxx at nss}%
 }
 \def\whileend{%
@@ -594,19 +620,40 @@
 }
 \def\until{\let\next=\@until\getoption}
 \def\@until#1{\tempx at nss=\xsize at nss\divide\tempx at nss by 6
-    \set at nss{#1\hskip\xsize at nss\unitlength}{\tempx at nss}
-    \tempy at nss=\number\param at nss000 \block at nss{\tempy at nss}{2}
+  \dbgString at nss{Beginn \string\@until}
+  \dbgCoord at nss[Ursprung]{\x at nss}{\y at nss}
+  \dbgCount at nss[Breite]{\xsize at nss}
+  \set at nss{#1\hskip\xsize at nss\unitlength}{\tempx at nss}
+  \tempy at nss=\number\param at nss000 \block at nss{\tempy at nss}{2}
+  \@ifthenelse{\boolean{fixedindent at nss}}{%
+    \advance\x at nss by \xindent at nss\tempxx at nss=\xsize at nss
+    \advance\tempxx at nss by -\xindent at nss \tempy at nss=\ydepth at nss
+    % \advance\x at nss by \xindent at nss\tempxx at nss=\xsize at nss
+    % \advance\tempxx at nss by -\xindent at nss \tempy at nss=\ydepth at nss
+  }{
     \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\untilend{\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
-    \y at nss=\tempyy at nss
+  }
+  \str at kt{\x at nss}{\y at nss}{\tempxx at nss}
+}
+\def\untilend{\endstr at kt%
+  \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
+  \y at nss=\tempyy at nss
+  \@ifthenelse{\boolean{fixedindent at nss}}{%
+    \advance\x at nss by -\xindent 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}}}
+      {\box\TextBox at nss}}
+  }{%
+    \advance\x at nss by-\tempy 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}}
+  }%
+  \dbgString at nss{Ende \string\untilend}%
+}
 \def\case{\let\next=\@case\getoption}
 \def\@case#1#2#3#4{%
   \dbgString at nss{Beginn \string\@case}

Modified: trunk/Master/texmf-dist/tex/latex/struktex/struktxf.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/struktex/struktxf.sty	2018-03-07 21:48:40 UTC (rev 46872)
+++ trunk/Master/texmf-dist/tex/latex/struktex/struktxf.sty	2018-03-07 21:48:57 UTC (rev 46873)
@@ -37,8 +37,7 @@
    <-8> cmbtt8 <9> cmbtt9 <10-> cmbtt10
 }{}
 
-\def\btt%
-{%
+\def\btt{%
     \fontencoding{\encodingdefault}\fontfamily{cmbtt}\fontseries{bx}%
     \fontshape{n}\selectfont%
 }



More information about the tex-live-commits mailing list