diff options
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/latex/struktex/LIESMICH | 4 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/struktex/README | 2 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/struktex/THIS_IS_VERSION_v101 | 1 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/struktex/struktex.de.pdf | bin | 326076 -> 437227 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/struktex/struktex.el | 48 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/struktex/struktex.en.pdf | bin | 310241 -> 417963 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/struktex/struktex.mk | 57 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/struktex/struktex.dtx | 2413 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/struktex/struktex.ins | 8 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/struktex/strukdoc.sty | 11 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/struktex/struktex.sty | 427 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/struktex/struktxf.sty | 11 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/struktex/struktxp.sty | 22 |
13 files changed, 1693 insertions, 1311 deletions
diff --git a/Master/texmf-dist/doc/latex/struktex/LIESMICH b/Master/texmf-dist/doc/latex/struktex/LIESMICH index 3ac4380bf25..1d26234b8c7 100644 --- a/Master/texmf-dist/doc/latex/struktex/LIESMICH +++ b/Master/texmf-dist/doc/latex/struktex/LIESMICH @@ -1,5 +1,5 @@ # -# $Revision: 1.3 $ +# $Revision: 52 $ # Das LaTeX-Paket "struktex.dtx" enthaelt Makros zur Erzeugung von Nassi-Shneidermann-Struktogrammen. @@ -20,4 +20,4 @@ Entwicklung gerne entgegen unter j.hoffmann@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 Lizens. +zu Details dieser Lizenz. diff --git a/Master/texmf-dist/doc/latex/struktex/README b/Master/texmf-dist/doc/latex/struktex/README index f34ba08ef2a..d22bd8dd049 100644 --- a/Master/texmf-dist/doc/latex/struktex/README +++ b/Master/texmf-dist/doc/latex/struktex/README @@ -1,5 +1,5 @@ # -# $Revision: 1.3 $ +# $Revision: 52 $ # The LaTeX package "struktex.dtx" contains some macros which generate Nassi Shneidermann structure charts diff --git a/Master/texmf-dist/doc/latex/struktex/THIS_IS_VERSION_v101 b/Master/texmf-dist/doc/latex/struktex/THIS_IS_VERSION_v101 new file mode 100644 index 00000000000..2e20fe7c45a --- /dev/null +++ b/Master/texmf-dist/doc/latex/struktex/THIS_IS_VERSION_v101 @@ -0,0 +1 @@ +VERSION v101 of 2010/06/25 diff --git a/Master/texmf-dist/doc/latex/struktex/struktex.de.pdf b/Master/texmf-dist/doc/latex/struktex/struktex.de.pdf Binary files differindex 2e2f98956a9..13a488ebb7f 100644 --- a/Master/texmf-dist/doc/latex/struktex/struktex.de.pdf +++ b/Master/texmf-dist/doc/latex/struktex/struktex.de.pdf diff --git a/Master/texmf-dist/doc/latex/struktex/struktex.el b/Master/texmf-dist/doc/latex/struktex/struktex.el index 13a65de84d1..fbdbf17bac0 100644 --- a/Master/texmf-dist/doc/latex/struktex/struktex.el +++ b/Master/texmf-dist/doc/latex/struktex/struktex.el @@ -3,8 +3,8 @@ ;; Copyright (C) 2006 Free Software Foundation, Inc. -;; Author: J. Hoffmann <j.hoffmann@fh-aachen.de> -;; Maintainer: j.hoffmann@fh-aachen.de +;; Author: J. Hoffmann <j.hoffmann_at_fh-aachen.de> +;; Maintainer: j.hoffmann_at_fh-aachen.de ;; Created: 2006/01/17 ;; Keywords: tex @@ -17,6 +17,8 @@ (lambda () ;; 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 "centernss" '("struktogramm" LaTeX-env-struktogramm) @@ -27,7 +29,7 @@ '("assign" [ "Height" ] "Statement") "StrukTeX" '("case" TeX-mac-case) - "switch" "condition" + "switch" "Condition" "caseend" '("declarationtitle" "Title") '("description" "Name" "Meaning") @@ -36,8 +38,11 @@ '("forever" TeX-mac-forever) "foreverend" '("ifthenelse" TeX-mac-ifthenelse) - "ifend" "change" + "ifend" + '("inparallel" TeX-mac-inparallel) + '("task" "Description") + "inparallelend" "sProofOn" "sProofOff" '("until" TeX-mac-until) @@ -78,7 +83,7 @@ (format "[%s]" title))))) (defun TeX-mac-case (macro) - "Insert \case with all arguments, the needed \switch(es) and the final \caseend. + "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): ")) @@ -106,7 +111,7 @@ condition, and the texts for the different cases" (insert "\\caseend"))) (defun TeX-mac-forever (macro) - "Insert \forever-block with all arguments. + "Insert \\forever-block with all arguments. This is only the optional height" (let ((height (read-string "Height (optional): "))) (insert (if (not (zerop (length height))) @@ -117,7 +122,7 @@ This is only the optional height" (insert "\\foreverend"))) (defun TeX-mac-ifthenelse (macro) - "Insert \ifthenelse with all arguments. + "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" (let ((height (read-string "Height (optional): ")) @@ -139,8 +144,33 @@ condition, and the possible values of the condition" (newline-and-indent) (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" + (let ((height (read-string "Height (optional): ")) + (number (read-string "Number of parallel tasks: ")) + (text (read-string "Task no. 1: ")) + (count 1) + ) + (setq number-int (string-to-number number)) + (insert (concat (if (not (zerop (length height))) + (format "[%s]" height)) + (format "{%s}{%s}" number text))) + (while (< count number-int) + (end-of-line) + (newline-and-indent) + (newline-and-indent) + (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"))) + (defun TeX-mac-until (macro) - "Insert \until with all arguments. + "Insert \\until with all arguments. These are the optional height and the required argument condition" (let ((height (read-string "Height (optional): ")) (condition (read-string "Condition: "))) @@ -153,7 +183,7 @@ These are the optional height and the required argument condition" (insert "\\untilend"))) (defun TeX-mac-while (macro) - "Insert \while with all arguments. + "Insert \\while with all arguments. These are the optional height and the required argument condition" (let ((height (read-string "Height (optional): ")) (condition (read-string "Condition: "))) diff --git a/Master/texmf-dist/doc/latex/struktex/struktex.en.pdf b/Master/texmf-dist/doc/latex/struktex/struktex.en.pdf Binary files differindex 12a5f4e114c..4ec917ca60b 100644 --- a/Master/texmf-dist/doc/latex/struktex/struktex.en.pdf +++ b/Master/texmf-dist/doc/latex/struktex/struktex.en.pdf diff --git a/Master/texmf-dist/doc/latex/struktex/struktex.mk b/Master/texmf-dist/doc/latex/struktex/struktex.mk index d8edfaaabf7..ae40f21f613 100644 --- a/Master/texmf-dist/doc/latex/struktex/struktex.mk +++ b/Master/texmf-dist/doc/latex/struktex/struktex.mk @@ -21,8 +21,8 @@ # - clean # - clean-example # -# Author: Jobst Hoffmann, Fachhochschule Aachen, Abt. Juelich -# Date: 2003/04/18 +# Author: Jobst Hoffmann, Fachhochschule Aachen, Standort Juelich +# Date: 2006/08/23 #----------------------------------------------------------------------- # The texmf-directory, where to install new stuff (see texmf.cnf) @@ -48,13 +48,13 @@ TEXHASH=texhash ######### Edit following only, if you want to change defaults! # The directory, where to install *.cls and *.sty -CLSDIR=$(INSTALLTEXMF)/tex/latex/jhf/$(PACKAGE) +CLSDIR=$(INSTALLTEXMF)/tex/latex/$(PACKAGE) # The directory, where to install documentation -DOCDIR=$(INSTALLTEXMF)/doc/latex/jhf/$(PACKAGE) +DOCDIR=$(INSTALLTEXMF)/doc/latex/$(PACKAGE) # The directory, where to install the sources -SRCDIR=$(INSTALLTEXMF)/source/latex/jhf/$(PACKAGE) +SRCDIR=$(INSTALLTEXMF)/source/latex/$(PACKAGE) # The directory, where to install demo-files # If we have some, we have to add following 2 lines to install rule: @@ -68,7 +68,8 @@ 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_\\2+'` +VERSION_S := `latex getversion | grep '^VERSION' | \ + sed 's+^VERSION \\(.*\\) of .*+\\1+'` ######################################################################## # End of customization section ######################################################################## @@ -80,47 +81,45 @@ PDFLATEX = pdflatex # postscript viewer GV = gv -COMMON_OPTIONS = \OnlyDescription\CodelineNumbered +COMMON_OPTIONS = # \OnlyDescription\CodelineNumbered\PageIndex HISTORY_OPTIONS = \RecordChanges DEVELOPER_OPTIONS = \EnableCrossrefs\RecordChanges\AlsoImplementation\CodelineIndex +# The name of the game PACKAGE = struktex +# strip off the comments from the package +$(PACKAGE).sty $(PACKAGE)-test-*.tex: $(PACKAGE).ins $(PACKAGE).dtx + +$(LATEX) $<; \ + sh $(PACKAGE).makemake + all-de: $(PACKAGE).de.pdf all-en: $(PACKAGE).en.pdf -# strip off the comments from the package -$(PACKAGE).sty $(PACKAGE)-test-*.tex: $(PACKAGE).dtx - -$(PACKAGE).sty $(PACKAGE)-test-*.tex: $(PACKAGE).ins - +$(LATEX) $< - # generate the documentation -$(PACKAGE).dvi: $(PACKAGE).sty - -$(PACKAGE).de.dvi: $(PACKAGE).dtx +$(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).de.pdf: $(PACKAGE).dtx $(PACKAGE).sty +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\input{$<}" +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\input{$<}" +mv $(<:.dtx=.pdf) $(<:.dtx=.de.pdf) -$(PACKAGE).en.dvi: $(PACKAGE).dtx - +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\def\selectlanguageEnglish{}\input{$<}" - +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\def\selectlanguageEnglish{}\input{$<}" +$(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 - +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\def\selectlanguageEnglish{}\input{$<}" - +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\def\selectlanguageEnglish{}\input{$<}" +$(PACKAGE).en.pdf: $(PACKAGE).dtx $(PACKAGE).sty + +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\def\primarylanguage{english}\input{$<}" + +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\def\primarylanguage{english}\input{$<}" +mv $(<:.dtx=.pdf) $(<:.dtx=.en.pdf) # generate the documentation with revision history (only german) -history: $(PACKAGE).dtx +history: $(PACKAGE).dtx $(PACKAGE).sty +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(HISTORY_OPTIONS)}\input{$<}" +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(HISTORY_OPTIONS)}\input{$<}" +makeindex -s gind.ist $(PACKAGE).idx @@ -129,7 +128,7 @@ history: $(PACKAGE).dtx # generate the documentation for the developer (revision history always # in german) -develop-de: $(PACKAGE).dtx +develop-de: $(PACKAGE).dtx $(PACKAGE).sty +$(LATEX) "\AtBeginDocument{$(HISTORY_OPTIONS)$(DEVELOPER_OPTIONS)}\input{$<}" +$(LATEX) "\AtBeginDocument{$(HISTORY_OPTIONS)$(DEVELOPER_OPTIONS)}\input{$<}" +makeindex -s gind.ist $(PACKAGE).idx @@ -141,12 +140,12 @@ else +mv $(<:.dtx=.dvi) $(<:.dtx=.de.dvi) endif -develop-en: $(PACKAGE).dtx - +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(DEVELOPER_OPTIONS)}\def\selectlanguageEnglish{}\input{$<}" - +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(DEVELOPER_OPTIONS)}\def\selectlanguageEnglish{}\input{$<}" +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{$<}" +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\selectlanguageEnglish{}\input{$<}" + +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(DEVELOPER_OPTIONS)}\def\primarylanguage{english}\input{$<}" ifneq (,$(findstring pdf,$(LATEX))) +mv $(<:.dtx=.pdf) $(<:.dtx=.en.pdf) else diff --git a/Master/texmf-dist/source/latex/struktex/struktex.dtx b/Master/texmf-dist/source/latex/struktex/struktex.dtx index ecffa899543..89d1f5414e8 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 - 2006 Jobst Hoffmann, FH Aachen, Abt. J"ulich +% Copyright (C) 1995 - 2010 Jobst Hoffmann, FH Aachen, Abt. J"ulich % <j.hoffmann _at_ fh-aachen.de> % ------------------------------------------------------------------------------------------- % @@ -16,193 +16,33 @@ % % \fi % +% +% \changes{v084}{10/06/24}{small layout changes} +% \changes{v084}{10/06/24}{corrected revision macro---added missing command} +% \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 %<struktex|struktxf|struktxp|strukdoc>\NeedsTeXFormat{LaTeX2e}[1999/12/01] -%<struktex|struktxf|struktxp|strukdoc>\def\filedate{2006/08/20} -%<struktex|struktxf|struktxp|strukdoc>\def\fileversion{v8.3b} -%<struktex>\ProvidesPackage{struktex} -%<struktex> [\filedate\space\fileversion\space Nassi Shneidermann Charts (Jobst Hoffmann)] -%<struktxf>\ProvidesPackage{struktxf} -%<struktxf> [\filedate\space\fileversion\space Fonts for Nassi Shneidermann Charts (Jobst Hoffmann)] -%<struktxp>\ProvidesPackage{struktxp} -%<struktxp> [\filedate\space\fileversion\space Keywords for Nassi Shneidermann Charts (Jobst Hoffmann)] -% \fi -% \CheckSum{2071} -% \def\docdate {2006/08/20} ^^A not style'able!! +%<struktex|struktxf|struktxp|strukdoc>{% +%<struktex|struktxf|struktxp|strukdoc> \def\@svn@ $#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: 2010-06-25 13:00:22 +0200 (Fr, 25 Jun 2010) $$Revision: 101 $ % +%<struktex|struktxf|struktxp|strukdoc>} +% \fi +% \CheckSum{2436} ^^A set to 0 to inactivate the CheckSum +% \def\docdate {2010/06/25} ^^A not style'able!! % % \iffalse meta-comment -% struktex.dtx $Revision: 7.14 $ -% $Date: 2006/08/20 11:43:18 $ -% $RCSfile: struktex.dtx,v $ -% $Log: struktex.dtx,v $ -% Revision 7.14 2006/08/20 11:43:18 ax006ho -% - kleine Korrekturen (\fileversion ... aktualisiert) -% - Makefile erweitert: das Ziel "dist" erzeugt automatisch eine -% Datei THIS_IS_VERSION_... -% - Option english in der DAtei getversion.tex gestrichen -% -% Revision 7.13 2006/08/19 18:36:36 ax006ho -% - struktex.el kann nun case korrekt einfuegen: es wird die entsprechende -% Anzahl von switch-Kommandos mitsamt den zugehoerigen Argumenten -% eingefuegt -% -% Revision 7.12 2006/08/18 20:06:15 ax006ho -% - die zusaetzlichen Optionen draft und final wurden eingefuehrt -% - einige Tippfehler wurden korrigiert, Umlaute gegen die Ersatzdarstellung -% ausgetauscht -% - Beispiel 2 wurde geaendert: die Option draft wird bei Verzicht auf -% sProofOn benutzt -% - die Funktionalitaet von struktex.el wurde erweitert -% -% Revision 7.11 2006/08/16 20:30:43 ax006ho -% - AUCTeX Unterstuetzung verbessert -% - kleinere Textkorrekturen -% - verbesserte Dokumentation der Optionen -% - Dokumentation des Makros `assert -% - Korrektur des integrierten Makefiles -% - verbesserte Dokumentation von struktex.el -% - neue Option "nofiller" -% - `ifmmode durch `ensuremath ersetzt -% - Korrektur eines Fehlers: schraege Linien enden nun korrekt -% -% Revision 7.10 2006/01/17 12:01:04 ax006ho -% - AUCTeX Unterstuetzung eingefuehrt -% -% Revision 7.9 2005/09/01 07:03:04 ax006ho -% - corrected the make target (clean-all -> realclean) in the Makefile header -% -% Revision 7.8 2005/06/13 13:22:25 ax006ho -% - Dokumentation von `case verbessert -% - Code bereinigt -% - fehlerhafte Umbenennung von `tempx@nss korrigiert -% - Tippfehler korrigiert -% -% Revision 7.7 2005/06/13 13:02:28 ax006ho -% - ein paar Tippfehler korrigiert -% - Test auf das Arbeiten mit pdfTeX umgestellt (nun unter Benutzung von -% ifpdf.sty -% -% Revision 7.6 2005/01/12 11:16:08 ax006ho -% - updated copyright -% - some small changes in the documentation (case) -% - changed the license remark in the english version -% - corrected error with case (height of the separating lines) -% - added key words for Python -% - added file variables for XEmacs -% -% Revision 7.5 2004/07/16 10:55:25 ax006ho -% - Texte verbessert -% - Umschaltung der Sprache nun durch ein Literal -% - Ueberschriften fuer die Inhaltsangabe teilweise verkuerzt -% - Beispieldatei zum Testen der Fontauswahl verbessert: \obeylines -% ist nun gruppenweise gesetzt -% - Makefile korrigiert -% - Literaturangaben aktualisiert -% -% Revision 7.4 2004/07/14 12:47:57 ax006ho -% - \fileversion und \filedate zur einfacheren zentralen Verwaltung von -% Entwicklungsdaten eingefuehrt -% - Im Vorwort Hinweis auf pict2e.sty gegeben -% - Entwicklungsgeschichte korrigiert und erweitert -% - Umstellung der Sprachverwaltung auf babel -% - Zeichnung zum Layout der Deklarationen verbessert (\multiput statt n-mal -% \put, Korrektur von Bezeichnungen) -% - .pdf-Ausgabe eingefuehrt -% - Hinweis auf Luxi Mono als Ersatz fuer cmbtt -% -% Revision 7.3 2004/07/13 10:01:51 ax006ho -% - explizites Laden von pict2e -% - kleine Korrektur am Makefile -% - in der zweiten Beispieldatei wird nun statt curves.sty pict2e.sty geladen -% -% Revision 7.2 2004/07/13 08:46:04 ax006ho -% - an pict2e.sty angepasst -% - kleinere Korrekturen an der Dokumentation -% -% Revision 7.1 2004/07/12 15:32:42 ax006ho -% - Anzahl der Z"ahler reduziert -% - einige kleinere Korrekturen angebracht -% -% Revision 7.0.1.1 2004/03/09 10:09:16 ax006ho -% - Adresse ge"andert -% - Code teilweise umgestellt -% - Dateinamen ge"andert -% - Tippfehler korrigiert -% - Marker f"ur interne Beispiel -% - Testrahmen ge"andert -% - Beispiele f"ur unterschiedlichen Programmierspracheneinsatz erweitert -% - Makefile integriert -% - `pLanguage ge"andert: `pLanguage@nss zus"atzlich eingef"uhrt -% - Sprachbezeichnungen ge"andert: Suffix @nss -% - Erweiterung f"ur die Verifikation von Algorithmen eingef"uhrt -% -% Revision 7.0 2004/01/04 11:07:13 ax006ho -% - Adresse ge"andert -% - Code teilweise umgestellt -% - Dateinamen ge"andert -% - Tippfehler korrigiert -% - Marker f"ur interne Beispiel -% - Testrahmen ge"andert -% - Beispiele f"ur unterschiedlichen Programmierspracheneinsatz erweitert -% - Makefile integriert -% - `pLanguage ge"andert: `pLanguage@nss zus"atzlich eingef"uhrt -% - Sprachbezeichnungen ge"andert: Suffix @nss -% -% Revision 6.0 2001/05/25 09:33:44 ax006ho -% - Dokumentation von `case verbessert -% - Makros `cs, `marg, `oarg, `pparg sowie `envb und `enve zur besseren -% Dokumentation eingesetzt -% - Englische "Ubersetzung der Dokumentation hinzugef"ugt -% - Code umgestaltet, z.B. `def \(\rightarrow\) `newcommand, -% \$\ldots\$ \(\rightarrow\) `(\ldots`) -% - Zus"atzliche Paketoption "`curves"' zur Gestaltung beliebiger Steigungen -% eingef"uhrt -% -% Revision 5.0.4.2 2001/04/22 17:18:25 ax006ho -% - Umgebungen zur einfacheren Notation der Dokumentation eingef"uhrt -% - Erster Versuch einer gemischtsprachigen Dokumentation -% -% Revision 5.0.4.1 1999/11/16 20:06:20 Hoffmann -% - Neuimplementierung des Setzens von Ausdr"ucken und -% (Schluessel-)woertern -% -% Revision 5.0.3.1 1999/11/16 10:29:27 Hoffmann -% - Text in Entscheidungsbloecken wird der Steigung der Linien -% entsprechend gesetzt -% -% Revision 5.0.2.2 1998/05/28 11:59:22 Hoffmann -% - Tippfehlerkorrektur: Umlaut "`ue"' durch "`"u"' ersetzt -% -% Revision 5.0.2.1 1997/12/03 13:03:33 Hoffmann -% - Umstellung der Dokumentation, dadurch Verzicht auf eigene Treiberdatei -% m"oglich -% - kleinere Korrekturen -% -% Revision 5.0.1.2 1997/11/02 20:11:39 Hoffmann -% - Dokumentation umgestellt mittels der Umgebung example sowie der Makros -% verbatiminput und verbatimwrite -% - Zugehoerige Makros neu, aber noch nicht dokumentiert -% -% Revision 5.0.1.1 1997/05/13 06:29:22 Hoffmann -% kleinere stilistische "Anderungen nach W. Hanrath -% -% Revision 5.0 1997/04/28 09:46:41 Hoffmann -% - Dateinamen zwecks Kompatibilit"at auf Kleinschreibung umgesetzt -% - kleinere textuelle "Anderungen, Fontauswahl teilweise ge"andert -% - Abh"angigkeiten der Dokumentation von zus"atzlichen Paketen beseitigt -% -% Revision 4.5 1997/04/28 08:29:29 Hoffmann -% Umstellung auf Versionskontrolle mit rcs -% -%---------------------------------------------------------------------------- -% \fi -%\iffalse Dies ist ein META-KOMMENTAR % Alles bis zum n"achsten `\ fi' (ohne Leerzeichen) wird % ignoriert. Das ist notwendig, da `%' nicht weiter % Kommentar einleitet, wenn diese Datei eingelesen wird. % % Stil-Option `struktex' zum Gebrauch mit LaTeX2e -% Copyright (C) 1995-2004 Jobst Hoffmann, alle Rechte vorbehalten. +% Copyright (C) 1995-2010 Jobst Hoffmann, alle Rechte vorbehalten. % % % Das Kopieren dieser Datei ist nur zul"assig, wenn @@ -229,76 +69,80 @@ % % \def\StrukTeXSty{\textsf{struktex.sty}} % -% \changes{v8.3b}{06/08/20}{Erweiterung im Makefile: f"ur dist wird automatisch -% eine Datei THIS_IS_VERSION_... erzeugt.} -% \changes{v8.3a}{06/08/19}{struktex.el erweitert: es wird die korrekte Anzahl +% \changes{v056}{10/01/21}{changed revision entries "vN.NNx" $\rightarrow$ "v-N.NNx"} +% \changes{v056}{10/01/21}{removed trailing blanks} +% \changes{v054}{10/01/18}{changed revisioning tool from cvs to subversion} +% \changes{v-9.1}{10/01/17}{changed the position of `label commands} +% \changes{v-8.3b}{06/08/20}{Erweiterung im Makefile: f"ur dist wird automatisch +% eine Datei THIS\_IS\_VERSION\_... erzeugt.} +% \changes{v-8.3a}{06/08/19}{struktex.el erweitert: es wird die korrekte Anzahl % von `switch{} generiert und mit Inhalt gef"ullt} -% \changes{v8.3}{06/08/18}{Weitere Optionen "`draft"' und "`final"' eingef"uhrt} -% \changes{v8.2a}{06/01/17}{struktex.el korrigiert und erweitert} -% \changes{v8.1a}{05/09/01}{Erste (fehlerhafte) Version einer struktex.el Stil -% Datei zur Unterst"utzung von AUC\TeX hinzugef"ugt} -% \changes{v8.0f}{05/06/11}{Dokumentation von `case verbessert} -% \changes{v8.0d}{04/12/29}{`switch zeigt bei geeigneten Beispielen das +% \changes{v-8.3}{06/08/18}{Weitere Optionen "`draft"' und "`final"' eingef"uhrt} +% \changes{v-8.2a}{06/01/17}{struktex.el korrigiert und erweitert} +% \changes{v-8.1a}{05/09/01}{Erste (fehlerhafte) Version einer struktex.el Stil +% Datei zur Unterst"utzung von AUC\TeX{} hinzugef"ugt} +% \changes{v-8.0f}{05/06/11}{Dokumentation von `case verbessert} +% \changes{v-8.0d}{04/12/29}{`switch zeigt bei geeigneten Beispielen das % rechtsb"undige Setzen von Bedingungen} -% \changes{v8.0c}{04/07/15}{Zweisprachigkeit verbessert, Bezeichner statt +% \changes{v-8.0c}{04/07/15}{Zweisprachigkeit verbessert, Bezeichner statt % Nummern eingef"uhrt} -% \changes{v8.0b}{04/07/14}{`fileversion und `filedate zur einfacheren +% \changes{v-8.0b}{04/07/14}{`fileversion und `filedate zur einfacheren % zentralen Verwaltung von Entwicklungsdaten eingef"uhrt} -% \changes{v7.0b}{04/03/09}{Anzahl der Z"ahler reduziert} -% \changes{v7.0a}{03/04/21}{Code teilweise umgestellt} -% \changes{v7.0a}{03/04/21}{Dateinamen ge"andert} -% \changes{v7.0a}{03/04/21}{Tippfehler korrigiert} -% \changes{v7.0a}{03/04/21}{Marker f"ur interne Beispiele umbenannt} -% \changes{v7.0a}{03/04/21}{Testrahmen ge"andert} -% \changes{v7.0a}{03/04/21}{Beispiele f"ur unterschiedlichen Programmierspracheneinsatz erweitert} -% \changes{v7.0a}{03/04/21}{Makefile integriert} -% \changes{v7.0a}{03/04/21}{`pLanguage ge"andert: `pLanguage@nss zus"atzlich eingef"uhrt} -% \changes{v7.0a}{03/04/21}{Sprachbezeichnungen ge"andert: Suffix @nss} -% \changes{v7.0}{03/04/21}{Wechsel von der RWTH Aachen zur FH Aachen, Abt. J"ulich} -% \changes{v6.0a}{01/04/22}{Dokumentation von `case verbessert} -% \changes{v6.0a}{00/12/08}{Makros `cs, `marg, `oarg, `pparg sowie +% \changes{v-7.0b}{04/03/09}{Anzahl der Z"ahler reduziert} +% \changes{v-7.0a}{03/04/21}{Code teilweise umgestellt} +% \changes{v-7.0a}{03/04/21}{Dateinamen ge"andert} +% \changes{v-7.0a}{03/04/21}{Tippfehler korrigiert} +% \changes{v-7.0a}{03/04/21}{Marker f"ur interne Beispiele umbenannt} +% \changes{v-7.0a}{03/04/21}{Testrahmen ge"andert} +% \changes{v-7.0a}{03/04/21}{Beispiele f"ur unterschiedlichen Programmierspracheneinsatz erweitert} +% \changes{v-7.0a}{03/04/21}{Makefile integriert} +% \changes{v-7.0a}{03/04/21}{`pLanguage ge"andert: `pLanguage@nss zus"atzlich eingef"uhrt} +% \changes{v-7.0a}{03/04/21}{Sprachbezeichnungen ge"andert: Suffix @nss} +% \changes{v-7.0}{03/04/21}{Wechsel von der RWTH Aachen zur FH Aachen, Abt. J"ulich} +% \changes{v-6.0a}{01/04/22}{Dokumentation von `case verbessert} +% \changes{v-6.0a}{00/12/08}{Makros `cs, `marg, `oarg, `pparg sowie % `envb und `enve zur besseren Dokumentation % eingesetzt} -% \changes{v6.0a}{00/11/24}{Englische "Ubersetzung der Dokumentation +% \changes{v-6.0a}{00/11/24}{Englische "Ubersetzung der Dokumentation % hinzugef"ugt} -% \changes{v6.0a}{00/11/24}{Code umgestaltet, z.B. `def $\rightarrow$ +% \changes{v-6.0a}{00/11/24}{Code umgestaltet, z.B. `def $\rightarrow$ % `newcommand, \$\ldots\$ $\rightarrow$ `(\ldots`)} -% \changes{v6.0a}{00/11/24}{Zus"atzliche Paketoption "`curves"' zur Gestaltung +% \changes{v-6.0a}{00/11/24}{Zus"atzliche Paketoption "`curves"' zur Gestaltung % beliebiger Steigungen eingef"uhrt} -% \changes{v5.4b}{00/12/08}{Umgebungen zur einfacheren Notation der +% \changes{v-5.4b}{00/12/08}{Umgebungen zur einfacheren Notation der % Dokumentation eingef"uhrt} -% \changes{v5.4b}{00/12/08}{Erster Versuch einer gemischtsprachigen +% \changes{v-5.4b}{00/12/08}{Erster Versuch einer gemischtsprachigen % Dokumentation} -% \changes{v5.4a}{99/11/16}{\textsf{stuktxp.sty} "uberarbeitet zur besseren +% \changes{v-5.4a}{99/11/16}{\textsf{stuktxp.sty} "uberarbeitet zur besseren % Darstellung von Programmen} -% \changes{v5.3a}{98/11/27}{Die Form des Textes in Bedingungen ist nun an +% \changes{v-5.3a}{98/11/27}{Die Form des Textes in Bedingungen ist nun an % beliebige Steigungen angepasst} -% \changes{v5.2b}{98/05/28}{Tippfehlerkorrektur: Umlaut "`ue"' durch +% \changes{v-5.2b}{98/05/28}{Tippfehlerkorrektur: Umlaut "`ue"' durch % "`"u"' ersetzt} -% \changes{v5.2a}{97/12/03}{Umstellung der Dokumentation, dadurch Verzicht +% \changes{v-5.2a}{97/12/03}{Umstellung der Dokumentation, dadurch Verzicht % auf eigene Treiberdatei m"oglich} -% \changes{v5.2a}{97/12/03}{kleinere Korrekturen} -% \changes{v5.1b}{97/11/02}{Umstellung der Dokumentation mittels Umgebung +% \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} -% \changes{v5.1a}{97/04/29}{kleinere stilistische "Anderungen nach W. Hanrath} -% \changes{v5.0}{97/04/28}{Dateinamen zwecks Kompatibilit"at auf Kleinschreibung umgesetzt} -% \changes{v5.0}{97/04/28}{kleinere textuelle "Anderungen, Fontauswahl teilweise ge"andert} -% \changes{v5.0}{97/04/28}{Abh"angigkeiten der Dokumentation von zus"atzlichen Paketen beseitigt} -% \changes{v4.5e}{97/04/25}{Verzicht auf Gro"s- und Kleinschreibung im Namen von .sty-Dateien} -% \changes{v4.5a}{96/03/14}{Umgebung \texttt{description} auf \texttt{list}-Umgebung zur"uckgef"uhrt} -% \changes{v4.5a}{96/03/14}{Eigenes Paket zur Formatierung von Programminhalten integriert} -% \changes{v4.1c}{95/07/24}{Dokumentation verbessert} -% \changes{v4.1b}{95/07/19}{H"ohe des Bedingungsrechteckes bei `ifthenelse vorgebbar} -% \changes{v4.1a}{95/07/17}{Geraden mit beliebiger Steigung durch `emline m"oglich} -% \changes{v4.0a}{95/04/12}{Anpassung an LaTeX2e} -% \changes{v3.5a}{94/11/22}{Entwicklunglinien J. Dietel, J. Hoffmann vereinigt} -% \changes{v3.3a}{94/09/14}{Schnittstellenbeschreibung verallgemeinert} -% \changes{v3.2a}{94/09/14}{Dokumentation verbessert} -% \changes{v3.1a}{94/09/09}{Verschiedene Erweiterungen} -% \changes{v3.0a}{94/06/06}{Urversion mit integrierter Dokumentation} -% \changes{v2.5}{93/09/09}{Jobst Hoffmann, Rechenzentrum RWTH Aachen} -% \changes{v2.0}{92/01/17}{Dorothea Rieger, Rechenzentrum RWTH Aachen} -% \changes{v1.41}{88/06/20}{Andreas Wagener, Proze"srechner CYBER 815} +% \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} +% \changes{v-5.0}{97/04/28}{kleinere textuelle "Anderungen, Fontauswahl teilweise ge"andert} +% \changes{v-5.0}{97/04/28}{Abh"angigkeiten der Dokumentation von zus"atzlichen Paketen beseitigt} +% \changes{v-4.5e}{97/04/25}{Verzicht auf Gro"s- und Kleinschreibung im Namen von .sty-Dateien} +% \changes{v-4.5a}{96/03/14}{Umgebung \texttt{description} auf \texttt{list}-Umgebung zur"uckgef"uhrt} +% \changes{v-4.5a}{96/03/14}{Eigenes Paket zur Formatierung von 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} +% \changes{v-4.1a}{95/07/17}{Geraden mit beliebiger Steigung durch `emline 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} +% \changes{v-3.2a}{94/09/14}{Dokumentation verbessert} +% \changes{v-3.1a}{94/09/09}{Verschiedene Erweiterungen} +% \changes{v-3.0a}{94/06/06}{Urversion mit integrierter Dokumentation} +% \changes{v-2.5}{93/09/09}{Jobst Hoffmann, Rechenzentrum RWTH Aachen} +% \changes{v-2.0}{92/01/17}{Dorothea Rieger, Rechenzentrum RWTH Aachen} +% \changes{v-1.41}{88/06/20}{Andreas Wagener, Proze"srechner CYBER 815} % % \DoNotIndex{\ ,\!,\C,\[,\\,\],\^,\`,\{,\},\~,\<,\=} % \DoNotIndex{\@ifundefined,\@ne,\catcode,\def,\docdate} @@ -345,15 +189,18 @@ % % \pFonts{\itshape}{}{} ^^A Variablen werden als italics ausgegeben % -% \IndexPrologue{\section*{Index} \ifnum\language=\languageNGerman +% \changes{v-9.2}{10/01/18}{changed some textual layout} +% \IndexPrologue{% +% \section*{Index} +% \ifnum\language=\languageNGerman % Die kursiven Zahlen bezeichnen die Seite, % auf der der jeweilige Eintrag beschrieben ist, unterstrichene Zahlen % verweisen auf seine Definition; alle anderen Zahlen geben Stellen an, -% an denen der Eintrag auftritt. +% an denen der Eintrag auftritt.% % \else -% The italic numbers mark the page certain entries are described on. -% Underlined numbers refer to its definition. All other numbers declare -% positions, where the entry occurs. +% The italic numbers mark the page certain entries are described on. +% Underlined numbers refer to its definition. All other numbers declare +% positions, where the entry occurs.% % \fi} % ^^A \setlength{\IndexMin}{0.3\textheight} % @@ -365,9 +212,9 @@ % ^^A <englischer Text> % ^^A \fi % -% \GlossaryPrologue{\section*{\ifnum\language=\languageNGerman +% \GlossaryPrologue{\section*{\ifnum\language=\languageNGerman % Revisionsgeschichte -% \else +% \else % History\fi}} % % \title{\StrukTeXSty\thanks{\ifnum\language=\languageNGerman% @@ -375,9 +222,8 @@ % bearbeitet am \filedate, und die Dokumentation datiert vom % \docdate. % \else -% This file has the version number \fileversion. It has been worked -% at at last on \filedate{} and the documentation has been dated -% on \docdate. +% This file has version number \fileversion, last revised on +% \filedate{}, documentation dated \docdate. % \fi} % } % \author{\ifnum\language=\languageNGerman @@ -394,14 +240,14 @@ % \fi} % \date{\ifnum\language=\languageNGerman gedruckt am \else printed on \fi \today} % -% ^^A\markboth{\ifnum\language=\languageNGerman \LaTeX\ Stil-Option struktex, +% ^^A\markboth{\ifnum\language=\languageNGerman \LaTeX\ Stil-Option struktex, % ^^A Version \fileversion\ vom \filedate -% ^^A \else \LaTeX\ styleoption struktex, +% ^^A \else \LaTeX\ styleoption struktex, % ^^A version \fileversion\ from \filedate % ^^A \fi} -% ^^A {\ifnum\language=\languageNGerman \LaTeX\ Stil-Option struktex, +% ^^A {\ifnum\language=\languageNGerman \LaTeX\ Stil-Option struktex, % ^^A Version \fileversion\ vom \filedate -% ^^A \else \LaTeX\ styleoption struktex, +% ^^A \else \LaTeX\ styleoption struktex, % ^^A version \fileversion\ from \filedate % ^^A \fi} % @@ -409,15 +255,15 @@ % % \ifnum\language=\languageNGerman% % \begin{abstract} -% Dieser Artikel beschreibt den Einsatz und die Implementation der -% \LaTeX-\foreign{package} \StrukTeXSty\ zum Setzen von Struktogrammen nach -% Nassi-Shneidermann. +% Dieser Artikel beschreibt den Einsatz und die Implementation der +% \LaTeX-\foreign{package} \StrukTeXSty\ zum Setzen von Struktogrammen +% nach Nassi-Shneiderman. % \end{abstract} % \else % \begin{abstract} % This article describes the use and implementation of % \LaTeX-\foreign{package} \StrukTeXSty\ for structured box charts -% (Nassi-Shneidermann charts). +% (Nassi-Shneiderman charts). % \end{abstract} % \fi % @@ -433,36 +279,51 @@ % \tableofcontents % } % -% \ifnum\language=\languageNGerman -% \else +% +% +% \changes{v074}{10/06/08}{little corrections concerning the license} +% \section{\ifnum\language=\languageNGerman Lizenzvereinbarung\else +% License\fi} % -% \section{License} -% This package is copyright c 1995 -- 2004 by: -% Jobst Hoffmann, c/o University of Applied Sciences Aachen -% Aaachen, Germany +% This package is copyright \copyright{} 1995 -- 2010 by: +% \begin{quote} +% Jobst Hoffmann, c/o University of Applied Sciences Aachen \\ +% Aaachen, 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 -% Project Public License, distributed from CTAN archives as macros/latex/base/lppl.txt; +% 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. -% \fi % -% \ifnum\language=\languageNGerman -% \section{Vorwort} -% \changes{v8.0b}{04/07/14}{Hinweis auf \textsf{pict2e.sty}} -% \changes{v8.0b}{04/07/14}{Entwicklungsgeschichte korrigiert und erweitert} -% Mit dem hier beschriebenen Makropaket ist es m"oglich, Struktogramme -% mit \LaTeX\ zu zeichnen. Das Makropaket wird im folgenden immer \StrukTeX\ -% genannt. Es ist in der Lage, die wichtigsten Elemente eines Struktogrammes -% wie \zB\ Verarbeitungsbl"ocke, Schleifenkonstrukte, Sinnbilder f"ur -% Alternativen usw.\ zu generieren. Die Struktogramme werden mit Hilfe der -% Picture-Umgebung von \LaTeX\ erzeugt. -% \else -% \section{Preface} -% It is possible to draw structured box charts by this package of macros -% which is described herewith. Through this article the package will be -% always called \StrukTeX\. It can generate the most important elements of a -% structured box chart like processing blocks, loops, mapping conventions for -% alternatives etc. +% +% \section{\ifnum\language=\languageNGerman Vorwort\else Preface\fi} +%\label{sec:vorwort} +% +% \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} +% \ifnum\language=\languageNGerman +% Mit dem hier beschriebenen Makropaket ist es m"oglich, +% Struktogramme mit \LaTeX\ zu zeichnen. Das Makropaket wird im folgenden +% immer \StrukTeX\ genannt. Es ist in der Lage, die wichtigsten Elemente +% eines Struktogrammes wie \zB\ Verarbeitungsbl"ocke, Schleifenkonstrukte, +% Sinnbilder f"ur Alternativen usw.\ zu generieren. Die Struktogramme +% werden mit Hilfe der Picture-Umgebung von \LaTeX\ erzeugt.\footnote{% +% Wer es scheut, Struktogramme mittels \LaTeX{} direkt zu schreiben, kann +% beispielsweise unter \url{http://structorizer.fisch.lu/} ein Programm +% (Struktorizer) finden, mit dem man seine Struktogramme mittels Maus +% entwickeln und abschlie"send als \LaTeX-Code exportieren kann.} % +% \else% +% It is possible to draw structured box charts by this package of macros +% which is described herewith. Through this article the package will be +% always called \StrukTeX. It can generate the most important elements of a +% structured box chart like processing blocks, loops, mapping conventions +% for alternatives etc.\footnote{% +% Those who don't like to code the diagrams by hand, can use for example +% the program Struktorizer (\url{http://structorizer.fisch.lu/}). By using +% this program one can draw the diagrams by mouse and export the result +% into a \LaTeX-file.} % % \fi % % \ifnum\language=\languageNGerman @@ -472,15 +333,15 @@ % Mengensymbolen (etwa $\nat$, $\integer$ und $\real$ f"ur die nat"urlichen, % ganzen und reellen Zahlen) erm"oglichen. % Insbesondere das Zeichen f"ur die leere Menge ($\emptyset$) ist in der -% Darstellung auff"alliger als das standardm"a"sige Zeichen +% Darstellung auff"alliger als das standardm"a"sige Zeichen % ("`$\mathchar"023B$"') % und somit besser f"ur die Darstellung von Struktogrammen geeignet. % \else -% Since version 4.1a the mathematical symbols are loaded by \AmSTeX\. +% Since version 4.1a the mathematical symbols are loaded by \AmSTeX. % They extend the mathematical character set and make other representations % of symbols sets (like $\nat$, $\integer$ and $\real$ for the natural, the whole % and the real numbers) possible. -% Especially the symbol for the emptyset ($\emptyset$) has a more outstanding +% Especially the symbol for the empty set ($\emptyset$) has a more outstanding % representation than the standard symbol ("`$\mathchar"023B$"'). Therefore it % is the better representation in structured box charts. % \fi @@ -528,7 +389,7 @@ % Ebenso ist es geplant, Struktogramme um Kommentarbl"ocke zu erweitern, % wie sie in dem Buch von Futschek (\cite{Futschek:Programmentwicklung}) % eingesetzt werden. Dieses ist ebenfalls mit der Version 8.0a realisiert -% worden. +% worden. % \else % Just so it is planned to extend structured box charts by comments % as they are used in the book of Futschek @@ -591,13 +452,13 @@ % die vollst"andige Implementation der Makros \cs{pVar}, % \cs{pKey}, \cs{pFonts}, \cs{pTrue}, \cs{pFalse} und \cs{pBoolValue} % (erledigt vor Version 7.0), -% \changes{v4.5a}{96/03/14}{Umbenenneungen: `sVar $\rightarrow$ `pVar, \ldots} -% \changes{v4.3a}{96/01/26}{Variable `sBoolValue ersetzt `sLVal} +% \changes{v-4.5a}{96/03/14}{Umbenenneungen: `sVar $\rightarrow$ `pVar, \ldots} +% \changes{v-4.3a}{96/01/26}{Variable `sBoolValue ersetzt `sLVal} % \else % The complete implementation of the macros \cs{pVar}, \cs{pKey}, \cs{pFonts}, % \cs{pTrue}, \cs{pFalse} and \cs{pBoolValue} (done before version 7.0), -% \changes{v4.5a}{96/03/14}{redesignation: `sVar $\rightarrow$ `pVar, \ldots} -% \changes{v4.3a}{96/01/26}{variable `sBoolValue replaces `sLVal} +% \changes{v-4.5a}{96/03/14}{redesignation: `sVar $\rightarrow$ `pVar, \ldots} +% \changes{v-4.3a}{96/01/26}{variable `sBoolValue replaces `sLVal} % \fi % % \item \ifnum\language=\languageNGerman @@ -607,14 +468,14 @@ % Zweck, das Paket mit anderen Paketen vertr"aglicher zu gestalten, etwa % mit dem \textsf{ifthenelse.sty}. Begonnen % wurde die Internalisierung mit der Version 4.4a. -% \changes{v4.4a}{96/02/29}{Kommando `ifthenelse internalisiert} +% \changes{v-4.4a}{96/02/29}{Kommando `ifthenelse internalisiert} % \else % The complete internalization of commands, which only make sense % in the environment |struktogramm|. Internalization means, that these % commands are only defined in this environment. This is for compatibility % of this package with other packages, e.g. with \textsf{ifthenelse.sty}. % The internalization has been started in version 4.4a. -% \changes{v4.4a}{96/02/29}{command `ifthenelse internalisated} +% \changes{v-4.4a}{96/02/29}{command `ifthenelse internalisated} % \fi % % \item \ifnum\language=\languageNGerman @@ -636,7 +497,7 @@ % \item \ifnum\language=\languageNGerman % Wiedereinf"uhrung der |make|-Ziele |dist-src| |dist-tar| und |dist-zip|. % \else -% Reintroduction of the |make|-targets |dist-src| |dist-tar| and +% Reintroduction of the |make|-targets |dist-src| |dist-tar| and % |dist-zip|. % \fi % @@ -659,19 +520,19 @@ % \fi} % % \ifnum\language=\languageNGerman -% \changes{v4.5e}{97/04/26}{Neue .sty-Datei strukdoc.sty eingef"uhrt} -% \changes{v1.5}{92/01/07}{StrukTeX Makros nun als .sty-Datei, J. Hoffmann} -% \changes{v2.0}{92/01/17}{Erweitert um `exit, `forever und `foreverend, D. Rieger} -% \changes{v2.1}{92/01/07}{`exit modifiziert, J. Hoffmann} -% \changes{v2.2}{93/09/08}{Beschreibung von Variablen eingef"uhrt, J. Hoffmann} -% \changes{v2.2a}{93/09/09}{Beschreibung von Variablen verbessert, J. Hoffmann} +% \changes{v-4.5e}{97/04/26}{Neue .sty-Datei strukdoc.sty eingef"uhrt} +% \changes{v-1.5}{92/01/07}{StrukTeX Makros nun als .sty-Datei, J. Hoffmann} +% \changes{v-2.0}{92/01/17}{Erweitert um `exit, `forever und `foreverend, D. Rieger} +% \changes{v-2.1}{92/01/07}{`exit modifiziert, J. Hoffmann} +% \changes{v-2.2}{93/09/08}{Beschreibung von Variablen eingef"uhrt, J. Hoffmann} +% \changes{v-2.2a}{93/09/09}{Beschreibung von Variablen verbessert, J. Hoffmann} % \else -% \changes{v4.5e}{97/04/26}{new .sty-File strukdoc.sty introduced} -% \changes{v1.5}{92/01/07}{StrukTeX macros now as .sty-File, J. Hoffmann} -% \changes{v2.0}{92/01/17}{extended by `exit, `forever and `foreverend, D. Rieger} -% \changes{v2.1}{92/01/07}{`exit modified, J. Hoffmann} -% \changes{v2.2}{93/09/08}{description of variables introduced, J. Hoffmann} -% \changes{v2.2a}{93/09/09}{description of variables improved, J. Hoffmann} +% \changes{v-4.5e}{97/04/26}{new .sty-File strukdoc.sty introduced} +% \changes{v-1.5}{92/01/07}{StrukTeX macros now as .sty-File, J. Hoffmann} +% \changes{v-2.0}{92/01/17}{extended by `exit, `forever and `foreverend, D. Rieger} +% \changes{v-2.1}{92/01/07}{`exit modified, J. Hoffmann} +% \changes{v-2.2}{93/09/08}{description of variables introduced, J. Hoffmann} +% \changes{v-2.2a}{93/09/09}{description of variables improved, J. Hoffmann} % \fi % % \ifnum\language=\languageNGerman @@ -717,7 +578,7 @@ % drei Testdateien \textsf{struktex\_test\_\textit{i}.nss}, % \(i=1(2)3\), sowie die beiden Dateien \textsf{struktex.makemake} und % \textsf{struktex.mk} (vgl. Abschnitt~\ref{sec:Makefile}). -% +% % Die Dokumentation wird wie "ublich durch % \begin{quote}\tt % latex struktex.dtx \\ @@ -726,13 +587,13 @@ % latex struktex.dtx % \end{quote} % erzeugt.\footnote{Die Erzeugung der Dokumentation kann durch den Einsatz -% einer \texttt{make}-Datei vereinfacht werden, vgl. +% einer \texttt{make}-Datei vereinfacht werden, vgl. % Abschnitt~\ref{sec:Makefile}} Das Ergebnis dieses Formatierlaufes ist die % Dokumentation % in Form einer \textsf{.dvi}-Datei, die in gewohnter Weise weiterbearbeitet % werden kann. Weitere Informationen zum Arbeiten mit der integrierten -% Dokumentation findet man in \cite{FM:TheDocAndShortvrbPackages-V2.0} und -% \cite{MittelbachDuchierBraams:DocStrip-V2.5b}. +% Dokumentation findet man in \cite{FM:TheDocAndShortvrbPackages-V-2.0} und +% \cite{MittelbachDuchierBraams:DocStrip-V-2.5b}. % Die Dateien \textsf{tst\_strf.tex}, \textsf{tst\_strp.tex} schlie"slich % sind Dateien zum Austesten % der hier beschriebenen Makros. @@ -744,13 +605,13 @@ % This formatting run generates eleven further files. These are first of all the % three \textsf{.sty}-files \textsf{struktex.sty}, \textsf{struktxf.sty} and % \textsf{struktxp.sty}, that are used for \StrukTeXSty\. -% Furthermore these are the two files \textsf{struktex\_test\_0.nss} and +% Furthermore these are the two files \textsf{struktex\_test\_0.nss} and % \textsf{strukdoc.sty}, % which are used for the generation of the hereby presented documentation. % Then there are three test files \textsf{struktex\_test\_\textit{i}.nss}, % \(i=1(2)3\) as well as the files \textsf{struktex.makemake} and % \textsf{struktex.mk} (see section~\ref{sec:Makefile}). -% +% % The common procedure to produce the documentation is % \begin{quote}\tt % latex struktex.dtx \\ @@ -759,40 +620,36 @@ % latex struktex.dtx % \end{quote} % The result of this formatting run is the documentation in form of a -% \textsf{.dvi}-file, that can be manipulated the normal way. Further +% \textsf{.dvi}-file, that can be manipulated the normal way. Further % informations % about the work with the integrated documentation one can find in -% \cite{FM:TheDocAndShortvrbPackages-V2.0} and -% \cite{MittelbachDuchierBraams:DocStrip-V2.5b}.\footnote{Generating the -% documentation is much easier with the \texttt{make} utility, see +% \cite{FM:TheDocAndShortvrbPackages-V-2.0} and +% \cite{MittelbachDuchierBraams:DocStrip-V-2.5b}.\footnote{Generating the +% documentation is much easier with the \texttt{make} utility, see % section~\ref{sec:Makefile}.} % Finally there are the files \textsf{tst\_strf.tex}, % \textsf{tst\_strp.tex} for testing % purposes of the macros described herewith. % \fi % -% \ifnum\language=\languageNGerman +% \changes{v100}{10/06/25}{corrected some inconsistencies in the +% description of the installation process} +% \ifnum\language=\languageNGerman% % Die Installation wird abgeschlossen, indem die Datei % \texttt{struktex.sty} in ein Verzeichnis verschoben wird, das von \TeX{} -% gefunden werden kann, das ist in einer -% TDS-konformen Installation typischerweise -% \texttt{.../tex/latex/struktex/}, die Dokumentation wird analog in das -% Verzeichnis \texttt{.../doc/latex/struktex/} verschoben.\footnote{Wenn -% die automatische Installation (vgl. Abschnitt \ref{sec:Makefile}) -% vorgenommen wird, erfolgt diese in die -% Verzeichnisse \texttt{.../doc/latex/jhf/struktex/}, -% \texttt{.../tex/latex/jhf/struktex/} und -% \texttt{.../source/latex/jhf/struktex/}.} -% \else +% gefunden werden kann, das ist in einer TDS-konformen Installation +% typischerweise \texttt{.../tex/latex/struktex/}, die Dokumentation wird +% analog in das Verzeichnis \texttt{.../doc/latex/struktex/} +% verschoben.\footnote{Wenn die automatische Installation (vgl. Abschnitt +% \ref{sec:Makefile}) vorgenommen wird, erfolgt diese entsprechend.} % +% \else% % To finish the installation, the file \texttt{struktex.sty} should be -% moved to a directory, where \TeX{} can find it, in a TDS conform +% moved to a directory, where \TeX{} can find it, in a TDS conforming % installation this is \texttt{.../tex/latex/struktex/} typical, % analogously the documentation has to be moved to % \texttt{.../doc/latex/struktex/}. If the installation process is done -% automatically (see section \ref{sec:Makefile}), the target directories are -% \texttt{.../doc/latex/jhf/struktex/}, -% \texttt{.../tex/latex/jhf/struktex/} and -% \texttt{.../source/latex/jhf/struktex/} resp. +% automatically (see section \ref{sec:Makefile}), the target directories +% follow that rule. % % \fi % % \ifnum\language=\languageNGerman @@ -828,26 +685,32 @@ % \fi % % \ifnum\language=\languageNGerman -% \changes{v8.0b}{04/07/14}{Umstellung der Sprachverwaltung auf babel} +% \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 % The following commands make up the driver of the documentation lieing before. % \fi -% \iffalse -%<*driver> -% \fi +% \changes{v-9.2}{10/01/18}{changed the selection of languages} % \begin{macrocode} -\documentclass[a4paper, english, ngerman]{ltxdoc} %swap english and ngerman - % for producing an english version of this text - +%<*driver> + % select the formatting language: +\expandafter\ifx\csname primarylanguage\endcsname\relax% +\def\primarylanguage{ngerman}% +\def\secondarylanguage{english}% +\else% +\def\secondarylanguage{ngerman}% +\fi +\documentclass[a4paper, \secondarylanguage, % select the language + \primarylanguage]{ltxdoc} +\typeout{\string\primarylanguage: \primarylanguage, \string\language: \the\language} \usepackage{babel} % for switching the documentation language \usepackage{strukdoc} % the style-file for formatting this % documentation \usepackage[pict2e, % <--------------- to produce finer results % visible under xdvi, alternatives are - % curves or emlines2 (visible only under - % ghostscript), leave out if not + % curves or emlines2 (visible only under + % ghostscript), leave out if not % available verification] {struktex} @@ -869,7 +732,7 @@ % to avoid underfull ... messages while formatting two/three columns \hbadness=10000 \vbadness=10000 -\def\languageNGerman{3} +\def\languageNGerman{8} % depends on language.dat!!! \begin{document} \makeatletter @@ -877,17 +740,15 @@ \makeatother \DocInput{struktex.dtx} \end{document} -% \end{macrocode} -% \iffalse %</driver> -% \fi +% \end{macrocode} % % \section{\ifnum\language=\languageNGerman Die Benutzungsschnittstelle -% \else The User Interface\label{interface} +% \else The User Interface % \fi} % \label{Schnittstelle} -% -% \changes{v4.3a}{96/01/26}{Dokumentation verbessert und korrigiert} +% \label{interface} +% \changes{v-4.3a}{96/01/26}{Dokumentation verbessert und korrigiert} % \ifnum\language=\languageNGerman % Der \StrukTeXSty\ wird wie jede andere |.sty|-Datei als \foreign{package} in % ein \LaTeX-Dokument eingebunden: @@ -895,7 +756,7 @@ % |\usepackage[|\meta{Optionen}|]{struktex}| % \end{quote} % \else -% The \StrukTeXSty\ will be included in a LaTeX-document like every other +% The \StrukTeXSty\ will be included in a \LaTeX-document like every other % |.sty|-file by \foreign{package}: % \begin{quote} % |\usepackage[|\meta{options}|{struktex}| @@ -1061,9 +922,9 @@ % \DescribeMacro{\pVariable} % \DescribeMacro{\pVar} % \ifnum\language=\languageNGerman -% \changes{v2.0n}{94/03/31}{Dokumentation "uberarbeitet} +% \changes{v-2.0n}{94/03/31}{Dokumentation "uberarbeitet} % \else -% \changes{v2.0n}{94/03/31}{documentation changed} +% \changes{v-2.0n}{94/03/31}{documentation changed} % \fi % \DescribeMacro{\pKeyword} % \DescribeMacro{\pKey} @@ -1131,7 +992,7 @@ % Auch \cs{pKeyword} darf % abgek"urzt werden: \cs{pKey}. Damit erzeugt dann der Quelltext % \else -% \cs{pKeyword} is also allowed to be abbreviated by \cs{pKey}. With that the +% \cs{pKeyword} is also allowed to be abbreviated by \cs{pKey}. With that the % source code % \fi % \begin{verbatimwrite}{struktex.tmp} @@ -1246,7 +1107,7 @@ % \begin{quote} % \input{struktex.tmp} % \end{quote} -% \ifnum\language=\languageNGerman +% \ifnum\language=\languageNGerman % \else % \fi % \ifnum\language=\languageNGerman @@ -1297,7 +1158,7 @@ % \else % The macros \cs{sVar} and \cs{sKey} are the same as the macros |pVar| and |pKey|. % Here they are just described for compatibility reasons with former versions -% of \StrukTeXSty. The same rule shall apply to the macros \cs{sTrue} and +% of \StrukTeXSty. The same rule shall apply to the macros \cs{sTrue} and % \cs{sFalse}. % \fi % @@ -1546,7 +1407,7 @@ % \DescribeMacro{\descriptionindent} % \DescribeMacro{\descriptionwidth} % \DescribeMacro{\descriptionsep} -% \changes{v8.0b}{04/07/14}{Zeichnung zum Layout der Deklarationen +% \changes{v-8.0b}{04/07/14}{Zeichnung zum Layout der Deklarationen % verbessert (`multiput statt n-mal `put, Korrektur von Bezeichnungen)} % \ifnum\language=\languageNGerman % Innerhalb der |declaration|-Umgebung werden die Beschreibungen der einzelnen @@ -1566,7 +1427,7 @@ % \end{quote} % In doing so one has to pay attention on the \meta{variableName}, that is not % allowed to content a right square bracket "']"', because this macro has been -% defined by the \cs{item} macros. Square brackets have to be entered as +% defined by the \cs{item} macros. Square brackets have to be entered as % \cs{lbracket} or \cs{rbracket} respectively. % \fi % @@ -1590,7 +1451,7 @@ % The shape of a description can be controled by three parameters: % \cs{descriptionindent}, \cs{descriptionwidth} and \cs{descriptionsep}. % The meaning of the parameters can be taken from \ref{description} -% (\cs{xsize@nss} and \cs{xin@nss} are internal sizes, that are given by +% (\cs{xsize@nss} and \cs{xin@nss} are internal sizes, that are given by % \StrukTeX). % The default values are the following: % \begin{quote}\begin{verbatim} @@ -1598,8 +1459,8 @@ % \descriptionwidth=40pt % \descriptionsep=\tabcolsep % \end{verbatim}\end{quote} -% The significance of \cs{descriptionwidth} is, that a variable name, which -% is shorter than \cs{descriptionwidth}, gets a description of the same +% The significance of \cs{descriptionwidth} is, that a variable name, which +% is shorter than \cs{descriptionwidth}, gets a description of the same % height. Otherwise the description will be commenced in the next line. % \fi % \begin{figure}[tb] @@ -1619,7 +1480,7 @@ % \put(52.50,95.00){\vector(-1,0){52.50}} % \put(73.50,85.00){\vector(1,0){41.50}} % \put(51.50,85.00){\vector(-1,0){41.50}} -% \put(30.00,56.00){\makebox(0,0)[lb]{\ifnum\language=\languageNGerman% +% \put(30.00,56.00){\makebox(0,0)[lb]{\ifnum\language=\languageNGerman% % \meta{Variablenname}% % \else% % \meta{variable name}% @@ -1670,7 +1531,7 @@ % \put(40.00,52.00){\circle*{1.00}} % \put(60.00,54.00){\circle*{1.00}} % \end{picture} -% \caption{\label{description}\ifnum\language=\languageNGerman Aufbau einer +% \caption{\label{description}\ifnum\language=\languageNGerman Aufbau einer % Variablenbeschreibung % \else Construction of a Variable Description % \fi} @@ -1698,8 +1559,8 @@ % \assign% % {% % \begin{declaration} -% \description{\pVar{iVar}}{an \pKey{int} variable, which is -% described here just for presentation of the +% \description{\pVar{iVar}}{an \pKey{int} variable, which is +% described here just for presentation of the % macro} % \end{declaration} % } @@ -1744,13 +1605,13 @@ % \begin{struktogramm}(95,50) % \assign{% % \begin{declaration}[Parameter:] -% \description{\pVar{iPar}}{an \pKey{int} parameter with the +% \description{\pVar{iPar}}{an \pKey{int} parameter with the % meaning described here} % \end{declaration} % \begin{declaration}[local Variables:] % \description{\pVar{iVar}}{an \pKey{int} variable with the meaning % described here} -% \description{\pVar{dVar}}{a \pKey{double} variable with the +% \description{\pVar{dVar}}{a \pKey{double} variable with the % meaning described here} % \end{declaration} % } @@ -1817,9 +1678,9 @@ % von \TeX\ nicht aus. % \else % Here one has to notice the local realisation of the \cs{catcode} of the -% underline, which is necessary, if one wants to place an underline into -% an argument of macro. Although this local transfer is already realized -% at \cs{pVar} it doesn't suffice with the technique of macro expanding +% underline, which is necessary, if one wants to place an underline into +% an argument of macro. Although this local transfer is already realized +% at \cs{pVar} it doesn't suffice with the technique of macro expanding % of \TeX. % \fi % \end{tExample} @@ -1901,15 +1762,15 @@ % 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 % \else -% For representation of loop constructions there are three instructions +% For representation of loop constructions there are three instructions % available: % \cs{while}, \cs{until} and \cs{forever}. -% The while loop is a repetition with preceding condition check (loop with -% test before). -% The until loop checks the condition at the end of the loop (loop with -% test after). +% The while loop is a repetition with preceding condition check (loop with +% a pre test). +% The until loop checks the condition at the end of the loop (loop with a +% post test). % And the forever loop is a neverending loop, that can be left by \cs{exit}. % \begin{quote}\obeylines % \cs{while}\oarg{width}\marg{text}\meta{structured subbox chart}% @@ -1920,9 +1781,9 @@ % \cs{exit}\oarg{height}\meta{text} % \end{quote} % \meta{width} is the width of frame of the mapping convention and \meta{text} -% is the conditioning text, that is written inside this frame. If the width -% 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 +% is the conditioning text, that is written inside this frame. If the width +% 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. % \fi % @@ -1936,7 +1797,7 @@ % \else % Instead of \meta{structured subbox chart} there might be written any % instructions of \StrukTeX\ (except \cs{openstrukt} and \cs{closestrukt}), which -% build up the box chart within the \cs{while} loop, the \cs{until} loop or the +% build up the box chart within the \cs{while} loop, the \cs{until} loop or the % \cs{forever} loop. % \fi % @@ -2003,7 +1864,7 @@ % Verzweigungen diskutiert. % \else % The \cs{exit} instruction makes only sense in connection with simple or -% multiple branches. Therefore it will be discussed after the discussion +% multiple branches. Therefore it will be discussed after the discussion % of branches. % \fi % @@ -2021,20 +1882,21 @@ % \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 +% 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 % -% \changes{6.0}{00/11/24}{Einsatz von curves.sty zum Zeichnen beliebiger Steigungen implementiert} +% \changes{v-6.0}{00/11/24}{Einsatz von curves.sty zum Zeichnen beliebiger +% 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. % \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. +% then the representation of lines with any gradient can be drawn. % \fi % % \ifnum\language=\languageNGerman @@ -2060,12 +1922,12 @@ % \fi % \ifnum\language=\languageNGerman % F"ur den Fall, dass das optionale Argument \meta{H"ohe} nicht angegeben -% ist, sind \meta{Linker Winkel} (\texttt{\#1}) und \meta{Rechter Winkel} +% ist, sind \meta{Linker Winkel} (\texttt{\#1}) und \meta{Rechter Winkel} % (\texttt{\#2}) Ziffern % zwischen 1 und 6; diese bestimmen die Steigung der beiden Unterteilungslinien % des If-Then-Else-Blocks (gro"ser Wert = kleine Steigung). Gr"o"sere Werte % werden auf 6 gesetzt, kleinere auf 1. Das genaue -% Verhalten der Steigungen ist dem folgenden Bild zu entnehmen; +% Verhalten der Steigungen ist dem folgenden Bild zu entnehmen; % \cs{xsize@nss} ist % dabei die Breite des aktuellen Unterstruktogrammes. Wird die \meta{H"ohe} % vorgegeben, so bestimmt dieser Wert statt des Ausdruckes @@ -2074,10 +1936,10 @@ % \else % In the case of omitting the optional argument \meta{height} \meta{left % angle} and \meta{right angle} are numbers from 1 to 6. -% They specify the gradient of both the partitioning lines of -% the If-Then-Else-block (large number = small gradient). Larger values are -% put on 6, smaller values on 1. The precise characteristics of the gradients -% can be taken from the following picture. Thereby \cs{xsize@nss} is the width +% They specify the gradient of both the partitioning lines of +% the If-Then-Else-block (large number = small gradient). Larger values are +% put on 6, smaller values on 1. The precise characteristics of the gradients +% can be taken from the following picture. Thereby \cs{xsize@nss} is the width % of the actual structured subbox chart. % If the \meta{height} is given, then this value determines the height of the % conditioning rectangle instead of the expression \(\frac{\mbox{\cs{xsize@nss}}} @@ -2147,13 +2009,13 @@ % \else % \meta{condition} is set in the upper triangle built in the above way. The % parameters \meta{left text} and \meta{right text} are set in the left or -% right lower triangle respectively. The conditioning text can be made up +% right lower triangle respectively. The conditioning text can be made up % in its triangle box. From version 5.3 on the conditioning text \ldots % \footnote{This extension is due to Daniel Hagedorn, whom I have to thank % for his work.} Both the other texts should be short (e.g. yes/no or -% true/false), since they can't be made up and otherwise they stand out from -% their triangle box. For obtaining uniformity here the macros \cs{pTrue} and -% \cs{pFalse} should be used. Behind \cs{ifthenelse} the instructions for the +% true/false), since they can't be made up and otherwise they stand out from +% their triangle box. For obtaining uniformity here the macros \cs{pTrue} and +% \cs{pFalse} should be used. Behind \cs{ifthenelse} the instructions for the % left "'structured subbox chart"' % are written and behind \cs{change} the instructions for the right % "'structured subbox chart"' are written. If these two box charts have not @@ -2281,7 +2143,7 @@ % \put(2.00,20.00){\makebox(0,0)[cc]{% % $\frac{\mbox{\cs{xsize@nss}}}{\mbox{\tt\#1}}$}} % \put(9.00,35.00){\line(5,-3){50.00}} -% \put(29.00,5.00){\line(0,1){18.00}}% +% \put(29.00,5.00){\line(0,1){18.00}}% % \put(9.00,0.00){\line(0,1){4.00}} % \put(29.00,0.00){\line(0,1){4.00}} % \put(19.00,2.00){\makebox(0,0)[cc]{% @@ -2363,7 +2225,7 @@ % anderen Bedeutung von \meta{Winkel}. Ist der Wert gerade, wird wie zuvor % eine gerade Linie zur Aufteilung des zugrundeliegenden Rechtecks % gezeichnet; ist der Wert hingegegen ungerade, wird der letzte Fall wie im -% folgenden gezeigt als Sonderfall gezeichnet. +% folgenden gezeigt als Sonderfall gezeichnet. % \else % The optional parameter \oarg{height} can be used if and only if one of % the options ``curves'', ``emlines2'' or ``pict2e'', resp. is set; if this @@ -2431,13 +2293,13 @@ % \put(72.00,25.00){\line(0,-1){2.00}} % \put(72.00,15.00){\line(0,1){2.00}} % \put(72.00,20.00){\makebox(0,0)[cc]{% -% $\displaystyle\frac{\mbox{\ifnum\language=\languageNGerman +% $\displaystyle\frac{\mbox{\ifnum\language=\languageNGerman % \meta{H"ohe}\else\meta{height}\fi}}{\mbox{\tt\#2}-1}$}} % \end{picture} % \end{center} % % \ifnum\language=\languageNGerman -% \begin{tExample}{} +% \begin{tExample} % \begin{verbatimwrite}{struktex.tmp} % \begin{struktogramm}(95,30) % \case[10]{4}{3}{Signum(x)}{-1} @@ -2450,7 +2312,7 @@ % \end{struktogramm} % \end{verbatimwrite} % \else -% \begin{tExample}{} +% \begin{tExample} % \begin{verbatimwrite}{struktex.tmp} % \begin{struktogramm}(95,30) % \case[10]{4}{3}{Signum(x)}{-1} @@ -2521,6 +2383,7 @@ % \end{quote} % \end{tExample} % +% \changes{v-9.2}{10/01/18}{changed the selection of languages} % \ifnum\language=\languageNGerman % Das folgende Beispiel zeigt, wie mittels einfacher Verzweigung aus einer % Endlosschleife gesprungen werden kann. Das Beispiel l"asst sich ohne @@ -2557,41 +2420,150 @@ % \fi % \begin{tExample} % \ifnum\language=\languageNGerman +% \begin{quote} +% \verbatiminput{struktex.tmp} +% \end{quote} +% Diese Anweisungen f"uhren zu folgendem Struktogramm: +% \else +% \begin{quote} +% \verbatiminput{struktex.tmp} +% \end{quote} +% These instructions lead to the following structured box chart: +% \fi +% \begin{quote} +% \input{struktex.tmp} +% \end{quote} +% \end{tExample} +% +% \changes{v-9.2}{10/01/18}{corrected some typos} +% \changes{v-9.1}{10/01/17}{added first draft of of `inparallel, `task, and `inparallelend documentation} +% \DescribeMacro{\inparallel} +% \DescribeMacro{\task} +% \DescribeMacro{\inparallelend} +% \changes{v065}{10/06/07}{added some german translations} +% \ifnum\language=\languageNGerman +% Heutzutage sind Prozessoren mit mehreren Kernen oder auch massive +% Parallelrechner ein "ubliches Werkzeug zur Ausf"uhrung von Programmen. Um +% die F"ahigkeiten dieser Prozessoren auszunutzen, sollten entsprechende +% parallele Algorithmen entwickelt und implementiert werden. Der Makro +% \cs{inparallel} und die zugeh"origen Makros \cs{task} und +% \cs{inparallelend} erm"oglichen die Darstellung paralleler Verarbeitung in +% einem Programm. Die Syntax lautet: +% \begin{quote}\obeylines +% \cs{inparallel}\oarg{H"ohe der 1. Task}\marg{Anzahl paralleler +% Tasks}\marg{Beschreibung der 1. Task}|}| +% \cs{task}\oarg{position}\marg{Beschreibung der 2. Task} +% \dots +% \cs{task}\oarg{position}\marg{Beschreibung der n. Task} +% \cs{inparallelend} +% \end{quote} +% +% Das Layout eines mit diesen Kommandos erzeugten Kastens ist der folgenden +% Abbildung zu entnehmen (die Makroparameter \texttt{\#1} +% und \texttt{\#2} beziehen sich auf die Parameter von \cs{inparallel}): +% \else +% Nowadays multicore processors or even better massive parallel processors +% are a common tool for executing programs. To use the features of these +% processors parallel algorithms should be developed and implemented. The +% \cs{inparallel} command enables the representation of parallel processing +% in a program. The syntax is as follows: +% \begin{quote}\obeylines +% \cs{inparallel}\oarg{height of 1\(^{\mbox{st}}\) task}\marg{number of +% parallel tasks}\marg{description of 1\(^{\mbox{st}}\) task}|}| +% \cs{task}\oarg{position}\marg{description of 2\(^{\mbox{nd}}\) task} +% \dots +% \cs{task}\oarg{position}\marg{description of n\(^{\mbox{th}}\) task} +% \cs{inparallelend} +% \end{quote} +% +% The layout of the box is as follows (the macro parameters \texttt{\#1} +% and \texttt{\#2} refer to the parameters of \cs{inparallel}): +% \fi +% +% \changes{v065}{10/06/07}{changed figure which shows `inparallel layout} +% \begin{center} +% \label{case2} +% \unitlength 1.00mm +% \linethickness{0.4pt} +% \begin{picture}(90.00,40.00) +% \put(9.00,5.00){\framebox(75.00,30.00)[cc]{}} +% \put(9.00,36.00){\line(0,1){4.00}} +% \put(9.00,38.00){\line(1,0){27.50}} +% \put(46.50,38.00){\makebox(0,0)[cc]{\cs{xsize@nss}}} +% \put(55.00,38.00){\line(1,0){27.50}} +% \put(84.00,36.00){\line(0,1){4.00}} +% \put(0.00,35.00){\line(1,0){4.00}} +% \put(2.00,35.00){\line(0,-1){10.00}} +% \put(2.00,15.00){\line(0,-1){10.00}} +% \put(0.00,5.00){\line(1,0){4.00}} +% \put(2.00,20.00){\makebox(0,0)[cc]{% +% \shortstack{% +% \ifnum\language=\languageNGerman\meta{H"ohe}\else\meta{height}\fi\\\texttt{\#1}}}} +% \put(21.00,20.00){\makebox(0,0)[cc]{% +% \shortstack{% +% \ifnum\language=\languageNGerman\meta{Beschreibung\(_1\)}% +% \else\meta{desc\(_1\)}\fi\\\texttt{\#2}}}} +% \put(46.50,20.00){\makebox(0,0)[cc]{% +% \ifnum\language=\languageNGerman\meta{Beschreibung\(_{\ldots}\)}\else\meta{desc\(_{\ldots}\)}\fi}} +% \put(71.50,20.00){\makebox(0,0)[cc]{% +% \ifnum\language=\languageNGerman\meta{Beschreibung\(_n\)}\else\meta{desc\(_n\)}\fi}} +% \put(34.00,11.67){\line(0,1){16.66}} ^^A vertical bars between descriptions +% \put(59.00,11.67){\line(0,1){16.66}} +% \put(9.00,0.00){\line(0,1){4.00}} +% \put(9.00,2.00){\line(1,0){2.00}} +% \put(34.00,0.00){\line(0,1){4.00}} +% \put(34.00,2.00){\line(-1,0){2.00}} +% \put(21.00,2.00){\makebox(0,0)[cc]{$\frac{\mbox{\cs{xsize@nss}}}{\mbox{\tt\#1}}$}} +% \multiput(10.00,28.33)(3.00, 0.0){25}{\line(1,0){1.5}} +% \multiput(10.00,31.66)(3.00, 0.0){25}{\line(1,0){1.5}} +% \multiput(10.00,11.67)(3.00, 0.0){25}{\line(1,0){1.5}} +% \multiput(10.00,8.34)(3.00, 0.0){25}{\line(1,0){1.5}} +% \put(86.00,35.00){\line(1,0){4.00}} ^^A measuring at the right side +% \put(86.00,28.33){\line(1,0){4.00}} +% \put(88.00,34.00){\line(0,-1){1.00}} +% \put(88.00,28.33){\line(0,1){1.00}} +% \put(88.00,31.66){\makebox(0,0)[cc]{4\,mm}} +% \end{picture} +% \end{center} +% +% \ifnum\language=\languageNGerman +% Zu beachten ist, dass die verschiedenen Tasks nicht weiter gegliedert +% werden d"urfen. +% \else +% Note: the tasks are not allowed to get divided by \cs{assign} or so. If +% one needs some finer description of a task, this should be made outside +% of the current structured box chart. +% \fi +% +% \changes{v-9.2}{10/01/18}{added example for `inparallel} +% \begin{tExample}[\ifnum\language=\languageNGerman% +% Anwendung von \cs{inparallel}\else Application of \cs{inparallel}\fi] +% \ifnum\language=\languageNGerman % \begin{verbatimwrite}{struktex.tmp} % \begin{struktogramm}(95,40) -% \forever -% \assign{lies Zeichen} -% \ifthenelse{3}{3}{Zeichen = 'E'?} -% {j}{n} -% \exit{Sprung hinter Schleife} -% \change -% \ifend -% \assign{Gib Zeichen aus} -% \foreverend +% \inparallel[20]{3}{Motor starten} +% \task{Wasser einf"ullen} +% \task{Wasser erhitzen} +% \inparallelend % \end{struktogramm} % \end{verbatimwrite} % \begin{quote} % \verbatiminput{struktex.tmp} % \end{quote} -% Diese Anweisungen f"uhren zu folgendem Struktogramm: +% Diese Anweisungen ergeben das folgende Struktogramm: % \else % \begin{verbatimwrite}{struktex.tmp} % \begin{struktogramm}(95,40) -% \forever -% \assign{read character} -% \ifthenelse{3}{3}{character = 'E'} -% {y}{n} -% \exit{Jump behind the Loop} -% \change -% \ifend -% \assign{Put out character} -% \foreverend +% \inparallel[20]{3}{start motor} +% \task{fill in water} +% \task{heat water} +% \inparallelend % \end{struktogramm} % \end{verbatimwrite} % \begin{quote} % \verbatiminput{struktex.tmp} % \end{quote} -% These instructions lead to the following structured box chart: +% These instructions produce the following structured box chart: % \fi % \begin{quote} % \input{struktex.tmp} @@ -2710,7 +2682,7 @@ % \cs{struktogramm} und \cs{endstruktogramm}. Die Syntax ist % \else % These two macros are only preserved because of compatibility reasons with -% previous versions of \StrukTeX\. Their meaning is the same as \cs{struktogramm} +% previous versions of \StrukTeX. Their meaning is the same as \cs{struktogramm} % and \cs{endstruktogramm}. The syntax is % \fi % \begin{quote} @@ -2776,9 +2748,11 @@ % \fi % % -% \section{\ifnum\language=\languageNGerman Beipieldatei zum Einbinden in die Dokumentation\label{Beispiel} -% \else Example File for tieing in the Documentation\label{Example} +% \section{\ifnum\language=\languageNGerman Beipieldatei zum Einbinden in die Dokumentation +% \else Example File for tieing in the Documentation % \fi} +% \label{Beispiel} +% \label{example} % % \ifnum\language=\languageNGerman % Die folgenden Zeilen bilden eine Beispieldatei, die bei der Erstellung @@ -2787,51 +2761,45 @@ % The following lines build up an example file, which is needed for the % preparation of this documentation; there is only an german version. % \fi -% \iffalse -%<*example1> -% \fi % \begin{macrocode} +%<*example1> \begin{struktogramm}(95,40)[Text] - \case[10]{3}{3}{Signum(x)}{-1} + \case[10]{3}{3}{Signum(x)}{-1} \assign{\(z \gets - \frac{1}{x}\)} - \switch{0} - \assign{Ausgabe: Division durch 0} - \switch[r]{1} + \switch{0} + \assign{Ausgabe: Division durch 0} + \switch[r]{1} \assign{\(z \gets \frac{1}{x}\)} \caseend \end{struktogramm} -% \end{macrocode} -% \iffalse %</example1> -% \fi +% \end{macrocode} % -% \section{\ifnum\language=\languageNGerman +% \section{\ifnum\language=\languageNGerman % Verschiedene Beispieldateien -% \else +% \else % Some Example Files % \fi} % % \subsection[\ifnum\language=\languageNGerman Beispieldatei Nr. 1\else Example -% File No 1\fi]{\ifnum\language=\languageNGerman +% File No 1\fi]{\ifnum\language=\languageNGerman % Beispieldatei zum Austesten der Makros des \StrukTeXSty{} ohne die % Benutzung optionaler Pakete -% \else +% \else % Example File for Testing Purposes of the Macros of \StrukTeXSty{} % without any Optional Packages % \fi} % -% \changes{v4.1c}{95/07/24}{Eigene Datei zum Austesten der Makros integriert} +% \changes{v-4.1c}{95/07/24}{Eigene Datei zum Austesten der Makros integriert} % \ifnum\language=\languageNGerman % Die folgenden Zeilen bilden eine Musterdatei, die zum Austesten -% der Makros benutzt werden kann. Der Inhalt ist nur in Englisch +% der Makros benutzt werden kann. Der Inhalt ist nur in Englisch % vorhanden. % \else -% The following lines build up a model file, that can be used for testing +% The following lines build up a model file, that can be used for testing % the macros. % \fi -% \iffalse -%<*example2> -% \fi % \begin{macrocode} +%<*example2> \documentclass[draft]{article} \usepackage{struktex} @@ -2866,34 +2834,30 @@ \end{struktogramm} \end{document} -% \end{macrocode} -% \iffalse %</example2> -% \fi +% \end{macrocode} % % % \subsection[\ifnum\language=\languageNGerman Beispieldatei Nr. 2\else Example -% File No 2\fi]{\ifnum\language=\languageNGerman +% File No 2\fi]{\ifnum\language=\languageNGerman % Beispieldatei zum Austesten der Makros des \StrukTeXSty{} mit dem Paket % \textsf{pict2e.sty} -% \else +% \else % Example File for Testing Purposes of the Macros of \StrukTeXSty{} % with the package \textsf{pict2e.sty} % \fi} %% -% \changes{v4.1c}{95/07/24}{Eigene Datei zum Austesten der Makros integriert} +% \changes{v-4.1c}{95/07/24}{Eigene Datei zum Austesten der Makros integriert} % \ifnum\language=\languageNGerman % Die folgenden Zeilen bilden eine Musterdatei, die zum Austesten -% der Makros benutzt werden kann. Der Inhalt ist nur in Englisch +% der Makros benutzt werden kann. Der Inhalt ist nur in Englisch % vorhanden. % \else -% The following lines build up a template file, that can be used for testing +% The following lines build up a template file, that can be used for testing % the macros. % \fi -% \iffalse -%<*example3> -% \fi % \begin{macrocode} +%<*example3> \documentclass{article} \usepackage[pict2e, verification]{struktex} @@ -2941,15 +2905,13 @@ \end{struktogramm} \end{document} -% \end{macrocode} -%\iffalse %</example3> -%\fi +% \end{macrocode} % % \subsection[\ifnum\language=\languageNGerman Beispieldatei Nr. 3\else Example -% File No 3\fi]{\ifnum\language=\languageNGerman +% File No 3\fi]{\ifnum\language=\languageNGerman % Beispieldatei zum Austesten der Makros des \textsf{struktxp.sty} -% \else +% \else % Example File for Testing the Macros of \textsf{struktxp.sty} % \fi} % @@ -2964,10 +2926,8 @@ % of \textsf{struktxp.sty}. For testing one should delete the comment characters % before the line |\usepackage[T1]{fontenc}|. % \fi -% \iffalse -%<*example4> -% \fi % \begin{macrocode} +%<*example4> \documentclass{article} \usepackage{struktxp,struktxf} @@ -2986,7 +2946,7 @@ in math mode: \(\pVar{a}+\pVar{iV_g}\) boolean values: \sTrue, \sFalse, \pTrue, \pFalse } -\paragraph{After changing the boolean values with} +\paragraph{After changing the boolean values with} \verb-\pBoolValue{yes}{no}-: {\obeylines @@ -2994,7 +2954,7 @@ boolean values: \sTrue, \sFalse, \pTrue, \pFalse boolean values: \sTrue, \sFalse, \pTrue, \pFalse } -\paragraph{after changing the fonts with} +\paragraph{after changing the fonts with} \verb-\pFonts{\itshape}{\sffamily\bfseries}{}-: {\obeylines @@ -3005,7 +2965,7 @@ in math mode: \(\pVar{a}+\pVar{iV_g}\) boolean values: \sTrue, \sFalse, \pTrue, \pFalse } -\paragraph{after changing the fonts with} +\paragraph{after changing the fonts with} \verb-\pFonts{\ttfamily}{\ttfamily\bfseries}{\ttfamily\slshape}-: {\obeylines @@ -3016,7 +2976,7 @@ in math mode: \(\pVar{a}+\pVar{iV_g}\) boolean values: \sTrue, \sFalse, \pTrue, \pFalse } -\paragraph{after changing the fonts with} +\paragraph{after changing the fonts with} \verb-\pFonts{\itshape}{\bfseries\itshape}{}-: {\obeylines @@ -3042,7 +3002,7 @@ in math mode: \(\pVar{a}+\pVar{iV_g}\) boolean values: \sTrue, \sFalse, \pTrue, \pFalse } -\paragraph{After changing the boolean values with} +\paragraph{After changing the boolean values with} \verb-\pBoolValue{\texttt{yes}}{\texttt{no}}-: {\obeylines @@ -3050,7 +3010,7 @@ boolean values: \sTrue, \sFalse, \pTrue, \pFalse boolean values: \sTrue, \sFalse, \pTrue, \pFalse } -\paragraph{after changing the fonts with} +\paragraph{after changing the fonts with} \verb-\pFonts{\itshape}{\sffamily\bfseries}{}-: {\obeylines @@ -3061,7 +3021,7 @@ in math mode: \(\pVar{a}+\pVar{iV_g}\) boolean values: \sTrue, \sFalse, \pTrue, \pFalse } -\paragraph{after changing the fonts with} +\paragraph{after changing the fonts with} \verb-\pFonts{\ttfamily}{\ttfamily\bfseries}{\ttfamily\slshape}-: {\obeylines @@ -3072,7 +3032,7 @@ in math mode: \(\pVar{a}+\pVar{iV_g}\) boolean values: \sTrue, \sFalse, \pTrue, \pFalse } -\paragraph{after changing the fonts with} +\paragraph{after changing the fonts with} \verb-\pFonts{\itshape}{\bfseries\itshape}{}-: {\obeylines @@ -3098,7 +3058,7 @@ in math mode: \(\pVar{a}+\pVar{iV_g}\) boolean values: \sTrue, \sFalse, \pTrue, \pFalse } -\paragraph{After changing the boolean values with} +\paragraph{After changing the boolean values with} \verb-\pBoolValue{\texttt{yes}}{\texttt{no}}-: {\obeylines @@ -3106,7 +3066,7 @@ boolean values: \sTrue, \sFalse, \pTrue, \pFalse boolean values: \sTrue, \sFalse, \pTrue, \pFalse } -\paragraph{after changing the fonts with} +\paragraph{after changing the fonts with} \verb-\pFonts{\itshape}{\sffamily\bfseries}{}-: {\obeylines @@ -3117,7 +3077,7 @@ in math mode: \(\pVar{a}+\pVar{iV_g}\) boolean values: \sTrue, \sFalse, \pTrue, \pFalse } -\paragraph{after changing the fonts with} +\paragraph{after changing the fonts with} \verb-\pFonts{\ttfamily}{\ttfamily\bfseries}{\ttfamily\slshape}-: {\obeylines @@ -3128,7 +3088,7 @@ in math mode: \(\pVar{a}+\pVar{iV_g}\) boolean values: \sTrue, \sFalse, \pTrue, \pFalse } -\paragraph{after changing the fonts with} +\paragraph{after changing the fonts with} \verb-\pFonts{\itshape}{\bfseries\itshape}{}-: {\obeylines @@ -3154,7 +3114,7 @@ in math mode: \(\pVar{a}+\pVar{iV_g}\) boolean values: \sTrue, \sFalse, \pTrue, \pFalse } -\paragraph{After changing the boolean values with} +\paragraph{After changing the boolean values with} \verb-\pBoolValue{\texttt{yes}}{\texttt{no}}-: {\obeylines @@ -3162,7 +3122,7 @@ boolean values: \sTrue, \sFalse, \pTrue, \pFalse boolean values: \sTrue, \sFalse, \pTrue, \pFalse } -\paragraph{after changing the fonts with} +\paragraph{after changing the fonts with} \verb-\pFonts{\itshape}{\sffamily\bfseries}{}-: {\obeylines @@ -3173,7 +3133,7 @@ in math mode: \(\pVar{a}+\pVar{iV_g}\) boolean values: \sTrue, \sFalse, \pTrue, \pFalse } -\paragraph{after changing the fonts with} +\paragraph{after changing the fonts with} \verb-\pFonts{\ttfamily}{\ttfamily\bfseries}{\ttfamily\slshape}-: {\obeylines @@ -3184,7 +3144,7 @@ in math mode: \(\pVar{a}+\pVar{iV_g}\) boolean values: \sTrue, \sFalse, \pTrue, \pFalse } -\paragraph{after changing the fonts with} +\paragraph{after changing the fonts with} \verb-\pFonts{\itshape}{\bfseries\itshape}{}-: {\obeylines @@ -3202,29 +3162,25 @@ Without \textit{italic correction}: \end{document} %% %% End of file `struktex-test-2.tex'. -% \end{macrocode} -% \iffalse %</example4> -% \fi +% \end{macrocode} % % % \subsection[\ifnum\language=\languageNGerman Beispieldatei Nr. 4\else Example -% File No 4\fi]{\ifnum\language=\languageNGerman +% File No 4\fi]{\ifnum\language=\languageNGerman % Beispieldatei zum Austesten der Makros des \textsf{struktxp.sty} -% \else +% \else % Example File for Testing the Macros of \textsf{struktxp.sty} % \fi} % % \ifnum\language=\languageNGerman % Die folgenden Zeilen werden in einem anderen Zusammenhang benutzt, % Java-Methoden zu dokumentieren. An dieser Stelle wird ein eigener Weg -% gew"ahlt, da das sonst "ubliche Arbeiten mit |lstinline| zu Fehlern f"uhrt. +% gew"ahlt, da das sonst "ubliche Arbeiten mit |lstinline| zu Fehlern f"uhrt. % \else % \fi -% \iffalse -%<*example5> -% \fi % \begin{macrocode} +%<*example5> \documentclass{article} \usepackage{struktxp,struktxf} @@ -3297,19 +3253,17 @@ Without \textit{italic correction}: \pExp{public abstract boolean drawImage(Image img, int dx1, int dy1, int dx1, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)}]% - \ldots + \ldots \end{fdescription} \end{document} %% %% End of file `struktex-test-5.tex'. -% \end{macrocode} -% \iffalse %</example5> -% \fi +% \end{macrocode} % -% \section{\ifnum\language=\languageNGerman +% \section{\ifnum\language=\languageNGerman % Makros zur Erstellung der Dokumentation des \StrukTeXSty -% \else +% \else % Macros for Generating the Documentation of the \StrukTeXSty % \fi} % @@ -3344,12 +3298,10 @@ Without \textit{italic correction}: % which has been developed in connection with \foreign{lshort2e.tex - The not % so short introduction to LaTeX2e}. % \fi -% \changes{v8.0e}{05/05/17}{nun wird die .pdf-Ausgabe sauber abgefangen} +% \changes{v-8.0e}{05/05/17}{nun wird die .pdf-Ausgabe sauber abgefangen} % \begin{macrocode} %<*strukdoc> \RequirePackage{ifpdf} -\ProvidesPackage{strukdoc} - [\filedate\space\fileversion\space (Jobst Hoffmann)] \newif\ifcolor \IfFileExists{color.sty}{\colortrue}{} \ifpdf \RequirePackage[colorlinks]{hyperref}\else \def\href#1{\texttt}\fi @@ -3585,22 +3537,27 @@ Without \textit{italic correction}: \IfFileExists {#2}{\@verbatim #1\relax \verbatim@readfile{\@filef@und}\endtrivlist\endgroup\@doendpe}% {\typeout {No file #2.}\endgroup}} -% \end{macrocode} -% \iffalse %</strukdoc> -% \fi +% \end{macrocode} % % -% \section[Makefile]{\ifnum\language=\languageNGerman -% Makefile zur automatisierten Erstellung der Dokumentation und der Tests +% \section[Makefile]{\ifnum\language=\languageNGerman +% Makefile zur automatisierten Erstellung der Dokumentation und der Tests % des \StrukTeXSty -% \else -% Makefile for the automized generation of the documentation and the tests +% \else +% Makefile for the automized generation of the documentation and the tests % of the \StrukTeXSty % \fi} % \label{sec:Makefile} -% \changes{v8.2a}{06/01/19}{HOMETEXMF $\rightarrow$ TEXMFHOME} -% \changes{v8.0b}{04/07/14}{.pdf-Ausgabe eingef"uhrt} +% \changes{v101}{10/06/25}{changed Makefile according to subversion +% revision numbers} +% \changes{v061}{10/05/31}{corrected some more typos} +% \changes{v056}{10/01/21}{corrected Makefile once more} +% \changes{v-9.2}{10/01/18}{corrected the Makefile} +% \changes{v-8.0e}{05/05/17}{Tippfehler korrigiert: \$\$\$f $\rightarrow$ \$\$f} +% \changes{v-8.0e}{05/05/17}{\& mit Fluchtzeichen versehen} +% \changes{v-8.0b}{04/07/14}{.pdf-Ausgabe eingef"uhrt} +% \changes{v-8.2a}{06/01/19}{HOMETEXMF $\rightarrow$ TEXMFHOME} % % \ifnum\language=\languageNGerman % Der Umgang mit \textsf{.dtx}-Paketen ist wesentlich einfacher, wenn ein @@ -3614,36 +3571,32 @@ Without \textit{italic correction}: % \else % \fi % -% \changes{v8.0e}{05/05/17}{Tippfehler korrigiert: \$\$\$f $\rightarrow$ \$\$f} -% \changes{v8.0e}{05/05/17}{\& mit Fluchtzeichen versehen} -% \iffalse -%<*makefile> -% \fi % \begin{macrocode} +%<*makefile> #----------------------------------------------------------------------- # Purpose: generation of the documentation of the struktex package # Notice: this file can be used only with dmake and the option "-B"; -# this option lets dmake interpret the leading spaces as +# this option lets dmake interpret the leading spaces as # distinguishing characters for commands in the make rules. # # Rules: -# - all-de: generate all the files and the (basic) german +# - all-de: generate all the files and the (basic) german # documentation -# - all-en: generate all the files and the (basic) english +# - all-en: generate all the files and the (basic) english # documentation # - test: format the examples -# - history: generate the documentation with revision +# - history: generate the documentation with revision # history # - develop-de: generate the german documentation with revision # history and source code -# - develop-en: generate the english documentation with +# - develop-en: generate the english documentation with # revision history and source code # - realclean # - clean # - clean-example # -# Author: Jobst Hoffmann, Fachhochschule Aachen, Abt. Juelich -# Date: 2003/04/18 +# Author: Jobst Hoffmann, Fachhochschule Aachen, Standort Juelich +# Date: 2006/08/23 #----------------------------------------------------------------------- # The texmf-directory, where to install new stuff (see texmf.cnf) @@ -3659,7 +3612,7 @@ Without \textit{italic correction}: INSTALLTEXMF=`kpsewhich --expand-var '$$TEXMFHOME'` # Try to use the local tree known by kpsewhich: #INSTALLTEXMF=`kpsewhich --expand-var '$$TEXMFLOCAL'` -# But you may set INSTALLTEXMF to every directory you want. +# But you may set INSTALLTEXMF to every directory you want. # Use following, if you only want to test the installation: #INSTALLTEXMF=/tmp/texmf @@ -3669,13 +3622,13 @@ TEXHASH=texhash ######### Edit following only, if you want to change defaults! # The directory, where to install *.cls and *.sty -CLSDIR=$(INSTALLTEXMF)/tex/latex/jhf/$(PACKAGE) +CLSDIR=$(INSTALLTEXMF)/tex/latex/$(PACKAGE) # The directory, where to install documentation -DOCDIR=$(INSTALLTEXMF)/doc/latex/jhf/$(PACKAGE) +DOCDIR=$(INSTALLTEXMF)/doc/latex/$(PACKAGE) # The directory, where to install the sources -SRCDIR=$(INSTALLTEXMF)/source/latex/jhf/$(PACKAGE) +SRCDIR=$(INSTALLTEXMF)/source/latex/$(PACKAGE) # The directory, where to install demo-files # If we have some, we have to add following 2 lines to install rule: @@ -3687,11 +3640,12 @@ DEMODIR=$(DOCDIR)/demo # 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 +# 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_\\2+'` +VERSION_S := `latex getversion | grep '^VERSION' | \ + sed 's+^VERSION \\(.*\\) of .*+\\1+'` ######################################################################## -# End of customization section +# End of customization section ######################################################################## DVIPS = dvips @@ -3701,56 +3655,54 @@ PDFLATEX = pdflatex # postscript viewer GV = gv -COMMON_OPTIONS = \OnlyDescription\CodelineNumbered +COMMON_OPTIONS = # \OnlyDescription\CodelineNumbered\PageIndex HISTORY_OPTIONS = \RecordChanges DEVELOPER_OPTIONS = \EnableCrossrefs\RecordChanges\AlsoImplementation\CodelineIndex +# The name of the game PACKAGE = struktex +# strip off the comments from the package +$(PACKAGE).sty $(PACKAGE)-test-*.tex: $(PACKAGE).ins $(PACKAGE).dtx + +$(LATEX) $<; \ + sh $(PACKAGE).makemake + all-de: $(PACKAGE).de.pdf all-en: $(PACKAGE).en.pdf -# strip off the comments from the package -$(PACKAGE).sty $(PACKAGE)-test-*.tex: $(PACKAGE).dtx - -$(PACKAGE).sty $(PACKAGE)-test-*.tex: $(PACKAGE).ins - +$(LATEX) $< - # generate the documentation -$(PACKAGE).dvi: $(PACKAGE).sty - -$(PACKAGE).de.dvi: $(PACKAGE).dtx +$(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).de.pdf: $(PACKAGE).dtx $(PACKAGE).sty +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\input{$<}" +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\input{$<}" +mv $(<:.dtx=.pdf) $(<:.dtx=.de.pdf) -$(PACKAGE).en.dvi: $(PACKAGE).dtx - +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\def\selectlanguageEnglish{}\input{$<}" - +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\def\selectlanguageEnglish{}\input{$<}" +$(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 - +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\def\selectlanguageEnglish{}\input{$<}" - +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\def\selectlanguageEnglish{}\input{$<}" +$(PACKAGE).en.pdf: $(PACKAGE).dtx $(PACKAGE).sty + +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\def\primarylanguage{english}\input{$<}" + +$(PDFLATEX) "\AtBeginDocument{$(COMMON_OPTIONS)}\def\primarylanguage{english}\input{$<}" +mv $(<:.dtx=.pdf) $(<:.dtx=.en.pdf) # generate the documentation with revision history (only german) -history: $(PACKAGE).dtx +history: $(PACKAGE).dtx $(PACKAGE).sty +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(HISTORY_OPTIONS)}\input{$<}" +$(LATEX) "\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{$<}" -# generate the documentation for the developer (revision history always +# generate the documentation for the developer (revision history always # in german) -develop-de: $(PACKAGE).dtx +develop-de: $(PACKAGE).dtx $(PACKAGE).sty +$(LATEX) "\AtBeginDocument{$(HISTORY_OPTIONS)$(DEVELOPER_OPTIONS)}\input{$<}" +$(LATEX) "\AtBeginDocument{$(HISTORY_OPTIONS)$(DEVELOPER_OPTIONS)}\input{$<}" +makeindex -s gind.ist $(PACKAGE).idx @@ -3762,19 +3714,19 @@ else +mv $(<:.dtx=.dvi) $(<:.dtx=.de.dvi) endif -develop-en: $(PACKAGE).dtx - +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(DEVELOPER_OPTIONS)}\def\selectlanguageEnglish{}\input{$<}" - +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(DEVELOPER_OPTIONS)}\def\selectlanguageEnglish{}\input{$<}" +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{$<}" +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\selectlanguageEnglish{}\input{$<}" + +$(LATEX) "\AtBeginDocument{$(COMMON_OPTIONS)$(DEVELOPER_OPTIONS)}\def\primarylanguage{english}\input{$<}" ifneq (,$(findstring pdf,$(LATEX))) +mv $(<:.dtx=.pdf) $(<:.dtx=.en.pdf) else +mv $(<:.dtx=.dvi) $(<:.dtx=.en.dvi) endif -# format the example/test files +# format the example/test files test: for i in `seq 1 3`; do \ f=$(PACKAGE)-test-$$i; \ @@ -3820,13 +3772,11 @@ realclean: clean clean-test: rm $(PACKAGE)-test-*.* # this $-sign is needed for font-locking in XEmacs only -% \end{macrocode} -% \iffalse %</makefile> -% \fi +% \end{macrocode} ^^A$ % % \ifnum\language=\languageNGerman -% Die folgende Zeile, die nach |latex struktex.ins| als Datei +% Die folgende Zeile, die nach |latex struktex.ins| als Datei % |struktex.makemake| vorliegt, kann mit dem Kommando % \begin{verbatim} % sh struktex.makemake @@ -3842,25 +3792,19 @@ clean-test: % to generate the file |Makefile|, which can be further used to % generate the documentation with a common |make| like the GNU |make|. % \fi -% \iffalse -%<*setup> -% \fi % \begin{macrocode} -sed -e "`echo \"s/^ /@/g\" | tr '@' '\011'`" struktex.mk > Makefile -% \end{macrocode} -% \iffalse +%<*setup> +sed -e "`echo \"s/^ /@/g\" | tr '@' '\011'`" struktex.mk > Makefile %</setup> -% \fi +% \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 -% \iffalse -%<*getversion> -% \fi % \begin{macrocode} +%<*getversion> \documentclass{ltxdoc} \nofiles \usepackage{struktex} @@ -3868,19 +3812,25 @@ sed -e "`echo \"s/^ /@/g\" | tr '@' '\011'`" struktex.mk > Makefile \typeout{VERSION \fileversion\space of \filedate} \begin{document} \end{document} -% \end{macrocode} -% \iffalse %</getversion> -% \fi +% \end{macrocode} % % -% \changes{v8.3}{06/08/18}{struktex.el erweitert, so dass die Parameter +% \changes{v055}{10/01/21}{added "declaration" to LaTeX-item-list again +% (previously removed unintentionally)} +% \changes{v055}{10/01/21}{corrected "task" entry} +% \changes{v055}{10/01/21}{corrected lisp comments "\texttt{\char92}" +% $\rightarrow$ "\texttt{\char92}\texttt{\char92}"} +% \changes{v055}{10/01/21}{corrected format entry} +% \changes{v-9.2}{10/01/18}{extended .el-file: `inparallel, `task, `inparallelend} +% \changes{v-8.3}{06/08/18}{struktex.el erweitert, so dass die Parameter % alle Kommandos automatisch abgefragt werden.} % \section{\ifnum\language=\languageNGerman Stil Datei zur einfachen -% Eingabe von Struktogrammen beim Arbeiten mit dem (X)emacs und AUC\TeX\label{AUCTeX} +% Eingabe von Struktogrammen beim Arbeiten mit dem (X)emacs und AUC\TeX % \else Style File for Easier Input while working with (X)emacs -% and AUC\TeX\label{AUCTeX} +% and AUC\TeX % \fi} +% \label{AUCTeX} % % \ifnum\language=\languageNGerman% % Der (X)emacs und das Paket AUC\TeX{} @@ -3894,9 +3844,9 @@ sed -e "`echo \"s/^ /@/g\" | tr '@' '\011'`" struktex.mk > Makefile % % Diese Datei ist zum jetzigen Zeitpunkt noch in der Entwicklungsphase, % d.\,h. man kann mit ihr arbeiten, aber es fehlen noch ein paar Dinge wie -% das \textit{font locking}, die Anzahl der automatisch eingefügten \cs{switch} +% das \textit{font locking}, die Anzahl der automatisch eingef"ugten \cs{switch} % Kommandos sollte nicht fest gleich eins sein, sondern von der Anzahl der -% eingegebenen Fälle abhängig sein. +% eingegebenen F"alle abh"angig sein. % \else% % The (X)emacs and the package AUC\TeX{} % (\url{http://www.gnu.org/software/auctex/}) form a powerful tool for @@ -3911,17 +3861,15 @@ sed -e "`echo \"s/^ /@/g\" | tr '@' '\011'`" struktex.mk > Makefile % but there is a couple of missing things as for example font locking or % the automatic insertion of \cs{switch} commands according to the user's % input. -% \fi -% \iffalse -%<*auctex> % \fi % \begin{macrocode} +%<*auctex> ;;; struktex.el --- AUCTeX style for `struktex.sty' ;; Copyright (C) 2006 Free Software Foundation, Inc. -;; Author: J. Hoffmann <j.hoffmann@fh-aachen.de> -;; Maintainer: j.hoffmann@fh-aachen.de +;; Author: J. Hoffmann <j.hoffmann_at_fh-aachen.de> +;; Maintainer: j.hoffmann_at_fh-aachen.de ;; Created: 2006/01/17 ;; Keywords: tex @@ -3934,6 +3882,8 @@ sed -e "`echo \"s/^ /@/g\" | tr '@' '\011'`" struktex.mk > Makefile (lambda () ;; 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 "centernss" '("struktogramm" LaTeX-env-struktogramm) @@ -3944,7 +3894,7 @@ sed -e "`echo \"s/^ /@/g\" | tr '@' '\011'`" struktex.mk > Makefile '("assign" [ "Height" ] "Statement") "StrukTeX" '("case" TeX-mac-case) - "switch" "condition" + "switch" "Condition" "caseend" '("declarationtitle" "Title") '("description" "Name" "Meaning") @@ -3953,8 +3903,11 @@ sed -e "`echo \"s/^ /@/g\" | tr '@' '\011'`" struktex.mk > Makefile '("forever" TeX-mac-forever) "foreverend" '("ifthenelse" TeX-mac-ifthenelse) - "ifend" "change" + "ifend" + '("inparallel" TeX-mac-inparallel) + '("task" "Description") + "inparallelend" "sProofOn" "sProofOff" '("until" TeX-mac-until) @@ -3995,7 +3948,7 @@ sed -e "`echo \"s/^ /@/g\" | tr '@' '\011'`" struktex.mk > Makefile (format "[%s]" title))))) (defun TeX-mac-case (macro) - "Insert \case with all arguments, the needed \switch(es) and the final \caseend. + "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): ")) @@ -4023,7 +3976,7 @@ condition, and the texts for the different cases" (insert "\\caseend"))) (defun TeX-mac-forever (macro) - "Insert \forever-block with all arguments. + "Insert \\forever-block with all arguments. This is only the optional height" (let ((height (read-string "Height (optional): "))) (insert (if (not (zerop (length height))) @@ -4034,7 +3987,7 @@ This is only the optional height" (insert "\\foreverend"))) (defun TeX-mac-ifthenelse (macro) - "Insert \ifthenelse with all arguments. + "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" (let ((height (read-string "Height (optional): ")) @@ -4056,8 +4009,33 @@ condition, and the possible values of the condition" (newline-and-indent) (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" + (let ((height (read-string "Height (optional): ")) + (number (read-string "Number of parallel tasks: ")) + (text (read-string "Task no. 1: ")) + (count 1) + ) + (setq number-int (string-to-number number)) + (insert (concat (if (not (zerop (length height))) + (format "[%s]" height)) + (format "{%s}{%s}" number text))) + (while (< count number-int) + (end-of-line) + (newline-and-indent) + (newline-and-indent) + (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"))) + (defun TeX-mac-until (macro) - "Insert \until with all arguments. + "Insert \\until with all arguments. These are the optional height and the required argument condition" (let ((height (read-string "Height (optional): ")) (condition (read-string "Condition: "))) @@ -4070,7 +4048,7 @@ These are the optional height and the required argument condition" (insert "\\untilend"))) (defun TeX-mac-while (macro) - "Insert \while with all arguments. + "Insert \\while with all arguments. These are the optional height and the required argument condition" (let ((height (read-string "Height (optional): ")) (condition (read-string "Condition: "))) @@ -4088,10 +4066,8 @@ These are the optional height and the required argument condition" "Package options for the struktex package.") ;;; struktex.el ends here. -% \end{macrocode} -% \iffalse %</auctex> -% \fi +% \end{macrocode} % % % \StopEventually{ @@ -4122,7 +4098,7 @@ These are the optional height and the required argument condition" % Frank Mittelbach, Denys Duchier and Johannes Braams. % \newblock {\em {The {\sf DocStrip} program}}, Dezember 1994. % -% \bibitem[MDB01]{MittelbachDuchierBraams:DocStrip-V2.5b} +% \bibitem[MDB01]{MittelbachDuchierBraams:DocStrip-V-2.5b} % Frank Mittelbach, Denys Duchier, Johannes Braams, % Marcin Woli\'nski and Mark Wooding % \newblock {\em {The {\sf DocStrip} program}}, September 2001. @@ -4131,7 +4107,7 @@ These are the optional height and the required argument condition" % Frank Mittelbach. % \newblock {\em {The {\sf doc} and {\sf shortvrb} Packages}}, Oktober 1994. % -% \bibitem[Mit01]{FM:TheDocAndShortvrbPackages-V2.0} +% \bibitem[Mit01]{FM:TheDocAndShortvrbPackages-V-2.0} % Frank Mittelbach. % \newblock {\em {The {\sf doc} and {\sf shortvrb} Packages}}, September 2001. % @@ -4173,17 +4149,9 @@ These are the optional height and the required argument condition" % % \subsection{\ifnum\language=\languageNGerman Allgemeines \else General \fi} % -% \ifnum\language=\languageNGerman -% Als erstes wird getestet, ob das Paket \StrukTeXSty\ noch nicht -% geladen wurde. Wenn das der Fall ist, wird weitergearbeitet, ansonsten -% wird das Lesen sofort abgebrochen. -% \else -% First it is tested, if the package \StrukTeX\ has been loaded. In case it has been, -% it will be proceded. Otherwise reading will be interrupted. -% \fi +% \changes{v084}{10/06/24}{removed flag preventing double load of the package} % \begin{macrocode} %<*struktex> -\@ifundefined{StrukTeX}{}{\endinput} % \end{macrocode} % \ifnum\language=\languageNGerman % Dies ist ein Paket, das f"ur \LaTeX2e entwickelt wurde, es wird daher @@ -4198,7 +4166,7 @@ These are the optional height and the required argument condition" % errors. In addition the package \textsf{ifthen.sty} will be loaded, if not already % done. % \fi -% \changes{v4.4b}{96/03/13}{`RequirePackage umgestellt wg. korrekter Versionsmeldung} +% \changes{v-4.4b}{96/03/13}{`RequirePackage umgestellt wg. korrekter Versionsmeldung} % \ifnum\language=\languageNGerman % Nun wird das Einlesen des Makropakets mit der aktuellen % Versionsnummer gemeldet. @@ -4209,25 +4177,47 @@ These are the optional height and the required argument condition" % \begin{macrocode} \RequirePackage{ifthen} % \end{macrocode} -% \ifnum\language=\languageNGerman -% StrukTeX ben"otigt zwei weitere Pakete, die zum Lieferumfang geh"oren. -% Diese werden hier geladen. -% \else +% \ifnum\language=\languageNGerman% +% \StrukTeX{} ben"otigt zwei weitere Pakete, die zum Lieferumfang geh"oren. +% Diese werden hier geladen.% +% \else% +% \StrukTeX{} uses two additional packages which are included in the +% package,these are loaded here.% % \fi % \begin{macrocode} \RequirePackage{struktxf} \RequirePackage{struktxp} % \end{macrocode} % -% \changes{v5.3a}{98/11/27}{Option \texttt{emlines} eingef"uhrt} -% \ifnum\language=\languageNGerman -% Ab der Version 5.3a kennt StrukTeX eine Option "`|emlines|"', die es +% \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:% +% \else% +% For developing purposes there are some debugging macros; for the release +% version these macros are eliminated by the command:% +% \fi% +% \begin{verbatim} +% \end{verbatim} +% \changes{v061}{10/05/31}{added some debugging macros} +% \begin{macrocode} +% \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} +% \ifnum\language=\languageNGerman% +% Ab der Version 5.3a kennt \StrukTeX{} eine Option "`|emlines|"', die es % erm"oglicht, Geraden beliebiger Steigung zu zeichnen; sp"ater kann auch -% das Paket \textsf{curves} zum Zeichnen beliebiger Steigungen eingesetzt -% werden, ab der Version 8.0a wird auch das Paket -% \textsf{pict2e} unterst"utzt, das dazugeh"orige -% Paket wird hier geladen. -% \else +% das Paket \textsf{curves} (Option "`|curves|"') zum Zeichnen beliebiger +% Steigungen eingesetzt werden, ab der Version 8.0a wird auch das Paket +% \textsf{pict2e} (Option "`|pict2e|"') unterst"utzt, das dazugeh"orige +% Paket wird hier geladen.% +% \else% +% From version 5.3a on there is the option "|emlines|" which makes it +% possible to draw lines with any slope; later on one can use the package +% \textsf{curves} (Option "|curves|") and from version 8.0a on +% \textsf{pict2e} (option "|pict2e|") is supported, these packages are +% loaded here.% % \fi % \begin{macrocode} \newboolean{curves} @@ -4257,7 +4247,7 @@ These are the optional height and the required argument condition" } % \end{macrocode} % -% \changes{v7.0a}{04/01/05}{Option \texttt{verification} eingef"uhrt} +% \changes{v-7.0a}{04/01/05}{Option \texttt{verification} eingef"uhrt} % \ifnum\language=\languageNGerman % Ab der Version 7.0a kennt \StrukTeX{} eine Option "`|verification|"', die % ein zus"atzliches Element definiert: die \cs{assert}-Box, die in @@ -4275,10 +4265,10 @@ These are the optional height and the required argument condition" } % \end{macrocode} % -% \changes{v8.2a}{06/01/17}{Option \texttt{nofiller} eingef"uhrt} +% \changes{v-8.2a}{06/01/17}{Option \texttt{nofiller} eingef"uhrt} % \ifnum\language=\languageNGerman % Ab der Version 8.2a kennt \StrukTeX{} eine Option "`|nofiller|"', die -% die Darstellung von Leerraum beeinflusst: ohne diese Option wird in +% die Darstellung von Leerraum beeinflusst: ohne diese Option wird in % Alternativen ein \(\emptyset\)-Zeichen ausgegeben, wenn der Platz % ausreichend ist. Dies f"uhrt zu einer uneinheitlichen Darstellung im % Vergleich mit dem Leerraum, der von einem \cs{case}-Block erzeugt wird, @@ -4299,7 +4289,7 @@ These are the optional height and the required argument condition" } % \end{macrocode} % -% \changes{v8.3}{06/08/17}{Optionen \texttt{draft} und \texttt{final} eingef"uhrt} +% \changes{v-8.3}{06/08/17}{Optionen \texttt{draft} und \texttt{final} eingef"uhrt} % \ifnum\language=\languageNGerman% % Ab der Version 8.3 kennt \StrukTeX{} die Optionen "`|draft|"' und % "`|final|"', die zwischen dem Entwurf und der endg"ultigen Version des @@ -4361,7 +4351,7 @@ These are the optional height and the required argument condition" % \else Various Macros for Preparation % \fi} % -% \changes{v4.1c}{95/07/24}{Eigene Datei f"ur spezielle Fonts anlegen} +% \changes{v-4.1c}{95/07/24}{Eigene Datei f"ur spezielle Fonts anlegen} % \ifnum\language=\languageNGerman % Zun"achst werden die zus"atzlich ben"otigten Fonts bereitgestellt. Da diese % Fonts auch in anderem Zusammenhang ben"otigt werden, wird hierf"ur ein @@ -4383,8 +4373,8 @@ These are the optional height and the required argument condition" % \begin{macro}{\integer} % \begin{macro}{\real} % \begin{macro}{\complex} -% \changes{v4.1b}{95/07/23}{`complex eingef"uhrt} -% \changes{v4.1a}{95/07/17}{`nat, `integer und `real eingef"uhrt} +% \changes{v-4.1b}{95/07/23}{`complex eingef"uhrt} +% \changes{v-4.1a}{95/07/17}{`nat, `integer und `real eingef"uhrt} % \ifnum\language=\languageNGerman % Die folgenden Makros dienen dem vereinfachten Schreiben von Mengen: % \else @@ -4402,8 +4392,8 @@ These are the optional height and the required argument condition" % \end{macro} % % \begin{macro}{\btt} -% \changes{v4.1a}{95/07/17}{`btt auf NFSS umgestellt} -% \changes{v8.0b}{04/07/14}{Hinweis auf Luxi Mono als Ersatz fuer cmbtt} +% \changes{v-4.1a}{95/07/17}{`btt auf NFSS umgestellt} +% \changes{v-8.0b}{04/07/14}{Hinweis auf Luxi Mono als Ersatz fuer cmbtt} % \ifnum\language=\languageNGerman % Um fetten Schreibmaschinensatz erzeugen zu k"onnen, gibt es den Font \cs{btt}, % der als Erweiterung der \textsf{cmtt}-Font-Familie definiert ist. Um @@ -4435,7 +4425,7 @@ These are the optional height and the required argument condition" % % \begin{macro}{\MathItalics} % \begin{macro}{\MathNormal} -% \changes{v4.1a}{95/07/17}{`MathItalics und `MathNormal eingef"uhrt} +% \changes{v-4.1a}{95/07/17}{`MathItalics und `MathNormal eingef"uhrt} % \ifnum\language=\languageNGerman % Die folgenden Makros dienen dem Umschalten zwischen verschiedenen Formen % der \foreign{italics} im Mathematik-Modus. Sie wurden aus @@ -4470,11 +4460,11 @@ These are the optional height and the required argument condition" % \end{macro} % % \subsection[\ifnum\language=\languageNGerman Darstellung von Variablen -% etc.\else Representation of Varibles etc.\fi]{\ifnum\language=\languageNGerman -% Makros zur Darstellung von Variablen, -% Schl"usselw"ortern und anderen programmierspezifischen +% etc.\else Representation of Varibles etc.\fi]{\ifnum\language=\languageNGerman +% Makros zur Darstellung von Variablen, +% Schl"usselw"ortern und anderen programmierspezifischen % Details -% \else Macros for Representation of Variables, Keywords and +% \else Macros for Representation of Variables, Keywords and % other specific Details of Programming % \fi} % @@ -4497,11 +4487,11 @@ These are the optional height and the required argument condition" % \end{macrocode} % % \begin{macro}{\pExpFont@nss} -% \changes{v5.4a}{99/11/16}{neu eingef"uhrt, ersetzt `pVarFont@nss} +% \changes{v-5.4a}{99/11/16}{neu eingef"uhrt, ersetzt `pVarFont@nss} % \begin{macro}{\pKeyFont@nss} -% \changes{v4.5a}{96/03/15}{neu eingef"uhrt} +% \changes{v-4.5a}{96/03/15}{neu eingef"uhrt} % \begin{macro}{\pCommentFont@nss} -% \changes{v4.5a}{96/03/15}{neu eingef"uhrt} +% \changes{v-4.5a}{96/03/15}{neu eingef"uhrt} % \ifnum\language=\languageNGerman % Die drei Makros |\pExpFont@nss|, |\pKeyFonts@nss| und |\pCommentFont@nss| % dienen der Vorbesetzung der Fonts zur Formatierung von Variablen, @@ -4522,7 +4512,7 @@ These are the optional height and the required argument condition" % \end{macro} % % \begin{macro}{\pFonts} -% \changes{v4.5a}{96/03/15}{neu eingef"uhrt} +% \changes{v-4.5a}{96/03/15}{neu eingef"uhrt} % \ifnum\language=\languageNGerman % Der Makro \cs{pFonts} dient dem Umsetzen der Vorbesetzungen der Fonts % zum Setzen von Variablennamen, Schl"usselw"ortern und Kommentar: @@ -4547,13 +4537,13 @@ These are the optional height and the required argument condition" % \end{macrocode} % \end{macro} % -% Zum Setzen von Programmtexten innerhalb von Struktogrammen wird +% Zum Setzen von Programmtexten innerhalb von Struktogrammen wird % unterschieden zwischen Ausdr"ucken und (Schl"ussel-)W"ortern. Ein Ausdruck -% (zu verstehen im Sinne eines Ausdrucks einer Programmiersprache) wird in +% (zu verstehen im Sinne eines Ausdrucks einer Programmiersprache) wird in % einem festen Font gesetzt, der durch |\pExpFont@nss| aktuell % bestimmt wird. Dieses gilt in gleicher Weise f"ur (Schl"ussel-)W"orter, -% dabei werden aber die Schl"usselw"orter, die in einer entsprechenden -% Liste definiert sind, fett gedruckt. Sowohl Ausdr"ucke als auch +% dabei werden aber die Schl"usselw"orter, die in einer entsprechenden +% Liste definiert sind, fett gedruckt. Sowohl Ausdr"ucke als auch % (Schl"ussel-)w"orter d"urfen Sonderzeichen enthalten: % \begin{enumerate} % \item der Unterstrich "`|_|"', @@ -4562,9 +4552,9 @@ These are the optional height and the required argument condition" % \item das Doppelkreuz "`|#|"'. % \end{enumerate} % \begin{macro}{\pExpression} -% \changes{v5.4a}{99/11/16}{neu eingef"uhrt, ersetzt `pVariable} +% \changes{v-5.4a}{99/11/16}{neu eingef"uhrt, ersetzt `pVariable} % \begin{macro}{\pExp} -% \changes{v5.4a}{99/11/16}{`pExp als Abk"urzung definiert} +% \changes{v-5.4a}{99/11/16}{`pExp als Abk"urzung definiert} % \ifnum\language=\languageNGerman % Leerzeichen werden beachtet, so dass ganze Anweisungen geschrieben werden % k"onnen. Das Argument kann erst nach der Umdefinition der \foreign{catcodes} @@ -4577,7 +4567,7 @@ These are the optional height and the required argument condition" % Zur Erleichterung des Schreibens wird mit \cs{let} ein alternativer Zugriff % auf \cs{pVariable} geschaffen. % \else -% For easier writing there is brought about an alternative access by +% For easier writing there is brought about an alternative access by % \cs{pVariable}. % \fi % \begin{macrocode} @@ -4643,17 +4633,17 @@ These are the optional height and the required argument condition" % \end{macro} % % \begin{macro}{\pVariable} -% \changes{v5.4a}{99/11/16}{neu definiert} -% \changes{v2.0n}{94/03/31}{Neuimplementation gem"a"s `TeXnischer Kom"odie'} +% \changes{v-5.4a}{99/11/16}{neu definiert} +% \changes{v-2.0n}{94/03/31}{Neuimplementation gem"a"s `TeXnischer Kom"odie'} % \begin{macro}{\pVar} -% \changes{v2.0c}{93/12/09}{`pVar als Abk"urzung definiert} +% \changes{v-2.0c}{93/12/09}{`pVar als Abk"urzung definiert} % \begin{macro}{\pKeyword} -% \changes{v5.4a}{99/11/16}{auf `pVariable zur"uckgef"uhrt} -% \changes{v2.0n}{94/03/31}{Neuimplementation gem"a"s `TeXnischer Kom"odie'} -% \changes{v2.0c}{93/12/09}{`pKeyword und `pKey definiert} +% \changes{v-5.4a}{99/11/16}{auf `pVariable zur"uckgef"uhrt} +% \changes{v-2.0n}{94/03/31}{Neuimplementation gem"a"s `TeXnischer Kom"odie'} +% \changes{v-2.0c}{93/12/09}{`pKeyword und `pKey definiert} % \begin{macro}{\pKey} -% \changes{v5.4a}{99/11/16}{auf `pVariable zur"uckgef"uhrt} -% \changes{v2.0c}{93/12/09}{neu definiert} +% \changes{v-5.4a}{99/11/16}{auf `pVariable zur"uckgef"uhrt} +% \changes{v-2.0c}{93/12/09}{neu definiert} % \ifnum\language=\languageNGerman % Die Implementation von \cs{pKeyword} entspricht der von \cs{pVariable}. % Die hier neu benutzten Fonts (cmbtt..) werden durch den @@ -4665,13 +4655,13 @@ These are the optional height and the required argument condition" % Apart from that it will be proceded as with \cs{pVariable}: % \fi % Zus"atzlich werden Makros \cs{pVar} sowie \cs{pKeyword} und \cs{pKey} mit -% der gleichen Bedeutung definiert. Diese dienen allein der +% der gleichen Bedeutung definiert. Diese dienen allein der % R"uckw"artskompatibilit"at. % \begin{macrocode} \newcommand{\pVariable}% {% \bgroup% - \catcode`\_=13 \let\_\textunderscore + \catcode`\_=13 \let\_\textunderscore \catcode`\#=12 \catcode`\^=12 \catcode`\&=12 % \pVariabl@% } @@ -4685,9 +4675,9 @@ These are the optional height and the required argument condition" % \end{macro} % % \begin{macro}{\pVariabl@} -% \changes{v5.4a}{99/11/16}{neu definiert} -% \changes{v8.0d}{04/12/27}{Python-Schl"usselw"orter neu eingef"uhrt} -% Die Liste der Schl"usselw"orter wird nach den verschiedenen +% \changes{v-5.4a}{99/11/16}{neu definiert} +% \changes{v-8.0d}{04/12/27}{Python-Schl"usselw"orter neu eingef"uhrt} +% Die Liste der Schl"usselw"orter wird nach den verschiedenen % Anwendungsgebieten unterschieden.\footnote{Die Python-Erweiterung % erfolgte nach einem Hinweis von Ludger Humbert, Universit"at Dortmund, von % dem auch die Liste der Schl"usselw"orter stammt, vielen Dank!} @@ -4729,18 +4719,18 @@ These are the optional height and the required argument condition" % \end{macro} % % \begin{macro}{\pLanguage} -% \changes{v5.4a}{99/11/16}{neu definiert} +% \changes{v-5.4a}{99/11/16}{neu definiert} % \begin{macro}{\Cee@nss} -% \changes{v5.4a}{99/11/16}{neu definiert} +% \changes{v-5.4a}{99/11/16}{neu definiert} % \begin{macro}{\Java@nss} -% \changes{v5.4a}{99/11/16}{neu definiert} +% \changes{v-5.4a}{99/11/16}{neu definiert} % \begin{macro}{\Pascal@nss} -% \changes{v5.4a}{99/11/16}{neu definiert} +% \changes{v-5.4a}{99/11/16}{neu definiert} % \begin{macro}{\LaTeX@nss} -% \changes{v5.4a}{99/11/16}{neu definiert} +% \changes{v-5.4a}{99/11/16}{neu definiert} % \begin{macro}{\Python@nss} -% \changes{v8.0d}{04/12/27}{Python als zul"assige Sprache neu definiert} -% Die Liste der Schl"usselw"orter wird nach den verschiedenen +% \changes{v-8.0d}{04/12/27}{Python als zul"assige Sprache neu definiert} +% Die Liste der Schl"usselw"orter wird nach den verschiedenen % Anwendungsgebieten unterschieden. % \begin{macrocode} \newcommand{\pLanguage}[1]{\gdef\pLanguage@nss{#1}} @@ -4759,7 +4749,7 @@ These are the optional height and the required argument condition" % \end{macro} % % \begin{macro}{\CheckForKeyword@nss} -% \changes{v5.4a}{99/11/16}{neu definiert} +% \changes{v-5.4a}{99/11/16}{neu definiert} % Die Liste der Schl"usselw"orter wird der Reihe nach durchlaufen und mit % dem aktuellen Argument \cs{arg} verglichen. % \begin{macrocode} @@ -4792,8 +4782,7 @@ These are the optional height and the required argument condition" % For marking up comments. % \fi % \begin{macrocode} -\def\pComment% -{% +\def\pComment{% \bgroup% \pCommentFont@nss% \let\next=% @@ -4803,7 +4792,7 @@ These are the optional height and the required argument condition" % % \begin{macro}{\pUseKeyFont@nss} % \begin{macro}{\pUseExpFont@nss} -% \changes{v5.4a}{99/11/16}{neu eingef"uhrt, ersetzt `pUseVarFont@nss} +% \changes{v-5.4a}{99/11/16}{neu eingef"uhrt, ersetzt `pUseVarFont@nss} % \ifnum\language=\languageNGerman % Damit Unterstriche und "ahnliche Sonderzeichen korrekt dargestellt werden % k"onnen, ist vor der Benutzung eines bestimmten Fonts zu "uberpr"ufen, @@ -4818,29 +4807,27 @@ These are the optional height and the required argument condition" % \ifnum\language=\languageNGerman % Es wird stets auf den Textmodus umgeschaltet, was unter Einsatz des % \textsf{amstex}-Paketes noch besser durch das Kommando \cs{text} -% geschehen k"onnte. Es k"onnen Probleme mit dem Zeichen +% geschehen k"onnte. Es k"onnen Probleme mit dem Zeichen % \texttt{\char94\char94 T}\footnote{Dies funktioniert auf einem -% Linux-System} auftreten, in diesem Fall ist das Zeichen durch -% \texttt{\char94\char94 Y}\footnote{getestet unter OS/2}. +% Linux-System} auftreten, in diesem Fall ist das Zeichen durch +% \texttt{\char94\char94 Y}\footnote{getestet unter OS/2}. % zu ersetzen % \else % It will be always switched to the text mode, what could be done even better -% by the command \cs{text} of the \textsf{amstex} package. There may be some -% problems using the character \texttt{\char94\char94 T}\footnote{This one -% works under Linux}, in this case it should be replaced by +% by the command \cs{text} of the \textsf{amstex} package. There may be some +% problems using the character \texttt{\char94\char94 T}\footnote{This one +% works under Linux}, in this case it should be replaced by % \texttt{\char94\char94 Y}\footnote{tested under OS/2}. % \fi % \errorstopmode % \begin{macrocode} -{ +{% \catcode`\#=6% - \gdef\pUseKeyFont@nss#1% - {% + \gdef\pUseKeyFont@nss#1{% \ifmmode\else\let\mbox=\relax\fi% \mbox{\pKeyFont@nss{#1}}\egroup% } - \gdef\pUseExpFont@nss#1% - {% + \gdef\pUseExpFont@nss#1{% \ifmmode\else\let\mbox=\relax\fi% \mbox{\pExpFont@nss{#1}}\egroup% } @@ -4850,9 +4837,9 @@ These are the optional height and the required argument condition" % \end{macro} % % \begin{macro}{\pTrue@nss} -% \changes{v4.5a}{96/03/15}{neu definiert} +% \changes{v-4.5a}{96/03/15}{neu definiert} % \begin{macro}{\pFalse@nss} -% \changes{v4.5a}{96/03/15}{neu definiert} +% \changes{v-4.5a}{96/03/15}{neu definiert} % \ifnum\language=\languageNGerman % Die Vorbesetzungen der logischen Werte \cs{pTrue} und \cs{pFalse}: % \else @@ -4866,13 +4853,13 @@ These are the optional height and the required argument condition" % \end{macro} % % \begin{macro}{\pTrue} -% \changes{v4.5a}{96/03/15}{neu definiert "uber `pTrue@nss} -% \changes{v3.5b}{94/01/19}{umbenannt von `true zur Vermeidung von Interferenzen} -% \changes{v3.3c}{94/09/14}{Beschreibung eingef"uhrt} +% \changes{v-4.5a}{96/03/15}{neu definiert "uber `pTrue@nss} +% \changes{v-3.5b}{94/01/19}{umbenannt von `true zur Vermeidung von Interferenzen} +% \changes{v-3.3c}{94/09/14}{Beschreibung eingef"uhrt} % \begin{macro}{\pFalse} -% \changes{v4.5a}{96/03/15}{neu definiert "uber `pTrue@nss} -% \changes{v3.5b}{94/01/19}{umbenannt von `false zur Vermeidung von Interferenzen} -% \changes{v3.3c}{94/09/14}{Beschreibung eingef"uhrt} +% \changes{v-4.5a}{96/03/15}{neu definiert "uber `pTrue@nss} +% \changes{v-3.5b}{94/01/19}{umbenannt von `false zur Vermeidung von Interferenzen} +% \changes{v-3.3c}{94/09/14}{Beschreibung eingef"uhrt} % \ifnum\language=\languageNGerman % Um einheitliches Aussehen logischer Werte zu erzielen, werden entsprechende % Makros mit den obigen Vorbesetzungen definiert. @@ -4888,7 +4875,7 @@ These are the optional height and the required argument condition" % \end{macro} % % \begin{macro}{\pBoolValue} -% \changes{v4.5a}{96/03/15}{neu definiert} +% \changes{v-4.5a}{96/03/15}{neu definiert} % \ifnum\language=\languageNGerman % Mit \cs{pBoolValue} k"onnen die voreingestellten Werte von \cs{pTrue} und % \cs{pFalse} ver"andert werden; \cs{sBoolValue} ist der alternative Aufruf @@ -4909,11 +4896,11 @@ These are the optional height and the required argument condition" % \end{macro} % % \begin{macro}{\sVar} -% \changes{v3.5b}{94/01/19}{umbenannt von `Var zur Vermeidung von Interferenzen} -% \changes{v2.5}{93/09/09}{eingef"uhrt durch Jhf} +% \changes{v-3.5b}{94/01/19}{umbenannt von `Var zur Vermeidung von Interferenzen} +% \changes{v-2.5}{93/09/09}{eingef"uhrt durch Jhf} % \begin{macro}{\sKey} -% \changes{v4.1a}{95/07/17}{`btt bereits anderweitig definiert} -% \changes{v3.5b}{94/01/19}{neu eingef"uhrt} +% \changes{v-4.1a}{95/07/17}{`btt bereits anderweitig definiert} +% \changes{v-3.5b}{94/01/19}{neu eingef"uhrt} % \begin{macro}{\sTrue} % \begin{macro}{\sFalse} % \ifnum\language=\languageNGerman @@ -4939,8 +4926,8 @@ These are the optional height and the required argument condition" % \subsection{\ifnum\language=\languageNGerman Belegung von Registern \else Reservation of Registers \fi} % % \begin{macro}{\savelength@nss} -% \changes{v4.0b}{95/05/02}{umbenannt von `s@velength} -% \changes{v2.5}{93/09/09}{`VarDeclWd eingef"uhrt} +% \changes{v-4.0b}{95/05/02}{umbenannt von `s@velength} +% \changes{v-2.5}{93/09/09}{`VarDeclWd eingef"uhrt} % \ifnum\language=\languageNGerman % |\savelength@nss| % dient dazu, die vor dem Struktogramm g"ultige L"angeneinheit @@ -4957,23 +4944,33 @@ These are the optional height and the required argument condition" % \end{macro} % % \begin{macro}{\gx@nss} -% \changes{v4.0b}{95/05/02}{umbenannt von `gx} -% \changes{v3.2a}{94/09/14}{Beschreibung eingef"uhrt} -% \changes{v3.2a}{94/09/14}{Beschreibung eingef"uhrt} +% \changes{v061}{10/05/31}{enhanced the documentation} +% \changes{v-4.0b}{95/05/02}{umbenannt von `gx} +% \changes{v-3.2a}{94/09/14}{Beschreibung eingef"uhrt} +% \changes{v-3.2a}{94/09/14}{Beschreibung eingef"uhrt} % \begin{macro}{\gy@nss} -% \changes{v4.0b}{95/05/02}{umbenannt von `gy} +% \changes{v-4.0b}{95/05/02}{umbenannt von `gy} % \begin{macro}{\gsize@nss} -% \changes{v4.0b}{95/05/02}{umbenannt von `gsize} -% \changes{v3.2a}{94/09/14}{Beschreibung eingef"uhrt} +% \changes{v-4.0b}{95/05/02}{umbenannt von `gsize} +% \changes{v-3.2a}{94/09/14}{Beschreibung eingef"uhrt} % \ifnum\language=\languageNGerman % |\gx@nss|, |\gy@nss| und |\gsize@nss| enthalten die \emph{globalen} Werte f"ur die % x- und y-Koordinate und die Breite des Struktogramms; % zur Vereinfachung der Anwendung wird in allen F"allen -% mit Z"ahlregistern gearbeitet. +% mit Z"ahlregistern gearbeitet. Um eine hinreichend feine Aufl"osung zu +% erzielen, wird intern mit der \cs{unitlength} von 0.001\,mm gearbeitet. +% +% Die linke untere Koordinate eines Struktogramms ist (0, 0), die rechte +% obere Koordinate (\cs{gxsize@nss}, \cs{gy@nss}). % \else % |\gx@nss|, |gy@nss| and |\gsize@nss| contain the \emph{global} values for the % x- and y-coordinate and the width of the structured box chart. For simplification -% of the application in all cases it is worked with counter registers. +% of the application in all cases it is worked with counter registers. To +% have an adequate resolution the \cs{unitlength} for a structured box +% chart is set to 0.001\,mm. +% +% The lower left corner of a structured box chart has the coordinate (0, 0), +% the upper right corner the coordinate (\cs{gxsize@nss}, \cs{gy@nss}). % \fi % \begin{macrocode} \newcount\gx@nss \newcount\gy@nss \newcount\gsize@nss @@ -4983,8 +4980,8 @@ These are the optional height and the required argument condition" % \end{macro} % % \begin{macro}{\param@nss} -% \changes{v4.0b}{95/05/02}{umbenannt von `param} -% \changes{v3.2a}{94/09/14}{Beschreibung eingef"uhrt} +% \changes{v-4.0b}{95/05/02}{umbenannt von `param} +% \changes{v-3.2a}{94/09/14}{Beschreibung eingef"uhrt} % \ifnum\language=\languageNGerman % |\param@nss| enth"alt den Wert, der als optionales Argument f"ur die Breite % oder H"ohe eines Struktogramms angegeben wird. @@ -4998,33 +4995,33 @@ These are the optional height and the required argument condition" % \end{macro} % % \begin{macro}{\x@nss} -% \changes{v4.0b}{95/05/02}{umbenannt von `x} -% \changes{v3.3c}{94/09/14}{Beschreibung eingef"uhrt} +% \changes{v-4.0b}{95/05/02}{umbenannt von `x} +% \changes{v-3.3c}{94/09/14}{Beschreibung eingef"uhrt} % \begin{macro}{\y@nss} -% \changes{v4.0b}{95/05/02}{umbenannt von `y} -% \changes{v3.3c}{94/09/14}{Beschreibung eingef"uhrt} +% \changes{v-4.0b}{95/05/02}{umbenannt von `y} +% \changes{v-3.3c}{94/09/14}{Beschreibung eingef"uhrt} % \begin{macro}{\xsize@nss} -% \changes{v4.0b}{95/05/02}{umbenannt von `xsize} -% \changes{v3.3c}{94/09/14}{Beschreibung eingef"uhrt} +% \changes{v-4.0b}{95/05/02}{umbenannt von `xsize} +% \changes{v-3.3c}{94/09/14}{Beschreibung eingef"uhrt} % \begin{macro}{\xx@nss} -% \changes{v4.0b}{95/05/02}{umbenannt von `xx} +% \changes{v-4.0b}{95/05/02}{umbenannt von `xx} % \begin{macro}{\yy@nss} -% \changes{v4.0b}{95/05/02}{umbenannt von `yy} +% \changes{v-4.0b}{95/05/02}{umbenannt von `yy} % \begin{macro}{\tempx@nss} -% \changes{v4.0b}{95/05/02}{umbenannt von `tempx} +% \changes{v-4.0b}{95/05/02}{umbenannt von `tempx} % \begin{macro}{\tempxx@nss} -% \changes{v4.0b}{95/05/02}{umbenannt von `tempxx } +% \changes{v-4.0b}{95/05/02}{umbenannt von `tempxx } % \begin{macro}{\tempxxx@nss} -% \changes{v7.2}{04/07/13}{eingef"uhrt f"ur die Unterst"utzung von pict2e} +% \changes{v-7.2}{04/07/13}{eingef"uhrt f"ur die Unterst"utzung von pict2e} % \begin{macro}{\tempy@nss} -% \changes{v4.0b}{95/05/02}{umbenannt von `tempy} +% \changes{v-4.0b}{95/05/02}{umbenannt von `tempy} % \begin{macro}{\tempyy@nss} -% \changes{v7.2}{04/07/13}{umbenannt von `tempyy} +% \changes{v-7.2}{04/07/13}{umbenannt von `tempyy} % \begin{macro}{\tempyyy@nss} -% \changes{v7.2}{04/07/04}{eingef"uhrt f"ur die Unterst"utzung von pict2e} +% \changes{v-7.2}{04/07/04}{eingef"uhrt f"ur die Unterst"utzung von pict2e} % \begin{macro}{\ydepth@nss} -% \changes{v4.0b}{95/05/02}{umbenannt von `ydepth} -% \changes{v3.2a}{94/09/14}{Beschreibung fehlt noch} +% \changes{v-4.0b}{95/05/02}{umbenannt von `ydepth} +% \changes{v-3.2a}{94/09/14}{Beschreibung fehlt noch} % \ifnum\language=\languageNGerman % Es werden einige weitere Variablen ben"otigt, die alle zentral an dieser % Stelle definiert werden: |\x@nss|, |\y@nss| und |\xsize@nss| als lokale @@ -5069,16 +5066,16 @@ These are the optional height and the required argument condition" % \end{macro} % % \begin{macro}{\TextBox@nss} -% \changes{v4.1a}{95/07/18}{umbenannt von `nss@Box} +% \changes{v-4.1a}{95/07/18}{umbenannt von `nss@Box} % \begin{macro}{\TextBoxHt@nss} -% \changes{v4.1a}{95/07/18}{umbenannt von `nss@BoxHt} -% \changes{v3.2a}{94/09/09}{Beschreibung eingef"uhrt} +% \changes{v-4.1a}{95/07/18}{umbenannt von `nss@BoxHt} +% \changes{v-3.2a}{94/09/09}{Beschreibung eingef"uhrt} % \ifnum\language=\languageNGerman % |\TextBox@nss| ist die Box, die den Text in einem Struktogrammblock enth"alt, % ihre tats"achliche H"ohe, "Uberl"ange und Unterl"ange wird in |\TextBoxHt@nss| % abgelegt. % \else -% |\TextBox@nss| is the box, that contains the text in a structured box chart. +% |\TextBox@nss| is the box which contains the text in a structured box chart. % Its real height, ascender and descender are distributed in |\TextBoxHt@nss|. % \fi % \begin{macrocode} @@ -5090,10 +5087,10 @@ These are the optional height and the required argument condition" % \subsection{\ifnum\language=\languageNGerman Die einzelnen Makros \else The single Macros \fi} % % \begin{macro}{\filler@nss} -% \changes{v8.2a}{06/01/17}{`ifmmode $\rightarrow$ `ensuremath} -% \changes{v4.1a}{95/07/18}{umbenannt von `filler} -% \changes{v4.1a}{95/07/17}{`emptyset wird als AMS-Schrift geladen} -% \changes{v2.5}{93/09/09}{Leerraum von `% auf `emptyset umgestellt} +% \changes{v-8.2a}{06/01/17}{`ifmmode $\rightarrow$ `ensuremath} +% \changes{v-4.1a}{95/07/18}{umbenannt von `filler} +% \changes{v-4.1a}{95/07/17}{`emptyset wird als AMS-Schrift geladen} +% \changes{v-2.5}{93/09/09}{Leerraum von `% auf `emptyset umgestellt} % \ifnum\language=\languageNGerman % Beim Setzen eines Struktogrammes entsteht teilweise Leerraum, % der mit |\filler@nss| aufgef"ullt wird: "`$\emptyset$"'. Eine @@ -5101,27 +5098,26 @@ These are the optional height and the required argument condition" % erzeugt wird. Der Leerraum wird allerdings nicht gef"ullt, wenn die Option % |nofiller| gesetzt wird. Will man die globale Einstellung lokal umgehen, % so kann man einfach die boolesche Variable |filler| auf |true| setzen: -% \cs{fillertrue}. +% \cs{fillertrue}. % \else % While setting a structured box chart there arises partly empty space, that % will be filled up with |\filler@nss|: "'$\emptyset$"'. An alternative would be % "'$\mathchar"023B$"', which is generated by % "'|\mathchar"023B|"'. "'$\emptyset$"' will not be set, if the option -% |nofiller| is set. +% |nofiller| is set. % \fi % \begin{macrocode} \DeclareMathSymbol\varnothing{\mathord}{AMSb}{"3F} \let\emptyset\varnothing -\def\filler@nss% -{% +\def\filler@nss{% \iffiller\ensuremath{\emptyset}\fi% } % \end{macrocode} % \end{macro} % % \begin{macro}{\c@nter@nss} -% \changes{v4.0b}{95/05/02}{umbenannt von `c@nter} -% \changes{v3.1}{94/09/09}{Beschreibung eingef"uhrt} +% \changes{v-4.0b}{95/05/02}{umbenannt von `c@nter} +% \changes{v-3.1}{94/09/09}{Beschreibung eingef"uhrt} % \ifnum\language=\languageNGerman % Der folgende Makro setzt verschiedene Parameter, die zum Zentrieren eines % Textes gebraucht werden. @@ -5130,8 +5126,7 @@ These are the optional height and the required argument condition" % a text. % \fi % \begin{macrocode} -\def\c@nter@nss% -{% +\def\c@nter@nss{% \leftskip=0pt plus 2em \rightskip=\leftskip \parfillskip=0pt \spaceskip=.333em \xspaceskip=.5em \pretolerance=9999 \tolerance=9999 @@ -5141,7 +5136,7 @@ These are the optional height and the required argument condition" % \end{macro} % % \begin{macro}{\PositionNSS} -% \changes{v4.5c}{96/05/01}{neu eingef"uhrt zur Positionierung der Struktogramme} +% \changes{v-4.5c}{96/05/01}{neu eingef"uhrt zur Positionierung der Struktogramme} % \ifnum\language=\languageNGerman % Struktogramme werden intern als |minipage| verwaltet. Das Kommando % \cs{PositionNSS} erm"oglicht die Positionierung, es erwartet die Werte, @@ -5156,21 +5151,24 @@ These are the optional height and the required argument condition" % \fi % \begin{macrocode} \def\Position@nss{}% -\newcommand{\PositionNSS}[1]% -{% +\newcommand{\PositionNSS}[1]{% \def\Position@nss{#1}% } % \end{macrocode} % \end{macro} % % \begin{macro}{\struktogramm} -% \changes{v4.4b}{96/03/13}{Optionaler Parameter "uber `empty statt `relax getestet} -% \changes{v4.4a}{96/02/29}{`ifthenelse als internes Kommando definiert} -% \changes{v3.1a}{94/09/09}{optionaler Parameter eingef"uhrt} +% \changes{v061}{10/05/31}{added missing translations} +% \changes{v-4.4b}{96/03/13}{Optionaler Parameter "uber `empty statt `relax getestet} +% \changes{v-4.4a}{96/02/29}{`ifthenelse als internes Kommando definiert} +% \changes{v-3.1a}{94/09/09}{optionaler Parameter eingef"uhrt} +% \ifnum\language=\languageNGerman % \cs{struktogramm} beginnt ein Struktogramm +% \else +% \cs{struktogramm} starts a structured box chart +% \fi % \begin{macrocode} -\def\struktogramm(#1,#2)% -{% +\def\struktogramm(#1,#2){% % \end{macrocode} % \ifnum\language=\languageNGerman % Zun"achst werden die internen Kommandos aktiviert: @@ -5195,7 +5193,7 @@ These are the optional height and the required argument condition" % Um den optionalen Parameter zu behandeln, wird in Abh"angigkeit vom % n"achsten Zeichen ein internes Makro aufgerufen. % \else -% An internal macro depending on the next character will be called to tread the +% An internal macro depending on the next character will be called to treat the % optional parameter. % \fi % \begin{macrocode} @@ -5214,8 +5212,7 @@ These are the optional height and the required argument condition" % environments will be closed, local definitions of global values will be returned. % \fi % \begin{macrocode} -\def\endstruktogramm% -{% +\def\endstruktogramm{% \endstr@kt% \end{picture}% \end{minipage}% @@ -5225,20 +5222,32 @@ These are the optional height and the required argument condition" % \end{macro} % % \begin{macro}{\struktogramm@NoProof} -% \changes{v4.5b}{96/03/26}{Positionierung des Struktogramms "uber [t] bei der minipage} -% \changes{v4.4b}{96/03/13}{Optionaler Parameter "uber `empty statt `relax getestet} -% \changes{v4.2b}{95/10/15}{umbenannt von `struktogramm@nss} -% \changes{v4.0c}{95/05/09}{umbenannt von `nss@struktogramm} -% \changes{v3.1a}{94/09/09}{als internes Makro zur Behandlung optionaler Parameter neu} -% \changes{v3.3a}{94/09/21}{`baselineskip=0pt innerhalb von Struktogrammen korrigiert} -% \ifnum\language=\languageNGerman -% |\struktogramm@NoProof| "offnet ein Struktogramm +% \changes{v061}{10/05/31}{enhanced the documentation} +% \changes{v-4.5b}{96/03/26}{Positionierung des Struktogramms "uber [t] bei der minipage} +% \changes{v-4.4b}{96/03/13}{Optionaler Parameter "uber `empty statt `relax getestet} +% \changes{v-4.2b}{95/10/15}{umbenannt von `struktogramm@nss} +% \changes{v-4.0c}{95/05/09}{umbenannt von `nss@struktogramm} +% \changes{v-3.1a}{94/09/09}{als internes Makro zur Behandlung optionaler Parameter neu} +% \changes{v-3.3a}{94/09/21}{`baselineskip=0pt innerhalb von Struktogrammen korrigiert} +% \ifnum\language=\languageNGerman +% |\struktogramm@NoProof| leitet ein Struktogramm ein. Die drei Parameter +% sind: +% \begin{itemize} +% \item |#1|: die Breite des Struktogramms, +% \item |#2|: seine (voraussichtliche) H"ohe und +% \item |#3|: sein Titel. +% \end{itemize} % \else -% |\struktogramm@NoProof| opens a structured box chart. +% |\struktogramm@NoProof| opens a structured box chart. The three +% parameters are: +% \begin{itemize} +% \item |#1|: the width of the structured box chart, +% \item |#2|: its (estimated) height and, +% \item |#3|: its title. +% \end{itemize} % \fi % \begin{macrocode} -\def\struktogramm@NoProof(#1,#2)[#3]% -{% +\def\struktogramm@NoProof(#1,#2)[#3]{% % \end{macrocode} % \ifnum\language=\languageNGerman % Zun"achst wird die aktuelle \cs{unitlength} zwischengespeichert, da mit einer @@ -5279,9 +5288,9 @@ These are the optional height and the required argument condition" % \end{macro} % % \begin{macro}{\struktogramm@Proof} -% \changes{v4.5b}{96/03/26}{Positionierung des Struktogramms "uber [t] bei der minipage} -% \changes{v4.4b}{96/03/13}{Optionaler Parameter "uber `empty statt `relax getestet} -% \changes{v4.2b}{95/10/15}{neu eingef"uhrt} +% \changes{v-4.5b}{96/03/26}{Positionierung des Struktogramms "uber [t] bei der minipage} +% \changes{v-4.4b}{96/03/13}{Optionaler Parameter "uber `empty statt `relax getestet} +% \changes{v-4.2b}{95/10/15}{neu eingef"uhrt} % \ifnum\language=\languageNGerman % |\struktogramm@proof| "offnet ein Struktogramm im \foreign{proof}-Modus. % Der Ablauf entspricht im wesentlichen |\struktogramm@NoProof|. @@ -5290,8 +5299,7 @@ These are the optional height and the required argument condition" % Progress is essentially equivalent to |\struktogramm@NoProof|. % \fi % \begin{macrocode} -\def\struktogramm@Proof(#1,#2)[#3]% -{% +\def\struktogramm@Proof(#1,#2)[#3]{% \def\next{#3}% \setlength{\savelength@nss}{\unitlength}% \setlength{\unitlength}{0.001mm}% @@ -5309,7 +5317,7 @@ These are the optional height and the required argument condition" % % \begin{macro}{\sProofOn} % \begin{macro}{\sProofOff} -% \changes{v4.2b}{95/10/15}{neu eingef"uhrt} +% \changes{v-4.2b}{95/10/15}{neu eingef"uhrt} % \ifnum\language=\languageNGerman % Die Schalter zum Umschalten zwischen \foreign{proof}- und % \foreign{non proof}-Modus. Abschlie"send wird in den \foreign{non proof}-Modus @@ -5332,7 +5340,7 @@ These are the optional height and the required argument condition" % \end{macro} % \end{macro} % -% \changes{v4.3a}{96/01/26}{Dokumentation verbessert und korrigiert} +% \changes{v-4.3a}{96/01/26}{Dokumentation verbessert und korrigiert} % \ifnum\language=\languageNGerman % Um Kompatibilit"at mit "alteren Versionen von Struktogrammen zu erhalten, % sind die Makros \cs{openstrukt} und \cs{closestrukt} weiterhin in diesem @@ -5442,12 +5450,12 @@ These are the optional height and the required argument condition" % 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} % \begin{macrocode} -\def\str@kt#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% +\def\str@kt#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% } % \end{macrocode} % \end{macro} @@ -5458,86 +5466,109 @@ These are the optional height and the required argument condition" % umgesetzt, um den (weiter unten liegenden) Ansatzpunkt f"ur das n"achste % Element des Struktogramms zu erhalten. % \else -% closes the group above opened. The actual $y$-coordinate will be globally +% closes the above opened group. The actual $y$-coordinate will be globally % changed to get the point of attachment (which lies further down) for the next % element of the structured box chart. % \fi +% \changes{v061}{10/05/31}{added some debug code} % \begin{macrocode} -\def\endstr@kt% -{% - \global\gy@nss=\y@nss% - \endgroup% - \ydepth@nss=\gy@nss% +\def\endstr@kt{% + \global\gy@nss=\y@nss% + \endgroup% + \ydepth@nss=\gy@nss% } % \end{macrocode} % \end{macro} % -% \changes{v7.0b}{2004/03/09}{ersetzt durch `tempxx@nss} -% \changes{v4.0b}{95/05/08}{umbenannt von `xin} -% \changes{v3.2a}{94/09/14}{Beschreibung eingef"uhrt} +% \changes{v-7.0b}{2004/03/09}{ersetzt durch `tempxx@nss} +% \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{v4.0b}{95/05/08}{umbenannt von `set} +% \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 "ubergebenen Text in eine horizontale -% Box |\TextBox@nss|. Ist die Breite dieser Box gr"o"ser als die im ersten Parameter -% "ubergebene Breite, wird der Text in eine vertikale Box +% |\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 first parameter, into a horizontal -% box |\TextBox@nss|. If the width of this box is bigger than the width -% handed over in the first parameter the text will be set into a vertical box. +% |\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 % \begin{macrocode} -\def\set@nss#1#2% -{% - \setbox\TextBox@nss=\hbox{#1}% - \tempxx@nss=\xsize@nss\advance\tempxx@nss by-#2% - \ifdim\wd\TextBox@nss>\tempxx@nss\unitlength% - \setbox\TextBox@nss=\vbox{\hsize=\tempxx@nss\unitlength\noindent#1}% - \fi% +\def\set@nss#1#2{% + \setbox\TextBox@nss=\hbox{#1}% + \tempxx@nss=\xsize@nss\advance\tempxx@nss by-#2% + \ifdim\wd\TextBox@nss>\tempxx@nss\unitlength% + \setbox\TextBox@nss=\vbox{\hsize=\tempxx@nss\unitlength\noindent#1}% + \fi% } % \end{macrocode} % \end{macro} % % \begin{macro}{\block@nss} -% \changes{v7.0a}{04/01/04}{umbenannt von `bl@ck} +% \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 % 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. +% 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. +% given by |\y@nss| will be changed. Parameter |#1| gives the (optional) +% height of the box. % \fi % \begin{macrocode} -\def\block@nss#1#2% -{% - \tempy@nss=#1\TextBoxHt@nss=\ht\TextBox@nss% - \advance\TextBoxHt@nss by\dp\TextBox@nss% - \advance\TextBoxHt@nss by 2mm% - \ifdim\TextBoxHt@nss<\tempy@nss\unitlength% - \TextBoxHt@nss=\tempy@nss\unitlength% - \fi% - \TextBoxHt@nss=0.00536\TextBoxHt@nss% - \ydepth@nss=\TextBoxHt@nss\advance\y@nss by-\ydepth@nss% - \ifx#21% - \put(\x@nss,\y@nss)% - {% - \framebox(\xsize@nss,\ydepth@nss){\box\TextBox@nss}% - }% - \else% - \ifx#20% - \put(\x@nss,\y@nss)% - {% - \makebox(\xsize@nss,\ydepth@nss){\box\TextBox@nss}% - }% - \else% - \advance\y@nss by \ydepth@nss% - \fi% - \fi% +\def\block@nss#1#2{% + \tempy@nss=#1% +% \end{macrocode} +% At first we compute the height of the text (in pt): +% \begin{macrocode} + \TextBoxHt@nss=\ht\TextBox@nss% + \advance\TextBoxHt@nss by\dp\TextBox@nss% + \advance\TextBoxHt@nss by 2mm% + \ifdim\TextBoxHt@nss<\tempy@nss\unitlength% + \TextBoxHt@nss=\tempy@nss\unitlength% + \fi% +% \end{macrocode} +% \ifnum\language=\languageNGerman +% \else +% Because of we have to convert a box's height into mm, we have to multiply +% the height by 0.00536 (\(1\;mm=186467\;bp\equiv0.00536\;mm=\;bp\), +% dimensions are internally stored as bp). +% \fi +% \begin{macrocode} + \TextBoxHt@nss=0.00536\TextBoxHt@nss% +% \end{macrocode} +% \ifnum\language=\languageNGerman +% Wegen der Orientierung Koordinatensystems wird der Ursprung des zu +% zeichnenden Objektes um \cs{ydepth@nss} nach unten verschoben, danach +% wird das Objekt mit der H"ohe \cs{ydepth@nss} gezeichnet. +% \else +% Because of the orientation of the coordinate system, we go down by +% \cs{ydepth@nss} and draw from that point the box of height +% \cs{ydepth@nss}. +% \fi +% \begin{macrocode} + \ydepth@nss=\TextBoxHt@nss\advance\y@nss by-\ydepth@nss% + \ifx#21% + \put(\x@nss,\y@nss){% + \framebox(\xsize@nss,\ydepth@nss){\box\TextBox@nss}% + }% + \else\ifx#20% + \put(\x@nss,\y@nss){% + \makebox(\xsize@nss,\ydepth@nss){\box\TextBox@nss}% + }% + \else% + \advance\y@nss by \ydepth@nss% + \fi\fi% } % \end{macrocode} % \end{macro} @@ -5553,22 +5584,22 @@ These are the optional height and the required argument condition" % representation. % \fi % \begin{macrocode} -\def\declarationtitle{\ifnum\language=\languageNGerman Speicherplatz bereitstellen: +\def\declarationtitle{\ifnum\language=\languageNGerman Speicherplatz bereitstellen: \else providing memory space\fi} % \end{macrocode} % \end{macro} % % \begin{macro}{\descriptionindent} -% \changes{v4.5a}{96/03/14}{an \LaTeX2e angepasst} -% \changes{v3.3a}{94/09/16}{neu eingef"uhrt} +% \changes{v-4.5a}{96/03/14}{an \LaTeX2e angepasst} +% \changes{v-3.3a}{94/09/16}{neu eingef"uhrt} % \begin{macro}{\descriptionwidth} -% \changes{v4.5a}{96/03/14}{an \LaTeX2e angepasst} -% \changes{v3.3a}{94/09/16}{neu eingef"uhrt} +% \changes{v-4.5a}{96/03/14}{an \LaTeX2e angepasst} +% \changes{v-3.3a}{94/09/16}{neu eingef"uhrt} % \begin{macro}{\descriptionwidth@nss} -% \changes{v4.5a}{96/03/14}{neu eingef"uhrt} +% \changes{v-4.5a}{96/03/14}{neu eingef"uhrt} % \begin{macro}{\descriptionsep} -% \changes{v4.5a}{96/03/14}{an \LaTeX2e angepasst} -% \changes{v3.3a}{94/09/16}{neu eingef"uhrt} +% \changes{v-4.5a}{96/03/14}{an \LaTeX2e angepasst} +% \changes{v-3.3a}{94/09/16}{neu eingef"uhrt} % \ifnum\language=\languageNGerman % Die folgenden Variablen (\foreign{dimen-register}) wurden eingef"uhrt, % um das Layout der Variablenbeschreibung frei gestalten zu k"onnen. @@ -5588,8 +5619,8 @@ These are the optional height and the required argument condition" % \end{macro} % % \begin{macro}{\descriptionlabel@nss} -% \changes{v5.2a}{97/12/03}{Vorbesetzung des Fonts entf"allt} -% \changes{v4.5a}{96/03/14}{neu eingef"uhrt} +% \changes{v-5.2a}{97/12/03}{Vorbesetzung des Fonts entf"allt} +% \changes{v-4.5a}{96/03/14}{neu eingef"uhrt} % \ifnum\language=\languageNGerman % Internes Kommando nach % \else @@ -5619,7 +5650,7 @@ These are the optional height and the required argument condition" % \end{macro} % % \begin{macro}{declaration} -% \changes{v4.5a}{96/03/14}{neu eingef"uhrt} +% \changes{v-4.5a}{96/03/14}{neu eingef"uhrt} % \ifnum\language=\languageNGerman % Die Beschreibung von Variablen basiert nun auf der allgemeinen % |list|-Umgebung, die entsprechend modifiziert wurde. Insbesondere @@ -5656,7 +5687,7 @@ These are the optional height and the required argument condition" % \end{macro} % % \begin{macro}{\description@nss} -% \changes{v4.5a}{96/03/14}{neu eingef"uhrt} +% \changes{v-4.5a}{96/03/14}{neu eingef"uhrt} % \ifnum\language=\languageNGerman % Um keine Schwierigkeiten mit der |description|-Umgebung zu haben, % wird das Kommando |\description@nss| mit der Erweiterung |@nss| @@ -5673,25 +5704,69 @@ These are the optional height and the required argument condition" % \end{macro} % % \begin{macro}{\assign} -% \changes{v3.2a}{94/09/14}{Beschreibung eingef"uhrt} +% \changes{v061}{10/05/31}{enhanced the documentation and added some debug code} +% \changes{v-3.2a}{94/09/14}{Beschreibung eingef"uhrt} % \ifnum\language=\languageNGerman -% Einfache Anweisungen werden "uber \cs{assign} geschrieben: +% Einfache Anweisungen werden "uber \cs{assign} geschrieben. \cs{assign} +% kennt einen zwei Parameter: die H"ohe des Kastens (optional) und den Text, +% der die Aktion angibt. Die H"ohe des Kastens wird in \cs{param@nss} gespeichert. % \else -% Simple commands are written by \cs{assign}: +% Simple commands are written by \cs{assign}. \cs{assign} knows two +% parameters: the height of the box (optional) and the text, whichs +% describes the action. The height of the box gets stored in \cs{param@nss}. % \fi % \begin{macrocode} \def\assign{\let\next=\@assign\getoption}% -\def\@assign#1% -{% - \tempx@nss=\xsize@nss\divide\tempx@nss by 6% - \set@nss{#1}{\tempx@nss}\tempy@nss=\number\param@nss000% - \block@nss{\tempy@nss}{1}% +\def\@assign#1{% +% \end{macrocode} +% \ifnum\language=\languageNGerman +% 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@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 +% nimmt der Text \(\frac{5}{6}\) der Gesamtbreite ein. +% \else +% The following is repeated many times, so it is good to describe it one +% time. \cs{xsize@nss} ist the width of the box to be constructed now. The +% text of the action must be placed into the box with left and right +% margins. The width of one margin is \(\frac{1}{12}\) of the current width, +% so the text covers \(\frac{5}{6}\) of the width. +% \fi +% \begin{macrocode} + \tempx@nss=\xsize@nss\divide\tempx@nss by 6% +% \end{macrocode} +% \ifnum\language=\languageNGerman +% Zuerst wird der Text behandelt, \ldots +% \else +% At first the text ist formatted, \ldots{} +% \fi +% \begin{macrocode} + \set@nss{#1}{\tempx@nss}% +% \end{macrocode} +% \ifnum\language=\languageNGerman +% dann wird die H"ohe der Box in \cs{tempy@nss} zwischengespeichert \ldots{} +% \else +% the the height of the box gets intermediately stored in \cs{tempy@nss}, \ldots{} +% \fi +% \begin{macrocode} + \tempy@nss=\number\param@nss000% +% \end{macrocode} +% \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: +% \fi +% \begin{macrocode} + \block@nss{\tempy@nss}{1}% } % \end{macrocode} % \end{macro} % % \begin{macro}{\sub} -% \changes{v4.5a}{96/03/14}{Beschreibung eingef"uhrt} +% \changes{v-4.5a}{96/03/14}{Beschreibung eingef"uhrt} % \ifnum\language=\languageNGerman % Der Aufruf eines Unterprogrammes wird mit \cs{sub} gekennzeichnet: % \else @@ -5701,21 +5776,26 @@ These are the optional height and the required argument condition" \def\sub{\let\next=\@sub\getoption} \def\@sub#1% {% - \@assign{#1}\tempx@nss=\xsize@nss\divide\tempx@nss by 20% - \tempxx@nss=\x@nss\advance\tempxx@nss by \tempx@nss% - \put(\tempxx@nss,\y@nss){\line(0,1){\ydepth@nss}}% - \tempxx@nss=\x@nss\advance\tempxx@nss by \xsize@nss% - \advance\tempxx@nss by -\tempx@nss% - \put(\tempxx@nss,\y@nss){\line(0,1){\ydepth@nss}}% + \@assign{#1}\tempx@nss=\xsize@nss\divide\tempx@nss by 20% + \tempxx@nss=\x@nss\advance\tempxx@nss by \tempx@nss% + \put(\tempxx@nss,\y@nss){\line(0,1){\ydepth@nss}}% + \tempxx@nss=\x@nss\advance\tempxx@nss by \xsize@nss% + \advance\tempxx@nss by -\tempx@nss% + \put(\tempxx@nss,\y@nss){\line(0,1){\ydepth@nss}}% } % \end{macrocode} % \end{macro} % % \begin{macro}{\exit} -% \changes{v3.3c}{94/09/27}{Fehler mit der Breite korrigiert} -% \changes{v2.5}{93/09/09}{"Anderungen an der Darstellung} -% \changes{v2.0}{92/01/17}{Eingef"uhrt durch D. Rieger} +% \changes{v061}{10/05/31}{added missing translation} +% \changes{v-3.3c}{94/09/27}{Fehler mit der Breite korrigiert} +% \changes{v-2.5}{93/09/09}{"Anderungen an der Darstellung} +% \changes{v-2.0}{92/01/17}{Eingef"uhrt durch D. Rieger} +% \ifnum\language=\languageNGerman % Verlassen einer Schleife an einer bestimmten Stelle. +% \else +% Leaving the loop at a certain point. +% \fi % \begin{macrocode} \def\exit{\let\next=\@exit\getoption} \def\@exit#1% @@ -5749,7 +5829,7 @@ These are the optional height and the required argument condition" % \end{macro} % % \begin{macro}{\return} -% \changes{v4.5a}{96/03/14}{Beschreibung eingef"uhrt} +% \changes{v-4.5a}{96/03/14}{Beschreibung eingef"uhrt} % \ifnum\language=\languageNGerman % Die R"uckkkehr aus einem Unterprogramm wird mit \cs{return} gekennzeichnet: % \else @@ -5775,17 +5855,17 @@ These are the optional height and the required argument condition" % \end{macro} % % \begin{macro}{\condindent@nss} -% \changes{v4.1b}{95/07/19}{umbenannt von `w@rt@nss} -% \changes{v4.0b}{95/05/08}{umbenannt von `w@rt} +% \changes{v-4.1b}{95/07/19}{umbenannt von `w@rt@nss} +% \changes{v-4.0b}{95/05/08}{umbenannt von `w@rt} % \begin{macro}{\index@nss} -% \changes{v4.1b}{95/07/19}{umbenannt von `zaehler@nss} -% \changes{v4.0b}{95/05/08}{umbenannt von `zaehler} +% \changes{v-4.1b}{95/07/19}{umbenannt von `zaehler@nss} +% \changes{v-4.0b}{95/05/08}{umbenannt von `zaehler} % \begin{macro}{\anzzeilen@nss} -% \changes{v4.1b}{95/07/19}{umbenannt von `zeilen@nss} -% \changes{v4.0b}{95/05/08}{umbenannt von `zeilen} -% \changes{v3.1}{94/09/09}{Beschreibung eingef"uhrt} +% \changes{v-4.1b}{95/07/19}{umbenannt von `zeilen@nss} +% \changes{v-4.0b}{95/05/08}{umbenannt von `zeilen} +% \changes{v-3.1}{94/09/09}{Beschreibung eingef"uhrt} % \ifnum\language=\languageNGerman -% |\index@nss|, |\anzzeilen@nss| und |\condindent@nss| werden ben"otigt, um +% |\index@nss|, |\anzzeilen@nss| und |\condindent@nss| werden ben"otigt, um % den Umbruch der Bedingung in einer \cs{if}-Abfrage geeignet durchf"uhren % zu k"onnen: % \begin{quote} @@ -5816,20 +5896,20 @@ These are the optional height and the required argument condition" % \end{macro} % % \begin{macro}{\gindhelp@nss} -% \changes{v7.0ba}{04/03/09}{umbenannt von `indhelp@nss} +% \changes{v-7.0ba}{04/03/09}{umbenannt von `indhelp@nss} % \begin{macro}{\indentmeasure@nss} -% \changes{v5.3a}{98/11/27}{neu eingef"uhrt} +% \changes{v-5.3a}{98/11/27}{neu eingef"uhrt} % \begin{macro}{\indentmeasureleft@nss} -% \changes{v5.3a}{98/11/27}{neu eingef"uhrt} +% \changes{v-5.3a}{98/11/27}{neu eingef"uhrt} % \begin{macro}{\thisindent@nss} -% \changes{v5.3a}{98/11/27}{neu eingef"uhrt} +% \changes{v-5.3a}{98/11/27}{neu eingef"uhrt} % \begin{macro}{\thisindentleft@nss} -% \changes{v5.3a}{98/11/27}{neu eingef"uhrt} +% \changes{v-5.3a}{98/11/27}{neu eingef"uhrt} % \begin{macro}{\thislength@nss} -% \changes{v5.3a}{98/11/27}{neu eingef"uhrt} +% \changes{v-5.3a}{98/11/27}{neu eingef"uhrt} % \ifnum\language=\languageNGerman % Um die Textform (\cs{parshape}) an beliebige Steigungen anpassen zu k"onnen, -% sind einige Rechenoperationen mit Hilfsgr"o"sen erforderlich. +% sind einige Rechenoperationen mit Hilfsgr"o"sen erforderlich. % Die folgenden |dimen|-Variablen wurden eingef"uhrt, um die Textform % (\cs{parshape}) an beliebige Steigungen anpassen zu k"onnen, die Bedeutungen % sind im einzelnen: @@ -5840,9 +5920,9 @@ These are the optional height and the required argument condition" % \verb-\indentmeasureright@nss-:& Einheit des Einzugs (rechts) \\\hline % \verb-\thisindent@nss-: & aktueller Einzug (links) \\\hline % \verb-\thisindentright@nss-: & aktueller Einzug (rechts) \\\hline -% \verb-\thislength@nss-: & L"ange der aktuellen Zeile, ergibt +% \verb-\thislength@nss-: & L"ange der aktuellen Zeile, ergibt % sich aus der Zeilenl"ange \verb-\xsize@nss- -% vermindert um \verb-\thisindent@nss- +% vermindert um \verb-\thisindent@nss- % und \verb-\thisindentright@nss-\\\hline % \end{tabular} % \MakeShortVerb{\|} @@ -5867,11 +5947,11 @@ These are the optional height and the required argument condition" % \end{macro} % % \begin{macro}{\ifthenelse@nss} -% \changes{v8.0a}{04/07/13}{Paket \textsf{pict2e.sty} wird unterst"utzt} -% \changes{v4.4a}{96/02/29}{Kommando intern gemacht, um benannt von `ifthenelse} -% \changes{v4.1d}{95/10/04}{Tippfehler korrigiert} -% \changes{v4.0d}{95/04/12}{Tippfehler korrigiert} -% \changes{v3.1}{94/09/09}{Beschreibung eingef"uhrt} +% \changes{v-8.0a}{04/07/13}{Paket \textsf{pict2e.sty} wird unterst"utzt} +% \changes{v-4.4a}{96/02/29}{Kommando intern gemacht, um benannt von `ifthenelse} +% \changes{v-4.1d}{95/10/04}{Tippfehler korrigiert} +% \changes{v-4.0d}{95/04/12}{Tippfehler korrigiert} +% \changes{v-3.1}{94/09/09}{Beschreibung eingef"uhrt} % \ifnum\language=\languageNGerman % |\ifthenelse@nss| leitet eine einfache Verzweigung ein. Um Konflikte % mit anderen Makropaketen zu vermeiden, wird eine Schreibweise benutzt, @@ -5885,7 +5965,7 @@ These are the optional height and the required argument condition" % \fi % \begin{macrocode} \def\ifthenelse@nss{\let\next=\@ifthenelse@nss\getoption} -\def\@ifthenelse@nss#1#2#3#4#5% +\def\@ifthenelse@nss#1#2#3#4#5{% % \end{macrocode} % \ifnum\language=\languageNGerman % Die 5 Parameter sind: @@ -5909,9 +5989,6 @@ These are the optional height and the required argument condition" % \item case of the right branch (normally "`no"'). % \end{enumerate} % \fi -% \begin{macrocode} -{% -% \end{macrocode} % \ifnum\language=\languageNGerman % Als erstes werden die schr"agen Linien gezeichnet. |\tempx@nss| ist die % Breite des linken Zweiges, |\tempxx@nss| die des rechten Zweiges. @@ -5920,9 +5997,7 @@ These are the optional height and the required argument condition" % |\tempxx@nss| the width of the right branch. % \fi % \begin{macrocode} - %\ifthenelse{\boolean{anygradient}}% - %{% - \ifanygradient + \ifanygradient % \end{macrocode} % \ifnum\language=\languageNGerman % Wenn \cs{anygradient} nicht wahr ist, werden schr"age Linien mit \cs{line} @@ -5993,7 +6068,7 @@ These are the optional height and the required argument condition" % Die Koordinaten werden auf die linke untere Ecke des % "`Bedingungsrechteckes"' gesetzt: % \else -% The coordinates are set on the left lower angle of the "`conditioning rectangle"': +% The coordinates are set on the left lower angle of the "conditioning rectangle": % \fi % \begin{macrocode} \advance\x@nss by -\xsize@nss \advance\y@nss by -\tempyy@nss% @@ -6015,7 +6090,7 @@ These are the optional height and the required argument condition" % If the height of the "`conditioning rectangle"' is too low, a line has to % be written though. Otherwise \cs{parshape} causes a mistake. % \fi -% \changes{v8.0e}{05/05/17}{Fehlermeldung erweitert, nun auch Hinweis auf +% \changes{v-8.0e}{05/05/17}{Fehlermeldung erweitert, nun auch Hinweis auf % curves und pict2e} % \begin{macrocode} \ifnum\tempy@nss<1 \tempy@nss=1\fi% @@ -6047,12 +6122,10 @@ These are the optional height and the required argument condition" \xdef\shape{\shape\the\thislength@nss}% \ifnum\index@nss<\tempy@nss% \repeat% - %}% - %{% -\else + \else %\ifanygradient \ifnum\number\param@nss000>0% - \typeout{struktex warning:}% - \typeout{[...] not supplied without curves, emlines2, or pict2e}% + \typeout{struktex warning:}% + \typeout{[...] not supplied without curves, emlines2, or pict2e}% \fi% \tempx@nss=#1 \advance\tempx@nss by #2% \tempyy@nss=\xsize@nss \divide\tempyy@nss by \tempx@nss% @@ -6066,64 +6139,60 @@ These are the optional height and the required argument condition" \ifnum\tempy@nss<1 \tempy@nss=1\fi% \xdef\shape{}\index@nss=0% \loop% - \advance\index@nss by 1% - \condindent@nss=#1\multiply\condindent@nss by\index@nss% - \multiply\condindent@nss by 5000% - \xdef\shape{\shape\the\condindent@nss\unitlength}% - \condindent@nss=#1\advance\condindent@nss by #2% - \multiply\condindent@nss by\index@nss% - \multiply\condindent@nss by -5000% - \advance\condindent@nss by \xsize@nss% - \xdef\shape{\shape\the\condindent@nss\unitlength}% - \ifnum\index@nss<\tempy@nss% + \advance\index@nss by 1% + \condindent@nss=#1\multiply\condindent@nss by\index@nss% + \multiply\condindent@nss by 5000% + \xdef\shape{\shape\the\condindent@nss\unitlength}% + \condindent@nss=#1\advance\condindent@nss by #2% + \multiply\condindent@nss by\index@nss% + \multiply\condindent@nss by -5000% + \advance\condindent@nss by \xsize@nss% + \xdef\shape{\shape\the\condindent@nss\unitlength}% + \ifnum\index@nss<\tempy@nss% \repeat% - %}% - \fi - \put(\x@nss,\y@nss)% - {% - \framebox(\xsize@nss,\tempyy@nss)[tl]% - {% - \vbox% - {% - \hsize=\xsize@nss\unitlength% - \parshape=\tempy@nss \shape \c@nter@nss% - %dies sorgt f"ur den Einzug - \noindent\vrule width0pt height12pt \relax #3% - %hier wird der Text ausgegeben - }% - }% + \fi %\ifanygradient + \put(\x@nss,\y@nss){% + \framebox(\xsize@nss,\tempyy@nss)[tl]{% + \vbox{% + \hsize=\xsize@nss\unitlength% + \parshape=\tempy@nss \shape \c@nter@nss% + %dies sorgt f"ur den Einzug + \noindent\vrule width0pt height12pt \relax #3% + %hier wird der Text ausgegeben + }% }% - \divide\tempyy@nss by 2% - \xx@nss=\xsize@nss\advance\xx@nss by-\tempx@nss% - \advance\xx@nss by-\tempxx@nss% - \ifodd\xx@nss\advance\tempxx@nss by 1\fi% - \divide\xx@nss by 2\advance\tempxx@nss by \xx@nss% - \advance\tempx@nss by \xx@nss% - \put(\x@nss,\y@nss){\makebox(\tempx@nss,\tempyy@nss){#4}}% - \xx@nss=\x@nss\advance\xx@nss by \tempx@nss% - \put(\xx@nss,\y@nss){\makebox(\tempxx@nss,\tempyy@nss){#5}}% - \str@kt{\x@nss}{\y@nss}{\tempx@nss}% + }% + \divide\tempyy@nss by 2% + \xx@nss=\xsize@nss\advance\xx@nss by-\tempx@nss% + \advance\xx@nss by-\tempxx@nss% + \ifodd\xx@nss\advance\tempxx@nss by 1\fi% + \divide\xx@nss by 2\advance\tempxx@nss by \xx@nss% + \advance\tempx@nss by \xx@nss% + \put(\x@nss,\y@nss){\makebox(\tempx@nss,\tempyy@nss){#4}}% + \xx@nss=\x@nss\advance\xx@nss by \tempx@nss% + \put(\xx@nss,\y@nss){\makebox(\tempxx@nss,\tempyy@nss){#5}}% + \str@kt{\x@nss}{\y@nss}{\tempx@nss}% } % \end{macrocode} % \end{macro} % % \begin{macro}{\change} -% \changes{v4.5b}{96/03/28}{Beschreibung eingef"uhrt} +% \changes{v-4.5b}{96/03/28}{Beschreibung eingef"uhrt} % \ifnum\language=\languageNGerman % \cs{change} trennt die Zweige beim |\ifthenelse@nss| % \else % \cs{change} seperates the branches in |\ifthenelse@nss| % \fi +% \changes{v061}{10/05/31}{added debug code} % \begin{macrocode} -\def\change% -{% +\def\change{% \endstr@kt\str@kt{\xx@nss}{\y@nss}{\tempxx@nss}% } % \end{macrocode} % \end{macro} % % \begin{macro}{\ifend@nss} -% \changes{v4.5b}{96/03/28}{Beschreibung eingef"uhrt} +% \changes{v-4.5b}{96/03/28}{Beschreibung eingef"uhrt} % \ifnum\language=\languageNGerman % |\ifend@nss| beendet |\ifthenelse@nss|, wird in |struktogramm| intern % gemacht. @@ -6131,43 +6200,39 @@ These are the optional height and the required argument condition" % |\ifend@nss| terminates |\ifthenelse@nss|, which is internally done in % |struktogramm|. % \fi +% \changes{v061}{10/05/31}{added debug code} % \begin{macrocode} -\def\ifend@nss% -{% - \global\gy@nss=\y@nss\endgroup\tempy@nss=\gy@nss% - \ifnum\tempy@nss<\ydepth@nss% - \y@nss=\tempy@nss\advance\ydepth@nss by-\tempy@nss% - \put(\x@nss,\y@nss)% - {% - \framebox(\tempx@nss,\ydepth@nss)% - {% - \ifnum\ydepth@nss>5000\filler@nss\fi% - }% +\def\ifend@nss{% + \global\gy@nss=\y@nss\endgroup\tempy@nss=\gy@nss% + \ifnum\tempy@nss<\ydepth@nss% + \y@nss=\tempy@nss\advance\ydepth@nss by-\tempy@nss% + \put(\x@nss,\y@nss){% + \framebox(\tempx@nss,\ydepth@nss){% + \ifnum\ydepth@nss>5000\filler@nss\fi% + }% + }% + \else% + \ifnum\tempy@nss>\ydepth@nss% + \y@nss=\ydepth@nss\advance\tempy@nss by-\ydepth@nss% + \put(\xx@nss,\y@nss){% + \framebox(\tempxx@nss,\tempy@nss){% + \ifnum\tempy@nss>5000\filler@nss\fi% }% + }% \else% - \ifnum\tempy@nss>\ydepth@nss% - \y@nss=\ydepth@nss\advance\tempy@nss by-\ydepth@nss% - \put(\xx@nss,\y@nss)% - {% - \framebox(\tempxx@nss,\tempy@nss)% - {% - \ifnum\tempy@nss>5000\filler@nss\fi% - }% - }% - \else% - \y@nss=\ydepth@nss% - \fi% + \y@nss=\ydepth@nss% \fi% + \fi% } % \end{macrocode} % \end{macro} % % \begin{macro}{\forever} -% \changes{v3.5a}{94/11/22}{"ubernommen von J. Dietel} -% \changes{v2.0}{92/01/17}{Eingef"uhrt durch D. Rieger} +% \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{v3.5a}{94/11/22}{"ubernommen von J. Dietel} -% \changes{v2.0}{92/01/17}{Eingef"uhrt durch D. Rieger} +% \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 % Beginn und Ende einer Endlosschleife. % \else @@ -6205,9 +6270,9 @@ These are the optional height and the required argument condition" % \end{macro} % % \begin{macro}{\dfr} -% \changes{v4.5b}{96/03/28}{Beschreibung eingef"uhrt} +% \changes{v-4.5b}{96/03/28}{Beschreibung eingef"uhrt} % \begin{macro}{\dfrend} -% \changes{v4.5b}{96/03/28}{Beschreibung eingef"uhrt} +% \changes{v-4.5b}{96/03/28}{Beschreibung eingef"uhrt} % \ifnum\language=\languageNGerman % Aus Kompatibilit"atsgr"unden werden f"ur \cs{forever} und \cs{foreverend} noch % die folgenden Abk"urzungen bereitgestellt. @@ -6224,23 +6289,28 @@ These are the optional height and the required argument condition" % % \begin{macro}{\while} % \begin{macro}{\whileend} +% \changes{v061}{10/05/31}{added missing translation and added debug code} % \ifnum\language=\languageNGerman % Beginn und Ende einer kopfgesteuerten Schleife. % \else -% Begin and end of a loop withtest before. +% Begin and end of a loop with a pre test. % \fi % \begin{macrocode} \def\while{\let\next=\@while\getoption} -\def\@while#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}{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 - \str@kt{\tempx@nss}{\tempy@nss}{\tempxx@nss} } -\def\whileend{\endstr@kt\tempy@nss=\y@nss\advance\tempy@nss by-\ydepth@nss - \y@nss=\ydepth@nss - \put(\x@nss,\y@nss){\framebox(\xsize@nss,\tempy@nss){}} } +\def\@while#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}{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 + \str@kt{\tempx@nss}{\tempy@nss}{\tempxx@nss}% +} +\def\whileend{% + \endstr@kt\tempy@nss=\y@nss\advance\tempy@nss by-\ydepth@nss + \y@nss=\ydepth@nss + \put(\x@nss,\y@nss){\framebox(\xsize@nss,\tempy@nss){}}% +} % \end{macrocode} % \end{macro} % \end{macro} @@ -6250,7 +6320,7 @@ These are the optional height and the required argument condition" % \ifnum\language=\languageNGerman % Beginn und Ende einer fu"sgesteuerten Schleife. % \else -% Begin and end of a loop with test after. +% Begin and end of a loop with a post test. % \fi % \begin{macrocode} \def\until{\let\next=\@until\getoption} @@ -6273,8 +6343,8 @@ These are the optional height and the required argument condition" % \end{macro} % % \begin{macro}{\cases@nss} -% \changes{v7.0b}{2004/03/09}{ersetzt durch `tempxx@nss} -% \changes{v4.2a}{95/10/06}{neu eingef"uhrt} +% \changes{v-7.0b}{2004/03/09}{ersetzt durch `tempxx@nss} +% \changes{v-4.2a}{95/10/06}{neu eingef"uhrt} % \ifnum\language=\languageNGerman % |\cases@nss| wird ben"otigt, um die Anzahl der F"alle im linken Zweig % des \cs{case}-Konstruktes berechnen zu k"onnen. |\cases@nss| nimmt entweder @@ -6289,14 +6359,14 @@ These are the optional height and the required argument condition" % \begin{macro}{\case} % \begin{macro}{\caseend} % \begin{macro}{\switch} -% \changes{v8.2a}{05/01/17}{Fehlerkorrektur: schr"age Linie endet nun an +% \changes{v-8.2a}{05/01/17}{Fehlerkorrektur: schr"age Linie endet nun an % der richtigen Stelle (pict2e)} -% \changes{v8.0d}{04/12/29}{Fehlerkorrektur: senkrechte Trennlinien haben +% \changes{v-8.0d}{04/12/29}{Fehlerkorrektur: senkrechte Trennlinien haben % nun die richtige L"ange} -% \changes{v8.0a}{04/07/13}{Paket \textsf{pict2e.sty} wird unterst"utzt} -% \changes{v4.2a}{95/10/04}{um \foreign{default}-Zweig erweitert} -% \changes{v4.1d}{95/10/04}{Dokumentation verbessert} -% \changes{v3.5a}{94/11/22}{"ubernommen von J. Dietel} +% \changes{v-8.0a}{04/07/13}{Paket \textsf{pict2e.sty} wird unterst"utzt} +% \changes{v-4.2a}{95/10/04}{um \foreign{default}-Zweig erweitert} +% \changes{v-4.1d}{95/10/04}{Dokumentation verbessert} +% \changes{v-3.5a}{94/11/22}{"ubernommen von J. Dietel} % \ifnum\language=\languageNGerman % \cs{case}, \cs{caseend} und \cs{switch} stellen eine Mehrfachverzweigung dar. % Es sind derzeit noch die alten Versionen \cs{caseold}, \cs{caseoldend} und @@ -6336,7 +6406,7 @@ These are the optional height and the required argument condition" % \end{enumerate} % Additionally there is an optional parameter placed in front. In the case % of using of one of the packages \textsf{curves.sty}, -% \textsf{emlines2.sty} or\textsf{pict2e.sty} this parameter enables +% \textsf{emlines2.sty} or \textsf{pict2e.sty} this parameter enables % drawing the slanted line with any gradient. If this parameter is used, % the first parameter has a different meaning: if the parameter is an even % number, the slanted line will be drawn upright (no \foreign{default} @@ -6346,10 +6416,10 @@ These are the optional height and the required argument condition" % a better understanding see the figures on page~\pageref{case1} and % \pageref{case2}. % \fi +% \changes{v061}{10/05/31}{added debug code} % \begin{macrocode} \def\case{\let\next=\@case\getoption} -\def\@case#1#2#3#4% -{ +\def\@case#1#2#3#4{% % \end{macrocode} % \ifnum\language=\languageNGerman % Merken der Anzahl der F"alle @@ -6357,7 +6427,7 @@ These are the optional height and the required argument condition" % memo of number of cases % \fi % \begin{macrocode} - \tempxx@nss=\number#2 + \tempxx@nss=\number#2% % \end{macrocode} % \ifnum\language=\languageNGerman % Zun"achst die schr"age Linie zeichnen @@ -6365,14 +6435,14 @@ These are the optional height and the required argument condition" % first drawing the slanted lines % \fi % \begin{macrocode} - \ifanygradient% - %{% + \ifanygradient% + %{% % \end{macrocode} % \ifnum\language=\languageNGerman % -- wenn \cs{anygradient} nicht wahr ist, werden schr"age Linien mit \cs{line} % erzeugt, % \else -% -- if \cs{anygradient} isn't true, the slanted lines are generated by +% -- if \cs{anygradient} isn't true, the slanted lines are generated by % \cs{line}, % \fi % \begin{macrocode} @@ -6418,14 +6488,14 @@ These are the optional height and the required argument condition" % \end{quote} % \else % \cs{tempxx@nss} is unchanged, therefore we draw a diagonal. The internal -% computation bases on +% computation bases on % \begin{quote} % \begin{tabular}{r@{:~}l} % \cs{x@nss} & left upper x-coordinate of the case box\\ % \cs{y@nss} & left upper y-coordinate of the case box\\ % \cs{xsize@nss} & width of the case box\\ % \cs{tempyy@nss} & height of the case box\\ -% \cs{tempxx@nss} & number of cases (mayve reduced by 1)\\ +% \cs{tempxx@nss} & number of cases (maybe reduced by 1)\\ % \end{tabular} % \end{quote} % \fi @@ -6527,9 +6597,9 @@ These are the optional height and the required argument condition" % then the conditioning text writing into the middle of the upper quarter of % CASE-rectangle % \fi -% \changes{v8.0e}{05/05/17}{`tempxxx@nss umbenannt in `tempxx@nss (wir +% \changes{v-8.0e}{05/05/17}{`tempxxx@nss umbenannt in `tempxx@nss (wir % befinden uns nicht im Fall pictIIe)} -% \changes{v8.0f}{05/06/12}{`tempxx@nss umbenannt in `tempx@nss (die Anzahl +% \changes{v-8.0f}{05/06/12}{`tempxx@nss umbenannt in `tempx@nss (die Anzahl % der F"alle wurde versehentlich ge"andert)} % \begin{macrocode} \tempx@nss=\xsize@nss @@ -6561,8 +6631,8 @@ These are the optional height and the required argument condition" % davon ab, ob ein \foreign{default}-Zweig eingef"uhrt wurde oder nicht, sie % werden demzufolge durch |\tempxx@nss| gesteuert. % \else -% |\tempx@nss| is the width of the branch, that is equal for all branches -% -- total width devided by number of cases --, +% |\tempx@nss| is the width of the branch, that is equal for all +% branches---total width divided by number of cases---, % |\tempy@nss| is the height of the text of case, that decreases from one case % to the other, |\condindent@nss| is the step size the height of the text of % case decreases with each \cs{switch}. Height and step size depend on wether @@ -6586,14 +6656,22 @@ These are the optional height and the required argument condition" % \else % Entering the text of case into the left upper part of left branch % \fi +% \changes{v061}{10/05/31}{enhanced the documentation} % \begin{macrocode} \advance\y@nss by -\tempy@nss \put(\x@nss,\y@nss)% {% \makebox(\tempx@nss,\tempy@nss)[lb]{\raise3pt\hbox{~#4}}% }% - \ydepth@nss=1000000 - \str@kt{\x@nss}{\y@nss}{\tempx@nss} +% \ifnum\language=\languageNGerman +% Links oben im linken Zweig den Text des Falles eintragen +% \else +% To find out the full height of the different cases, we start with a large +% value \cs{ydepth@nss}, which gets smaller by the settings of each +% case. Then the overall group gets opened, this group is closed in \cs{?} +% \fi + \ydepth@nss=1000000% + \str@kt{\x@nss}{\y@nss}{\tempx@nss}% } % \end{macrocode} % @@ -6612,13 +6690,12 @@ These are the optional height and the required argument condition" % \item the text of condition % \end{enumerate} % \fi +% \changes{v061}{10/05/31}{added debug code and enhanced the documentation} % \begin{macrocode} -\def\switch% -{% +\def\switch{% \@ifnextchar [{\@switch}{\@switch[l]}% } -\def\@switch[#1]#2% -{ +\def\@switch[#1]#2{% \global\gy@nss=\y@nss\endgroup \tempyy@nss=\gy@nss \ifnum\tempyy@nss<\ydepth@nss @@ -6637,56 +6714,315 @@ These are the optional height and the required argument condition" {\makebox(\tempx@nss,\tempy@nss)[#1b]{\raise3pt\hbox{~#2~}}} \str@kt{\x@nss}{\y@nss}{\tempx@nss} } -\def\caseend% -{ - \global\gy@nss=\y@nss\endgroup - \tempyy@nss=\gy@nss - \ifnum\tempyy@nss<\ydepth@nss - \ydepth@nss=\tempyy@nss - \fi - \x@nss=\xx@nss - \y@nss=\ydepth@nss - \tempyy@nss=\yy@nss - \advance\tempyy@nss by -\ydepth@nss - \put(\x@nss,\y@nss){\framebox(\xsize@nss,\tempyy@nss){}} - \tempxx@nss=\x@nss +\def\caseend{% + \global\gy@nss=\y@nss\endgroup + \tempyy@nss=\gy@nss + \ifnum\tempyy@nss<\ydepth@nss + \ydepth@nss=\tempyy@nss + \fi + \x@nss=\xx@nss + \y@nss=\ydepth@nss + \tempyy@nss=\yy@nss + \advance\tempyy@nss by -\ydepth@nss + \put(\x@nss,\y@nss){\framebox(\xsize@nss,\tempyy@nss){}} + \tempxx@nss=\x@nss % \end{macrocode} % \ifnum\language=\languageNGerman % Die folgende Schleife ist daf"ur zust"andig, die Trennlinien zwischen den -% Falltexten zu ziehen. +% Falltexten zu ziehen. Die erste Trennlinie steht nach dem ersten Block. % \else -% The following loop is to draw the partitioning lines between the texts of cases. +% The following loop is to draw the partitioning lines between the texts of +% cases. The first partitioning line occurs after the first block. % \fi % \begin{macrocode} - \loop - \put(\tempxx@nss,\y@nss){\line(0,1){\tempyy@nss}} - \advance\tempyy@nss by -\condindent@nss - \advance\tempxx@nss by \tempx@nss + \loop + \advance\tempyy@nss by -\condindent@nss + \advance\tempxx@nss by \tempx@nss + \put(\tempxx@nss,\y@nss){\line(0,1){\tempyy@nss}} % \end{macrocode} % \ifnum\language=\languageNGerman -% Die Bedeutung der folgenden Zeilen ist noch unklar, was soll die 100? +% Die Schleife endet vor dem letzten Block, deshalb wird der Z"ahler um die +% Blockbreite vor dem Test erh"oht. Zus"atzlich wird ein kleiner Wert (100) +% addiert, um Rundungsfehler der Integer-Arithmetik auszugleichen. % \else -% So far the meaning of the following lines is unclear. What means the 100? +% The loop ends just before the last block, so we advance the counter by +% the width of a block before the test. Also a small value is added to +% compensate rounding errors of the integer arithmetic. +% \fi +% \begin{macrocode} + \xx@nss=\tempxx@nss + \advance\xx@nss by -\x@nss + \advance\xx@nss by \tempx@nss + \advance\xx@nss by 100 + \ifnum \xx@nss<\xsize@nss + \repeat +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \changes{v-9.1}{10/01/17}{added stubs for the implementation of `inparallel, `task, and `inparallelend} +% \begin{macro}{\inparallel} +% \changes{v065}{10/06/07}{added some german translations} +% \changes{v061}{10/05/31}{enhanced the documentation and added debug code} +% \changes{v-9.1}{10/01/17}{added} +% \begin{macro}{\inparallelend} +% \changes{v-9.1}{10/01/17}{added} \ifnum\language=\languageNGerman% +% \cs{inparallel} und \cs{inparallelend} stellen Start und Ende +% paralleler Tasks dar. +% +% Der Makro \cs{inparallel} hat drei Parameter: +% \begin{enumerate} +% \item die optionale H"ohe des Blocks (diese H"ohe dient als gemeinsame +% H"ohe der parallelen Tasks) +% \item die Anzahl der parallelen Tasks +% \item die Beschreibung der ersten Task +% \end{enumerate} +% Die Implementation folgt den "ublichen Regeln: zuerst wird die +% optionale H"ohe verarbeitet, so wird sie in \cs{param@nss} gespeichert +% (wenn der optional Parameter fehlt, wird \cs{param@nss} zu 0 +% gesetzt). % +% \else% +% \cs{inparallel} and \cs{inparallelend} represent start and end of +% parallel tasks. +% +% The macro \cs{inparallel} has three parameters: +% \begin{enumerate} +% \item the optional height of the block (this height is used as a +% base for the height of the parallel tasks) +% \item the number of parallel tasks +% \item the description of the first task +% \end{enumerate} +% The implementation follows the common rules: first we process the +% optional height, in this way it is stored in \cs{param@nss} (if the +% optional parameter is missing, \cs{param@nss} has a value of 0). % +% \fi +% \begin{macrocode} +\def\inparallel{\let\next=\@inparallel\getoption} +% \end{macrocode} +% \ifnum\language=\languageNGerman% +% Damit braucht \cs{@inparallel} nur zwei Parameter zu verwalten: % +% \else% +% So \cs{@inparallel} needs to manage only two parameters: % % \fi % \begin{macrocode} - \xx@nss=\tempxx@nss - \advance\xx@nss by -\x@nss - \advance\xx@nss by 100 - \ifnum \xx@nss<\xsize@nss - \repeat +\def\@inparallel#1#2{% +% \end{macrocode} +% \ifnum\language=\languageNGerman% +% Die Schritte zum Zeichnens des Kastens sind: +% \begin{enumerate} +% \item Berechnen der H"ohe der einzelnen Tasks: % +% \else% +% The steps to draw the box are as follows: +% \begin{enumerate} +% \item Calculate the intended height of the tasks: +% \fi% +% \begin{macrocode} +\tempyy@nss=\number\param@nss000% +% \end{macrocode} +% \item % +% \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@nss} +% sp"ater noch gebraucht wird. +% +% Die aktuelle Startposition des Blocks is |(\x@nss, \y@nss)|, die Breite +% ist \cs{xsize@nss}, um die Anzahl \cs{tempxx@css} der Striche in der +% gestrichelten Linie zu bestimmen, wird die Breite durch 3000 geteilt +% (zweimal die L"ange eines Striches). % +% \else % +% Draw the two dashed lines at the top; this must happen in a group of +% its own, because we need the current \cs{y@nss} later on. +% +% The current starting position is |(\x@nss, \y@nss)|, the width is +% \cs{xsize@nss}, first divide the width by 3000 (two times the length of +% a dash) to get the number \cs{tempxx@css} of dashes for the dashed +% line. % +% \fi% +% \begin{macrocode} +\tempxx@nss=\xsize@nss +\advance\tempxx@nss by 1500% prevent rounding errors +\divide\tempxx@nss by 3000% +\yy@nss=\y@nss\advance\yy@nss by -2000% +\multiput(\x@nss,\yy@nss)(3000, 0){\tempxx@nss}{\line(1,0){1500}}% +\advance\yy@nss by -2000% +\multiput(\x@nss,\yy@nss)(3000, 0){\tempxx@nss}{\line(1,0){1500}}% +% \end{macrocode} +% \item % +% \ifnum\language=\languageNGerman% +% Berechnen der (gemeinsamen) Breite aller parallelen Tasks (Gesamtbreite +% geteilt durch die Anzahl der Tasks). Zus"atzlich wird die Breite der +% beschreibenden Texte f"ur alle Tasks berechnet; sie betr"agt +% \(\frac{5}{6}\) der Breite einer Task. % +% \else% +% Calculate the (common) width of all parallel tasks (total width +% divided by number of tasks). Additionally we calculate the text width +% for all tasks, which is \(\frac{5}{6}\) of the task. % +% \fi% +% \begin{macrocode} +\xx@nss=\x@nss% +\advance\xx@nss by \xsize@nss% +\divide\xsize@nss by #1% +\tempx@nss=\xsize@nss\divide\tempx@nss by 6% +% \end{macrocode} +% \item % +% \ifnum\language=\languageNGerman% +% Zeichnen der verschiedenen parallelen Tasts (z.\,Zt. besteht eine Task +% nur aus einer Aktion, wenn sie aus mehreren Aktionen best"ande, +% m"ussten diese durch horizontale Linien getrennt werden, dies k"onnte +% zu einem sp"ateren Zeitpunkt implementiert werden). Die erste Task wird +% hier gezeichnet, weitere Tasks werden mit dem Makro \cs{task} +% gezeichnet. % +% \else% +% \item Draw the several parallel tasks (the tasks may consist of several +% actions each, if that's the case, they must be divided by horizontal +% lines, but that isn't implemented for now). The first task is drawn +% here, further tasks are drawn by the command \cs{task}. % +% \fi% +% \begin{macrocode} +\begingroup +\y@nss=\yy@nss% +\set@nss{#2}{\tempx@nss}% +\block@nss{\tempyy@nss}{0}% +\tempyy@nss=\TextBoxHt@nss% +% \end{macrocode} +% \end{enumerate} +% \begin{macrocode} } % \end{macrocode} % \end{macro} +% \ifnum\language=\languageNGerman% +% Und nun zur Implementation von \cs{inparallelend}: nach ein paar +% Initialisierungsschritten \ldots{} % +% \else% +% And now for the implementation of \cs{inparallelend}: after some +% initialization steps \ldots{} % +% \fi% +% \changes{v074}{10/06/08}{corrected the calculation of the surrounding box} +% \changes{v061}{10/05/31}{added some documentation} +% \begin{macrocode} +\def\inparallelend{% + \global\tempy@nss=\y@nss% + \global\tempyy@nss=\tempyy@nss% + \endgroup +% \end{macrocode} +% \ifnum\language=\languageNGerman% +% \ldots{} m"ussen +% \begin{enumerate} +% \item die senkrechten Linien gezeichnet werden, um die einzelnen Tasks +% sichtbar abzugrenzen (die Linien m"ussen so lang wie die "`l"angste"' Task +% sein): die linke x-Koordinate des Kastens ist \cs{x@nss}, die rechte +% \cs{xx@nss}, die Gesamtbreite wird auf \#4 -- in +% \cs{inparallel} gesetzt --Tasks aufgeteilt, somit ist die Breite +% zwischen zwei Linien \cs{xsize@nss}. +% Es gibt \(\#4-1\) Linien, damit beginnt die Schleife zum Zeichnen der +% Linien an der Position +% \(\cs{x@nss}+\cs{xsize@nss}\) und sie endet an der Position +% \(\cs{xx@nss}-\frac{\cs{xsize@nss}}{2}\) um Rundungsfehler zu vermeiden. % +% \else% +% \ldots{} we have to +% \begin{enumerate} +% \item draw the vertical lines to divide the several tasks visual (the +% lines must be as long as the "longest"{} sequence of actions): the +% block's left side is given by \cs{x@nss}, it's right side by +% \cs{xx@nss}, it is divided into \#4 parts---used in +% \cs{inparallel}---so the width between the lines is \cs{xsize@nss}. +% There must be \(\#4-1\) lines, so the loop starts at +% \(\cs{x@nss}+\cs{xsize@nss}\) and it ends at +% \(\cs{xx@nss}-\frac{\cs{xsize@nss}}{2}\) to avoid rounding errors. % +% \fi% +% \begin{macrocode} +\begingroup% +\tempx@nss=\xsize@nss% +\divide\tempx@nss by 2% +\advance\xx@nss by -\tempx@nss% +\tempx@nss=\x@nss% +\loop% +\advance\tempx@nss by \xsize@nss% +\put(\tempx@nss,\tempy@nss){\line(0,1){\tempyy@nss}}% +\tempxx@nss=\tempx@nss% +\advance\tempxx@nss by \xsize@nss% +\ifnum \tempxx@nss<\xx@nss% +\repeat +\endgroup +% \end{macrocode} +% \item % +% \ifnum\language=\languageNGerman% +% Zeichnen der gestrichelten Linien am Ende des Kastens, \else% +% draw the two dashed lines at the bottom, % +% \fi % +% \begin{macrocode} +\multiput(\x@nss,\tempy@nss)(3000, 0){\tempxx@nss}{\line(1,0){1500}}% +\advance\tempy@nss by -2000% +\multiput(\x@nss,\tempy@nss)(3000, 0){\tempxx@nss}{\line(1,0){1500}}% +% \end{macrocode} +% \item % +% \ifnum\language=\languageNGerman% +% Zeichnen eines Kastens um alle zuvor gezeichneten Elemente. % +% \else % +% draw a box around all the previous drawn elements. \fi % +% \end{enumerate} +% \begin{macrocode} +\advance\tempy@nss by -2000% +\advance\tempyy@nss by 8000% +\advance\xx@nss by -\x@nss% +\put(\x@nss,\tempy@nss){\framebox(\xx@nss,\tempyy@nss){}}% +% \end{macrocode} +% \ifnum\language=\languageNGerman% +% In einem letzten Schritt werden \cs{y@nss} und \cs{xsize@nss} in den +% global genutzten Registern abgelegt: % +% \else% +% In a last step \cs{y@nss} and \cs{xsize@nss} are stored into the +% registers which are used globally: % +% \fi% +% \begin{macrocode} +\xsize@nss=\xx@nss% +\y@nss=\tempy@nss% +} +% \end{macrocode} % \end{macro} +% +% \begin{macro}{\task} +% \changes{v061}{10/05/31}{implemented the macro} +% \changes{v-9.1}{10/01/17}{added} +% \ifnum\language=\languageNGerman% +% Der Makro \cs{task} definiert die parallelen +% Tasks, er hat zwei Parameter: +% \begin{enumerate} +% \item die optionale H"ohe der Task (dies kann die optionale H"ohe des +% umgebenden Blocks "uberschreiben) +% \item die Beschreibung der Task +% \end{enumerate} +% \else% +% \cs{task} defines the parallel tasks, it has two parameters: +% \begin{enumerate} +% \item the optional height of the task (this may overwrite the +% optional height of the surrounding block) +% \item the description of the task +% \end{enumerate} +% \fi% +% \begin{macrocode} +\def\task{\let\next=\@task\getoption} +\def\@task#1{% + \advance\x@nss by \xsize@nss% + \y@nss=\yy@nss% + \set@nss{#1}{\tempx@nss}% + \ifnum\number\param@nss000>\tempyy@nss% + \tempyy@nss=\number\param@nss000% + \fi% + \block@nss{\tempyy@nss}{0}% +} +% \end{macrocode} % \end{macro} % % \begin{macro}{\centerNss} % \begin{macro}{\endcenterNss} -% \changes{v4.5d}{97/03/19}{`CenterBox@nss global gemacht} -% \changes{v3.3e}{94/09/09}{`centerline durch `strut`hfill ... ersetzt} -% \changes{v3.3e}{94/09/09}{`TmpBox umbenannt in `nss@CenterBox} -% \changes{v3.1a}{94/09/09}{aus \textsf{JHfMakro.STY} "ubernommen} -% \changes{v3.1b}{94/09/09}{erheblich vereinfacht} +% \changes{v-4.5d}{97/03/19}{`CenterBox@nss global gemacht} +% \changes{v-3.3e}{94/09/09}{`centerline durch `strut`hfill ... ersetzt} +% \changes{v-3.3e}{94/09/09}{`TmpBox umbenannt in `nss@CenterBox} +% \changes{v-3.1a}{94/09/09}{aus \textsf{JHfMakro.STY} "ubernommen} +% \changes{v-3.1b}{94/09/09}{erheblich vereinfacht} % \ifnum\language=\languageNGerman % Makro zur Zentrierung von Struktogrammen: da einfaches Zentrieren mit % \cs{centering} nicht funktioniert, wird mit \cs{centerline} gearbeitet: @@ -6696,15 +7032,13 @@ These are the optional height and the required argument condition" % \fi % \begin{macrocode} \newbox\CenterBox@nss% -\def\centernss% -{% +\def\centernss{% \begin{trivlist}% \item[] \strut% \setbox\CenterBox@nss=\hbox% \bgroup% } -\def\endcenternss% -{% +\def\endcenternss{% \egroup% \strut\hfill\box\CenterBox@nss\hfill\strut% \end{trivlist}% @@ -6714,12 +7048,12 @@ These are the optional height and the required argument condition" % \end{macro} % % \begin{macro}{\CenterNssFile} -% \changes{v4.5d}{97/03/19}{Belegen von `CenterBox@nss in das `item verlegt} -% \changes{v3.3e}{94/09/09}{`centerline durch `strut`hfill ... ersetzt} -% \changes{v3.3e}{94/09/09}{Auf zus"atzliche Gruppe um `trivlist verzichtet} -% \changes{v3.3e}{94/09/09}{`TmpBox umbenannt in `nss@CenterBox} -% \changes{v3.1a}{94/09/09}{aus \textsf{JHfMakro.STY} "ubernommen} -% \changes{v3.1b}{94/09/09}{erheblich vereinfacht} +% \changes{v-4.5d}{97/03/19}{Belegen von `CenterBox@nss in das `item verlegt} +% \changes{v-3.3e}{94/09/09}{`centerline durch `strut`hfill ... ersetzt} +% \changes{v-3.3e}{94/09/09}{Auf zus"atzliche Gruppe um `trivlist verzichtet} +% \changes{v-3.3e}{94/09/09}{`TmpBox umbenannt in `nss@CenterBox} +% \changes{v-3.1a}{94/09/09}{aus \textsf{JHfMakro.STY} "ubernommen} +% \changes{v-3.1b}{94/09/09}{erheblich vereinfacht} % \ifnum\language=\languageNGerman % Makro zur Zentrierung von Struktogrammen: da einfaches Zentrieren mit % \cs{centering} nicht funktioniert, wird mit \cs{centerline} gearbeitet: @@ -6728,8 +7062,7 @@ These are the optional height and the required argument condition" % \cs{centering} does'nt work, it is worked with \cs{centerline}: % \fi % \begin{macrocode} -\def\CenterNssFile#1% -{% +\def\CenterNssFile#1{% \begin{trivlist}% \item[] \setbox\CenterBox@nss=\hbox{\input{#1.nss}}% \strut\hfill\box\CenterBox@nss\hfill\strut% @@ -6739,13 +7072,13 @@ These are the optional height and the required argument condition" % \end{macrocode} % \end{macro} % -% \subsection{\ifnum\language=\languageNGerman Zus"atzliche Makros (Verifikation) \else Additional macros (verification)\fi} -% +% \subsection{\ifnum\language=\languageNGerman Zus"atzliche Makros +% (Verifikation) \else Additional macros (verification)\fi} % % \begin{macro}{\assert} -% \changes{v7.0a}{04/01/04}{neu eingef"uhrt} +% \changes{v-7.0a}{04/01/04}{neu eingef"uhrt} % \begin{macro}{\assert@nss} -% \changes{v7.0a}{04/01/04}{neu eingef"uhrt} +% \changes{v-7.0a}{04/01/04}{neu eingef"uhrt} % \ifnum\language=\languageNGerman % \cs{assert} wird wie \cs{assign} definiert, f"uhrt ohne die Option % |verification| aber nicht zu sichtbaren Ergebnissen: @@ -6767,13 +7100,12 @@ These are the optional height and the required argument condition" % \fi % % \begin{macrocode} -\ifthenelse{\boolean{verification}} -{ +\ifthenelse{\boolean{verification}}{% % \end{macrocode} % \begin{macro}{\xsizeo@nss} -% \changes{v7.0a}{04/01/05}{neu eingef"uhrt} +% \changes{v-7.0a}{04/01/05}{neu eingef"uhrt} % \begin{macro}{\ydeptho@nss} -% \changes{v7.0a}{04/01/05}{neu eingef"uhrt} +% \changes{v-7.0a}{04/01/05}{neu eingef"uhrt} % \ifnum\language=\languageNGerman % Da \cs{oval} einen anderen Referenzpunkt als \cs{framebox} hat, brauchen % wir zus"atzliche Z"ahler, um den anderen Referenzpunkt ansprechen zu k"onnen. @@ -6794,8 +7126,7 @@ These are the optional height and the required argument condition" % \else % \fi % \begin{macrocode} - \renewcommand{\assert@nss}[1]% - {% + \renewcommand{\assert@nss}[1]{% \tempx@nss=\xsize@nss\divide\tempx@nss by 6% \set@nss{#1}{\tempx@nss}\tempy@nss=\number\param@nss000% \assertblock@nss{\tempy@nss}{1}% @@ -6803,21 +7134,20 @@ These are the optional height and the required argument condition" % \end{macrocode} %% % \begin{macro}{\assertblock@nss} -% \changes{v7.0a}{04/01/04}{neu eingef"uhrt} +% \changes{v-7.0a}{04/01/04}{neu eingef"uhrt} % \ifnum\language=\languageNGerman % |\assertblock@nss| setzt die Box |\TextBox@nss| entsprechend dem zweiten Parameter. Ist dieser % 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. % \else -% |\assertblock@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. +% |\assertblock@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. % \fi % \begin{macrocode} - \newcommand{\assertblock@nss}[2]% - {% + \newcommand{\assertblock@nss}[2]{% \tempy@nss=#1\TextBoxHt@nss=\ht\TextBox@nss% \advance\TextBoxHt@nss by\dp\TextBox@nss% \advance\TextBoxHt@nss by 2mm% @@ -6852,18 +7182,16 @@ These are the optional height and the required argument condition" } } {} % end of \ifthenelse{\boolean{verification}} +%</struktex> % \end{macrocode} % \end{macro} -% \iffalse -%</struktex> -% \fi % % % \Finale % % \clearpage % \PrintIndex -% \PrintChanges +% {\selectlanguage{ngerman}\PrintChanges} % \endinput %% \CharacterTable @@ -6885,8 +7213,9 @@ These are the optional height and the required argument condition" % % end of struktex.dtx % -% ^^A Local Variables: -% ^^A mode: latex +% ^^A Local Variables: +% ^^A mode: docTeX +% ^^A TeX-PDF-mode: t % ^^A TeX-master: t % ^^A mode: flyspell % ^^A ispell-local-dictionary: "deutsch8" diff --git a/Master/texmf-dist/source/latex/struktex/struktex.ins b/Master/texmf-dist/source/latex/struktex/struktex.ins index bb4bac0ea11..70fd16abf4e 100644 --- a/Master/texmf-dist/source/latex/struktex/struktex.ins +++ b/Master/texmf-dist/source/latex/struktex/struktex.ins @@ -1,5 +1,5 @@ %% -%% $Revision: 7.8 $ +%% $Revision: 53 $ %% %% 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-2006 by Jobst Hoffmann. All rights reserved. +Copyright (C) 1989-2010 by Jobst Hoffmann. All rights reserved. IMPORTANT COPYRIGHT NOTICE: @@ -28,7 +28,7 @@ are granted and in particular NO PERMISSION to modify its contents. You are NOT ALLOWED to change this file. -Please address error reports and any problems in case of UNCHANGED versions +Please address error reports and any problems in case of UNCHANGED versions to j.hoffmann@fh-aachen.de \endpreamble @@ -108,7 +108,7 @@ to } \endinput -%%% Local Variables: +%%% Local Variables: %%% mode: latex %%% TeX-master: t %%% mode: flyspell diff --git a/Master/texmf-dist/tex/latex/struktex/strukdoc.sty b/Master/texmf-dist/tex/latex/struktex/strukdoc.sty index e173a21a170..ac4c37e8647 100644 --- a/Master/texmf-dist/tex/latex/struktex/strukdoc.sty +++ b/Master/texmf-dist/tex/latex/struktex/strukdoc.sty @@ -6,7 +6,7 @@ %% %% struktex.dtx (with options: `strukdoc') %% -%% Copyright (C) 1989-2006 by Jobst Hoffmann. All rights reserved. +%% Copyright (C) 1989-2010 by Jobst Hoffmann. All rights reserved. %% %% IMPORTANT COPYRIGHT NOTICE: %% @@ -19,12 +19,13 @@ %% to %% j.hoffmann@fh-aachen.de \NeedsTeXFormat{LaTeX2e}[1999/12/01] -\def\filedate{2006/08/20} -\def\fileversion{v8.3b} +{% + \def\@svn@ $#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: 2010-06-25 13:00:22 +0200 (Fr, 25 Jun 2010) $$Revision: 101 $ % +} %% \RequirePackage{ifpdf} -\ProvidesPackage{strukdoc} - [\filedate\space\fileversion\space (Jobst Hoffmann)] \newif\ifcolor \IfFileExists{color.sty}{\colortrue}{} \ifpdf \RequirePackage[colorlinks]{hyperref}\else \def\href#1{\texttt}\fi diff --git a/Master/texmf-dist/tex/latex/struktex/struktex.sty b/Master/texmf-dist/tex/latex/struktex/struktex.sty index 3efd7984836..d78fff5c349 100644 --- a/Master/texmf-dist/tex/latex/struktex/struktex.sty +++ b/Master/texmf-dist/tex/latex/struktex/struktex.sty @@ -6,7 +6,7 @@ %% %% struktex.dtx (with options: `struktex') %% -%% Copyright (C) 1989-2006 by Jobst Hoffmann. All rights reserved. +%% Copyright (C) 1989-2010 by Jobst Hoffmann. All rights reserved. %% %% IMPORTANT COPYRIGHT NOTICE: %% @@ -19,12 +19,12 @@ %% to %% j.hoffmann@fh-aachen.de \NeedsTeXFormat{LaTeX2e}[1999/12/01] -\def\filedate{2006/08/20} -\def\fileversion{v8.3b} -\ProvidesPackage{struktex} - [\filedate\space\fileversion\space Nassi Shneidermann Charts (Jobst Hoffmann)] +{% + \def\@svn@ $#1Date: #2-#3-#4 #5$$#6Revision: #7$ {% + \ProvidesPackage{struktex}[#2/#3/#4 v#7 Nassi Shneiderman Charts (Jobst Hoffmann)]} + \@svn@ $Date: 2010-06-25 13:00:22 +0200 (Fr, 25 Jun 2010) $$Revision: 101 $ % +} %% -\@ifundefined{StrukTeX}{}{\endinput} \RequirePackage{ifthen} \RequirePackage{struktxf} \RequirePackage{struktxp} @@ -101,38 +101,32 @@ \newbox\TextBox@nss \newdimen\TextBoxHt@nss \DeclareMathSymbol\varnothing{\mathord}{AMSb}{"3F} \let\emptyset\varnothing -\def\filler@nss% -{% +\def\filler@nss{% \iffiller\ensuremath{\emptyset}\fi% } -\def\c@nter@nss% -{% +\def\c@nter@nss{% \leftskip=0pt plus 2em \rightskip=\leftskip \parfillskip=0pt \spaceskip=.333em \xspaceskip=.5em \pretolerance=9999 \tolerance=9999 \hyphenpenalty=9999 \exhyphenpenalty=9999% } \def\Position@nss{}% -\newcommand{\PositionNSS}[1]% -{% +\newcommand{\PositionNSS}[1]{% \def\Position@nss{#1}% } -\def\struktogramm(#1,#2)% -{% +\def\struktogramm(#1,#2){% \let\ifthenelse=\ifthenelse@nss% \let\ifend=\ifend@nss% \ifdraft@nss\let\struktogramm@nss=\struktogramm@Proof\fi% \@ifnextchar [{\struktogramm@nss(#1,#2)}{\struktogramm@nss(#1,#2)[]}% } -\def\endstruktogramm% -{% +\def\endstruktogramm{% \endstr@kt% \end{picture}% \end{minipage}% \setlength{\unitlength}{\savelength@nss}% } -\def\struktogramm@NoProof(#1,#2)[#3]% -{% +\def\struktogramm@NoProof(#1,#2)[#3]{% \def\next{#3} \setlength{\savelength@nss}{\unitlength} \setlength{\unitlength}{0.001mm} @@ -141,8 +135,7 @@ \begin{picture}(#1000,#2000)% \str@kt{0}{#2000}{#1000}% } -\def\struktogramm@Proof(#1,#2)[#3]% -{% +\def\struktogramm@Proof(#1,#2)[#3]{% \def\next{#3}% \setlength{\savelength@nss}{\unitlength}% \setlength{\unitlength}{0.001mm}% @@ -179,51 +172,44 @@ } \def\getoption{\@ifnextchar [{\getnum}{\param@nss=0\next}} \def\getnum[#1]{\param@nss=#1\next} -\def\str@kt#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% -} -\def\endstr@kt% -{% - \global\gy@nss=\y@nss% - \endgroup% - \ydepth@nss=\gy@nss% -} -\def\set@nss#1#2% -{% - \setbox\TextBox@nss=\hbox{#1}% - \tempxx@nss=\xsize@nss\advance\tempxx@nss by-#2% - \ifdim\wd\TextBox@nss>\tempxx@nss\unitlength% - \setbox\TextBox@nss=\vbox{\hsize=\tempxx@nss\unitlength\noindent#1}% - \fi% -} -\def\block@nss#1#2% -{% - \tempy@nss=#1\TextBoxHt@nss=\ht\TextBox@nss% - \advance\TextBoxHt@nss by\dp\TextBox@nss% - \advance\TextBoxHt@nss by 2mm% - \ifdim\TextBoxHt@nss<\tempy@nss\unitlength% - \TextBoxHt@nss=\tempy@nss\unitlength% - \fi% - \TextBoxHt@nss=0.00536\TextBoxHt@nss% - \ydepth@nss=\TextBoxHt@nss\advance\y@nss by-\ydepth@nss% - \ifx#21% - \put(\x@nss,\y@nss)% - {% - \framebox(\xsize@nss,\ydepth@nss){\box\TextBox@nss}% - }% - \else% - \ifx#20% - \put(\x@nss,\y@nss)% - {% - \makebox(\xsize@nss,\ydepth@nss){\box\TextBox@nss}% - }% - \else% - \advance\y@nss by \ydepth@nss% - \fi% - \fi% +\def\str@kt#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% +} +\def\endstr@kt{% + \global\gy@nss=\y@nss% + \endgroup% + \ydepth@nss=\gy@nss% +} +\def\set@nss#1#2{% + \setbox\TextBox@nss=\hbox{#1}% + \tempxx@nss=\xsize@nss\advance\tempxx@nss by-#2% + \ifdim\wd\TextBox@nss>\tempxx@nss\unitlength% + \setbox\TextBox@nss=\vbox{\hsize=\tempxx@nss\unitlength\noindent#1}% + \fi% +} +\def\block@nss#1#2{% + \tempy@nss=#1% + \TextBoxHt@nss=\ht\TextBox@nss% + \advance\TextBoxHt@nss by\dp\TextBox@nss% + \advance\TextBoxHt@nss by 2mm% + \ifdim\TextBoxHt@nss<\tempy@nss\unitlength% + \TextBoxHt@nss=\tempy@nss\unitlength% + \fi% + \TextBoxHt@nss=0.00536\TextBoxHt@nss% + \ydepth@nss=\TextBoxHt@nss\advance\y@nss by-\ydepth@nss% + \ifx#21% + \put(\x@nss,\y@nss){% + \framebox(\xsize@nss,\ydepth@nss){\box\TextBox@nss}% + }% + \else\ifx#20% + \put(\x@nss,\y@nss){% + \makebox(\xsize@nss,\ydepth@nss){\box\TextBox@nss}% + }% + \else% + \advance\y@nss by \ydepth@nss% + \fi\fi% } \def\declarationtitle{\ifnum\language=\languageNGerman Speicherplatz bereitstellen: \else providing memory space\fi} @@ -268,21 +254,21 @@ } \newcommand{\description@nss}[2]{\item[#1] \{#2\}} \def\assign{\let\next=\@assign\getoption}% -\def\@assign#1% -{% - \tempx@nss=\xsize@nss\divide\tempx@nss by 6% - \set@nss{#1}{\tempx@nss}\tempy@nss=\number\param@nss000% - \block@nss{\tempy@nss}{1}% +\def\@assign#1{% + \tempx@nss=\xsize@nss\divide\tempx@nss by 6% + \set@nss{#1}{\tempx@nss}% + \tempy@nss=\number\param@nss000% + \block@nss{\tempy@nss}{1}% } \def\sub{\let\next=\@sub\getoption} \def\@sub#1% {% - \@assign{#1}\tempx@nss=\xsize@nss\divide\tempx@nss by 20% - \tempxx@nss=\x@nss\advance\tempxx@nss by \tempx@nss% - \put(\tempxx@nss,\y@nss){\line(0,1){\ydepth@nss}}% - \tempxx@nss=\x@nss\advance\tempxx@nss by \xsize@nss% - \advance\tempxx@nss by -\tempx@nss% - \put(\tempxx@nss,\y@nss){\line(0,1){\ydepth@nss}}% + \@assign{#1}\tempx@nss=\xsize@nss\divide\tempx@nss by 20% + \tempxx@nss=\x@nss\advance\tempxx@nss by \tempx@nss% + \put(\tempxx@nss,\y@nss){\line(0,1){\ydepth@nss}}% + \tempxx@nss=\x@nss\advance\tempxx@nss by \xsize@nss% + \advance\tempxx@nss by -\tempx@nss% + \put(\tempxx@nss,\y@nss){\line(0,1){\ydepth@nss}}% } \def\exit{\let\next=\@exit\getoption} \def\@exit#1% @@ -326,11 +312,8 @@ \newdimen\thislength@nss \countdef\gindhelp@nss=234 \def\ifthenelse@nss{\let\next=\@ifthenelse@nss\getoption} -\def\@ifthenelse@nss#1#2#3#4#5% -{% - %\ifthenelse{\boolean{anygradient}}% - %{% - \ifanygradient +\def\@ifthenelse@nss#1#2#3#4#5{% + \ifanygradient \xx@nss=#1 \advance\xx@nss by #2% \ifnum\number\param@nss000>0% \tempyy@nss=\number\param@nss000% @@ -397,12 +380,10 @@ \xdef\shape{\shape\the\thislength@nss}% \ifnum\index@nss<\tempy@nss% \repeat% - %}% - %{% -\else + \else %\ifanygradient \ifnum\number\param@nss000>0% - \typeout{struktex warning:}% - \typeout{[...] not supplied without curves, emlines2, or pict2e}% + \typeout{struktex warning:}% + \typeout{[...] not supplied without curves, emlines2, or pict2e}% \fi% \tempx@nss=#1 \advance\tempx@nss by #2% \tempyy@nss=\xsize@nss \divide\tempyy@nss by \tempx@nss% @@ -416,74 +397,64 @@ \ifnum\tempy@nss<1 \tempy@nss=1\fi% \xdef\shape{}\index@nss=0% \loop% - \advance\index@nss by 1% - \condindent@nss=#1\multiply\condindent@nss by\index@nss% - \multiply\condindent@nss by 5000% - \xdef\shape{\shape\the\condindent@nss\unitlength}% - \condindent@nss=#1\advance\condindent@nss by #2% - \multiply\condindent@nss by\index@nss% - \multiply\condindent@nss by -5000% - \advance\condindent@nss by \xsize@nss% - \xdef\shape{\shape\the\condindent@nss\unitlength}% - \ifnum\index@nss<\tempy@nss% + \advance\index@nss by 1% + \condindent@nss=#1\multiply\condindent@nss by\index@nss% + \multiply\condindent@nss by 5000% + \xdef\shape{\shape\the\condindent@nss\unitlength}% + \condindent@nss=#1\advance\condindent@nss by #2% + \multiply\condindent@nss by\index@nss% + \multiply\condindent@nss by -5000% + \advance\condindent@nss by \xsize@nss% + \xdef\shape{\shape\the\condindent@nss\unitlength}% + \ifnum\index@nss<\tempy@nss% \repeat% - %}% - \fi - \put(\x@nss,\y@nss)% - {% - \framebox(\xsize@nss,\tempyy@nss)[tl]% - {% - \vbox% - {% - \hsize=\xsize@nss\unitlength% - \parshape=\tempy@nss \shape \c@nter@nss% - %dies sorgt f"ur den Einzug - \noindent\vrule width0pt height12pt \relax #3% - %hier wird der Text ausgegeben - }% - }% + \fi %\ifanygradient + \put(\x@nss,\y@nss){% + \framebox(\xsize@nss,\tempyy@nss)[tl]{% + \vbox{% + \hsize=\xsize@nss\unitlength% + \parshape=\tempy@nss \shape \c@nter@nss% + %dies sorgt f"ur den Einzug + \noindent\vrule width0pt height12pt \relax #3% + %hier wird der Text ausgegeben + }% }% - \divide\tempyy@nss by 2% - \xx@nss=\xsize@nss\advance\xx@nss by-\tempx@nss% - \advance\xx@nss by-\tempxx@nss% - \ifodd\xx@nss\advance\tempxx@nss by 1\fi% - \divide\xx@nss by 2\advance\tempxx@nss by \xx@nss% - \advance\tempx@nss by \xx@nss% - \put(\x@nss,\y@nss){\makebox(\tempx@nss,\tempyy@nss){#4}}% - \xx@nss=\x@nss\advance\xx@nss by \tempx@nss% - \put(\xx@nss,\y@nss){\makebox(\tempxx@nss,\tempyy@nss){#5}}% - \str@kt{\x@nss}{\y@nss}{\tempx@nss}% -} -\def\change% -{% + }% + \divide\tempyy@nss by 2% + \xx@nss=\xsize@nss\advance\xx@nss by-\tempx@nss% + \advance\xx@nss by-\tempxx@nss% + \ifodd\xx@nss\advance\tempxx@nss by 1\fi% + \divide\xx@nss by 2\advance\tempxx@nss by \xx@nss% + \advance\tempx@nss by \xx@nss% + \put(\x@nss,\y@nss){\makebox(\tempx@nss,\tempyy@nss){#4}}% + \xx@nss=\x@nss\advance\xx@nss by \tempx@nss% + \put(\xx@nss,\y@nss){\makebox(\tempxx@nss,\tempyy@nss){#5}}% + \str@kt{\x@nss}{\y@nss}{\tempx@nss}% +} +\def\change{% \endstr@kt\str@kt{\xx@nss}{\y@nss}{\tempxx@nss}% } -\def\ifend@nss% -{% - \global\gy@nss=\y@nss\endgroup\tempy@nss=\gy@nss% - \ifnum\tempy@nss<\ydepth@nss% - \y@nss=\tempy@nss\advance\ydepth@nss by-\tempy@nss% - \put(\x@nss,\y@nss)% - {% - \framebox(\tempx@nss,\ydepth@nss)% - {% - \ifnum\ydepth@nss>5000\filler@nss\fi% - }% +\def\ifend@nss{% + \global\gy@nss=\y@nss\endgroup\tempy@nss=\gy@nss% + \ifnum\tempy@nss<\ydepth@nss% + \y@nss=\tempy@nss\advance\ydepth@nss by-\tempy@nss% + \put(\x@nss,\y@nss){% + \framebox(\tempx@nss,\ydepth@nss){% + \ifnum\ydepth@nss>5000\filler@nss\fi% + }% + }% + \else% + \ifnum\tempy@nss>\ydepth@nss% + \y@nss=\ydepth@nss\advance\tempy@nss by-\ydepth@nss% + \put(\xx@nss,\y@nss){% + \framebox(\tempxx@nss,\tempy@nss){% + \ifnum\tempy@nss>5000\filler@nss\fi% }% + }% \else% - \ifnum\tempy@nss>\ydepth@nss% - \y@nss=\ydepth@nss\advance\tempy@nss by-\ydepth@nss% - \put(\xx@nss,\y@nss)% - {% - \framebox(\tempxx@nss,\tempy@nss)% - {% - \ifnum\tempy@nss>5000\filler@nss\fi% - }% - }% - \else% - \y@nss=\ydepth@nss% - \fi% + \y@nss=\ydepth@nss% \fi% + \fi% } \def\forever{\let\next=\@forever\getoption} \def\@forever{ @@ -514,16 +485,20 @@ \let\dfr\forever \let\dfrend\foreverend \def\while{\let\next=\@while\getoption} -\def\@while#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}{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 - \str@kt{\tempx@nss}{\tempy@nss}{\tempxx@nss} } -\def\whileend{\endstr@kt\tempy@nss=\y@nss\advance\tempy@nss by-\ydepth@nss - \y@nss=\ydepth@nss - \put(\x@nss,\y@nss){\framebox(\xsize@nss,\tempy@nss){}} } +\def\@while#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}{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 + \str@kt{\tempx@nss}{\tempy@nss}{\tempxx@nss}% +} +\def\whileend{% + \endstr@kt\tempy@nss=\y@nss\advance\tempy@nss by-\ydepth@nss + \y@nss=\ydepth@nss + \put(\x@nss,\y@nss){\framebox(\xsize@nss,\tempy@nss){}}% +} \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} @@ -540,11 +515,10 @@ \put(\x@nss,\y@nss){\makebox(\xsize@nss,\tempy@nss) {\box\TextBox@nss}}} \def\case{\let\next=\@case\getoption} -\def\@case#1#2#3#4% -{ - \tempxx@nss=\number#2 - \ifanygradient% - %{% +\def\@case#1#2#3#4{% + \tempxx@nss=\number#2% + \ifanygradient% + %{% \ifnum\number\param@nss000>0 \tempyy@nss=\number\param@nss000% \ifodd\number#1 @@ -647,15 +621,13 @@ {% \makebox(\tempx@nss,\tempy@nss)[lb]{\raise3pt\hbox{~#4}}% }% - \ydepth@nss=1000000 - \str@kt{\x@nss}{\y@nss}{\tempx@nss} + \ydepth@nss=1000000% + \str@kt{\x@nss}{\y@nss}{\tempx@nss}% } -\def\switch% -{% +\def\switch{% \@ifnextchar [{\@switch}{\@switch[l]}% } -\def\@switch[#1]#2% -{ +\def\@switch[#1]#2{% \global\gy@nss=\y@nss\endgroup \tempyy@nss=\gy@nss \ifnum\tempyy@nss<\ydepth@nss @@ -667,45 +639,99 @@ {\makebox(\tempx@nss,\tempy@nss)[#1b]{\raise3pt\hbox{~#2~}}} \str@kt{\x@nss}{\y@nss}{\tempx@nss} } -\def\caseend% -{ - \global\gy@nss=\y@nss\endgroup - \tempyy@nss=\gy@nss - \ifnum\tempyy@nss<\ydepth@nss - \ydepth@nss=\tempyy@nss - \fi - \x@nss=\xx@nss - \y@nss=\ydepth@nss - \tempyy@nss=\yy@nss - \advance\tempyy@nss by -\ydepth@nss - \put(\x@nss,\y@nss){\framebox(\xsize@nss,\tempyy@nss){}} - \tempxx@nss=\x@nss - \loop - \put(\tempxx@nss,\y@nss){\line(0,1){\tempyy@nss}} - \advance\tempyy@nss by -\condindent@nss - \advance\tempxx@nss by \tempx@nss - \xx@nss=\tempxx@nss - \advance\xx@nss by -\x@nss - \advance\xx@nss by 100 - \ifnum \xx@nss<\xsize@nss - \repeat +\def\caseend{% + \global\gy@nss=\y@nss\endgroup + \tempyy@nss=\gy@nss + \ifnum\tempyy@nss<\ydepth@nss + \ydepth@nss=\tempyy@nss + \fi + \x@nss=\xx@nss + \y@nss=\ydepth@nss + \tempyy@nss=\yy@nss + \advance\tempyy@nss by -\ydepth@nss + \put(\x@nss,\y@nss){\framebox(\xsize@nss,\tempyy@nss){}} + \tempxx@nss=\x@nss + \loop + \advance\tempyy@nss by -\condindent@nss + \advance\tempxx@nss by \tempx@nss + \put(\tempxx@nss,\y@nss){\line(0,1){\tempyy@nss}} + \xx@nss=\tempxx@nss + \advance\xx@nss by -\x@nss + \advance\xx@nss by \tempx@nss + \advance\xx@nss by 100 + \ifnum \xx@nss<\xsize@nss + \repeat +} +\def\inparallel{\let\next=\@inparallel\getoption} +\def\@inparallel#1#2{% +\tempyy@nss=\number\param@nss000% +\tempxx@nss=\xsize@nss +\advance\tempxx@nss by 1500% prevent rounding errors +\divide\tempxx@nss by 3000% +\yy@nss=\y@nss\advance\yy@nss by -2000% +\multiput(\x@nss,\yy@nss)(3000, 0){\tempxx@nss}{\line(1,0){1500}}% +\advance\yy@nss by -2000% +\multiput(\x@nss,\yy@nss)(3000, 0){\tempxx@nss}{\line(1,0){1500}}% +\xx@nss=\x@nss% +\advance\xx@nss by \xsize@nss% +\divide\xsize@nss by #1% +\tempx@nss=\xsize@nss\divide\tempx@nss by 6% +\begingroup +\y@nss=\yy@nss% +\set@nss{#2}{\tempx@nss}% +\block@nss{\tempyy@nss}{0}% +\tempyy@nss=\TextBoxHt@nss% +} +\def\inparallelend{% + \global\tempy@nss=\y@nss% + \global\tempyy@nss=\tempyy@nss% + \endgroup +\begingroup% +\tempx@nss=\xsize@nss% +\divide\tempx@nss by 2% +\advance\xx@nss by -\tempx@nss% +\tempx@nss=\x@nss% +\loop% +\advance\tempx@nss by \xsize@nss% +\put(\tempx@nss,\tempy@nss){\line(0,1){\tempyy@nss}}% +\tempxx@nss=\tempx@nss% +\advance\tempxx@nss by \xsize@nss% +\ifnum \tempxx@nss<\xx@nss% +\repeat +\endgroup +\multiput(\x@nss,\tempy@nss)(3000, 0){\tempxx@nss}{\line(1,0){1500}}% +\advance\tempy@nss by -2000% +\multiput(\x@nss,\tempy@nss)(3000, 0){\tempxx@nss}{\line(1,0){1500}}% +\advance\tempy@nss by -2000% +\advance\tempyy@nss by 8000% +\advance\xx@nss by -\x@nss% +\put(\x@nss,\tempy@nss){\framebox(\xx@nss,\tempyy@nss){}}% +\xsize@nss=\xx@nss% +\y@nss=\tempy@nss% +} +\def\task{\let\next=\@task\getoption} +\def\@task#1{% + \advance\x@nss by \xsize@nss% + \y@nss=\yy@nss% + \set@nss{#1}{\tempx@nss}% + \ifnum\number\param@nss000>\tempyy@nss% + \tempyy@nss=\number\param@nss000% + \fi% + \block@nss{\tempyy@nss}{0}% } \newbox\CenterBox@nss% -\def\centernss% -{% +\def\centernss{% \begin{trivlist}% \item[] \strut% \setbox\CenterBox@nss=\hbox% \bgroup% } -\def\endcenternss% -{% +\def\endcenternss{% \egroup% \strut\hfill\box\CenterBox@nss\hfill\strut% \end{trivlist}% } -\def\CenterNssFile#1% -{% +\def\CenterNssFile#1{% \begin{trivlist}% \item[] \setbox\CenterBox@nss=\hbox{\input{#1.nss}}% \strut\hfill\box\CenterBox@nss\hfill\strut% @@ -714,19 +740,16 @@ \let\centernssfile=\CenterNssFile \newcommand\assert{\let\next=\assert@nss\getoption}% \newcommand\assert@nss[1]{}% -\ifthenelse{\boolean{verification}} -{ +\ifthenelse{\boolean{verification}}{% \countdef\xsizeo@nss=232% \countdef\ydeptho@nss=233% - \renewcommand{\assert@nss}[1]% - {% + \renewcommand{\assert@nss}[1]{% \tempx@nss=\xsize@nss\divide\tempx@nss by 6% \set@nss{#1}{\tempx@nss}\tempy@nss=\number\param@nss000% \assertblock@nss{\tempy@nss}{1}% } %% - \newcommand{\assertblock@nss}[2]% - {% + \newcommand{\assertblock@nss}[2]{% \tempy@nss=#1\TextBoxHt@nss=\ht\TextBox@nss% \advance\TextBoxHt@nss by\dp\TextBox@nss% \advance\TextBoxHt@nss by 2mm% diff --git a/Master/texmf-dist/tex/latex/struktex/struktxf.sty b/Master/texmf-dist/tex/latex/struktex/struktxf.sty index 87f796e70fb..492e955878d 100644 --- a/Master/texmf-dist/tex/latex/struktex/struktxf.sty +++ b/Master/texmf-dist/tex/latex/struktex/struktxf.sty @@ -6,7 +6,7 @@ %% %% struktex.dtx (with options: `struktxf') %% -%% Copyright (C) 1989-2006 by Jobst Hoffmann. All rights reserved. +%% Copyright (C) 1989-2010 by Jobst Hoffmann. All rights reserved. %% %% IMPORTANT COPYRIGHT NOTICE: %% @@ -19,10 +19,11 @@ %% to %% j.hoffmann@fh-aachen.de \NeedsTeXFormat{LaTeX2e}[1999/12/01] -\def\filedate{2006/08/20} -\def\fileversion{v8.3b} -\ProvidesPackage{struktxf} - [\filedate\space\fileversion\space Fonts for Nassi Shneidermann Charts (Jobst Hoffmann)] +{% + \def\@svn@ $#1Date: #2-#3-#4 #5$$#6Revision: #7$ {% + \ProvidesPackage{struktxf}[#2/#3/#4 v#7 Fonts for Nassi Shneiderman Charts (Jobst Hoffmann)]} + \@svn@ $Date: 2010-06-25 13:00:22 +0200 (Fr, 25 Jun 2010) $$Revision: 101 $ % +} %% \@ifundefined{nat}{}{\endinput} \DeclareSymbolFont{italics}{\encodingdefault}{\rmdefault}{m}{it}% diff --git a/Master/texmf-dist/tex/latex/struktex/struktxp.sty b/Master/texmf-dist/tex/latex/struktex/struktxp.sty index ea5a703c949..8be0b86de27 100644 --- a/Master/texmf-dist/tex/latex/struktex/struktxp.sty +++ b/Master/texmf-dist/tex/latex/struktex/struktxp.sty @@ -6,7 +6,7 @@ %% %% struktex.dtx (with options: `struktxp') %% -%% Copyright (C) 1989-2006 by Jobst Hoffmann. All rights reserved. +%% Copyright (C) 1989-2010 by Jobst Hoffmann. All rights reserved. %% %% IMPORTANT COPYRIGHT NOTICE: %% @@ -19,10 +19,11 @@ %% to %% j.hoffmann@fh-aachen.de \NeedsTeXFormat{LaTeX2e}[1999/12/01] -\def\filedate{2006/08/20} -\def\fileversion{v8.3b} -\ProvidesPackage{struktxp} - [\filedate\space\fileversion\space Keywords for Nassi Shneidermann Charts (Jobst Hoffmann)] +{% + \def\@svn@ $#1Date: #2-#3-#4 #5$$#6Revision: #7$ {% + \ProvidesPackage{struktxp}[#2/#3/#4 v#7 Keywords for Nassi Shneiderman Charts (Jobst Hoffmann)]} + \@svn@ $Date: 2010-06-25 13:00:22 +0200 (Fr, 25 Jun 2010) $$Revision: 101 $ % +} %% \@ifundefined{pVariable}{}{\endinput} \newcommand{\pExpFont@nss}{\small\sffamily} @@ -117,21 +118,18 @@ }% \yyI#1,!,% } -\def\pComment% -{% +\def\pComment{% \bgroup% \pCommentFont@nss% \let\next=% } -{ +{% \catcode`\#=6% - \gdef\pUseKeyFont@nss#1% - {% + \gdef\pUseKeyFont@nss#1{% \ifmmode\else\let\mbox=\relax\fi% \mbox{\pKeyFont@nss{#1}}\egroup% } - \gdef\pUseExpFont@nss#1% - {% + \gdef\pUseExpFont@nss#1{% \ifmmode\else\let\mbox=\relax\fi% \mbox{\pExpFont@nss{#1}}\egroup% } |