显示模式中内联数学运算导致“$$ 后出现意外 $”和“在 $ 处发现未关闭的 $$”错误

显示模式中内联数学运算导致“$$ 后出现意外 $”和“在 $ 处发现未关闭的 $$”错误

我正在尝试为不同类型的同态定义一个新命令。该命令是:

\newcommand{\Hom}[2][]{%
    \operatorname{Hom}_{\textnormal{#1}}\left({#2}\right)%
    }

在没有给出可选参数的情况下,此命令在内联和显示模式下的输出是正确的。例如,这是$\Hom{A,B}$和的输出$$\Hom{A,B}$$

洪(A,B)

然后可以有一个额外的下标来指定我指的是哪种类型的同态。例如,$\Hom[gr]{G,H}$$$\Hom[gr]{G,H}$$两者都有“正确”的输出(我仍然对运算符和第一个括号之间的间距有疑问

Hom_gr(G,H)

最后,如果我必须在下标中包含一些内联数学运算,LaTex 会在显示模式下给出相反的错误标记。例如,如果我尝试编译$\Hom[$k$-alg]{A,B}$,则看不到任何错误,但在显示模式下执行相同的命令 ,$$\Hom[$k$-alg]{A,B}$$则会出现错误和无错误。让我解释一下:我收到输出 (有些人可能会争论我为什么在这里徘徊),但同时出现错误警报,如下图所示,但“日志和输出文件”中没有错误消息。

输出

Hom_k-alg(A,B)

错误:

“$$ 之后出现意外的 $”

“在 $ 处发现未关闭的 $$”

行下的错误

这个问题有解决办法吗?还是我只能接受错误标签,忽略它?如果我能做些什么,我愿意尝试每一个建议。

注1:我知道关于使用$$...$$和的争论\[...\],但我愿意在一些已经使用$...$和编写的 LaTeX 文档中使用这个新命令$$...$$,并且我想保持一致性。

笔记2:抱歉,图片尺寸有点问题,我是新手,不太了解所有设置。

答案1

这些不是错误,只是来自 Overleaf 的错误建议,有时无法遵循嵌套的数学公式。

如果您明确地将其写为可选参数,它可能不会犹豫[\textnormal{$k$-alg}],但无法猜测参数已传递给\textnormal

因此,请忽略这些消息。

关于您的代码还有其他重要事项:

  1. \left\right应被省略;
  2. 下标缺失时会产生不需要的空格;
  3. $$应该绝不在 LaTeX 环境中使用document
\documentclass[twocolumn]{article}
\usepackage{amsmath}

\NewDocumentCommand{\Hom}{o}{%
  \operatorname{Hom}\IfValueT{#1}{_{\textnormal{#1}}}%
}

\newcommand{\lorenzoHom}[2][]{%
    \operatorname{Hom}_{\textnormal{#1}}\left({#2}\right)%
    }

\begin{document}

\subsubsection*{My definition}

\begin{gather*}
\Hom(A,B) \\
\Hom[$k$-alg](A,B)
\end{gather*}

\subsubsection*{Your definition}

\begin{gather*}
\lorenzoHom{A,B} \\
\lorenzoHom[$k$-alg]{A,B}
\end{gather*}

\end{document}

{}我认为仅仅A,B为了获得圆括号而使用大括号没有任何好处:(A,B)直接输入更自然。

在此处输入图片描述

你能看到不需要的空格吗?

相关内容