picture okruženje omogućava programiranje slika direktno u LaTeX-u. Sa jedne strane, postoje veoma stroga ograničenja, kao što su nagibi delova linija kao i radijusi krugova koji su ograničeni na uzak izbor vrednosti. Sa druge strane, okruženje slike LaTeX2e-a donosi sa sobom u \qbezier komandi, "q" što označava kvadratnu. Dosta najčeće korišćenih krivih kao što su krugovi, elipse, i catenaries mogu se zadovoljavajući aproksimirati koristeći Bezijerove krive, ovo ipak zahteva matematički težak posao. Ako se koristi programski jezik kao Java za pravljenje \qbezier blokova LaTeX ulaznih fajlova, okruženje slike postaje moćno.

LaTeX

Početak
  1. Uvod100% završen  Dec 13, 2015
  2. Instalacija100% završen  Dec 13, 2015
  3. Instalacija dodatnih paketa 100% završen  Dec 13, 2015
  4. Osnove 100% završen  Dec 13, 2015
  5. Kako pronaći pomoć 100% završen  Dec 13, 2015

Zajednički elementi

  1. Struktura dokumenta 100% završen  Dec 28, 2015
  2. Formatiranje teksta 100% završen  Dec 27, 2015
  3. Formatiranje paragrafa 100% završen  Jan 02, 2016
  4. Boje 100% završen  Jan 10, 2016
  5. Slova100% završen  Jan 10, 2016
  6. Struktura listi 100% završen  Jan 10, 2016
  7. Posebni znakovi 100% završen  Jan 10, 2016
  8. Internacionalizacija 100% završen  Jan 10, 2016
  9. Rotacija 100% završen  Jan 10, 2016
  10. Tabele 100% završen  Jan 10, 2016
  11. Stvaranje naslova 100% završen  Jan 10, 2016
  12. Raspored strane 100% završen  Jan 10, 2016
  13. Uvoz grafike 100% završen  Jan 10, 2016
  14. Figure i natpisi100% završen  Jan 10, 2016
  15. Fusnote i Margine100% završen  Jan 10, 2016
  16. Hiperlinkovi 100% završen  Jan 10, 2016
  17. Oznake i referenciranje100% završen  Jan 10, 2016

Mehanika

  1. Greške i upozorenja 75% završen  Jan 02, 2016
  2. Dužine 100% završen  Jan 02, 2016
  3. Brojači 100% završen  Jan 02, 2016
  4. Kutije 100% završen  Jan 02, 2016
  5. Pravila i nosači 100% završen  Jan 02, 2016

Tehnički tekstovi

  1. Matematika100% završen  Jan 10, 2016
  2. Naprednija matematika 75% završen  Jan 10, 2016
  3. Teoreme
  4. Hemijska grafika 75% završen  Jan 02, 2016
  5. Algoritmi 75% završen  Jan 02, 2016
  6. Listiranje izvornog koda 100% završen  Jan 02, 2016
  7. Lingvistika 75% završen  Jan 02, 2016

Posebne strane

  1. Indeksiranje 75% završen  Jan 02, 2016
  2. Rečnik 75% završen  Jan 02, 2016
  3. Upravljanje bibliografijom‎ 75% završen  Jan 10, 2016
  4. Više bibliografije

Posebni dokumenti

  1. Pisma 50% završen  Jan 02, 2016
  2. Prezentacije 75% završen  Jan 02, 2016
  3. Učiteljski deo 75% završen  Jan 10, 2016
  4. Kratka biografija 50% završen  Jan 02, 2016

Kreiranje grafika

  1. Predstavljanje proceduralnih grafika 100% završen  Jan 02, 2016
  2. MetaPostovi 0% završen  Jan 02, 2016
  3. Slika 50% završen  Jan 02, 2016
  4. PGF/TikZ 25% završen  Jan 02, 2016
  5. PSTricks 50% završen  Jan 02, 2016
  6. Xy-pic 25% završen  Jan 02, 2016
  7. Pravljenje 3D grafika 75% završen  Jan 02, 2016

