[Tustep-Liste] Zeilennummerierung

Michael Trauth trauth at uni-trier.de
Mo Sep 15 20:19:38 CEST 2008


Lieber Herr Moser,

auf Ihre Frage haben Sie ja nun schon ein paar
Antworten bekommen, und bestimmt ist darunter auch
einiges, womit Sie etwas anfangen koennen. Aber
Ihre konkrete Frage lautete:

> Mir schwebte eigentlich eine (automatische) Lösung
> in einer Datei mit bereits fixiertem Zeilenumbruch
> vor (z.B. Zieldatei von #*aumbruch), wie sie Herr
> Sappler angedeutet hat. Ausformuliert à la: 1)
> Suche Zeile mit @I...@{, 2) Füge am Zeilenbeginn
> &!R. ein, 3) Gehe zur unmittelbar folgenden Zeile,
> 4) Füge am Zeilenbeginn &!R+ ein. Wie könnte man
> denn so etwas realisieren?

Dafuer gibt's (wieder einmal) ganz viele Wege. Mit
schwebt da ein KOPIERE mit Merktext vor, dessen
Transparenz aber fuer den KOPIERE-Unerfahrenen
etwas zu wuenschen uebriglaesst. Also schlage ich
Ihnen eine ganz simple Tour vor. Fuer diese muessen
Sie sich vergegenwaertigen, dass KOPIERE eine Datei
auch rueckwaerts lesen kann (mit MODUS=R). Also muss
das KOPIERE (in natuerlicher Sprache formuliert)
folgendes tun:
- Datei rueckwaerts lesen,
- dabei nach Marginalien Ausschau halten,
- wenn eine Marginalie vorkommt, einen Wahschalter
  setzen (= heisst soviel wie: eine Fahne hochhalten)
- diesen Wahlschalter staendig pruefen, denn wenn
  die Fahne oben ist, ist im Satz zuvor eine Marginalie
  vorbeigekommen; in diesem Fall '&!r.' am Ende des
  Satzes einfuegen *und* den Wahlschalter loeschen
  (denn die Fahne hat ja ihren Zweck erfuellt).
Anschliessend das ganze noch einmal, mit exakt den
gleichen Anweisungen, nur dass jetzt hinter dem
Marginaliensatz ein '&!r+' ergaenzt wird. That's all.

Alles klar? Ich gehe mal davon aus, dass Sie dieses
kleine KOPIERE jetzt einfach so hinschreiben koennen.
Aber vielleicht interessiert sich ja noch jemand auf
der Liste dafuer, deshalb alles noch einmal 'frigore
concreto'. Zuerst die Textdatei, sie sieht so aus:

===================================================
Das ist ein Text und noch ein bissel was.
Das ist ein Text und noch ein bissel was.
Das ist ein Text und noch ein bissel was.
Das ist ein Text @iMText@{ und noch ein bissel was.
Das ist ein Text und noch ein bissel was.
Das ist ein Text und noch ein bissel was.
Das ist ein Text und noch ein bissel was.
Das ist ein Text und noch ein bissel was.
Das ist ein Text @aMText@{ und noch ein bissel was.
Das ist ein Text und noch ein bissel was.
Das ist ein Text und noch ein bissel was.
Das ist ein Text und noch ein bissel was.
Das ist ein Text und noch ein bissel was.
Das ist ein Text @iMText@{ und noch ein bissel was.
Das ist ein Text und noch ein bissel was.
Das ist ein Text und noch ein bissel was.
Das ist ein Text und noch ein bissel was.
Das ist ein Text @aMText@{ und noch ein bissel was.
Das ist ein Text und noch ein bissel was.
Das ist ein Text und noch ein bissel was.
Das ist ein Text und noch ein bissel was.
Das ist ein Text @rMText@{ und noch ein bissel was.
Das ist ein Text und noch ein bissel was.
Das ist ein Text und noch ein bissel was.

===================================================

Und jetzt folgt die KOPIERE-Prozedur:

===================================================
#da,tmp.1'tmp.2,fr=-
#ko,<quelle>,tmp.1,r,+,*
ws+   1   1
erg   2   || &!r.|
wsl   2   1
zf+   3   |@</|
wss   3   1
spn        8  8  3
sp2       31  3  3
*eof
#ko,tmp.1,tmp.2,r,+,*
ws+   1   1
erg   2   || &!r+|
wsl   2   1
zf+   3   |@</|
wss   3   1
spn        8  8  3
sp2       31  3  3
*eof
===================================================

Das Ergebnis sieht dann so aus:

===================================================
Das ist ein Text und noch ein bissel was.
Das ist ein Text und noch ein bissel was.
Das ist ein Text und noch ein bissel was. &!r.
Das ist ein Text @iMText@{ und noch ein bissel was.
Das ist ein Text und noch ein bissel was. &!r+
Das ist ein Text und noch ein bissel was.
Das ist ein Text und noch ein bissel was.
Das ist ein Text und noch ein bissel was. &!r.
Das ist ein Text @aMText@{ und noch ein bissel was.
Das ist ein Text und noch ein bissel was. &!r+
Das ist ein Text und noch ein bissel was.
Das ist ein Text und noch ein bissel was.
Das ist ein Text und noch ein bissel was. &!r.
Das ist ein Text @iMText@{ und noch ein bissel was.
Das ist ein Text und noch ein bissel was. &!r+
Das ist ein Text und noch ein bissel was.
Das ist ein Text und noch ein bissel was. &!r.
Das ist ein Text @aMText@{ und noch ein bissel was.
Das ist ein Text und noch ein bissel was. &!r+
Das ist ein Text und noch ein bissel was.
Das ist ein Text und noch ein bissel was. &!r.
Das ist ein Text @rMText@{ und noch ein bissel was.
Das ist ein Text und noch ein bissel was. &!r+
Das ist ein Text und noch ein bissel was.
Das ist ein Text und noch ein bissel was.

===================================================

Viel Muehe habe ich mir aus Zeitgruenden nicht gegeben.
Also schreibe ich hier und jetzt, auch im Interesse des
projektierten Beispielheftchens, den folgenden Wettbewerb
aus: Wer's besser, schoener, schlanker, oder einfach nur
transparenter hinbekommt, wird von mir in Heidelberg im
Cafe Schafheutle zu einem Stueck Spezialtorte (der
Lieblingstorte von Helmut Kohl) eingeladen.

A propos 'Torte': Hat jemand schon die wunderschoene
Worttrennung 'Schlach-torte' gesehen? Ich war entzueckt.


Herzliche Gruesse reihum von

Michael Trauth


---------------------------------------------------------------
Dr. Michael Trauth                  e-mail: trauth at uni-trier.de
Rechenzentrum                       office: Tel. 0651-201-3413
der Universitaet                            Fax  0651-201-3921
Universitaetsring                secretary: Tel. 0651-201-3417
D-54286 Trier
---------------------------------------------------------------



Mehr Informationen über die Mailingliste Tustep-Liste