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