LaTeX/Заједничко писање 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


Напомена: Овај Викибук се односи на чланак Tools for Collaborative Writing of Scientific LaTeX Documents од Arne Henningsen који је објављен у The PracTeX Journal 2007, број 3 (http://www.tug.org/pracjourn/).


Резиме[уреди]

Заједничко писање докумената захтева јаку синхронизацију међу ауторима. Ова Вики књига описује могућ начин за организацију заједничке припреме LaTeX докумената. Претстављено решење је примарно базирано на систему за контролу верзија, под именом Субверзија (http://subversion.apache.org/). Вики књига описује како Субверзија може бити коришћена заједно са неколико различитих софтверских алата и LaTeX пакета за организацију заједничке припреме LaTeX докумената.

Друге методе[уреди]

  • Можете користити једно од онлајн решења набројаних у Инсталација поглављу. Многи од њих имају карактеристике сарадње.
  • Још једна опција за сарадњу је dropbox. Оно има 2 GB слободног простора и система за креирање верзија. Ради као SVN, али је више аутоматизовано и отуд посебно корисно за почетне LaTeX кориснике. Међутим, Dropbox није истински контролни систем за креирање верзија, и као такав не дозвољава враћање чланка на претходну верзију.
  • Можете користити онлајн заједнчки алат направљен на врху контролног система за кеирање верзија, као што је Authorea или ShareLatex. Authorea извршава већину задатака описаних у овом документу, али у позадини (направљена је у GUIу). Омогућава аутору да уђе у LaTeX или Markdown помоћу GUI са математичким нотацијама, фигурама, d3.js нацртима, IPython бележницама, подацима, и табелама. Сав садршај је донесен у HTML5. Authorea такође садржи систем коментара и чет везан са чланке како би олакшала сарадњу и преглед.
  • Како LaTeX систем користи једноставан текст, могу се користити синхрони заједнички уредници попуз Gobby. У Губиу можете писати свој документ у сарадњи са било ким у реалном времену. Строго је препоручљиво да користите utf8 шивровање (посебно ако има корисника који сарађују на вишеструким оперативним системима) и ставилну мрежу (типично жичану).
  • TitanPad (или други clones од EtherPad). За компајлисање користити команду:
    wget -O filename.tex "http://titanpad.com/ep/pad/export/xxxx/latest?format=txt" && (latex filename.tex)
    где би 'xxxx' требало да буде замењено пад бројем (налик 'z7rSrfrYcH').
  • Са привреженом Линукс кутијом са LaTeX & Dropbox могуће је користити Google docs и some scripting да би добили аутоматски генерисане PDFs на Dropbox са ажурирања од Google Docs.
  • Можете користити distributed version control system као што је Mercurial или Git. Ово је дефинитивно решење за кориснике који траже контролу и напредне функције као што су грана и интегрисање. Крива учења би била стрмија од решења која би била нађена на интернету.

Увод[уреди]

Заједничка припрема докумената знатну количину координације између аутора. Координација може бити организована на мноштво другачијих начина, где најбољи начин зависи од датих околности.

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


Рокада докумената[уреди]

Постоје разни начини рокаде докумената међу ауторима. Једна могућност је састављање докумената разменом истих путем електронске поште. Предност ове методе јесте то што чести корисници генерално не морају да инсталирају и науче ниједан додатан софтвер, јер сви аутори имају електронску пошту. Штавише, аутор који је модификовао документе може лако да пошаље исте и објасни промене, такође, путем електронске поште. Нажалост, постоји проблем када два или више аутора раде истовремено на истом документу. Дакле, како аутори могу да синхронизују ове датотеке?

Друга могућност је да се документ обезбеди на учесталом архивском серверу, који је доступан у многим одељењима. Ризик писања преко туђе модификације може бити елиминисана закључавањем датотека који се тренутно уређују. Међутим, генерално, приступ архивском серверу се може имати само унутар одељења. Одатле, аутори ван одељења не могу користити ову методу како би ажурирали/извршили своје промене. У овом случају, они би морали да користе други начин, како би превазишли овај проблем. Дакле, како аутори могу да приступе тим датотекама?

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

Штабише, систем за контролу верзија је користан чак ако један корисник ради на датотеци. Прво, може да прати (можда опозове) све претходне модификације. Друго, ово је погодан начин за чување резерви датотека на другим рачунарима. Треће, ово омогућава кориснику да лако мења рачунаре (нпр. канцеларија, лаптоп, код куће).

Систем за контролу верзија Субверзија[уреди]

Subversion (SVN) долази као наследник популарног система за контролу верзија ЦВС. СВН функционише по принципу клијент-сервер, у којем централни сервер прихвата складиште пројекта које корисници могу локално да копирају и модификују. Складиште је слично као и библиотеке које допуштају корисницима да провере тренутни пројекат, направе промене, и онда га опет провере и унесу назад. Сервер записује све промене које корисник унесе (обично са поруком која резимира све промене које је корисник направио) тако да остали корисници могу лако применити те промене на њихове локалне датотеке.

Сваки корисник има локалну радну копију од даљинског складишта. На пример, корисници могу да ажурирају промене из складишта у радну копију, изврше промене из своје радне копије до складишта, или погледају разлику између радне копије и складишта.

Да би поставили СВН систем за контролу верзија, СВН сервер софтвер мора да буде инсталиран на (једном) рачунару са сталним приступом интернету. (Ако компјутер нема статичну ИП адресу, можете користити DynDNS како би имали приступ серверу са статичним хостнејмом.) Може да ради на многим Уникс, модерним МС Виндоувс, и Мек OS X платформама.

Корисници не морају да инсталирају СВН сервер софтвер, већ СВН "клијент" софтвер. Ово је уникатан приступ складишта које поседује сервер. Поред основног СВН командно-линијског клијента, постоји неколико Графичко корнисичких интерфејс алата (ГУИ) и плаг-инова за приступ СВН сервера (погледати http://subversion.tigris.org/links.html). Уз то, постоје веома добри приручници о СВНу, који су бесплатно доступни на интеренту (нпр. http://svnbook.red-bean.com).

На нашем одељењу, ми покрећемо СВН сервер на ГНУ-Линукс систему, јер је укључен у многим Линукс дистрибутерима. У том смислу, инсталирање, конфигурација, и одржавање СВНа је веома лак задатак.

Многи МС Виндоус корисници приступају СВН серверу користећи TortoiseSVN клијент, јер обезбеђује најучесталији интерфејс за обичног корисника. Линукс корисници углавном користе СВН услуге из командне линије, или eSvn са KDiff3 ради приказивања комплексних разлика.

Хостинг LaTeX података у Субверзији[уреди]

Слика 1: често texmf стабло приказано у eSvn складиштеном браузеру

На нашем “Субверзија” серверу, имамо једно складиште за често texmf дрво. Њена структура је ускладиштена са TeX Directory Structure смерницама (TDS, http://www.tug.org/tds/tds.html, see figure 1). Складиште обезбеђује LaTeX класе, LaTeX стилове, и BibTeX стилове који нису приступачни у LaTeX дистрибуцијама корисника, нпр. јер су купљене или развијене за интерно коришћење на нашен одељењу. Сви корисници имају радну копију овог складишта и конфигурисан LaTeX за коришћење као њиховог личног texmf дрвета. На пример, teTeX (http://www.tug.org/tetex/) корисници могу мењати њихову TeX конфигурисану датотеку (нпр. /etc/texmf/web2c/texmf.cnf) и наместе варијаблу TEXMFHOME на део радне копије за често texmf дрво. (e.g. by TEXMFHOME = $HOME/texmf); MiKTeX (http://www.miktex.org/) могу додати део радне копије честог texmf дрвета у 'Roots' уметку MiKTeX опција.

Ако је нова класина или стилска датотека направљена (али не уколико су ове датотеке модификоване), корисници морају да ажурирају 'file name data base' (FNDB) пре него што могу да користе ове класе или стилове. На пример, teTeX корисници морају да изврше texhash; MiKTeX корисници морају да кликну на дугме 'Refresh FNDB' у 'General' уметку MiKTeX опција.

Штавише, складиште садржи приручнике који објашњавају специфична LaTeX софтвер решења на нашем одељењу (нпр. овај документ).

Субверзија сервер хостује одвојено складиште за сваки пројекат на нашем одељењу. Иако гранање, интегрисање, и означавање мање битно за писање текст докумената него што је за писање изворног кода за софтвер, наш распоред складишта прати препоруке 'Суберзија књиге' (http://svnbook.red-bean.com). У овом смислу,свако складиште поседује три директоријума /trunk, /branches, и /tags.

Најбитнији директоријум је /trunk. Ако један једини текст документ припада пројекту, сви подаци и потдиректоријуми овог текста налазе се у /trunk. Ако пројекат “јилдује” два или више другачија текст документа, /trunk садржи потдиректоријум за сваки текст документ. Мало другачија верзија (грана) текст документа (нпр. за презентацију на конференцији) може бити припремљена или у додатном потдиректоријуму /trunk или у новом потдиректоријуму /branches. Када се текст документ преда часопису или конференцији, ми направимо етикету у директоријуму /tags тако да лако индентификује предату верзију документа касније. Ова својства су се показала као веома корисна. Приликом креирања грана или етикета, битно је увек користити Субверзија клијента (не алате локалног фајл система) за овакве поступке, јер ово чува меморију на серверу и одржава информације о истој историји ових докумената.

Често се поставља питање, које фајлове би требало ставити под контролу верзија. Генерално, сви фајлови, које је корисник директно модификовао и који су неопходни за компајлирање документа треба укључити у систем за контролу верзија. Углавном, ово су LaTeX изворни кодови (*.tex) фајлова (главни документ, и могуће неки потдокументи) и свих слика које су убачене у документ (*.eps, *.jpg, *.png, and *.pdf files). Све LaTeX калсе (*.cls), LaTeX стилови (*.sty), BibTeX базе података (*.bib), и BibTeX стилови (*.bst) ,генерално, треба да буду хостовани у складишту честог texmf стабла, али могу бити урачунати у свом складишту, ако неки (додатни) сарадници немају приступ честом texmf стаблу. Са друге стране, сви фајлови који су аутоматски креирани или модификовани приликом процеса компилације (нпр. *.aut, *.aux, *.bbl, *.bix, *.blg, *.dvi, *.glo, *.gls, *.idx, *.ilg, *.ind, *.ist, *.lof, *.log, *.lot, *.nav, *.nlo, *.out, *.pdf, *.ps, *.snm, и *.toc фајлови) или преко (LaTeX or BibTeX) едитора (нпр. *.bak, *.bib~, *.kilepr, *.prj, *.sav, *.tcp, *.tmp, *.tps, и *.tex~ фајлови) генерално, не би требало да буду под контролом верзија, јер ови фајлови нису неопходни за компилацију и, генерално, не подразумевају додатне информације. Штавише, ови фајлови се регуларно модификују тако да су конфликти веома могући.

Субверзија стварно прави разлику[уреди]

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

У том смислу, веома је важно не мењати места пауза између линија без разлога. Стога, аутоматско паковање линија корисниковог LaTeX едитора треба бити искључено и паузе између линија треба ручно додавати. У супротном, уколико се једна реч на почетку параграфа дода или избаци, све паузе између линија, у овом параграфу, могу бити промењене тако да многи “диф” алати указују да је цео параграф модификован, јер они упоређују фајлове ред по ред. Опције “диф” алата wdiff (http://www.gnu.org/software/wdiff/) и dwdiff (http://os.ghalkes.nl/dwdiff.html) нису погођене местом пауза између линија, јер они пореде документе реч по реч. Међутим, њихов излаз је мање јасан тако да је модификације тешко пратити. Поврх тога, ови алати се не могу директно користити помоћу Субверзијине командне линије “прекидач” --diff-cmd, али мала омотна линија мора бити коришћена (http://textsnippets.com/posts/show/1033).

Разуман споразум јесте додавање паузе између линија после сваке реченице и почињање сваке нове реченице у новом реду. Приметити да ово има предност у односу на систем за контролу верзија: уколико хоћете да пронађете реченицу у свом LaTeX коду коју сте видели у компајлованом (DVI, PS, or PDF) фајлу или у излазу, лако можете идентификовати првих неколико речи те реченице и проверити ове речи на левој ивици вашег едитор прозора.

Штавише, ми делимо дугачке реченице у неколико редова тако да сваки ред нема више од 80 карактера, јер је неугодно трагати за (малим) разликама у дугачким редовима. (Белешка: На пример, LaTeX едитор Киле (http://kile.sourceforge.net/) може помоћи кориснику у извршавању задатака када је конфигурисан да дода вертикалну линију која обележава 80ту колону.) Сматрамо корисним да додамо додатну паузу између линија на логичким паузама реченице, нпр. пре релативног члана или новог дела почетка реченице. Пример LaTeX кода који је форматиран по овим инструкцијама јесте изворни код чланка Tools for Collaborative Writing of Scientific LaTeX Documents од User:АрнехелАрне Хенингсена који је објављен (укључујући и изворни код) у The PracTeX Journal 2007, Број 3 (http://www.tug.org/pracjourn/2007-3/henningsen/).

Ако аутор ради на другачијем оперативном систему, њихов LaTeX едитор ће вероватно сачувати фајлове са другачијим новоредним (крај-реда) карактерима (http://en.wikipedia.org/wiki/Newline). Како би избегли овај тип 'неефикасних' модификација, сви корисници се могу договорити око специфичног новоредног карактера и конфигуришу своје едиторе да користе те новоредне карактере. Друга алтернатива јесте додавање особине субверзије 'svn:eol-style' и њено постављање на 'native'. У том случају, Субверзија аутоматски конвертује све новоредне карактере овог фајла на 'урођен' новоредни карактер ауторовог оперативног система (http://svnbook.red-bean.com/en/1.4/svn.advanced.props.file-portability.html#svn.advanced.props.special.eol-style).

Постоји, такође, још један битан разлог за редуковање броја 'неефектних' модификација: ако више аутора ради на истом фајлу, вероватноћа да исти ред модификују два или више човека истовремено расте са бројем модификованих редова. Отуда, 'неефективне' модификације непотребно повећавају ризик за конфликт (видети одељак Interchanging Documents).

Слика 2: Прегледање модификација у KDiff3

Штавише, системи за контролу верзија дозвољавају веома ефектну меру за осигурање квалитета: сви аутори треба критично да прегледају своје модификације пре него што их шаљу у складиште (видети слику 2). Разлика између корисникове радне копије и складишта се може лако проверити само једном Субверзија командом или једним кликом на графички Субверзија клијент. Штавише, аутори треба да потврде да се њихов код може компајловати без грешке пре него што пошаљу своје модификације у складиште. У супротном, сарадници ће морати да плате за ове грешке када они буду хтели да компајлују документ. Међутим, ова директива није само разумна за систем за контролу верзија већ и за све друге начине размене докумената међу ауторима.

Субверзија има опцију под називом 'Keyword Substitution' која укључује динамичку верзију информација о фајлу (нпр. ревизиони број или последњег аутора) у садржај самог фајла (погледати нпр. http://svnbook.red-bean.com, поглавље 3). Понекад је корисно укључити ове информације не само као коментар у LaTeX изворном коду, већ и у (компајлираном) DVI, PS, или PDF документу. Ово се може постићи LaTeX пакетима svn (http://www.ctan.org/tex-archive/macros/latex/contrib/svn/), svninfo (http://www.ctan.org/tex-archive/macros/latex/contrib/svninfo/), или (пожељно) svn-multi (http://www.ctan.org/tex-archive/macros/latex/contrib/svn-multi/).

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

Смернице за коришћење LaTeX-а уз систем за контролу верзија

  1. Избегавати “неефективне” модификације.
  2. Не мењајте паузу између линија без доброг разлога.
  3. Угасити аутоматско паковање редова у Вашем LaTeX едитору.
  4. Сваку реченицу започињите у новом реду.
  5. Делите дугачке реченице у више редова, тако да сваки ред нема више од 80 карактера.
  6. Убацујте само оне фајлове, у контролу верзије, које је корисник директно модификовао.
  7. Потврдите да Ваш фајл може безпрекорно да се компајлује пре убацивања Ваших модификација у складиште.
  8. Користити Субверзијину diff опцију како би критично прегледали модификације пре него што их убаците у складиште.
  9. Додајте смисаони и описни коментар када убацујете Ваше модификације у складиште.
  10. Користити Субверија клијент за копирање, померање, или преименовање фајлова и фолдера који су под рефизијоном контролом.

Уколико су корисници вољни да пусте уграђену diff опцију SVN-а и користе diff алате који су локални у њиховим радним станицама, могу да користе такве алате који су виште скројени за текст документе. Diff алат, који иде уз SVN, је дизајниран са изворним кодом, на уму. Као такав, направљен је да буде кориснији за фајлове и кратке редове. Остали алати, као што је Compare It!, дозвољавају лагодно поређење текст фајлова, у којем сваки ред може имати распон од 1000 карактера (на пример, где сваки ред претставља параграф). Приликом коришћења diff алата, који дозвољавају једноставан преглед фајлова са дугачким редовима, корисници могу мењати TeX фајлове без стриктне политике разбијања редова.

Визуализовање diffs-а у LaTeX: latexdiff и changebar[уреди]

Алат latexdiff и changebar могу да визуализују разлике два LaTeX фајла, унутар произведеног(генерисаног) документа. Овиме, лакше можемо видети утицај одређених промена или чак дискутујемо промене са људима којима је LaTeX стран. “Changebar” долази уз скрипту chbar.sh која убацује опцију у маргину, чиме указује на делове који су се променили. “Latexdiff” дозвољава другачије стилове визуелизације. Уобичајно је да је одбачен текст означен црвеном бојом, а убачени текст плавом. Такође подржава режим сличан Changebar-у који додаје опцију у маргину. Latexdiff долази уз скрипту latexrevise која се користи како би прихватила или одбила промене. Такође поседује скрипту “омотача” како би подржала систем за контролу верзија, попут, већ поменуте, Субверзије.

Пример како користити Latexdiff у Терминалу.

   latexdiff old.tex new.tex > diff.tex               # Фајлови old.tex и new.tex се пореде и фајл који визуализује промене је написан у diff.tex
   pdflatex diff.tex                                  # Прави PDF, који приказује промене

Програм DiffPDF се може котистити за визуелно поређење PDFа. Такође постоји алат командне линије comparepdf базиран на DiffPDF.

Руковођење заједничких библиографија[уреди]

Писање научних чланака, извештаја, и књига захтева цитирање свих битних извора. BibTeX је одличан алат за цитирање литературе и прављење библиографије (Markey 2005, Fenn 2006). Многи другачији BibTeX стилови могу бити пронађени на CTAN (http://www.ctan.org) и на LaTeX Bibliography Styles Database (http://jo.irisson.free.fr/bstdatabase/). Уколико не можете наћи одговарајуће BibTeX стилове, многи погодни стилови се могу лакгодно монтирати помоћу custombib/makebst (http://www.ctan.org/tex-archive/macros/latex/contrib/custom-bib/). Штавише, BibTeX стилови се могу ручно модификовати или креирати; међутим, овакав поступак захтева предзнање (unnamed) постфикс стог језика који се користи у BibTeX стил фајловима (Patashnik 1988).

На нашем одељењу, ми имамо честу библиографску базу података у BibTeX формату (.bib file). Станује у нашем честом texmf стаблу (погледати наслоб 'Хостинг LaTeX фајлова у Субверзији') у потдиректоријуму /bibtex/bib/ (погледати слику 1). Одатле, сви корисници могу означити ову библиографију користећи само име фајла (без пуног дела) --- без обзира где је корисникова радна копија честог texmf стабла лоцирана.

Сви корисници мењају нашу библиографску базу података уз помоћ графичког BibTeX едитора JabRef (http://jabref.sourceforge.net/). Пошто је JabRef написан у Java програмском језику, ради на сваком већем оперативном систему. Како другачије верзије JabRef-а, генерално, чувају фајлове на мало другачије начине (нпр. тиме што ће паузе између линија ставити на другачија места), сви корисници треба да користе исту верзију JabRef-а. У супротном, настаће многе разлике између другачијих верзија .bib фајлова који ће јединствено извирати од коришћења другачијих верзија JabRef-а. Отуда, било би тешко наћи суштинске разлике између упоређених докумената. Штавише, вероватноћа конфликта била би знатно већа (погледати одељак 'Субверзија стварно прави разлику'). Како JabRef чува BibTeX базу података са урођеним новоредним карактером ауторовог оперативног система, препоручљиво је додати особину Сувберзије 'svn:eol-style' и подесити је као 'native' (погледати одељак 'Субверзија стварно прави разлику').

Слика 3: Наведите подразумевани, кључни шаблон у JabRef

JabRef је јако флексибилан и може се конфигурисати до детаља. Правимо следеће промене у односу на подразумеване у JabRef, како бисмо поједноставили рад у истом. Прво, одредимо подразумевани образац за BibTeX кључеве тако да JabRef може аутоматски генерисати кључеве у жељеном формату. Ово једино може бити урађено бирањем OptionsPreferencesKey pattern и модификовањем жељеног обрасца у поље Default pattern. На пример, користимо [auth:lower][shortyear] како бисмо добили презиме првог аутора, малим словима, и последње две цифре године издања (видети слику 3).

Слика 4: Подесити општа поља у JabRef

Друго, додајемо BibTeX поље location због информација о месту, у којем је издање доступно као тврда копија (нпр. књига или копија чланка). Ово поље може садржати име корисника који има тврду копију и где је има или име библиотеке и ознака на полици, на којој се налази књига. Поље се може додати у JabRef-у бирањем OptionsSet up general fields и додавањем речи location (користећи тачку-запету (;) као граничник) негде у реду који почиње са General: (погледати слику 4).

Слика 5: Одредити 'Основну PDF директорију' у JabRef

Треће, убацујемо све PDF фајлове издања у одређени потдиректоријум у нашем фајл серверу, где користимо BibTeX кључ као име фајла. Информишемо JabRef о овом потдиректоријуму бирањем OptionsPreferencesExternal programs и додавањем дела овог потдиректоријума у пољу Main PDF directory (погледати слику 5). Уколико је PDF фајл издања доступан, корисник може притиснути Auto дугме, лево од JabRef-овог Pdf поља, како би аутоматски додали име PDF фајла. Сада, сви корисници који имају приступ фајл серверу могу да отворе PDF фајл издања једноставним кликом на JabRef-ову PDF икону.

Ако пошаљемо LaTeX изворни код пројекта часопису, издавачу, или неком трећем ко нема приступ нашем честом texmf стаблу, не укључујемо нашу целу библиографску базу података, већ екстрактујемо најбитније уносе помоћу такозване “Perl” скрипте aux2bib (http://www.ctan.org/tex-archive/biblio/bibtex/utils/bibtools/aux2bib).

Закључак[уреди]

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

Прво, планирамо да сви корисници инталирају исту LaTeX дитрибуцију. Како је TeX Live дистрибуција (http://www.tug.org/texlive/) доступна и за Уникс и МС Виндоус оперативним системима, могли бисмо да препоручимо нашим корисницима да пређу на ову LaTeX дистрибуцију у будућности. (Тренутно, наши корисници имају различите LaTeX дистрибуције који дају другачију селекцију LaTeX пакета и другачије верзије појединих пакета. Овај проблем решавамо обезбеђивањем неких пакета на нашем честом texmf стаблу.)

Друго, разматрамо поједностављивање решења за честе библиографске базе података. Тренутно је базирано на систему за контролу верзија, Субверзија, графичком BibTeX едитору JabRef, и фајл серверу за PDF датотеке издања у бази података. Коришћење три другачија алата за један задатак је изазов за, не толико честе, кориснике као и кориснике којима ови алати нису познати. Штавише, приступ фајл серверу имају само локални корисници. Стога, узимамо у разматрање уметање интегрисаног решења за сервер типа WIKINDX (http://wikindx.sourceforge.net/), Aigaion (http://www.aigaion.nl/), или refBASE (http://refbase.sourceforge.net/). Коришћење овог решења само захтева компјутер, који има приступ интернету, и интернет претраживач, који омогућавају коришћење наше базе података беома лаким за нечесте кориснике. Поврх тога, ускладиштени PDF фајлови су доступни не само унутар одељења, већ целом свету. (У зависности од ауротских права складиштених PDF фајлова, приступ нашем серверу --- или бар приступ PDF фајловима --- мора бити ограничен само на чланове нашег одељења.) Чак и не-LaTeX корисници, из нашег одељења, могу профитирати од решења базираном на серверу, зато што би требало да олакша коришћење ових библиографских база података, другим речима, обради софтверских пакета, јер ови сервери обезбеђују податке, не само у BibTeX формату, већ и у другим форматима.

Охрабрујемо све читаоце да дају свој допринос овом викибуку додавањем нових савета или идеја или пружањем даљих решења проблему заједничког писања LaTeX докумената.


Признања[уреди]

Арне Хенингсен захваљује Франциску Реиналду и Гералдину Хенингсену за коментаре и сугестије који су му помогли да унапреди и разјасни овај текст, Карстен Хејману за многе савете у вези LaTeX-а, BibTeX-а, и Субверзије, и Кристијан Хенингу као и његовим колегама који су подржали његову намеру за увођење LaTeX-а и Субверзије на њиховом одељењу.


Литература[уреди]


Претходно: Модуларни Документи Индекс Следеће: Отпремање у друге формате