[Tustep-Liste] Geviertstrich

Michael Trauth trauth at uni-trier.de
Fr Mär 3 20:27:31 CET 2006


Lieber Herr Brunschoen, lieber Herr Bausch,

erstaunlich, wie aufwendig so ein scheinbar simples Thema
wie Striche im guten Satz sein kann! Also:
:  &!(61+1000) bringt wie beschrieben den Geviertstrich;
im Handbuch steht das, glaube ich, nicht, vermutlich weil's
nicht noetig ist, denn der Programmautor hat bei den Stri-
chen angegeben, dass die Eingabe von
:  -- (= zwei Minuszeichen hintereinander) zwei Halb-
geviertstriche hintereinander setzt, und das sieht fuer
mich auch in der Vergroesserung wie ein korrekter Geviert-
strich aus.
   Ergaenzend hat Herr Bausch darauf hingewiesen, dass der
Satzparameter (also keine Anweisung!)
:  -  (= ein Minuszeichen als Parametername)
den Halbgeviertstrich zum Geviertstrich umdefiniert. (Den
Parameter kannte ich noch nicht - wieder etwas gelernt.)
Allerdings gilt diese Umdefinition dann global(!), im ge-
samten zu setzenden Text, und das duerfte schwerlich immer
so gewollt sein, weil dann naemlich beispielsweise auch
der Bis-Strich zwischen Zahlen entsprechend verlaengert
wird. Ob das irgendwo so gewuenscht wird?! (Von den Eng-
laendern ist man ja so mancherlei gewohnt, vom Linksfah-
ren ueber Silbentrennung und Pfefferminzsauce bis zu den
Strichgewohnheiten - aber *das* darf erst einmal bezwei-
felt werden...;o)). Damit ist diese Loesung vorderhand
untauglich fuer Sie, Herr Brunschoen, denn Ihnen schwebt
ja offenbar ein Satzprojekt vor, in dem Sie je nach Sprach-
umgebung unterschiedliche Striche verwenden wollen oder
muessen.
  Fuer die manuelle Auszeichnung koennen Sie also, wie
oben angegeben, '--' oder, wie Gottfried Reeg erlaeutert
hat, auch '\-\-' eingeben, um einen Geviertstrich zu er-
zeugen (der Backslash ist nur erforderlich, wenn ein
Bis-Strich zwischen Buchstaben erzeugt werden soll, etwa
bei roemischen Zahlen [XXXIII\-XXXVII]; wenn der Strich
doppelt '--' kodiert wird, wird *immer* der lange Strich
erzeugt).

Aber Ihnen schwebt ja eine 'automatische' Loesung vor.
Wie leicht das mit den Kommandomakros und den neuen
Stackfunktionen geht, hat Herr Schaelkle neulich in
Blaubeuren anhand einiger Beispiele vorgestellt. Ich
gebe Ihnen hier ein schon etwas aelteres Exempel:
----------------------------------------------------
#makro
$$! quelle=qu, ziel=zi
$$=- [ ]
MODE VARIABLE

SET status = CHECK (quelle, READ, TUSTEP)
   ERROR/STOP "Quelle: ", status
SET status = CHECK (ziel, WRITE, TUSTEP)
   ERROR/STOP "Ziel: ", status

BUILD S_TABLE atab = ":<<eng>>:"
BUILD S_TABLE etab = ":<</eng>>:"
BUILD X_TABLE xx = ":>< <|->|>< :--:"

ACCESS q: READ/STREAM/RECORDS "[quelle]" ...
          s.z/u, anf/atab + txt + end/etab, typ
ACCESS z: WRITE/ERASE/STREAM "[ziel]" ...
          s.z/u, anf + txt + end, anz

SET tab = "x", mrk = ""

LOOP/999999
   READ q
   IF (EOF)  EXIT
   IF (anf .NE. "")  SET mrk = INSERT (mrk,1,tab), tab = anf
   IF (tab .EQ. "<eng>") THEN
      SET txt = EXCHANGE (txt, xx)
   ENDIF
   IF (end .NE. "")  SET mrk = REMOVE (mrk, 1, tab)
   WRITE z
ENDLOOP

ENDACCESS/PRINT q
ENDACCESS/PRINT z
*eof
----------------------------------------------------
Mit diesem Skript werden in allen Bereichen, die in
<eng>...</eng> eingeschlossen sind, alle freistehenden
Bindestriche in '--' ausgetauscht (das ist das Aus-
tausche, das als X_TABLE definiert ist).

Um manuelle Arbeit werden Sie trotzdem nicht herum-
kommen, denn kein Programm kann in einem angelsaech-
sischen Text anhand formaler Kriterien Hyphens in
'Bindestrichwoertern' wie 'late-nineteenth' von Par-
enthesenstrichen, die ja im Englischen ohne Zwischen-
raum zwischen Woerter geschrieben werden (horribile
est dictu), sauber unterscheiden.

> ... ein kleines Problem: der em-dash steht 
> nicht zwischen Leerzeichen (zumindest bei mir). 
> Bei der vorgeschlagenen Umdefinition des 
> Geviertstrichs statt des Halbgeviertstrichs für 
> Gedankenstrich und »bis«-Strich wird jedoch vom 
> Satz-Programm von einem Gedankenstrich 
> ausgegangen, der *zwischen* Leerzeichen steht
> (Handbuch S. 997).

Das laesst sich, wie oben beschrieben, mit einem
Backslash vor dem Strich leicht beheben.

Viele 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