Skip to content

Kā dabūt dinamiskus TeX dokumentus?

Decembris 1, 2010

Atbilde ir Sweave.

Principā kaut ko tādu es meklēju jau vasarā, aplūkoju RPy un gudroju par tā iekļaušanu tex dokumentā, bet tas likās pārāk sarežģīti. Taču ar roku pārrakstīt no Excel uz Wordu daudzus ciparus arī galīgi nav forši, tādēļ izveidoju savu sistēmu, kur dati tiek rakstīti teksta failos, tos padod R, tas rezultātus raksta teksta failos, tie tiek iekļauti tex dokumentā. Lai teikumā iesaistītu skaitļus, kas man nebūtu jāpārraksta, katram skaitlim jābūt savā atsevišķā teksta failā. DAUDZ failu, jāuzmanās, lai ieliktu pareizo, diezgan neērti, bet ko gan nedarīsi skaistuma vārdā. (Principā visa šī ņemšanās attaisnojas vienā vienīgā reizē, kad mainās izejas dati vai arī kas būtisks tiek pamainīts algoritmā. Vienā vienīgā reizē, un šādas reizes parasti gadās tad, kad jau ūdens smeļas mutē.)

Un tad, kādu dienu, kad man patiesībā bija jāražo kārtējais darbs nevis jālasa visādi blogi ar domu “kā to izdarīt foršāk”, uzdūros Sweave. Tagad man ir fails, kurā tex kods mijas ar R kodu (visi mazie R koda gabaliņi tiek uztverti kā viena sesija). Es šos koda gabaliņus varu padarīt redzamus, varu padarīt neredzamus. Es varu rakstīt R kodu un vienlaikus to dokumentēt (komentāri kodā nav dokumentācija, ja kas). Es varu iekļaut tekstā dinamiskus skaitļus ar īpašu tagu. Nu laime pilnīga.

No manuāļa un piemēru pārstāstīšanas atturēšos, rekur links uz piemēru, kas man iepatikās.

Ja vēl Rnw failu kompilē ar pgfsweave nevis Sweave, grafiki tiek eksportēti kā tikz faili un attiecīgi izskatās daudz smukāk. Vēl smukumu piedod pakete Sweavel. Vai es jau teicu, ka laime pilnīga?

From → geek stuff

One Comment

Trackbacks & Pingbacks

  1. Ērts R redaktors « Ziņas no krāsu tuksneša

Komentēt

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Mainīt )

Twitter picture

You are commenting using your Twitter account. Log Out / Mainīt )

Facebook photo

You are commenting using your Facebook account. Log Out / Mainīt )

Google+ photo

You are commenting using your Google+ account. Log Out / Mainīt )

Connecting to %s