学生用に\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
+14 -2
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-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,14 +373,15 @@ 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 時に削除します。
@@ -383,6 +394,7 @@ YaTeX バッファ内で、査読返信や改訂原稿用の独自 LaTeX マク
| =\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 系の色で表示 |
+26 -6
View File
@@ -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,7 +380,16 @@ 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