Programiranje

  1. Makroi 100% završen  Jan 10, 2016
  2. Običan TeH‎ 100% završen  Jan 10, 2016
  3. Kreiranje paketa 100% završen  Jan 10, 2016
  4. Teme 75% završen  Jan 10, 2016

Razno

  1. Modularni Dokumenti 100% završen  Jan 10, 2016
  2. Zajedničko pisanje LaTeX dokumenata 75% završen  Jan 10, 2016
  3. Otpremanje u druge formate 100% završen  Jan 10, 2016

Pomoć i preporuke

  1. Najčešće postavljana pitanja 100% završen  Jan 10, 2016
  2. Saveti i trikovi 75% završen  Jan 10, 2016

Dodaci

  1. Autori 0% završen  Jan 10, 2016
  2. Linkovi 0% završen  Jan 10, 2016
  3. Oznake paketa 0% završen  Jan 10, 2016
  4. Primeri LaTeX dokumenata 0% završen  Jan 10, 2016
  5. Indeks 0% završen  Jan 10, 2016
  6. Rečnik naredbi 0% završen  Jan 10, 2016

Iako je pravljenje slike direktno u LaTeX-u veoma ograničeno, i često oduzima dosta vremena, i dalje postoje razlozi da se slika baš u njemu pravi. Dokumenti pravljeni na ovaj način su "mali" u bajtovima, i nema dodatnih fajlova grafika koje moraju da idu uz fajl.

Paketi kao što su pict2e, epic, eepic ili pstricks poboljšavaju originalno okuženje slike, i dosta ojačavaju grafičku moć LaTeX-a.

Osnovne komande

uredi

picture okruženje dostupno je u dosta LaTeX distribucija, bez potrebe za ubacivanjem dodatnih paketa. Ovo okrućenje pravi se pomoću ovih komandi

\begin{picture}(x, y)
 ...
\end{picture}

ili

\begin{picture}(x, y)(x0, y0)
...
\end{picture}

Prvi par,  , utiče na rezervaciju, unutar dokumenta, pravougaonog prostora slike.

Opcioni drugi par,  , dodeljuje proizvoljne kordinate donjem levom uglu zatvorenog pravougaonika .

Brojevi x, y, x0, y0 su brojevi (dužine) u jedinicama \unitlength, koji se mogu uvek restartovati (ali ne u okruženju slike) sa komadama kao što su

\setlength{\unitlength}{1.2cm}

Osnovna vrednost \unitlength je 1pt.

Većina komandi za crtanje ima jednu od dve forme

\put(x, y){object}

ili

\multiput(x, y)(dx, dy){n}{object}

Bezijerove krive su izuzetak. One se crtaju sa ovom komandom

\qbezier(x1, y1)(x2, y2)(x3, y3)

Sa paketom picture apsolutne dimenzije (na primer 15pt) i ekspresije su dozvoljene, zajedno sa brojevima relativnim na \unitlength.

Linijski segmenti

uredi

Linijski segmenti crtaju se sledećim komandama:

\put(x, y){ \line(x1, y1){length} }

\line komanda ima dva argumenta:

  1. vektor pravca,
  2. "dužinu" (otprilike: ovaj argument je vertikalna dužina u slučaju vertikalnih segmentnih linija i u svim ostalim slučajevima je horizontalna udaljenost linije, a ne dužina samog segmenta).

Komponente vektora dužine su ogranićene na intidžere (−6, −5, ... , 5, 6) i moraju da budu prosti brojevi (deljivi samo sa jedan). Donja figura ilustruje svih 25 mogućih naginih vrednosti u prvom kvadrantu. Dužina je reletivna u odnosu na \unitlength.

