答案1
以下解决方案创建一个名为“ \bp
--缩写为“b底部对齐页我认为“lus 符号”——这又是基于包\genfrac
的宏amsmath
。
\documentclass{article} % or some other suitable document class
\usepackage{amsmath} % for '\genfrac' macro
\newcommand{\temp}[1]{\genfrac{}{}{0pt}{}{}{#1}}
\newcommand\bp{\mathbin{\temp{+}}} % or: \newcommand\bp{\temp{+}}
\begin{document}
\[
\frac{426}{359} = 1+\frac15\bp\frac12\bp\frac11\bp\frac13\bp\frac11\bp\frac14 \,,
\]
\end{document}
答案2
您可以使用更简单的用户级语法来完成此操作。
该命令\contfrac
有
- 一个可选参数,用于打印后跟 = 的值;
- 整数部分的强制参数;如果为空,则不打印任何内容;
- 连分数中整数序列的强制参数;
- 一个可选参数,用于打印 = 前面的值。
当然,必须在前导可选参数和尾随可选参数之间进行选择。
当然,这仅用于显示。
\documentclass{article}
\usepackage{amsmath,xparse}
\NewDocumentCommand{\contfrac}{ommo}{%
\sbox0{$\dfrac{1}{1}$}%
\raisebox{-\dimexpr\dp0}{%
\raisebox{\dimexpr\dp0}{%
$\displaystyle\IfValueT{#1}{#1=}\NotBlankT{#2}{#2+{}}$%
}%
\makecontfrac{#3}%
\IfValueT{#4}{%
\raisebox{\dimexpr\dp0}{$\displaystyle{}=#4$}%
}%
}%
}
\ExplSyntaxOn
\NewExpandableDocumentCommand{\NotBlankT}{mm}
{
\tl_if_blank:nF { #1 } { #2 }
}
\NewDocumentCommand{\makecontfrac}{m}
{
\seq_set_from_clist:Nn \l_tmpa_seq { #1 }
\seq_set_map:NNn \l_tmpb_seq \l_tmpa_seq { \__coeus_rfrac:n { ##1 } }
$\displaystyle\seq_use:Nn \l_tmpb_seq { + }$
}
\cs_new_protected:Nn \__coeus_rfrac:n
{
\raisebox{\depth}{$\dfrac{1}{#1}$}
}
\ExplSyntaxOff
\begin{document}
\begin{gather}
\contfrac{}{5,2,1,3,1,4}
\\[2ex]
\contfrac{1}{5,2,1,3,1,4}
\\[2ex]
\contfrac[\frac{426}{359}]{1}{5,2,1,3,1,4}
\\[2ex]
\contfrac{1}{5,2,1,3,1,4}[\frac{426}{359}]
\end{gather}
\end{document}
这个想法是打印结果和按标准分数的深度增加的整数部分;然后所有分数都以相同的量增加,因此 + 号以其常规高度排版。
最后,我们将整个东西放低以掩盖我们的踪迹。