You are on page 1of 10

array.

sty gói công cụ thêm vào mảng và bảng


một số lệnh

Nguyễn Hữu Điển


Khoa Toán - Cơ - Tin học
ĐHKHTN Hà Nội, ĐHQGHN

I. Giới thiệu
Một gói lệnh trong bó công cụ của LaTeX có tại
http://tug.ctan.org/tex-archive/macros/latex/required/tools/
do Frank Mittelbach, David Carlisle viết mới được cập nhật gói lệnh array.sty.

II. Các ký hiệu trên đầu mảng và bảng


Môi trường array và tabular có tùy chọn trên đối số như \begin{array}{l r c }
hoặc \begin{tabular}{l r c }, trong gói lệnh có thay đổi và thêm vào như sau:
1. Không thay đổi
Ký hiệu Ý nghĩa
l Cột căn trái.
c Cột căn giữa.
r Cột căn phải.
p{độ rộng} bằng độ rộng cột hay \parbox[t]{width}.
@{chèn vào} Mỗi dòng được [chèn vào]
2. Những đối số cột mới
Ký hiệu Ý nghĩa
m{<độ rộng>} Cột có <độ rộng> và dòng dồn lên phía trên như
\parbox{width}.
b{<độ rộng>} Cột có <độ rộng> và dòng dồn lên phía dưới như
\parbox[b]{width}.
>{<phần tử>} chèn trước l, r, c, p, m hoặc b một <phần tử>.
<{<phần tử>} chèn sau l, r, c, p, m hoặc b một <phần tử>.
| Đưa đường kẻ đứng, nhưng thích hợp với 2 cột hơn nguyên bản
<Phần tử>! đưa vào bất cứ đâu
3. Một số ứng dụng

1
http://nhdien.wordpress.com 2