\setlength{\unitlength}{5cm}
\begin{picture}(1,1)
\put(0,0){\line(0,1){1}}
\put(0,0){\line(1,0){1}}
\put(0,0){\line(1,1){1}}
\put(0,0){\line(1,2){.5}}
\put(0,0){\line(1,3){.3333}}
\put(0,0){\line(1,4){.25}}
\put(0,0){\line(1,5){.2}}
\put(0,0){\line(1,6){.1667}}
\put(0,0){\line(2,1){1}}
\put(0,0){\line(2,3){.6667}}
\put(0,0){\line(2,5){.4}}
\put(0,0){\line(3,1){1}}
\put(0,0){\line(3,2){1}}
\put(0,0){\line(3,4){.75}}
\put(0,0){\line(3,5){.6}}
\put(0,0){\line(4,1){1}}
\put(0,0){\line(4,3){1}}
\put(0,0){\line(4,5){.8}}
\put(0,0){\line(5,1){1}}
\put(0,0){\line(5,2){1}}
\put(0,0){\line(5,3){1}}
\put(0,0){\line(5,4){1}}
\put(0,0){\line(5,6){.8333}}
\put(0,0){\line(6,1){1}}
\put(0,0){\line(6,5){1}}
\end{picture}

 

Strelice

uredi

Strelice se crtaju sa komandom

\put(x, y){\vector(x1, y1){length}}

Za strelice, komponente vektora pravca su još uže ograničene nego li komponente linijskih segmenata, uglavnom na intidžere (−4, −3, ... , 3, 4). Komponente takođe moraju da budu prosti brojevi (deljii samo sa 1). primetite efekte \thicklines komande na dve strlice koje pokazuju na gornji levi ugao.

\setlength{\unitlength}{0.75mm}
\begin{picture}(60,40)
\put(30,20){\vector(1,0){30}}
\put(30,20){\vector(4,1){20}}
\put(30,20){\vector(3,1){25}}
\put(30,20){\vector(2,1){30}}
\put(30,20){\vector(1,2){10}}
\thicklines
\put(30,20){\vector(-4,1){30}}
\put(30,20){\vector(-1,4){5}}
\thinlines
\put(30,20){\vector(-1,-1){5}}
\put(30,20){\vector(-1,-4){5}}
\end{picture}

 

Krugovi

uredi

Komanda

\put(x, y){\circle{diameter}}

Crta krug sa centrom (x, y) i prečnikom (ne poluprečnik) određenim sa diameter. Okruženje slike prima samo prečnike do 14mm, pa čak i ispod ove granice, nisu svi prečnici mogući. \circle* komanda pravi diskove (ispunjene krugove). Kao u slučaju linijskih segmenata, morali biste da potražite dodatne pakete, kao što su eepic, pstricks, ili tikz.

\setlength{\unitlength}{1mm}
\begin{picture}(60, 40)
\put(20,30){\circle{1}}
\put(20,30){\circle{2}}
\put(20,30){\circle{4}}
\put(20,30){\circle{8}}
\put(20,30){\circle{16}}
\put(20,30){\circle{32}}
\put(40,30){\circle{1}}
\put(40,30){\circle{2}}
\put(40,30){\circle{3}}
\put(40,30){\circle{4}}
\put(40,30){\circle{5}}
\put(40,30){\circle{6}}
\put(40,30){\circle{7}}
\put(40,30){\circle{8}}
\put(40,30){\circle{9}}
\put(40,30){\circle{10}}
\put(40,30){\circle{11}}
\put(40,30){\circle{12}}
\put(40,30){\circle{13}}
\put(40,30){\circle{14}}
\put(15,10){\circle*{1}}
\put(20,10){\circle*{2}}
\put(25,10){\circle*{3}}
\put(30,10){\circle*{4}}
\put(35,10){\circle*{5}}
\end{picture}

 

Ovo je još jenda mogućnost u okviru okruženja slike. Ako se ne plašite neophodnih proračunavanja (ili ih ostavite da ih program odradi), poizvoljni krugovi i elipse mogu se zakrpiti pomoću Bezijerovih kvadratnih krivih . Pogledajte Graphics in LaTeX2e za primere i Java izvorne fajlove.

Tekst i formule

uredi

kao što ovaj primer pokazuje, tekst i formule mogu ze pisati u okruženju sa \put komandom na uobičajen način:

\setlength{\unitlength}{0.8cm}
\begin{picture}(6,5)
\thicklines
\put(1,0.5){\line(2,1){3}}
\put(4,2){\line(-2,1){2}}
\put(2,3){\line(-2,-5){1}}
\put(0.7,0.3){$A$}
\put(4.05,1.9){$B$}
\put(1.7,2.95){$C$}
\put(3.1,2.5){$a$}
\put(1.3,1.7){$b$}
\put(2.5,1.05){$c$}
\put(0.3,4){$F=\sqrt{s(s-a)(s-b)(s-c)}$}
\put(3.5,0.4){$\displaystyle s:=\frac{a+b+c}{2}$}
\end{picture}

 

\multiput and \linethickness

uredi

Komanda

\multiput(x, y)(dx, dy ){n}{object}

ima 4 argumenta: početnu tačku, vektor translacije od jednog objekta do drugog, broj objekata, i objekat koji se crta. \linethickness komanda odnosi se na horizontalne i vertikalne segmente, ali ne na kose segmente, a ni na krugove. Ali odnosi se,ipak, na Bezijerove kvadratne krive!

\setlength{\unitlength}{2mm}
\begin{picture}(30,20)
\linethickness{0.075mm}
\multiput(0,0)(1,0){26}%
{\line(0,1){20}}
\multiput(0,0)(0,1){21}%
{\line(1,0){25}}
\linethickness{0.15mm}
\multiput(0,0)(5,0){6}%
{\line(0,1){20}}
\multiput(0,0)(0,5){5}%
{\line(1,0){25}}
\linethickness{0.3mm}
\multiput(5,0)(10,0){2}%
{\line(0,1){20}}
\multiput(0,5)(0,10){2}%
{\line(1,0){25}}
\end{picture}

 

Ovali

uredi

Komanda

\put(x, y){\oval(w, h)}

ili

\put(x, y){\oval(w, h)[position]}

pravi oval centriran u (x, y) sa širinom w i visinom h. Opcioni argumenti pozicije b, t, l, r odnose se na "gore", "dole", "levo", "desno", i mogu niti kombinovani, kao što primer ilustruje. Debljina linije može da se kontroliše pomoću ove dve komande: \linethickness{''length''} sa jedne strane, \thinlines i \thicklines sa druge. Dok se \linethickness{''length''} odnosi na horizontalne i vertikalne linije (i kvadratne bezijerove krive), \thinlines i \thicklines se odnose na krivolinijske segmente kao i na krugove i ovale.

\setlength{\unitlength}{0.75cm}
\begin{picture}(6,4)
\linethickness{0.075mm}
\multiput(0,0)(1,0){7}%
{\line(0,1){4}}
\multiput(0,0)(0,1){5}%
{\line(1,0){6}}
\thicklines
\put(2,3){\oval(3,1.8)}
\thinlines
\put(3,2){\oval(3,1.8)}
\thicklines
\put(2,1){\oval(3,1.8)[tl]}
\put(4,1){\oval(3,1.8)[b]}
\put(4,3){\oval(3,1.8)[r]}
\put(3,1.5){\oval(1.8,0.4)}
\end{picture}

 

Više primena predefinisanih slikovnih sanduka

uredi

sanduk slike može se deklarisati komandom

\newsavebox{name}

pa se definiše sa

\savebox{name}(width,height)[position]{content}

i konačno proizvoljno crtan sa

\put(x, y){\usebox{name}}

Opcioni parametar pozicije ima efekat definisanja "tačke utočišta" savebox-a. U primeru postavljen je na "bl" koji postavlja tačku utočišta u dnu levog ugla savebox-a. Drugi odrednici pozicije su gore i desno.

ime argument se odnosi LaTeX skladišni bin i kao takav ima prirodu komande (što objašnjava kose crte u ovom primeru). Usandučene slike mogu se povezati: U ovom primeru, \foldera se koristi u okvitu definicije \folderb. \oval komanda morala je se koristiti jer \line komanda ne radi ako je dužina segmenta manja od 3 mm.

\setlength{\unitlength}{0.5mm}
\begin{picture}(120,168)
\newsavebox{\foldera}
\savebox{\foldera}
  (40,32)[bl]{% definition
  \multiput(0,0)(0,28){2}
    {\line(1,0){40}}
  \multiput(0,0)(40,0){2}
    {\line(0,1){28}}
  \put(1,28){\oval(2,2)[tl]}
  \put(1,29){\line(1,0){5}}
  \put(9,29){\oval(6,6)[tl]}
  \put(9,32){\line(1,0){8}}
  \put(17,29){\oval(6,6)[tr]}
  \put(20,29){\line(1,0){19}}
  \put(39,28){\oval(2,2)[tr]}
}

\newsavebox{\folderb}
\savebox{\folderb}
  (40,32)[l]{% definition
  \put(0,14){\line(1,0){8}}
  \put(8,0){\usebox{\foldera}}
}

\put(34,26){\line(0,1){102}}
\put(14,128){\usebox{\foldera}}
\multiput(34,86)(0,-37){3}
{\usebox{\folderb}}
\end{picture}

 

Kvadratne Bezijerove krive

uredi

Komanda

\qbezier(x1, y1)(x, y)(x2, y2)

crta kvadratnu Bezijerovu krivu gde  ,   označava krajnje tačke, i   označava srednju kontrolnu tačku. Respektivne tangentne kosine,   i  , mogu se dobaviti iz jednačina

 

Pogledajte Graphics in LaTeX2e za Java program koji pravi neophodnu \qbezier liniju komadne.

\setlength{\unitlength}{0.8cm}
\begin{picture}(6,4)
\linethickness{0.075mm}
\multiput(0,0)(1,0){7}
{\line(0,1){4}}
\multiput(0,0)(0,1){5}
{\line(1,0){6}}
\thicklines
\put(0.5,0.5){\line(1,5){0.5}}
\put(1,3){\line(4,1){2}}
\qbezier(0.5,0.5)(1,3)(3,3.5)
\thinlines
\put(2.5,2){\line(2,-1){3}}
\put(5.5,0.5){\line(-1,5){0.5}}
\linethickness{1mm}
\qbezier(2.5,2)(5.5,0.5)(5,3)
\thinlines
\qbezier(4,2)(4,3)(3,3)
\qbezier(3,3)(2,3)(2,2)
\qbezier(2,2)(2,1)(3,1)
\qbezier(3,1)(4,1)(4,2)
\end{picture}

 

Kao što ovaj primer ilustruje, deljenje kruga u 4 kvadratne Bezijerove krive nije pogodno. Najmanje 8 je potrebno. Figura ponovo pokazuje efekat \linethickness komande na horizontalne i vertikalne linije, pa i na \thinlines i \thicklines komande krivolinijskih segmenata . Takođe pokazuje da obe vrste komandi utiču na kvadratne Bezijerove krive, a svaka komada postaje važnija od prethodne .

Katemptote

