rudycol” post=64065Salve, vorrei costruire una macro ricorsiva per continued fractions senza specificare il numero esatto di argomenti.
`\documentclass{article}
\begin{document}\def\contfrac#1#2{\bb#1,\endbb,}
\def\bb#1#2,{\let\next\bb
\ifx#1\endbb\let\next\relax
\else
$#1+\cfrac{1}{#1+\cfrac{1}{#1+}}$\fi\next}\contfrac{1,2,3,4}
\end{document}`
Ho provato a scrivere la macro sopra per 4 numeri ma ottengo le varie parti della frazione come singole frazioni mentre io vorrei ottenere
$1+\cfrac{1}{2+\cfrac{1}{3+\cfrac{1}{4}}}$
Potete indicarmi la sintassi esatta della macro? Spero in un aiuto dal forum.
Non facile; niente male come primo messaggio: benvenuto.
`\usepackage{etoolbox,amsmath}
\makeatletter
\newtoks\cf@toksa
\newtoks\cf@toksb
\newrobustcmd\contfrac[1]{\cf@toksa={}\cf@toksb={}%
\@for\next:=#1\do
{\cf@toksa=\expandafter{\the\expandafter\cf@toksa\expandafter\cf@start\expandafter{\next}}%
\cf@toksb=\expandafter{\the\cf@toksb\cf@end}}
\edef\cf@final{\the\cf@toksa\the\cf@toksb}%
\edef\cf@final{\cf@final}\expandafter\@gobblethree\cf@final}
\def\cf@start#1{+\noexpand\cfrac\iftrue{\else}\fi1\iffalse{\else}\fi\iftrue{\else}\fi#1}
\def\cf@end{\iffalse{\else}\fi}
\makeatletter`
Ora \contfrac{1,2,3,4} produce il risultato che puoi vedere qui sotto. Naturalmente richiede amsmath.
Ciao
Enrico
