2010-08-05 7 views
11

Trong Emacs, tôi đang sử dụng bảng phối màu với nền tối và văn bản sáng. Khi làm việc với các tệp .rst, tôi có một chế độ cho các tệp sử dụng rst.el. Tuy nhiên, rst.el làm nổi bật các tiêu đề với màu nền nhạt, giúp đọc văn bản sáng trên nó không thể!Sửa đổi màu sắc trong rst.el

Tôi nghĩ rằng đây là phần mã trong rst.el đó là chịu trách nhiệm về màu nền:

(defgroup rst-faces-defaults nil 
    "Values used to generate default faces for section titles on all levels. 
Tweak these if you are content with how section title faces are built in 
general but you do not like the details." 
    :group 'rst-faces 
    :version "21.1") 

(defun rst-define-level-faces() 
    "Define the faces for the section title text faces from the values." 
    ;; All variables used here must be checked in `rst-set-level-default' 
    (let ((i 1)) 
    (while (<= i rst-level-face-max) 
     (let ((sym (intern (format "rst-level-%d-face" i))) 
     (doc (format "Face for showing section title text at level %d" i)) 
     (col (format ("gray10"))) 
    (make-empty-face sym) 
    (set-face-doc-string sym doc) 
    (set-face-background sym col) 
    (set sym sym) 
    (setq i (1+ i)))))) 

(defun rst-set-level-default (sym val) 
    "Set a customized value affecting section title text face and recompute the 
faces." 
    (custom-set-default sym val) 
    ;; Also defines the faces initially when all values are available 
    (and (boundp 'rst-level-face-max) 
     (boundp 'rst-level-face-format-light) 
     (boundp 'rst-level-face-base-color) 
     (boundp 'rst-level-face-step-light) 
     (boundp 'rst-level-face-base-light) 
     (rst-define-level-faces))) 

;; Faces for displaying items on several levels; these definitions define 
;; different shades of grey where the lightest one (i.e. least contrasting) is 
;; used for level 1 
(defcustom rst-level-face-max 6 
    "Maximum depth of levels for which section title faces are defined." 
    :group 'rst-faces-defaults 
    :type '(integer) 
    :set 'rst-set-level-default) 
(defcustom rst-level-face-base-color "grey" 
    "The base name of the color to be used for creating background colors in 
ection title faces for all levels." 
    :group 'rst-faces-defaults 
    :type '(string) 
    :set 'rst-set-level-default) 
(defcustom rst-level-face-base-light 
    (if (eq frame-background-mode 'dark) 
     85 
    15) 
    "The lightness factor for the base color. This value is used for level 1. The 
default depends on whether the value of `frame-background-mode' is `dark' or 
not." 
    :group 'rst-faces-defaults 
    :type '(integer) 
    :set 'rst-set-level-default) 
(defcustom rst-level-face-format-light "%2d" 
    "The format for the lightness factor appended to the base name of the color. 
This value is expanded by `format' with an integer." 
    :group 'rst-faces-defaults 
    :type '(string) 
    :set 'rst-set-level-default) 
(defcustom rst-level-face-step-light 
    (if (eq frame-background-mode 'dark) 
    -7 
    7) 
    "The step width to use for the next color. The formula 

    `rst-level-face-base-light' 
    + (`rst-level-face-max' - 1) * `rst-level-face-step-light' 

must result in a color level which appended to `rst-level-face-base-color' 
using `rst-level-face-format-light' results in a valid color such as `grey50'. 
This color is used as background for section title text on level 
`rst-level-face-max'." 
    :group 'rst-faces-defaults 
    :type '(integer) 
    :set 'rst-set-level-default) 

(defcustom rst-adornment-faces-alist 
    (let ((alist '((t . font-lock-keyword-face) 
     (nil . font-lock-keyword-face))) 
    (i 1)) 
    (while (<= i rst-level-face-max) 
     (nconc alist (list (cons i (intern (format "rst-level-%d-face" i))))) 
     (setq i (1+ i))) 
    alist) 
    "Provides faces for the various adornment types. Key is a number (for the 
section title text of that level), t (for transitions) or nil (for section 
title adornment). If you generally do not like how section title text faces are 
set up tweak here. If the general idea is ok for you but you do not like the 
details check the Rst Faces Defaults group." 
    :group 'rst-faces 
    :type '(alist 
     :key-type 
     (choice 
     (integer 
     :tag 
     "Section level (may not be bigger than `rst-level-face-max')") 
     (boolean :tag "transitions (on)/section title adornment (off)")) 
     :value-type (face)) 
    :set-after '(rst-level-face-max)) 

Tôi đã cố gắng thay đổi 'màu xám' để cái gì khác, nhưng nó không thay đổi một vật. Bất kỳ giúp đỡ?

Trả lời

5
M-x customize-group rst-faces 

Nếu bạn nhấn mạnh vào việc sử dụng mã, hãy sử dụng tùy chỉnh để đặt một số thứ, xem mã được tạo và sử dụng làm mô hình. Tuy nhiên, nó không còn được coi là hình thức tốt để làm điều đó với mã .emacs cũ.

+0

Đối với những người không biết về tùy biến dễ dàng trong các emacs: Sau đó nhấn enter vào biến bên phải 'Ẩn Rst Cấp 1'. Một danh sách các cài đặt sẽ xuất hiện và thay đổi nền, luôn bằng cách nhấn enter trong hộp bên phải. – user989762

4

Sử dụng

M-x customize-group rst-faces-default 

và thiết lập giá trị của Rst Level Face Base Color-black làm cho tiêu đề dễ đọc hơn. Hãy chắc chắn rằng bạn đặt giá trị cho tất cả các phiên trong tương lai.

6

Rất tiếc khi tìm hiểu câu hỏi cũ.

Trường cần thay đổi là Rst Level Face Base Light. Thay đổi giá trị thành ~ 51 từ giá trị mặc định là 85 làm cho văn bản có thể đọc được, nhưng vẫn duy trì làm nổi bật tiêu đề.

Sử dụng tên có hệ thống là grey%2d màu để tô bóng chiều sâu phần dựa trên nền.

+0

Cá nhân tôi thích màu xám đậm hơn để cải thiện độ tương phản, vì vậy tôi đặt 'Rst Level Face Light Light' thành' 25'. ** Lưu ý **: Tôi phải khởi động lại Emacs để thay đổi có hiệu lực, vì vậy tôi không chắc liệu điều này có cần thiết hay không hoặc nếu nó là một cái gì đó cụ thể của phiên bản của tôi. –