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

Кроз овај водич видели смо шта је могуће урадити и како је оствариво, међутим, намеће се питање: желим да напишем правилан текст користећи LaTeX, шта онда радити? Одакле почети? Ово је кратак, корак-по-корак, приручник о томе како започети документ правилно, држањем структуре на високом нивоу. Суштина је оргранизовање фајлова коришћењем модуларних особина које поседује LaTeX. На овај начин, биће веома лако правити модификације, чак ако је документ скоро завршен. Ово су све само предлози, али можда вас инспиришу да напишете свој документ.

Структура пројекта[уреди]

Направити јасну структуру целог пројекта на овај начин:

  1. направити директорију за овај пројекат. У наставку ћемо тај директоријум називати коренски директоријум
  2. направити нова два директоријума унутар коренског, један за LaTeX документе, други за слике. Пошто ћете често морати да пишете њихова имена, пожељно би било да буду кратка. Наш предлог је tex и img.
  3. направити свој документ (назваћемо га document.tex, можете користити име које се вама свиђа) и свој пакет (на пример mystyle.sty); други фајл ће помоћи у одржавању јасноће кода.

Ако сте пратили све ове кораке, ови фајлови би требало да се налазе у коренском директоријуму, користећи "/" за сваку директорију:

./document.tex
./mystyle.sty
./tex/
./img/

ништа друго.

Навођење LaTeXа на обрађивање више фајлова[уреди]

Како ваш рад буде растап, ваш LaTeX фајл може постати гломазан и збркан, посебно ако пишете дугачак чланак са суштинским, дискретним одсецима, или целу књигу. У таквим случајевима, практично је поделити ваш фајл на неколико делова. На пример, ако пишете књигу, логично је да свако поглавље пишете као другачији .tex фајл. LaTeX ово чини једноставним захваљујући двема командама:

\input{име фајла}

и

\include{име фајла}

Упоређивање метода: унос против укљученог[уреди]

Разлика између ова два начина укључивања фајлова је објашњена испод. Оно што им је заједничко јесте то да они обрађују садржај filename.tex пре него што наставе са остатком основног фајла (фајл који садржи ове исказе). Када компајлер обрађује ваш основни фајл и стигне до команди \input или \include, он прочита filename.tex и обрађује садржај у сагласности са форматизованим командама које су назначене у основном фајлу. Овако можете убацити све опције форматирања у основни фајл и испишете садржај користећи \input или \include у фајловима који имају прави садржај вашег рада. Ово значи да, важан део вашег радног процеса, т.ј. писање, је јасно одвојено од опција форматирања. Ово је један од разлога због којих је LaTeX добар за озбиљно писање! Тиме ћете имати посла одвојено са текстом и основним командама као што су \section, \emph итд. Документ ће бити неоптерећен и много лакши за обрађивање.

Друга метода укључивања фајла, \include{filename}, разликује се од прве у појединим битним цртама. Не можете “угнездити” \include изказ у фајлу који је додан преко \include, с обзиром на \input, у другу руку, дозвољава позивање фајлова који сами од себе позивају друге фајлове, ad infinitum (у реду, скоро!). Можете, међутим, \include фајл који садржи једну или више \input команди. Молим вас, одуприте се искушењу “угнежђавања” фајлова на овај начин, једноставно јер систем то може учинити: завршићете са још једном врстом сложености!

Још једна битна разлика јесте та што коришћењем \include изазваћете прелом странице (што је идеално за поглавља књиге), с обзиром на то да \input команда то не ради (што је идеално за коришћење изнутра, рецимо, дугачак чланак са дискретним насловима, који нису нормално подешени на новој страни).

У било ком случају .tex растегљивост имена фајла је препуштено слободном избору.

Рад на дискретним деловима вашег документа трпи последице од тога како је ваш основни фајл компајлован; ово ће се разматрати испод.

Коришћење другачијих путања[уреди]

Када LaTeX компајлер пронађе упућивање на спољашњи фајл у основном фајлу, тражиће га у у истом директоријуму. Штавише, суштински можете упутити на било који фајл у вашем систему, коришћењем и апсолутне и релативне путање.

Апсолутна путања је пуна путања- и име фајла у којем је сваки елемент означен. Дакле, filename.tex може имати пуну путању,

\input{/home/user/texfiles/filename.tex}

Уколико сте направили директорију myfiles за ваш писани пројекат, у вашем texfiles директоријуму, његова пуна путања била би,

\input{/home/user/texfiles/myfiles/filename.tex}

