diff options
author | Karl Berry <karl@freefriends.org> | 2006-08-19 23:37:56 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-08-19 23:37:56 +0000 |
commit | affc79c45bfab740028ac1e6b8480c5465a42b01 (patch) | |
tree | ab54d74bdf618c0775f9fc6fec3c40a0148aecd2 /Master/texmf-dist/source/latex/struktex | |
parent | 0ea7446c8635d5d43c7e3b08d8fbb673ca926534 (diff) |
struktex update (19aug06)
git-svn-id: svn://tug.org/texlive/trunk@1989 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/struktex')
-rw-r--r-- | Master/texmf-dist/source/latex/struktex/struktex.dtx | 742 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/struktex/struktex.ins | 16 |
2 files changed, 651 insertions, 107 deletions
diff --git a/Master/texmf-dist/source/latex/struktex/struktex.dtx b/Master/texmf-dist/source/latex/struktex/struktex.dtx index bd7caadd25d..95c9352aed8 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 - 2005 Jobst Hoffmann, FH Aachen, Abt. J"ulich +% Copyright (C) 1995 - 2006 Jobst Hoffmann, FH Aachen, Abt. J"ulich % <j.hoffmann _at_ fh-aachen.de> % ------------------------------------------------------------------------------------------- % @@ -18,8 +18,8 @@ % % \iffalse %<struktex|struktxf|struktxp|strukdoc>\NeedsTeXFormat{LaTeX2e}[1999/12/01] -%<struktex|struktxf|struktxp|strukdoc>\def\filedate{2005/05/17} -%<struktex|struktxf|struktxp|strukdoc>\def\fileversion{v8.0f} +%<struktex|struktxf|struktxp|strukdoc>\def\filedate{2006/01/20} +%<struktex|struktxf|struktxp|strukdoc>\def\fileversion{v8.2a} %<struktex>\ProvidesPackage{struktex} %<struktex> [\filedate\space\fileversion\space Nassi Shneidermann Charts (Jobst Hoffmann)] %<struktxf>\ProvidesPackage{struktxf} @@ -27,14 +27,31 @@ %<struktxp>\ProvidesPackage{struktxp} %<struktxp> [\filedate\space\fileversion\space Keywords for Nassi Shneidermann Charts (Jobst Hoffmann)] % \fi -% \CheckSum{2030} -% \def\docdate {2005/05/17} ^^A not style'able!! +% \CheckSum{2071} +% \def\docdate {2006/01/20} ^^A not style'able!! % % \iffalse meta-comment -% struktex.dtx $Revision: 7.8 $ -% $Date: 2005/06/13 13:22:25 $ +% struktex.dtx $Revision: 7.11 $ +% $Date: 2006/08/16 20:30:43 $ % $RCSfile: struktex.dtx,v $ % $Log: struktex.dtx,v $ +% Revision 7.11 2006/08/16 20:30:43 ax006ho +% - AUCTeX Unterstuetzung verbessert +% - kleinere Textkorrekturen +% - verbesserte Dokumentation der Optionen +% - Dokumentation des Makros `assert +% - Korrektur des integrierten Makefiles +% - verbesserte Dokumentation von struktex.el +% - neue Option "nofiller" +% - `ifmmode durch `ensuremath ersetzt +% - Korrektur eines Fehlers: schraege Linien enden nun korrekt +% +% Revision 7.10 2006/01/17 12:01:04 ax006ho +% - AUCTeX Unterstuetzung eingefuehrt +% +% Revision 7.9 2005/09/01 07:03:04 ax006ho +% - corrected the make target (clean-all -> realclean) in the Makefile header +% % Revision 7.8 2005/06/13 13:22:25 ax006ho % - Dokumentation von `case verbessert % - Code bereinigt @@ -193,6 +210,10 @@ % % \def\StrukTeXSty{\textsf{struktex.sty}} % +% \changes{v8.3}{06/08/18}{Weitere Optionen "`draft"' und "`final"' eingef"uhrt} +% \changes{v8.2a}{06/01/17}{struktex.el korrigiert und erweitert} +% \changes{v8.1a}{05/09/01}{Erste (fehlerhafte) Version einer struktex.el Stil +% Datei zur Unterst"utzung von AUC\TeX hinzugef"ugt} % \changes{v8.0f}{05/06/11}{Dokumentation von `case verbessert} % \changes{v8.0d}{04/12/29}{`switch zeigt bei geeigneten Beispielen das % rechtsb"undige Setzen von Bedingungen} @@ -510,12 +531,12 @@ % \item \ifnum\language=\languageNGerman % Die Neuimplementation der |declaration|-Umgebung mittels der % |list|-Umgebung gem"a"s -% \cite[Abs. 3.3.4]{GoossensMittelbachSamarin:Companion2} (abgeschlossen mit +% \cite[Abs. 3.3.4]{GoossensMittelbachSamarin:Companion} (abgeschlossen mit % der Version 4.5a). % \else % The reimplementation of the |declaration|-environment through the % |list|-environment by -% \cite[Abs. 3.3.4]{GoossensMittelbachSamarin:Companion2} (done in version 4.5a). +% \cite[Abs. 3.3.4]{GoossensMittelbachSamarin:Companion} (done in version 4.5a). % \fi % % \item \ifnum\language=\languageNGerman @@ -606,12 +627,13 @@ % \fi % % -% -% \section{\ifnum\language=\languageNGerman Hinweise zur Pflege und Installation sowie die Treiberdatei zur -% Erzeugung dieser Dokumentation -% \else Hints for maintenance and installation as well as driver file creating -% of this documentation -% \fi} +% \section{\ifnum\language=\languageNGerman% +% Hinweise zur Pflege und Installation sowie die Treiberdatei zur +% Erzeugung dieser Dokumentation% +% \else% +% Hints for maintenance and installation as well as driver file creating +% of this documentation% +% \fi} % % \ifnum\language=\languageNGerman % \changes{v4.5e}{97/04/26}{Neue .sty-Datei strukdoc.sty eingef"uhrt} @@ -793,17 +815,20 @@ %<*driver> % \fi % \begin{macrocode} -\documentclass[a4paper, english, ngerman]{ltxdoc} +\documentclass[a4paper, english, ngerman]{ltxdoc} %swap english and ngerman + % for producing an english version of this text \usepackage{babel} % for switching the documentation language \usepackage{strukdoc} % the style-file for formatting this % documentation -\usepackage[pict2e]% <-------------- to produce finer results - {struktex} % visible under xdvi, alternative +\usepackage[pict2e, % <--------------- to produce finer results + % visible under xdvi, alternatives are % curves or emlines2 (visible only under % ghostscript), leave out if not % available - + verification] + {struktex} +\usepackage{url} \GetFileInfo{struktex.sty} \EnableCrossrefs @@ -843,39 +868,77 @@ % \ifnum\language=\languageNGerman % Der \StrukTeXSty\ wird wie jede andere |.sty|-Datei als \foreign{package} in % ein \LaTeX-Dokument eingebunden: +% \begin{quote} +% |\usepackage[|\meta{Optionen}|]{struktex}| +% \end{quote} % \else % The \StrukTeXSty\ will be included in a LaTeX-document like every other % |.sty|-file by \foreign{package}: -% \fi % \begin{quote} -% |\usepackage{struktex}| +% |\usepackage[|\meta{options}|{struktex}| % \end{quote} +% \fi % % \ifnum\language=\languageNGerman -% Das Laden des Paketes kann unter Angabe einer zus"atzlichen Option -% geschehen, um beliebige Steigungen in Struktogrammen zeichnen zu k"onnen. -% Diese Option kann |emlines|, |curves|, oder |pict2e| lauten; ersteres ist -% sinnvoll, wenn mit dem em\TeX-Paket von Eberhard Mattes gearbeitet wird (DOS -% oder OS/2), ansonsten wird der Einsatz von |pict2e| empfohlen. Der -% Einsatz des Paketes \textsf{curves.sty} (Ian Maclaine-cross), das das -% Zeichnen von Geraden beliebiger Steigungen durch das Setzen vieler -% einzelner Punkte erm"oglicht, ist durch das Erscheinen des Paketes -% \textsf{pict2e.sty} (Hubert G"a"slein und Rolf Niepraschk) im Prinzip -% obsolet, aus Kompatibilit"atsgr"unden wird er weiter unterst"utzt. Durch die -% Angabe einer der genannten Option wird das jeweilige Paket -% (\textsf{emlines2.sty}, \textsf{curves.sty} bzw. -% \textsf{pict2e.sty}) automatisch geladen. -% +% Die folgenden Optionen stehen zur Verf"ugung: +% \begin{enumerate} +% \item |emlines|, |curves| oder |pict2e|: +% +% Durch Angabe einer der drei Optionen ist es m"oglich, beliebige +% Steigungen in Struktogrammen zu zeichnen. Erstere Option ist +% sinnvoll, wenn mit dem em\TeX-Paket von Eberhard Mattes gearbeitet +% wird (DOS oder OS/2), ansonsten wird der Einsatz von |pict2e| +% empfohlen. Der Einsatz des Paketes \textsf{curves.sty} (Ian +% Maclaine-cross), das das Zeichnen von Geraden beliebiger Steigungen +% durch das Setzen vieler einzelner Punkte erm"oglicht, ist durch das +% Erscheinen des Paketes \textsf{pict2e.sty} (Hubert G"a"slein und Rolf +% Niepraschk) im Prinzip obsolet, aus Kompatibilit"atsgr"unden wird er +% weiter unterst"utzt. Durch die Angabe einer der genannten Option wird +% das jeweilige Paket (\textsf{emlines2.sty}, \textsf{curves.sty} bzw. +% \textsf{pict2e.sty}) automatisch geladen. +% \item |verification|: +% +% Nur wenn diese Option gesetzt ist, steht \cs{assert} als Kommando zur +% Verf"ugung. +% \item |nofiller|: +% +% Setzen dieser Option l"asst jeden Freiraum leer. Ansonsten wird +% Freiraum in Alternativen als \(\emptyset\) markiert. +% \item |draft|, |final|: +% +% Diese Optionen dienen in "ublicher Weise dazu, den Entwurf +% beziehungsweise die endg"ultige Fassung zu kennzeichnen (vgl. +% |\sProofOn|/|\sProofOff|). Im Entwurfsmodus werden die vier Eckpunkte +% eines Struktogramms in der vom Benutzer vorgegebenen Gr"o"se +% ausgegeben, diese Markierung f"allt in der endg"ultigen Fassung weg. +% \end{enumerate} % Nach dem Laden der |.sty|-Datei stehen verschiedene Kommandos und Umgebungen -% zur Verf"ugung, die das Zeichnen der Struktogramme erm"oglichen. -% \else -% Loading the package can be modified by giving the option |curves| or -% |emlines|, resp. If this is done, any ascent can be drawn in the -% structured box chart. You should use |emlines|, if you are working -% with the em\TeX-package for DOS or OS/2 by E. Mattes, else you should use -% |curves|. In both cases the required packages (\textsf{emline2.sty} or -% \textsf{curves.sty} resp.) will be loaded automatically. -% +% zur Verf"ugung, die das Zeichnen der Struktogramme erm"oglichen.% +% \else% +% The following options are available: +% \begin{enumerate} +% \item |emlines|, |curves|, or |pict2e|: +% +% If you set one of these options, any ascent can be drawn in the +% structured box chart. You should use |emlines|, if you are working +% with the em\TeX-package for DOS or OS/2 by E. Mattes, else you should +% use |pict2e|; |curves| is included just for compatibility. In all +% cases the required packages (\textsf{emline2.sty}, +% \textsf{curves.sty}, or \textsf{pict2e} resp.) will be loaded +% automatically. +% \item |verification|: +% +% Only if this option is set, the command \cs{assert} is available. +% \item |nofiller|: +% +% Setting this option prohibits setting of \(\emptyset\) in alternatives. +% \item |draft|, |final|: +% +% These options serve as usual to diffentiate between the draft and the +% final version of a structured box chart (see |\sProofOn|). While in +% the draft mode the user given size of the chart is denoted by the +% four bullets, the final version leaves out these markers. +% \end{enumerate} % After loading the |.sty|-file there are different commands and environments, % which enable the draw of structured box charts. % \fi @@ -1297,20 +1360,21 @@ % \begin{quote} % \cs{assign}\oarg{H"ohe}\marg{Inhalt}, % \end{quote} -% wobei die eckigen Klammern wie "ublich ein optionales Argument bezeichnen. -% Die Breite -% und die H"ohe des Kastens werden den Erfordernissen gem"a"s automatisch -% angepasst, man kann aber mittels des optionalen Argumentes die H"ohe des -% Kastens vorgeben. -% \else -% The main element of a structured box chart is a box, in which an operation is -% described. Such a box will be assigned by \cs{assign}. The syntax is the following: +% wobei die eckigen Klammern wie "ublich ein optionales Argument +% bezeichnen. Die Breite und die H"ohe des Kastens werden den +% Erfordernissen gem"a"s automatisch angepasst, man kann aber mittels des +% optionalen Argumentes die H"ohe des Kastens vorgeben.% +% \else% +% The main element of a structured box chart is a box, in which an +% operation is described. Such a box will be assigned by \cs{assign}. The +% syntax is the following: % \begin{quote} % \cs{assign}\oarg{height}\marg{content}, % \end{quote} -% where the square brackets name an optional element as usual. The width and the -% height of the box will be adjusted automatically according to demands. But -% one can predefine the height of the box by the optional argument. +% where the square brackets name an optional element as usual. The width +% and the height of the box will be adjusted automatically according to +% demands. But one can predefine the height of the box by the optional +% argument.% % \fi % % \ifnum\language=\languageNGerman @@ -1469,7 +1533,7 @@ % \end{quote} % erzeugt. Dabei ist zu beachten, dass \meta{Variablenname} keine % schlie"sende eckige Klammer "`]"' beinhalten darf, da dieser Makro -% mittels des \cs{item}-Makros definiert worden ist. Eckige Klammer sind in +% mittels des \cs{item}-Makros definiert worden ist. Eckige Klammern sind in % diesem Fall als \cs{lbracket} und \cs{rbracket} einzugeben. % \else % Within the |declaration| environment the descriptions of the variables can be @@ -2638,6 +2702,57 @@ % \cs{closestrukt}. % \end{quote} % +% +% \DescribeMacro{\assert}% +% \ifnum\language=\languageNGerman% +% Der Makro \cs{assert} wurde eingef"uhrt, um die Verifikation von +% Algorithmen zu unterst"utzen, er ist aber nur aktiv, wenn die Stil-Option +% |verification| gesetzt wurde. Er dient dazu, an ausgew"ahlten Stellen +% Zusicherungen "uber den Zustand von Variablen zu markieren, die Syntax +% entspricht dem \cs{assign}: +% \begin{quote} +% \cs{assert}\oarg{H"ohe}\marg{Zusicherung}, +% \end{quote} +% Sein Einsatz ergibt sich aus dem folgenden: +% \begin{verbatimwrite}{struktex.tmp} +% \begin{struktogramm}(70,20)[Zusicherungen in Struktogrammen] +% \assign{\(a\gets a^2\)} +% \assert{\(a\ge0\)} +% \end{struktogramm} +% \end{verbatimwrite} +% \begin{quote} +% \verbatiminput{struktex.tmp} +% \end{quote} +% Das dazugeh"orige Struktogramm sieht folgenderma"sen aus: +% \begin{quote} +% \input{struktex.tmp} +% \end{quote}% +% \else% +% The macro \cs{assert} was introduced to support the verification of +% algorithms. It is active only if the option |verification| is set. It +% serves the purpose to assert the value of a variable at one point of the +% algorithm. The syntax corresponds to the syntax of \cs{assign}: +% \begin{quote} +% \cs{assert}\oarg{height}\marg{assertion}, +% \end{quote} +% It's usage can be seen from the following: +% \begin{verbatimwrite}{struktex.tmp} +% \begin{struktogramm}(70,20)[Assertions in structured box charts] +% \assign{\(a\gets a^2\)} +% \assert{\(a\ge0\)} +% \end{struktogramm} +% \sProofOff +% \end{verbatimwrite} +% \begin{quote} +% \verbatiminput{struktex.tmp} +% \end{quote} +% The resulting structured box chart looks like +% \begin{quote} +% \input{struktex.tmp} +% \end{quote}% +% \fi +% +% % \section{\ifnum\language=\languageNGerman Beipieldatei zum Einbinden in die Dokumentation\label{Beispiel} % \else Example File for tieing in the Documentation\label{Example} % \fi} @@ -2694,12 +2809,11 @@ %<*example2> % \fi % \begin{macrocode} -\documentclass{article} +\documentclass[draft]{article} \usepackage{struktex} \begin{document} -%\sProofOn{} \begin{struktogramm}(90,137) \assign% { @@ -3070,6 +3184,106 @@ Without \textit{italic correction}: %</example4> % \fi % +% +% \subsection[\ifnum\language=\languageNGerman Beispieldatei Nr. 4\else Example +% File No 4\fi]{\ifnum\language=\languageNGerman +% Beispieldatei zum Austesten der Makros des \textsf{struktxp.sty} +% \else +% Example File for Testing the Macros of \textsf{struktxp.sty} +% \fi} +% +% \ifnum\language=\languageNGerman +% Die folgenden Zeilen werden in einem anderen Zusammenhang benutzt, +% Java-Methoden zu dokumentieren. An dieser Stelle wird ein eigener Weg +% gew"ahlt, da das sonst "ubliche Arbeiten mit |lstinline| zu Fehlern f"uhrt. +% \else +% \fi +% \iffalse +%<*example5> +% \fi +% \begin{macrocode} +\documentclass{article} + +\usepackage{struktxp,struktxf} + +\makeatletter +\newlength{\fdesc@len} +\newcommand{\fdesc@label}[1]% +{% + \settowidth{\fdesc@len}{{\fdesc@font #1}}% + \advance\hsize by -2em + \ifdim\fdesc@len>\hsize% % term > labelwidth + \parbox[b]{\hsize}% + {% + \fdesc@font #1% + }\\% + \else% % term < labelwidth + \ifdim\fdesc@len>\labelwidth% % term > labelwidth + \parbox[b]{\labelwidth}% + {% + \makebox[0pt][l]{{\fdesc@font #1}}\\% + }% + \else% % term < labelwidth + {\fdesc@font #1}% + \fi\fi% + \hfil\relax% +} +\newenvironment{fdescription}[1][\tt]% +{% + \def\fdesc@font{#1} + \begin{quote}% + \begin{list}{}% + {% + \renewcommand{\makelabel}{\fdesc@label}% + \setlength{\labelwidth}{120pt}% + \setlength{\leftmargin}{\labelwidth}% + \addtolength{\leftmargin}{\labelsep}% + }% +}% +{% + \end{list}% + \end{quote}% +} +\makeatother + +\pLanguage{Java} + +\begin{document} + +\begin{fdescription} + \item[\index{Methoden>drawImage(Image img, + int dx1, + int dy1, + int dx2, + int dy2, + int sx1, + int sy1, + int sx2, + int sy2, + ImageObserver observer)=% + \Expr{\pKey{public} \pKey{abstract} \pKey{boolean} drawImage(Image img, + \pKey{int} dx1, + \pKey{int} dy1, + \pKey{int} dx2, + \pKey{int} dy2, + \pKey{int} sx1, + \pKey{int} sy1, + \pKey{int} sx2, + \pKey{int} sy2, + ImageObserver observer)}}% + \pExp{public abstract boolean drawImage(Image img, int dx1, int + dy1, int dx1, int dy2, int sx1, int sy1, int sx2, int sy2, + ImageObserver observer)}]% + \ldots +\end{fdescription} +\end{document} +%% +%% End of file `struktex-test-5.tex'. +% \end{macrocode} +% \iffalse +%</example5> +% \fi +% % \section{\ifnum\language=\languageNGerman % Makros zur Erstellung der Dokumentation des \StrukTeXSty % \else @@ -3362,6 +3576,7 @@ Without \textit{italic correction}: % of the \StrukTeXSty % \fi} % \label{sec:Makefile} +% \changes{v8.2a}{06/01/19}{HOMETEXMF $\rightarrow$ TEXMFHOME} % \changes{v8.0b}{04/07/14}{.pdf-Ausgabe eingef"uhrt} % % \ifnum\language=\languageNGerman @@ -3418,7 +3633,7 @@ Without \textit{italic correction}: # user tree: #INSTALLTEXMF=$(HOME)/texmf # Try to use user's tree known by kpsewhich: -INSTALLTEXMF=`kpsewhich --expand-var '$$HOMETEXMF'` +INSTALLTEXMF=`kpsewhich --expand-var '$$TEXMFHOME'` # Try to use the local tree known by kpsewhich: #INSTALLTEXMF=`kpsewhich --expand-var '$$TEXMFLOCAL'` # But you may set INSTALLTEXMF to every directory you want. @@ -3630,6 +3845,220 @@ sed -e "`echo \"s/^ /@/g\" | tr '@' '\011'`" struktex.mk > Makefile % \fi % % +% \changes{v8.3}{06/08/18}{struktex.el erweitert, so dass die Parameter +% alle Kommandos automatisch abgefragt werden.} +% \section{\ifnum\language=\languageNGerman Stil Datei zur einfachen +% Eingabe von Struktogrammen beim Arbeiten mit dem (X)emacs und AUC\TeX\label{AUCTeX} +% \else Style File for Easier Input while working with (X)emacs +% and AUC\TeX\label{AUCTeX} +% \fi} +% +% \ifnum\language=\languageNGerman% +% Der (X)emacs und das Paket AUC\TeX{} +% (\url{http://www.gnu.org/software/auctex/}) bilden ein m"achtiges Werkzeug +% beim Erstellen von \TeX/\LaTeX-Dateien. Wenn es eine passende Stildatei +% f"ur ein \LaTeX-Paket wie das hier vorliegende \StrukTeX{} gibt, +% wird die Eingabe von Quelltext durch automatisiertes Vervollst"andigen +% und viele andere Hilfsmittel sehr erleichtert. Im folgenden wird eine +% derartige Stildatei bereitgestellt; sie muss nach ihrer Erzeugung noch an +% eine entsprechende Stelle kopiert werden. +% +% Diese Datei ist zum jetzigen Zeitpunkt noch in der Entwicklungsphase, +% d.\,h. man kann mit ihr arbeiten, aber es fehlen noch ein paar Dinge wie +% das \textit{font locking}, die Anzahl der automatisch eingefügten \cs{switch} +% Kommandos sollte nicht fest gleich eins sein, sondern von der Anzahl der +% eingegebenen Fälle abhängig sein. +% \else% +% The (X)emacs and the package AUC\TeX{} +% (\url{http://www.gnu.org/software/auctex/}) form a powerful tool for +% creating and editing of \TeX/\LaTeX{} files. If there is a suitable +% AUCTeX style file for a \LaTeX{} package like the hereby provided +% \StrukTeX{} package, then there is support for many common operations +% like creating environments and so on. The following part provides such a +% style file; it must be copied to a place, where (X)emacs can find it +% after its creation.% +% +% This file is still in a development phase, i.\,e. one can work with it, +% but there is a couple of missing things as for example font locking or +% the automatic insertion of \cs{switch} commands according to the user's +% input. +% \fi +% \iffalse +%<*auctex> +% \fi +% \begin{macrocode} +;;; struktex.el --- AUCTeX style for `struktex.sty' + +;; Copyright (C) 2006 Free Software Foundation, Inc. + +;; Author: J. Hoffmann <j.hoffmann@fh-aachen.de> +;; Maintainer: j.hoffmann@fh-aachen.de +;; Created: 2006/01/17 +;; 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. + (LaTeX-add-environments + "centernss" + '("struktogramm" LaTeX-env-struktogramm) + '("declaration" LaTeX-env-declaration)) + (TeX-add-symbols + '("PositionNSS" 1) + '("assert" [ "Height" ] "Assertion") + '("assign" [ "Height" ] "Statement") + "StrukTeX" + '("case" TeX-mac-case) + "switch" "condition" + "caseend" + '("declarationtitle" "Title") + '("description" "Name" "Meaning") + "emptyset" + '("exit" [ "Height" ] "What" ) + '("forever" TeX-mac-forever) + "foreverend" + '("ifthenelse" TeX-mac-ifthenelse) + "ifend" + "change" + "sProofOn" + "sProofOff" + '("until" TeX-mac-until) + "untilend" + '("while" TeX-mac-while) + "whileend" + '("return" [ "Height" ] "Return value") + '("sub" [ "Height" ] "Task") + '("CenterNssFile" TeX-arg-file) + '("centernssfile" TeX-arg-file)) + (TeX-run-style-hooks + "pict2e" + "emlines2" + "curves" + "struktxp" + "struktxf" + "ifthen") + ;; Filling + ;; Fontification + )) + +(defun LaTeX-env-struktogramm (environment) + "Insert ENVIRONMENT with width, height specifications and optional title." + (let ((width (read-string "Width: ")) + (height (read-string "Height: ")) + (title (read-string "Title (optional): "))) + (LaTeX-insert-environment environment + (concat + (format "(%s,%s)" width height) + (if (not (zerop (length title))) + (format "[%s]" title)))))) + +(defun LaTeX-env-declaration (environment) + "Insert ENVIRONMENT with an optional title." + (let ((title (read-string "Title (optional): "))) + (LaTeX-insert-environment environment + (if (not (zerop (length title))) + (format "[%s]" title))))) + +(defun TeX-mac-case (macro) + "Insert \case with all arguments. +These are optional height and the required arguments slope, number of cases, +condition, and the text of the first case" + (let ((height (read-string "Height (optional): ")) + (slope (read-string "Slope: ")) + (number (read-string "Number of cases: ")) + (condition (read-string "Condition: ")) + (text (read-string "Text: "))) + (insert (concat (if (not (zerop (length height))) + (format "[%s]" height)) + (format "{%s}{%s}{%s}{%s}" + slope number condition text))) + (end-of-line) + (newline-and-indent) + (newline-and-indent) + (insert "\\switch{ }") + (end-of-line) + (newline-and-indent) + (newline-and-indent) + (insert "\\caseend"))) + +(defun TeX-mac-forever (macro) + "Insert \forever-block with all arguments. +This is only the optional height" + (let ((height (read-string "Height (optional): "))) + (insert (if (not (zerop (length height))) + (format "[%s]" height))) + (end-of-line) + (newline-and-indent) + (newline-and-indent) + (insert "\\foreverend"))) + +(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" + (let ((height (read-string "Height (optional): ")) + (lslope (read-string "Left slope: ")) + (rslope (read-string "Right slope: ")) + (condition (read-string "Condition: ")) + (conditionvl (read-string "Condition value left: ")) + (conditionvr (read-string "Condition value right: "))) + (insert (concat (if (not (zerop (length height))) + (format "[%s]" height)) + (format "{%s}{%s}{%s}{%s}{%s}" + lslope rslope condition conditionvl conditionvr))) + (end-of-line) + (newline-and-indent) + (newline-and-indent) + (insert "\\change") + (end-of-line) + (newline-and-indent) + (newline-and-indent) + (insert "\\ifend"))) + +(defun TeX-mac-until (macro) + "Insert \until with all arguments. +These are the optional height and the required argument condition" + (let ((height (read-string "Height (optional): ")) + (condition (read-string "Condition: "))) + (insert (concat (if (not (zerop (length height))) + (format "[%s]" height)) + (format "{%s}" condition))) + (end-of-line) + (newline-and-indent) + (newline-and-indent) + (insert "\\untilend"))) + +(defun TeX-mac-while (macro) + "Insert \while with all arguments. +These are the optional height and the required argument condition" + (let ((height (read-string "Height (optional): ")) + (condition (read-string "Condition: "))) + (insert (concat (if (not (zerop (length height))) + (format "[%s]" height)) + (format "{-%s-}" condition))) + (end-of-line) + (newline-and-indent) + (newline-and-indent) + (insert "\\whileend"))) + +(defvar LaTeX-struktex-package-options '("curves" "draft" "emlines" "final" + "pict2e" "anygradient" "verification" + "nofiller") + "Package options for the struktex package.") + +;;; struktex.el ends here. +% \end{macrocode} +% \iffalse +%</auctex> +% \fi +% +% % \StopEventually{ % \begin{thebibliography}{MDB01} % @@ -3811,9 +4240,61 @@ sed -e "`echo \"s/^ /@/g\" | tr '@' '\011'`" struktex.mk > Makefile } % \end{macrocode} % +% \changes{v8.2a}{06/01/17}{Option \texttt{nofiller} eingef"uhrt} % \ifnum\language=\languageNGerman -% Nun werden andere Pakete geladen und die Optionen verarbeitet +% Ab der Version 8.2a kennt \StrukTeX{} eine Option "`|nofiller|"', die +% die Darstellung von Leerraum beeinflusst: ohne diese Option wird in +% Alternativen ein \(\emptyset\)-Zeichen ausgegeben, wenn der Platz +% ausreichend ist. Dies f"uhrt zu einer uneinheitlichen Darstellung im +% Vergleich mit dem Leerraum, der von einem \cs{case}-Block erzeugt wird, +% da hier der Leerraum nicht in entsprechende Weise angezeigt wird -- dies +% w"are nur mit einer aufwendigen Listenverwaltung m"oglich. Angabe der +% Option f"uhrt dazu, dass das \(\emptyset\)-Zeichen einheitlich weggelassen +% wird. % \else +% From version 8.2a on \StrukTeX{} knows the option "`|nofiller|"', which +% makes the \(\emptyset\)-character vanishing in alternatives. +% \fi +% \begin{macrocode} +\newboolean{filler} +\setboolean{filler}{true} +\DeclareOption{nofiller}% +{% + \setboolean{filler}{false} +} +% \end{macrocode} +% +% \changes{v8.3}{06/08/17}{Optionen \texttt{draft} und \texttt{final} eingef"uhrt} +% \ifnum\language=\languageNGerman% +% Ab der Version 8.3 kennt \StrukTeX{} die Optionen "`|draft|"' und +% "`|final|"', die zwischen dem Entwurf und der endg"ultigen Version des +% Struktogramms umschalten. Entwurfsmodus ist |\sProofOn| gesetzt, f"ur die +% endg"ultige Version wird |\sProofOff| gesetzt.% +% \else% +% From version 8.3 on \StrukTeX{} knows the options "`|draft|"' and +% "`|final|"', which differentiate between the draft (|\sProofOn|) and the +% final (|\sProofOff|) version of the structured box chart makes the +% \(\emptyset\)-character vanishing in alternatives.% +% \fi +% \begin{macrocode} +\let\ifdraft@nss\iffalse +\let\iffinal@nss\iftrue +\DeclareOption{draft}% +{% + \let\ifdraft@nss\iftrue + \let\iffinal@nss\iffalse +} +\DeclareOption{final}% +{% + \let\ifdraft@nss\iffalse + \let\iffinal@nss\iftrue +} +% \end{macrocode} +% +% \ifnum\language=\languageNGerman% +% Nun werden andere Pakete geladen und die Optionen verarbeitet.% +% \else% +% Now load additional packages and process the options.% % \fi % \begin{macrocode} \ProcessOptions @@ -4574,6 +5055,7 @@ sed -e "`echo \"s/^ /@/g\" | tr '@' '\011'`" struktex.mk > Makefile % \subsection{\ifnum\language=\languageNGerman Die einzelnen Makros \else The single Macros \fi} % % \begin{macro}{\filler@nss} +% \changes{v8.2a}{06/01/17}{`ifmmode $\rightarrow$ `ensuremath} % \changes{v4.1a}{95/07/18}{umbenannt von `filler} % \changes{v4.1a}{95/07/17}{`emptyset wird als AMS-Schrift geladen} % \changes{v2.5}{93/09/09}{Leerraum von `% auf `emptyset umgestellt} @@ -4581,21 +5063,23 @@ sed -e "`echo \"s/^ /@/g\" | tr '@' '\011'`" struktex.mk > Makefile % Beim Setzen eines Struktogrammes entsteht teilweise Leerraum, % der mit |\filler@nss| aufgef"ullt wird: "`$\emptyset$"'. Eine % Alternative w"are "`$\mathchar"023B$"', was mit "`|\mathchar"023B|"' -% erzeugt wird. +% erzeugt wird. Der Leerraum wird allerdings nicht gef"ullt, wenn die Option +% |nofiller| gesetzt wird. Will man die globale Einstellung lokal umgehen, +% so kann man einfach die boolesche Variable |filler| auf |true| setzen: +% \cs{fillertrue}. % \else % While setting a structured box chart there arises partly empty space, that % will be filled up with |\filler@nss|: "'$\emptyset$"'. An alternative would be -% "'$\mathchar"023B$"', which is generated by "'|\mathchar"023B|"'. +% "'$\mathchar"023B$"', which is generated by +% "'|\mathchar"023B|"'. "'$\emptyset$"' will not be set, if the option +% |nofiller| is set. % \fi % \begin{macrocode} \DeclareMathSymbol\varnothing{\mathord}{AMSb}{"3F} \let\emptyset\varnothing \def\filler@nss% -{ - \ifmmode% - \emptyset% - \else $\emptyset$% - \fi% +{% + \iffiller\ensuremath{\emptyset}\fi% } % \end{macrocode} % \end{macro} @@ -4662,6 +5146,16 @@ sed -e "`echo \"s/^ /@/g\" | tr '@' '\011'`" struktex.mk > Makefile \let\ifthenelse=\ifthenelse@nss% \let\ifend=\ifend@nss% % \end{macrocode} +% \ifnum\language=\languageNGerman% +% Falls die Option |draft| gesetzt wurde, wird f"ur jedes Struktogramm +% grunds"atzlich auf den Entwurfsmodus umgeschaltet. +% \else% +% If the option |draft| is set we switch to the draft mode for every single +% structured box chart. +% \fi +% \begin{macrocode} + \ifdraft@nss\let\struktogramm@nss=\struktogramm@Proof\fi% +% \end{macrocode} % \ifnum\language=\languageNGerman % Um den optionalen Parameter zu behandeln, wird in Abh"angigkeit vom % n"achsten Zeichen ein internes Makro aufgerufen. @@ -5066,7 +5560,7 @@ sed -e "`echo \"s/^ /@/g\" | tr '@' '\011'`" struktex.mk > Makefile % \else % internal command according to % \fi -% \cite[Abs. 3.3.5]{GoossensMittelbachSamarin:Companion2} +% \cite[Abs. 3.3.5]{GoossensMittelbachSamarin:Companion} % \ifnum\language=\languageNGerman zur Definition % der Marke bei der Liste der Variablenbeschreibungen % \else @@ -5363,21 +5857,23 @@ sed -e "`echo \"s/^ /@/g\" | tr '@' '\011'`" struktex.mk > Makefile % \else % The 5 parameters are: % \fi -% \begin{enumerate} % \ifnum\language=\languageNGerman -% \item Die Steigung (negativ, invers) des linken Zweiges, -% \item die Steigung (positiv, invers) des rechten Zweiges, -% \item die Bedingung, die getestet wird, -% \item Fall des linken Zweiges ("ublicherweise "`ja"') und -% \item Fall des rechten Zweiges ("ublicherweise "`nein"'). +% \begin{enumerate} +% \item Die Steigung (negativ, invers) des linken Zweiges, +% \item die Steigung (positiv, invers) des rechten Zweiges, +% \item die Bedingung, die getestet wird, +% \item Fall des linken Zweiges ("ublicherweise "`ja"') und +% \item Fall des rechten Zweiges ("ublicherweise "`nein"'). +% \end{enumerate} % \else -% \item the gradient (negative, inverse) of the left branch, -% \item the gradient (positive, inverse) of the right branch, -% \item the condition, that is tested, -% \item case of the left branch (normally "`yes"') and -% \item case of the right branch (normally "`no"'). -% \fi +% \begin{enumerate} +% \item the gradient (negative, inverse) of the left branch, +% \item the gradient (positive, inverse) of the right branch, +% \item the condition, that is tested, +% \item case of the left branch (normally "`yes"') and +% \item case of the right branch (normally "`no"'). % \end{enumerate} +% \fi % \begin{macrocode} {% % \end{macrocode} @@ -5433,7 +5929,7 @@ sed -e "`echo \"s/^ /@/g\" | tr '@' '\011'`" struktex.mk > Makefile \else\ifpictIIe% % \end{macrocode} % \ifnum\language=\languageNGerman -% Die Steigungen d"urfen jetzt fast belibige Werte annehmen, Z"ahler und +% Die Steigungen d"urfen jetzt fast beliebige Werte annehmen, Z"ahler und % Nenner m"ussen jedoch im Intervall \([-1000, 1000]\) liegen, die % Skalierung mit dem Faktor 1000 muss daher wieder r"uckg"angig gemacht werden. % \else @@ -5758,6 +6254,8 @@ sed -e "`echo \"s/^ /@/g\" | tr '@' '\011'`" struktex.mk > Makefile % \begin{macro}{\case} % \begin{macro}{\caseend} % \begin{macro}{\switch} +% \changes{v8.2a}{05/01/17}{Fehlerkorrektur: schr"age Linie endet nun an +% der richtigen Stelle (pict2e)} % \changes{v8.0d}{04/12/29}{Fehlerkorrektur: senkrechte Trennlinien haben % nun die richtige L"ange} % \changes{v8.0a}{04/07/13}{Paket \textsf{pict2e.sty} wird unterst"utzt} @@ -5905,10 +6403,25 @@ sed -e "`echo \"s/^ /@/g\" | tr '@' '\011'`" struktex.mk > Makefile \curve(\x@nss, \y@nss, \xx@nss, \tempy@nss)% \else\ifpictIIe% \tempxxx@nss=\xx@nss +% \end{macrocode} +% \ifnum\language=\languageNGerman +% Die Argumente von \cs{line} f"ur die Steigung m"ussen im Intervall +% \([-1000, 1000]\) liegen, daher +% wird hier der Faktor 1000 wieder wegdividiert. Abschlie"send wird die +% L"ange der Strecke berechnet. +% \else +% The arguments of \cs{line} for the slope must be in the interval +% \([-1000, 1000]\), so divide by +% the previous introduced factor of 1000. Finally we're computing the +% length of the line. +% \fi +% \begin{macrocode} + \advance\tempxxx@nss by -\x@nss \divide\tempxxx@nss by 1000 \tempyyy@nss=\tempy@nss \advance\tempyyy@nss by -\y@nss \divide\tempyyy@nss by 1000 + \advance\xx@nss by -\x@nss \put(\x@nss,\y@nss){\line(\tempxxx@nss, \tempyyy@nss){\xx@nss}} \fi\fi\fi% \else @@ -5921,12 +6434,26 @@ sed -e "`echo \"s/^ /@/g\" | tr '@' '\011'`" struktex.mk > Makefile \else\ifcurves% \curve(\x@nss, \y@nss, \xx@nss, \tempy@nss)% \else\ifpictIIe% - \tempxxx@nss=\xx@nss - \divide\tempxxx@nss by 1000 - \tempyyy@nss=\tempy@nss - \advance\tempyyy@nss by -\y@nss - \divide\tempyyy@nss by 1000 - \put(\x@nss,\y@nss){\line(\tempxxx@nss, \tempyyy@nss){\xx@nss}} +% \end{macrocode} +% \ifnum\language=\languageNGerman +% Die Berechnung der L"ange muss lokal sein, darum wird hier eine eigene +% Gruppe eingef"uhrt anstatt die letzte Subtraktion r"uckg"angig zu machen. +% \else +% The calculation of the length of the line must be local, so we're using a +% group here---instead of undoing the \cs{advance} operation. +% \fi +% \begin{macrocode} + \begingroup + \tempxxx@nss=\xx@nss + \advance\tempxxx@nss by -\x@nss + \divide\tempxxx@nss by 1000 + \tempyyy@nss=\tempy@nss + \advance\tempyyy@nss by -\y@nss + \divide\tempyyy@nss by 1000 + \advance\xx@nss by -\x@nss + \put(\x@nss,\y@nss){\line(\tempxxx@nss, + \tempyyy@nss){\xx@nss}} + \endgroup \fi\fi\fi% \advance\x@nss by \xsize@nss \ifemlines% @@ -6179,6 +6706,24 @@ sed -e "`echo \"s/^ /@/g\" | tr '@' '\011'`" struktex.mk > Makefile % % \subsection{\ifnum\language=\languageNGerman Zus"atzliche Makros (Verifikation) \else Additional macros (verification)\fi} % +% +% \begin{macro}{\assert} +% \changes{v7.0a}{04/01/04}{neu eingef"uhrt} +% \begin{macro}{\assert@nss} +% \changes{v7.0a}{04/01/04}{neu eingef"uhrt} +% \ifnum\language=\languageNGerman +% \cs{assert} wird wie \cs{assign} definiert, f"uhrt ohne die Option +% |verification| aber nicht zu sichtbaren Ergebnissen: +% \else +% \cs{assert} is defined just like \cs{assign}: +% \fi +% \begin{macrocode} + \newcommand\assert{\let\next=\assert@nss\getoption}% + \newcommand\assert@nss[1]{}% +% \end{macrocode} +% \end{macro} +% \end{macro} +% % \ifnum\language=\languageNGerman % Der folgende Code ist nur g"ultig, wenn die Option |verification| gesetzt % wurde: @@ -6190,7 +6735,6 @@ sed -e "`echo \"s/^ /@/g\" | tr '@' '\011'`" struktex.mk > Makefile \ifthenelse{\boolean{verification}} { % \end{macrocode} -% % \begin{macro}{\xsizeo@nss} % \changes{v7.0a}{04/01/05}{neu eingef"uhrt} % \begin{macro}{\ydeptho@nss} @@ -6208,28 +6752,21 @@ sed -e "`echo \"s/^ /@/g\" | tr '@' '\011'`" struktex.mk > Makefile % \end{macrocode} % \end{macro} % \end{macro} - -% \begin{macro}{\assert} -% \changes{v7.0a}{04/01/04}{neu eingef"uhrt} -% \begin{macro}{\assert@nss} -% \changes{v7.0a}{04/01/04}{neu eingef"uhrt} +% % \ifnum\language=\languageNGerman -% \cs{assert} wird wie \cs{assign} definiert: +% F"ur den Fall, dass die Option |verification| gesetzt wurde, wird der +% intern genutzte Makro \cs{assert@nss} neu definiert. % \else -% \cs{assert} is defined just like \cs{assign}: % \fi % \begin{macrocode} - \newcommand\assert{\let\next=\assert@nss\getoption}% - \newcommand{\assert@nss}[1]% + \renewcommand{\assert@nss}[1]% {% \tempx@nss=\xsize@nss\divide\tempx@nss by 6% \set@nss{#1}{\tempx@nss}\tempy@nss=\number\param@nss000% \assertblock@nss{\tempy@nss}{1}% } % \end{macrocode} -% \end{macro} -% \end{macro} -% +%% % \begin{macro}{\assertblock@nss} % \changes{v7.0a}{04/01/04}{neu eingef"uhrt} % \ifnum\language=\languageNGerman @@ -6280,9 +6817,12 @@ sed -e "`echo \"s/^ /@/g\" | tr '@' '\011'`" struktex.mk > Makefile } } {} % end of \ifthenelse{\boolean{verification}} -%</struktex> % \end{macrocode} % \end{macro} +% \iffalse +%</struktex> +% \fi +% % % \Finale % diff --git a/Master/texmf-dist/source/latex/struktex/struktex.ins b/Master/texmf-dist/source/latex/struktex/struktex.ins index ac27680c009..61091dac070 100644 --- a/Master/texmf-dist/source/latex/struktex/struktex.ins +++ b/Master/texmf-dist/source/latex/struktex/struktex.ins @@ -1,5 +1,5 @@ %% -%% $Revision: 7.3 $ +%% $Revision: 7.7 $ %% %% 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-2005 by Jobst Hoffmann. All rights reserved. +Copyright (C) 1989-2006 by Jobst Hoffmann. All rights reserved. IMPORTANT COPYRIGHT NOTICE: @@ -70,15 +70,18 @@ to \file{struktex-test-1.tex}{\from{struktex.dtx}{example2}} \file{struktex-test-2.tex}{\from{struktex.dtx}{example3}} \file{struktex-test-3.tex}{\from{struktex.dtx}{example4}} + \file{struktex-test-4.tex}{\from{struktex.dtx}{example5}} } -\Msg{*** Generating make file and make setup file ***} +\Msg{*** Generating some additional files for easier handling ***} \generate {% + \askonceonly \nopreamble\nopostamble\def\MetaPrefix{}% - \file{struktex.mk}{\from{struktex.dtx}{makefile}} - \file{struktex.makemake}{\from{struktex.dtx}{setup}} \file{getversion.tex}{\from{struktex.dtx}{getversion}} + \file{struktex.makemake}{\from{struktex.dtx}{setup}} + \file{struktex.mk}{\from{struktex.dtx}{makefile}} + \file{struktex.el}{\from{struktex.dtx}{auctex}} } \ifToplevel{% @@ -98,6 +101,7 @@ to \Msg{* \space\space\space\space struktex-test-1.tex} \Msg{* \space\space\space\space struktex-test-2.tex} \Msg{* \space\space\space\space struktex-test-3.tex} +\Msg{* \space\space\space\space struktex-test-4.tex} \Msg{*} \Msg{* through LaTeX.} \Msg{***********************************************************} @@ -108,5 +112,5 @@ to %%% mode: latex %%% TeX-master: t %%% mode: flyspell -%%% ispell-local-dictionary: "deutsch8" +%%% ispell-local-dictionary: "english" %%% End: |