PerfectVector
โดย Irene Kimอ่าน 4 นาที

SVG ใน LaTeX: เก็บรูปทรงและจัดตัวอักษรป้ายกำกับรูป

เลือกขั้นตอน PDF หรือ PDF ร่วมกับ LaTeX สำหรับภาพประกอบ SVG เก็บป้ายกำกับให้แก้ไขได้ เข้าใจสิ่งที่ต้องพึ่ง Inkscape และตรวจ PDF เอกสารสุดท้าย

ในหน้านี้

หากต้องใช้ภาพประกอบ SVG ใน LaTeX ให้เลือกว่าจะให้เครื่องมือใดเรนเดอร์ป้ายกำกับ ส่งออก PDF ปกติเมื่อรูปแบบตัวอักษรที่มีในภาพเหมาะสม ใช้ขั้นตอน PDF ร่วมกับ LaTeX เมื่อควรให้ LaTeX จัดตัวอักษรป้ายกำกับไปพร้อมกับข้อความเอกสาร

แพ็กเกจ svg ทำการส่งออกผ่าน Inkscape โดยอัตโนมัติ แล้วนำไฟล์ผลลัพธ์มาใส่ได้ มันไม่ได้ทำให้การแปลงหายไป แต่จัดการขั้นตอนนั้นให้ ภาพรวมแพ็กเกจของ CTAN อธิบายการแยกกราฟิกที่ส่งออกกับข้อความที่เรนเดอร์ด้วย LaTeX

สำหรับภาพประกอบที่เตรียมแล้ว คำถามที่มีประโยชน์คือรูปทรงและถ้อยคำจะยังอยู่ครบในการแก้ไขครั้งถัดไปหรือไม่ เก็บไฟล์ SVG หลัก ตัดสินวิธีจัดการป้ายกำกับ และตรวจเอกสารที่ประกอบแล้วในขนาดที่ตั้งใจ หากสร้างเอกสารใน Python ให้ใช้ขั้นตอนแยกสำหรับ วางงาน SVG ใน PDF ของ ReportLab รวมทั้งกำหนดขนาดชัดเจนและตรวจไฟล์สำเร็จ

เลือกไฟล์ที่เอกสารจะใช้

ความต้องการวิธีส่งมอบสิ่งที่ต้องดูแล
เก็บรูปลักษณ์ภาพประกอบเดิมส่งออก PDF ปกติและใช้ graphicxSVG หลักและ PDF ที่ส่งออก
ให้ LaTeX จัดตัวอักษรป้ายกำกับรูปส่งออก PDF ร่วมกับ LaTeXSVG หลักและคู่ไฟล์ PDF/LaTeX ที่ตรงกัน
อัปเดตไฟล์ส่งออกระหว่างคอมไพล์เอกสารใช้แพ็กเกจ svg กับ InkscapeSVG ต้นทางและสภาพแวดล้อมคอมไพล์

เช่น พิจารณาภาพเล็กของเลนส์ข้างการ์ด ป้ายกำกับสองป้ายมีเพียง “Lens” และ “Card” ตัวอย่างนี้ไม่มีขนาด แนวลำแสงที่วัด หรือผลพล็อต

ผู้ตรวจขอให้เปลี่ยน “Card” เป็น “Target card” ไม่จำเป็นต้องวาดงานภาพใหม่ แต่ป้ายที่ยาวขึ้นต้องมีพื้นที่ นี่เป็นการทดสอบแก้ไขที่มีประโยชน์: เปลี่ยนคำโดยไม่ต้องแปลงรูปตัวอักษรเป็นพาธได้หรือไม่ และป้ายใหม่ยังพอดีหรือไม่?

ภาพประกอบเลนส์กับการ์ดที่แยกเป็นกราฟิกและข้อความป้ายกำกับ แล้วประกอบเป็นรูปที่มีป้ายกำกับ
ภาพประกอบการแยก PDF ร่วมกับ LaTeX: รูปทรงที่วาดและข้อความป้ายกำกับเป็นอินพุตแยกของรูปที่ประกอบหนึ่งรูป ตำแหน่งป้ายยังต้องตรวจหลังจัดตัวอักษร

