如何实现如图所示的求最大公因式的带余除法排版,同次幂对齐,图中的横线与竖线不多不少
\documentclass{article}
\usepackage{amsmath}
\usepackage{array}
\usepackage{booktabs}
\usepackage[margin=1in]{geometry}
\begin{document}
\[
% 左侧大括号结构
\begin{array}{l}
h_2(x) = -\dfrac{1}{2}x + \dfrac{1}{4} \\
\\
\left\{\begin{array}{r@{\;}l}
& g(x) \\
\cmidrule[0.6pt](l{-1em}r{-1em}){1-2}
x^3 & + x^2 - x - 1 \\
\cmidrule[0.6pt](l{-1em}r{-1em}){1-2}
x^3 & + \dfrac{3}{2}x^2 + \dfrac{1}{2}x \\
\cmidrule[0.6pt](l{-1em}r{-1em}){1-2}
& -\dfrac{1}{2}x^2 - \dfrac{3}{2}x - 1 \\
\cmidrule[0.6pt](l{-1em}r{-1em}){1-2}
& -\dfrac{1}{2}x^2 - \dfrac{3}{4}x - \dfrac{1}{4} \\
\cmidrule[0.6pt](l{-1em}r{-1em}){1-2}
& r_2(x) = -\dfrac{3}{4}x - \dfrac{3}{4}
\end{array}\right.
\end{array}
%
% 中间f(x)部分
\begin{array}{r@{\;}l@{\quad}}
& \multicolumn{1}{c}{f(x)} \\
\cmidrule[0.6pt]{1-2}
x^4 & + x^3 - 3x^2 - 4x - 1 \\
\cmidrule[0.6pt]{1-2}
x^4 & + x^3 - x^2 - x \\
\cmidrule[0.6pt]{1-2}
r_1(x) & = -2x^2 - 3x - 1 \\
\cmidrule[0.6pt]{1-2}
& -2x^2 - 2x \\
\cmidrule[0.6pt]{1-2}
& -x - 1 \\
\cmidrule[0.6pt]{1-2}
& 0 \\
\end{array}
%
% 右侧标注
\begin{array}{l}
\\
\\
\\
\\
\\
\\
\\
x = h_1(x) \\[3ex]
\dfrac{8}{3}x + \dfrac{4}{3} = h_3(x)
\end{array}
\]
\end{document}
我尝试了AI工具,AI给出了如上的代码,但是未能实现,尝试过使用表格实现,但是如你所指的地方,我不知道如何实现断开的横线。
因为我之前使用latex进行的只是一些基础的公式和矩阵的排版,我不知道latex能否实现这样的排版,如果latex实现起来非常复杂,只能说明对于这样的复杂结构,latex显得有些力不从心,我希望有一种简洁的办法,来解决这样的复杂排版,不排斥其他的工具。
你有任何想法或者做过任何尝试吗?如果有,贴上代码是更好的。
最好不要问「do-it-for-me」类型的问题。
也许可以用表格,然后隐去部分垂直线(?)
P.S.我不太明白为什么此处的水平横线是断开的(?)
主要同幂次项要对齐比较麻烦。
tabularray
是多么好评如潮花了我大约50分钟进行微调...
\documentclass{article}
\usepackage{libertinus-otf}
\usepackage{lipsum}
\usepackage[showframe]{geometry}
\usepackage{tabularray}
% https://tex.stackexchange.com/a/659657/322482
\begin{document}
\lipsum[1][1-5]
\noindent
\begin{tblr}{
% hlines,
% vlines,
stretch = 2,
colspec = {X[r]*{14}{Q[c]}X[l]},
leftsep = 1pt,rightsep = 1pt,
cells = {mode = dmath},
vline{2,8,16} = {2}{2-Z}{},
hline{4} = {2}{2-Y}{},
hline{6} = {2}{2-7,11-Y}{},
hline{8} = {2}{11-Y}{},
column{1,2,7,8,Y,Z} = {leftsep=6pt,rightsep=6pt},
}
& \SetCell[c=6]{c} g(x) &&&&&&\SetCell[c=8]{c} f(x) & \\
h_2(x)=-\frac{1}{2}+\frac{1}{4} & x^3&+&x^2&-&x&-1& x^4&+&x^3&-3&x^2&-4&x&-1 & x=h_1(x) \\
& x^3&+\frac{3}{2}&x^2&+\frac{1}{2}&x& & x^4&+&x^3&-&x^2&-&x& & \\
& & - \frac{1}{2} & x^2&-\frac{3}{2}&x&-1 &\SetCell[c=3]{r} r_1(x)=&&&-2&x^2&-3&x&-1 &\frac{8}{3}x+\frac{4}{3}=h_3(x) \\
& & - \frac{1}{2} & x^2&-\frac{3}{4}&x&-\frac{1}{4} & &&&-2&x^2&-2&x& & \\
& \SetCell[c=3]{r} r_2(x)=&& & -\frac{3}{4}&x&-\frac{3}{4} & &&&&&-&x&-1 & \\
& & & &&& & &&&&&-&x&-1 & \\
& & & &&& & &&&&&&&0 & \\
\end{tblr}
\lipsum[1][1-5]
\end{document}
+
/-
」的对齐点位....这将得到:
顺便期待一下tikz-matrix
的处理方案...
难点就在于:
用aligned
可以,不过对齐比较困难,matrix
内不支持&
对齐。直接用\node
加foreach
工作量也不小,主要同幂次项要对齐比较麻烦。
@u154921 感谢你补充修改你的代码高亮!