Skip to content

[0636] 移除 fmtext 自定义宏并在 LaTeX 导出中改用标准原生 inline 宏#3567

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

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

Conversation

@JackYansongLi
Copy link
Copy Markdown
Contributor

[0636] 移除 fmtext 自定义宏并在 LaTeX 导出中改用标准原生 inline 宏

相关文档

  • 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/progs/convert/latex/tmtex-elsevier.scm
  • TeXmacs/plugins/latex/progs/convert/latex/tmtex-elsevier.scm
  • TeXmacs/tests/0636.scm
  • TeXmacs/tests/tex/0636_fmtext_macro_export.tex
  • TeXmacs/tests/tmu/0636.tmu

如何测试

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

xmake run 0636

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

  1. 打开 Mogan STEM,在文档中插入 Elsevier 作者附属杂项标志(author-misc)。
  2. 导出为 LaTeX,确认导出的 .tex 文件的导言区中不再产生自定义的 \newcommand{\fmtext}{...} 宏,而是直接原生输出为标准的 \fntext 及其内部加粗标识 Misc:

如何提交

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

一个 PR 至少分为两个 commit:

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

What

移除在 LaTeX 导出中,对 Elsevier 附属杂项标注(fmtext)所生成的自定义宏,直接在正文中原生输出标准的 \fntext 标记并在内容中添加加粗的 Misc: 前缀。

Why

在 TeXmacs 以往的 LaTeX 导出中,为了转译 author-misc,定义了一个自定义前置命令:

\newcommand{\fmtext}[2][]{\fntext[#1]{Misc: #2}}

这不仅造成了导言区污染,也使得非 elsarticle 模板在使用类似转换时产生代码耦合。其实直接在翻译时将 \fmtext[label]{text} 转换为原生的 \fntext[label]{\textbf{Misc:} text},即可完全免除在 LaTeX 导言区定义该宏。

How

  1. 修改 tmtex-elsevier.scm 中的 tmtex-author-misc-label,使其直接输出原生的 fntext,内容部分拼接 (translate-from-to "Misc:" ...) 并加粗,不通过 (fmtext ...)
  2. latex-texmacs-drd.scmlatex-texmacs-preamble-command% 中移除 fmtext
  3. latex-define.scmlatex-texmacs-preamble 列表中删去对 fmtext 宏的自定义转译定义。

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