AW: Probleme mit bedingten Postfixen

Thomas Berger ThB at gymel.com
Di Aug 28 11:47:15 CEST 2001


Lieber Herr Eversberg,

> Ein gaenzlich unpassendes Epitheton, "mantrahaft". #zz 0 ist dann und
> nur dann notwendig, wenn
> a) verhindert werden soll, dass das Default-Postfix ke ausgegeben
>    wird (typisch beim Typ I-Export, wenn mehrere Inhalte ein
>    einzelnes Feld bilden sollen oder eine Zeile nur den Sinn hat,
>    einen Sprung auszuloesen). In solchen Faellen ist #zz 0 das
>    einzige bedingte Postfix. Hat man ke nicht gesetzt, ist es
>    ueberfluessig.

Meine Meinung: ke ist ueberfluessig, wer das benutzt wird
bestraft mit hundertmal Abschreiben von #zz 0.

Selbst den Pauschalexport kann man seit einigen
Jahren auch anders machen (ZT 99 als Ersatz fuer ke):

#t{s1}
#u01 y0 b4 P99
#-A
#u02 +A y0 b4 P99
#t{s5}


> b) Tatsaechlich die Situation eintreten kann, dass in der Abfolge
>    der Kategorieliste eine auftritt, die groesser ist als alle,
>    die in der bedingten Postfixliste stehen, UND es vorkommen kann,
>    dass alle davor angegebenen gar nicht besetzt sind UND in diesem
>    Fall dann eben gar nichts auszugeben ist.
> 
> In allen wortreichen Ausfuehrungen fehlt mir noch immer ein
> brauchbarer Vorschlag, der einen voelligen Verzicht auf
> ein Konstrukt wie die bedingten Postfixe erreichbar machen wuerde.
> Dann koennten sie zur Abschaffung eingereicht werden...

Womit wir einmal wieder bei der globalen Ausgabenachbearbeitung
waeren. Das Problem ist ja nicht, in der Parameterdatei
(tendenzielle) Absatzwechsel zu markieren, sondern die
Buchfuehrung bei jeder einzelnen Ausgabe:

#nr dcc p"Kopf|" P>G acc     % Kontextwechsel vorbereiten
#40 P":"        % Ist der AT nicht leer, wird implizit der Code
                % im Abschnitt G ausgefuehrt
#20
...
#>g                          % Zuruecknehmen

#(G       % Neuen Absatz vorbereiten (push)
#ucc e"|" P"|" aF1   % Name wird gemerkt
#nr p"|" e"|" aF2
#)G

#(g       % Alten Absatz abschliessen (pop)
#uF2 +#J60 i5,| Z    % aber nicht, wenn nichts ausgegeben
#t{C "</p>"}
#J60
#uF2 dF2 b"|" aF2
#uF1 dF1 b"|" aF1
#)g

G    Globale Ausgabenachbearbeitung
       % - wird fuer jeden nichtleeren AT des Hauptteils automatisch
       %   aufgerufen
       % - evtl. Konstruktion oder Magie einfuegen, die y0 fuer alle
       %   Ausgaben in diesem Abschnitt einstellt
       % - Unklar ist, ob die Ausgabe indirekter Praefixe
       %   bis zur Abarbeitung dieses Abschitts verzoegert werden
       %   sollte (indirekte x-Fixe aus diesem Abschnitt also
       %   die aus der Kategorieliste ueberholen!)
#uF2 +#J60 I5,| Z     % Bereits etwas ausgegeben!
       % "Neuer Absatz". Ggfls. modifizieren, wenn die
       % Stapeltiefe tief ist oder der Absatzname in
       % #uF1 ein bestimmter ist.
#uF1 y0 e"|" p'<p class=" P'">'
#nr p"x" e1 aF2       % "angebrochenen Absatz vermerken"
#J60   % Absatzwechsel abgehandelt, jetzt ggfls.
       % Praefix/Postfixbehandlung mit #uF3
       % Es fehlt: AT enthaelt Nummer => gebe ZT mit dieser
       % Nummer aus
...
#u1 +#J61 c"http://" Z     % #u1 ist der Arbeitstext
#u1 y0         % Aufgepasst: nicht noch einmal umcodieren
#+#

#J61       % Schnick: Hyperlink erzeugen, egal in welcher
           % Kategorie er vorkommt
#u1 y0 e"http://"
#u1 y0 b"http://" e" " p'<a href="http://' P'">'
#u1 y0 b"http://" e" " P'</a>'
#u1 y0 b"http://" b" " p" "
#+#


[Ueber Anwendungen dieser Nachbearbeitung fuer Indexparameter
hatte ich glaube ich neulich bereits geschrieben im Zusammenhang
mit S/R-Schluesseln bei Stammsatzverknuepfungen]

In allegro-HANS wird seit jeher *jede* Kategorie nicht
ausgegeben, sondern in ein Unterprogramm geschickt.
Dieses Unterprogramm besorgt zweistufige Absatzwechsel
(aus Register nachgeladen entsprechend "aktuellem
Ausgabegeraet"), ergaenzt den Kategorietext um
eine einleitende Wendung (aus dem Register nachgeladen),
setzt ein Praefix davor (aus dem Register nachgeladen,
unterschiedlich, je nachdem ob 1. Feld im aktuellen
Absatz, einl. Wendung gefunden, Wiederholkategorie)
und untersucht den Arbeitstext auf Anzeichen, dass
hier eine Stammsatzersetzung stattgefunden hat, wenn
ja wird auch noch ein Flip (geraetespezifisch: DOS-Flips
natuerlich anders als A99-Flips oder ein Hyperlink fuer
eine WWW-Anbindung) formatiert und initialisiert.

Ich hatte neulich versucht, das fuer andere Systeme
etwas "billiger" hinzubekommen, das scheiterte aber
daran, dass es derzeit nicht einmal eine Moeglichkeit
gibt, herauszufinden, ob in der aktuellen Zeile
bereits etwas steht. Es gibt nur #pz1 und #pz0, die
man auf Veraenderugnen untersuchen kann, die aendern
sich aber erst, wenn man schon so viel ausgegeben hat,
dass ein Zeilenwechsel erfolgte.

viele Gruesse
Thomas Berger




Mehr Informationen über die Mailingliste Allegro