วิธีที่ 1: ส่งออก PDF ปกติ

ใช้วิธีนี้เมื่อป้ายกำกับดูเหมาะสมแล้วและไม่ต้องรับรูปแบบตัวอักษรของเอกสาร

คู่มือส่งออก PDF ของ Inkscape อธิบาย File → Save a Copy การเลือก PDF และตัวเลือกผลลัพธ์ข้อความ เก็บ SVG ต้นฉบับไว้ สำหรับข้อความปกติที่ค้นหาได้ ให้ตรวจการฝังฟอนต์ การแปลงตัวอักษรเป็นเส้นขอบตรึงรูปทรงไว้แต่ลบบทบาทข้อความที่แก้ไขได้

บันทึกตัวอย่างนี้เป็น lens-card.pdf ข้างไฟล์ .tex หลัก ในโครงการ LaTeX ที่สร้าง PDF รูปแบบการใส่ภาพพื้นฐานคือ:

\documentclass{article}
\usepackage{graphicx}
\begin{document}
\includegraphics[width=0.7\linewidth]{lens-card.pdf}
\end{document}

แพ็กเกจ graphicx และ \includegraphics เป็นวิธีใส่ภาพตาม คู่มือภาพของ Overleaf ความกว้างในที่นี้เป็นตัวอย่างการจัดหน้า ไม่ใช่ขนาดรูปที่จำเป็น

เปิด PDF ที่ส่งออกก่อนเพิ่มในเอกสาร ยืนยันว่าวัตถุทั้งสองและป้ายกำกับอยู่ครบ หลังคอมไพล์ ตรวจรูปอีกครั้ง ป้ายที่อ่านได้ในภาพเต็มหน้าอาจเล็กเกินไปในคอลัมน์แคบ

หากเปลี่ยนป้ายใน SVG ให้ส่งออก PDF อีกครั้ง ใช้ชื่อชัดเจนเพื่อไม่ให้เอกสารยังใช้สำเนาส่งมอบเก่า

วิธีที่ 2: ส่งออกกราฟิกพร้อมข้อความ LaTeX

ใช้วิธีนี้เมื่อควรให้ LaTeX จัดตัวอักษรป้ายกำกับรูป ภาพรวม PDF ร่วมกับ LaTeX อธิบายว่ารูปวาดกับข้อความจัดการแยกกัน เพื่อให้ข้อความรูปใช้รูปแบบตัวอักษรของเอกสารได้

ในกล่องส่งออก PDF ของ Inkscape เลือก Omit text in PDF and create LaTeX file ตาม คู่มือส่งออก เก็บ lens-card.pdf และ lens-card.pdf_tex ที่ได้ไว้ด้วยกัน การเปิด PDF เพียงอย่างเดียวจะไม่แสดงป้ายที่ละไว้

คู่มือแพ็กเกจ svg หัวข้อ 2.5 อธิบาย \includeinkscape สำหรับไฟล์ที่ส่งออกด้วย Inkscape แล้ว เมื่อคู่ไฟล์อยู่ข้าง .tex หลัก รูปแบบการใส่คือ:

\documentclass{article}
\usepackage{svg}
\begin{document}
\includeinkscape[width=0.7\linewidth]{lens-card.pdf_tex}
\end{document}

วิธีนี้ใช้คู่ไฟล์ที่เตรียมแล้วแทนการให้การบิลด์เอกสารส่งออก SVG เก็บทั้งสองไฟล์เมื่อย้ายโครงการ