uredi
\setlength{\unitlength}{1cm}
\begin{picture}(4.3,3.6)(-2.5,-0.25)
\put(-2,0){\vector(1,0){4.4}}
\put(2.45,-.05){$x$}
\put(0,0){\vector(0,1){3.2}}
\put(0,3.35){\makebox(0,0){$y$}}
\qbezier(0.0,0.0)(1.2384,0.0)
(2.0,2.7622)
\qbezier(0.0,0.0)(-1.2384,0.0)
(-2.0,2.7622)
\linethickness{.075mm}
\multiput(-2,0)(1,0){5}
{\line(0,1){3}}
\multiput(-2,0)(0,1){4}
{\line(1,0){4}}
\linethickness{.2mm}
\put( .3,.12763){\line(1,0){.4}}
\put(.5,-.07237){\line(0,1){.4}}
\put(-.7,.12763){\line(1,0){.4}}
\put(-.5,-.07237){\line(0,1){.4}}
\put(.8,.54308){\line(1,0){.4}}
\put(1,.34308){\line(0,1){.4}}
\put(-1.2,.54308){\line(1,0){.4}}
\put(-1,.34308){\line(0,1){.4}}
\put(1.3,1.35241){\line(1,0){.4}}
\put(1.5,1.15241){\line(0,1){.4}}
\put(-1.7,1.35241){\line(1,0){.4}}
\put(-1.5,1.15241){\line(0,1){.4}}
\put(-2.5,-0.25){\circle*{0.2}}
\end{picture}

 

U ovoj figuri, svaka simetrična polovina katemptote   je aproksmirana Bezijerovom kvadratnom krivom. Desni deo krive završava se u tački (2, 2.7622), gde nagib ima vrednost m = 3.6269.Koristeći ponovo jednačinu (*), možemo izračunati srednju kotrolnu tačku. A one su (1.2384, 0) i (−1.2384, 0). Krstići ukazuju natačke realne katemptote. Greška je jedva vidljiva, jer je manjaid 1%. Ovaj primer ukazuke na korišćenje opcionalnih argumenata \begin{picture} komande. Slika je definisana u odgovarajućim "matematičkim" koordinatama, gde je u komandi

\begin{picture}(4.3,3.6)(-2.5,-0.25)

njen donji levi ugao (označen sa crnim diskom) u koordinatama (−2.5,−0.25).

Plotovanje grafika funkcija

uredi
\setlength{\unitlength}{1cm}
\begin{picture}(6,6)(-3,-3)
\put(-1.5,0){\vector(1,0){3}}
\put(2.7,-0.1){$\chi$}
\put(0,-1.5){\vector(0,1){3}}
\multiput(-2.5,1)(0.4,0){13}
{\line(1,0){0.2}}
\multiput(-2.5,-1)(0.4,0){13}
{\line(1,0){0.2}}
\put(0.2,1.4)
{$\beta=v/c=\tanh\chi$}
\qbezier(0,0)(0.8853,0.8853)
(2,0.9640)
\qbezier(0,0)(-0.8853,-0.8853)
(-2,-0.9640)
\put(-3,-2){\circle*{0.2}}
\end{picture}

 


Kontrolne tačke Bezijerovih krivih izračunate su formulama (*). Pozitivna grana je određena sa  ,   and  ,  . Ponovo, the slika je difinisana u matematički odgovarajućim koordinatama , i donjem levom uglu dodeljene su matematičke koordinate (−3,−2) (crni disk).

okruženje slike i gnuplot

uredi

Moćni naučni paket za plotovanje gnuplot ima mogućnost da se direktno ubaci u pictureokruženje. Često je pogodnije da se plotuje direktno u LaTeX , jer nam to omogućava da se posle ne bavimo sa potencijalno problematičnim postskrpt fajlovima. Plotovanje naučnih podataka (ili, takođe, matematičkih figura) na ovaj način daje mnogo bolju kontrolu, i naravno mogućnost typesetting-a, no dostupan je i za druge potrebe (kao što je postskript ). Takve slike se onda mogu dodati u dokument koristeći \include{} komandu.

N.B. gnuplot je moćan softver sa dosta komandi. Puna diskusija o gnuplot-u ne može se provući kroz jednu notu . Pogledajte [[1]] tutorijal.


Prethodno: MetaPostovi Indeks Sledeće: PGF/TikZ