LaTeX szerkesztés OSX-en

Ugyancsak a múltkor ígértem meg [[Dokumentumszerkesztés OSX-en Stampie módra|dokumentumszerkesztés kapcsán]], hogy írok részleteket a [[http://texlipse.sourceforge.net/|TeXlipse]] beállításáról úgy, hogy minden jól menjen a gépen. Az akkori ígéretben még az is benne volt, hogy akkor nem találkoztam még a koncepció gyermekbetegségeivel. De ennek ellenére érdemes lehet leírni, hátha más is fel tudja használni az itt leírtakat.

Talán éppen emiatt merem azt mondani, hogy érdemes lehet megvizsgálni akár más platformokra is, amiket itt leírtam, mert a TeXlipse szinte mindenhol működik, és a többi platformra is van pdfsync-képes program.

Fontos megjegyzés: a TeXlipse a verziószáma ellenére helyenként még kicsit nehézkesen használható, főleg, ha bizonyos új komponensekkel kerül együttes felhasználásra, de ennek ellenére jól használható TeX környezet kialakítására alkalmas.

Ugyancsak a múltkor ígértem meg [[Dokumentumszerkesztés OSX-en Stampie módra|dokumentumszerkesztés kapcsán]], hogy írok részleteket a [[http://texlipse.sourceforge.net/|TeXlipse]] beállításáról úgy, hogy minden jól menjen a gépen. Az akkori ígéretben még az is benne volt, hogy akkor nem találkoztam még a koncepció gyermekbetegségeivel. De ennek ellenére érdemes lehet leírni, hátha más is fel tudja használni az itt leírtakat.

Talán éppen emiatt merem azt mondani, hogy érdemes lehet megvizsgálni akár más platformokra is, amiket itt leírtam, mert a TeXlipse szinte mindenhol működik, és a többi platformra is van pdfsync-képes program.

Fontos megjegyzés: a TeXlipse a verziószáma ellenére helyenként még kicsit nehézkesen használható, főleg, ha bizonyos új komponensekkel kerül együttes felhasználásra, de ennek ellenére jól használható TeX környezet kialakítására alkalmas.

De mielőtt belecsapnék a lecsóba, még egy ügyes OSX-es programra szeretném felhívni a figyelmet: a [[http://texlipse.sourceforge.net/|Skim]] nevű PDF nézegető program sokkal alkalmasabb a LaTeX kimenetének nézegetéséhez, mint a beépített Preview nevű program (ami azért a rossztól még mindig távol áll, de hát az Apple programjait is felül lehet múlni 🙂 ). Miért is? Az egyik hasznos dolog, hogy bizonyos esetekben be lehet állítani, hogy automatikusan töltse be a megváltozott pdf fájlt, és tudja a pdfsync nevű dolgot.

Ezek mik is? Hogyan is lehet őket használni? Haladjunk sorban. A módosított fájlok újratöltése egy hasznos lehetőség, hiszen így lehetővé válik, hogy a Skimre átváltva mindig a legfrissebb változatot lássam. Hogyan kell igénybe venni? Először is a Preferences ablak Sync fülén engedélyezni kell a Check for file changes kapcsolót. Ezután, ha észleli, hogy a megnyitott fájl frissült, megkérdezi, hogy be akarjuk-e tölteni. Azért nem tölti be automatikusan, mert ha a fájlhoz tartoztak nem mentett megjegyzések, kijelölések, akkor azok elvesznek. De a kérdésnél rögtön megjelenik az Auto kapcsoló, amivel a folyamat automatizálható – egészen a Skim leállásáig. Zsír.

Amivel még sok jót lehet kezdeni, az a pdfsync. Ez egy viszonylag modern megközelítés, alapvetően az a célja, hogy bizonyos metaadatokat állítson elő, amivel meg lehet állapítani, hogy a pdf fájl melyik sorához a tex forrás melyik sora tartozik (tudomásom szerint alapvetően pdf fájlokhoz képes szinkronizálni, aminek az egyik oka lehet, hogy az [[http://itexmac.sourceforge.net/pdfsync.html|OSX-specifikus LaTeX-szerkesztő]] számára készült el az elején, OSX-en pedig a ps, illetve dvi fájlokkal nehéz mit kezdeni, a pdf-et viszont gyárilag hihetetlenül kényelmesen kezeli. És ez az oka annak is, hogy a LaTeX-et a pdflatex fordítóval érdemes fordítani… Na mindegy, visszatérve a pdfsynchez, ez a metaadat csak akkor használható, ha mind a szerkesztő, mind a nézegető képes értelmezni az adatokat. Az én esetemben ez fennállt, csak megfelelően be kellett állítani a rendszert.

A Skim beállítása viszonylag egyszerű: az előbb emlegetett Sync lapon vannak a kapcsolódó beállítások. Miután a TeXlipse-et nem ismeri, kénytelen voltam egyedi sablont beállítani. A TeXlipse dokumentáció [[http://texlipse.sourceforge.net/manual/build.html|vonatkozó részei]] alapján létrehoztam egy egyszerű script fájlt (be lehetne írni az egyedi paraméterek közé is, de külön fájlban jobban kezelhető), és a fájl tartalma a következő lett:

java -classpath /Applications/eclipse/plugins/net.sourceforge.texlipse_1.2.2/texlipse.jar net.sourceforge.texlipse.viewer.util.FileLocationClient -p 55000 -f $2 -l $1

Itt a classpath-nál meg kellett adni a telepített texlipse jarját (sok sikert a kikereséséhez a plugin mappából 🙂 ), a FileLocationClient egy hozzáadott érték, a -p után pedig egy portszámot kell megadni, amit a TeXlipse beállítások között is szerepeltetni kell (nyilván ugyanazt a számot 🙂 ).

A Skim pdfsync paraméterei között egyrészt ezt a fájlt kellett megadni, másrészt paraméternek a %line “%file” paramétereket kell megadni – ezek segítségével lehet visszahívni a szerkesztőt. Ha más szerkesztőt akarunk használni, akkor nyilván a szerkesztő dokumentációjából kell kiszedni a dolgokat. De például az Aquamacs különösebb beállítás nélkül is viszi a szolgáltatást.

Mindenesetre nézzük akkor, hogy mit kell beállítani az Eclipse-ben, hogy működjön. Először is a TeXlipse számára kell a Skimet felvenni megjelenítőként – itt viszont nem a szokásos Skim.app/Contents/MacOS/Skim hívást kell megtenni, hanem egy külön script segítségével kell értesíteni, azaz a Skim.app/Contents/SharedSupport/displayline elemet kell megadni futtathatóként a TeXlipse számára, míg paraméterekként a %line %file %texfile értékeket (a leírások ajánlják a %file és a %texfile értékek idézőjelek közé helyezését, mert ekkor szóközt tartalmazó fájlok esetén is működik, de nálam úgy nem működött a rendszer – a Skim nem találta meg a hivatkozott fájlt).

Ja, igen, a beállítás helye: Eclipse Preferences, TeXlipse/Viewer Settings, és itt lehet felvenni egy új nézőprogramot. A Viewer input format értéke pdf, az Inverse search support értéknek a “Viewer runs external command” értéket kell megadni, és be kell jelölni a “Viewer supports forward search” jelölőnégyzetet. És ha ez megvan, akkor a nézőprogramok listája alatt a megfelelő portszámot be kell állítani.

Na, ha ez megvan, akkor lehet tesztelni. A tex fájl elejére még hozzá kell adni a pdfsync package-et, és jöhet a menet.

Sajnos nálam nem sikerült minden esetben futtatni a megoldást: abban az esetben, ha a forrásfájl, a létrehozott pdfsync fájl és a pdf fájl egy mappában volt, nem több fájlból állt a tex projekt, és nem használtam bibtex-et. Szóval sajnos nem csak a gyakorlatban lényegtelen esetekben nem működött, hanem sajnos elég sokszor… De amikor működött, akkor a Command + 4 (win-esek, linuxosok: ctrl+4) billentyűkombinációval az Eclipse-ből a pdf fájl megfelelő részére ugrott, a pdf fájlból pedig a Command+Shift lenyomása mellett kattintva lehetett visszaugrani az Eclipse-be. Sajnálom, hogy ez most nem működik.

Ha valakinek ezt sikerül jobban működésre bírni, esetleg képes megoldani a rendes futtatást, érdekelnek a részletek.

Ma sikerült egy másik problémakörbe belefutnom a LaTeX szerkesztés kapcsán. A gond akkor lép fel, ha megpróbáljuk SVN-en osztani a LaTeX projekt mappát, és különböző mappában vannak a forrásfájlok és az ideiglenes fájlok. Hihetetlenül idegesítő tud lenni, hogy minden egyes fordításkor (amit gyakorlatilag minden mentés triggerel), és hibaüzenetek nagy tömegét kapom, hogy nem tudta átmozgatni az elkészült ideiglenes fájlokat, mert nem sikerült felülírnia a fájlokat – hála annak, hogy az nem került feltöltésre az SVN szerverre.

Az egyedüli lehetséges megoldás az volt, hogy az ideiglenes fájlokat hozzá kellett adni az svn:ignore változóhoz, hogy ne akarja őket egyáltalán feltölteni az SVN szerverre. Ehhez a projekt jobb gombos menüjéből a Team/Add Property… pontja alatt felbukkanó ablakban kellett adatokat megadni: megadtam a paraméter nevét (svn:ignore), beállítottam, hogy a szabály rekurzívan teljesüljön minden erőforrásra, és a következő értékeket adtam meg a beviteli mezőbe:
*.aux
*.bbl
*.blg
*.bst
*.dvi
*.idx
*.lof
*.log
*.toc
temp
tmp
main.synctex.gz

Ez a megoldás megszüntette a problémát, ezzel lehetővé téve, hogy tovább működtessem a rendszert.

Author: Zoltán Ujhelyi

I am an Eclipse Technology Expert at IncQuery Labs Ltd. and a regular contributor of open-source projects, most importantly the VIATRA project at eclipse.org. Furthermore, I am in the process of finishing my PhD in computer science at the Budapest University of Technology and Economics focusing on analysis techniques for model queries and transformations.

5 thoughts on “LaTeX szerkesztés OSX-en”

  1. Hello!

    főleg a ti blogotok nyomán fontolgatom erősen hogy texclipse használatával írom meg a bsc diplomámat, a word2007 már az első 2 napban megutáltatta magát velem..

    viszont, nem tudom pontosan hogyan lehet az alap latin-1 kódolást átállítani, pedig ű betű is kéne a diplomába..
    (az eclipse a .tex fájlt a content type-ja alapján nem engedi más kódolásúként elmenteni csak latin-1, a content type pedig nem buherálható mert unlocked-nak van írva (3.4-es eclipse alatt legalábbis). Valami blog alapján ( http://beebo.org/stuff/tech/eclipse.html , HOWTO: Release “locked” content types ) Megpróbáltam a texclipse plugin xml-ben átírni a content type kódolását aztán törölni a configuration mappát hogy generálja szépen újra az eclipse, hiba volt, nem indul már az eclipse… )

    valamint az egész latex új nekem, szóval ha véletlenül van egy elfekvő BME-s diploma tex-váz, tudnám hasznát venni.. 🙂

    köszi
    üdv
    Turi András

  2. Na, megpróbálok sorban válaszolni a kérdésekre – ha valamit kihagytam, esetleg nem egyértelmű, nyugodtan kérdezz vissza.

    Karakterkódolás: a LaTeX sajátosságai miatt nem elegendő a forrás fájlok kódolását átállítani – megjegyzés: én nem kerestem megoldást a lockra, hanem egyszerűen átforce-oltam… Tudom, ez nem szép megoldás. Ha neked működött, akkor örömmel hallom ezt a megoldást. Ez valami TeXlipse bug lehet…

    Nem tudom, mennyire ismered az Eclipse-et korábbról, ha nem igazán, vagy nincs szükséged Eclipse integrációra, akkor érdemesebb lehet valami dedikált TeX környezetet választanod helyette (az Office 2007-es hivatkozásból arra következtetek, hogy Windows-t használsz, oda a MiKTeX (http://miktex.org/) környezetet javaslom első körben – a TeXlipse-nek vannak bizonyos dolgai, amik nem lopták be magukat a szívembe – de az Eclipse integráció számomra elegendő érték ahhoz, hogy ezt a hátrányt semlegesítse.

    Na, visszatérve az eredeti kérdésre, a karakterkódolás (valamint a nyelv) beállításához külön utasításokat kell kiadni a preambulumban (ez a \begin{document} előtti rész), ezek röviden:

    \usepackage[magyar]{babel}
    \usepackage[utf8]{inputenc}
    \usepackage{t1enc}

    Az utasítások jelentése kicsit részletesebben: a babel csomag betölti a magyar nyelv támogatást (pl. elválasztás), míg az általad kért karakterkódolást az inputenc csomag segítségével lehet megadni. A t1enc csomag pedig többek között az ékezetes elválasztás megfelelő támogatásához kell.

    Remélem, ezzel már működni fog a karakterkódolás… Ja, és persze határozottan nem árt a fájl karakterkódolását átállítani (nekem tényleg csak a kézi beállítás segített – kaptam róla warningokat a beállításkor…).

    Ha kezdő LaTeX-es vagy, akkor érdemes lehet valami tutorialt átnézni, az én javaslataim a Dokumentumszerkesztés tárgy fóliáit (miután valószínűleg oka van, hogy a tanár nem nyilvános URL-en osztotta meg, ezért én sem teszem – javaslom, hogy kövesd a tárgy wikilapját a SCH Wikin 😀 – nem minden állítása állja meg a helyét, de kiindulásnak jó), illetve a http://www.math.bme.hu/latex/ oldalt javaslom még kiindulásnak.

    Ha kezdő LaTeX-es vagy, akkor én mindenképpen a TeX Live csomag teljes telepítését javaslom (tudom, nagy egy kicsit, de elég sok mindent beállít, amivel így neked nem kell szórakozni).

    BME-s diploma vázzal valamikor régen találkoztam a neten, csak sajnos akkor nem mentettem le, most viszont így hirtelen nem találtam meg. A minőségéről sem tudok mit mondani, akkortájt nem igazán foglalkoztam vele…

    Remélem, segítettem valamit.

  3. Köszönöm a segítőkész választ!

    Végülis lehet hogy mégsem latexben készül a mű, a konzulensem szerint nem biztos hogy a hátralévő szűk másfél hónapba belefér a latex használatának elsajátítása a diploma megírása mellett. Ha nagyon kiábrándít a word, akkor talán teszek mégegy próbát a latex-világban.

    Mindenesetre amiket írtál müködnek; köszönöm. Valóban egyszerűbb a file-encodingot a content-type ellenére kézzel átállíttatni, ez a követendő út..

    Minden jót, és köszi mégegyszer!

  4. Szia!

    Sajnos igaza lehet a konzulensednek, másfél hónapra LaTeX-tanulás és diplomaírás kicsit meredek tud lenni. A LaTeXnek bizony vannak gyökérségei, erre rájönnek a szerkesztők gyökérségei is, és ezt ki kell ismerni… Ez időigényes.

    Én azt szoktam mondani, hogy ha az ember ismeri egy bizonyos alapszinten már a LaTeX-et, akkor kb. 10 oldalas szövegtől felfelé már jobban jön ki, mintha Word-öt/OO.o Writert használna…

    Megjegyzés: ha most nem kezded el a LaTeXet, akkor később már nem lesz időd rá. Ez biztos. Nem az a dolog, amit egyik éjszakáról a másikra meg lehet tanulni 🙂

    Mindenesetre sok sikert a diplomádhoz!

  5. Valszeg már nem aktuális sokaknak, de másoknak még hasznos lehet, úgyhogy itt is megosztom a linket, ha már megtaláltam.

    A BME MIT tanszék honlapján Márkus János megosztott egy diploma sablont (amennyire nézem, nem 100%-ban megfelelő a formai előírásoknak, de attól még használható lehet):
    http://mit.bme.hu/~markus/latex/thesis.html

Leave a Reply