Saturday, March 28, 2015

Showexpl

Pada tulisan sebelumnya sudah saya uraikan tentang cara menyoroti (highlighting) sintaks pengkodean dalam $\small\LaTeX$ dengan menggunakan paket minted. Dalam tulisan ini, dengan maksud yang sama tetapi dengan cara dan tujuan yang agak berbeda, saya akan tunjukkan penggunaan paket showexpl dari Rolf Niepraschk.

Paket showexpl adalah paket yang berdasarkan pada paket listing yang memberikan penyusunan kode sumber yang baik dengan penekanan pada kata kunci dan sebagainya. Oleh karena itu, penampakan dalam pengkodean yang ditunjukkan bergantung pada opsi-opsi dalam pengaturan
\lstdefinestyle{...}{...}
Yang khas dalam penggunaan paket ini adalah bahwa pengkodean dan hasil penyusunannya dapat kita tunjukkan dalam "sekali jalan", yaitu cukup kita muat dalam environment
\begin{LTXexample}[...]
...
\end{LTXexample}
Secara asal (default), pengkodean dan hasil penyusunannya itu terletak berdampingan (side by side). Ini menjadi masalah bila sintaks pengkodean itu cukup lebar, seperti yang akan saya tunjukkan contohnya. Tentu saja hal ini dapat diatasi dengan memuat opsi pengaturan yang bersesuaian. 
Nah, sekarang mari kita perhatikan contoh berikut ini.



Dalam contoh ini saya menggambarkan trafo, dengan menggunakan paket circuitikz dari Mas­simo Redaelli, dan sekaligus menunjukkan sintaks pengkodean untuk menggambarnya. Pengaturannya saya buat seperti ini
\usepackage{showexpl}
\lstdefinestyle{gayaku}{
    language={[LaTeX]TeX},texcsstyle=*\color{SeaGreen},
    literate=
    *{\{}{{\textcolor{Crimson}{\{}}}{1}
     {\}}{{\textcolor{Crimson}{\}}}}{1},
    basicstyle=\null,
    backgroundcolor=\color{paper!50},
    numbers=left, numberstyle=\scriptsize, stepnumber=1,
    numbersep=5pt,
    commentstyle=\color{DarkOrange},
    showstringspaces=false,
    keywordstyle=\color{stempel}\bfseries,
    morekeywords={circuitikz,draw,center},
    pos=l,frame=single,rframe=,framesep=\fboxsep,
    framerule=\fboxrule,rulecolor=\color{bistre},
    breaklines,breakautoindent=true,
    captionpos=t
}
Opsi-opsi dalam pengaturan inilah yang kita sesuaikan dengan penampakkan yang kita harapkan.

Pengkodean selengkapnya, untuk contoh dokumen di atas, berikut ini meliputi pula paket tikzpagenodes untuk menempatkan logo pada sudut kanan-atas halaman dan paket background untuk memuat latar "kertas". Selain itu juga memuat penetapan tiga warna yang saya gunakan.
\documentclass[a4paper,10pt]{article}
\usepackage[margin=1.5cm,top=1.5cm,bottom=2cm]{geometry}
\usepackage[svgnames,dvipsnames]{xcolor}
\usepackage{mathpazo,dejavu}
\usepackage[T1]{fontenc}
%\renewcommand{\rmdefault}{put}
\usepackage[indonesian]{babel}
\usepackage{tikz}
\usepackage{tikzpagenodes}
\usepackage[siunitx,cuteinductors,american]{circuitikz}

\definecolor{bistre}{RGB}{133, 109, 77}
\definecolor{stempel}{RGB}{0 34 85} 
\definecolor{paper}{RGB}{239,227,157}

\usepackage{showexpl}
\lstdefinestyle{gayaku}{
    language={[LaTeX]TeX},texcsstyle=*\color{SeaGreen},
    literate=
    *{\{}{{\textcolor{Crimson}{\{}}}{1}
     {\}}{{\textcolor{Crimson}{\}}}}{1},
    basicstyle=\null,
    backgroundcolor=\color{paper!50},
    numbers=left, numberstyle=\scriptsize, stepnumber=1,
    numbersep=5pt,
    commentstyle=\color{DarkOrange},
    showstringspaces=false,
    keywordstyle=\color{stempel}\bfseries,
    morekeywords={circuitikz,draw,center},
    frame=single,rframe=,framesep=\fboxsep,
    framerule=\fboxrule,rulecolor=\color{bistre},
    breaklines,breakautoindent=true,
    captionpos=t
}
\usepackage{adjustbox}
\usepackage{url}
\usepackage{amsmath,bm}
\let\ds\displaystyle
\usepackage{background}
\backgroundsetup{top,scale=2.6,angle=0,opacity=1,  %% adjust
contents={\includegraphics[width=\textwidth,height=6cm]{kertaskoran}}
}%

\begin{document}

\begin{tikzpicture}[remember picture,overlay]
\node[rotate=-20,below left,transform canvas={yshift=-1.25cm,xshift=.25cm}] at (current page.north east) {
\includegraphics[width=.2\textwidth]{Stempel1}
};
\end{tikzpicture}

\section*{Trafo}

\centering

\begin{LTXexample}[style=gayaku,pos=t]
\begin{circuitikz}[]
\draw (0,0) node [transformer](T){}
      (T.A1) node[above] {A1}
      (T.A2) node[below] {A2}
      (T.B1) node[above] {B1} 
      (T.B2) node[below] {B2}
      (T.base) node{K};
\draw (T.A1) --++(-2,0);
\draw (T.A2) --++(-2,0);
\draw (T.B1) --++(2,0) to[D, v=${V_\gamma=0.7}$, i>_=](5,0);        
\draw (T.B2) --++(2,0) to[D, v=${V_\gamma=0.7}$ ,i>_=](5,-2.1);
\draw(T.A1) to[open,v<={$240V_{rms}$}](T.A2);
\draw(T.B2) to[open,v>=$12V_{rms}$](T.B1);
\draw ($(T.base)+(1mm,-2mm)$)  -- ++(0,-1.8);
\draw ($(T.base)+(-1mm,-2mm)$) -- ++(0,-1.8);
\end{circuitikz}
\end{LTXexample}

Belajar \LaTeX\textcopyright\ Adjie Gumarang Pujakelana: \url{http://menulislatex.blogspot.com/}

\end{document}
Contoh dokumen di atas saya susun melalui Online LaTeX Editor ShareLaTeX
Demikian semoga bermanfaat.

Adjie Gumarang Pujakelana 2015 


1 comment:

  1. selain itu , terdapat paket yang lebih powerfull dengan nama pythontex . Fitur ini mendukung listing dan akses ke program python

    ReplyDelete

Related Posts Plugin for WordPress, Blogger...