• trong tùy chọn p, m hoặc b, giá trị mặc định của thụt
dòng cột là \parindent= 0pt. Ta có thể thay đổi như
>{\setlength{\parindent}{1cm}}p.
• dấu >{ và <{ta có thể dùng làm cột có môi trường toán: >{$}c<{$}

• Dùng c!{\hspace{1cm}}c để hai cột có khoảng cách.

III. Định nghĩa kiểu tùy chọn cột mới


Bằng lệnh \newcolumntype ta có thể tạo ra định dạng cột mới như
\newcolumntype{x}{>{thêm}{c}<{thêm nữa}} Ví dụ định nghĩa mới tùy chọn cho
môi trường toán C, L, R

\newcolumntype{C}{>{$}c<{$}}
\newcolumntype{L}{>{$}l<{$}}
\newcolumntype{R}{>{$}r<{$}}

IV. Ví dụ và ứng dụng


IV.1. Dùng m, b, p
\begin{tabular}{|m{10em}|c|}
\hline
Thế là phải xuống dòng \newline Ai cũng vậy ... \newline Thế thì...
& Ở dòng bên đây ...\\
\hline
&Có gì đâu?\\
\hline
\end{tabular}

Thế là phải xuống dòng


Ai cũng vậy ... Ở dòng bên đây ...
Thế thì...
Có gì đâu?

\begin{tabular}{|b{10em}|c|}
\hline
Thế là phải xuống dòng \newline Ai cũng vậy ... \newline Thế thì...
& Ở dòng bên đây ...\\
\hline
&Có gì đâu?\\
\hline
\end{tabular}
http://nhdien.wordpress.com 3

Thế là phải xuống dòng


Ai cũng vậy ...
Thế thì... Ở dòng bên đây ...
Có gì đâu?

\begin{tabular}{|>{\raggedleft}p{10em}|c|}
\hline
Thế là phải xuống dòng \newline Ai cũng vậy ... \newline Thế thì...
& Ở dòng bên đây ...\\
\hline
&Có gì đâu?\\
\hline
\end{tabular}

Thế là phải xuống dòng Ở dòng bên đây ...


Ai cũng vậy ...
Thế thì...
Có gì đâu?

IV.2. Dùng chèn ký tự và lệnh vào cột


\begin{tabular}{|>{$}c<{$}|c|}
\hline
\exp(x)&Hàm số muc\\ \hline
\log(x)&Hàm số logarit\\
\hline
\end{tabular}

exp(x) Hàm số muc


log(x) Hàm số logarit

\begin{tabular}{|>{$}c<{$}|c|}
\hline
\exp(x)&Hàm số muc\\ \hline
\log(x)&Hàm số logarit\\
\hline
\end{tabular}

exp(x) Hàm số muc


log(x) Hàm số logarit

\setlength\extrarowheight{2pt}
\begin{tabular}{|>{$}c<{$}|c|}
\hline
\exp(x)&Hàm số muc\\ \hline
http://nhdien.wordpress.com 4

\log(x)&Hàm số logarit\\
\hline
\end{tabular}

exp(x) Hàm số muc


log(x) Hàm số logarit

\begin{tabular}{|c|@{\hspace{1cm}}c|}
\hline
aa&bbb\\ \hline
cccc&dddd\\
\hline
\end{tabular}

aa bbb
cccc dddd

\begin{tabular}{|c|!{\hspace{1cm}}c|}
\hline
aa&bbb\\ \hline
cccc&dddd\\
\hline
\end{tabular}

aa bbb
cccc dddd

IV.3. Độ dày đường kẻ


1.

\setlength{\arrayrulewidth}{5pt}
\begin{tabular}{|c|c|}
\hline
A & B \\
\hline
\end{tabular}

A B
2.

\def\nvline{\vrule width .4pt}


\setlength{\arrayrulewidth}{3pt}
\begin{tabular}{|c!{\nvline}c!{\nvline}c|}
http://nhdien.wordpress.com 5

\hline
w&w&Thêm vào\\
\noalign{\global\arrayrulewidth.4pt}
\hline
\noalign{\global\arrayrulewidth3pt}
& & \\
\hline
\end{tabular}

w w Thêm vào

3.

{\tiny
\setlength{\tabcolsep}{3pt}
\begin{tabular}{|%
>{\centering}m{0.6cm}|%
>{\centering}m{0.6cm}|%
>{\centering}m{0.6cm}|%
>{\centering}m{0.6cm}|%
>{\centering}m{0.6cm}|%
>{\centering}m{0.6cm}|%
>{\centering}m{0.6cm}|%
>{\centering}m{0.6cm}|%
>{\centering}m{0.6cm}|%
>{\centering}m{0.6cm}|%
>{\centering}m{0.6cm}|%
>{\centering}m{0.8cm}|%
l}
10 & 9 & 8 & 7 & 6 & 5 & 4 & 3 & 2 & 1 & 0 & \\
\hline
& & & & & & & & & & & \\
\multicolumn{3}{|c|}{STKSZ} & ROM S1 & SGT DIS & ROM EN & BYT DIS & CLK EN &
WRC FG & CSC FG & - & \\
& & & & & & & & & & & \\
\hline
\end{tabular}
}
10 9 8 7 6 5 4 3 2 1 0

STKSZ ROM SGT ROM BYT CLK WRC CSC


-
S1 DIS EN DIS EN FG FG

4.

\newcommand*\checkBoxes{%
http://nhdien.wordpress.com 6

\parbox{8cm}{%
\begin{tabular}{*{5}{>{\centering\tiny}m{1.5cm}}@{}l@{}}
Một&Hai&Ba&Bốn&Năm\tabularnewline
\fbox{\normalsize 1} & \fbox{\normalsize 2} & \fbox{\normalsize 3}
& \fbox{\normalsize 4} & \fbox{\normalsize 5}\tabularnewline
\end{tabular}%
}}
\begin{center}
\begin{tabular}{>{\tiny}m{1em} m{2cm} c}
1 &Phần 1& \checkBoxes\\[1cm]
2 &Phần 3& \checkBoxes\\[1cm]
3 &Phần 3& \checkBoxes\\[1cm]
\end{tabular}
\end{center}

Một Hai Ba Bốn Năm


1 Phần 1
1 2 3 4 5

Một Hai Ba Bốn Năm


2 Phần 3
1 2 3 4 5

Một Hai Ba Bốn Năm


3 Phần 3
1 2 3 4 5

IV.4. Dùng định nghĩa mới


1.

\newcolumntype{C}[1]{>{\centering}p{#1\linewidth}|}
\begin{tabular}{|C{.2}C{.4}}
\hline
item 1 & item 2\tabularnewline
\hline
1&2\tabularnewline
\hline
\end{tabular}

item 1 item 2
1 2
http://nhdien.wordpress.com 7

2.

\begin{tabular}{
|>{\fontencoding{T1}\fontfamily{cmr}\selectfont}l%
|>{\fontencoding{T1}\fontfamily{cmtt}\selectfont}l%
|>{\fontencoding{T1}\fontfamily{pzc}\selectfont}l|
}
\hline
cmr & cmtt & Zapf Chancery \\
\hline
ABcD & ABcD & ABcD \\
1234 & 1234 & 1234 \\
\hline
\end{tabular}

cmr cmtt Zapf Chancery


ABcD ABcD ABcD
1234 1234 1234
3.

\newcolumntype{C}{>{\itshape}c}
\newcolumntype{L}{>{\bfseries}l}
\newcolumntype{R}{>{\color{red}}r}
\newcolumntype{C}{>{\itshape}c}
\newcolumntype{D}{>{\color{blue}\itshape}
r@{\color{blue}\itshape.}>{\color{blue}\itshape}l}

\begin{tabular}[c]{|C|L|R|D|}
\hline
300.30 & 12.00 & 13.00 & 1223&45\\
40.30 & 14.56 & 3544.20 & 223&45\\
40.30 & 14.56 & text & 56&70\\
\hline
\end{tabular}

300.30 12.00 13.00 1223.45


40.30 14.56 3544.20 223.45
40.30 14.56 text 56.70
4.

\newcolumntype{I}{!{\vrule width 2pt}} % creates a vertical thick bar


\newlength\savedwidth
\newcommand{\wcline}[1]{\noalign{\global\savedwidth\arrayrulewidth\global
\arrayrulewidth 2pt}%
\cline{#1}
http://nhdien.wordpress.com 8

\noalign{\global\arrayrulewidth\savedwidth}}

\renewcommand{\arraystretch}{1.5}

\begin{tabular}{|c|c|c|c|c|c|c|} \hline
\multicolumn{1}{|c}{} & \multicolumn{1}{c|}{$Y$}&
\multicolumn{5}{c|}{\hspace{3cm}} \\ \cline{3-7}
\multicolumn{1}{|c}{$X$} & \multicolumn{1}{c|}{}&
\multicolumn{1}{c|}{1} & 2 & 3 & 4 &
\multicolumn{1}{c|}{5} \\ \hline\wcline{3-7}
& 5 &\multicolumn{1}{Ic|}{1} & 3 & 1 & 0
&\multicolumn{1}{cI}{1} \\ \cline{2-7}
AA& 4 &\multicolumn{1}{Ic|}{1} & 0 & 7 & 5
&\multicolumn{1}{cI}{1} \\ \cline{2-7}
& 3 &\multicolumn{1}{Ic|}{2} & 1 & 0 & 9
&\multicolumn{1}{cI}{3} \\ \cline{2-7}
BB& 2 &\multicolumn{1}{Ic|}{1} &$b$& 6 & 0
&\multicolumn{1}{cI}{$a$} \\ \cline{2-7}
& 1 &\multicolumn{1}{Ic|}{0} & 0 & 1 & 1
&\multicolumn{1}{cI}{3} \\ \hline\wcline{3-7}
\end{tabular}

X 1 2 3 4 5

5 1 3 1 0 1

AA 4 1 0 7 5 1

3 2 1 0 9 3

BB 2 1 b 6 0 a

1 0 0 1 1 3
http://nhdien.wordpress.com 9

5.

\newcommand\whline{%
\noalign{\xdef\origarrayrulewidth{\the\arrayrulewidth}%
\global\arrayrulewidth 3\arrayrulewidth}%
\hline%
\noalign{\global\arrayrulewidth\origarrayrulewidth}%
}

\rowcolors{1}{blue!4}{blue!12}
\begin{tabular}{|cIc|c|}
\hline
a & B & C \\\hline
a & B & C \\\whline
a & B & C \\\hline
a & B & C \\\hline
a & B & C \\\whline
a & B & C \\\hline
\end{tabular}

a B C a B C a B C a B C

a B C a B C a B C a B C

a B C a B C a B C a B C

a B C a B C a B C a B C

a B C a B C a B C a B C

a B C a B C a B C a B C

a B C a B C a B C a B C

a B C a B C a B C a B C

a B C a B C a B C a B C

a B C a B C a B C a B C

a B C a B C a B C a B C

a B C a B C a B C a B C
http://nhdien.wordpress.com 10

a B C a B C a B C a B C

a B C a B C a B C a B C

a B C a B C a B C a B C

a B C a B C a B C a B C

a B C a B C a B C a B C

a B C a B C a B C a B C

You might also like