Membuat buku ajar atau minimal catatan kuliah (diktat) seharusnya sudah menjadi kebiasaan para dosen. Di Prodi Fisika, cukup banyak dosen memiliki kebiasaan itu. Profesor Mikrajudin Abdullah, salah satu profesor kami, mampu menyelesaikan catatan kuliah untuk (hampir?) semua mata kuliah yang diampunya, bahkan beliau menulis buku-buku tingkat sekolah menengah. Dosen-dosen lain juga sudah menulis buku. Tidak mau ketinggalan, sejak beberapa semester yang lalu saya juga mulai membuat template LaTeX untuk buku, agar kelak bisa dipakai untuk membuat buku ajar. Template itu sebenarnya bukan murni buatan saya, namun hanya modifikasi dari template yang sudah ada. Cara modifikasinya pun hanya comot sana-sini dari berbagai forum dan blog, saya hanya mengumpulkannya. Artikel ini dibuat sebagai dokumentasi atas modifikasi tersebut, agar mudah dilacak dan digunakan. Semoga para pemilik asli dari script yang saya comot tidak marah membaca artikel ini. Mari kita mulai.

Template dasar

Digunakan kelas dokumen tufte-book. Bentuknya sudah rapi dari sananya, sebenarnya tidak perlu banyak modifikasi.  Saya hanya mengatur ukuran halaman (dibuat ukuran B5, bukan A4, agar kelak buku jadi lebih tebal). Saya menggunakan file sampel yang diberikan di paket tufte. Dua file penting yang tidak boleh lupa disalin ke folder kerja: tufte-book.cls (kelas dokumen) dan tufte-common.def (berisi banyak pengaturan dan definisi perintah). Salah satu perbedaan buku tufte dengan buku standar adalah adanya margin note yang memungkinkan membuat catatan, menyimpan gambar, atau catatan kaki. Pada versi cetaknya, bagian kosong di tepi halaman juga bisa dipakai oleh pembaca untuk membuat catatan tangan. Tampilan di dalam dokumennya kira-kira seperti ini:

Sampul

Warna sampul dan tata letak huruf dibuat pakai script, semuanya. Berikut contoh script (ditulis pertama setelah \begin{document}).

%sampul
 \definecolor{titlepagecolor}{rgb}{0.127,0.26,0.250}
 \definecolor{namecolor}{cmyk}{0.8,.20,0,.10}
 \begin{titlepage}
 \newgeometry{left=3.5cm, top=2cm, bottom=3cm} %definisi margin di halaman sampul
 \pagecolor{titlepagecolor}
 \noindent
 %\includegraphics[width=2cm]{logo.jpg}\\[-1em] %aktifkan kalau mau masukkan logo
 \color{white}
 %\makebox[0pt][l]{\rule{1.3\textwidth}{1pt}}
 \par
 \noindent
 %
 %%%%%%% penulis %%%%%%%
 \flushright{\LARGE{\textsf{Agus Suroso}}}\\[4cm]
 %
 %%%%%% judul %%%%%%%%
 \begin{flushleft}
 \noindent
 \LARGE{\texttt{Sebuah catatan ringkas dari kuliah}}\\[0.3cm]
 \DeclareFixedFont{\titlefont}{T1}{ppl}{b}{it}{0.4in}
 %\fontsize{60}{80}\selectfont \emph{14}\huge{ Pekan Kuliah}\\[-0.0cm]
 \textcolor{white}{\titlefont{Teori Relativitas\\[0.5cm] Umum}}\\
 \end{flushleft}
 %
 %
 \vfill %kosong
 %
 %%%%%%% Penerbit atau prodi %%%%%
 \flushleft{{\LARGE \textsf{Prodi Sarjana Fisika, FMIPA-ITB}}
 \vskip 0.5\baselineskip
 \noindent
 \Large\textsf{\monthyear} %bulan, tahun. definisinya ada di file cls def
 }
 \end{titlepage}

Hasilnya seperti yang ada di atas sana, di awal artikel.

Nomor bab

Nomor bab ditampilkan di halaman pertama tiap bab, berukuran besar, di area margin note samping judul. Saya lupa, script ini diambil dari mana, yang jelas ada orang lain yang sudah mengerjakannya, saya hanya menyalin. Bagian ini disisipkan sebelum \begin{document}.

