因为我想将对齐环境包含到项目化环境中,所以我需要去掉底部、左边和顶部边距。
我发现,我可以用这个删除顶部和底部的边距:
\makeatletter
\newenvironment{myalign*}{%
\setlength{\abovedisplayskip}{-\baselineskip}%
\setlength{\abovedisplayshortskip}{\abovedisplayskip}%
\start@align\@ne\st@rredtrue\m@ne
}%
{\endalign}
\makeatother
但这仍然留下了左边距。我尝试用 flalign 替换 \start@align 和 \endalign,但这会导致错误。
答案1
如果您想保留文本的正常左边距:
\documentclass{article}
\usepackage{mathtools}% compatibility test
\usepackage{showframe}% MWE only
\makeatletter
\newenvironment{myalign*}{\ifvmode\else\hfil\null\linebreak\fi
\hspace*{-\leftmargin}\minipage\textwidth
\setlength{\abovedisplayskip}{0pt}%
\setlength{\abovedisplayshortskip}{\abovedisplayskip}%
\start@align\@ne\st@rredtrue\m@ne}%
{\endalign\endminipage\linebreak}
\makeatother
\begin{document}
\begin{itemize}
\item blah blah blah \begin{myalign*}
x & = A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P\\
y & = x-A
\end{myalign*} blah blah blah.
\end{itemize}
\end{document}
答案2
leftmargin 来自 itemize 环境。因此,您必须自定义它以消除其 leftmargin:
首先,在你的序言中,使用
\usepackage{enumitem}
改变你itemize
的
\begin{itemize}[leftmargin=0pt]