CÁC GÓI LỆNH LÀM KHUNG VĂN BẢN(I) Nguyễn Hữu Điển Khoa Toán - Cơ - Tin học Đại học Khoa học Tự nhiên, ĐHQG HN
Mục lục 1 Giới thiệu các gói lệnh gói lệnh đóng khung
1
2 Những gói lệnh dashbox
2
3 Gói lệnh niceframe
3
4 Gói lệnh boxedminipage
4
5 Gói lệnh shadow
5
6 Gói lệnh fancybox
5
7 Định nghĩa những môi trường kẻ khung
5
1
Giới thiệu các gói lệnh gói lệnh đóng khung
Trong gói lệnh \usepackage{amsmath} có lệnh đóng khung \fbox. Nhiều khi ta chỉ đóng khung một số kí tự trong công thức toán ta phải dùng lệnh \fbox. Có thể dùng trên dòng lệnh như ví dụ ở đây hoặc một chi tiết của công thức $$\alpha+\beta+\gamma=\fbox{$\pi$}$$ α+β+γ = π Có khả năng ta đánh số ngoài công thức đóng khung thì \begin{equation} \fbox{ $ \displaystyle \frac{a}{\sin\alpha}=\frac{b}{\sin\beta}$} \end{equation} Nét khung và khoảng cách từ công thức mực định là \fboxrule=0.4pt \fboxsep=3pt Để thay đổi đường kẻ đậm hơn và khung rộng hơn ta điều chỉnh
1
b a = sin α sin β
(1)
\fboxrule=3\fboxrule \fboxsep=3\fboxsep \fbox{$\displaystyle \frac{a}{\sin\alpha}=\frac{b}{\sin\beta}$}
b a = sin α sin β
Trong cuốn sách: LaTeX với gói lệnh và phần mềm công cụ đã liệt kê một số gói lệnh kẻ khung đa dạng từ trang 178. Tôi chép lại ở đây một số gói lệnh đó và xem xét các gói lệnh hay và đa dạng có trong MiKTeX. Nói chung các gói lệnh tôi dùng ở đây đều có trên mạng và trong MiKTeX rồi, khi có CD hoặc nối mạng VieTeX sẽ tự động lấy vào.
2
Những gói lệnh dashbox
Gói lệnh được viết bởi Reuben Thomas có tại http://tug.ctan.org/tex-archive/macros/latex/contrib/dashbox/ Gói lệnh này cung cấp các lệnh sau đây: \dbox{text } như \fbox, nhưng nét \dashbox[width][pos]{text } \framebox, nhưng tùy chọn
dashed lines . như
dashed lines
\lbox[layers]{text } số khung mặc định 2
stack of boxes
\dlbox[layers]{text } như \lbox,
dashed lines .
Đối số có thể thay đổi: \dashlength cho nét đứt và khoẳng trắng, mặc định là 6pt. \dashdash cho độ dài nét đứt, mặc định 3pt. \layersize lớp khung bao nhiêu lần. Mặc định là \dashdash. dashed lines
\dashlength=12pt \dbox{dashed lines} \dashlength=6pt \dbox{dashed lines}
dashed lines dashed lines
\dashdash=6pt \dbox{dashed lines} \dashdash=3pt \dbox{dashed lines}
dashed lines
\fboxrule=4pt \dbox{dashed lines} \fboxrule=.2pt \dbox{dashed lines}
dashed lines dashed lines
2
.
dashed lines
\fboxsep=3pt \dbox{dashed lines} \fboxsep=8pt \dbox{dashed lines}
3
dashed lines
abddbbbbbbbeec fgEggggFgggh H G ML JK
Gói lệnh niceframe
Tác giả của gói lệnh này là Marcus Ohlhaut có thể lấy gói lệnh ở http://tug.ctan.org/tex-archive/macros/latex/contrib/niceframe/ có gói phông riêng của gói này để làm khung. Chỉ đưa vào lệnh \usepackage{niceframe} ta có \niceframe[6cm]{% \begin{center} Nếu Anh không gặp Em\\ Làm sao Anh thấy được\\ Có một vầng trăng khác\\ Lại sáng giữa ban ngày \end{center} }
Nếu Anh không gặp Em Làm sao Anh thấy được Có một vầng trăng khác Lại sáng giữa ban ngày
\begin{center} \curlyframe[6cm]{ \begin{center} Nếu Anh không gặp Em\\ Làm sao Anh biết dược\\ Hai ngôi sao có nước\\ Ở gần kề ngay bên \end{center} } \end{center}
Nếu Anh không gặp Em Làm sao Anh biết dược Hai ngôi sao có nước Ở gần kề ngay bên
\artdecoframe[6cm]{% \begin{center} Nếu Anh không gặp Em\\ Làm sao Anh với tới \\ Một vầng mây đen mềm\\ Tỏa hương thơm đêm ngày \end{center} }
Nếu Anh không gặp Em Làm sao Anh với tới Một vầng mây đen mềm Tỏa hương thơm đêm ngày
\begin{minipage}{6cm} \font\border=karta15 \generalframe{\border\char’307} {\border\char’324}{\border\char’322}
{\border\char’310}{\border\char’323} {\border\char’174}{\border\char’325} {\border\char’175}{ \begin{center} 3
ÇÔÔÔÔÔÔÔÔÔÔÒ ÈÈ ÓÓ ÈÈ ÓÓ ÈÈ ÓÓ È Ó |ÕÕÕÕÕÕÕÕÕÕ}
Nếu Anh không gặp Em\\ Làm sao Anh nghe thấy\\ Tiếng nói của đất trời\\ Bắt đầu từ bàn tay \end{center} } \end{minipage}
Nếu Anh không gặp Em Làm sao Anh nghe thấy Tiếng nói của đất trời Bắt đầu từ bàn tay
\begin{minipage}{5cm} \font\border=umranda \generalframe{\border\char’136} {\border\char’137}{\border\char’140} {\border\char’145}{\border\char’141} {\border\char’144}{\border\char’143} {\border\char’142}{ \begin{center} Nếu Anh không gặp Em\\ Trái đất dù quay vội\\ Năm tháng vẫn cứ dài\\ Cuộc đời chỉ lẻ loi
\end{center} } \end{minipage}
^_______________` ee Nếu Anh không gặp Em aa Trái đất dù quay vội aa ee Năm tháng vẫn cứ dài a e Cuộc đời chỉ lẻ loi aa ee dcccccccccccccccb
\begin{minipage}{5cm} \font\border=umrandb \generalframe{\border\char’165} {\border\char’151}{\border\char’164}% {\border\char’150}{\border\char’150}% {\border\char’166}{\border\char’151} {\border\char’167}{
Nguyễn Hữu Điển \end{center} } \end{minipage}
uiiiiiiiiiiiit hh Nếu Anh không gặp Em... hh hh Nguyễn Hữu Điển hh viiiiiiiiiiiiw
\vspace*{3cm} \begin{center} Nếu Anh không gặp Em...
4
Gói lệnh boxedminipage
Gói lệnh boxedminipage của Mario Wolczko có môi trường boxedminipage dựa trên môi trường minipage chỉ có khác là đóng khung văn bản. Nét vẽ của khung kiểm soát bằng lệnh \fboxrule và khoảng cách viền văn bản tới khung được thực hiện bằng \fboxsep. \begin{boxedminipage}[t]{4cm} Thiếu phương pháp thì người tài cũng lỗi. Có phương pháp thì người tầm thường cũng làm được việc phi thường.\footnote{Descartes} \end{boxedminipage}
Thiếu phương pháp thì người tài cũng lỗi. Có phương pháp thì người tầm thường cũng làm được việc phi thường.
4
5
Gói lệnh shadow
Gói lệnh shadow của Mauro Orlandini định nghĩa lệnh \shavox gần giống với lệnh \fbox của LATEX nhưng có thêm vệt đen ở dưới và bên phải khung. Gói lệnh này có ba lệnh thông số: \sboxrule Kiểm soát độ dày của đường kẻ khung (mặc định là 0.4pt). \sboxsep Khoảng cách từ văn bản đến khung (mặc định là 10pt). \sdim Chiều rộng của bóng khung (mặc định là 4pt). \fbox{Học cho rộng.}\\ Hỏi cho thật kỹ.\\ \setlength{\sboxsep}{4pt} \shabox{Suy nghĩ cho thật cẩn thận.}\\ Phân biệt cho thật rõ ràng.\\ \bigskip {\renewcommand{\sdim}{ 1.2\fboxsep}\shabox{\parbox{5cm} {Làm việc cho hết sức.\\ Như thế mới thành người.}} (Trung - Dung)}
6
Học cho rộng. Hỏi cho thật kỹ. Suy nghĩ cho thật cẩn thận. Phân biệt cho thật rõ ràng. Làm việc cho hết sức. Như thế mới thành người.
(Trung - Dung)
Gói lệnh fancybox
Gói lệnh fancybox nằm trong gói lệnh seminar của Timothy Van Zandt. Gói lệnh đã đưa ra phương án khác nhau của lệnh \fbox, lệnh khoảng cách giữa văn bản và khung vẫn bằng \fboxsep (mặc định là 3pt), còn các thông số khác được mô tả dưới đây: \shadowbox
Khung có bóng
Đường kẻ được xác định bởi \fboxrule (như là của lệnh \fbox). Độ rộng của bóng là \shadowsize (mặc định là 4pt). \doublebox Khung kẻ đôi Độ dày của đường kẻ khung trong và khung ngoài tương ứng là 0.75\fboxrule, 1.5\fboxrule. Khoảng cách giữa hai khung là 1.5\fboxrule plus 0.5pt. \ovalbox Khung hình ô van Độ dày của nét vẽ là \thinlines, còn đường kính của đường tròn tạo ra cung ở góc là \cornersize có một đối số. Đây là một số num theo độ phóng theo chiều dài rộng của khung , mặc định num=0.5. \Ovalbox Khung hình ô van Tương tự như \ovalbox nhưng nét vẽ được kiểm soát bởi \thicklines.
7
Định nghĩa những môi trường kẻ khung
Nhờ vào những gói kẻ khung trên ta có thể thiết lập các môi trường kẻ khung với môi trường minipage.
5
\newenvironment{Oboxedminipage} {\begin{Sbox}\begin{minipage}} {\end{minipage}\end{Sbox} \Ovalbox{\TheSbox}} \begin{Oboxedminipage}{4.5cm} Làm việc gì bao giờ cũng đi từ dễ đến khó. Từ đơn giản đến phức tạp.
\footnote{DESCARTES} \end{Oboxedminipage}
Làm việc gì bao giờ cũng đi từ dễ đến khó. Từ đơn giản đến phức tạp.
Trong gói lệnh cũng có những môi trường hộp sau đây:
• Bcenter, Bflushleft và Bflushright sinh ra môi trường hộp quy tâm, căn trái, căn phải. • Bitemize, Benumerate và Bdescription sinh ra môi trường hộp cho các môi trường itemize, enumerate, description. • Beqnarray cho ra môi trường hộp của eqnarray. Tương tự cho môi trường hộp Beqnarray*. Tất cả các môi trường trên đều kẻ khung được nhờ các lệnh ở trên. \doublebox{\begin{Bitemize} \item Người "Trí" hay lo. \item Người "Nghĩa" hay làm. \item Người "Nhân" hay trì hoãn.\\ (Cốc Lương) \end{Bitemize}}
• Người "Trí" hay lo.
• Người "Nghĩa" hay làm.
• Người "Nhân" hay trì hoãn. (Cốc Lương)
Các công thức toán \shadowbox{\begin{Beqnarray} a^2&=&b^2+c^2-2bc\cos \alpha\\ b^2&=&c^2+a^2-2ca\cos \beta\\ c^2&=&a^2+b^2-2ab\cos \gamma \end{Beqnarray}}
a2 b2 c2
= b2 + c2 − 2bc cos α = c2 + a2 − 2ca cos β = a2 + b2 − 2ab cos γ
(2) (3) (4)
Ta có thể định nghĩa một môi trường mà trong đó công thức được đóng khung theo suốt chiều rộng của trang. \newlength{\mylength} \newenvironment{FramedEqn}% {\setlength{\fboxsep}{5pt} \setlength{\mylength}{\linewidth}% \addtolength{\mylength}{-2\fboxsep} \addtolength{\mylength}{-2\fboxrule}% \begin{Sbox}\begin{minipage}{\mylength}% \setlength{\abovedisplayskip}{0pt}\setlength{\belowdisplayskip}{0pt} \begin{equation}}% \end{equation}\end{minipage}\end{Sbox} \[\fbox{\TheSbox}\]} \begin{FramedEqn} \frac{a_1+a_2+\cdots+a_n}{n}\ge \sqrt[n]{a_1a_2\ldots a_n} \end{FramedEqn}
√ a1 + a2 + · · · + an ≥ n a 1 a 2 . . . an n 6
(5)
Cũng bằng cách như vậy ta làm khung cho mỗi phát biểu định lý của ta \newlength{\dllength} \newenvironment{Frameddl}% {\setlength{\fboxsep}{10pt} \setlength{\dllength}{\linewidth}% \addtolength{\dllength}{-2\fboxsep} \addtolength{\dllength}{-2\fboxrule}% \begin{Sbox}\begin{minipage}{\dllength}\begin{theorem}}% {\end{theorem}\end{minipage}\end{Sbox} \noindent\shadowbox{\TheSbox}} \begin{Frameddl} Ba đường trung tuyến trong một tam giác bất kỳ cắt nhau tại một điểm. \end{Frameddl} Định lý 1 Ba đường trung tuyến trong một tam giác bất kỳ cắt nhau tại một điểm. Gói lệnh này làm được cả khung cho một trang bằng cụm lệnh sau: Lệnh \shadowbox ở cấu trúc bên có thể thay bằng \doublebox, \ovalbox hoặc \Ovalbox.
\thisfancypage{ \setlength{\fboxsep}{1pt}% \setlength{\shadowsize}{4pt}% \shadowbox}{}
Nhân đây ta cũng nhắc lại dùng gói lệnh mầu color để bôi đen phát biểu định lý \definecolor{mygrey}{gray}{0.55} \colorbox{mygrey}{ \begin{minipage}{10cm} \begin{theorem} Ba đường trung tuyến trong một tam giác bất kỳ cắt nhau tại một điểm. \end{theorem} \end{minipage}} Định lý 2 Ba đường trung tuyến trong một tam giác bất kỳ cắt nhau tại một điểm. Mầu đậm nhạt được thay trong định nghĩa \definecolor số càng lớn thì càng nhạt mầu.
7