สำหรับตัวอย่างเลนส์กับการ์ด เปรียบเทียบตำแหน่งป้ายที่ประกอบแล้วกับภาพหลัก ฟอนต์เอกสารที่กว้างกว่าอาจดัน “Target card” เข้าใกล้เลนส์แม้รูปทรงที่ส่งออกไม่เปลี่ยน เว้นพื้นที่รอบป้ายเพียงพอและทดสอบข้อความยาวขึ้นก่อนจบการจัดหน้า

หากตัวอักษรแปลงเป็นพาธแล้ว มันเป็นรูปทรงงานภาพ เก็บหรือสร้างป้ายที่ตั้งใจใหม่เป็นข้อความจริงในไฟล์หลักที่แก้ไขได้ หากต้องการให้ LaTeX จัดตัวอักษร คู่มือฟอนต์ SVG อธิบายวิธีแยกข้อความที่ยังแก้ได้กับตัวอักษรเส้นขอบ

วิธีที่ 3: ให้แพ็กเกจ svg ส่งออกระหว่างคอมไพล์

สำหรับการแก้ภาพประกอบบ่อย วิธีอัตโนมัติอาจสะดวก:

\documentclass{article}
\usepackage{svg}
\begin{document}
\includesvg[width=0.7\linewidth]{lens-card}
\end{document}

ในที่นี้ต้นทางคือ lens-card.svg คู่มือแพ็กเกจ ต้องการโปรแกรม Inkscape ที่เรียกใช้ได้สำหรับส่งออกอัตโนมัติ และอธิบาย shell escape เพื่อเรียกมัน สำหรับโครงการในเครื่องที่เชื่อถือได้ คำสั่งตามเอกสารคือ:

pdflatex --shell-escape main.tex

Shell escape อนุญาตคำสั่งภายนอก ใช้เฉพาะต้นทางโครงการที่เชื่อถือได้ หากสภาพแวดล้อมไม่อนุญาต ให้เตรียมไฟล์ส่งออกนอกการบิลด์แล้วใช้วิธีก่อนหน้าอย่างใดอย่างหนึ่ง

การตั้งค่า inkscapelatex=true ของแพ็กเกจแยกข้อความให้ LaTeX เรนเดอร์ และเป็นค่าเริ่มต้น ตั้ง inkscapelatex=false ใน \includesvg เมื่อต้องการข้อความที่ Inkscape ส่งออกแทน เลือกพฤติกรรมนี้อย่างตั้งใจก่อนปรับขนาดป้าย

นี่เป็นรูปแบบการใส่ตามเอกสาร ทดสอบวิธีที่เลือกในสำเนาโครงการเล็ก ๆ ของคุณก่อนใช้กับเอกสารยาวหรือแม่แบบร่วมกัน

วินิจฉัยส่วนที่หายก่อนเปลี่ยนรูปแบบ

สิ่งที่เห็นตรวจอันดับแรก
มี SVG แต่ PDF ที่สร้างหายไปการส่งออกทำงานหรือไม่ มี Inkscape หรือไม่ และพาธผลลัพธ์ถูกต้องหรือไม่
งานภาพปรากฏแต่ป้ายหายใส่เฉพาะ PDF จากคู่ PDF/LaTeX หรือไม่
ป้ายทับกันหรือระยะผิดคาดขั้นตอนข้อความที่เลือก ฟอนต์เอกสาร และพื้นที่ป้ายที่มี
PDF ทำให้เกิดข้อผิดพลาดคล้ายข้อความส่งไฟล์ให้ \input แทนคำสั่งใส่ภาพหรือไม่
รูปมีพื้นที่ว่างหรือตัดขอบผิดคาดพื้นที่ส่งออกและขอบเขตหน้าของงานภาพ

ติดตามข้อผิดพลาดคอมไพเลอร์ข้อแรกที่เกี่ยวข้องก่อนเปลี่ยนหลายการตั้งค่าพร้อมกัน สำหรับไฟล์ส่งออกที่หาย ตรวจไฟล์นั้นบนดิสก์ สำหรับป้ายผิดตำแหน่ง ตรวจรูปที่ประกอบแล้ว การตรวจเหล่านี้เกี่ยวกับคนละส่วนของขั้นตอน

