From 180c084bbc4d795ce4c22982231574f8192e3118 Mon Sep 17 00:00:00 2001 From: Takahiro OHKUBO Date: Sat, 11 Jul 2026 08:21:12 +0900 Subject: [PATCH] =?UTF-8?q?=E5=AD=A6=E7=94=9F=E7=94=A8=E3=81=AB\XX{}?= =?UTF-8?q?=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Readme.org | 36 ++++++++++++++++++++++++------------ my-yatex-review-highlight.el | 32 ++++++++++++++++++++++++++------ 2 files changed, 50 insertions(+), 18 deletions(-) diff --git a/Readme.org b/Readme.org index dcf5f1c..a6a742a 100644 --- a/Readme.org +++ b/Readme.org @@ -158,6 +158,16 @@ my-yatex-review-highlight.el | =C-c r g= | =lab-ai-image= | | =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 @@ -363,30 +373,32 @@ LaTeX 原稿、コード、ファイル名、コマンドラインに混入し ** my-yatex-review-highlight.el 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}= までを色分け表示します。 - 第1引数、つまりラベル部分は背景付き太字で表示します。 - 第2引数、つまり本文部分は対応色の文字色で表示します。 -- =\TO{body}= は赤太字で表示します。 +- =\TO{body}= は赤太字で表示します(大窪コメント)。 +- =\XX{body}= は赤ピンク太字で表示します(学生コメント)。 - =\CA{A1}= から =\CD{...}= までは、次の =\CO=, =\CA=, =\CB=, =\CC=, =\CD=, =\end{enumerate}=, =\end{document}= までを本文として色付けします。 - 編集後に idle timer で自動再ハイライトします。 - 古い font-lock 方式の review macro highlight が残っている場合、enable 時に削除します。 *** 対応マクロ -| マクロ | 用途 | 表示 | -| =\RA{label}{body}= | Reviewer A など | label は赤系背景付き、body は赤系文字 | -| =\RB{label}{body}= | Reviewer B など | label は青系背景付き、body は青系文字 | -| =\RC{label}{body}= | Reviewer C など | label は緑系背景付き、body は緑系文字 | -| =\RD{label}{body}= | Reviewer D など | label は紫系背景付き、body は紫系文字 | -| =\TO{body}= | TODO/対応事項 | 赤太字 | -| =\CA{label}= | 回答案 A | label と次項目までの本文を RA 系の色で表示 | -| =\CB{label}= | 回答案 B | label と次項目までの本文を RB 系の色で表示 | -| =\CC{label}= | 回答案 C | label と次項目までの本文を RC 系の色で表示 | -| =\CD{label}= | 回答案 D | label と次項目までの本文を RD 系の色で表示 | +| マクロ | 用途 | 表示 | +| =\RA{label}{body}= | Reviewer A など | label は赤系背景付き、body は赤系文字 | +| =\RB{label}{body}= | Reviewer B など | label は青系背景付き、body は青系文字 | +| =\RC{label}{body}= | Reviewer C など | label は緑系背景付き、body は緑系文字 | +| =\RD{label}{body}= | Reviewer D など | label は紫系背景付き、body は紫系文字 | +| =\TO{body}= | TODO/対応事項 | 赤太字 | +| =\XX{body}= | TODO/対応事項 | 赤ピンク太字 | +| =\CA{label}= | 回答案 A | label と次項目までの本文を RA 系の色で表示 | +| =\CB{label}= | 回答案 B | label と次項目までの本文を RB 系の色で表示 | +| =\CC{label}= | 回答案 C | label と次項目までの本文を RC 系の色で表示 | +| =\CD{label}= | 回答案 D | label と次項目までの本文を RD 系の色で表示 | *** 主要設定 diff --git a/my-yatex-review-highlight.el b/my-yatex-review-highlight.el index 34c2ae8..51cdb19 100644 --- a/my-yatex-review-highlight.el +++ b/my-yatex-review-highlight.el @@ -11,6 +11,8 @@ ;; ;; \TO: ;; 第1引数: 赤太字、背景は変更しない +;; \XX: +;; 学生が修正した部分。第1引数を黄色太字で表示する。 ;; ;; \CA-\CD: ;; \CA は \RA と同じ色 @@ -35,6 +37,7 @@ (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-XX-body-face '((t ())) "Face for argument of \\XX.") (defvar my-yatex-review-label-background "gray30" @@ -97,6 +100,13 @@ 'my-latex-TO-body-face nil :foreground "tomato" :background 'unspecified + :weight 'bold) + + ;; XX: student revision + (set-face-attribute + 'my-latex-XX-body-face nil + :foreground "DeepPink" + :background 'unspecified :weight 'bold)) @@ -151,7 +161,9 @@ (1 'my-latex-RD-label-face t) (2 'my-latex-RD-body-face t)) ("\\\\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 のたびには呼ばない (when font-lock-mode @@ -284,7 +296,7 @@ Return number of highlighted answer macros." (goto-char (point-min)) ;; 行頭またはインデント後の \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)) (faces (my-yatex-review--faces-for-citem-macro macro)) (label-face (nth 0 faces)) @@ -321,7 +333,7 @@ Return number of highlighted answer macros." ;; ============================================================ (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) ;; refresh 時は font-lock 削除や face 再設定をしない。 @@ -339,7 +351,7 @@ Return number of highlighted answer macros." ;; ------------------------------------------------------------ (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))) (cond @@ -361,7 +373,6 @@ Return number of highlighted answer macros." ;; second argument (my-yatex-review--make-overlay (nth 0 arg2) (nth 1 arg2) body-face 1000))))))) - ;; \TO{body} ((string= macro "TO") (let ((arg1 (my-yatex-review--read-brace-arg))) @@ -369,8 +380,17 @@ Return number of highlighted answer macros." (setq count (1+ count)) (my-yatex-review--make-overlay (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 ;; ------------------------------------------------------------