Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ grap(1M) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

pic(1M)

grap(1M)                                                           grap(1M)

NAME
     grap - pic-Präprozessor zum Zeichnen von Grafiken

SYNTAX
     grap file ...

BESCHREIBUNG
     grap ist ein pic(1M)-Präprozessor, der für das Zeichnen von Grafiken
     auf einem Fotosatzgerät verwendet wird. Grafiken sind in die troff-
     Kommandos .G1 und .G2 eingeschlossen. Die zwischen diesen Kommandos
     stehenden Zeichen werden skaliert und mit einem Plotter gezeichnet.
     Die Teilstriche (ticks) werden dabei automatisch eingefügt. Es stehen
     Kommandos zur Bearbeitung des Rahmens, zum Hinzufügen von Bezeichnun-
     gen, Überschreiben der Standardteilstriche, Ändern des Plotterstils,
     Definieren der Bandbreite und der Umsetzung der Koordinaten sowie zum
     Einbetten von Daten aus Dateien zur Verfügung. Darüber hinaus enthält
     grap dieselben Schleifen, bedingten Anweisungen und Funktionen zur
     Makrobearbeitung wie pic.

     frame ht e wid e top dotted ...:
          Den Rahmen um die Grafik auf die angegebenen Werte für die Höhe
          (ht) bzw. die Breite (wid) setzen. Der Standardwert ist 2 x 3
          (Zoll). Der Standardmodus gilt für alle vier Seiten. top, bot,
          left oder right können unabhängig voneinander auf dotted, dashed,
          invis oder solid gesetzt werden.

     label side "a label" "as a set of strings" adjust:
          Kennzeichnung an der angegebenen Seite plazieren. Standardmäßig
          ist dies die untere Seite. adjust hat das Format up (bzw. down,
          left, right) expr, um die Standardposition zu verschieben. Mit
          width expr wird die Breite explizit festgelegt.

     ticks side in at optname expr, expr, ...:
          Teilstriche auf side bei expr, ... setzen und die Kennzeichnung
          expr zuweisen. Wird nach expr "..." angegeben, wird den Teilstri-
          chen die Bezeichnung "..." zugewiesen. Die automatische Vergabe
          von Bezeichnungen wird ausgeschaltet. Enthält "..." die Zeichen
          %f, werden diese als printf-Befehle für die Formatierung der
          Teilstriche interpretiert. Angaben für die Teilstriche sind in
          oder out (Standardwert). Wiederholung der Teilstriche: Anstelle
          von at ... verwenden Sie from expr to expr by o expr. Dabei ist o
          optional +-*/ für Additionen bzw. Multiplikationen. by kann aus-
          gelassen werden. Die Schritte haben dann die Größe 1. Werden
          keine Teilstriche angefordert, werden diese automatisch einge-
          fügt. Dies kann durch Angabe von ticks off unterdrückt werden.
          Bei der automatischen Vergabe der Teilstriche wird in der Regel
          auf jeder Seite ein Rand von 7% gelassen. Dieser Wert kann über
          margin = expr auf einen beliebigen Wert gesetzt werden.







Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

grap(1M)                                                           grap(1M)

     grid side linedesc at optname expr, expr, ...:
          Raster im Stil linedesc bei expr, .... senkrecht zu side stellen.
          Die Wiederholung und Vergabe der Kennzeichnungen funktioniert wie
          bei den Teilstrichen.

     coord optname x min, max y min, max log x log y:
          Den Bereich der Koordinaten und/oder die optionale Log-Skalierung
          setzen. Dadurch wird die automatische Berechnung des Datenbe-
          reichs wirkungslos gemacht. Der Standardwert von optname ist das
          aktuelle Koordinatensystem (jede Option coord definiert ein neues
          Koordinatensystem).

     plot "str" at point; "str" at point:
          str auf point setzen. Die Textposition kann mit rjust, ljust,
          above, below nach "..." angegeben werden.

     line from point to point linedesc:
          Zeile vom Punkt from zum Punkt to ziehen. arrow kann anstelle von
          line angegeben werden.

     next optname at point linedesc:
          Das Plotten der Daten in optname bis point fortsetzen; der Stan-
          dardwert ist die aktuelle Position.

     draw optname linedesc ...:
          Modus für next setzen. Dieser Stil wird von diesem Zeitpunkt an
          verwendet. "..." an jedem Punkt plotten (falls angegeben).

     new optname linedesc ...:
          Modus für next setzen, aber Verbindung zum vorigen Modus auflö-
          sen.

     Eine Liste mit Zahlen x y1 y2 y3 ... wird folgendermaßen behandelt:
     plot bullet at x,y1; plot bullet at x,y2; usw. Wird draw angegeben,
     wird die Liste folgendermaßen behandelt: next at x,y1 usw. Die Abszis-
     sen 1,2,3 werden angegeben, wenn es pro Zeile nur jeweils eine Einga-
     bezahl gibt.

     Ein Punkt optname expr, expr bildet den Punkt auf das angegebene Koor-
     dinatensystem ab. linedesc ist eine der Angaben dot, dash, invis oder
     solid, optional gefolgt von einem Ausdruck.

     define name { whatever }:
          Makro definieren. Einige Makros für Standardplottersymbole, z. B.
          bullet, circle, star, plus usw. sind bereits in
          /usr/lib/dwb/grap.defines definiert. Diese Definition wird, falls
          vorhanden, eingebettet.

     var = expr:
          Ausdruck bewerten. Operatoren: =+-* und /. Funktionen: log und
          exp (beide mit der Basis 10), sin, cos, sqrt; rand übergibt
          Zufallszahlen auf [0,1]; max(e,e), min(e,e), int(e).


Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

