学生用に\XX{}を追加

This commit is contained in:
2026-07-11 08:21:12 +09:00
parent 90128ba06f
commit 180c084bbc
2 changed files with 50 additions and 18 deletions
+24 -12
View File
@@ -158,6 +158,16 @@ my-yatex-review-highlight.el
| =C-c r g= | =lab-ai-image= | | =C-c r g= | =lab-ai-image= |
| =C-c r G= | =lab-ai-image-edit= | | =C-c r G= | =lab-ai-image-edit= |
*** 注意点
- =lab-ai--dwim= がファイル内で2回定義されています。後半の定義が有効になります。動作上は問題ありませんが、整理するなら前半の定義は削除できます。
- 起動画面には =C-c C-m Switch model= と表示されますが、現在の =lab-ai-chat-mode-map= には =C-c C-m= が割り当てられていません。必要なら以下を追加します。
#+begin_src emacs-lisp
(define-key lab-ai-chat-mode-map (kbd "C-c C-m") #'lab-ai-switch-model)
#+end_src
- ファイル末尾には =(provide 'my-labai)= が入っているので、=(require 'my-labai)= で読み込めます。
** my-org-pukiwiki.el ** my-org-pukiwiki.el
@@ -363,30 +373,32 @@ LaTeX 原稿、コード、ファイル名、コマンドラインに混入し
** my-yatex-review-highlight.el ** my-yatex-review-highlight.el
YaTeX バッファ内で、査読返信や改訂原稿用の独自 LaTeX マクロを色分け表示するツールです。 YaTeX バッファ内で、査読返信や改訂原稿用の独自 LaTeX マクロを色分け表示するツールです。
=\RA=, =\RB=, =\RC=, =\RD=, =\TO=, =\CA=, =\CB=, =\CC=, =\CD= を overlay でハイライトします。 =\RA=, =\RB=, =\RC=, =\RD=, =\TO=, =\XX=, =\CA=, =\CB=, =\CC=, =\CD= を overlay でハイライトします。
*** 主な機能 *** 主な機能
- =\RA{label}{body}= から =\RD{label}{body}= までを色分け表示します。 - =\RA{label}{body}= から =\RD{label}{body}= までを色分け表示します。
- 第1引数、つまりラベル部分は背景付き太字で表示します。 - 第1引数、つまりラベル部分は背景付き太字で表示します。
- 第2引数、つまり本文部分は対応色の文字色で表示します。 - 第2引数、つまり本文部分は対応色の文字色で表示します。
- =\TO{body}= は赤太字で表示します。 - =\TO{body}= は赤太字で表示します(大窪コメント)
- =\XX{body}= は赤ピンク太字で表示します(学生コメント)。
- =\CA{A1}= から =\CD{...}= までは、次の =\CO=, =\CA=, =\CB=, =\CC=, =\CD=, =\end{enumerate}=, =\end{document}= までを本文として色付けします。 - =\CA{A1}= から =\CD{...}= までは、次の =\CO=, =\CA=, =\CB=, =\CC=, =\CD=, =\end{enumerate}=, =\end{document}= までを本文として色付けします。
- 編集後に idle timer で自動再ハイライトします。 - 編集後に idle timer で自動再ハイライトします。
- 古い font-lock 方式の review macro highlight が残っている場合、enable 時に削除します。 - 古い font-lock 方式の review macro highlight が残っている場合、enable 時に削除します。
*** 対応マクロ *** 対応マクロ
| マクロ | 用途 | 表示 | | マクロ | 用途 | 表示 |
| =\RA{label}{body}= | Reviewer A など | label は赤系背景付き、body は赤系文字 | | =\RA{label}{body}= | Reviewer A など | label は赤系背景付き、body は赤系文字 |
| =\RB{label}{body}= | Reviewer B など | label は青系背景付き、body は青系文字 | | =\RB{label}{body}= | Reviewer B など | label は青系背景付き、body は青系文字 |
| =\RC{label}{body}= | Reviewer C など | label は緑系背景付き、body は緑系文字 | | =\RC{label}{body}= | Reviewer C など | label は緑系背景付き、body は緑系文字 |
| =\RD{label}{body}= | Reviewer D など | label は紫系背景付き、body は紫系文字 | | =\RD{label}{body}= | Reviewer D など | label は紫系背景付き、body は紫系文字 |
| =\TO{body}= | TODO/対応事項 | 赤太字 | | =\TO{body}= | TODO/対応事項 | 赤太字 |
| =\CA{label}= | 回答案 A | label と次項目までの本文を RA 系の色で表示 | | =\XX{body}= | TODO/対応事項 | 赤ピンク太字 |
| =\CB{label}= | 回答案 B | label と次項目までの本文を RB 系の色で表示 | | =\CA{label}= | 回答案 A | label と次項目までの本文を RA 系の色で表示 |
| =\CC{label}= | 回答案 C | label と次項目までの本文を RC 系の色で表示 | | =\CB{label}= | 回答案 B | label と次項目までの本文を RB 系の色で表示 |
| =\CD{label}= | 回答案 D | label と次項目までの本文を RD 系の色で表示 | | =\CC{label}= | 回答案 C | label と次項目までの本文を RC 系の色で表示 |
| =\CD{label}= | 回答案 D | label と次項目までの本文を RD 系の色で表示 |
*** 主要設定 *** 主要設定
+26 -6
View File
@@ -11,6 +11,8 @@
;; ;;
;; \TO: ;; \TO:
;; 第1引数: 赤太字、背景は変更しない ;; 第1引数: 赤太字、背景は変更しない
;; \XX:
;; 学生が修正した部分。第1引数を黄色太字で表示する。
;; ;;
;; \CA-\CD: ;; \CA-\CD:
;; \CA は \RA と同じ色 ;; \CA は \RA と同じ色
@@ -35,6 +37,7 @@
(defface my-latex-RD-body-face '((t ())) "Face for second argument of \\RD.") (defface my-latex-RD-body-face '((t ())) "Face for second argument of \\RD.")
(defface my-latex-TO-body-face '((t ())) "Face for argument of \\TO.") (defface my-latex-TO-body-face '((t ())) "Face for argument of \\TO.")
(defface my-latex-XX-body-face '((t ())) "Face for argument of \\XX.")
(defvar my-yatex-review-label-background "gray30" (defvar my-yatex-review-label-background "gray30"
@@ -97,6 +100,13 @@
'my-latex-TO-body-face nil 'my-latex-TO-body-face nil
:foreground "tomato" :foreground "tomato"
:background 'unspecified :background 'unspecified
:weight 'bold)
;; XX: student revision
(set-face-attribute
'my-latex-XX-body-face nil
:foreground "DeepPink"
:background 'unspecified
:weight 'bold)) :weight 'bold))
@@ -151,7 +161,9 @@
(1 'my-latex-RD-label-face t) (1 'my-latex-RD-label-face t)
(2 'my-latex-RD-body-face t)) (2 'my-latex-RD-body-face t))
("\\\\TO{\\([^{}\n]*\\)}" ("\\\\TO{\\([^{}\n]*\\)}"
(1 'my-latex-TO-body-face t)))) (1 'my-latex-TO-body-face t))
("\\\\XX{\\([^{}\n]*\\)}"
(1 'my-latex-XX-body-face t))))
;; 重いので refresh のたびには呼ばない ;; 重いので refresh のたびには呼ばない
(when font-lock-mode (when font-lock-mode
@@ -284,7 +296,7 @@ Return number of highlighted answer macros."
(goto-char (point-min)) (goto-char (point-min))
;; 行頭またはインデント後の \CA, \CB, \CC, \CD を対象にする ;; 行頭またはインデント後の \CA, \CB, \CC, \CD を対象にする
(while (re-search-forward "^[ \t]*\\\\\\(C[ABCD]\\)\\_>" nil t) (while (re-search-forward "\\\\\\(R[ABCD]\\|TO\\|XX\\)\\_>" nil t)
(let* ((macro (match-string-no-properties 1)) (let* ((macro (match-string-no-properties 1))
(faces (my-yatex-review--faces-for-citem-macro macro)) (faces (my-yatex-review--faces-for-citem-macro macro))
(label-face (nth 0 faces)) (label-face (nth 0 faces))
@@ -321,7 +333,7 @@ Return number of highlighted answer macros."
;; ============================================================ ;; ============================================================
(defun my-yatex-review-highlight-refresh () (defun my-yatex-review-highlight-refresh ()
"Refresh highlighting for \\RA, \\RB, \\RC, \\RD, \\TO, and \\CA-\\CD." "Refresh highlighting for \\RA-\\RD, \\TO, \\XX, and \\CA-\\CD."
(interactive) (interactive)
;; refresh 時は font-lock 削除や face 再設定をしない。 ;; refresh 時は font-lock 削除や face 再設定をしない。
@@ -339,7 +351,7 @@ Return number of highlighted answer macros."
;; ------------------------------------------------------------ ;; ------------------------------------------------------------
(goto-char (point-min)) (goto-char (point-min))
(while (re-search-forward "\\\\\\(R[ABCD]\\|TO\\)\\_>" nil t) (while (re-search-forward "\\\\\\(R[ABCD]\\|TO\\|XX\\)\\_>" nil t)
(let ((macro (match-string-no-properties 1))) (let ((macro (match-string-no-properties 1)))
(cond (cond
@@ -361,7 +373,6 @@ Return number of highlighted answer macros."
;; second argument ;; second argument
(my-yatex-review--make-overlay (my-yatex-review--make-overlay
(nth 0 arg2) (nth 1 arg2) body-face 1000))))))) (nth 0 arg2) (nth 1 arg2) body-face 1000)))))))
;; \TO{body} ;; \TO{body}
((string= macro "TO") ((string= macro "TO")
(let ((arg1 (my-yatex-review--read-brace-arg))) (let ((arg1 (my-yatex-review--read-brace-arg)))
@@ -369,7 +380,16 @@ Return number of highlighted answer macros."
(setq count (1+ count)) (setq count (1+ count))
(my-yatex-review--make-overlay (my-yatex-review--make-overlay
(nth 0 arg1) (nth 1 arg1) (nth 0 arg1) (nth 1 arg1)
'my-latex-TO-body-face 1000))))))) 'my-latex-TO-body-face 1000))))
;; \XX{body}: student revision
((string= macro "XX")
(let ((arg1 (my-yatex-review--read-brace-arg)))
(when arg1
(setq count (1+ count))
(my-yatex-review--make-overlay
(nth 0 arg1) (nth 1 arg1)
'my-latex-XX-body-face 1000)))))))
;; ------------------------------------------------------------ ;; ------------------------------------------------------------
;; \CA, \CB, \CC, \CD ;; \CA, \CB, \CC, \CD