Пређи на садржај

LaTeX/Слика

Извор: Викикњиге

LaTeX

Почетак
  1. Увод100% завршен  Dec 13, 2015
  2. Инсталација100% завршен  Dec 13, 2015
  3. Инсталација додатних пакета 100% завршен  Dec 13, 2015
  4. Основе 100% завршен  Dec 13, 2015
  5. Како пронаћи помоћ 100% завршен  Dec 13, 2015

Заједнички елементи

  1. Структура документа 100% завршен  Dec 28, 2015
  2. Форматирање текста 100% завршен  Dec 27, 2015
  3. Форматирање параграфа 100% завршен  Јан 02, 2016
  4. Боје 100% завршен  Jan 10, 2016
  5. Слова100% завршен  Jan 10, 2016
  6. Структура листи 100% завршен  Jan 10, 2016
  7. Посебни знакови 100% завршен  Jan 10, 2016
  8. Интернационализација 100% завршен  Jan 10, 2016
  9. Ротација 100% завршен  Jan 10, 2016
  10. Табеле 100% завршен  Jan 10, 2016
  11. Стварање наслова 100% завршен  Jan 10, 2016
  12. Распоред стране 100% завршен  Jan 10, 2016
  13. Увоз графике 100% завршен  Jan 10, 2016
  14. Фигуре и натписи100% завршен  Jan 10, 2016
  15. Фусноте и Маргине100% завршен  Jan 10, 2016
  16. Хиперлинкови 100% завршен  Jan 10, 2016
  17. Ознаке и референцирање100% завршен  Jan 10, 2016

Механика

  1. Грешке и упозорења 75% завршен  Јан 02, 2016
  2. Дужине 100% завршен  Јан 02, 2016
  3. Бројачи 100% завршен  Јан 02, 2016
  4. Кутије 100% завршен  Јан 02, 2016
  5. Правила и носачи 100% завршен  Јан 02, 2016

Технички текстови

  1. Математика100% завршен  Jan 10, 2016
  2. Напреднија математика 75% завршен  Jan 10, 2016
  3. Теореме
  4. Хемијска графика 75% завршен  Јан 02, 2016
  5. Алгоритми 75% завршен  Јан 02, 2016
  6. Листирање изворног кода 100% завршен  Јан 02, 2016
  7. Лингвистика 75% завршен  Јан 02, 2016

Посебне стране

  1. Индексирање 75% завршен  Јан 02, 2016
  2. Речник 75% завршен  Јан 02, 2016
  3. Управљање библиографијом‎ 75% завршен  Jan 10, 2016
  4. Више библиографије

Посебни документи

  1. Писма 50% завршен  Јан 02, 2016
  2. Презентације 75% завршен  Јан 02, 2016
  3. Учитељски део 75% завршен  Jan 10, 2016
  4. Кратка биографија 50% завршен  Јан 02, 2016

Креирање графика

  1. Представљање процедуралних графика 100% завршен  Јан 02, 2016
  2. МетаПостови 0% завршен  Јан 02, 2016
  3. Слика 50% завршен  Јан 02, 2016
  4. PGF/TikZ 25% завршен  Јан 02, 2016
  5. PSTricks 50% завршен  Јан 02, 2016
  6. Xy-pic 25% завршен  Јан 02, 2016
  7. Прављење 3D графикa 75% завршен  Јан 02, 2016

Програмирање

  1. Макрои 100% завршен  Jan 10, 2016
  2. Обичан ТеХ‎ 100% завршен  Jan 10, 2016
  3. Креирање пакета 100% завршен  Jan 10, 2016
  4. Теме 75% завршен  Jan 10, 2016

Разно

  1. Модуларни Документи 100% завршен  Jan 10, 2016
  2. Заједничко писање LaTeX докумената 75% завршен  Jan 10, 2016
  3. Отпремање у друге формате 100% завршен  Jan 10, 2016

Помоћ и препоруке

  1. Најчешће постављана питања 100% завршен  Jan 10, 2016
  2. Савети и трикови 75% завршен  Jan 10, 2016