ในโครงการ Overleaf อัปโหลดไฟล์ที่วิธีที่เลือกต้องใช้ PDF ที่เตรียมแล้วหรือคู่ไฟล์ส่งออกที่ตรงกันช่วยเลี่ยงการต้องส่งออก SVG ระหว่างคอมไพล์ อย่าคิดว่าการติดตั้งในเครื่อง เซิร์ฟเวอร์ที่ดูแลเอง และโครงการบนบริการโฮสต์มีเครื่องมือภายนอกเหมือนกัน

กู้เฉพาะภาพประกอบที่ต้องกู้

หากมี SVG แก้ไขได้อยู่แล้ว ให้ใช้มัน หากต้นทางเป็นกราฟตัวเลข ให้สร้างรูปใหม่จากข้อมูลพล็อตและโค้ดต้นทาง เก็บสมการและป้ายวิทยาศาสตร์เป็นข้อความ การแปลงพิกเซลเป็นพาธไม่กู้ความหมายของมัน สำหรับรูปที่สร้างด้วย Python ให้ทำตาม ขั้นตอนประกอบกราฟ Matplotlib กับงาน SVG เพื่อเก็บโลโก้แยกเป็นพาธก่อนส่งออกเอกสาร

การแปลงเป็นเวกเตอร์มีประโยชน์ในกรณีที่แคบกว่า: รูปวาดต้นฉบับหายและเหลือเพียงสำเนาแรสเตอร์ของวัตถุภาพประกอบเรียบง่าย ครอบสำเนาให้เหลือเฉพาะงานภาพ โดยไม่นำป้ายและข้อมูลเข้าไปแปลงด้วย เครื่องมือแปลงภาพประกอบวิทยาศาสตร์เป็นเวกเตอร์ ของ PerfectVector ให้ดูตัวอย่างงานเป็นรูปทรงเวกเตอร์และตรวจเส้นขอบบาง ช่องเปิด และบริเวณพื้นหลังที่ไม่ต้องการ ดาวน์โหลด SVG เพิ่มป้ายเดิมแยกในโปรแกรมแก้ไข แล้วใช้วิธีส่งมอบ LaTeX ที่เลือก

สำหรับตัวอย่างเลนส์กับการ์ด การกู้จะเกี่ยวกับรูปเลนส์หรือเส้นขอบการ์ดที่วาด ส่วนคำอยู่ในต้นทางป้าย เวกเตอร์สำหรับประเมินยังต้องตรวจหลังส่งออก PDF และใส่เอกสาร มันไม่ได้ให้รูปทรงที่วัดจริงหรือการอนุมัติตามนโยบายตีพิมพ์

คู่มือเตรียมลายเส้น อธิบายการจัดการต้นทางแรสเตอร์ หากไฟล์ที่เหลือเพียงไฟล์เดียวคือ PDF คู่มือ PDF เป็น SVG ช่วยแยกเนื้อหาเวกเตอร์ที่มีอยู่กับหน้าสแกนก่อนแปลงสิ่งใดเป็นพาธ สำหรับการเลือกต้นทางที่กว้างกว่า ดู การแปลงภาพเป็นเวกเตอร์กู้อะไรได้

ตรวจเอกสารที่ประกอบแล้ว จากนั้นเก็บต้นทาง

ทดสอบการแก้เฉพาะป้ายในสำเนา เปลี่ยน “Card” เป็น “Target card” อัปเดตการส่งออกหากจำเป็น แล้วคอมไพล์เอกสาร ตรวจตัวสะกดและตำแหน่งข้อความที่ความกว้างรูปสุดท้าย หลังจากนั้นคืนคำที่ตั้งใจใช้

