我不得不问一个新问题,因为我不知道如何发布代码在我打开的帖子里。
我尝试操作 Steven B. Segletes 在 Sharelatex 中发布的代码来获得我想要的东西。但是我无法正确排列它们,我不确定哪里出了问题。
代码如下:
\documentclass{article}
\usepackage{tabstackengine,mathtools}
\stackMath
\setstacktabbedgap{1.5ex}
\setstackgap{S}{3pt}
\newcommand\showdiv[1]{\smash{\raisebox{1.5pt}{\scalebox{1.15}{)}}}#1}
\newcommand\laprule[1]{\rlap{\rshift\smash{\rule[-1pt]{#1}{.5pt}}}}
\makeatletter
\newcommand\rshift[1][0pt]{\hspace{\dimexpr#1+\tabbed@gap\relax}}
\makeatother
\begin{document}
\[
\tabbedShortstack[r] {x^2 & +5x & -2 \\
\laprule{90pt}&&\\
x-3 \showdiv {x^3} +2x^2 & -17x & +6 \\
& +x^3 & -3x^2\\
&\laprule{55pt}&&\\
&& 5x^2 & -17x\\
&& 5x^2 & -15x\\
&\laprule{55pt}&&&&&&\\
&& -2x & +6&&\\
&& -2x & +6&&\\
&\laprule{55pt}&&\\
&&& 0
}
\]
\end{document}
答案1
重申我在评论中指出的内容......
堆栈的每一行都由 分隔\\
,并且每行应具有相同数量的&
列分隔符(但实际上并非如此)。每列(由 分隔&
)将与其他行的类似值对齐。这里唯一的怪癖是,由于您右对齐了列,因此应该\laprule
在您实际希望它开始的位置之前的列中应用 。因此,首先在每行中获得相等数量的&
,然后开始确定哪些列内容与其他行对齐。
由于被除数中有 4 列,加上额外一列的除数,因此 5 个必需列&
每行总共需要 4 个分隔符。在下面的 MWE 中,我还特意将&
输入到堆栈中的分隔符对齐,以便您可以看到哪些列数据是共对齐的。
\documentclass{article}
\usepackage{tabstackengine,mathtools}
\stackMath
\setstacktabbedgap{1.5ex}
\setstackgap{S}{3pt}
\newcommand\showdiv[1]{\smash{\raisebox{1.5pt}{\scalebox{1.15}{)}}}#1}
\newcommand\laprule[1]{\rlap{\rshift[.1ex]\smash{\rule[-1pt]{#1}{.5pt}}}}
\makeatletter
\newcommand\rshift[1][0pt]{\hspace{\dimexpr#1+\tabbed@gap\relax}}
\makeatother
\begin{document}
\[
\tabbedShortstack[r] {
& &x^2 & +5x & -2 \\
\laprule{96pt}& & & & \\
x-3 & \showdiv {~x^3} & +2x^2 & -17x & +6 \\
& +x^3 & -3x^2 & & \\
\laprule{50pt}& & & & \\
& & 5x^2 & -17x & \\
& & 5x^2 & -15x & \\
&\laprule{54pt} & & & \\
& & & -2x & +6 \\
& & & -2x & +6 \\
& &\laprule{43pt}& & \\
& & & & 0
}
\]
\end{document}