为什么我会收到“缺少分隔符(插入。)”的错误?

为什么我会收到“缺少分隔符(插入。)”的错误?

我有以下方程代码片段,直接从 mathtype 生成并放入方程环境中。

\begin{equation} 
 \underset{\alpha_j ,D}{\mathop{\min }}\text{ } \frac{1}{2}\,\left\| D\alpha_j -x_j \right\|_{2}^{2}+\lambda {{\left\| {\alpha}_j  \right\|}_{1}}\text{ subject to }\Sigma D\le c
 \label{eqmain}
\end{equation} 

然而,代码抛出了错误

Missing delimiter (. inserted).
<to be read again> 
                   \begingroup 
l.40 ...athop{\min }}\text{ } \frac{1}{2}\,\left\|

代码在 IEEEtran 和 svcproc.cls 中运行正常,但在其他类文件中则不行。它应该是这样的这就是它的样子。即使我放了所有库文件,代码还会有什么问题?

答案1

请始终提供重现错误的测试文件。

你得到

! Missing delimiter (. inserted).
<to be read again> 
                   \begingroup 
l.7 ...mathop{\min }}\text{ } \frac{1}{2}\,\left\|
                                                   D\alpha_j -x_j \right\|_{...

? 

来自以下文档

\documentclass{article}
\usepackage{amsmath}
\renewcommand\|{\begingroup x\endgroup}
\begin{document}

\begin{equation} 
 \underset{\alpha_j ,D}{\mathop{\min }}\text{ } \frac{1}{2}\,\left\| D\alpha_j -x_j \right\|_{2}^{2}+\lambda {{\left\| {\alpha}_j  \right\|}_{1}}\text{ subject to }\Sigma D\le c
 \label{eqmain}
\end{equation}
\end{document}

您可能没有\renewcommnd\|{...}在序言中真正地描述这一点,但您会有一些\|在某处重新定义的包。

如果你把

\typeout{\meaning\|}

每次之后\usepackage 你都会看到它的定义发生改变的地方。

答案2

我无法从您给出的代码中重现错误,而且我不知道“其他类文件”到底是什么,所以我无法真正帮助您。不过,我已经整理了源代码,这样可能更容易调试:

\begin{equation} 
    \min_{\alpha_j, D} \frac{1}{2} \left\| D \alpha_j - x_j \right\|_2^2
    + \lambda {\left\| \alpha_j  \right\|}_{1}
    \text{ subject to } \Sigma D\le c
    \label{eqmain}
\end{equation}

相关内容