Додаци

  1. Аутори 0% завршен  Jan 10, 2016
  2. Линкови 0% завршен  Jan 10, 2016
  3. Ознаке пакета 0% завршен  Jan 10, 2016
  4. Примери LaTeX докумената 0% завршен  Jan 10, 2016
  5. Индекс 0% завршен  Jan 10, 2016
  6. Речник наредби 0% завршен  Jan 10, 2016

picture окружење омогућава програмирање слика директно у LaTeX-у. Са једне стране, постоје веома строга ограничења, као што су нагиби делова линија као и радијуси кругова који су ограничени на узак избор вредности. Са друге стране, окружење слике LaTeX2e-а доноси са собом у \qbezier команди, "q" што означава квадратну. Доста најчеће коришћених кривих као што су кругови, елипсе, и catenaries могу се задовољавајући апроксимирати користећи Безијерове криве, ово ипак захтева математички тежак посао. Ако се користи програмски језик као Java за прављење \qbezier блокова LaTeX улазних фајлова, окружење слике постаје моћно.

Иако је прављење слике директно у LaTeX-у веома ограничено, и често одузима доста времена, и даље постоје разлози да се слика баш у њему прави. Документи прављени на овај начин су "мали" у бајтовима, и нема додатних фајлова графика које морају да иду уз фајл.

Пакети као што су pict2e, epic, eepic или pstricks побољшавају оригинално окужење слике, и доста ојачавају графичку моћ LaTeX-а.

Основне команде

[уреди]

picture окружење доступно је у доста LaTeX дистрибуција, без потребе за убацивањем додатних пакета. Ово окрућење прави се помоћу ових команди

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

или

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

Први пар, , утиче на резервацију, унутар документа, правоугаоног простора слике.

Опциони други пар, , додељује произвољне кординате доњем левом углу затвореног правоугаоника .

Бројеви x, y, x0, y0 су бројеви (дужине) у јединицама \unitlength, који се могу увек рестартовати (али не у окружењу слике) са комадама као што су

\setlength{\unitlength}{1.2cm}

Основна вредност \unitlength је 1pt.

Већина команди за цртање има једну од две форме

\put(x, y){object}

или

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

Безијерове криве су изузетак. Оне се цртају са овом командом

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

Са пакетом picture апсолутне димензије (на пример 15pt) и експресије су дозвољене, заједно са бројевима релативним на \unitlength.

Линијски сегменти

[уреди]

Линијски сегменти цртају се следећим командама:

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

\line команда има два аргумента:

  1. вектор правца,
  2. "дужину" (отприлике: овај аргумент је вертикална дужина у случају вертикалних сегментних линија и у свим осталим случајевима је хоризонтална удаљеност линије, а не дужина самог сегмента).

Компоненте вектора дужине су огранићене на интиџере (−6, −5, ... , 5, 6) и морају да буду прости бројеви (дељиви само са један). Доња фигура илуструје свих 25 могућих нагиних вредности у првом квадранту. Дужина је релетивна у односу на \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}

Стрелице

[уреди]

Стрелице се цртају са командом

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

За стрелице, компоненте вектора правца су још уже ограничене него ли компоненте линијских сегмената, углавном на интиџере (−4, −3, ... , 3, 4). Компоненте такође морају да буду прости бројеви (дељии само са 1). приметите ефекте \thicklines команде на две стрлице које показују на горњи леви угао.

\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}

Кругови

[уреди]

Команда

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

Црта круг са центром (x, y) и пречником (не полупречник) одређеним са diameter. Окружење слике прима само пречнике до 14mm, па чак и испод ове границе, нису сви пречници могући. \circle* команда прави дискове (испуњене кругове). Као у случају линијских сегмената, морали бисте да потражите додатне пакете, као што су eepic, pstricks, или 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}

Ово је још јенда могућност у оквиру окружења слике. Ако се не плашите неопходних прорачунавања (или их оставите да их програм одради), поизвољни кругови и елипсе могу се закрпити помоћу Безијерових квадратних кривих . Погледајте Graphics in LaTeX2e за примере и Java изворне фајлове.

Текст и формуле

[уреди]

као што овај пример показује, текст и формуле могу зе писати у окружењу са \put командом на уобичајен начин:

\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

[уреди]

Команда

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