Очигледно, коришћење апсолутне путање је неефективно ако се односи на фајл у тренутном директоријуму. Ако, међутим, треба да обухватите фајл који се увек налази у специфичном делу вашег система, можете га упутити на апсолутну путању, на пример,

\input{/home/user/documents/useful/foo.tex}

У пракси, апсолутна путања се, генерално, користи када се упућујемо на фајл који је баш забачен у систему (или пак и на другом серверу!). Једна реч упозорења: не остављајте празан простор у именима фајлова, могу да изазову двосмислено понашање. Или не остављајте размаке или користите доњу црту _ уместо размака.

Можда ћете морати, међутим, да направите ваш извор преносивим (на други рачунар или на друго место на хард диску), у том случају, релативне путање треба да буду коришћене уколико желите да избегнете преписивање имена путања. Или, релативна путања, једноставно, може бити ефикаснији и елегантнији начин “обраћања” фајлу. Релативна путања је она која је дефинисана у релацији са тренутном директоријом, у нашем случају, са оном која садржи основни фајл. LaTeX користи стандардну UNIX нотацију: са једноставном тачком . обраћате се тренутном директоријуму, и са две тачке .. обраћате се претходном директоријуму, то је онај изнад тренутног директоријума у стаблу система. Коса црта / се користи да одвоји другачије компоненте од имена путање: директоријуми и имена фајлова. Дакле, ./ се обраћате тренутном директоријуму, а ../ претходном, коришћењем ../../ обраћате се директоријуму који је два корака изнад у стаблу система. Писање

\input{./filename.tex}

имаће потпуно исти ефекат као и писање

\input{filename.tex}

али, уколико вам је лакше да све своје фајлове ставите у потдиректоријум тренутног директоријума, под називом myfiles, том фајлу бисте се обраћали

\input{./myfiles/filename.tex}

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

\input{../../documents/useful/foo.tex}

Наравно, сви често коришћени системи – Linux, Mac OS X и Windows – такође садрже UNIX ./, ../ особину, наведену изнад. Приметити, међутим, да LaTeX користи деснонакривљене црте / чак и на Microsoft Windows платформама, које користе левонакривљене линије \ у путањама. LaTeX имплементације за Windows систем изводе ово претварање за вас, што обезбеђује да ће ваш документ бити валидан за све инсталације.

Флексибилност, наслеђена на начин на који је LaTeX интегрисан са новим фајл оперативним системима, дозвољава унос фајлова на начин који вама одговара, по личним подешавањима.

Приликом коришћења релативне путање унутар LaTeX фајла, унешене кодом \input или \include, битно је напоменути да су путање релативне у односу на директоријум у којем је основни .tex фајл, а не директоријум у којем се укључен (или унесен) фајл налази. Ово ће вероватно бити проблем ако користите фолдер за свако ново поглавље, са сликама у сваком поглавље фолдеру, и коришћење \include за читање извора поглавља у главном LaTeX фајлу у родитељском фолдеру.

Компајловање основног фајла[уреди]

Када компајлујете свој документ, референце страна ће се променити у зависности од вашег коришћења \input и \include команди. Углавном LaTeX корисници компајлују делове докумената како би проверили да ли су сама поглавља синтатски коректна као и изглед, какав је писац замислио. Потпуно компајловање се, генерално, врши како би се прегледао потпуни нацрт или финална верзија. У таквим случајевима, у таквим случајевима је апсолутно неопходно покренути LaTeX два или више пута како би се средили бројеви страна, референце, итд. (посебно ако користите библиографске софтверске алате попут BiBTeX).

Најједноставнији начин провере да је једна или више различитих компоненти вашег рада синтактички снажна, јесте коментарисање команде знаком процента, на пример:

\documentclass{article}
\begin{document}
%\input{Наслов_1}
%\input{Наслов_2}
%\input{Наслов_3}
\input{Наслов_4}
%\input{Наслов_5}
\end{document}

Овај код ће да процесује ваш основни фајл са article конвензијом, али само ће материјал у фајлу Section_4.tex бити извшен. Ако је то, рецимо, последња ствар коју је требало проверити пре слања неким великим новинама, једноставно бисте побрисали све знакове процента и поново покренули LaTeX, и понављали процес компајловања како бисте средили све референце, бројеве страна и тaко.

Коришћење \includeonly[уреди]

Коришћење ове команде обезбеђује комплексније, самим тиме и корисније могућности. Ако укључите предстојећу команду у ваш увод, т.ј. пре \begin{document},

\includeonly{име фајла 1,име фајла 2,...}

само ће фајлови наведени између витичастих заграда бити убачени. Приметити да можете имати један или више фајлова као аргумент овој команди: одвојити их зарезом, не размацима. Уколико користите апсолутне или релативне путање до фајлова, укуцајте целу референцу.

