我正在尝试熟悉该witharrows
软件包,但是我反复遇到环境产生的不必要的垂直间距 DispWithArrow
。
示例 1
\documentclass[varwidth]{standalone}
\usepackage{witharrows}
\usepackage{lipsum}
\begin{document}
\lipsum[1][1-10]
\begin{DispWithArrows}
x &= (a + b)^2 \Arrow{expand}\\
x &= a^2 + 2ab + b^2
\end{DispWithArrows}
\lipsum[1][1-10]
\end{document}
示例 1 生成的文档在第一段的行之间有额外的垂直间距。
示例 1 的输出
示例 2
\documentclass[varwidth]{standalone}
\usepackage{witharrows}
\usepackage{lipsum}
\begin{document}
\lipsum[1][1-5]\par
\begin{DispWithArrows}
x &= (a + b)^2 \Arrow{expand}\\
x &= a^2 + 2ab + b^2
\end{DispWithArrows}
\lipsum[1][1-4]
\end{document}
我的第一个想法是示例 1 中缺少了一个。不幸的是,在with\par
开始之前终止该行导致我遇到了一个新问题。DisplayWithArrows
\par
尽管编译后的文档中不再显示第一段中的额外垂直行间距,但是该段落和等式的第一行之间出现了新的不必要的垂直间距。
示例 2 的输出
解决方法
\documentclass[varwidth]{standalone}
\usepackage{witharrows}
\usepackage{lipsum}
\begin{document}
\lipsum[1][1-5]\par\vskip -\baselineskip
\begin{DispWithArrows}
x &= (a + b)^2 \Arrow{expand}\\
x &= a^2 + 2ab + b^2
\end{DispWithArrows}
\lipsum[1][1-4]
\end{document}
\vskip -\baselineskip
作为一种解决方法,我发现如果我在之后应用,额外的垂直间距就会被消除\par
:
解决方法的输出
目标
如果有人能重现我的示例的输出,并且是否有更好的方法来解决我的解决方法方面的问题,那就太好了。
答案1
这是 中的一个错误nicematrix
。我刚刚在 CTAN 上上传了一个新版本(2.4,2020-03-31),解决了这个问题。这个新版本应该会在未来几天内在 TeXLive 和 MikTeX 中推出。
\documentclass[varwidth]{standalone}
\usepackage{witharrows}
\usepackage{lipsum}
\begin{document}
\lipsum[1][1-10]
\begin{DispWithArrows}
x &= (a + b)^2 \Arrow{expand}\\
x &= a^2 + 2ab + b^2
\end{DispWithArrows}
\lipsum[1][1-10]
\end{document}
答案2
我不知道如何解决您的问题 - 也许这是一个错误。我建议一种解决方法,使用\ArrowBetweenLines(*)
来自的命令mathtools
和来自的类似箭头MnSymbol
:
\documentclass[border=4pt, varwidth]{standalone}
\usepackage{witharrows}
\usepackage{mathtools}
\usepackage{MnSymbol}
\usepackage{lipsum}
\begin{document}
\lipsum[1][1-10]
\begin{alignat}{2}
x &= (a + b)^2 & & \\[-1ex]
\ArrowBetweenLines*[\lcurvearrowdown\text{\small expand}]
x &= a^2 + 2ab + b^2 & &
\end{alignat}
\lipsum[1][1-10]
\end{document}