A waiting for package “tcolorbox”


เวลาทำงานเอกสาร สิ่งที่อยากทำมาก ๆ คือการสร้างกรอบให้กับส่วนที่เราต้องการแบบนี้

การทำเช่นนี้ใน LaTeX นั้นยากพอสมควร คือต้องไปสร้างชุดคำสั่งของ TikZ (หรืออื่น ๆ)  ซึ่งมันก็ยากอยู่ดี  ปกติแล้วผมจะใช้แพ็กเกจ listings ในการจัดการเรื่องพวกนี้ ซึ่งมันก็ไม่ได้ดูดีแบบรูปที่เห็น

อยู่ดี ๆ ฟ้าก็ส่งท่าน  Prof. Dr.rer.nat. Dr.-Ing. Thomas F. Sturm (ไม่ต้องตกใจนะครับ คนชาติตะวันตกการเรียน Dr. หลาย ๆ ใบนั้น ไม่ใช่เรื่องแปลก แต่คนเยอรมันนั้น จบอะไรก็ต้องใส่สาขาด้วย แสดงให้เห็นกันไปเลยว่าเชี่ยวชาญด้านไหน ไม่ใช่ว่ามีดีกรีด็อกเตอร์แล้วจะเก่งไปซะทุกเรื่อง และจริง ๆ มีดีอะไรก็บอกให้โลกรู้ไปซะ ไม่ต้องมาปกปิดทำลับ ๆ ล่อ ๆ ) ท่านโปรเฟสเซอร์ได้สละเวลาที่ไม่ค่อยจะมีนั้น สร้างแพ็กเกจ tcolorbox ไว้ให้ผมได้เอาไว้ใช้ (ฮา)  น่าเสียดายที่คู่มือเป็นภาษาเยอรมัน แต่ถ้าชำนาญคำสั่งต่าง ๆ ของ LaTeX พอสมควรก็ไม่าน่าจะยากครับ

สำหรับการสร้างผลลัพธ์ให้ได้อย่างรูปที่เห็นนั้น สามารถทำได้ดังรหัสต้นต่อไปนี้ครับ

\documentclass[xcolor=dvipsnames,xcolor=svgnames]{report}
\usepackage[svgnames,dvipsname]{xcolor}
\usepackage[listings,theorems]{tcolorbox}
\usepackage{listings}
\tcbuselibrary{listings}

% กำหนดค่าตัวเลือกให้ listings 
\lstset{%
    language=MATLAB,
    basicstyle=\ttfamily,
    keywordstyle=\color{Black},
    identifierstyle=,
    commentstyle=\color{Green},
    stringstyle=\ttfamily\color{DarkViolet},
    showstringspaces=false,
    numbers=left,
    xleftmargin=.3in,
    xrightmargin=.3in,
    framexleftmargin=0.2cm,
    framexrightmargin=0.2cm,
    float=h,
    aboveskip=1cm,
    belowskip=1cm
}%

\begin{document}

% การเรียกใช้คำสั่งของ tcolorbox เพื่อพิมพ์ listings
\begin{tcblisting}{colback=yellow!5,colframe=yellow!50!black,listing only,
    title= This is a MATLAB example}
    clc; clear all;
    s = tf('s');
    sys = 1/(s+5);
    bode(sys); 
\end{tcblisting}

\end{document}

โดยส่วนต่าง ๆ ที่จำเป็นคือ ไฟล์ tcolorbox.sty, tcblistings.code.tex  ไฟล์เหล่านี้ยังไม่ได้อยู่บน MikTeX (ตอนนี้) ดังนั้นจะต้องโหลดเอามาไว้ในโฟลเดอร์ที่ต้องการเอง  การเรียกใช้เบื้องต้นก็ต้องปรับแต่งตัว listing ให้ได้ตามชอบใจก่อน แล้วก็เรียกพิมพ์ listing โดยใช้สิ่งแวดล้อม tcblisting  จุดสำคัญที่ต้องคำนึงถึงคือตัวเลือก listing only ตัวนี้ถ้าไม่ใส่ รหัสต่าง ๆ ที่เราพิมพ์ลงไปนั้นก็จะไปปรากฏบนเอกสารด้วย (เยี่ยมมาก)

เอาไปลองใช้ดูนะครับ ได้ผลดีอย่างไรก็บอกกล่าวมาด้วยแล้วกัน

Advertisements

2 comments on “A waiting for package “tcolorbox”

  1. รบกวนถามนิดนึงครับ ทำอย่างไรผมพิมพ์ข้อความภาษาไทยลงไปในกล่องแล้วรันออกมาไม่เห็นข้อความ ทำอย่างไรดีครับ

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s