Ово захтева да постоје \include команде у документу који одређује ове фајлове. Име фајла треба бити написано без .tex продужетка фајла:

\documentclass{book}
\includeonly{Поглавље_1,Поглавље_4}  % компајлује смао поглавља 1 и 4, просторни карактери нису укључени
\begin{document}
\include{Поглавље_1}                % изоставља '.tex' продужетак
\include{Поглавље_2}
\include{Поглавље_3}
\include{Поглавље_4}
\end{document}

Овај код би обрадио основни фајл али би само укључио саржај ауторовог првог и четвртог поглавња (Поглавље_1.tex и Поглавље_4.tex). Оно што је важно, ова алтернатива одржава онолико .aux информација колико је могуће из претходног руковођења, дакле, много мање забрља попречне-референце од импровизованог предлога изнад.

Одвајање компилација наследничких докумената[уреди]

Недостатак тврдоглавог коришћења \input и \include јесте то што се само основни фајл може компајловати. Међутим, можете одлучити да боље радите на појединачним насловима и пожелите да компајлујете те појединачне наслове. Постоји неколико доступних пакета који ће решити ове проблеме.

Подфајлови[уреди]

subfiles package омогућује компајловања наслова документа коришћењем исте преамбула као код главног документа.

У главном документу, пакети морају бити учитани као:

\usepackage{subfiles}

Уместо коришћења \input и \include, наследнички документи морају бити учитани као:

\subfile{filename}

Наследнички документ мора почети следећим изказима:

\documentclass[main.tex]{subfiles}
\begin{document}

и завршити се:

\end{document}

Укратко, основни документ (main.tex) изледа као:

\documentclass{book}
\usepackage{subfiles}
\begin{document}
%% саржај мог документа
\subfile{chapter1}
%% још садржаја мог документа
\end{document}

и Поглавље 1 (chapter1.tex) изгледа као:

\documentclass[main.tex]{subfiles}
\begin{document}
%% садржај Поглавља 1
%%
%% још садржаја Поглавља 1 
\end{document}

Поједине Линукс дистрибуције немају потфајл пакете у својим LaTeX дистрибуцијама, јер нису биле укључене пре TeXLive 2012. Можете скинути subfiles.tds.zip са CTAN. Овај пакет ће садржати два фајла subfiles.cls и subfiles.sty. Померите ове фајлове у директоријум под именом subfiles у путањи /usr/share/texmf/tex/latex. Ово још увек неће учинити пакете доступним; texhash мора бити први извршен. Сада сте спремни!

Стендалоун[уреди]

standalone package је дизајниран за померање више у супротном смеру него подфајлови. Он обезбеђује средства за импортовање преамбуле наследничког документа у главни документ, дозвољавајући флексибилан начин за укљуливање текста или слике у више докумената (нпр. чланак и presentation).

У главном документу, пакет мора бити додат као:

\usepackage{standalone}

Наследнички документи се учитавају преко \input или \include.

Наследнички документ сарджи, на пример, следеће исказе:

\documentclass{standalone}
% учитава било који пакет потребан за документ
\begin{document}
% Ваш документ или слика
\end{document}

Укратко, основни документ (main.tex) изгледа као:

\documentclass{book}
\usepackage{standalone}
\begin{document}
%% садржај мог документа
\input{chapter1}
%% још садржаја мог документа
\end{document}

и Поглавље 1 (chapter1.tex) изгледа као:

\documentclass{standalone}
% Преамбула
\begin{document}
%% садржај Поглавља 1
%%
%% још садржаја Поглавља 1
\end{document}

Убацивање PDF фајлова[уреди]

Ако треба да убаците постојећи, вероватно вишестрани, PDF фајл у ваш LaTeX документ, било да јесте или није укључени PDF компајлован LaTeXом или неким другим алатом, размотрите коришћење pdfpages package. У преамбули, укључите пакет:

\usepackage[final]{pdfpages}

Пакет вам такође дозвољава да одредите које стране желите да укључите: на пример, да убаците стране од треће до шесте из неког фајла insertme.pdf, користите:

\includepdf[pages=3-6]{insertme.pdf}

Да убаците цео insertme.pdf:

\includepdf[pages=-]{insertme.pdf}

За целу функционалност, компајлујте излаз са pdflatex.

Додатне информације можете пронаћи у поглављу Отпремање у друге формате.

Фајл mystyle.sty[уреди]

