![自定义文本和内联方程的对齐方式](https://linux22.com/image/425564/%E8%87%AA%E5%AE%9A%E4%B9%89%E6%96%87%E6%9C%AC%E5%92%8C%E5%86%85%E8%81%94%E6%96%B9%E7%A8%8B%E7%9A%84%E5%AF%B9%E9%BD%90%E6%96%B9%E5%BC%8F.png)
我希望创建一个与“align”类似但可以与文本和内联方程式而不是普通方程。
上图是所需的结果,我希望使用以下格式创建一个环境“newalign”。
\newenvironment{newalign}{ }{ }
\newcommand{\alignhere}[1]{ }
\newcommand{\notehere}{ }
\begin{newalign}
(some equation)
\alignhere{$\Rightarrow$} (some equation) \notehere (shortnote)\\
\alignhere{$\Rightarrow$} (some looooooooooooooooooooooooooooong equation) \notehere (shortnote)\\
\alignhere{$\Leftrightarrow$} (some equation) \notehere (shortnote)
\end{newalign}
\begin{newalign}
(some equation)\\
\alignhere{$=$} (some equation) \notehere (shortnote)\\
\alignhere{$=$} (some looooooooooooooooooooooooooooooooooooooooooong equation) \notehere (shortnote)\\
\alignhere{$\subseteq$} (some equation) \notehere (shortnote)
\end{newalign}
- 命令 \alignhere 使用诸如 \Rightarrow、\Leftrightarrow、=、\subseteq 等符号来指示对齐点。
- 当长文本(或公式)出现在 \alignhere 之后时,它会自动分成多行,缩进长度等于 \alignhere{} 中使用的符号的长度。
- 命令 \notehere 会创建一个长度恒定、向右对齐的空间,并在每行中添加一个简短的注释(通常是一个单词)。
- 此环境周围的每个边距或空格(当在文本中使用此环境时)都为零。
由于我对宏了解不多,每次尝试创建满足 1-4 的环境都失败了。有人能帮助我吗?
答案1
我猜你想要这样的东西,使用tabularx
一个中心列,允许换行到未指定的宽度。
注意我添加了 + 因为数学不允许字母之间换行。
\documentclass{article}
\usepackage{amsmath,tabularx}
\newenvironment{zz}
{\center\noindent\tabularx{\textwidth}{
@{}
>{\let\\\zznewline$}r<$
@{}
>{${}}c<{{}$}
@{}
>{${}}X<$
%@{}
l
@{}
}}
{\endtabularx\endcenter}
\newcommand\zznewline{\span\omit\span\omit\hfill\\}
\begin{document}
\begin{zz}
(some equation)
&\Rightarrow& (some equation) & (shortnote)\\
&\Rightarrow& (some lo+oo+oo+oo+oo+oo+oo+oo+oo+ooong + equation) & (shortnote)\\
&\Leftrightarrow& (some equation) & (shortnote)
\end{zz}
\begin{zz}
(some equation)\\
&=& (some equation) & (shortnote)\\
&=& (some lo+oo+oo+oo+oo+oo+oo+oo+oo+oo+oo+oo+oo+oo+oong + equation)& (shortnote)\\
&\subseteq& (some equation) & (shortnote)
\end{zz}
\end{document}