January 05, 2013

LaTeX latviski un mūsdienīgi


The only way to learn is to suffer.
/prof. A Aharony, my PhD advisor/

Kopš es pirmo reizi saskaros ar LaTeX latviskošanu, rakstot bakalaura darbu Latvijas Universitātē (1996. gads), šī apbrīnojami stabila tehnoloģija ir spērusi dažus būtiskus soļus uz priekšu. Svarīgākais, kas pa šo laiku noticis datorpasaulē ar latviešu (un neskaitāmām citām!) valodām ir Unicode. Galvassāpes par dažādiem kodējumiem (encodings) nu lēnām pazūd kā ļaunais murgs, un pasauli pārņem utf-8.  Diemžēl, jo tālāk pagātnē ir studenta gadi, jo mazāk ir laika iedziļināties tehnoloģiju attīstībā. Un pat ja es ar sāpēm raugos, kā nākamā paaudze pārņem aizvēsturiskus latviskošanas trikus, līdz pagājušā gada nogalei man nebija laika un iegansta iedziļināties un vienreiz sarakstīt latvisku LaTeX dokumentu "kā nākas". Par to tad arī šis bloga ieraksts.

Vispirms dažos teikumos par to, kas ir LaTeX. Tā ir kompleksu tekstu sagatavošanas sistēma, kas nodrošina tipogrāfisku ekselenci "automātiski", ļaujot nedomāt par fontiem, atstarpēm un atsaucēm, bet veltīt sevi saturam. Ļoti noderīga diplomdarbiem, disertācijām, atskaitēm ar prāvu literatūras sarakstu, gariem vienādojumiem vai daudzveidīgām valodām. Protams, bauda no braukšanas nāk tikai tam, kas labi iejuties šofera krēslā, tādēļ jo sevišķi noderīgi ir padomi iesācējiem, kas palīdz "nekāpt uz grābekļiem" un pārvarēt apjukumu instalējot, uzskaņojot un uzsākot pareizi lietot tādu jaudīgu ieroci, kāds ir LaTeX.

Par laimi, pat latviski ir pieejamas labas pamācības, kā instalēt un uzsākt lietot LaTeX (patiecoties Jānim Valeinim un Kristapam  Bergfeldam), nemaz neminot globālo telpu un profesionāļu kopienu. Diemžēl, populārākais latviskošanas paņēmiens no 1996. gada - ar manuālām garumzīmēm ("ā" vietā rakstot "\={a}") - ir strupceļš, kas atņem virkni modernā LaTeX priekšrocību un padara daudz grūtāku teksta tālāko lietošanu ārpus LaTeX. Arņa Votikāna instrukcijas ir būtisks solis gaišās nākotnes virzienā, es piedāvāju vēl dažus solīšus.

Tātad, trīs lietas, ko apguvu gadu mijā un sirsnīgi iesaku LaTeX iesācējiem un lietpratējiem:
  1. XeLaTeX ar polyglossia valodu atbalstam un fontspec OpenType fontu izvēlei.
  2. KOMA-script kā pamats dokumenta stilam article vai report vietā.
  3. biblatex literatūras sarakstam(-iem) kā Bibtex pēctecis. (Ar Mendeley palīdzību var grābt metadatus no avotu mājaslapām un pat pdf failiem.)
Nedaudz sīkāk par katru no punktiem. Uzsākt ir ļoti vienkārši. Instalējot moderno MikTeX 2.9 vai TeX Live 2011 (de facto standarti attiecīgi Windows un Linux vidē), latviešu valoda strādā "out-of-the-box"! Nekāds konfigurēšanas, pakotņu pieinstalēšanas, vai "formātu failu atjaunošanas". Ir tikai jālieto Unicode-savietojams teksta redaktors (TeXnic center, TeXworks, jEdit, da jebkurš ne-antīks teksta redaktors, pat notepad!).

Šis ir "hello world" piemērs:
Rezultāts pdf failā izskatās sekojoši:
Par vienu "grābekli" gan gribu brīdināt: neskaidru iemeslu dēļ satura rādītājs ar KOMA-script un latviešu valodu negāja kopā, kamēr pārkopēju polyglossia failu ar latviešu valodas definīcijām "gloss-latvian.ldf" no MikTeX dziļumiem uz mana dokumenta folderi.

