Selasa, 24 Mei 2011

1 LaTeX Class untuk Report STEI ITB

Tugas-tugas yang biasa saya kerjakan dengan menggunakan standar document class report pada LaTeX secara formatting masih kurang memuaskan. Tergeraklah keinginan memodifikasi class yang yaitu report agar sesuai dengan aturan-aturan yang berlaku pada fakultas tempat saya menuntut ilmu, tapi mungkin dapat juga digunakan untuk fakultas yang lain.

Hal-hal yang perlu diperhatikan adalah peraturan-peraturan penulisan (diambil dari tata penulisan skripsi/tesis bu Aciek Wida) yang baku:

Margin Kertas: atas=4cm, kiri=4cm, bawah=2.5cm, kanan=2.5cm
Huruf: Times New Roman, 12pt, spasi 1.5
Sampul muka: font 14, Bold
Kutipan atau citasi menggunakan format IEEE yaitu berupa angka dengan dihimpit bracket misal: [1] [2]



Memodifikasi file report.cls menjadi tugasitb.cls

Untuk mendapatkan hasil sesuai dengan keinginan file kelas dokumen report di modifikasi besar-besaran untuk dijadikan kelas baru yaitu tugasitb.cls yang berisi formatting yang sesuai dengan kondisi yang diinginkan.
Sebelumnya ma’af bahwa saya bukan programmer, dan belum pernah mengikuti kursus atau kuliah mengenai programming. Perintah-perintah ini saya pelajari secara otodidak dengan sistem TAE (Trial And Error).
Berikut listing commandnya:
%%==============================================%
%%= Unofficial LaTeX document class untuk report pada STEI-ITB
%%= modifikasi dari report.cls standard LaTeX report class
%%= Oleh IRWAN SUSANTO
%%= Sekolah Teknik Elektro dan Informatika
%%= Institut Teknologi Bandung
%%= Mei 2011
%%==============================================%
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{tugasitb} [2011/05/12 STEI-ITB Unofficial Report Class]
%% MEMERLUKAN PAKET GRAPHICX UNTUK MENAMPILKAN GAMBAR
\RequirePackage{graphicx}
%% MELEWATKAN PILIHAN KE SETTINGAN CLASS REPORT
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}}
\ProcessOptions\relax
\LoadClass[a4paper,12pt,onecolumn,final,openany]{report}
%% PENGATURAN MARGIN [atas=4cm, kiri=4cm, kanan=2.5cm, bawah=2.5cm]
\setlength{\voffset}{-1in}
\setlength{\hoffset}{-1in}
\setlength{\textheight}{\paperheight}
\setlength{\textwidth}{\paperwidth}
\addtolength{\textheight}{-2.5in}
\setlength{\topmargin}{0.75in}
\setlength{\headsep}{0.75in}
\setlength{\footskip}{0.5in}
\addtolength{\textwidth}{-2.5in}
\setlength{\oddsidemargin}{1.6in}
\setlength{\evensidemargin}{1in}
\setlength{\marginparwidth}{.75in}
\setlength{\marginparsep}{.125in}
\setlength{\parskip}{1.5ex}
\setlength{\parindent}{0ex}
\linespread{1.5} % PENGATURAN SPASI 1.5
\@beginparpenalty -\@lowpenalty
\@endparpenalty -\@lowpenalty
\@itempenalty -\@lowpenalty
%% PEMBUATAN VARIABEL UNTUK COVER DEPAN
\newcommand{\judul}[1]%
{\ifx\empty#1\empty\else\gdef\@judul{#1}\fi}
\newcommand{\matakuliah}[1]%
{\ifx\empty#1\empty\else\gdef\@matakuliah{#1}\fi}
\newcommand{\mahasiswa}[1]%
{\ifx\empty#1\empty\else\gdef\@mahasiswa{#1}\fi}
\newcommand{\dosen}[1]%
{\ifx\empty#1\empty\else\gdef\@dosen{#1}\fi}
\newcommand{\nim}[1]%
{\ifx\empty#1\empty\else\gdef\@nim{#1}\fi}
\newcommand{\program}[1]%
{\ifx\empty#1\empty\else\gdef\@program{#1}\fi}
\newcommand{\jurusan}[1]%
{\ifx\empty#1\empty\else\gdef\@jurusan{#1}\fi}
\newcommand{\universitas}[1]%
{\ifx\empty#1\empty\else\gdef\@universitas{#1}\fi}
\newcommand{\tahun}[1]%
{\ifx\empty#1\empty\else\gdef\@tahun{#1}\fi}
\def\@judul{}
\def\@matakuliah{}
\def\@mahasiswa{}
\def\@dosen
\def\@nim{}
\def\@program{}
\def\@jurusan{}
\def\@tahun{}
\def\@universitas{}
%% MENGGANTI PENOMORAN PADA TABEL DAN GAMBAR
\renewcommand \thefigure
{\ifnum \c@chapter>\z@ \@arabic\c@chapter.\fi \@arabic\c@figure}
\renewcommand \thetable
{\ifnum \c@chapter>\z@ \@arabic\c@chapter.\fi \@arabic\c@table}
%% PEMBUATAN HALAMAN JUDUL
\renewcommand\maketitle{\begin{titlepage}%
\begin{center}%
{\large \bfseries Tugas Mata Kuliah\\
\@matakuliah \par}%
\vfill
{\normalfont \bfseries Pengajar: \\ \@dosen \par}%
\vfill
{\large \bfseries \MakeUppercase \@judul \par}%
\vfill
{\normalfont \bfseries Oleh:\\ \@mahasiswa \\
NIM : \@nim \\ \@program \par}%
\vfill
{\includegraphics[scale=0.25]{logo-itb} \par}%
\vfill
{\large \bfseries \@jurusan \\ \@universitas \\ \@tahun \par}%
\end{center}\par
\end{titlepage}}%
%% PENGATURAN HEADING
\renewcommand \thepart {\@Roman\c@part}
\renewcommand \thechapter {\@Roman\c@chapter}
\renewcommand \thesection {\@arabic\c@chapter.\@arabic\c@section}
\renewcommand\thesubsection {\thesection.\@arabic\c@subsection}
\renewcommand\thesubsubsection{\thesubsection.\@arabic\c@subsubsection}
\renewcommand\theparagraph {\thesubsubsection.\@arabic\c@paragraph}
\renewcommand\thesubparagraph {\theparagraph.\@arabic\c@subparagraph}
\renewcommand\@chapapp{\MakeUppercase\chaptername}
\renewcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi
\thispagestyle{plain}%
\global\@topnum\z@
\@afterindentfalse
\secdef\@chapter\@schapter}
\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
\refstepcounter{chapter}%
\typeout{\@chapapp\space\thechapter.}%
\addcontentsline{toc}{chapter}%
{\protect\numberline{\@chapapp\space\thechapter}#1}%
\else
\addcontentsline{toc}{chapter}{#1}%
\fi
\chaptermark{#1}%
\addtocontents{lof}{\protect\addvspace{10\p@}}%
\addtocontents{lot}{\protect\addvspace{10\p@}}%
\if@twocolumn
\@topnewpage[\@makechapterhead{#2}]%
\else
\@makechapterhead{#2}%
\@afterheading
\fi}
\def\@makechapterhead#1{%
%======== JARAK ANTARA PINGGIR ATAS KERTAS DENGAN CHAPTER======%
% \vspace*{50\p@}%
{\parindent \z@ \raggedright \normalfont
\ifnum \c@secnumdepth >\m@ne
%=========MENAMBAHKAN CENTERING AGAR DI TENGAH ===========%
\centering \Large\normalfont \@chapapp\space\thechapter
\par\nobreak
%========JARAK ANTARA TULISAN BAB DENGAN JUDUL BAB ==========%
% \vskip 1\p@
\fi
\interlinepenalty\@M
\Large \normalfont #1\par\nobreak
%=======JARAK ANTARA JUDUL BAB DENGAN SECTION ============%
\vskip24\p@
}}
\def\@schapter#1{\if@twocolumn
\@topnewpage[\@makeschapterhead{#1}]%
\else
\@makeschapterhead{#1}%
\@afterheading
\fi}
\def\@makeschapterhead#1{%
%=============JARAK ANTARA PINGGIR ATAS KERTAS DENGAN CHAPTER*
%\vspace*{50\p@}%
{\parindent \z@ \raggedright
\normalfont
\interlinepenalty\@M
\centering \Large \normalfont #1\par\nobreak %mengganti Huge dengan Large
\vskip24\p@
}}
\renewcommand\section{\@startsection {section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{1ex \@plus.2ex}%
{\normalfont\bfseries}} %diganti dari large menjadi normal
\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1ex \@plus .2ex}%
{\normalfont\bfseries}}
\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1ex \@plus .2ex}%
{\normalfont\normalsize\bfseries}}
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
{3.25ex \@plus1ex \@minus.2ex}%
{-1em}%
{\normalfont\normalsize}}
\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
{3.25ex \@plus1ex \@minus .2ex}%
{-1em}%
{\normalfont\normalsize\bfseries}}
\renewcommand\tableofcontents{%
\if@twocolumn
\@restonecoltrue\onecolumn
\else
\@restonecolfalse
\fi
\chapter*{\contentsname
\@mkboth{%
\MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
{\raggedleft\normalfont Halaman \par}%
\@starttoc{toc}%
\linespread{1}
\if@restonecol\twocolumn\fi
}
%======= MENGATUR ULANG JARAK HORISONTAL PADA DAFTAR ISI
\renewcommand*\l@chapter[2]{%
\ifnum \c@tocdepth >\m@ne
\addpenalty{-\@highpenalty}%
\vskip 1.0em \@plus\p@
\setlength\@tempdima{4.5em}%
\begingroup
\parindent \z@ \rightskip \@pnumwidth
\parfillskip -\@pnumwidth
\leavevmode \normalfont % mengganti bfseries menjadi normal font
\advance\leftskip\@tempdima
\hskip -\leftskip
#1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
\penalty\@highpenalty
\endgroup
\fi}
%%% baris ini menambah titik-titik setelah chapter pada daftar isi %%%
\def\l@chapter#1#2{{
\@dottedtocline{0}{0em}{4.5em}{#1}{#2}}}
%%=========script sampai disisni=============
\renewcommand*\l@section{\@dottedtocline{1}{4.5em}{2em}}
\renewcommand*\l@subsection{\@dottedtocline{2}{6.5em}{3em}}
\renewcommand*\l@subsubsection{\@dottedtocline{3}{7.5em}{4.1em}}
\renewcommand*\l@paragraph{\@dottedtocline{4}{10.5em}{5em}}
\renewcommand*\l@subparagraph{\@dottedtocline{5}{12em}{6em}}
%%MENAMBAHKAN CHAPTER HEADING PADA BABEL BAHASA INDONESIA
\AtBeginDocument{%
\addto\captionsbahasa{%
\renewcommand{\bibname}{DAFTAR PUSTAKA}}
\addto\captionsbahasa{%
\renewcommand{\contentsname}{DAFTAR ISI}}
\addto\captionsbahasa{%
\renewcommand{\figurename}{Gambar}}
}
%% AKHIR DARI TUGASITB.CLS
%%=====================================================
Penginstallan pada windows
  • Saya asumsikan bahwa anda menggunakan engine MikTeX, saya menggunakan versi 2.8. 
  • Buat folder baru pada path C:\Program Files\MikTeX 2.8\tex\latex beri nama folder itu sesuai dengan nama kelasnya yaitu tugasitb.
  • Copykan file tugasitb.cls ke folder baru tersebut.
  • Lakukan update database engine MikTeX dengan cara : klik Start>MiKTeX 2.8>Maintenance (Admin)>Setting pilih tombolrefresh FNDB
  • Tunggu, setelah selesai bisa digunakan.
Catatan :
  • Untuk penginstallan pada windows dan menggunakan engine yang lain tergantung folder mana yang terisi kelas-kelas dokumen buat folder baru sesuai nama kelas dan copykan ke situ.
Cara Penginstallan Pada LyX
Untuk Pemakaian pada LyX, selain file kelas tugasitb.cls anda juga membutuhkan dua file tambahan yang telah saya kustom yaitu:
  • tugasitb.layout
  • tugasitb.inc
Setelah melakukan penginstallan pada engine LaTeX seperti langkah sebelumnya, lakukan langkah berikut (dilakukan pada LyX 1.6):
  • copykan file tugasitb.layout dan tugasitb.inc ke folderC:\Program Files\LyX16\Resources\Layouts
  • Jalankan aplikasi LyX, lakukan reconfigure dengan cara memilih pada menu bar Tools>Reconfigure
  • Setelah selesai restart ulang LyX, untuk mengeceknya buka dokumen yang telah dibuat atau buat file baru pilihDocument>Setting>Document Class nanti akan terlihat kelas baru dengan nama report(STEI-ITB)
Berikut link untuk download file-filenya:
SEMOGA BERMANFAAT DAN DITUNGGU MASUKKANNYA.

Artikel Terkait perkategori

1 komentar:

  1. wah makasih pak
    bwt adakah template untuk TA/tesis?

    terima kasih

    BalasHapus

 

Blog CIO Indonesia Copyright © 2011 - |- Template created by O Pregador - |- Powered by Blogger Templates