Tạo hình vẽ/diagram và chuyển định dạng file từ pdf sang eps trên Mac OS X

Update: Ngoài cách dưới đây, có thể dùng TikZ  GIMP để vẽ hình và chuyển định dạng file.

Khi cần đưa hình vẽ vào LaTeX, mình hay sử dụng định dạng .eps và package graphicx.

Trong LaTeX sẽ chèn hình vẽ (chẳng hạn img.eps) vào một file LaTeX như sau.

\usepackage[dvips]{graphicx}
\begin{figure}[!t]
\begin{center}
\includegraphics[width=0.4\textwidth]{draw/img.eps}
\caption{System architecture}
\end{center}
\end{figure}

Trên Windows, để vẽ hình/diagram mình hay dùng Visio, sau đó in ra thành ps, dùng Adobe Acrobat để chuyển thành eps, và sau đó dùng epstool để sửa lại bounding box.

Trên máy Mac, sau một hồi mày mò mình đã tìm ra cách để thực hiện các bước ở trên. Đó là dùng công cụ Drawing của LibreOffice để vẽ hình, export ra pdf, dùng pdfcrop để crop file pdf tạo ra sau đó dùng xpdf để chuyển file pdf đã crop thành file eps. Được cái tất cả các phần mềm trên đều miễn phí nên không lo nguy cơ bảo mật trong các bản crack.

Các bước thực hiện như sau. Các bước dưới đây giả định bạn đã cài đặt MacTeX trên Mac OS X.

    1. Step 1: Download và cài đặt LibreOffice tại: https://www.libreoffice.org
    2. Step 2: Mở LibreOffice và dùng Drawing để vẽ hình. Drawing trong LibreOffice hỗ trợ vẽ diagram và flowchart khá tốt dù không xịn như Microsoft Visio.
    3. Step 3: Lưu bản drawing trong LibreOffice dưới định dạng pdf, ví dụ img.pdf
    4. Step 4: Sử dụng lệnh pdfcrop để crop file pdf vừa tạo ra
       pdfcrop img.pdf

      Lệnh này sẽ tạo ra file img-crop.pdf trong cùng thư mục với img.pdf

    5. Step 5: Download xpdf tại: http://www.foolabs.com/xpdf/download.html
    6. Step 6: Giải nén file: xpdfbin-mac-3.04.tar.gz
       tar xvfz xpdfbin-mac-3.04.tar.gz
    7. Step 7: Copy các file trong thư mục xpdfbin-mac-3.04/bin64  vào /usr/local/bin. Để copy được có thể bạn cần quyền root.
    8. Step 8: Chuyển file img-crop.pdf sang định dạng eps
       pdftops -eps img-crop.pdf

      Lệnh này sẽ tạo ra file img-crop.eps. Bạn có thể đổi tên file thành img.eps nếu thích.

Sau các bước thực hiện trên, bạn có thể đưa file ảnh .eps vào trong LaTeX một cách dễ dàng mà không cần quan tâm đến bounding box.

Chuyển file visio sang định dạng eps

Khi viết paper, thông thường ta cần chuyển các bản vẽ visio (sơ đồ, diagram) sang eps để đưa vào file latex. Cách thông thường convert từ ảnh sang cho chất lượng rất thấp.
Cách sau đây có thể cho ảnh với chất lượng cao hơn:

1. Chuyển file visio sang file PosScript hoặc pdf sử dụng PosScript Printer (với tùy chọn Print to File). Có thể sử dụng HP Universal Print Driver hoặc Adobe PosScript Printer (thường đi kèm với bộ Adobe Acrobat).

2. Chuyển file từ PS sang EPS (Sử dụng GhostViewer). Tải về tại địa chỉ: http://pages.cs.wisc.edu/~ghost/gsview/get49.htm

3. Chỉnh sửa bounding box của file eps: Thông thường file eps thường có size bằng size A4 và không thể đưa vào file tex. Vì thế ta cần crop file ảnh bằng cách chỉnh sửa thông số bounding box. Tôi sử dụng công cụ epstool để fix bounding box cho file eps. Download tại: http://pages.cs.wisc.edu/~ghost/gsview/epstool.htm

Sau khi download tool này, chỉnh sửa bounding box cho file eps sử dụng lệnh:

epstool --copy --bbox file1.eps file2.eps

trong đó file file1.eps là file cần sửa và file file2.eps là output thu được.

Chất lượng file eps tạo ra bằng cách này tốt hơn hẳn so với các cách khác mà tôi đã làm (ví dụ save as file visio thành dạng ảnh sau đó convert sang eps,…). Cách này có thể làm tương tự với các file word, hay file ảnh,…