拉伸 \xrightarrow 以填充可用空间

拉伸 \xrightarrow 以填充可用空间

我正在尝试排版一个方程组的解,如下所示: 方程组的解

使用alignat我能够将箭头的左端与矩阵列的左边缘对齐。所有箭头都是 类型\xrightarrow。我希望所有箭头的长度都相同。有没有简单的方法可以将它们拉伸到其列的宽度?

以下是一些示例代码:

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\begin{document}

\begin{alignat*}{2}
\begin{pmatrix}
1 & 0 & 1 & 1 & 0\\
0 & 1 & 1 & -1 & 0\\
-1 & 0 & 4 & 4 & 0\\
0 & -1 & 4 &-4 & 1
\end{pmatrix}
&\xrightarrow{R_3+R_1\mapsto R_3}
&&\begin{pmatrix}
1 & 0 & 1 & 1 & 0\\
0 & 1 & 1 & -1 & 0\\
0 & 0 & 5 & 5 & 0\\
0 & -1 & 4 &-4 & 1
\end{pmatrix}\\
%
&\xrightarrow{R_4+R_2\mapsto R_4}
&&\begin{pmatrix}
1 & 0 & 1 & 1 & 0\\
0 & 1 & 1 & -1 & 0\\
0 & 0 & 5 & 5 & 0\\
0 & 0 & 5 &-5 & 1
\end{pmatrix}\\
%
&\xrightarrow{R_3/5\mapsto R_3}
&&\begin{pmatrix}
1 & 0 & 1 & 1 & 0\\
0 & 1 & 1 & -1 & 0\\
0 & 0 & 1 & 1 & 0\\
0 & 0 & 5 &-5 & 1
\end{pmatrix}
\end{alignat*}

\end{document}

答案1

我建议使用命令来定义xparse\eqxrightarrow其中主要参数嵌套在包\eqmakebox中的命令中eqparbox。为了简化输入,我还使用了可选参数\xrightarrow,以便您可以将两个不同的基本操作分组(只要它们不会相互交互)。最后一个(可选)参数是命令的标签\eqmakebox,默认为EO

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{mathtools, old-arrows}
\usepackage{eqparbox} %
\usepackage{xparse}
\NewDocumentCommand{\eqxrightarrow}{o m O{EO}}{\IfNoValueTF{#1}{\xrightarrow{\eqmakebox[#3]{$\scriptstyle #2$}}}%
{\xrightarrow[#1]{\eqmakebox[#3]{$\scriptstyle #2$}}}}

\begin{document}%O{EO}

\begin{alignat*}{2}
\begin{pmatrix}
\begin{array}{@{}rrrr|r@{}}
1 & 0 & 1 & 1 & 0\\
0 & 1 & 1 & -1 & 0\\
-1 & 0 & 4 & 4 & 0\\
0 & -1 & 4 &-4 & 1
\end{array}
\end{pmatrix}
&\eqxrightarrow[R_4+R_2\mapsto R_4]{R_3+R_1\mapsto R_3}
&&\begin{pmatrix}
\begin{array}{@{}rrrr|r@{}}
1 & 0 & 1 & 1 & 0\\
0 & 1 & 1 & -1 & 0\\
0 & 0 & 5 & 5 & 0\\
0 & 0 & 5 &-5 & 1
\end{array}
\end{pmatrix}\\
&\eqxrightarrow{R_3/5\mapsto R_3}
&&\begin{pmatrix}
\begin{array}{@{}rrrr|r@{}}
1 & 0 & 1 & 1 & 0\\
0 & 1 & 1 & -1 & 0\\
0 & 0 & 1 & 1 & 0\\
0 & 0 & 5 &-5 & 1
\end{array}
\end{pmatrix}
\end{alignat*}

\end{document}

在此处输入图片描述

相关内容