操作符名称宏前的空格

操作符名称宏前的空格

当我写出时$2 \operatorname{Re} z$,我得到了预期的输出,即:

在此处输入图片描述

$\Re$但是,当我在 MathJax 中将其定义为宏时

<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    ...
    TeX: {
      Macros: {
        Re: ["{\\operatorname{Re}{#1}}",1]
        }
      }
    });
</script>

并写入$2 \Re z$,渲染的输出是

在此处输入图片描述

间距 Re按预期呈现,但间距 Re不是(即2离 太近了Re)。

我如何获得之前的预期间距Re?(我不认为这是 MathJax 的问题;配置只是为了以防万一而包含在内。)

答案1

问题在于牙套。

尝试编译以下文档

\documentclass{article}
\usepackage{amsmath}
\begin{document}
$ 2 \operatorname{Re} z $

$ 2 {\operatorname{Re} z} $
\end{document}

后者是您在 MathJax 配置中包含的内容。通过声明,\operatorname{Re}您表明它应该像这样间隔\mathop(参见这篇文章有更多解释),但只有当它前面有另一个正确类型的对象时,才会遵守间距规则。通过添加额外的括号,您可以抑制这种额外的间距。

在 TeX 文档中,我通常也不会将新宏定义为\operatorname{Re},而是使用\DeclareMathOperator;我不知道在 MathJax 的配置中是否可以这样做。无论如何,请尝试删除配置文件中最外层的括号,看看是否能解决问题。

此外,\operatorname接受一个参数。我不确定是否需要定义您的\Re命令,以便它有效地接受一个额外的参数。我可能会写

Re: "\\operatorname{Re}"

作为 MathJax 中的宏定义。

相关内容