Tôi có một khuôn mặt, được tạo ra theo cách này:
(defface test-face
'((t . (:height 2.0)))
"A face for testing.")
Tôi muốn chèn một số văn bản với khuôn mặt đó. Nhưng những cách này chèn văn bản mà không có mặt:
(insert (propertize "text to insert" 'face 'test-face))
(let ((current-string "text to insert"))
(put-text-property 1 (length current-string) 'face 'test-face)
(insert current-string))
Và thậm chí chèn văn bản trước, sau đó quay lại để đặt khuôn mặt trên đó không hoạt động:
(progn
(insert "text to insert")
(add-text-properties
(save-excursion
(backward-word 3)
(point))
(point)
'(face test-face)))
Vấn đề không phải là định nghĩa của khuôn mặt, bởi vì nếu tôi đi tùy chỉnh nó, nó đã hiển thị với chiều cao gấp đôi. Mặc dù vậy, nội tuyến cũng không hoạt động:
(insert (propertize "to insert" 'face '(:height 2.0)))
Vì vậy, làm thế nào tôi có thể đưa vào một số văn bản với khuôn mặt cụ thể? Tôi biết tôi có thể sử dụng lớp phủ, nhưng điều đó có vẻ như quá mức vì nó dài dòng hơn, đòi hỏi phải chèn văn bản trước (vì vậy chúng tôi phải tìm ra kích thước và vị trí của văn bản được phủ lên) và yêu cầu tạo thêm rác thu thập.
face
cho mã tô sáng cú pháp, vì vậy nó đang thay thế thuộc tính khuôn mặt của bạn. Tôi chắc chắn phải có một số cách để vô hiệu hóa khóa phông chữ cho một văn bản nhất định nhưng tôi sẽ phải nghiên cứu mã một chút (không có thời gian ngay bây giờ). Có lẽ đọcfont-lock.el
mã sẽ cung cấp một số manh mối