Re: Macro per continued fractions

#65015
Up
0
Down
::

rudycol” post=64095Non so come ringraziarla per la sua infinità disponibilità. Sono un “novizio” di programmazione in LaTeX sebbene uso LaTeX da un pò e mi piacerebbe molto imparare.
Per vedere se ho capito esattamente come ha implementato la procedura, ho fatto dei commenti ai diversi steps preceduti dal simbolo %. Sarei molto grato se potrebbe controllare i vari commenti. Mille grazie.

\@for\next:=#1\do{
% Per assegnare l’argomento del comando \contfrac e iniziare il loop

\cf@toksa=\expandafter{
% Espande l’argomento e lo assegna al token A

\the\expandafter\cf@toksa
% Questo dovrebbe assegnare il numero a sinistra di ogni frazione?

\expandafter\cf@start
% Questa dovrebbe essere la frazione a destra di ogni numero nell’argomento di \contfrac

\expandafter{\next}
%Ripete la procedura

\cf@toksb=\expandafter{\the\cf@toksb\cf@end}
% Assegna al token B il suo corrente valore e conclude

\edef\cf@final{\the\cf@toksa\the\cf@toksb}
% NON HO CAPITO COSA FA QUESTO COMANDO

\edef\cf@final{\cf@final}\expandafter\@gobblethree\cf@final
% NON HO CAPITO COSA FA QUESTO COMANDO

\def\cf@start#1{+\noexpand\cfrac\iftrue{\else}\fi1\iffalse{\else}\fi\iftrue{\else}\fi#1}
% Questa è la definizione di continued fraction

\def\cf@end{\iffalse{\else}\fi}
% Definisce \@end per la falsa condizione e ferma il loop

Al di là della continued fraction, se mi posso permettere, vorrei chiedere dei suggerimenti su del materiale su cui studiare. Attualmente ho il TeXbook di Knuth ma questo è limitato a un solo capitolo per le macro.

Grazie ancora,

Rudy

Normalmente qui ci si dà del tu.

Temo che la tua analisi sia piuttosto carente. Non preoccuparti: si tratta di macro di livello piuttosto elevato.

• \@for\next=#1\do{…}
Questo prende l’argomento ed esegue un ciclo su tutti gli elementi della lista (con la virgola come separatore). A ogni passo del ciclo viene eseguito il contenuto del gruppo tra graffe che segue \do, la macro \next ha come espansione l’elemento della lista.

• \cf@toksa=\expandafter{…}
Questo è il modo di assegnare un valore al registro token \cf@toksa; \expandafter serve per eseguire un’espansione prima dell’assegnazione effettiva.

Il resto è più difficile. Lettura consigliata, gli Appunti di programmazione in TeX e LaTeX di un noto autore. 🙂

Ciao
Enrico

Go to top