Groff
adalah suatu program komputer yang dapat dijalankan pada sistem
operasi Unix, yang membaca suatu file masukan yang dibuat oleh users dan keluarannya
berupa paper terformat yang siap untuk publikasi atau cetak. File masukan berisi teks
atau kata-kata yang akan dicetak dan request yang memberi instruksi pada
program groff
yang menyatakan bagaimana memformat salinan yang akan
dicetak.
Belajar program groff
mengingatkan kita akan program WordStar di bawah
DOS yang perintah settingnya terdiri dari perintah titik (dot command). Namun
hasil kompilasi program ini sangat jauh berbeda dengan WordStar yang dapat dilihat
pada contoh-contoh berikut ini.
Contoh type setting program groff
adalah sebagai berikut:
.fo 'Contoh type setting dengan groff'
.nr pp 12
.+c "Contoh penggunaan Groff"
.pp
Groff adalah suatu program komputer yang dapat dijalankan pada sistem operasi Unix, yang
membaca suatu file masukan yang dibuat oleh users dan keluarannya berupa paper terformat
yang siap untuk publikasi atau cetak. File masukan berisi
.i "text,"
atau kata-kata yang akan dicetak dan
.i "request,"
yang memberikan instruksi pada program groff yang menyatakan bagaimana
.bx "memformat"
salinan yang akan dicetak.
|
Kalau file ini dikompilasi dengan program groff
dengan
perintah:
$ groff -me -Gpet -Tps nama-file > nama-file.ps
atau kalau punya makro sendiri
$ groff -mmakroiww -Gpet -Tps nama-file > nama-file.ps
opsi -Gpet
berfungsi untuk memanggil preprocessor grap,
pic, eqn, dan tbl
akan dihasilkan:
Membuat bagan alir dengan preprocessor pic
.nr pp 12
.pp
Jika kita punya suatu contoh bahan teks yang telah siap, panggil program groff dengan
mengetik sebagai perintah pada shell Unix:
.in +.5i
groff -mmakroiww -T \c
.i "tipe file"
mama-file > nama-file.ekstensi
.pp
Berikut ini adalah beberapa contoh hasil preprocessing program
.bi "pic",
.bi "tbl",
.bi "eqn"
dan
.bi "grap"
untuk mendukung implementasi groff. Keempat program ini berfungsi untuk mengolah
perintah khusus untuk membuat gambar vektor
.i "(pic)", membuat tabel
.i "(tbl)", membuat persamaan matematik
.i "(eqn)", dan membuat grafik plot
.i "(grap)".
.PS
ellipse "bangun";
arrow;
box "\fIcucimuka\fP"
arrow;
box width 1.2 "\fInginternet\fP" "(gosok gigi)" dashed;
arrow;
box "\fImandi\fP";
arrow;
ellipse "berangkat"
.PE
.ce
Bagan 1. Kegiatan pagi hari (digambar dengan program (GNU)pic)
|
Hasil kompilasinya adalah:
Membuat tabel dan persamaan matematik
Membuat tabel
.TS
tab(#);
|l|c|c|.
_
Bahasa#Pembuat#Mesin
_
Fortran#Banyak#Hampir semua mesin
PL/1#IBM#360/370
C#BTL#11/45,H6000,370
BLISS#Carnegie-Mellon#PDP-10,11
IDS#Honeywell#H6000
Pascal#Stanford#370
_
.TE
|
Hasil kompilasinya adalah:
Membuat persamaan matematik
.EQ I
G(z)~mark =~ e sup { ln ~ G(z) }
~=~ exp left ( sum from k>=1 { S sub k z sup k } right )
~=~ prod from k>=1 e sup { S sub k z sup k /k }
.EN
.EQ I
lineup = left ( 1 + S sub 1 z +
{S sub 1 sup 2 z sup 2} over 2! + ... right ) ~
left ( 1+ { S sub 2 z sup 2 } over 2
+ {S sub 2 sup 2 z sup 4} over {2 sup 2 cdot 2! }
+ ... right ) ...
.EN
.EQ I
lineup = sum from m>=0 left (
sum from pile { k sub 1,k sub 2,...,k sub m >=0
above
k sub 1 +2k sub 2 + ... +mk sub m =m}
{S sub 1 sup {k sub 1}} over {1 sup k sub 1 k sub 1!} ~
{S sub 2 sup {k sub 2}} over {2 sup k sub 2 k sub 2!} ~
...
{S sub m sup {k sub m}} over {m sup k sub m k sub m!} ~
right ) ~ z sup m
.EN
|
Hasil kompilasinya adalah:
Contoh persamaan yang lain, silakan coba script eqn
berikut ini:
.EQ
tan theta ~~=~~ { A ~+~ B } over { C ~+~ D }
.EN
.EQ
sqrt a+b + 1 over sqrt {ax sup 2 +bx+c}
.EN
.EQ
sum from i=0 to {i=inf} x sup i
.EN
.EQ
left { a over b + 1 right } ~=~ left ( c over d right ) + left [ e right ]
.EN
.EQ
roman sign (x) ~=~ left { lpile {1 above 0 above -1} ~~ lpile
{if~x>0 above if~x=0 above if~x<0}
.EN
.EQ
left floor x over y right floor <= left ceiling a over b right ceiling
.EN
|
Membuat grafik
.G1
label left "Komposisi (%berat)" left .05
label bot "Jarak titik dalam (mikron)" down .05
draw of solid
draw ef dashed
draw om dotted
draw em solid
copy "CuSn-alloy.dat" thru {
next of at $1, $2
next ef at $1, $3
next om at $1, $4
next em at $1, $5
}
.G2
.G1
graph A
frame ht 1.6667 wid 1.6667
label bot "Timah (%berat)" down .01
label left "Jarak titik (mikron)" left .01
ticks off
copy "CuSn-alloy.dat" thru {"$2" at $2,$1; }
graph A with .Frame.w at A.Frame.e +(.1,0)
frame ht 1.6667 wid 1.6667
label bot "Tembaga (%berat)" down .01
ticks off
copy "CuSn-alloy.dat" thru {"$3" at $3,$1; }
graph A with .Frame.w at A.Frame.e +(.1,0)
frame ht 1.6667 wid 1.6667
label bot "Oksigen (%berat)" down .01
ticks off
copy "CuSn-alloy.dat" thru {"$5" at $5,$1; }
.G2
|
Hasil kompilasinya adalah:
Silakan coba script grap
berikut ini:
.G1
coord x 5,35 y 5,35
ticks off
copy until "END" thru {
.ft H
"x" at $1, $2
pic box ht 0.1 wid 0.1 at Here
.ft R
"" "$3" below at $1, $2
}
10 10 disini
20 20 beberapa
30 30 pic/troff
END
.G2
|
Contoh yang lainya:
Selamat mencoba