我检查了 TeX 中缀运算符的工作,并有一些问题。例如,它将是\over
。语法是{<subformula1> \over <subformula2>}
。没问题,但我注意到在这种情况下,\left
和\right
命令被视为开始/结束组。所以{1 \left. 1 \over 2 \right. 2}
给出。
这种行为与 LaTeX、Mathjax 和 KaTeX 类似。其他命令可以拆分组吗?
Big(g)(l,r) 命令不会破坏组,但让我们检查一下命令\middle
。看看这个表达式将如何呈现:{1 \left. 1 \middle| 1 \over 2 \middle| 2 \right. 2}
,从经典 LaTeX 我们得到:,Mathjax 说“oops”(数学处理错误),从 KaTeX 我们得到:。
因此,该\middle
命令会破坏 LaTeX 中的组,因此我认为通常只有\left
、\right
或\middle
命令被视为组开始/结束(当然也包括{}
)。我说得对吗?
答案1
您不应该\over
在 LaTeX 中使用。
无论如何,您说的是正确的\left
,除了选择合适的分隔符大小外,还可以形成组\middle
。\right
这有点复杂,但也不是那么复杂。\over
我不会使用,而是使用将在每个部分重新定义的命令,以查看重新定义是本地的,并且在组结束时被遗忘,见证上面的陈述。
\documentclass{article}
\newcommand{\test}{x}
\newcommand{\redeftest}[1]{\renewcommand{\test}{#1}}
\begin{document}
\[
\test
\left(\frac{X}{Y} % for large size
\test \redeftest{a} \test
\middle| \test \redeftest{b} \test
\middle| \test \redeftest{c} \test
\right)
\test
\]
\end{document}
以 开头的组\left
只能以\right
或结尾\middle
。以 开头的组\middle
只能以\right
或结尾\middle
。结尾\right
是必需的。TeX 扫描整个\left
–结构后,它还将为 和之后出现的所有命令\right
选择适当的分隔符大小\left
。\right
\middle
{
组也可以用和(当仅涉及分组时}
可以用\bgroup
和作为别名)以及和来分隔。\egroup
\begingroup
\endgroup
“混合”此类群体是违法的。
{...}
在数学模式下,和有很大区别\begingroup...\endgroup
。前者构造会构建子公式,而后者则不会。此外\left
,\middle
和\right
会构建子公式。子公式被视为单个对象,并且其中的空间会被冻结(这与内联公式有关)。
您可以使用以下命令查询您所在的群组类型\currentgrouptype
:
\documentclass{article}
\newcommand{\test}{x}
\newcommand{\redeftest}[1]{\renewcommand{\test}{#1}}
\newcommand{\gtype}{(\the\currentgrouptype)}
\begin{document}
\[
\test
\gtype
\left(\frac{X}{Y} % for large size
\test \redeftest{a} \test \gtype
\middle| \test \redeftest{b} \test \gtype
\middle| \test \redeftest{c} \test \gtype
\right)
\test \gtype {\gtype} \begingroup\gtype\endgroup
\]
\end{document}
- 15 表示当前组是内联或显示数学模式(此处由 `[] 启动)
\left
16 表示当前组由或发起\middle
- 9 表示“数学组”(即中的子公式
{...}
) \begingroup
14 表示由和界定的“半单群”\endgroup
。