Уместо убацивања свих потребних пакета на почетку документа, као што бисмо могли, најбољи начин за убацивање свих потребних пакета јесте убацивање у други лажан пакет под називом mystyle, који ћете направити само за ваш документ. Добар разлог са овако нешто јесте тај да ћете морати само да додате један једини \usepackage у ваш документ, чиме ће ваш код бити много прегледнији. Поврх тога, сав инфо вашег пакета биће унутар документа, дакле, када будете започињали нови документ мораћете да копирате тај фајл и укључите га правилно, тиме имаћете стил који сте већ раније користили.

Креирање свог стила је веома једноставно: направите фајл под називом mystyle.sty (име може бити по жељи, али мора да се завршава са ".sty"). На поечетку, напишите:

\ProvidesPackage{mystyle}

Онда, убаците све жељене пакете стандардном командом \usepackage{...} као што бисте нормално и урадили, промените вредности свих променљивих које желите, итд. Радиће као да сте код који сте убацили овде копирали и залепили унутар документа.

Док пишете, кад год морате да донесете одлуку поводом форматирања, дефинишите своју команду за то и додајте је у ваш mystyle.sty:нек LaTeX ради за вас. Ако учините тако, биће веома лако променити га, ако се предомислите.

Ово је заправо почетак писања пакета. Погледати LaTeX/Макрои за више детаља.

За листу неколицине пакета које можете користити, видети Листа пакета одељак.

Главни документ document.tex[уреди]

Онда направите фајл под називом document.tex; ово ће бити главни фајл, онај који ћете компајловати, иако не би требало често да га уређујете јер ћете радити на другим фајловима. Требало би овако да изгледа (ово је пример кода за report, али га лако можете променити у article или било шта друго):

\documentclass[12pt,a4paper]{report}
\usepackage{graphicx}
\usepackage{ifpdf}
\ifpdf
   % овде убацити пакете само за PDF:
   \DeclareGraphicsExtensions{.pdf,.png,.jpg,.mps}
   \usepackage{hyperref} 
\else
   % овде убацити пакете само за DVI:
\fi

% све остале пакете убацити овде:

\usepackage{mystyle}

\begin{document}

\input{./tex/title.tex}
%\maketitle
\tableofcontents
\listoffigures
\listoftables

\input{./tex/intro.tex}
\input{./tex/main_part.tex}
\input{./tex/conclusions.tex}

\appendix
\input{./tex/myappendix.tex}


% Библиографија:
\clearpage
\addcontentsline{toc}{chapter}{Bibliography}
\input{./tex/mybibliography.tex}

\end{document}

Овде је коришћено доста кодова које смо изразили у претходном одељку. На почетку је хедер, дискутован у Савети и трикови одељку, тако да бисте могли да компајлујете и у DVI и PDF. Онда импортујете једини потребан пакет, а то је mystyle.sty (приметити да у коду мора бити импортован без продужетка), затим почиње ваш документ. Онда убацује наслов: није нам се свидео излаз \maketitle , те смо направили наш, код за то биће у фајлу под називом title.tex у фолдеру tex који смо раније направили. Како га написати, објашњено је у Стварање наслова одељку. Затим су убачени садржај, слике и табеле. Уколико их не желите, само прокоментаришите те редове. Затим је убачен главни део документа. Као што можете видети, нема текста у document.tex: све је у другим фајловима у tex директоријуму тако да их можете лако уређивати. Одвајамо наш текст од структуралног кода, и тиме побољшавамо "То што видиш је то што мислиш" природу LaTeXа. Затим можемо видети додатак и коначно Библиографију. У одвојеном је фајлу и ручно се додаје у садржај користећи савет наведен у Савети и трикови.

Једном када сте направили document.tex више нећете морати да га уређујете, осим ако не будете желели да убаците још један фајл у tex директоријум, али ово се неће дешавати веома често. Сада можете да пишете свој документ, одвајати га у колико год хоћете фајлова и додавати многе слике, а да се не збуните: захваљујући строгој структури, коју сте наместили вашем пројекту, бићете у могућности сва ваша уређивања јасно да пратите.

Предлог: немојте да називате ваше фајлове попут "поглавље_01.tex" или "слика_03.png", т.ј. покушајте да избегнете бројеве у именима фајлова: ако се нумерација коју LaTeX даје аутоматски, разликује од ваше (могућност је велика) доста ћете се збунити. Када именујете фајл, застаните за тренутак, размислите о кратком имену које које може у потпуности објаснити шта је унутар фајла, а да не буде двосмислено, уштедеће вам време како документ буде растао.

Спољни линкови[уреди]


Претходно: Теме Индекс Следеће: Заједничко писање LaTeX докумената