Khi soạn thảo tài liệu bằng chương trình tex xong ta sẽ biên dịch thành tập tin có thể in ấn được như pdf hoặc dvi. Trong tex có 2 chương trình biên dịch chính là latex và pdflatex.
$$latex \rightarrow dvi \rightarrow pdf $$ $$pdflatex \rightarrow pdf$$
Chương trình biên dịch latex chỉ hỗ trợ chèn ảnh với phần mở rộng là eps. Do đó, khi tài liệu có chèn ảnh với phần mở rộng là png, pdf, ... thì trong quá trình biên dịch sẽ xuất hiện lỗi no bounding box (tạm dịch theo nghĩa đen là không xác định được kích thước ảnh) và như thế sẽ không hoàn tất việc biên dịch để cho ra file có thể in ấn.
Vậy khắc phục lỗi này như thế nào? Có 2 hướng tiếp cận như sau:
+) Ưu điểm của hướng này là ta chèn ảnh theo cách thông dụng và hình ảnh hiện thị đúng vị trí ta mong muốn.
+) Khuyết điểm: độ sắc nét của hình ảnh sau khi đổi định dạng không bằng hình ảnh gốc ban đầu. Tuy nhiên sự chênh lệch không đáng kể.
+) Ưu điểm của hướng này là giữ nguyên độ sắc nét của hình ảnh ban đầu.
+) Khuyết điểm: nhiều lúc hình ảnh hiện thị không đúng vị trí mong muốn và cú pháp chèn hình phức tạp hơn thông thường.
Lưu ý. Trong nhiều trường hợp BuondingBox thường có dạng $0\; 0\; x\; y$ trong đó $x, y$ chính là độ rộng và chiều cao của ảnh.
Sơ lược 2 cách giải quyết lỗi no BoundingBox như vậy, tùy vào mục đích và yêu cầu sử dụng mà bạn chọn cách hợp lý nhất. Chúc bạn thành công.
$$latex \rightarrow dvi \rightarrow pdf $$ $$pdflatex \rightarrow pdf$$
Bảng các loại tập tin được hỗ trợ trong mỗi chương trình biên dịch.
Chương trình biên dịch | Hỗ | trợ | tập | tin |
eps | png | jpg | ||
latex | có | không | không | không |
pdflatex | không | có | có | có |
Chương trình biên dịch latex chỉ hỗ trợ chèn ảnh với phần mở rộng là eps. Do đó, khi tài liệu có chèn ảnh với phần mở rộng là png, pdf, ... thì trong quá trình biên dịch sẽ xuất hiện lỗi no bounding box (tạm dịch theo nghĩa đen là không xác định được kích thước ảnh) và như thế sẽ không hoàn tất việc biên dịch để cho ra file có thể in ấn.
Lỗi no Bouding Box khi biên dịch bằng latex. |
Hướng 1. Chuyển các tập tin *.png, *.jpg, *.pdf,... sang tập tin *.eps.
Việc đổi định dạng png, jpg sang eps có một công cụ trực tuyến rất hiệu quả là http://www.go2convert.com/. Bạn chỉ cần tải lên tập tin *.png, *.jpg, *.pdf,... và lựa chọn định dạng eps rồi nhấn vào Convert now chờ cho trang web chuyển đổi định dạng xong ta nhấn vào Download để tải về tập tin *.eps.+) Ưu điểm của hướng này là ta chèn ảnh theo cách thông dụng và hình ảnh hiện thị đúng vị trí ta mong muốn.
+) Khuyết điểm: độ sắc nét của hình ảnh sau khi đổi định dạng không bằng hình ảnh gốc ban đầu. Tuy nhiên sự chênh lệch không đáng kể.
Hướng 2. Xác định BoundingBox của hình ảnh.
Để xác định Boundingbox của hình ảnh ta dùng phần mềm GSview để đọc tập tin *.eps và nhấn vào nút i (information) trên giao diện của chương trình, khi đó nó sẽ hiện ra một hộp thoại có chứa thông tin BoundingBox. Như thế để xác định BoundingBox của một hình ảnh ta vẫn phải chuyển đổi hình ảnh đó qua định dạng eps. Vậy tại sao lại sử dụng Hướng 2 để làm gì? Câu trả lời là trong quá trình chuyển đổi, hình ảnh ở tập tin eps thu được có độ sắc nét không bằng ảnh gốc ban đầu, trong khi ta lại mong muốn tài liệu được in ra với hình ảnh rõ nét. Vì vậy ta phải chèn được ảnh gốc ban đầu vào tài liệu và khắc phục lỗi no BoundingBox đã nói ở trên. Giải pháp là lấy thông số BuondingBox của ảnh và chèn ảnh vào tài liệu theo cú pháp dưới đây.\begin{figure}[!H]
\centering
\includegraphics[bb=0 0 390 343]{hinh_anh.pdf}
\caption{}\label{fig:}
\end{figure}
trong đó các thông số $0\; 0\; 390\; 343$ chính là BoundingBox ta đã xác định được ở trên.+) Ưu điểm của hướng này là giữ nguyên độ sắc nét của hình ảnh ban đầu.
+) Khuyết điểm: nhiều lúc hình ảnh hiện thị không đúng vị trí mong muốn và cú pháp chèn hình phức tạp hơn thông thường.
Lưu ý. Trong nhiều trường hợp BuondingBox thường có dạng $0\; 0\; x\; y$ trong đó $x, y$ chính là độ rộng và chiều cao của ảnh.
kích thước ảnh gốc |
Xác định BoundingBox bằng GSview |
Cho mình hỏi phần mềm latex của mình báo không hỗ trợ eps và pdf thì phải làm thế nào?
ReplyDelete