[Tustep-Liste] Sternchenfussnoten

Dr. Gottfried Reeg reeg at zedat.fu-berlin.de
Di Mai 15 18:06:26 CEST 2007


Lieber Michael,

wie sollte ich Dir verbieten, das Makro zu benutzen, wenn Du
es eh schon hast?
Einige Anmerkungen:

1. Das Makro von Herr Schälkle geht von der
FORMATIERE-Auszeichnung @f aus.

2. Sternfußnoten:
Das Beispiel von Dir ließe sich noch leicht verändern.


IF (fn .SW. "*") THEN
- Wenn die Variable mit "*" beginnt
- d.h. zumindest einen Stern.
- Datensauberkeit wird hier nicht überprüft
     SET fnn= EXCHANGE (fn,":*:%0:")
ELSE
...

Das Problem der mehrfach Blanks vor der Fußnote
läßt sich lösen, indem in der Tabelle für die
Anfangskennungen Mehrfachblanks zugelassen werden:

- Anfangstag der Fußnote
BUILD S_TABLE fa = *
   DATA .><<>  <<fn>>><  .><<>  <<fn n="<>>/">>>< .><<>  <<fn n="<>*">>><  .

Variante siehe unten.

3. @f - Kodierungen
Diese hatte ich bewußt nicht aufgenommen,
zumal sie im Beispiel von Herr Schälkle
- in der Standardform - berücksichtigt sind.
Die anderen Dialekte waren mir bis jetzt
unbekannt. Zum einen muß die Tabelle
für die Anfangskennung und die der beiden anderen
ergänzt werden:


- Zeichengruppe der Zeichen, die zwischen "@f" und "+"
vorkommen:
BUILD C_GROUP >[fz] = ">/*"

- Anfangstag der Fußnote
BUILD S_TABLE fa = *
   DATA .><<>  <<fn>>><  .><<>  <<fn n="<>>[fz]">>><  .
   DATA .><<>  @f+><  .><<>  @f<>>[fz]+><  .

- Endtag der Fußnote
BUILD S_TABLE fe = ":><  <</fn>>:><  @f-:"
- Zurückschalten auf 0 bei:
BUILD S_TABLE f0 = ":><  <<fn0/>>><  :><  @f>< : :><  @f+:>< @f-:"

Die Sektion nummer muß dann auch noch
erweitert werden:

SECTION nummer
   IF (anf .CT. ":@:") THEN
-  Wenn die Variabel "@" enthält ...
-  Achtung: Hier wird eine Tabelle, keine Zeichenfolge angegeben
-      Auswählen des Stückes zwischen "@f" und "+"
      SET fn = EXTRACT (anf,":@f:"|,|":+:")
   ELSE
      SET fn = GET_ATTRIBUTE (anf,"n")
   ENDIF
   IF (fn .SW. "*") THEN
      SET fnn= EXCHANGE (fn,":*:%0:")
   ELSE
      IF (fn .EQ. "") THEN
         SET num = num + 1
      ELSE
         SET num = fn
      ENDIF
      SET fnn = EXCHANGE (num, ":>/:%>=01:")
   ENDIF
   SET txt = CONCAT (fnn,txt)
ENDSECTION

4. In der Prozedur habe ich COMPILE und ENDCOMPILE
verwendet (die Prozedur von Herr Schälkle enthält es
(noch) nicht, da es dies damals noch nicht gab.
In dem Stück zwischen  COMPILE und ENDCOMPILE
sollten keine Variablen in Klammer stehen.
Aus Performance-Gründen bietet sich jedoch COMPILE an.
Die Fehlermeldungen müssen dann alle nach folgendem Muster
aufgebaut sein:

PRINT "@@@@@@@@  Fußnotenende ohne -anfang: ",s,".",z,"/",u,": ", end

PRINT "@@@@@@@@  Fußnotenanfang am Ende der Datei"

PRINT "@@@@@@@@  Fußnotenende fehlt vor -anfang: ",s,".",z,"/",u,": ", anf

FUNO_N enthält eine verbesserte Fassung mit den Punkten 1, 2
und 4.

FUNO_N_V - enthält eine Fassung, die
auch Punkt 3 berücksichtigit, jedoch mit dem Zusatz "noch
nicht erprobt."

Gruß aus Berlin
Gottfried

Michael Trauth schrieb:
> Diskussionsforum Tustep-Liste
> Weitere Informationen: www.itug.de
> ------------------------------------------------------------
>
>
> 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
> ---------------------------------------------------------------
>
> ------------------------------------------------------------
> Tustep-Liste at itug.de
> https://lists.uni-wuerzburg.de/mailman/listinfo/tustep-liste
>
>   

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : funo_n
Dateityp    : application/octet-stream
Dateigröße  : 10240 bytes
Beschreibung: nicht verfügbar
URL         : <https://lists.itug.de/pipermail/tustep-liste/attachments/20070515/bd4475aa/attachment.obj>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : funo_n_v
Dateityp    : application/octet-stream
Dateigröße  : 10240 bytes
Beschreibung: nicht verfügbar
URL         : <https://lists.itug.de/pipermail/tustep-liste/attachments/20070515/bd4475aa/attachment-0001.obj>


Mehr Informationen über die Mailingliste Tustep-Liste