VietTUG.org - old forum

id = 58, parent = 0, thread = 58, catid = 17, locked = 0, moved = 0,
userid = kyanh, ip = 221.132.63.51, time = 2005/09/09 (1126280421) ,
subject = chèn hình với gói graphicx, hits = 21337, karma = 0+0-,
Ví dụ có ở đây: forum:1462

Các dạng hình

Các dạng hình (phổ biến) có thể chèn vào tài liệu LaTeX: .jpg, .png, .eps, .pdf.

Các loại .pdf, .jpg, .png được dùng khi biên dịch tài liệu thành dạng PDF; hình .eps, được dùng khi biên dịch tài liệu thành dạng DVI/PS.

Như vậy, mỗi một hình nên có hai phiên bản: một phiên bản dùng cho DVI/PS, phiên bản kia dùng cho PDF. Làm thế nào đề có hai phiên bản? Câu trả lời tùy thuộc vào chương trình vẽ hình bạn dùng. Hãy xem các chủ đề tương ứng.

Nạp hình bằng gói nào

Có nhiều gói để nạp hình. Gói được dùng phổ biến nhất, là graphicx. (Gói 'graphics' không tiện lợi bằng 'graphicx').

Cũng như các gói khác, gói graphicx được nạp bằng lệnh \usepackage. Tuy nhiên, hãy xem phần kế tiếp!

Làm thế nào để nạp đúng dạng

Do việc phân chia như trên, ta phải biết nạp đúng dạng hình, tùy theo chế độ biên dịch. Hãy quan sát đoạn mã dưới đây. Ta phải làm các việc: khai báo biến \ifpdf để xác định chế độ biên dịch, sau đó, nạp gói 'graphicx' với các tùy chọn khác nhau tùy theo giá trị của biến này.

\documentclass{...} % khai báo lớp
\usepackage{ifpdf}
% ...
\ifpdf
    \usepackage[pdftex]{graphicx}
    %\usepackage[pdftex]{hyperref}
\else
    \usepackage[dvips]{graphicx}
    %\usepackage[dvips]{hyperref}
\fi

Bây giờ, ta sẽ nạp hình như sau
\begin{figure}[htb]
%\begin{center} % để canh giữa hình
\ifpdf
    \includegraphics{hình cho PDF}
\else
    \includegraphics{hình cho DVI/PS}
\fi
%\end{center}
\caption{Chú thích cho hình vẽ}
\label{fig:foo} % đặt nhãn fig:foo cho hình vẽ này
\end{figure}


Hình vẽ có thể sẽ không được đặt đúng chỗ như ý của bạn. Bí mật ở chỗ ta đã dùng tham số [htb] cho \begin{figure}.

Ở đây, 'h' là viết tắt của 'here' (ở đây), 't' - cho 'top' (ở trên) và 'b' - cho 'bottom' (ở dưới). LaTeX sẽ giúp bạn xác định thích hợp nhất của hình, theo thứ tự ưu tiên là h, sau đó đến t, và cuối cùng là b. Bạn có thể thay đổi thứ tự của h, t, b tùy ý. Nếu bạn cứ nhất nhất muốn đặt hình theo đúng chỗ mình muốn, hãy chỉ dùng tham số '[h]', hoặc bỏ đi môi trường 'figure' -- tuy nhiên, bạn không nên làm như vậy!