From 367b7308be7e0cfe84cf093538bb7c37a70e7138 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 7 Mar 2018 21:48:57 +0000 Subject: struktex (7mar18) git-svn-id: svn://tug.org/texlive/trunk@46873 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/source/latex/struktex/struktex.dtx | 336 ++++++++++++++------- .../texmf-dist/source/latex/struktex/struktex.ins | 9 +- 2 files changed, 233 insertions(+), 112 deletions(-) (limited to 'Master/texmf-dist/source/latex/struktex') 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 % % ------------------------------------------------------------------------------------------- % @@ -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% %\NeedsTeXFormat{LaTeX2e}[1999/12/01]{% % \def\@git@ $#1Date: #2-#3-#4 #5$$#6Revision: #7$ {% % \ProvidesPackage{struktex}[#2/#3/#4 v#7 Nassi Shneiderman Diagrams (Jobst Hoffmann)]} @@ -43,9 +43,11 @@ % \ProvidesPackage{strukdoc}[#2/#3/#4 v#7 support for reading and writing files verbatim (Jobst Hoffmann)]} % %% git revision information %}% -% \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 ;; 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} +% +% \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} -% %<*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 -% % \end{macrocode} % \end{macro} % \end{macro} % +% \begin{macrocode} +% +% \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 -% -%<*struktex> % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % +% \begin{macrocode} +% +% \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}} -- cgit v1.2.3