Wednesday, June 21, 2017

Teknis Matematis #7 Kekongruenan Bilangan

Mukadimah

Pada suatu saat mungkin Anda perlu menuliskan kekongruenan bilangan seperti tampak di samping ini. Secara teks, tentu, hal itu dapat dituliskan secara langsung. Namun demikian apakah Anda akan menghitung hasil kekongruenan itu lebih dulu?
Tidak perlu, $\LaTeX$ memiliki sumber daya untuk hal itu baik dalam penulisan maupun dalam penentuan hasilnya. Berapakah sisa pembagian dari $349$ oleh $8$?
Akan kita ulas teknis penulisan kekongruenan bilangan untuk bilangan yang "sederhana" (seperti contoh pada gambar tersebut), bukan bilangan dalam bentuk pangkat atau bilangan "rumit" lainnya. Ada $4$ paket yang dapat kita pilih untuk digunakan dalam hal itu, yaitu calculator, pgf, fp, dan expl3.

Teknis Penulisan

Menggunakan Paket Calculator

Bila kita kita akan menuliskan dan menetapkan nilai sisa pembagian dari $349$ oleh $8$ oleh paket calculator maka pada mukadimah kita cantumkan
\usepackage{calculator}
Kemudian perintah penulisan dan hasil perhitungannya oleh paket calculator kita nyatakan dengan
\MODULO{349}{8}{\sol}
Hasilnya akan tampak seperti pada gambar di atas.

Menggunakan Paket Pgf

Bila kita kita akan menuliskannya oleh paket pgf maka pada mukadimah kita cantumkan
\usepackage{pgf}
Bila kita ingin penulisan dan perhitungan nilai seperti tampak pada gambar di atas, maka lebih dulu kita perlu menetapkan suatu perintah baru, misalnya
\pgfmathtruncatemacro{\hitung}{\pgfmathresult}
Kemudian pencetakan teks dan hasilnya diperintahkan oleh
$349\equiv\hitung\pmod{8}$
Hasilnya akan tampak seperti pada gambar di atas.
Bila kita hanya ingin menunjukkan hasil perhitungannya saja maka cukup kita nyatakan
\pgfmathparse{mod(349,8)} \pgfmathresult
dan paket pgf akan memberikan hasilnya dalam satu tempat desimal sebagai $5.0$.

Menggunakan Paket Fp

