summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/struktex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-08-19 23:37:56 +0000
committerKarl Berry <karl@freefriends.org>2006-08-19 23:37:56 +0000
commitaffc79c45bfab740028ac1e6b8480c5465a42b01 (patch)
treeab54d74bdf618c0775f9fc6fec3c40a0148aecd2 /Master/texmf-dist/source/latex/struktex
parent0ea7446c8635d5d43c7e3b08d8fbb673ca926534 (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.dtx742
-rw-r--r--Master/texmf-dist/source/latex/struktex/struktex.ins16
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: