Skip to content

[0631] 移除 tmkeywords 自定义宏并在 LaTeX 导出中改用标准原生 inline 宏#3561

Open
JackYansongLi wants to merge 2 commits into
mainfrom
jacky/200_27/fix_mho_macro_0631
Open

[0631] 移除 tmkeywords 自定义宏并在 LaTeX 导出中改用标准原生 inline 宏#3561
JackYansongLi wants to merge 2 commits into
mainfrom
jacky/200_27/fix_mho_macro_0631

Conversation

@JackYansongLi
Copy link
Copy Markdown
Contributor

[0631] 移除 mho 自定义宏并在 LaTeX 导出中改用标准 amssymb / latexsym 宏包支持

相关文档

  • 0605.md - 参考的 stack 到 substack LaTeX 导出任务文档

任务相关的代码文件

  • TeXmacs/progs/convert/latex/latex-texmacs-drd.scm
  • TeXmacs/plugins/latex/progs/convert/latex/latex-texmacs-drd.scm
  • TeXmacs/progs/convert/latex/latex-define.scm
  • TeXmacs/plugins/latex/progs/convert/latex/latex-define.scm
  • TeXmacs/tests/0631.scm
  • TeXmacs/tests/tex/0631_mho_macro_export.tex
  • TeXmacs/tests/tmu/0631.tmu

如何测试

确定性测试(单元与集成测试)

xmake run 0631

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

  1. 打开 Mogan STEM,在数学公式中输入倒转的 Omega 算子符号 \mho
  2. 导出为 LaTeX,确认导出的 .tex 文件的导言区中正确包含了 \usepackage{amssymb}\usepackage{latexsym},且不再产生自定义的旋转 \omega\renewcommand{\mho}{...} 宏。

如何提交

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

一个 PR 至少分为两个 commit:

  1. 第一个 commit 更新 devel/0631.md 任务文档
  2. 第二个 commit 为代码改动(包含测试与实现)
xmake run 0631

What

移除在 LaTeX 导出中,对倒转的 Omega 算子 \mho 符号通过手写 \rotatebox 旋转 \omega 所生成的自定义重新定义宏,直接使用 LaTeX 标准宏包 amssymblatexsym 中内置的原生 \mho 符号。

Why

在 TeXmacs 以往的 LaTeX 导出中,\mho 符号被作为自定义前言命令进行了手写转换定义:

\renewcommand{\mho}{\mbox{\rotatebox[origin=c]{180}{$\omega$}}}

这给导出的 LaTeX 代码带来了不必要的自定义宏污染,且非常不符合現代 LaTeX 用户的排版规范。其实在标准 LaTeX 环境中,\mho 符号原生包含在标准的 amssymblatexsym 宏包里(已在 latex-symbol-drd.scm 进行了内置符号映射注册)。通过移除自定义宏并直接依赖于包管理器,可以使导出的 LaTeX 代码极度纯净且完全原生。

How

  1. latex-texmacs-drd.scmlatex-texmacs-preamble-command% 中移除 mho,使其不再被判定为自定义前置命令。
  2. latex-define.scmlatex-texmacs-preamble 列表中删去对 mho 宏的手写转译定义。
  3. 当用户输入 \mho 时,由于其在 latex-symbol-drd.scm 中已归属 latex-latexsym-symbol%,导出时将自动并在导言区载入 \usepackage{latexsym}(或由于其他符号载入 amssymb),并直接原生输出 \mho

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant