Pemrograman LuaTeX dengan ConTeXt

Pemrograman di LuaTeX melalui sistem pengaturan ConTeXt yaitu interaksi antara ConTeXt dan Lua. Kamu dapat memulai kode Lua, selanjutnya fungsi tambahan untuk mengambilnya kedalam sistem TeX. Dua jalan utama dalam melakukan eksekusi kode Lua didalam dokumen ConTeXt yaitu perintah \ctxlua dan lingkungan \startluacode...\stopluacode. Keduanya merupakan wrappers untuk primitif LuaTeX, \directlua, kamu seharusnya tidak perlu menggunakannya. Secara umum, kamu akan mendefinisikan suatu fungsi dalam blok \startluacode dan kemudian mendefinisikan perintah TeX sehingga memanggil fungsi dengan menggunakan \ctxlua khususnya karena \ctxlua mempunyai sedikit idiosyncracies. Hal utama tentang kode Lua dalam dokumen TeX adalah ini ; kode diperluas oleh TeX sebelum Lua mendapatkan. Ini mengartikan semua kode Lua, meskipun komentar harus resmi kode TeX. String seperti  \undefined bisa menyebabkan kesalahan tiba-tiba.

Perintah untuk inline Lua

Perintah \ctxlua digunakan untuk kode pendek Lua seperti ini :

\ctxlua beroperasi dimana kategori kode normal, TeX atau catcodes. Ini mengartikan dua hal dibawah ini untuk kode Lua didalamnya yaitu :
  1. semua baris baru dianggap spasi.
  2. karakter khusus seperti &, #, $, {,{, dan lain -lain perlu dikembalikan.
Tambahan, peringatan diatas tetap memuat. Semua kode Lua meskipun komentar harus dikembalikan kedalam bahasa TeX. Beberapa kode untuk mengilustrasikan masalah baris baru yaitu

Masalah dengan karakter khusus  TeX. (#t) adalah Lua untuk panjang array t).

Cetakan Sederhana


context(),tex.print() dan tex.sprint. Menggunakan context(...) untuk kebanyakan hal adalah ekuivalen dengan menggunakan tex.print(string.format(...)), sehingga

Lebih primitif lagi, kamu mempunyai tex.print() dan tex.sprint(). Salah satunya bisa diambil sebagai argumen atau banyak string atau array string dan akan disisipkan  string kedalam TeX. Hanya perbedaannya adalah tex.print() yang melakukan setiap string sebagai baris masukan terpisah, sementara tex.sprint tidak. Jadi seperti baris dibawah ini :

Keduanya akan diinterprestasi oleh TeX sebagai : a b. Tetapi ketika kita menggunakan tex.print, salah satu baris dibawah ini :
\ctxlua{tex.sprint("a", "b")}
\ctxlua{tex.sprint({"a", "b"})}
Akan dibawah oleh TeX sebagai ab. Tanpa ada spasi diantaranya.

Perhitungan Sederhana

Melakukan perhitungan sederhana menjadi hal yang sulit ketika kita menggunakan TeX. Dengan Lua, perhitungan ini menjadi mudah. Untuk contoh
\def\COSINE#1%
  {\ctxlua{context(math.cos(#1*2*math.pi/360))}}
Fungsi diatas adalah fungsi math.cos yang kita asumsikan dispesifikasikan dalam radian, sehingga kita bisa konversi dari derajat ke radian. Jika kamu ingin memasukan nilai dalam artikel kamu masukan
$\pi = \ctxlua{context(math.pi)}$
Atau, jika kamu ingin sedikit presisi :
$\pi = \ctxlua{context("\%.6f", math.pi)}$

Komentar

Postingan populer dari blog ini

SMART DIAGRAM di LaTeX

Membuat Soal Ujian Menggunakan LaTeX #Part 2

Instalasi Protext LaTeX di Windows 7 , 64-bit