ฉันสามารถใช้ภาพหน้าจอของเวกเตอร์ (SVG) ของ Emacs ได้หรือไม่


15

gtk-vector-screenshotโปรแกรมสามารถใช้ในการใช้หน้าจอเวกเตอร์ของ Gtk-3 การใช้งาน ดูเหมือนว่าจะทำงานได้โดยขอให้แอปพลิเคชันวาดตัวเองลงบนผืนผ้าใบ SVG

Emacs บน GNU / Linux สามารถสร้างได้ด้วย Gtk + แต่การพยายามใช้แอปพลิเคชันดังกล่าวบนหน้าต่าง Emacs จะให้ภาพหน้าจอที่มีองค์ประกอบ GUI เช่นแถบเมนูเท่านั้น บัฟเฟอร์ไม่ถูกเรนเดอร์ (ฉันลองด้วยและไม่ใช้ไคโร) ไม่น่าแปลกใจนักเนื่องจากการแสดงบัฟเฟอร์ของ Emacs เกิดขึ้นในระดับต่ำมาก

ยังมีวิธีการถ่ายภาพหน้าจอเวกเตอร์ที่ปรับขนาดได้ของ Emacsหรือไม่?

คำตอบ:


2

ตามเอกสาร Gtk + วิดเจ็ตใน Emacs คือ:

  • เมนู
  • กล่องโต้ตอบ
  • แถบเครื่องมือและ
  • แถบเลื่อน

บัฟเฟอร์ถูกสร้างโดย Emacs เอง บัฟเฟอร์หรือบรรทัดในบัฟเฟอร์คือวิดเจ็ต Gtk + ซึ่งหมายความว่าพวกเขาไม่รู้อะไรเลยเกี่ยวกับฟังก์ชันการส่งออกของ Gtk + วิดเจ็ต

สิ่งที่ดีที่สุดที่คุณสามารถทำได้คือการใช้htmlfontify-bufferเพื่อฝัง HTML ที่สร้างขึ้นใน SVG ของคุณที่มีวิดเจ็ต แต่สิ่งนี้จะต้องมีงานเพิ่มเติมเพื่อผสาน HTML และ SVG แต่ระวังด้วยว่าhtmlfontify-bufferมีข้อ จำกัด บางอย่างและไม่สามารถใช้งานได้กับทุกบัฟเฟอร์


ฉันไม่แน่ใจว่านี่ตอบคำถาม ฉันพูดถึงtake-vector-screenshotเป็นตัวอย่าง แต่ฉันยังพูดถึงว่ามันไม่น่าแปลกใจที่มันไม่ทำงาน htmlfontify-bufferมีข้อ จำกัด มากเกินไปที่จะผ่านการรับรองจริง ๆ (ซึ่งจะไม่แสดงภาพซ้อนทับ, สตริงแสดง, การตัดบรรทัด, ตัวเลือกแบบอักษรย้อนกลับ ฯลฯ )
Clément

1
@ Clémentคำตอบสั้น ๆ คือ: ไม่มีทาง
ceving

นี่เป็นความเห็นส่วนตัวหรือคุณมีหลักฐานยืนยันข้อเรียกร้องนั้นหรือไม่? ด้วยจำนวนแบ็กเอนด์เรนเดอร์ (ไคโรผ่าน X, Gtk และอื่น ๆ ) ที่ Emacs มีอยู่เราสามารถจินตนาการได้ว่าการปรับแต่งเล็กน้อยสำหรับหนึ่งในนั้นอาจเพียงพอ
Clément

2
@ Clément Gtk + สามารถแสดงผลเป็น SVG ได้เนื่องจาก Gtk + ใช้ Cairo ซึ่งมีแบ็กเอนด์สำหรับ SVG Emacs ไม่ได้ใช้ไคโรสำหรับการเรนเดอร์บัฟเฟอร์ แต่มีสาขาทดลองสำหรับไคโร อาจเป็นไปได้ในอนาคตอันใกล้นี้
ceving

1

มันเป็นไปได้ในไคโรสร้าง!

(x-export-frames FRAMES TYPE)

Return image data of FRAMES in TYPE format.
FRAMES should be nil (the selected frame), a frame, or a list of
frames (each of which corresponds to one page).  Each frame should be
visible.  Optional arg TYPE should be either `pdf' (default), `png',
`postscript', or `svg'.  Supported types are determined by the
compile-time configuration of cairo.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.