%%%%%% Format halaman pertama tiap bab %%%%%%%
 \usepackage{graphics}
 \usepackage{titlesec}

%%%%%% format halaman judul bab %%%%%%
 \titleformat{\chapter}[display]%
 {\relax}{\mbox{}\marginpar{\vspace*{-\baselineskip}\color{gray!90!white}\resizebox{!}{2cm}{\thechapter} }}{0pt}%
 {\Huge\itshape}[\normalsize\vspace*{.8\baselineskip}\titlerule]

Hasilnya:

Butir subbab

Kalau dilihat di gambar di atas, di bawah nomor bab ada rincian subbab untuk bab terkait. Itu ditambahkan secara manual dengan menuliskan satu per satu subbab di bawah \chapter. Belum nemu cara otomatisnya.

\chapter{Osilasi}
 \addtoc{
 \item Persamaan diferensial linear
 \item Osilasi harmonik sederhana
 \item Osilasi teredam
 \item Osilasi paksa
 }

Teorema, contoh, tugas, aktivitas

Dalam buku kadang-kadang ada teorema, contoh soal atau soal-soal tugas yang disisipkan di antara narasi. Sebagai contoh, perhatikan bagian di dekat kursor pada gambar berikut,

Bagian itu dibuat menggunakan lingkungan “example” atau “theorem” karya orang lain [lupa sumbernya]. Saya hanya mengedit seperlunya menjadi,

%%%% paket ini berisi banyak simbol yang bagus, 
%%%% salah satunya gambar pensil yang saya dipakai
\usepackage{fontawesome}
%
\declaretheorem[style=examplestyle, numberwithin=section]{contoh}
\declaretheoremstyle[
  spaceabove = 2em, spacebelow=3em,  % Space above and below the entire example
  headfont   = \sffamily\bfseries,  % Head font
  headformat = \faPencilSquareO  ~\textbf{Aktivitas}~%\NAME~Nama tugas diganti jadi aktivitas
  \NUMBER\NOTE\vspace{-3mm}, % LaTeX for the header; \NAME, \NUMBER and \NOTE supplied by thmtools, be careful with spacing. 
  headpunct  = \newline\rule{\textwidth-2.3em}{1pt} \newline,    % Punctuation after the head
  notefont   = \itshape,           % Font of the note (example name in this case)
  notebraces = {--- }{},           % Braces before and after note; again be careful with spaces.
  bodyfont   = \leftskip=2em \rightskip=0em \itshape \rmfamily \linespread{0.95}, % Body font and formatting
  preheadhook   = \Needspace{\baselineskip},  % Hook before the head; using needspace to ensure the head of the example is not on a separate page to its body.
  postheadspace = 0pt,              % Space after the head; we want none as we have a new line already
  prefoothook   = \ifhmode \hspace*{\fill}\newline \else \vspace{0mm} \fi \noindent\rule{\textwidth-2.1em}{1pt}  % Hook for LaTeX code before the foot of the example (the space below it). If we are in horizontal mode, add a new line, otherwise just draw the ruled line. This makes 90% of the examples require no manual spacing.
  ]{tugasstyle}
  
%\declaretheorem[style=tugasstyle, numberwithin=section]{tugas}

\declaretheorem[style=tugasstyle]{tugas} %%

%%==================

Perintah di atas disisipkan sebelum \begin{document}, kemudian di dalam dokumen kita gunakan dengan cara sbb:

\begin{tugas}[Tensor Riemann]
Lakukan perhitungan secara eksplisit untuk mendapatkan persamaan (\ref{eq:RiemannTurunanKeduaMetrik}) kemudian buktikanlah sifat-sifat simetri dari tensor Riemann.
\end{tugas}

Itulah beberapa bagian penting dari template yang sudah saya buat. Walaupun isi bukunya belum tuntas, semoga beberapa cara modifikasi template di atas bisa dimanfaatkan oleh pembaca.

Kampus, sekitar dua jam setelah mengajar kuliah FI3111 (Teori relativitas umum) di ruang 9305.