има 4 аргумента: почетну тачку, вектор транслације од једног објекта до другог, број објеката, и објекат који се црта. \linethickness команда односи се на хоризонталне и вертикалне сегменте, али не на косе сегменте, а ни на кругове. Али односи се,ипак, на Безијерове квадратне криве!

\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}

Овали

[уреди]

Команда

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

или

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

прави овал центриран у (x, y) са ширином w и висином h. Опциони аргументи позиције b, t, l, r односе се на "горе", "доле", "лево", "десно", и могу нити комбиновани, као што пример илуструје. Дебљина линије може да се контролише помоћу ове две команде: \linethickness{''length''} са једне стране, \thinlines и \thicklines са друге. Док се \linethickness{''length''} односи на хоризонталне и вертикалне линије (и квадратне безијерове криве), \thinlines и \thicklines се односе на криволинијске сегменте као и на кругове и овале.

\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}

Више примена предефинисаних сликовних сандука

[уреди]

сандук слике може се декларисати командом

\newsavebox{name}

па се дефинише са

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

и коначно произвољно цртан са

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

Опциони параметар позиције има ефекат дефинисања "тачке уточишта" savebox-а. У примеру постављен је на "bl" који поставља тачку уточишта у дну левог угла savebox-а. Други одредници позиције су горе и десно.

име аргумент се односи LaTeX складишни bin и као такав има природу команде (што објашњава косе црте у овом примеру). Усандучене слике могу се повезати: У овом примеру, \foldera се користи у оквиту дефиниције \folderb. \oval команда морала је се користити јер \line команда не ради ако је дужина сегмента мања од 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}

Квадратне Безијерове криве

[уреди]

Команда

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

црта квадратну Безијерову криву где , означава крајње тачке, и означава средњу контролну тачку. Респективне тангентне косине, и , могу се добавити из једначина

Погледајте Graphics in LaTeX2e за Java програм који прави неопходну \qbezier линију комадне.

\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}

Као што овај пример илуструје, дељење круга у 4 квадратне Безијерове криве није погодно. Најмање 8 је потребно. Фигура поново показује ефекат \linethickness команде на хоризонталне и вертикалне линије, па и на \thinlines и \thicklines команде криволинијских сегмената . Такође показује да обе врсте команди утичу на квадратне Безијерове криве, а свака комада постаје важнија од претходне .

Катемптоте

[уреди]
\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}

У овој фигури, свака симетрична половина катемптоте је апроксмирана Безијеровом квадратном кривом. Десни део криве завршава се у тачки (2, 2.7622), где нагиб има вредност m = 3.6269.Користећи поново једначину (*), можемо израчунати средњу котролну тачку. А оне су (1.2384, 0) и (−1.2384, 0). Крстићи указују натачке реалне катемптоте. Грешка је једва видљива, јер је мањаид 1%. Овај пример указуке на коришћење опционалних аргумената \begin{picture} команде. Слика је дефинисана у одговарајућим "математичким" координатама, где је у команди

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

њен доњи леви угао (означен са црним диском) у координатама (−2.5,−0.25).

Плотовање графика функција

[уреди]
\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}


Контролне тачке Безијерових кривих израчунате су формулама (*). Позитивна грана је одређена са , and , . Поново, the слика је дифинисана у математички одговарајућим координатама , и доњем левом углу додељене су математичке координате (−3,−2) (црни диск).

окружење слике и gnuplot

[уреди]

Моћни научни пакет за плотовање gnuplot има могућност да се директно убаци у pictureокружење. Често је погодније да се плотује директно у LaTeX , јер нам то омогућава да се после не бавимо са потенцијално проблематичним постскрпт фајловима. Плотовање научних података (или, такође, математичких фигура) на овај начин даје много бољу контролу, и наравно могућност typesetting-а, но доступан је и за друге потребе (као што је постскрипт ). Такве слике се онда могу додати у документ користећи \include{} команду.

N.B. gnuplot је моћан софтвер са доста команди. Пуна дискусија о gnuplot-у не може се провући кроз једну ноту . Погледајте [[1]] туторијал.


Претходно: МетаПостови Индекс Следеће: PGF/TikZ