Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions TeXmacs/langs/encoding/tmuniversaltounicode.scm
Original file line number Diff line number Diff line change
Expand Up @@ -1174,9 +1174,10 @@
("<varphi>" "#03C6")
("<chi>" "#03C7")
("<psi>" "#03C8")
("<omega>" "#03C9")
("<omega>" "#03C9")
("<varomega>" "#1D714")

;; Variant letterforms
;; Variant letterforms
("<vartheta>" "#03D1")
("<phi>" "#03D5")
("<varpi>" "#03D6")
Expand Down
1 change: 1 addition & 0 deletions TeXmacs/packages/standard/std-math.ts
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,7 @@
<assign|stack|<macro|x|<tformat|<twith|table-valign|C>|<cwith|1|-1|1|-1|cell-halign|c>|<cwith|1|-1|1|1|cell-lsep|0spc>|<cwith|1|-1|-1|-1|cell-rsep|0spc>|<cwith|1|-1|1|-1|cell-bsep|0.5sep>|<cwith|1|-1|1|-1|cell-tsep|0.5sep>|<cwith|1|1|1|-1|cell-tsep|0sep>|<cwith|-1|-1|1|-1|cell-bsep|0sep>|<arg|x>>>>

<assign|to|<macro|\<rightarrow\>>>
<assign|varomega|<macro|\<varomega\>>>
<assign|varOmega|<macro|\<varOmega\>>>
</body>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
iota kappa lambda mu nu omicron
xi pi varpi rho
varrho sigma varsigma tau upsilon
phi varphi chi psi omega
phi varphi chi psi omega varomega

;; Binary operations
pm mp times div ast star circ bullet cdot
Expand Down
2 changes: 1 addition & 1 deletion TeXmacs/plugins/latex/progs/latex-kbd.scm
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
"lambda" "mu" "nu" "xi" "omicron" "pi" "rho"
"sigma" "tau" "upsilon" "phi" "chi"
"psi" "omega" "varepsilon" "vartheta"
"varpi" "varrho" "varsigma" "varphi"
"varpi" "varrho" "varsigma" "varphi" "varomega"
"leftharpoonup" "leftharpoondown"
"rightharpoonup" "rightharpoondown" "lefthook" "righthook"
"triangleright" "triangleleft" "star" "partial"
Expand Down
2 changes: 1 addition & 1 deletion TeXmacs/progs/convert/latex/latex-symbol-drd.scm
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
iota kappa lambda mu nu omicron
xi pi varpi rho
varrho sigma varsigma tau upsilon
phi varphi chi psi omega
phi varphi chi psi omega varomega

;; Binary operations
pm mp times div ast star circ bullet cdot
Expand Down
2 changes: 1 addition & 1 deletion TeXmacs/progs/language/std-symbols.scm
Original file line number Diff line number Diff line change
Expand Up @@ -503,7 +503,7 @@
"<iota>" "<kappa>" "<varkappa>" "<lambda>" "<mu>" "<nu>"
"<xi>" "<omicron>" "<pi>" "<varpi>" "<rho>" "<varrho>"
"<sigma>" "<varsigma>" "<tau>" "<upsilon>"
"<phi>" "<varphi>" "<psi>" "<chi>" "<omega>"
"<phi>" "<varphi>" "<psi>" "<chi>" "<omega>" "<varomega>"
"<backepsilon>" "<mho>"

"<Alpha>" "<Beta>" "<Gamma>" "<Delta>" "<Epsilon>" "<Zeta>"
Expand Down
1 change: 1 addition & 0 deletions TeXmacs/progs/text/text-kbd-utf8.scm
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@
("Chi" "<#3A7>")
("Psi" "<#3A8>")
("Omega" "<#3A9>")
("varomega" "<#1D714>")
("varOmega" "<#1D6FA>")
(": + 1 :" "<#1F44D>")
(": - 1 :" "<#1F44E>")
Expand Down
25 changes: 25 additions & 0 deletions TeXmacs/tests/0409.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; MODULE : 0409.scm
;; DESCRIPTION : Tests for \varomega LaTeX import
;; COPYRIGHT : (C) 2026 Mogan Team
;;
;; This software falls under the GNU general public license version 3 or later.
;; It comes WITHOUT ANY WARRANTY WHATSOEVER. For details, see the file LICENSE
;; in the root directory or <http://www.gnu.org/licenses/gpl-3.0.html>.
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(import (liii check))

