summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/struktex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-03-07 21:48:57 +0000
committerKarl Berry <karl@freefriends.org>2018-03-07 21:48:57 +0000
commit367b7308be7e0cfe84cf093538bb7c37a70e7138 (patch)
tree5f9712e56bbcdbe584e5154ab3ee330ac34283f2 /Master/texmf-dist/source/latex/struktex
parentf715555c29bf630fa58c0129486f793e29db4c17 (diff)
struktex (7mar18)
git-svn-id: svn://tug.org/texlive/trunk@46873 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/struktex')
-rw-r--r--Master/texmf-dist/source/latex/struktex/struktex.dtx336
-rw-r--r--Master/texmf-dist/source/latex/struktex/struktex.ins9
2 files changed, 233 insertions, 112 deletions
diff --git a/Master/texmf-dist/source/latex/struktex/struktex.dtx b/Master/texmf-dist/source/latex/struktex/struktex.dtx
index 05ba74e0917..6e347068714 100644
--- a/Master/texmf-dist/source/latex/struktex/struktex.dtx
+++ b/Master/texmf-dist/source/latex/struktex/struktex.dtx
@@ -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,9 +43,11 @@
%<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
@@ -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 @@ sed -e "`echo \"s/^ /@/g\" | tr '@' '\011'`" struktex.mk > Makefile
% \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 @@ sed -e "`echo \"s/^ /@/g\" | tr '@' '\011'`" struktex.mk > Makefile
%<*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 @@ These are the optional height and the required argument condition"
(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 @@ These are the optional height and the required argument condition"
% \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 @@ These are the optional height and the required argument condition"
% 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 @@ These are the optional height and the required argument condition"
% \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@nss}[1]{\typeout{===> dbg String:\space#1}}
+\newcommand{\dbgArgs@nss}[1]{\typeout{===> dbg Args:\space\space\space#1}}
+\newcommand{\dbgCond@nss}[1]{%
+ \@ifthenelse{\boolean{#1}}{
+ \typeout{===> dbg Cond:\space #1 = true}
+ }{
+ \typeout{===> dbg Cond:\space #1 = false}
+ }
+}
\newcommand{\dbgCount@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@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@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@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 @@ These are the optional height and the required argument condition"
% \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 @@ These are the optional height and the required argument condition"
}
% \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@nss}
+\DeclareOption{fixedindent}%
+{%
+ \setboolean{fixedindent@nss}{true}
+ \gdef\xindent@nss{\dimtomm{\baselineskip}}
+}
+% \end{macrocode}
+%
%% \ifnum\language=\languageNGerman%
% Nun werden andere Pakete geladen und die Optionen verarbeitet.%
% \else%
@@ -4711,20 +4768,19 @@ These are the optional height and the required argument condition"
\ifthenelse{\boolean{debug}}{
\typeout{debug active}}{
\typeout{debug inactive}
- \renewcommand{\dbgString@nss}[1]{}
+ \renewcommand{\dbgCond@nss}[1]{}
\renewcommand{\dbgCount@nss}[2][]{}
\renewcommand{\dbgCoord@nss}[3][]{}
\renewcommand{\dbgMark@nss}[3][]{}
+ \renewcommand{\dbgString@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 @@ These are the optional height and the required argument condition"
% \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 @@ These are the optional height and the required argument condition"
% 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 @@ These are the optional height and the required argument condition"
<-8> cmbtt8 <9> cmbtt9 <10-> cmbtt10
}{}
-\def\btt%
-{%
+\def\btt{%
\fontencoding{\encodingdefault}\fontfamily{cmbtt}\fontseries{bx}%
\fontshape{n}\selectfont%
}
@@ -4839,11 +4901,14 @@ These are the optional height and the required argument condition"
\@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 @@ These are the optional height and the required argument condition"
% \changes{v121}{10/08/31}{added package url as an requirement}
% \begin{macrocode}
%<*struktxp>
+% \end{macrocode}
+%
+% \begin{macrocode}
\RequirePackage{url}
% \end{macrocode}
%
@@ -5290,16 +5358,23 @@ These are the optional height and the required argument condition"
\let\sKey=\pKeyword
\let\sTrue=\pTrue
\let\sFalse=\pFalse
-%</struktxp>
-%<*struktex>
% \end{macrocode}
% \end{macro}
% \end{macro}
% \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@nss}
% \changes{v-4.0b}{95/05/02}{umbenannt von `s@velength}
% \changes{v-2.5}{93/09/09}{`VarDeclWd eingef"uhrt}
@@ -5732,14 +5807,13 @@ These are the optional height and the required argument condition"
% \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 @@ These are the optional height and the required argument condition"
% \end{macro}
%
% \begin{macro}{\str@kt}
-% \ifnum\language=\languageNGerman%
-% |\str@kt| setzt globale Werte: |\gx@nss| als x-Koordinate (|#1|), |\gy@nss| als
-% y-Koordinate (|#2|) und |\gsize@nss| als Breite des aktuellen Struktogramms
-% (|#3|).
-% Gleichzeitig wird eine Gruppe ge"offnet, in der mit lokalen Kopien dieser
-% Werte (|\x@nss|, |\y@nss| und |\xsize@nss|) gearbeitet werden kann.
-% \else%
-% |\str@kt| sets global values: |\gx@nss| as x-coordinate (|#1|), |\gy@nss| as
-% y-coordinate (|#2|) and |\gsize@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@nss|, |\y@nss| and |\xsize@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@kt| setzt globale Werte: |\gx@nss| als x-Koordinate (|#1|),
+% |\gy@nss| als y-Koordinate (|#2|) der linken oberen Ecke und
+% |\gsize@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@nss|, |\gy@nss|) gezeichnet.
+%
+% Gleichzeitig wird eine Gruppe ge"offnet, in der mit lokalen Kopien
+% dieser Werte (|\x@nss|, |\y@nss| und |\xsize@nss|) gearbeitet werden
+% kann. Diese Gruppe kann dann Unterstruktogramme enthalten (Sequenzen,
+% Schleifen und Entscheidungen).%
+% \else%
+% |\str@kt| sets global values: |\gx@nss| as x-coordinate (|#1|),
+% |\gy@nss| as y-coordinate (|#2|) of the upper left corner and
+% |\gsize@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@nss|,
+% |\gy@nss|).
+%
+% At the same time a group will be opened, in which one can work with
+% local copies of these values (|\x@nss|, |\y@nss| and
+% |\xsize@nss|). This group may contain further (sub) structured box
+% charts (e.\,g. for loops or selections).%
+% \fi%
% \begin{macrocode}
\def\str@kt#1#2#3{%
\dbgString@nss{Beginn \string\str@kt}
+ \dbgArgs@nss{#1, #2, #3}
\global\gx@nss=#1\global\gy@nss=#2\global\gsize@nss=#3%
\begingroup%
\x@nss=\gx@nss\y@nss=\gy@nss\xsize@nss=\gsize@nss%
@@ -5864,21 +5951,24 @@ These are the optional height and the required argument condition"
% \changes{v-4.0b}{95/05/08}{umbenannt von `xin}
% \changes{v-3.2a}{94/09/14}{Beschreibung eingef"uhrt}
% \begin{macro}{\set@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@nss| setzt den als ersten Parameter |#1| "ubergebenen Text in eine horizontale
-% Box |\TextBox@nss|. Die Breite der Box ist durch die aktuelle Breite
-% \cs{xsize@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@nss| sets the text, which is given as parameter |#1|, into a horizontal
-% box |\TextBox@nss|. The width of this box is the current width
-% \cs{xsize@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@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@nss| setzt den als ersten Parameter |#1| "ubergebenen Text in
+% eine horizontale Box |\TextBox@nss|. Die Breite der Box ist die
+% aktuelle Breite \cs{xsize@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@nss| sets the text, which is given as parameter |#1|, into a
+% horizontal box |\TextBox@nss|. The width of this box is the current
+% width \cs{xsize@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@nss}
% \begin{macrocode}
\def\set@nss#1#2{%
\dbgString@nss{Beginn \string\set@nss}
@@ -5895,21 +5985,23 @@ These are the optional height and the required argument condition"
% \end{macro}
%
% \begin{macro}{\block@nss}
-% \changes{v061}{10/05/31}{enhanced the documentation and added some debug code}
-% \changes{v-7.0a}{04/01/04}{umbenannt von `bl@ck}
-% \ifnum\language=\languageNGerman%
-% |\block@nss| setzt die Box |\TextBox@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@nss|, vergr"o"sert. der erste Parameter |#1| gibt die
-% (optionale) H"ohe des Kastens an.
-% \else%
-% |\block@nss| sets the box |\TextBox@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@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@ck}%
+% \ifnum\language=\languageNGerman%
+% |\block@nss| setzt die Box |\TextBox@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@nss|, vergr"o"sert. der erste Parameter |#1| gibt die
+% (optionale) H"ohe des Kastens an.%
+% \else%
+% |\block@nss| sets the box |\TextBox@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@nss| will be
+% changed. Parameter |#1| gives the (optional) height of the box.%
+% \fi%
% \begin{macrocode}
\def\block@nss#1#2{%
\dbgString@nss{Beginn \string\block@nss}
@@ -5961,6 +6053,7 @@ These are the optional height and the required argument condition"
\else%
\advance\y@nss by \ydepth@nss%
\fi\fi%
+ \dbgString@nss{Ende \string\block@nss}
}
% \end{macrocode}
% \end{macro}
@@ -6643,8 +6736,8 @@ These are the optional height and the required argument condition"
% \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 @@ These are the optional height and the required argument condition"
\def\while{\let\next=\@while\getoption}
\def\@while#1{%
\dbgString@nss{Beginn \string\@while}
+ \dbgCond@nss{fixedindent@nss}
\tempx@nss=\xsize@nss\divide\tempx@nss by 6
\set@nss{#1\hskip\xsize@nss\unitlength}{\tempx@nss}
\tempy@nss=\number\param@nss000 \block@nss{\tempy@nss}{0}
\tempy@nss=\y@nss\advance\y@nss by \ydepth@nss
- \tempx@nss=\x@nss\advance\tempx@nss by \ydepth@nss
- \tempxx@nss=\xsize@nss\advance\tempxx@nss by -\ydepth@nss
+ \@ifthenelse{\boolean{fixedindent@nss}}{%
+ \tempx@nss=\x@nss\advance\tempx@nss by \xindent@nss
+ \tempxx@nss=\xsize@nss\advance\tempxx@nss by -\xindent@nss
+ }{%
+ \tempx@nss=\x@nss\advance\tempx@nss by \ydepth@nss
+ \tempxx@nss=\xsize@nss\advance\tempxx@nss by -\ydepth@nss
+ }
\str@kt{\tempx@nss}{\tempy@nss}{\tempxx@nss}%
}
\def\whileend{%
@@ -6780,19 +6879,40 @@ These are the optional height and the required argument condition"
% \begin{macrocode}
\def\until{\let\next=\@until\getoption}
\def\@until#1{\tempx@nss=\xsize@nss\divide\tempx@nss by 6
- \set@nss{#1\hskip\xsize@nss\unitlength}{\tempx@nss}
- \tempy@nss=\number\param@nss000 \block@nss{\tempy@nss}{2}
+ \dbgString@nss{Beginn \string\@until}
+ \dbgCoord@nss[Ursprung]{\x@nss}{\y@nss}
+ \dbgCount@nss[Breite]{\xsize@nss}
+ \set@nss{#1\hskip\xsize@nss\unitlength}{\tempx@nss}
+ \tempy@nss=\number\param@nss000 \block@nss{\tempy@nss}{2}
+ \@ifthenelse{\boolean{fixedindent@nss}}{%
+ \advance\x@nss by \xindent@nss\tempxx@nss=\xsize@nss
+ \advance\tempxx@nss by -\xindent@nss \tempy@nss=\ydepth@nss
+ % \advance\x@nss by \xindent@nss\tempxx@nss=\xsize@nss
+ % \advance\tempxx@nss by -\xindent@nss \tempy@nss=\ydepth@nss
+ }{
\advance\x@nss by \ydepth@nss\tempxx@nss=\xsize@nss
\advance\tempxx@nss by -\ydepth@nss \tempy@nss=\ydepth@nss
- \str@kt{\x@nss}{\y@nss}{\tempxx@nss} }
-\def\untilend{\endstr@kt\advance\x@nss by-\tempy@nss
- \advance\ydepth@nss by -\tempy@nss
- \tempyy@nss=\ydepth@nss\ydepth@nss=-\ydepth@nss%
- \advance\ydepth@nss by \y@nss
- \y@nss=\tempyy@nss
+ }
+ \str@kt{\x@nss}{\y@nss}{\tempxx@nss}
+}
+\def\untilend{\endstr@kt%
+ \advance\ydepth@nss by -\tempy@nss
+ \tempyy@nss=\ydepth@nss\ydepth@nss=-\ydepth@nss%
+ \advance\ydepth@nss by \y@nss
+ \y@nss=\tempyy@nss
+ \@ifthenelse{\boolean{fixedindent@nss}}{%
+ \advance\x@nss by -\xindent@nss
+ \put(\x@nss,\y@nss){\framebox(\xsize@nss,\ydepth@nss){}}
+ \put(\x@nss,\y@nss){\makebox(\xsize@nss,\tempy@nss)
+ {\box\TextBox@nss}}
+ }{%
+ \advance\x@nss by-\tempy@nss
\put(\x@nss,\y@nss){\framebox(\xsize@nss,\ydepth@nss){}}
\put(\x@nss,\y@nss){\makebox(\xsize@nss,\tempy@nss)
- {\box\TextBox@nss}}}
+ {\box\TextBox@nss}}
+ }%
+ \dbgString@nss{Ende \string\untilend}%
+}
% \end{macrocode}
% \end{macro}
% \end{macro}
diff --git a/Master/texmf-dist/source/latex/struktex/struktex.ins b/Master/texmf-dist/source/latex/struktex/struktex.ins
index ee60a1e95ea..24007b80d40 100644
--- a/Master/texmf-dist/source/latex/struktex/struktex.ins
+++ b/Master/texmf-dist/source/latex/struktex/struktex.ins
@@ -60,7 +60,7 @@ to
\Msg{*** Generating example files ***}
\preamble
-\endpreamble
+\endpreamble%
\generate%
{%
\askforoverwritefalse
@@ -73,9 +73,10 @@ to
}
\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}}