Technické
Netechnické
- Jídlo a pití
Pic je součást Documenter's WorkBench (DWB) což je UNIXová sada programů a mikrojazyků pro tvorbu dokumentů (tbl, eqn, pic, grap, chem, ..)
K dispozici jsou následující příkazy
box, circle, ellipse, line, arrow, arc, spline,
text
arrow je alias na line s šipkou na konci, arc je oblouk, spline
je nerovná čára, circle je alias na ellipse
Komentáře začínají #.
Data programu Pic jsou stejně jako v programovacích jazycích sekvence znaků zadané buď do souboru nebo na standartní vstup picu. Pic je filtr.
Každý obrázek začíná sekvencí .PS a končí .PE. Mězi těmito značkami jsou
příkazy.
.PS box "this is" "a box" line "this is" "a line" arrow "this is" "an arrow" .PE
Příkazy berou argumenty. Například line a box mohou mít argument
dashed nebo dotted. Příkaz arc může mít argument cw
(clock-wise).
line dashed "dashed" "line"
Příkazy lze řetězit za sebe. Oddělovač je buď nový řádek nebo středník.
line; arc; arc cw; arrow
Jednotlivé tvary se kreslí postupně za sebe. Pokud není určeno jinak, je to zleva doprava. Následující přiklad je popis schématu tří obdélníků zřetězených za sebe (zleva doprava) šipkami. Příkazy mohou brát argument ohraničený dvojitými uvozokami, který se interpretuje jako popisný text objektu na obrázku (text v obdélníčku, text nad šipkou, ..)
arrow; box "input"; arrow; box "process"; arrow; box "output"; arrow
Pro "posuv" o kousek dál bez kresby nějakého tvaru lze použít příkaz move,
který vloží mezeru mezi přechozí a následující tvar (příkaz). Tyto tvary by
jinak byly těsne za sebou bez mezery.
box; move; box; move; box
Výchozí směr kresby je zleva doprava. Směr lze kdykoliv změnit pomocí:
updownleftright (výchozí)Zachovává se poslední směr.
down; box; arrow; ellipse; arrow; circle left; box; arrow; ellipse; arrow; circle
arrow left; box; arrow; circle; arrow left; arrow; box; arrow; circle; arrow
arrow; circle; down; arrow
Velikost obrázku se udává na startovní značce.
.PS 3.5 box; box; box; .PE
Předchozí příklad znamená, že obrázek bude tři a půl palce široký. Je možné přídat další číslo, vyjadřující výšku.
Velikost objektů lze specifikovat u každého zvlášť.
box width 3 height 0.1 circle radius 0.1
U čar (a šipek) lze definovat jak jsou dlouhé a jaký mají sklon. Šipku lze
nahradit čarou s atributem ↔ (oboustranná šipka)
line up 1 right 2 arrow left 2 move left 0.1 line <-> down 1 "height " rjust
Příkaz arrow je synonymum k line →.
Přidat šipku lze i k dalším objektům.
arc -> arc <-> arc <-
Jednoduché otáčení čarou
line up right; line down; line down left; line up
Čáry mohou být plné, přerušované nebo tečkované.
box dotted; line dotted; move; line dashed; box dashed
Kresba čar může být i neviditelná.
box invis "input"; arrow; box invis "output"
Čáry mohou mít popisky. Buď nahoře, uprostřed (výchozí) nebo pod.
arrow "text" above arrow "text" below
Nastavení objektů lze provádět lokálně ke každému objektu zvlášť a poté pomocí kopírování tato nastavení používat dále. Kopírování se vztahuje na stejné objekty (dvě čáry třeba)
down; box ht 0.2 wid 1.5; move down 0.15; box same; move same; box same
Klíčová slovo heigth lze zkrátit na ht a width na wid.
boxwid = 0.75 boxht = 0.5 linewid = 0.75 lineht = 0.5 circlerad = 0.25 arcrad = 0.25 ellipsewid = 0.75 ellipseht = 0.5 movewid = 0.75 moveht = 0.5 textwid = 0 textht = 0 arrowwid = 0.05 arrowht = 0.1 dashwid = 0.05 arrowhead = 2 maxpsht = 8.5 maxpswid = 11 fillval = 0.3 scale = 1
Globální nastavení vlastností objektů:
boxwid = 0.1; boxht = 1; movewid = 0.2 box; move; box; move; box
arrowhead = 7; arrow; move; arrowhead = 2; arrow
Místo palců lze využívat centimetrů:
scale = 2.54
Nastavení proměnných lze vrátit do původního stavu pomocí reset.
reset boxht, boxwid.reset.Objekty je možné řetězit přímo za sebe (bez mezery).
box fill box ht boxht/2 wid boxwid/2 "hello" at last box
První objekt je na souřadnicích (0,0). Obdelník, kružnice a elipsa jsou umísťovány podle geometrického středu.
Spojky a pozicování:
from, to, by, at up, down, right, left
box ht 0.2 wid 0.2 at 0,0 "1" move right 0.5 box ht 0.2 wid 0.2 "2" move right 0.5 box ht 0.2 wid 0.2 "3"
Slovo 'at' (argument) můze být kdekoliv
box ht 0.2 wid 0.2 at 0,0 box at 0,0 wid 0.2 ht 0.2 box ht 0.2 at 0,0 wid 0.2
Použití from a to.
"+" at 0,0 arc -> from 0.5,0 to 0,0.5 arc -> cw from 0,0 to 1,0.5
arc -> cw from 0,0 to 2,0 rad 15
Objekty lze pojmenovávat pro snažší relativní pozicování.
Box1: box
# prikazy
# prikazy
# prikazy
# prikazy
move to Box1
line from Box1 to Box2 move to Box1 up 0.1 right 0.2 move to Box1 + 0.2,0.1 # stejne jako predchozi line to Box1 - 0.5,0
Box1: Box1 + 1,1
Aktuální pozice ma jméno "Here". Předchozí pozice ma jméno "last".
box "A"; circle "B"; box "C" last box last circle 2nd last box 1st box 2nd box
Každý objekt má devět záchytných bodů. Referencují se názevObjektu[.bod].
B: box "B.c" ht 1 wid 1.5
" B.e" at B.e ljust
" B.ne" at B.ne ljust
" B.se" at B.se ljust
"B.s" at B.s below
"B.n" at B.n above
"B.sw" at B.sw rjust
"B.w" at B.w rjust
"B.nw " at B.nw rjust
Objekty line a arrow mají záchytné body:
startendcenterZáchytné body (left, right, top, bottom) jsou aliasy na (west, east, north, south).
box ht 0.75 wid 0.75 box ht 0.5 wid 0.5 with .sw at last box.se
ellipse ellipse ht .2 wid .3 with .se at 1st ellipse.nw ellipse ht .2 wid .3 with .sw at 1st ellipse.ne
box arrow right from 1/3 of the way between last box.ne and last box.se arrow right from 2/3 <last box.ne, last box.se> A: ellipse ellipse ht .2 wid .3 with .se at 1st ellipse.nw ellipse ht .2 wid .3 with .sw at 1st ellipse.ne circle rad .05 at 0.5 <A.nw,A.c> circle rad 0.5 at 0.5 <A.ne,A.c> arc from 0.25 <A.w,A.e> to 0.75 <A.w,A.e>