Pilihan ketiga adalah dengan menggunakan paket fp. Selain mencantumkan paketnya (dalam opsi nomessages), kita masih harus menetapkan dulu perintah baru untuk penulisan teks dan perhitungannya.
\usepackage[nomessages]{fp}
\newcommand{\modulo}[2]{%
  \FPeval{\result}{trunc(#1-(#2*trunc(#1/#2,0)),0)}\result
}
Dengan perintah \modulo tersebut maka pencetakan teks dan hasilnya itu diberikan oleh
$349\equiv\modulo{349}{8}\pmod{8}$
dan hasilnya akan tampak seperti pada gambar di atas.

Menggunakan Paket Expl3

Pilihan keempat adalah dengan menggunakan paket expl3. Seperti dalam penggunaan paket fp, selain pencantuman paketnya, lebih dulu kita masih harus menetapkan suatu perintah baru.
\usepackage{expl3}
\ExplSyntaxOn
\newcommand{\modulonya}[2]{\int_mod:nn{#1}{#2}}
\ExplSyntaxOff
Dengan perintah \modulonya tersebut maka pencetakan teks dan hasilnya itu diberikan oleh
$349\equiv\modulonya{349}{8}\pmod{8}$
Hasilnya akan tampak seperti pada gambar di atas.

Bila kita hanya ingin menunjukkan hasil perhitungannya saja maka cukup kita nyatakan
$\modulonya{349}{8}$

Penutup

Tentu banyak "pernak-pernik" dalam hal teknis penulisan dokumen yang perlu kita ketahui agar dokumen yang kita tulis tercetak secara optimal. Karena untuk hal itu kita harus merancangnya sendiri maka kita perlu mempelajarinya. Dua situs, CTAN dan StackExchange (SE), merupakan sumber belajar yang diperlukan.
Demikian semoga bermanfaat. 

$\square$ Adjie Gumarang Pujakelana 2017

Monday, June 19, 2017

PDFComment: Menyertakan Komentar pada Naskah

Mukadimah

Dunia penuh "warna", demikian ungkapan yang kerap kita dengar. Demikian pula kaitannya dengan isi tulisan atau naskah pada suatu dokumen. Untuk suatu maksud tertentu, layaklah bila kita mempertimbangkan cara dan teknis agar naskah/dokumen itu tampak "anggun", menarik, dan praktis. 
Perhatikan gambar di samping ini. Pada suatu ketika Anda mungkin pernah menemukan suatu dokumen berbentuk PDF yang memuat "penandaan" semacam itu dan berisi suatu komentar dari penulisnya. 
Bagaimana penulis/penyunting dokumen melakukan hal itu?
Di dalam $\LaTeX$ kita memiliki sumber daya semacam itu, yang dikemas dalam bentuk paket. Ada fixme, todonotes, cooltooltips, fancytooltips, dan pdfcomment. Kita akan mengulas yang disebut terakhir itu.

Teknis Penulisan

Lebih dulu, pada mukadimah, kita cantumkan paketnya.
\usepackage[opsi]{pdfcomment}
Ada beberapa opsi yang (mungkin) perlu dan dapat kita cantumkan. (Anda dapat mempelajarinya secara lengkap pada dokumentasinya.) Salah satunya adalah nama seseorang (penulis atau siapa pun) yang menyatakan komentar itu. Bila nama komentator itu ingin dicetak (disertakan) maka kita nyatakan
\usepackage[author={nama_komentator_yang_dirujuk}]{pdfcomment}
Sekarang kita dapat memulai untuk menerapkan komentar pada bagian dari naskah/tulisan. Komentar kita berikan dalam bentuk perintah beserta opsinya (sekiranya diperlukan). Ada beberapa perintah yang dapat kita gunakan (seperti tertuang pada dokumentasinya), namun saya hanya akan mengulasnya dua saja, yaitu pdfcomment dan pdfmarkupcomment. Masing-masingnya dapat kita letakkan pada awal, akhir, atau di antara keduanya pada suatu kalimat (teks). Perintah pertama kita nyatakan sebagai
\pdfcomment[opsi]{teks_komentar}
Ada beberapa opsi yang dapat kita pilih dan cantumkan, di antaranya warna dan ikon (lihat dokumentasinya). Untuk baris pertama pada contoh di atas, saya nyatakan
Persamaan kuadrat $ax^2+bx+c=0$, $a\neq0$, selalu \pdfcomment[color=red,icon=Note]{Perhatikan ini!} memiliki dua akar.
Berbagai jenis ikon dapat Anda lihat pada dokumentasinya.

Perintah kedua saya nyatakan sebagai
\pdfmarkupcomment[opsi]{teks_yang_dikenai_opsi}{teks_komentar}
Ada beberapa opsi yang dapat kita pilih dan cantumkan, di antaranya warna dan markup (lihat dokumentasinya). Untuk baris kedua pada contoh di atas, saya nyatakan
\pdfmarkupcomment[markup=StrikeOut,color=red]{Dilarang membuang}{Buanglah} pada tempatnya!
Opsi markup menyediakan $4$ pilihan, yaitu teks yang dilatari oleh suatu warna (Highlight), teks yang digarisbawahi (Underline), teks yang digarisbawahi oleh garis bergerigi (Squiggly), dan teks yang dicoret (StrikeOut).

Demikianlah untuk baris ketiga, keempat, dan kelima berturut-turut saya nyatakan
\pdfmarkupcomment[markup=StrikeOut,color=red]{Dilarang membuang}{Buanglah} pada tempatnya!

\pdfmarkupcomment[markup=Highlight,color=yellow]{Setiap waktu akan menuakan sesuatu.}{Ini hasil dari permenungan, hehehe ...}

Perhatikan gambar \pdfcomment[icon=Comment,color=blue]{Ingat gambarnya!} berikut ini!
Hasilnya terlihat pada dokumen berikut ini. Anda perlu menggunakan Adobe Reader atau Adobe Acrobat Reader DC untuk membuka dan menampakkan hasilnya. Kemudian penampakkannya itu dapat pula Anda atur pada menu Tools > Comment.






Penutup

Tak sesuai dengan lirik dari Andra and the BackBone, paket pdfcomment tidaklah begitu sempurna. "Kekurangannya" antara lain:
  • Penampakkan ikon komentar cukup menyita "ruang baris" untuk teks. Oleh karena itu (seperti contoh dokumen tersebut), penyertaan penggunaan paket pdfcomment akan tampak agak baik bila digunakan spasi (linespread) $2\textrm{pt}$.  
  • Terdapat kerenggangan yang cukup jauh antara teks komentar dengan tepi atas kotak komentar, ketika opsi global paket itu tidak menggunanakan nama komentator.
  • Teks komentar tidak dapat dinyatakan dalam modus matematis (rumus). 
  • Ikon komentar memberikan kesan "ramai" pada tulisan/naskah.
Untuk meniadakan kesan "ramai" itu, kita dapat menggunakan perintah pdftooltip melalui suatu perintah baru (cantumkan pada mukadimah). Misalnya,
\newcommand\komentar[3]{\newcommand{#1}{\pdftooltip{#2}{#3}}}
Sebagai contoh, kita dapat menggunakannya dalam menyatakan rumus untuk persamaan garis bergradien $m$ dan melalui suatu koordinat $(a,b)$. Untuk keperluan itu kita dapat menetapkan beberapa perintah yang mendukungnya, misalnya
\komentar{\m}{m}{gradien}
\komentar{\absis}{a}{absis dari titik yang dilalui oleh garis}
\komentar{\ordinat}{b}{ordinat dari titik yang dilalui oleh garis}
\komentar{\teks}{Persamaan garis}{sebagai contoh saja}
Dengan demikian di dalam naskah dapat kita tuliskan
\teks\ yang bergradien $m$ dan melalui koordinat $(a,b)$ ditentukan oleh $y-\ordinat = \m(x-\absis)$.
dan hasilnya tampak pada baris terakhir dalam dokumen terlampir berikut ini. Silakan Anda arahkan kursor pada bagian rumus $y-b=m(x-a)$, maka pada huruf-huruf $b$, $m$, dan $a$ Anda akan memperoleh komentar sebagaimana telah ditetapkan di atas.
Demikian semoga bermanfaat.

$\square$ Adjie Gumarang Pujakelana 2017



Sunday, June 18, 2017

Kecakapan Melukis: Garis Bagi Sudut dan Penggunaannya

Mukadimah

Salah satu hal penting dalam menggambar bangun geometris adalah membuat garis bagi sudut. Kecakapan akan hal itu antara lain diperlukan, misalnya, ketika akan menetapkan titik pusat lingkaran dalam pada suatu segitiga. 
Sebagai contoh, mari kita buka halaman 36 pada Gillman, Rick. 2003. A Friendly Mathematics Competition, 35 Years of Teamwork in Indiana. Washington, DC: The Mathematical Association of America. Kita temukan satu soal berbunyi,
"Misalkan suatu segitiga siku-siku sama kaki dengan panjang sisi tetap $a$. Suatu persegi panjang dan suatu lingkaran terletak di dalam segitiga itu seperti ditunjukkan pada gambar di bawah ini. Tentukan ukuran persegi panjang (dan jari-jari lingkaran) sedemikian sehingga jumlah luas daerah persegi panjang dan lingkaran itu maksimum."
dan gambarnya  diberikan seperti tampak di samping ini. Bagimanakah cara melukisnya?

Makro untuk Garis Bagi Sudut

Makro berikut ini memerlukan dukungan dari kepustakaan TikZ calc
\newcommand{\bagisudut}[6][]{%
    \path[#1] let
        \p1 = ($(#3)!1cm!(#2)$),
        \p2 = ($(#3)!1cm!(#4)$),
        \p3 = ($(\p1) + (\p2) - (#3)$)
    in
        ($(#3)!#6!(\p3)$) -- ($(\p3)!#5!(#3)$) ;
    }
Dalam penggunaannya lebih dulu kita harus memiliki/menetapkan tiga koordinat (sebutlah) $A$, $B$, dan $C$ dan salah satunya berlaku sebagai titik sudut, dalam urutan penyebutannya berlawanan dengan arah putar jarum jam.
Untuk menetapkan garis bagi $\angle BAC$, kita nyatakan
\bagisudut[opsi]{B}{A}{C}{1.5}{2}
Makro garis bagi sudut itu berupa perintah \texttt{path}. Oleh karena itu, bila kita ingin menampakkan garis baginya maka opsi tersebut dapat kita isi oleh draw, yang dapat diikuti (ditambahi) oleh opsi lainnya bila ingin menampakkan garis baginya, misalnya warna, ukuran ketebalan atau bentuk garis, dan nama \texttt{path}.
Nilai $1.5$ dan $2$ menyatakan bahwa ruas garis bagi sudut itu berawal dari suatu titik sejarak $0,5$\,cm sebelum $B$ dan berakhir pada suatu titik sejarak $2$\,cm sesudah $B$. Dengan demikian bila nilai pertama adalah $1$ maka ruas garis bagi sudut itu berawal dari titik $B$.

Lukisan

Kita tetapkan tiga koordinat $A$, $B$, $C$, misalnya
\coordinate (A) at (0,0);
\coordinate (B) at (5,0);
\coordinate (C) at (5,5);
Kemudian, untuk membentuk persegi panjang, kita tetapkan
\coordinate (D) at (3,0);
\coordinate (E) at (3,3);
\coordinate (F) at (5,3);
Bila kita perintahkan $\LaTeX$ untuk menggambarkan bangun dari keenam koordinat itu beserta penamaan koordinatnya maka akan tampak seperti gambar di samping ini. Tidak kita lakukan, cukup membayangkannya saja seperti itu.
Sekarang kita akan menandai sudut siku-siku pada koordinat $B$. Salah satu pilihan, kita dapat mencantumkan makro berikut ini pada mukadimah
\def\siku[size=#1](#2,#3,#4){%%
   \draw[lightgray] ($(#3)!#1!(#2)$) -- 
         ($($(#3)!#1!(#2)$)!#1!90:(#2)$) --
         ($(#3)!#1!(#4)$);}
dan kita memerlukan dukungan dari kepustakaan TikZ angles.
Kemudian dalam kode untuk gambar TikZ itu kita perintahkan
\siku[size=6pt](C,B,A)
diikuti oleh mengambarkan $\triangle ABC$ dan menampakkan persegi panjang $DEFB$.
\draw[thick] (A)--(B)--(C)--cycle;
\draw[thick] (D)--(E)--(F);
Nah, sekarang kita bersiap untuk menggunakan garis bagi sudut. Kita bekerja pada $\triangle ADE$. Kita tetapkan dua garis bagi sudut kemudian menetapkan perpotongannya sebagai titik pusat dari lingkaran dalam $\triangle ADE$.
Misalnya, kita tetapkan garis bagi sudut $\angle DAE$ oleh
\bagisudut[name path=g1] {D}{A}{E}{1}{1.5}
dan kita tetapkan garis bagi $\angle EDA$ oleh
\bagisudut[name path=g2]{E}{D}{A}{1}{1}
Perhatikan bahwa kita menamai path dari kedua garis bagi itu sebagai $g_1$ dan $g_2$. Itu diperlukan karena kita akan menetapkan perpotongannya. Untuk hal itu kita memerlukan dukungan dari  kepustakaan Tikintersections. Perpotongannya itu kita tetapkan sebagai
\path [name intersections={of = g2 and g1, by={O}}];
dan $O$ itu merupakan pusat lingkaran dalam dari $\triangle ADE$.
Untuk memperoleh jari-jarinya, kita tetapkan proyeksi dari $O$ pada salah satu sisi dari $\triangle ADE$, misalnya pada sisi $\overline{AD}$. Proyeksinya itu kita tetapkan sebagai $T$ oleh
\coordinate (T) at ($(A)!(O)!(D)$);
Dengan demikian kita peroleh $\overline{OT}$ sebagai jari-jari lingkaran dalam dari $\triangle ADE$. Kemudian lingkaran dalam itu kita gambarkan oleh perintah
\draw[thick] 
  let 
  \p1=($(O)-(T)$), %jari-jari
  \n1={veclen(\x1,\y1)}
  in
  (O) circle (\n1);
Akhirnya, oleh seluruh rangkaian kode secara berurutan di atas kita peroleh gambar sebagaimana kita lihat pada awal tulisan ini.


Penutup

Kedua makro yang saya tunjukkan pada tulisan ini dibuat oleh ahli di forum. Itu merupakan cara praktis (ringkas) untuk menetapkan hal yang berkaitan, bila dibandingkan dengan cara manual dengan menuliskan kodenya secara langsung. Dengan demikian (meskipun belum memahami struktur penetapannya) kita dapat menggunakan kedua makro tersebut ketika diperlukan pada saat membuat suatu gambar TikZ.
Demikian semoga bermanfaat.

$\square$ Adjie Gumarang Pujakelana 2017

Saturday, June 17, 2017

XeLaTeX: Bekerja dalam Teks

Mukadimah

Sesuatu yang kita tampilkan tentu akan kita rancang sedemikian rupa agar memperoleh kesan menarik, memikat, bahkan memukau. Bagaimana kesan Anda terhadap teks pada gambar di samping ini?
XeLaTeX memberikan kemudahan kepada kita untuk memilih dan menggunakan jenis huruf sesuai dengan yang kita inginkan. Hal itu berkat ketersediaan paket fontspec yang digunakan di dalam compiler XeLaTeX.
Apa itu XeLaTeX?
Pada umumnya pengguna $\LaTeX$ (termasuk saya) lebih sering menggunakan penyusun/pengkompilasi (compiler) dokumen $\LaTeX$ yang "umum", yaitu pdfLaTeX. Padahal ada beberapa compiler yang dapat kita gunakan. Yang populer adalah pdfLaTeXXeLaTeX, dan LuaLaTeX. Sebagai contoh, penggunaan XeLaTeX dapat Anda temukan di sini dan penggunaan LuaLaTeX dapat Anda temukan di sana.
Di dalam XeLaTeX kita dapat menggunakan berbagai jenis huruf dalam ektensi *.ttf atau *.otf, yang dapat kita peroleh dari internet. Jenis huruf yang kita gunakan itu tunggal atau lebih dari satu jenis huruf. Kita dapat mengaturnya sesuai dengan keperluannya.
Pada contoh dalam gambar di samping ini, saya gunakan jenis huruf love-sunshine.ttf yang saya peroleh dari situ.

Teknis Penulisan

Misalkan kita sudah memiliki jenis huruf anu.ttf, maka bersama paket fontspec (pada mukadimah/preamble) kita tetapkan huruf itu sebagai huruf utama (main font).
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{anu.ttf}
Bila diperlukan, kita dapat menambahkan penggunaan jenis-jenis huruf lainnya. Masing-masing kita nyatakan oleh
\newfontfamily\kode{jenis_huruf.ttf}
Penyertaan perintah kode akan memudahkan kita dalam penggunaannya pada penulisan naskah. Untuk mengetahui hal itu, silakan perhatikan contohnya dalam tulisan ini.
Sekarang kita dapat memulai untuk menuliskan naskah pada badan dokumen (main body). Kemudian ketika akan melakukan kompilasi, pastikan bahwa kita menggunakan XeLaTeX. Bila Anda bekerja secara daring di dalam ShareLaTeX, maka pengaturannya sebagai berikut. Klik tombol menu,
Kemudian pada menu Settings, pilih Compiler XeLaTeX.
Bila sudah diatur sedemikian maka Anda dapat mengkompilasi dokumen tersebut.

Bila Anda bekerja secara luring di dalam TeX Live dengan penyunting TeXWorks, maka Anda dapat mengatur compiler XeLaTeX itu sebagai berikut.
Sangat mudah, bukan?

Penutup

Tampak bahwa berkat paket fontspec dan compiler XeLaTeX kita memperoleh keleluasaan dalam memilih jenis huruf yang akan kita gunakan. Untuk melengkapi pengetahuan dalam penggunaan paket fontspec, Anda dapat mempelajari dokumentasinya.
Demikian semoga bermanfaat.

$\square$ Adjie Gumarang Pujakelana 2017

Thursday, June 15, 2017

Curhat: Kisah Hidup dalam Telegram dan Berkahnya

Mukadimah

Ikut nimbrung sebagai "pendatang" di era digital, kita menghuni dan aktif bermasyarakat di dalam media sosial. Bermula dari Facebook, kemudian ke Twitter, Instagram, Path, Line, WhatsApp, hingga saya "mendekam" di dalam Telegram.
Di sana, di dalam Telegram, saya mengenali mereka secara "batiniah" tentang kehebatan dan kepopulerannya. Banyak grup yang dikelola untuk berbagi dan belajar, menebar kemanfaatan dari media sosial. 
Suatu ketika, saya "diseret" oleh seseorang ke dalamnya. Ternyata, kemudian, saya mengetahui bahwa beliau bukan orang sembarangan melainkan seorang tokoh yang sudah malang melintang ke mana-mana. Beliau membawa saya ke dalam grup Matematika Nusantara (MN), salah satu grup terbesar di dalam Telegram dengan jumlah anggota 2.959 pada saat tulisan ini dibuat.
Saya pun terkesima dan terbius oleh grup MN itu. Banyak ahli di dalamnya untuk saya belajar tentang kecakapan matematis dan mengasah kemampuan saya dalam mempelajari $\LaTeX$, bahkan menyediakan grup untuk menyalurkan kesukaan saya akan seni dan sastra a la kadarnya. Para ahli dari MN kemudian membentuk grup baru, sebagai sayap, untuk lebih khusus berdiskusi mengenai suatu bidang tertentu. Grup Indonesia Digital Teacher berdiskusi dan berbagi tentang pemberdayaan sumber daya digital. Grup BD Tricky MN berdiskusi dan berbagi tentang penyelesaian soal Matematika dengan cara yang efisien. Grup FGD OSN MN berdiskusi dan berbagi tentang penyelesaian soal Olimpiade Matematika. Kemudian masih banyak lagi grup-grup dengan kekhususan dan keistimewaannya masing-masing.

Keberkahannya

Di dalam Telegram kita dapat belajar secara gratis dari para ahli dan memperoleh informasi yang masih hangat secara cepat. Kesempatan itu dapat kita peroleh dari genggaman tangan dan ujung jari pada setiap saat dari mana pun kita mengaksesnya. 
Lalu lintas informasi dan diskusi di dalam grup-grup Telegram itu, seperti lirik dari Sandhy Sondoro, tak pernah padam. Selain itu, secara berkala grup-grup tertentu juga memberikan kesempatan khusus dengan mengadakan kegiatan belajar dalam jaringan untuk suatu hal tertentu, misalnya belajar tentang pemanfaatan software, belajar tentang pemanfaatan media sosial, dll.
Salah satu contoh berkah itu, saya peroleh kemarin. Seseorang menanyakan bagaimana cara mengubah bilangan dalam basis $10$ menjadi bilangan dalam basis $3$. Misalnya bilangan $2012$ diubah ke basis $3$. Seorang ahli menanggapinya, kemudian saya pun nimbrung dengan menampilkan secara visual dengan berhias bingkai.
Itu berkat makro longdiv dan paket TikZ.
Kemudian seorang ahli lain, Egreg, di forum menunjukki saya cara lain untuk menampilkan hal itu melalui suatu perhitungan, seperti tampak berikut ini.
Itu berkat (pada mukadimah) paket xparse dan makronya berikut ini.
\usepackage{xparse}

\ExplSyntaxOn
\NewDocumentCommand{\bagibasis}{O{c}mm}
 {% #1 is the alignment for tabular
  % #2 is the number to be manipulated
  % #3 is the base
  \induktio_showbase:nnn { #1 } { #2 } { #3 }
 }

\tl_new:N \l__induktio_table_contents_tl
\int_new:N \l__induktio_quotient_int
\int_new:N \l__induktio_remainder_int
\bool_new:N \l__induktio_first_row_bool

\cs_new_protected:Npn \__induktio_add_row:nn #1 #2
 {% #1 is the base, #2 is the quotient
  \tl_put_right:Nx \l__induktio_table_contents_tl
   {
    \int_compare:nF { #2 == 0 } { #1~ }
    \__induktio_quotient:n { #2 }
    &
    \bool_if:NF \l__induktio_first_row_bool
     {
      sisa~\int_to_arabic:n { \l__induktio_remainder_int }
     }
    \exp_not:N \\
   }
 }

\cs_new_protected:Npn \induktio_showbase:nnn #1 #2 #3
 {
  \tl_clear:N \l__induktio_table_contents_tl
  \bool_set_true:N \l__induktio_first_row_bool
  \int_set:Nn \l__induktio_quotient_int { #2 }
  \__induktio_recursion:n { #3 }
  \begin{tabular}[#1]{@{}rl@{}}
  \tl_use:N \l__induktio_table_contents_tl
  \end{tabular}
 }

\cs_new_protected:Npn \__induktio_recursion:n #1
 {% #1 is the base
  \__induktio_add_row:nn { #1 } { \int_to_arabic:n { \l__induktio_quotient_int } }
  \bool_set_false:N \l__induktio_first_row_bool
  \int_set:Nn \l__induktio_remainder_int
   {
    \int_mod:nn { \l__induktio_quotient_int } { #1 }
   }
  \int_set:Nn \l__induktio_quotient_int
   {
    \int_div_truncate:nn { \l__induktio_quotient_int } { #1 }
   }
  \int_compare:nTF { \l__induktio_quotient_int == 0 }
   {
    \__induktio_add_row:nn { #1 } { \int_to_arabic:n { \l__induktio_quotient_int } }
   }
   {
    \__induktio_recursion:n { #1 }
   }
 }

\cs_new_protected:Npn \__induktio_quotient:n #1
 {
  \int_compare:nTF { #1 == 0 }
   {
    #1
   }
   {
    \begin{tabular}{@{}r@{}}\vline\ #1\\\hline\end{tabular}
   }
 }
\ExplSyntaxOff

\newcommand{\semibox}
Kemudian untuk mencetak dan mengetahui pengubahan bilangan (misalnya) $2012$ dalam basis $3$, pada naskah kita nyatakan
\bagibasis[t]{2012}{3}
Hasilnya akan tampak seperti pada contoh paling kanan dalam gambar di atas.

Penutup

Ada hal khusus dari kemanfaatan Telegram, yaitu Bot. Telegram memuat dan menyediakan fasilitas untuk membuat Bot, sejenis "aplikasi" untuk suatu hal/tujuan tertentu. Kita dapat menggunakan Bot yang sudah dibuat oleh orang lain atau bahkan dapat membuat Bot sendiri (bila memungkinkan). Dengan Bot-bot itu kita dapat menggunakan kamus (KBBI), mengetahui jadwal salat, mengetahui jarak antar kota, belajar Quran/Hadits, dll, termasuk pemanfaat secara teknis di dalam Telegram itu sendiri.
Demikian semoga bermanfaat.

$\square$ Adjie Gumarang Pujakelana 2017

Monday, June 12, 2017

Contour: Bersolek dalam Teks

Mukadimah

Untuk suatu maksud atau keperluan tertentu, kita ingin agar teks yang kita tampilkan tampak menarik dan memikat. Perhatikan gambar di samping ini. Salah satu pilihan untuk hal itu adalah dengan menggunakan paket contour.
Oleh paket tersebut, kita dapat mengatur teks yang kita tulis sedemikian sehingga teks tersebut memiliki "garis tepi" untuk setiap hurufnya dan dapat ditebalkan dalam suatu ukuran tertentu. Selain itu kita pun dapat mengatur pewarnaan pada bagian "isi" dari huruf-huruf itu.
Dalam hal pewarnaan, seperti untuk contoh pada gambar di samping ini, kita gunakan paket xcolor dengan memuat ketiga opsinya: dvipsnames, svgnames, dan x11names. Tentu, Anda pun dapat menggunakan warna yang Anda tetapkan sendiri, seperti telah dicontohkan di sini.

Teknis Penulisan

Lebih dulu, pada mukadimah, tentu harus kita cantumkan
\usepackage[outline]{contour}
Opsi outline memberikan hasil yang baik untuk keperluan penulisan teks semacam ini.
Contoh pertama pada gambar di atas menunjukkan teknis dasar dalam penulisan teks dengan menggunakan paket contour. Kita nyatakan 
\contour{warna}{teks}
yang akan menghasilkan teks "berisi" warna hitam dengan warna "garis tepi" sesuai dengan warna yang kita cantumkan.

Pada contoh kedua kita isi teks oleh warna tertentu yang kita nyatakan dengan
\textcolor{warna isi huruf}{
\contour{warna tepi huruf}{teks}
                            }
Seperti contoh kedua, pada contoh ketiga kita menebalkan "garis tepi" pada tiap hurufnya. Untuk hal ini kita harus menetapkan
\contourlength{ukuran ketebalan}
Pada contoh ketiga digunakan ukuran ketebalan "garis tepi" huruf senilai $1.7\textrm{pt}$ dan hasilnya tampak pada gambar di atas.

Seperti contoh ketiga, pada contoh keempat kita tingkatkan ketebalan "garis tepi" hurufnya sedemikian sehingga membentuk "bayangan" yang cukup "lebar". Pada contoh ketiga digunakan ukuran ketebalan "garis tepi" huruf senilai $3.5\textrm{pt}$. 


Penutup

Mudah, bukan? Pada tingkat penggunaan selanjutnya kita dapat memadukannya dengan penggunaan paket TikZ yang (misalnya) didukung oleh kepustakaan decorations.text dan decorations.pathreplacing seperti berikut ini.

yang dihasilkan oleh
\begin{tikzpicture}[scale=2]
  \def\tekukteks#1{\textcolor{white}{\contour{PineGreen}{#1}}}
  \node (A) at (-3.9cm, -0.95cm) {};
  \node (B) at (4.1cm,-0.75cm) {};   
  \draw[
  decoration={
    text effects along path,
    text={\Huge karena \LaTeX\ ingin dimengerti.},
    text align=center,
    text effects/.cd,
    text along path, 
    scale text to path,
    characters={font=\Huge,
    character command=\tekukteks},
            },
  decorate,
        ]  
    (A) to [out=-2,in=160]  (B);
\end{tikzpicture}
Demikian semoga bermanfaat.

$\square$ Adjie Gumarang Pujakelana 2017