Protams, mums nav jāapstājas pie noklusējuma fonta un stila. Šeit ir plašāks paraugs ar paskaidrojošajiem komentāriem. "Nokompilētā" veidā šis piemērs, cerams, dod priekšstatu par LaTeX ideju un garu. Ievērojiet arī, ka OpenType fontu pieslēgšana piešķir garumzīmēm īsto garumu un novietojumu:
Tiem, ka ir tikuši tik tālu un vēlas (varbūt, ir spiesti) lietot Unicode-laikmeta LaTeX, novēlu pacietību un veiksmi! Ja ir ar ko padalīties, pastāstiet par savām veiksmēm vai neveiksmēm ar LaTeX. Nākamais solis būtu pārstrādāt Jāņa Valeiņa dimplomdarba stila failu "ludis", kas ir populārs fizmatu vidū.

Papildinājums: Andreja Vihrova 2011. gada pakotne "fixlatvian" ir lielisks atradums, kas pēc būtības līdz galam atrisina LaTeX latviskošanas jautājumu. Manā testā konflikti ar KOMA-script neradās. Nomainot garākā piemērā 2. un 3.rindiņu uz "\usepackage{fixlatvian}", bet 36. rindiņā - \ref uz \nref, rezultāts kļūst vēl tīkamāks. 

11 comments:

Artis Krūziņš said...

Pats lietoju un tiem, kas baidās no tā, kā izskatās latex varu ieteikt LyX. Teksta redaktors ar lietotājam draudzīgu GUI, bet gala rezultāts tāds pats, kā rakstot kodā. Ar Lv problēmu vairs nav, ja sakonfigurē MikTeX pēc Arņa padomiem un lieto XeLaTeX.

Unknown said...

Vislabākais risinājums: texlive + Andreja Vihrova http://code.google.com/p/fixlatvian/ pakotne.

shtolcers said...

Ar LyX būs problēmas, ja bus vēlme izmantot Texmaker vai citu tooli. LyX'am ir kaudze specifisku lietu, ko eskportējot uz tīru latex un importējot pēc tam kur citur, nākas labot ar roku.
Un LyX user friendly īpašība nozīmē to, ka specifisku lietu pielāgošana izrādās ļoti laikietilpīga vai neiespējama.
btw. nsaprotu, kāpēc vēl LU līmenī nav uztaisīti templeti visiem gala darba veidiem un beamer prezentācijām.

Ieva said...

Ar to tipogrāfisko skaistumu ir viena bēda. Lūk šajā pašā rakstā minētājā skaistajā piemērā garumzīmes ir uzliktas nesmuki. Par augstu, par garu.

LU diplomdarbu stils lietošanai ar xelatex man ir, tiesa, līdz šim neesmu manījusi lielu jēgu ieguldīt laiku tā padarīšanai publicējumu. Līdz šim nepārkožams rieksts ir izrādījusies bibliogrāfijas kārtīga latviskošana (Cers ir paveicis lielu darbu, bet viņa Valeiņa lapā atrodamajā veikumā joprojām ir pārāk daudz anglicismu). Vai arī esmu jaunākās vēsmas palaidusi garām?

Veidnes LU līmenī? Hmm, pat MS Word LU līmeni veidņu nav un tiekpatērēts bezjēdzīgi daudz cilvēkstundu daudziem studentiem formatējot savus galadarbus.

Vyacheslavs Kashcheyevs said...

Ievai:
1) Par garumzīmēm: nebija pareizi no manas puses iekļaut kā bildi tikai pašu primitīvāko rezultātu. Izvēloties OpenType vai TrueType fontu, skatam jābūt pēc augstākajiem standartiem, ieskatot ligatūras. Satpr citu, kā latviski ir "serif" kuru nav sansserif tipa fontos? Iespējams, arī "fonts" nav īsti latviski...

2) Par veidnēm - profesionāli izveidotās Office un LaTeX dimplomdarbu veidnes, protams, ka ietaupītu lielu radošās enerģijas daudzumu, turklāt ļautu studentiem mācīties no laba parauga, nevis kopēt vecās kļūdas. Jāraksta lūgumu Akadēmiskajam departamentam ar cc ITD, no FMF jau tāda vēstule aizāja pirms gada....

3) Literatūras saraksts tiešām ir cietais rieksts. Spriežot pēc tex.stackexchange.com diskusijām, biblatex ir par galvas tiesu advancētāks nēkā bibtex, tas "jūt" polyglossia izvēli, bet latvian tam vēl nav iemācīts (cik tālu esmu dzirdējis).

Pavisam skaisti būtu, ja šajā darbā sadarbotos letonikas, datorikas un tipogrāfiskās mākslas profesionaļi. Teju vai jāveido starpdisciplinārs projekts pa kultūras & tehnoloģiju līniju... Galu galā, ja gribam lai latviešu valoda ir ilgspējīga un zem anglofoniskā spiediena ir nesakropļota...

Kristaps B. said...

Tik tiešām jāpiekrīt, ka šie jautājumi (LU līmeņa .doc, .ppt, .sty faili) būtu jārisina ne tikai tāpēc, ka tā pāris fizmatiem vai datoriķiem tā patiktu, bet tāpēc, ka izkopt valodu 21.gs. pielietojumos ir nozīmīgi un pat kritiski. It sevišķi universitātes vidē, kur darba un valodas kultūra, cerams, ir svētā vietā.

Kā negatīvu piemēru varu minēt kolēģus studentus, kas labu gribēdami, lieto šo pašu LaTeX, bet ignorē faktu, ka latviešu valodā decimālais atdalītājs ir komats.

Ieva said...

Kā negatīvu piemēru varu minēt kolēģus studentus, kas labu gribēdami, lieto šo pašu LaTeX, bet ignorē faktu, ka latviešu valodā decimālais atdalītājs ir komats.
Ō, akmens manā dārziņā! Taču lai arī citkārt esmu par latviešu valodas pēdiņām un tamlīdzīgām lietām, šajā lietā apzināti grēkoju. Ja man dati tiek padoti ar punktu, apstrādāti ar punktu un LaTeX dokumentā importēti ar punktu, maziem darbiem tos formatēt uz komatu ir nesamērīgs spēka patēriņš. Kā izdarīt, zinu, taču šo laiku, manuprāt, reizēm ir lietderīgāk ieguldīt satura radīšanā.

Vjačeslavam: tos sauc par rēdzēm, ja nemaldos, bet tādu vārdu neviens nelieto. Un slikti.

Reiz mēģināju ar makebst izveidot bst failu LU vajadzībām (katra fakultāte gan vēlas nedaudz savādāk), bet pie latviešu burtiem process nobruka, nesanāca ne ar "š" ne "\v s". Ja kāds uztaisa, lūgums padalīties!

Mārtiņš Liberts said...

Paldies par rakstu! Prieks, ka TeX lietotāju skaits Latvijā aug :)

Biblatex oficiāli neatbalsta polyglossia, tam ir tikai babel atbalsts. Biblatex manuāli polyglossia vispār nav pieminēta. Lietojot kopā biblatex un polyglossia, parādās brīdinājums. Bet nu kaut kā jau kopā abas pakas strādā. Divas reizes mēģināju pāriet no BiBTeX uz biblatex, bet abās reizēs tomēr atdūros pret problēmām, kas tomēr liedza veikt pāreju. Joprojām lietoju BiBTeX kopā ar apacite paku, kas nodrošina manā skatījumā vislabāko atsauču veidošanu APA stilā. biblatex-apa lietošana kopā ar biblatex arī bija problemātiska. Bet nu nekas, gan jau ar trešo reizi beidzot pāriešu uz bablatex, kas neapšaubāmi ir spējīgāks par BiBTeX.

Kristaps B. said...

Linards Kalvāns ir izveidojis beamer stila failu ar LU tematiku! Pieejama šeit - https://github.com/lincis/beamer-lu

Kristaps B. said...

Vēlos tikai atzīmēt, ka atbilstoši augstākminētajām atziņām, esmu papildinājis/labojis savā rīcībā esošos stila failus noslēguma darbiem un laboratorijas darbiem. Skatīt šeit: http://fizmati.lv/forums/thread-6059.html

ZBXt said...

vai LaTeX rakstīto tekstu var arī kopēt un zmantot tās citos (ne Latex) dokumentos? Citem vārdiem - kā ar copy paste funkciju?