(check-set-mode! 'report-failed)

(define (test-parse-latex-varomega)
(check (tree->stree (latex->texmacs (parse-latex "\\( \\varomega \\)")))
=> '(math "<varomega>"))
(check (tree->stree (latex->texmacs (parse-latex "\\varomega")))
=> "<varomega>"))

(tm-define (test_0409)
(test-parse-latex-varomega)
(check-report))
69 changes: 69 additions & 0 deletions devel/0409.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# [0409] 添加 \varomega 命令支持

## 1 相关文档

- [x_y.md](x_y.md) - 任务文档模板

## 2 任务相关的代码文件

- `TeXmacs/progs/language/std-symbols.scm`
- `TeXmacs/progs/convert/latex/latex-symbol-drd.scm`
- `TeXmacs/plugins/latex/progs/convert/latex/latex-symbol-drd.scm`
- `TeXmacs/plugins/latex/progs/latex-kbd.scm`
- `TeXmacs/packages/standard/std-math.ts`
- `TeXmacs/langs/encoding/tmuniversaltounicode.scm`
- `TeXmacs/progs/text/text-kbd-utf8.scm`
- `TeXmacs/tests/0409.scm`

## 3 如何测试

### 3.1 确定性测试(单元测试)

```bash
xmake run 0409
```

### 3.2 非确定性测试(文档验证)

1. 打开 Mogan STEM,进入数学模式
2. 按 `\` 进入命令模式,输入 `varomega` 后按 Enter,确认显示为斜体小写 omega(与直立体 `omega` 不同)
3. 导出 LaTeX 检查 `<varomega>` 是否导出为 `\varomega`
4. 导入 LaTeX 检查 `\varomega` 是否解析为 `<varomega>`

## 4 如何提交

提交前执行以下最少步骤:

```bash
xmake run 0409
```

## 5 What

在 Mogan STEM 中添加 `\varomega` 命令支持,对应 LaTeX 中斜体的小写 omega(ω)。

1. 在 `std-symbols.scm` 中注册 `<varomega>` 符号
2. 在 `latex-symbol-drd.scm`(两处)中注册 `varomega` 为 LaTeX 符号
3. 在 `tmuniversaltounicode.scm` 中添加 `<varomega>` 到 Unicode `#1D714` 的映射
4. 在 `text-kbd-utf8.scm` 中添加文本模式输入映射 `varomega` → `<varomega>`
5. 在 `latex-kbd.scm` 中添加命令模式输入映射 `varomega` → `<varomega>`
6. 在 `std-math.ts` 中添加宏定义 `varomega` → `\<varomega>`
7. 添加单元测试 `0409.scm`

## 6 Why

LaTeX 中 `\varomega` 是斜体小写 omega 的标准命令(与直立体 `\omega` 对应)。Mogan STEM 此前缺少对该命令的支持,导致:
- 从 LaTeX 导入包含 `\varomega` 的文档时无法正确解析
- 命令模式下输入 `\varomega` 无法插入符号

## 7 How

实现思路:

1. 在 `std-symbols.scm` 的小写希腊字母列表末尾添加 `"<varomega>"`,使其成为系统可识别的标准符号
2. 在两个 `latex-symbol-drd.scm` 文件的 `latex-symbol%` 组中添加 `varomega`,将其注册为受支持的 LaTeX 符号。这样 `latex_type` 函数会将其识别为 `"symbol"` 类型,导入时通过 `latex_symbol_to_tree` 自动处理
3. 在 `tmuniversaltounicode.scm` 中添加 `("<varomega>" "#1D714")` 映射,将 TeXmacs 内部符号映射到 Unicode 数学斜体小写 omega(U+1D714)
4. 在 `text-kbd-utf8.scm` 中添加文本模式输入映射 `("varomega" "<#1D714>")`
5. 在 `latex-kbd.scm` 的 `kbd-symbols` 列表中添加 `"varomega"`,使其进入 `kbd-command-table`,从而支持命令模式下按 `\varomega` 插入符号
6. 在 `std-math.ts` 中添加 `<assign|varomega|<macro|\<varomega\>>>`,使 `activate_hybrid` 能通过 `get_env_value` 识别该符号并正确渲染
7. 由于 `varomega` 是纯符号(不是宏),不需要在 `latex-define.scm` 中定义导出映射,也不需要修改 `tmtex.scm` 中的保护列表。导出时 `tmtex-large-decode` 会自动将其转换为 `\varomega`
Loading