\endgroup 使用 \makebox 和 gather 时出错

\endgroup 使用 \makebox 和 gather 时出错

当我尝试使用 \makebox 将长度超过文本宽度的几个方程式居中时,出现此错误。如果我使用$$ .. $$,似乎不会出现此问题。为什么?

抛出的代码!缺少 \endgroup 插入...:

\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{graphicx}

\begin{document}
\makebox[\textwidth][c]{
\begin{gather*}
\text{Some long equation.}
\end{gather*}
}
\end{document}

有效的代码:

\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{graphicx}

\begin{document}
\makebox[\textwidth][c]{
$$ \text{Some long equation.} $$
}
\end{document}

答案1

您不能在水平框中显示构造。如果您需要本地更改边距,则需要类似以下环境quote

在此处输入图片描述

\documentclass{article}

\newenvironment{outdent}
               {\list{}{\leftmargin-2cm
                \rightmargin\leftmargin}%
                \item\relax}
               {\endlist}

\usepackage{amsmath}

\begin{document}


\noindent X\dotfill X

\begin{gather}
aaaaa = bbbb\\
aaaa=b+c+c+c+c+c+c+c+c+c
\end{gather}

\noindent X\dotfill X

\begin{outdent}

\noindent X\dotfill X
\begin{gather}
aaaaa = bbbb\\
aaaa=b+c+c+c+c+c+c+c+c+c
\end{gather}
\end{outdent}


\end{document}

答案2

一个简单的解决方案\mathclap来自mathtools。示例(我使用了showframe选项来geometry帮助可视化居中):

\documentclass{article}
\usepackage[showframe]{geometry}
\usepackage{mathtools}

\begin{document}

\begin{gather*}
   \mathclap{E(h)-E(h+1) =(kz*r+kz)\sin \frac{Gz}{r+1}+(-r^2-2*r-1)\cos \frac{Gz}{r+1}+\Bigl(kz\sin \frac{Gz}{r}+ky*\sin \frac{Gy}{r}+kx\sin \frac{Gz}{r}+6\Bigr)*r}
\end{gather*}

\end{document} 

在此处输入图片描述

相关内容