linegoal
是一个非常有用的包。有没有办法让它考虑方程编号?考虑以下 MWE:
\documentclass[leqno]{article}
\usepackage{amsmath,tabularx,linegoal}
\begin{document}
\noindent
(1)%
\begin{tabularx}\linegoal{|X}
blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
blah blah
\end{tabularx}
\begin{align}
\begin{tabularx}\linegoal{|X}
blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
blah blah
\end{tabularx}
\end{align}
\end{document}
这将产生以下内容:
如您所见,在计算“线的其余部分”的宽度时,linegoal
忽略了环境的方程编号。有什么办法可以解决这个问题吗?也就是说,让第二个示例看起来更像第一个示例?align
更新后补充:我想我不是在追求一个看起来确切地和第一个一样。也就是说,我认为align
编号包括实际文本(1)
,以及其右侧的一些空格。我希望能够考虑到所有这些linegoal
。
答案1
这是一个实现我所追求的目标的基本解决方案(在编号方程式环境内扩展tabularx
到右边距):
\documentclass[fleqn,leqno]{article}
\usepackage{amsmath,tabularx}
\newcommand{\ex}[1]{%
\begin{tabularx}{\dimexpr\linewidth-\mathindent\relax}{|@{}X@{}|}
#1
\end{tabularx}
}
\begin{document}
blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
blah
\begin{align}
\ex{%
blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
blah blah blah blah blah blah blah blah blah blah blah blah
}
\end{align}
\end{document}
输出如下:
我知道有几种为语言学开发的“示例”包具有类似的功能(例如,,expex
等等linguex
),但由于各种原因,我无法使用它们(主要是:对我来说,拥有一个与方程环境紧密结合的解决方案很重要,例如编号、间距等)。如果你也处于类似的境地,我希望这篇文章能对你有所帮助。