我正在尝试使用环境进行长除法tabular
。以下是代码:
\documentclass[11pt]{book}
\usepackage{multirow}
\begin{document}
\begin{center}
\begin{tabular}{c@{} c@{} c@{} c@{} c@{} c@{} c@{} c@{} c@{} c@{} c@{} c@{}}
\multirow{2}{*}{$-$}&1&5&7&{\huge,}&5&&&5&{\color{white}1}&{\color{white}1}& {\color{white}1}\\
\cline{9-12}
&1&5&&&&{\color{white}1}&{\color{white}1}&3&1&&\\
\cline{2-6}
\multirow{2}{*}{$-$}&&&7&&&&&&&&\\
&&&5&&&&&&&&\\
\cline{2-6}
&&&2&&&&&&&&\\
\end{tabular}
\end{center}
\end{document}
我正在尝试实现我国使用的长除法布局。它与法国使用的布局非常相似,只是垂直线只存在于第一行,而不是一直向下。
为了实现这一点,我创建的表格的列之间没有任何垂直分隔符,并且只想将其添加到第一行,数字“5”之前。
上面的代码生成了第二张图片。是否可以以某种方式插入那条垂直线?
答案1
例如
\documentclass[11pt]{book}
\usepackage{color}
\usepackage{multirow}
\begin{document}
\begin{center}
\begin{tabular}{c@{} c@{} c@{} c@{} c@{} c@{} c@{} c@{} c@{} c@{} c@{} c@{}}
%\multirow{2}{*}{$-$}&1&5&7&{\huge,}&5&&&5&{\color{white}1}&{\color{white}1}& {\color{white}1}\\
\multirow{2}{*}{$-$}&1&5&7&{\huge,}&5&&&\vline\,5&{\color{white}1}&{\color{white}1}& {\color{white}1}\\
\cline{9-12}
&1&5&&&&{\color{white}1}&{\color{white}1}&3&1&&\\
\cline{2-6}
\multirow{2}{*}{$-$}&&&7&&&&&&&&\\
&&&5&&&&&&&&\\
\cline{2-6}
&&&2&&&&&&&&\\
\end{tabular}
\end{center}
\end{document}
答案2
这是一种不使用tabular
而是堆叠的方法。\vst
是您寻找的垂直支柱,而\bvst
是占用相同水平空间的空白占位符。 \pul
是下划线机制,\hc
是您的大逗号。
\documentclass[11pt]{book}
\usepackage{stackengine}
\begin{document}
{\centering
\def\hc{{\Huge,}}
\def\pul{\protect\underline}
\def\vst{\protect\smash{\rule[-1.8pt]{.1ex}{2.5ex}\protect\rule{.4ex}{0ex}}}
\def\bvst{\protect\rule{.5ex}{0ex}}
\Longunderstack[l]{\pul{~~}157\hc5 ~~\pul{15~~~~~} %
\underline{~~}~~~7 %
~~\underline{~~~5~~~~} ~~~~~2}
\Longunderstack[l]{\underline{\vst5~~~~} \bvst31}\par}
\end{document}
stackengine
几天后,随着下一个版本的发布,您将不再需要\protect
参数\Longunderstack
,这要感谢 egreg 的帮助。
答案3
这并没有回答你的问题,但是...你为什么不看看xlop
包裹?
例子
\documentclass[11pt]{book}
\usepackage{xlop}
\begin{document}
\opdiv[shiftdecimalsep=none,displayintermediary=nonzero]{157.5}{5}
\end{document}
输出