ตรวจช่องเปิด เส้นบาง และขอบเขตส่งออกของรูปด้วย คู่มือส่งออก PDF ของ Inkscape อธิบายว่าเอฟเฟกต์ฟิลเตอร์อาจแปลงเป็นแรสเตอร์ ดังนั้นชื่อไฟล์ PDF เพียงอย่างเดียวไม่ยืนยันว่าทุกส่วนที่เห็นเป็นรูปทรงเวกเตอร์

เก็บ SVG ที่แก้ไขได้กับไฟล์ที่เอกสารใช้ไว้ด้วยกัน สำหรับคู่ PDF/LaTeX ให้ส่งทั้งสองไฟล์ เปิดสำเนาโครงการที่ตั้งใจแบ่งปันจริงอีกครั้งและตรวจรูปซ้ำในนั้น

คำถามที่พบบ่อย

ใส่ SVG ลง includegraphics โดยตรงได้หรือไม่? สำหรับขั้นตอนในที่นี้ ให้ส่งออกไฟล์กราฟิกที่รองรับ เช่น PDF ก่อน หรือใช้แพ็กเกจ svg จัดการการส่งออก Inkscape แพ็กเกจยังใส่กราฟิกที่ส่งออกแล้ว

ทำไม PDF ที่ส่งออกไม่มีป้ายกำกับ? การส่งออก PDF ร่วมกับ LaTeX ละข้อความป้ายจาก PDF ใส่ส่วน LaTeX ที่ตรงกันเพื่อประกอบรูป หรือส่งออก PDF ปกติหากต้องการไฟล์ภาพเดียวที่ครบในตัว

ต้องใช้ Inkscape ทุกครั้งที่บิลด์เอกสารหรือไม่? การส่งออก SVG อัตโนมัติต้องมีมันในสภาพแวดล้อมบิลด์ PDF หรือคู่ PDF/LaTeX ที่ส่งออกไว้แล้วนำมาใส่ได้โดยไม่เรียกการส่งออกนั้นระหว่างคอมไพล์

ควรแปลงภาพหน้าจอกราฟเป็นพาธสำหรับ LaTeX หรือไม่? สร้างกราฟตัวเลขใหม่จากข้อมูลและต้นทางพล็อต ใช้การแปลงเป็นพาธเฉพาะงานภาพประกอบที่เหมาะสมซึ่งต้นฉบับแก้ไขได้หายไป และดูแลป้ายแยกกัน

แหล่งอ้างอิง

  1. CTAN — แพ็กเกจ SVG — การส่งออก Inkscape อัตโนมัติและข้อความที่เรนเดอร์ด้วย LaTeX แยกต่างหาก
  2. Inkscape — ส่งออกไฟล์ PDF — สำเนา PDF ตัวเลือกข้อความ เอฟเฟกต์ฟิลเตอร์ และพื้นที่ส่งออก
  3. Overleaf — โค้ด LaTeX สำหรับใส่ภาพ — แพ็กเกจ graphicx และคำสั่งใส่กราฟิก
  4. CTAN — ภาพรวมขั้นตอน SVG และ Inkscape — วิธี PDF ร่วมกับ LaTeX สำหรับรูปแบบตัวอักษรเอกสาร
  5. Falk Hanisch และ Philip Ilten — คู่มือแพ็กเกจ svg — การใส่ไฟล์ที่ส่งออกไว้แล้ว ข้อกำหนดส่งออกอัตโนมัติ และตัวเลือกเรนเดอร์ข้อความ

เลือกวิธีจัดตัวอักษรป้าย แล้วตรวจรูปที่ครบหนึ่งรูปในเอกสาร หากเหลือเพียงภาพประกอบแรสเตอร์ ให้ เตรียมงานเวกเตอร์สำหรับประเมิน ตรวจรูปทรง คืนป้ายแยกต่างหาก และตรวจ PDF ที่ประกอบแล้ว

เพิ่มเติมจากบล็อก

เริ่มต้นด้วย SVG ที่เรียบร้อยขึ้น
และแก้ไขได้ง่ายกว่า