LaTeX/Zajedničko pisanje LaTeX dokumenata

Izvor: Викикњиге

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


Napomena: Ovaj Vikibuk se odnosi na članak Tools for Collaborative Writing of Scientific LaTeX Documents od Arne Henningsen koji je objavljen u The PracTeX Journal 2007, broj 3 (http://www.tug.org/pracjourn/).


Rezime[uredi]

Zajedničko pisanje dokumenata zahteva jaku sinhronizaciju među autorima. Ova Viki knjiga opisuje moguć način za organizaciju zajedničke pripreme LaTeX dokumenata. Pretstavljeno rešenje je primarno bazirano na sistemu za kontrolu verzija, pod imenom Subverzija (http://subversion.apache.org/). Viki knjiga opisuje kako Subverzija može biti korišćena zajedno sa nekoliko različitih softverskih alata i LaTeX paketa za organizaciju zajedničke pripreme LaTeX dokumenata.

Druge metode[uredi]

  • Možete koristiti jedno od onlajn rešenja nabrojanih u Instalacija poglavlju. Mnogi od njih imaju karakteristike saradnje.
  • Još jedna opcija za saradnju je dropbox. Ono ima 2 GB slobodnog prostora i sistema za kreiranje verzija. Radi kao SVN, ali je više automatizovano i otud posebno korisno za početne LaTeX korisnike. Međutim, Dropbox nije istinski kontrolni sistem za kreiranje verzija, i kao takav ne dozvoljava vraćanje članka na prethodnu verziju.
  • Možete koristiti onlajn zajednčki alat napravljen na vrhu kontrolnog sistema za keiranje verzija, kao što je Authorea ili ShareLatex. Authorea izvršava većinu zadataka opisanih u ovom dokumentu, ali u pozadini (napravljena je u GUIu). Omogućava autoru da uđe u LaTeX ili Markdown pomoću GUI sa matematičkim notacijama, figurama, d3.js nacrtima, IPython beležnicama, podacima, i tabelama. Sav sadršaj je donesen u HTML5. Authorea takođe sadrži sistem komentara i čet vezan sa članke kako bi olakšala saradnju i pregled.
  • Kako LaTeX sistem koristi jednostavan tekst, mogu se koristiti sinhroni zajednički urednici popuz Gobby. U Gubiu možete pisati svoj dokument u saradnji sa bilo kim u realnom vremenu. Strogo je preporučljivo da koristite utf8 šivrovanje (posebno ako ima korisnika koji sarađuju na višestrukim operativnim sistemima) i stavilnu mrežu (tipično žičanu).
  • TitanPad (ili drugi clones od EtherPad). Za kompajlisanje koristiti komandu:
    wget -O filename.tex "http://titanpad.com/ep/pad/export/xxxx/latest?format=txt" && (latex filename.tex)
    gde bi 'xxxx' trebalo da bude zamenjeno pad brojem (nalik 'z7rSrfrYcH').
  • Sa privreženom Linuks kutijom sa LaTeX & Dropbox moguće je koristiti Google docs i some scripting da bi dobili automatski generisane PDFs na Dropbox sa ažuriranja od Google Docs.
  • Možete koristiti distributed version control system kao što je Mercurial ili Git. Ovo je definitivno rešenje za korisnike koji traže kontrolu i napredne funkcije kao što su grana i integrisanje. Kriva učenja bi bila strmija od rešenja koja bi bila nađena na internetu.

Uvod[uredi]

Zajednička priprema dokumenata znatnu količinu koordinacije između autora. Koordinacija može biti organizovana na mnoštvo drugačijih načina, gde najbolji način zavisi od datih okolnosti.

U ovom Vikibuku, opisujem kako je organizovano zajedničko pisanje LaTeX dokumenata na našem odeljenju. (Divizija agrarne politike, Odeljenje za ekonomiju poljoprivrede, Univerzitet u Kilu, Nemačka). Pretstavljam naše softverske alate, i opisujem kako ih koristimo. Odatle, ovaj Vikibuk daje ideje i nagoveštaje koji će biti korisni za ostale LaTeX korisnike koji zajedno pripremaju dokumente sa svojim saradnicima.


Rokada dokumenata[uredi]

Postoje razni načini rokade dokumenata među autorima. Jedna mogućnost je sastavljanje dokumenata razmenom istih putem elektronske pošte. Prednost ove metode jeste to što česti korisnici generalno ne moraju da instaliraju i nauče nijedan dodatan softver, jer svi autori imaju elektronsku poštu. Štaviše, autor koji je modifikovao dokumente može lako da pošalje iste i objasni promene, takođe, putem elektronske pošte. Nažalost, postoji problem kada dva ili više autora rade istovremeno na istom dokumentu. Dakle, kako autori mogu da sinhronizuju ove datoteke?

Druga mogućnost je da se dokument obezbedi na učestalom arhivskom serveru, koji je dostupan u mnogim odeljenjima. Rizik pisanja preko tuđe modifikacije može biti eliminisana zaključavanjem datoteka koji se trenutno uređuju. Međutim, generalno, pristup arhivskom serveru se može imati samo unutar odeljenja. Odatle, autori van odeljenja ne mogu koristiti ovu metodu kako bi ažurirali/izvršili svoje promene. U ovom slučaju, oni bi morali da koriste drugi način, kako bi prevazišli ovaj problem. Dakle, kako autori mogu da pristupe tim datotekama?

Treća mogućnost jeste korišćenje sistema za kontrolu verzija. Sveobuhvatna lista sistema za kontrolu verzija se može naći na Wikipedia. Sistemi za kontrolu verzija prate sve promene u datotekama u projektu. Ako mnogi autori modifikuju dokumenta istovremeno, sistem za kontrolu verzija pokušava da automatski spoji sve modifikacije. Međutim, ako je više autora modifikovalo isti red, modifikacije se ne mogu automatski spojiti, i korisnik će morati da razreši konflikt tako što će ručno izabrati koja od promena treba biti zadržana. Autori, takođe, mogu da komentarišu svoje modifikacije tako da saradnik može lako da razume tok rada na datoj datoteci. Kako sistemi za kontrolu verzija, generalno, komuniciraju putem interneta, oni mogu biti korišćeni sa različitih računara koji imaju pristup internetu. Stroga politika fajervola može sprečiti da se sistem za kontrolu verzija poveže za internet. U tom slučaju, mora se pitati administrator mreže da otvori odgovarajući port. Internet se koristi samo za sinhronizaciju datoteka. Otuda, duga internet veza nije potrebna. Jedina mana sistema za kontrolu verzija može biti to što mora da se instalira i konfiguriše.

Štabiše, sistem za kontrolu verzija je koristan čak ako jedan korisnik radi na datoteci. Prvo, može da prati (možda opozove) sve prethodne modifikacije. Drugo, ovo je pogodan način za čuvanje rezervi datoteka na drugim računarima. Treće, ovo omogućava korisniku da lako menja računare (npr. kancelarija, laptop, kod kuće).

Sistem za kontrolu verzija Subverzija[uredi]

Subversion (SVN) dolazi kao naslednik popularnog sistema za kontrolu verzija CVS. SVN funkcioniše po principu klijent-server, u kojem centralni server prihvata skladište projekta koje korisnici mogu lokalno da kopiraju i modifikuju. Skladište je slično kao i biblioteke koje dopuštaju korisnicima da provere trenutni projekat, naprave promene, i onda ga opet provere i unesu nazad. Server zapisuje sve promene koje korisnik unese (obično sa porukom koja rezimira sve promene koje je korisnik napravio) tako da ostali korisnici mogu lako primeniti te promene na njihove lokalne datoteke.

Svaki korisnik ima lokalnu radnu kopiju od daljinskog skladišta. Na primer, korisnici mogu da ažuriraju promene iz skladišta u radnu kopiju, izvrše promene iz svoje radne kopije do skladišta, ili pogledaju razliku između radne kopije i skladišta.

Da bi postavili SVN sistem za kontrolu verzija, SVN server softver mora da bude instaliran na (jednom) računaru sa stalnim pristupom internetu. (Ako kompjuter nema statičnu IP adresu, možete koristiti DynDNS kako bi imali pristup serveru sa statičnim hostnejmom.) Može da radi na mnogim Uniks, modernim MS Vindouvs, i Mek OS X platformama.

Korisnici ne moraju da instaliraju SVN server softver, već SVN "klijent" softver. Ovo je unikatan pristup skladišta koje poseduje server. Pored osnovnog SVN komandno-linijskog klijenta, postoji nekoliko Grafičko kornisičkih interfejs alata (GUI) i plag-inova za pristup SVN servera (pogledati http://subversion.tigris.org/links.html). Uz to, postoje veoma dobri priručnici o SVNu, koji su besplatno dostupni na interentu (npr. http://svnbook.red-bean.com).

Na našem odeljenju, mi pokrećemo SVN server na GNU-Linuks sistemu, jer je uključen u mnogim Linuks distributerima. U tom smislu, instaliranje, konfiguracija, i održavanje SVNa je veoma lak zadatak.

Mnogi MS Vindous korisnici pristupaju SVN serveru koristeći TortoiseSVN klijent, jer obezbeđuje najučestaliji interfejs za običnog korisnika. Linuks korisnici uglavnom koriste SVN usluge iz komandne linije, ili eSvn sa KDiff3 radi prikazivanja kompleksnih razlika.

Hosting LaTeX podataka u Subverziji[uredi]

Slika 1: često texmf stablo prikazano u eSvn skladištenom brauzeru

Na našem “Subverzija” serveru, imamo jedno skladište za često texmf drvo. Njena struktura je uskladištena sa TeX Directory Structure smernicama (TDS, http://www.tug.org/tds/tds.html, see figure 1). Skladište obezbeđuje LaTeX klase, LaTeX stilove, i BibTeX stilove koji nisu pristupačni u LaTeX distribucijama korisnika, npr. jer su kupljene ili razvijene za interno korišćenje na našen odeljenju. Svi korisnici imaju radnu kopiju ovog skladišta i konfigurisan LaTeX za korišćenje kao njihovog ličnog texmf drveta. Na primer, teTeX (http://www.tug.org/tetex/) korisnici mogu menjati njihovu TeX konfigurisanu datoteku (npr. /etc/texmf/web2c/texmf.cnf) i nameste varijablu TEXMFHOME na deo radne kopije za često texmf drvo. (e.g. by TEXMFHOME = $HOME/texmf); MiKTeX (http://www.miktex.org/) mogu dodati deo radne kopije čestog texmf drveta u 'Roots' umetku MiKTeX opcija.

Ako je nova klasina ili stilska datoteka napravljena (ali ne ukoliko su ove datoteke modifikovane), korisnici moraju da ažuriraju 'file name data base' (FNDB) pre nego što mogu da koriste ove klase ili stilove. Na primer, teTeX korisnici moraju da izvrše texhash; MiKTeX korisnici moraju da kliknu na dugme 'Refresh FNDB' u 'General' umetku MiKTeX opcija.

Štaviše, skladište sadrži priručnike koji objašnjavaju specifična LaTeX softver rešenja na našem odeljenju (npr. ovaj dokument).

Subverzija server hostuje odvojeno skladište za svaki projekat na našem odeljenju. Iako grananje, integrisanje, i označavanje manje bitno za pisanje tekst dokumenata nego što je za pisanje izvornog koda za softver, naš raspored skladišta prati preporuke 'Suberzija knjige' (http://svnbook.red-bean.com). U ovom smislu,svako skladište poseduje tri direktorijuma /trunk, /branches, i /tags.

Najbitniji direktorijum je /trunk. Ako jedan jedini tekst dokument pripada projektu, svi podaci i potdirektorijumi ovog teksta nalaze se u /trunk. Ako projekat “jilduje” dva ili više drugačija tekst dokumenta, /trunk sadrži potdirektorijum za svaki tekst dokument. Malo drugačija verzija (grana) tekst dokumenta (npr. za prezentaciju na konferenciji) može biti pripremljena ili u dodatnom potdirektorijumu /trunk ili u novom potdirektorijumu /branches. Kada se tekst dokument preda časopisu ili konferenciji, mi napravimo etiketu u direktorijumu /tags tako da lako indentifikuje predatu verziju dokumenta kasnije. Ova svojstva su se pokazala kao veoma korisna. Prilikom kreiranja grana ili etiketa, bitno je uvek koristiti Subverzija klijenta (ne alate lokalnog fajl sistema) za ovakve postupke, jer ovo čuva memoriju na serveru i održava informacije o istoj istoriji ovih dokumenata.

Često se postavlja pitanje, koje fajlove bi trebalo staviti pod kontrolu verzija. Generalno, svi fajlovi, koje je korisnik direktno modifikovao i koji su neophodni za kompajliranje dokumenta treba uključiti u sistem za kontrolu verzija. Uglavnom, ovo su LaTeX izvorni kodovi (*.tex) fajlova (glavni dokument, i moguće neki potdokumenti) i svih slika koje su ubačene u dokument (*.eps, *.jpg, *.png, and *.pdf files). Sve LaTeX kalse (*.cls), LaTeX stilovi (*.sty), BibTeX baze podataka (*.bib), i BibTeX stilovi (*.bst) ,generalno, treba da budu hostovani u skladištu čestog texmf stabla, ali mogu biti uračunati u svom skladištu, ako neki (dodatni) saradnici nemaju pristup čestom texmf stablu. Sa druge strane, svi fajlovi koji su automatski kreirani ili modifikovani prilikom procesa kompilacije (npr. *.aut, *.aux, *.bbl, *.bix, *.blg, *.dvi, *.glo, *.gls, *.idx, *.ilg, *.ind, *.ist, *.lof, *.log, *.lot, *.nav, *.nlo, *.out, *.pdf, *.ps, *.snm, i *.toc fajlovi) ili preko (LaTeX or BibTeX) editora (npr. *.bak, *.bib~, *.kilepr, *.prj, *.sav, *.tcp, *.tmp, *.tps, i *.tex~ fajlovi) generalno, ne bi trebalo da budu pod kontrolom verzija, jer ovi fajlovi nisu neophodni za kompilaciju i, generalno, ne podrazumevaju dodatne informacije. Štaviše, ovi fajlovi se regularno modifikuju tako da su konflikti veoma mogući.

Subverzija stvarno pravi razliku[uredi]

Odlična karakteristika sistema za kontrolu verzija jeste to što svi autori mogu lako da prate tok rada na projektu time što će gledati razliku proizvoljne verzije od fajlova. Autori se, primarno, interesuju za 'efektivne' modifikacije izvornog koda koje menjaju kompajlovane dokumente, ali ne i za 'neefektne' modifikacije koje nemaju nikakvog uticaja na kompajlovane dokumente (npr. pozicija pauze među linijama). Softverski alati za kompajlovanje tekst dokumenata ('diff tools') ,generalno, ne razlikuju 'efektivne' i 'neefektivne' modifikacije; oni ističu oba tipa modifikacija. Ovo znatno uvećava napor za nalaženje i pregled 'efektivnih' modifikacija. Stoga, 'neefektivne' modifikacije treba izbeći.

U tom smislu, veoma je važno ne menjati mesta pauza između linija bez razloga. Stoga, automatsko pakovanje linija korisnikovog LaTeX editora treba biti isključeno i pauze između linija treba ručno dodavati. U suprotnom, ukoliko se jedna reč na početku paragrafa doda ili izbaci, sve pauze između linija, u ovom paragrafu, mogu biti promenjene tako da mnogi “dif” alati ukazuju da je ceo paragraf modifikovan, jer oni upoređuju fajlove red po red. Opcije “dif” alata wdiff (http://www.gnu.org/software/wdiff/) i dwdiff (http://os.ghalkes.nl/dwdiff.html) nisu pogođene mestom pauza između linija, jer oni porede dokumente reč po reč. Međutim, njihov izlaz je manje jasan tako da je modifikacije teško pratiti. Povrh toga, ovi alati se ne mogu direktno koristiti pomoću Subverzijine komandne linije “prekidač” --diff-cmd, ali mala omotna linija mora biti korišćena (http://textsnippets.com/posts/show/1033).

Razuman sporazum jeste dodavanje pauze između linija posle svake rečenice i počinjanje svake nove rečenice u novom redu. Primetiti da ovo ima prednost u odnosu na sistem za kontrolu verzija: ukoliko hoćete da pronađete rečenicu u svom LaTeX kodu koju ste videli u kompajlovanom (DVI, PS, or PDF) fajlu ili u izlazu, lako možete identifikovati prvih nekoliko reči te rečenice i proveriti ove reči na levoj ivici vašeg editor prozora.

Štaviše, mi delimo dugačke rečenice u nekoliko redova tako da svaki red nema više od 80 karaktera, jer je neugodno tragati za (malim) razlikama u dugačkim redovima. (Beleška: Na primer, LaTeX editor Kile (http://kile.sourceforge.net/) može pomoći korisniku u izvršavanju zadataka kada je konfigurisan da doda vertikalnu liniju koja obeležava 80tu kolonu.) Smatramo korisnim da dodamo dodatnu pauzu između linija na logičkim pauzama rečenice, npr. pre relativnog člana ili novog dela početka rečenice. Primer LaTeX koda koji je formatiran po ovim instrukcijama jeste izvorni kod članka Tools for Collaborative Writing of Scientific LaTeX Documents od User:ArnehelArne Heningsena koji je objavljen (uključujući i izvorni kod) u The PracTeX Journal 2007, Broj 3 (http://www.tug.org/pracjourn/2007-3/henningsen/).

Ako autor radi na drugačijem operativnom sistemu, njihov LaTeX editor će verovatno sačuvati fajlove sa drugačijim novorednim (kraj-reda) karakterima (http://en.wikipedia.org/wiki/Newline). Kako bi izbegli ovaj tip 'neefikasnih' modifikacija, svi korisnici se mogu dogovoriti oko specifičnog novorednog karaktera i konfigurišu svoje editore da koriste te novoredne karaktere. Druga alternativa jeste dodavanje osobine subverzije 'svn:eol-style' i njeno postavljanje na 'native'. U tom slučaju, Subverzija automatski konvertuje sve novoredne karaktere ovog fajla na 'urođen' novoredni karakter autorovog operativnog sistema (http://svnbook.red-bean.com/en/1.4/svn.advanced.props.file-portability.html#svn.advanced.props.special.eol-style).

Postoji, takođe, još jedan bitan razlog za redukovanje broja 'neefektnih' modifikacija: ako više autora radi na istom fajlu, verovatnoća da isti red modifikuju dva ili više čoveka istovremeno raste sa brojem modifikovanih redova. Otuda, 'neefektivne' modifikacije nepotrebno povećavaju rizik za konflikt (videti odeljak Interchanging Documents).

Slika 2: Pregledanje modifikacija u KDiff3

Štaviše, sistemi za kontrolu verzija dozvoljavaju veoma efektnu meru za osiguranje kvaliteta: svi autori treba kritično da pregledaju svoje modifikacije pre nego što ih šalju u skladište (videti sliku 2). Razlika između korisnikove radne kopije i skladišta se može lako proveriti samo jednom Subverzija komandom ili jednim klikom na grafički Subverzija klijent. Štaviše, autori treba da potvrde da se njihov kod može kompajlovati bez greške pre nego što pošalju svoje modifikacije u skladište. U suprotnom, saradnici će morati da plate za ove greške kada oni budu hteli da kompajluju dokument. Međutim, ova direktiva nije samo razumna za sistem za kontrolu verzija već i za sve druge načine razmene dokumenata među autorima.

Subverzija ima opciju pod nazivom 'Keyword Substitution' koja uključuje dinamičku verziju informacija o fajlu (npr. revizioni broj ili poslednjeg autora) u sadržaj samog fajla (pogledati npr. http://svnbook.red-bean.com, poglavlje 3). Ponekad je korisno uključiti ove informacije ne samo kao komentar u LaTeX izvornom kodu, već i u (kompajliranom) DVI, PS, ili PDF dokumentu. Ovo se može postići LaTeX paketima svn (http://www.ctan.org/tex-archive/macros/latex/contrib/svn/), svninfo (http://www.ctan.org/tex-archive/macros/latex/contrib/svninfo/), ili (poželjno) svn-multi (http://www.ctan.org/tex-archive/macros/latex/contrib/svn-multi/).

Najvažnije smernice za zajedničko pisanje LaTeX dokumenata ,uz pomoć sistema za kontrolu verzija, sumirane su u boksu koji sledi.

Smernice za korišćenje LaTeX-a uz sistem za kontrolu verzija

  1. Izbegavati “neefektivne” modifikacije.
  2. Ne menjajte pauzu između linija bez dobrog razloga.
  3. Ugasiti automatsko pakovanje redova u Vašem LaTeX editoru.
  4. Svaku rečenicu započinjite u novom redu.
  5. Delite dugačke rečenice u više redova, tako da svaki red nema više od 80 karaktera.
  6. Ubacujte samo one fajlove, u kontrolu verzije, koje je korisnik direktno modifikovao.
  7. Potvrdite da Vaš fajl može bezprekorno da se kompajluje pre ubacivanja Vaših modifikacija u skladište.
  8. Koristiti Subverzijinu diff opciju kako bi kritično pregledali modifikacije pre nego što ih ubacite u skladište.
  9. Dodajte smisaoni i opisni komentar kada ubacujete Vaše modifikacije u skladište.
  10. Koristiti Subverija klijent za kopiranje, pomeranje, ili preimenovanje fajlova i foldera koji su pod refizijonom kontrolom.

Ukoliko su korisnici voljni da puste ugrađenu diff opciju SVN-a i koriste diff alate koji su lokalni u njihovim radnim stanicama, mogu da koriste takve alate koji su vište skrojeni za tekst dokumente. Diff alat, koji ide uz SVN, je dizajniran sa izvornim kodom, na umu. Kao takav, napravljen je da bude korisniji za fajlove i kratke redove. Ostali alati, kao što je Compare It!, dozvoljavaju lagodno poređenje tekst fajlova, u kojem svaki red može imati raspon od 1000 karaktera (na primer, gde svaki red pretstavlja paragraf). Prilikom korišćenja diff alata, koji dozvoljavaju jednostavan pregled fajlova sa dugačkim redovima, korisnici mogu menjati TeX fajlove bez striktne politike razbijanja redova.

Vizualizovanje diffs-a u LaTeX: latexdiff i changebar[uredi]

Alat latexdiff i changebar mogu da vizualizuju razlike dva LaTeX fajla, unutar proizvedenog(generisanog) dokumenta. Ovime, lakše možemo videti uticaj određenih promena ili čak diskutujemo promene sa ljudima kojima je LaTeX stran. “Changebar” dolazi uz skriptu chbar.sh koja ubacuje opciju u marginu, čime ukazuje na delove koji su se promenili. “Latexdiff” dozvoljava drugačije stilove vizuelizacije. Uobičajno je da je odbačen tekst označen crvenom bojom, a ubačeni tekst plavom. Takođe podržava režim sličan Changebar-u koji dodaje opciju u marginu. Latexdiff dolazi uz skriptu latexrevise koja se koristi kako bi prihvatila ili odbila promene. Takođe poseduje skriptu “omotača” kako bi podržala sistem za kontrolu verzija, poput, već pomenute, Subverzije.

Primer kako koristiti Latexdiff u Terminalu.

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

Program DiffPDF se može kotistiti za vizuelno poređenje PDFa. Takođe postoji alat komandne linije comparepdf baziran na DiffPDF.

Rukovođenje zajedničkih bibliografija[uredi]

Pisanje naučnih članaka, izveštaja, i knjiga zahteva citiranje svih bitnih izvora. BibTeX je odličan alat za citiranje literature i pravljenje bibliografije (Markey 2005, Fenn 2006). Mnogi drugačiji BibTeX stilovi mogu biti pronađeni na CTAN (http://www.ctan.org) i na LaTeX Bibliography Styles Database (http://jo.irisson.free.fr/bstdatabase/). Ukoliko ne možete naći odgovarajuće BibTeX stilove, mnogi pogodni stilovi se mogu lakgodno montirati pomoću custombib/makebst (http://www.ctan.org/tex-archive/macros/latex/contrib/custom-bib/). Štaviše, BibTeX stilovi se mogu ručno modifikovati ili kreirati; međutim, ovakav postupak zahteva predznanje (unnamed) postfiks stog jezika koji se koristi u BibTeX stil fajlovima (Patashnik 1988).

Na našem odeljenju, mi imamo čestu bibliografsku bazu podataka u BibTeX formatu (.bib file). Stanuje u našem čestom texmf stablu (pogledati naslob 'Hosting LaTeX fajlova u Subverziji') u potdirektorijumu /bibtex/bib/ (pogledati sliku 1). Odatle, svi korisnici mogu označiti ovu bibliografiju koristeći samo ime fajla (bez punog dela) --- bez obzira gde je korisnikova radna kopija čestog texmf stabla locirana.

Svi korisnici menjaju našu bibliografsku bazu podataka uz pomoć grafičkog BibTeX editora JabRef (http://jabref.sourceforge.net/). Pošto je JabRef napisan u Java programskom jeziku, radi na svakom većem operativnom sistemu. Kako drugačije verzije JabRef-a, generalno, čuvaju fajlove na malo drugačije načine (npr. time što će pauze između linija staviti na drugačija mesta), svi korisnici treba da koriste istu verziju JabRef-a. U suprotnom, nastaće mnoge razlike između drugačijih verzija .bib fajlova koji će jedinstveno izvirati od korišćenja drugačijih verzija JabRef-a. Otuda, bilo bi teško naći suštinske razlike između upoređenih dokumenata. Štaviše, verovatnoća konflikta bila bi znatno veća (pogledati odeljak 'Subverzija stvarno pravi razliku'). Kako JabRef čuva BibTeX bazu podataka sa urođenim novorednim karakterom autorovog operativnog sistema, preporučljivo je dodati osobinu Suvberzije 'svn:eol-style' i podesiti je kao 'native' (pogledati odeljak 'Subverzija stvarno pravi razliku').

Slika 3: Navedite podrazumevani, ključni šablon u JabRef

JabRef je jako fleksibilan i može se konfigurisati do detalja. Pravimo sledeće promene u odnosu na podrazumevane u JabRef, kako bismo pojednostavili rad u istom. Prvo, odredimo podrazumevani obrazac za BibTeX ključeve tako da JabRef može automatski generisati ključeve u željenom formatu. Ovo jedino može biti urađeno biranjem OptionsPreferencesKey pattern i modifikovanjem željenog obrasca u polje Default pattern. Na primer, koristimo [auth:lower][shortyear] kako bismo dobili prezime prvog autora, malim slovima, i poslednje dve cifre godine izdanja (videti sliku 3).

Slika 4: Podesiti opšta polja u JabRef

Drugo, dodajemo BibTeX polje location zbog informacija o mestu, u kojem je izdanje dostupno kao tvrda kopija (npr. knjiga ili kopija članka). Ovo polje može sadržati ime korisnika koji ima tvrdu kopiju i gde je ima ili ime biblioteke i oznaka na polici, na kojoj se nalazi knjiga. Polje se može dodati u JabRef-u biranjem OptionsSet up general fields i dodavanjem reči location (koristeći tačku-zapetu (;) kao graničnik) negde u redu koji počinje sa General: (pogledati sliku 4).

Slika 5: Odrediti 'Osnovnu PDF direktoriju' u JabRef

Treće, ubacujemo sve PDF fajlove izdanja u određeni potdirektorijum u našem fajl serveru, gde koristimo BibTeX ključ kao ime fajla. Informišemo JabRef o ovom potdirektorijumu biranjem OptionsPreferencesExternal programs i dodavanjem dela ovog potdirektorijuma u polju Main PDF directory (pogledati sliku 5). Ukoliko je PDF fajl izdanja dostupan, korisnik može pritisnuti Auto dugme, levo od JabRef-ovog Pdf polja, kako bi automatski dodali ime PDF fajla. Sada, svi korisnici koji imaju pristup fajl serveru mogu da otvore PDF fajl izdanja jednostavnim klikom na JabRef-ovu PDF ikonu.

Ako pošaljemo LaTeX izvorni kod projekta časopisu, izdavaču, ili nekom trećem ko nema pristup našem čestom texmf stablu, ne uključujemo našu celu bibliografsku bazu podataka, već ekstraktujemo najbitnije unose pomoću takozvane “Perl” skripte aux2bib (http://www.ctan.org/tex-archive/biblio/bibtex/utils/bibtools/aux2bib).

Zaključak[uredi]

Ovaj vikibuk opisuje mogući način za efektivnu organizaciju zajedničke pripreme LaTeX dokumenata. Prezentovano rešenje je bazirano na Subverziji sistema za kontrolu verzija i nekoliko drugih softverskih alata i LaTeX paketa. Međutim, postoji nekoliko problema koji mogu biti poboljšani.

Prvo, planiramo da svi korisnici intaliraju istu LaTeX ditribuciju. Kako je TeX Live distribucija (http://www.tug.org/texlive/) dostupna i za Uniks i MS Vindous operativnim sistemima, mogli bismo da preporučimo našim korisnicima da pređu na ovu LaTeX distribuciju u budućnosti. (Trenutno, naši korisnici imaju različite LaTeX distribucije koji daju drugačiju selekciju LaTeX paketa i drugačije verzije pojedinih paketa. Ovaj problem rešavamo obezbeđivanjem nekih paketa na našem čestom texmf stablu.)

Drugo, razmatramo pojednostavljivanje rešenja za česte bibliografske baze podataka. Trenutno je bazirano na sistemu za kontrolu verzija, Subverzija, grafičkom BibTeX editoru JabRef, i fajl serveru za PDF datoteke izdanja u bazi podataka. Korišćenje tri drugačija alata za jedan zadatak je izazov za, ne toliko česte, korisnike kao i korisnike kojima ovi alati nisu poznati. Štaviše, pristup fajl serveru imaju samo lokalni korisnici. Stoga, uzimamo u razmatranje umetanje integrisanog rešenja za server tipa WIKINDX (http://wikindx.sourceforge.net/), Aigaion (http://www.aigaion.nl/), ili refBASE (http://refbase.sourceforge.net/). Korišćenje ovog rešenja samo zahteva kompjuter, koji ima pristup internetu, i internet pretraživač, koji omogućavaju korišćenje naše baze podataka beoma lakim za nečeste korisnike. Povrh toga, uskladišteni PDF fajlovi su dostupni ne samo unutar odeljenja, već celom svetu. (U zavisnosti od aurotskih prava skladištenih PDF fajlova, pristup našem serveru --- ili bar pristup PDF fajlovima --- mora biti ograničen samo na članove našeg odeljenja.) Čak i ne-LaTeX korisnici, iz našeg odeljenja, mogu profitirati od rešenja baziranom na serveru, zato što bi trebalo da olakša korišćenje ovih bibliografskih baza podataka, drugim rečima, obradi softverskih paketa, jer ovi serveri obezbeđuju podatke, ne samo u BibTeX formatu, već i u drugim formatima.

Ohrabrujemo sve čitaoce da daju svoj doprinos ovom vikibuku dodavanjem novih saveta ili ideja ili pružanjem daljih rešenja problemu zajedničkog pisanja LaTeX dokumenata.


Priznanja[uredi]

Arne Heningsen zahvaljuje Francisku Reinaldu i Geraldinu Heningsenu za komentare i sugestije koji su mu pomogli da unapredi i razjasni ovaj tekst, Karsten Hejmanu za mnoge savete u vezi LaTeX-a, BibTeX-a, i Subverzije, i Kristijan Heningu kao i njegovim kolegama koji su podržali njegovu nameru za uvođenje LaTeX-a i Subverzije na njihovom odeljenju.


Literatura[uredi]


Prethodno: Modularni Dokumenti Indeks Sledeće: Otpremanje u druge formate