SVG trong LaTeX: Giữ hình và dàn chữ nhãn minh họa
Chọn quy trình PDF hoặc PDF kèm LaTeX cho minh họa SVG. Giữ nhãn chỉnh sửa được, hiểu yêu cầu phụ thuộc vào Inkscape và kiểm tra PDF tài liệu cuối.
Trên trang này
Để dùng minh họa SVG trong LaTeX, chọn thành phần sẽ kết xuất nhãn. Xuất PDF thông thường khi kiểu chữ hiện có của minh họa phù hợp. Dùng quy trình PDF kèm LaTeX khi LaTeX cần dàn chữ nhãn đồng bộ với văn bản tài liệu.
Gói svg có thể tự động hóa xuất qua Inkscape rồi đưa các tệp kết quả vào tài liệu. Nó không làm bước chuyển đổi biến mất; nó quản lý bước đó cho bạn. Tổng quan gói của CTAN mô tả tách đồ họa đã xuất và văn bản do LaTeX kết xuất.
Với minh họa đã chuẩn bị, câu hỏi hữu ích là hình và nội dung có giữ được qua lần sửa tiếp không. Giữ bản gốc SVG, quyết định cách xử lý nhãn và kiểm tra tài liệu ghép ở kích thước dự định. Nếu tài liệu tạo bằng Python, làm theo quy trình riêng đặt hình SVG vào PDF ReportLab, gồm kích thước chỉ định rõ và kiểm tra tệp hoàn thiện.
Chọn các tệp tài liệu sẽ dùng
| Yêu cầu | Cách bàn giao | Nội dung cần duy trì |
|---|---|---|
| Giữ diện mạo hiện có của minh họa | Xuất PDF thông thường và dùng graphicx | Bản gốc SVG và PDF đã xuất |
| Để LaTeX dàn chữ nhãn hình | Xuất PDF kèm LaTeX | Bản gốc SVG và cặp PDF/LaTeX tương ứng |
| Cập nhật bản xuất khi biên dịch tài liệu | Dùng gói svg với Inkscape | Nguồn SVG và môi trường biên dịch |
Chẳng hạn, xét minh họa nhỏ về thấu kính cạnh tấm thẻ. Hai nhãn chỉ là ‘Lens’ và ‘Card’. Ví dụ không có kích thước, tia đo hay kết quả vẽ từ dữ liệu.
Người duyệt yêu cầu đổi ‘Card’ thành ‘Target card’. Không cần vẽ lại hình, nhưng nhãn dài hơn cần chỗ. Đây là phép thử sửa đổi hữu ích: bạn có đổi nội dung mà không dò nét hình chữ được không, và nhãn mới còn vừa không?

