[Tustep-Liste] Sternchenfussnoten

Michael Trauth trauth at uni-trier.de
Mo Mai 14 19:29:18 CEST 2007


Lieber Gottfried,

vielen Dank fuer das huebsche Makro! Wenn ich darf,
wuerde ich es gerne fuer mich verwenden. Koenntest Du
mir aber bitte noch den kleinen Gefallen tun und seine
Funktionalitaet ein bisschen erweitern? Beim folgenden
Beispieltext - es handelt sich um den Deinen, den ich
ein bisschen erweitert habe -

-------------------------------------------------
Der Text hat mehrere Fußnoten <fn> 1. Fußnote. </fn>
Sie sollen aber nicht alle aufsteigend nummeriert werden.
<fn n="3"> Fußnote mit der Nummer 3.</fn> Es kommen
außerdem auch noch Fußnoten mit Sternchen vor.
<fn n="*"> ******</fn>. An dieser Stelle soll die
Fußnotennummer nicht weitergezählt <fn n="**">
Zwei-Sternchen-Fußnote </fn> werden. Das führt nun
zur Fußnote 4 <fn> Sieht richtig gezählt aus.</fn>.
Wenn die Fußnotennummer wieder bei 1 beginnen soll
ist das kein Problem <fn n="1"> Neuanfang der
Fußnotennummer.</fn> Schön und gut, aber wie geht's,
wenn im Text eine Drei-Sternchen-Fußnote <fn n="***">
Zwei-Sternchen-Fußnote </fn> vorkommt? Jedenfalls
kann man auch auf Fußnote 5 springen. <fn n="5">Das
ist einfach.</fn> Die Zählung kann aber auch nach
dem Milestone <fn0/> wieder bei "1" beginnen.
<fn>Erneuter Neubeginn der Fußnotennumerierung. </fn>
Aber hier wird's schwierig: Der Fn-Verweis der
folgenden Fußnote, die in einer eigenen neuen
Zeile beginnt,
  <fn> Das ist ein Test-Fußnoteneintrag, der sich über
  zwei Zeilen hinweg erstreckt.</fn>
sollte bitteschön unmittelbar ans davor stehende Wort
angeschlossen werden.
-----------------------------------------------------

sind noch eine Zwei- und eine Drei-Sternchen-Fussnote
eingebaut. Das im Makro zu beruecksichtigen, ist nicht
so schwierig; ich denke mal, dass einfach

SECTION nummer
   SET fn = GET_ATTRIBUTE (anf,"n")
   IF (fn .EQ. "*") THEN
      SET fnn="%0"
   ELSE IF (fn .EQ. "**") THEN
      SET fnn="%0%0"
   ELSE IF (fn .EQ. "***") THEN
      SET fnn="%0%0%0"
   ELSE
   ...

dafuer ausreicht. Schwieriger wird's mit der letzten
Fussnote, die in einer eigenen neuen Zeile beginnt:
Deren Verweis sollte bitteschoen unmittelbar an das
davor stehende Wort angeschlossen werden (er wird
derzeit noch in einer neuen Zeile ausgegeben, was
natuerlich im Satzergebnis zu einem Blank davor fuehrt).

Und ich faende es aus der Perspektive vieler Satz-
anwender praktisch, wenn zusaetzlich zu den vorein-
gestellten Standard-Kodierungen auch noch
@f+... at f-
@f*+... at f*-
@f**+... at f**-
@f***+... at f***-
[usw.]
@f1+... at f1-
@f2+... at f2-
[usw.]
@f
ermoeglicht wuerde. Ich habe das fuer mich durch
ein separates Teilmakro schon 'geloest', indem ich
die Kodierungen @f+ usw. bloss durch ein EXCHANGE
in <fn>...</fn> usw. umsetzen lasse:

=======================================================
$$! quelle, ziel
$$ MODE TUSCRIPT

SET status = CHECK (quelle, READ, TUSTEP)
ERROR/STOP "QUELLE: ", status

SET status = CHECK (ziel, WRITE, TUSTEP)
ERROR/STOP "ZIEL: ", status

SET status = UNIQUE (quelle, ziel)
ERROR/STOP "Datei ", status, " ist mehrfach angegeben"

BUILD X_TABLE faex = *
   DATA |@f+|<<fn>>|
   DATA |@f<>>/+|<<fn n=">=03">>|
   DATA |@f<>*+|<<fn n=">=03">>|
   DATA |@f-|<</fn>>|
   DATA |@f<>>/-|<</fn>>|
   DATA |@f<>*-|<</fn>>|
   DATA |@f|<<fn0/>>|
COMPILE

ACCESS q: READ       /RECORDS "{quelle}" sn.zn/un, text
ACCESS z: WRITE/ERASE/RECORDS  "{ziel}"  sn.zn/un, text

LOOP/999999
   READ/NEXT/EXIT q
   SET text = EXCHANGE (text, faex)
   WRITE z
ENDLOOP

ENDACCESS/PRINT q
ENDACCESS/PRINT z

END COMPILE
=======================================================

Aber das ist natuerlich bloss ein Patch und alles andere
als elegant. Wenn es keine grosse Muehe fuer Dich darstellt,
waere es schoen, wenn Du diese Funktionalitaet in Dein Makro
einbauen koenntest.


Vielen Dank im voraus von

** Michael **


---------------------------------------------------------------
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