diff options
author | Karl Berry <karl@freefriends.org> | 2017-06-25 21:51:59 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-06-25 21:51:59 +0000 |
commit | 08ac04da4c2782bf535e914c4cbb56795854b3b1 (patch) | |
tree | 60e697e6e73d897291945e58c386f36bb4c33a36 /Master/texmf-dist/source/latex | |
parent | 0baef83f46e61ff1d06c181a1bd8e0df785ff73e (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')
-rw-r--r-- | Master/texmf-dist/source/latex/struktex/struktex.dtx | 635 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/struktex/struktex.ins | 19 |
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}} |