M-x customize-create-themeとタイプすることにより、カスタマイズバッファーと似たインターフェースを使用して、カスタムテーマを定義できます。これは*Custom Theme*という名前のバッファーに切り替えます。これは、一般的なEmacsフェイスをそのテーマに挿入するかも尋ねます(カスタムテーマは、フェイスをカスタマイズするのに使用される場合があるので便利です)。これにnoと答えると、そのテーマには最初は何もセッティングが含まれません。
*Custom Theme*バッファーの上部には、テーマ名と説明を入力できる、編集可能フィールドがあります。‘user’を除く任意の名前を指定できます。説明は、テーマにたいしてM-x describe-themeを呼び出したときに表示される文です。最初の行は1センテンスの概要であるべきです。M-x customize-themesにより作成されたバッファーでは、このセンテンスがテーマ名のとなりに表示されます。
テーマに新しいセッティングを追加するには、‘[Insert Additional Face]’ボタンか、‘[Insert Additional Variable]’ボタンを使用します。これらのボタンはミニバッファーを使用して、補完つきでフェイス名または変数名を読み取り、そのフェイスまたは変数にたいするカスタマイズエントリーを挿入します。通常のカスタマイズバッファーと同じ方法で、変数の値またはフェイスの属性を編集できます。テーマからフェイスまたは変数を削除するには、名前の横のチェックボックスのチェックを外してください。
カスタムテーマのフェイスや変数を指定した後は、C-x C-s
(custom-theme-write
)とタイプするか、そのバッファーの‘[Save
Theme]’ボタンを使用します。これはcustom-theme-directory
のディレクトリーに、name-theme.el(nameはテーマ名)という名前で、テーマファイルを保存します。
*Custom Theme*バッファーから、‘[Visit Theme]’ボタンをアクティブにしてテーマ名を指定することにより、既存のカスタムテーマの閲覧と編集ができます。‘[Merge Theme]’ボタンを使用して、他のテーマのセッティングをバッファーに追加することもできます。‘[Merge Theme]’ボタンを使用して、‘user’という名前の特別なテーマ名を指定することにより、非テーマセッティングをカスタムテーマにインポートできます。
テーマファイルは単なるEmacs Lispソースファイルで、カスタムテーマのロードはLispファイルをロードすることにより機能します。したがって*Custom Theme*バッファーを使用するかわりに、テーマファイルを直接編集することもできます。詳細は、Custom Themes in The Emacs Lisp Reference Manualを参照してください。