Cách 1: xuất PDF thông thường
Dùng cách này khi nhãn đã đúng diện mạo và không cần kế thừa kiểu chữ tài liệu.
Hướng dẫn xuất PDF của Inkscape mô tả File → Save a Copy, chọn PDF và chọn tùy chọn xuất văn bản. Giữ SVG gốc. Với văn bản thông thường tìm kiếm được, kiểm tra nhúng phông; chuyển chữ thành đường bao cố định hình dạng nhưng bỏ vai trò văn bản chỉnh sửa được.
Lưu ví dụ này thành lens-card.pdf cạnh tệp .tex chính. Trong dự án LaTeX tạo PDF, mẫu đưa hình vào cơ bản là:
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\includegraphics[width=0.7\linewidth]{lens-card.pdf}
\end{document}Gói graphicx và \includegraphics là cách chèn ảnh được mô tả trong hướng dẫn ảnh của Overleaf. Chiều rộng ở đây là ví dụ bố cục, không phải kích thước hình bắt buộc.
Mở PDF đã xuất trước khi thêm vào tài liệu. Xác nhận cả hai đối tượng và nhãn đều có. Sau biên dịch, kiểm tra hình lại: nhãn dễ đọc trong minh họa toàn trang có thể quá nhỏ ở cột hẹp.
Nếu đổi nhãn trong SVG, xuất PDF lại. Giữ tên rõ ràng để tài liệu không tiếp tục dùng bản bàn giao cũ.
Cách 2: xuất đồ họa và văn bản LaTeX cùng nhau
Dùng cách này khi nhãn hình cần LaTeX dàn chữ. Tổng quan PDF kèm LaTeX giải thích hình vẽ và chữ được xử lý riêng để văn bản hình dùng kiểu chữ tài liệu.
Trong hộp thoại xuất PDF Inkscape, chọn Omit text in PDF and create LaTeX file, như hướng dẫn xuất mô tả. Giữ lens-card.pdf và lens-card.pdf_tex kết quả cùng nhau. Chỉ mở PDF sẽ không thấy nhãn đã bỏ.
Tài liệu gói svg, mục 2.5 mô tả \includeinkscape cho tệp đã được Inkscape xuất. Với cặp tệp cạnh .tex chính, mẫu đưa vào là:
\documentclass{article}
\usepackage{svg}
\begin{document}
\includeinkscape[width=0.7\linewidth]{lens-card.pdf_tex}
\end{document}Cách này dùng cặp đã chuẩn bị thay vì yêu cầu quá trình build tài liệu xuất SVG. Giữ cả hai tệp khi chuyển dự án.
Với ví dụ thấu kính và thẻ, đối chiếu vị trí nhãn ghép với bản gốc minh họa. Phông tài liệu rộng hơn có thể đẩy ‘Target card’ về phía thấu kính dù hình học đã xuất không đổi. Chừa đủ chỗ quanh nhãn và thử nội dung dài hơn trước khi chốt bố cục.
Nếu chữ đã chuyển thành đường dẫn, chúng là hình học của phần hình. Giữ hoặc tạo lại nhãn dự định thành văn bản thực trong bản gốc chỉnh sửa được nếu muốn LaTeX dàn chữ. Hướng dẫn phông SVG giải thích phân biệt văn bản còn chỉnh sửa được với chữ dạng đường bao.
Cách 3: để gói svg xuất trong lúc biên dịch
Với minh họa sửa nhiều lần, cách tự động có thể tiện:
\documentclass{article}
\usepackage{svg}
\begin{document}
\includesvg[width=0.7\linewidth]{lens-card}
\end{document}Ở đây nguồn là lens-card.svg. Tài liệu gói yêu cầu tệp thực thi Inkscape hoạt động để xuất tự động và mô tả shell escape để gọi nó. Với dự án cục bộ đáng tin, cách gọi được mô tả là:
pdflatex --shell-escape main.texShell escape cho phép lệnh ngoài; chỉ dùng cho nguồn dự án đáng tin. Nếu môi trường không cho phép, chuẩn bị bản xuất ngoài bước build và dùng một trong các cách phía trước.
Thiết lập inkscapelatex=true của gói tách chữ để LaTeX kết xuất và là mặc định. Đặt inkscapelatex=false trên \includesvg khi muốn văn bản do Inkscape xuất. Chủ động chọn cách hoạt động trước khi chỉnh cỡ nhãn.
Đây là các mẫu đưa vào được tài liệu mô tả. Thử cách đã chọn trong bản sao nhỏ của dự án trước khi áp dụng cho tài liệu dài hoặc template dùng chung.
Chẩn đoán phần thiếu trước khi đổi định dạng
| Hiện tượng | Kiểm tra trước |
|---|---|
| SVG có nhưng PDF tạo ra mất | Bước xuất có chạy không, Inkscape có sẵn không và đường dẫn đầu ra đúng không |
| Hình hiện nhưng nhãn vắng | Có phải bạn chỉ đưa PDF của cặp PDF/LaTeX vào không |
| Nhãn chồng nhau hoặc khoảng cách lạ | Quy trình văn bản đã chọn, phông tài liệu và chỗ cho nhãn |
| PDF gây lỗi giống lỗi văn bản | Có phải truyền cho \input thay vì lệnh chèn ảnh không |
| Hình có khoảng trống hoặc cắt vùng bất ngờ | Vùng xuất và giới hạn trang của phần hình |
Làm theo lỗi biên dịch liên quan đầu tiên trước khi đổi nhiều thiết lập cùng lúc. Với tệp xuất bị thiếu, kiểm tra tệp trên đĩa. Với nhãn sai vị trí, kiểm tra hình đã ghép. Các phép kiểm tra đó liên quan các phần khác nhau của quy trình.
Trong dự án Overleaf, tải lên các tệp cách đã chọn cần. PDF chuẩn bị sẵn hoặc cặp xuất khớp nhau tránh yêu cầu xuất SVG trong lúc biên dịch. Đừng cho rằng bản cài cục bộ, máy chủ tự quản lý và dự án dùng dịch vụ lưu trữ có cùng công cụ ngoài sẵn có.
Chỉ khôi phục minh họa cần khôi phục
Nếu đã có SVG chỉnh sửa được, dùng nó. Nếu nguồn là đồ thị số liệu, tạo lại hình từ dữ liệu vẽ và mã nguồn. Giữ phương trình và nhãn khoa học thành văn bản; dò nét pixel không khôi phục ý nghĩa. Với hình tạo bằng Python, làm theo quy trình ghép đồ thị Matplotlib và hình SVG để giữ logo riêng thành đường dẫn trước khi xuất tài liệu.
Vector hóa hữu ích trong trường hợp hẹp hơn: hình vẽ gốc mất và chỉ có bản raster của đối tượng minh họa đơn giản. Cắt một bản sao để chỉ giữ phần hình minh họa, không đưa nhãn và dữ liệu vào phần dò nét. Với công cụ vector hóa minh họa khoa học của PerfectVector, xem trước phần hình thành hình vector và kiểm tra đường bao mảnh, lỗ trống, vùng nền không mong muốn. Tải SVG, thêm nhãn gốc riêng trong trình chỉnh sửa và dùng cách bàn giao LaTeX đã chọn.
Với ví dụ thấu kính và thẻ, khôi phục liên quan hình thấu kính hoặc đường bao thẻ. Nội dung thuộc nguồn nhãn. Bản vector ứng viên vẫn cần kiểm tra sau xuất PDF và đưa vào tài liệu; nó không cung cấp hình học đã đo hay phê duyệt chính sách xuất bản.
Hướng dẫn chuẩn bị nét vẽ trình bày làm sạch nguồn raster. Nếu tệp duy nhất còn là PDF, hướng dẫn PDF thành SVG giúp phân biệt nội dung vector sẵn có với trang quét trước khi dò nét. Với lựa chọn nguồn rộng hơn, xem vector hóa ảnh khôi phục được gì.
Kiểm tra tài liệu ghép rồi giữ nguồn
Chạy phép thử chỉ sửa nhãn trong bản sao. Đổi ‘Card’ thành ‘Target card’, cập nhật bản xuất nếu cần và biên dịch tài liệu. Kiểm tra chữ đúng cách viết và vị trí ở chiều rộng hình cuối. Sau đó khôi phục nội dung dự định.
Cũng kiểm tra lỗ, nét mảnh và giới hạn xuất của hình vẽ. Hướng dẫn xuất PDF của Inkscape giải thích hiệu ứng bộ lọc có thể bị raster hóa, nên chỉ tên tệp PDF không xác nhận mọi phần nhìn thấy là hình học vector.
Giữ SVG chỉnh sửa được và các tệp tài liệu dùng cùng nhau. Với cặp PDF/LaTeX, bàn giao cả hai. Mở lại đúng bản sao dự án định chia sẻ và lặp phép kiểm tra hình ở đó.
Câu hỏi thường gặp
Tôi có thể đưa SVG trực tiếp vào includegraphics không? Với các quy trình ở đây, xuất tệp đồ họa được hỗ trợ như PDF trước, hoặc dùng gói svg quản lý xuất Inkscape. Gói vẫn đưa đồ họa đã xuất vào tài liệu.
Vì sao PDF xuất không có nhãn? Bản xuất PDF kèm LaTeX bỏ văn bản nhãn khỏi PDF. Đưa thành phần LaTeX tương ứng vào để ghép hình, hoặc xuất PDF thông thường nếu muốn một tệp ảnh tự chứa.
Tôi có cần Inkscape trong mọi lần build tài liệu không? Xuất SVG tự động cần nó trong môi trường build. PDF hoặc cặp PDF/LaTeX đã xuất trước có thể đưa vào mà không chạy bước xuất đó trong lúc biên dịch.
Tôi có nên dò nét ảnh chụp màn hình đồ thị cho LaTeX không? Tạo lại đồ thị số liệu từ dữ liệu và mã nguồn vẽ. Chỉ dò nét phần hình minh họa phù hợp đã mất nguồn chỉnh sửa được, đồng thời duy trì nhãn riêng.
Nguồn tham khảo
- CTAN — Gói SVG — Xuất Inkscape tự động và văn bản riêng do LaTeX kết xuất.
- Inkscape — Xuất tệp PDF — Bản sao PDF, lựa chọn xuất văn bản, hiệu ứng bộ lọc và vùng xuất.
- Overleaf — Mã LaTeX để chèn ảnh — Gói graphicx và lệnh đưa đồ họa vào.
- CTAN — Tổng quan quy trình SVG và Inkscape — Cách PDF kèm LaTeX cho kiểu chữ tài liệu.
- Falk Hanisch và Philip Ilten — Tài liệu gói svg — Đưa tệp xuất trước vào, yêu cầu xuất tự động và tùy chọn kết xuất văn bản.
Chọn cách dàn chữ nhãn, rồi xác minh một hình hoàn chỉnh trong tài liệu. Nếu chỉ còn minh họa raster, hãy chuẩn bị bản hình vector ứng viên, kiểm tra hình dạng, khôi phục nhãn riêng và kiểm tra PDF đã ghép.
Thêm từ blog

SVG trong Typst: đặt hình và kiểm tra hình minh họa
Đặt SVG trong Typst bằng hàm image và figure có sẵn. Kiểm tra kích thước, chú thích, căn trong dòng và PDF xuất ra trước khi bàn giao tài liệu.

Văn bản SVG foreignObject: Sửa nhãn mất khi xuất
Sửa nhãn SVG hiện trong trình duyệt nhưng mất khi xuất. Đối chiếu foreignObject với văn bản thuần SVG, kiểm tra namespace và giữ nguyên phần hình sẵn có.