grap(1M)                                                           grap(1M)

     print expr; print "...":
          Als Hilfe bei der Fehlerbeseitigung expr oder string auf der
          Standardfehlerausgabe drucken.

     copy "filename":
          Diese Datei an dieser Stelle einbetten.

     copy thru macro:
          Restliche Eingabe (bis .G2) durch macro leiten. Dabei jedes Feld
          (nicht leere Felder oder "...") als Argument auffassen. macro
          kann der Name eines vorher definierten oder der Rumpf eines
          bereits aufgerufenen Makros sein, z. B. /plot $1 at $2,$3/.

     copy thru macro until "string":
          Kopiervorgang bei Eingabe string (linksbündig) stoppen.

     pic remainder of line:
          In Ausgabe kopieren, führende Leerzeichen dabei löschen.

     graph Name pic-position:
          Neuen Rahmen beginnen und an der angegebenen Position plazieren,
          z. B. graph Thing2 with .sw at Thing1.se + (0.1,0). Name muß in
          Großbuchstaben geschrieben werden, um von pic verarbeitet werden
          zu können.

     .anything at beginning of line:
          Wort für Wort kopiert.

     sh % anything %:
          Alle Angaben zwischen den Zeichen % an die Shell weiterleiten;
          wie auch bei Makros kann % ein beliebiges Zeichen sein und
          anything kann Zeilenvorschübe enthalten.

     # anything:
          Kommentar; wird gelöscht.

     Die Reihenfolge ist in den meisten Fehler unwichtig; keine Kategorie
     ist obligatorisch. Argumente in der Zeile .G1 werden für pic in der
     generierten Zeile .PS plaziert.















Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

grap(1M)                                                           grap(1M)

BEISPIELE
     .G1
     frame ht 2 wid 2
     coord x 0,100 y 0,100
     grid dotted bot from 20 to 80 by 20
     grid dotted left from 20 to 80 by 20

     "Text above"   above at 50,50
     "Text rjust "  rjust at 50,50
     bullet at 80,90
     vtick  at 80,80
     box    at (80,70)
     times  at 80,60

     circle at 50,50
     circle at 50,80 radius .25
     line dashed from 10,90 to 30,90
     arrow from 10,70 to 30,90

     draw A solid
     draw B dashed delta
     next A at 10,10
     next B at 10,20
     next A at 50,20
     next A at 90,10
     next B at 50,30
     next B at 90,30
     .G2

     Ergebnis: Siehe Referenzhandbuch für Systemverwalter!

     .G1
     frame invis ht 2 wid 3 left solid bot solid
     label left "Zeit" "(in Sekunden)" left .2
     label bot "Olympische 400-Meter-Läufe: Gewinnzeiten"
     coord x 1894,1982 y 42,56
     ticks left out at 44 "44", 46, 48 "48", 50, 52 "52", 54
     ticks bot in from 1900 to 1980 by 20
     draw solid
     1896 54.2
     1900 49.4
     1904 49.2
     1908 50.0
     1912 48.2
     1920 49.6
     1924 47.6
     1928 47.8
     1932 46.2
     1936 46.5
     1948 46.2
     1952 45.9
     1956 46.7


Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

grap(1M)                                                           grap(1M)

     1960 44.9
     1964 45.1
     1968 43.8
     1972 44.6
     1976 44.2
     1980 44.6
     .G2

     Ergebnis: Siehe Referenzhandbuch für Systemverwalter!

     Wenn man die Liste mit den Jahreszahlen und Gewinnzeiten in eine sepa-
     rate Datei 400mpairs.d abstellt und diese dann mit copy inkludiert,
     verkürzt sich die Spezifikation auf folgende Zeilen:

     .G1
     frame invis ht 2 wid 3 left solid bot solid
     label left "Zeit" "(in Sekunden)" left .2
     label bot "Olympische 400-Meter-Läufe: Gewinnzeiten"
     coord x 1894,1982 y 42,56
     ticks left out at 44 "44", 46, 48 "48", 50, 52 "52", 54
     ticks bot in from 1900 to 1980 by 20
     draw solid
     copy "400mpairs.d"
     .G2

DATEIEN
     /usr/lib/dwb/grap.defines

SIEHE AUCH
     pic(1M).

LITERATUR
     J. L. Bentley and B. W. Kernighan, GRAP - A Language for Typesetting
     Graphs, CSTR 114, 1984




















Seite 5                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026