Le paquet «xlop» publié le 08/06/2009  - mis à jour le 09/06/2009

Jean-Côme CHARPENTIER

Présentation

L’extension « xlop » de Jean-Côme CHARPENTIER permet de réaliser des calculs arithmétiques dans un document LaTeX.

Grâce à cette extension, les opérations peuvent être « posées » ou « écrites en ligne » comme à l’école ; on peut contrôler aussi de nombreux paramètres de l’affichage.

Tous les exemples qui suivent sont issus de la documention officielle de cette extension, réalisée par l’auteur.
Ils sont destinés à montrer rapidement ce que l’on peut faire.
Pour des détails et des explications précises, on consultera la documention officielle.

Quelques exemples :

\opadd[decimalsepsymbol={,}, voperator=bottom]{45.05}{78.4}

\opdiv[style=text, period]{1}{49}

\opadd*{45.05}{78.4}{r}%
Le premier chiffre après la virgule de $45,05+78,4$ est un
\opgetdecimaldigit{r}{1}{d}%
$\opprint{d}$.

\opadd*{45.05}{78.4}{r}%
La somme $45,05+78,4$ est
\opcmp{r}{100}%
\ifopgt strictement supérieure
\else\ifoplt strictement inférieure
\else égale
\fi\fi

Le $PGCD$ de $182$ et $442$ est \opgcd{182}{442}{d}%
$\opprint{d}$.

\opexpr{(4+2^3)/3}{r}%
$\frac{4+2^3}{3}=\opprint{r}$
Présentation

Utilisation

Après avoir installé éventuellement l’extension « xlop » dans sa distribution LaTeX, il s’agira d’écrire dans le préambule du document LaTeX :

\usepackage{xlop}

Pour l’installation et la documentation, on trouvera toutes les indications sur le site melusine.


Addition

L’addition est gérée par la macro « \opadd ».

Quelques exemples :

\opadd{-245}{72}
\opadd[style=text]{-245}{72}

\opadd{4825}{5307}
\opadd[carryadd=false]{4825}{5307}
\opadd[lastcarry]{4825}{5307}

\opadd{012.3427}{5.2773}
\opadd[deletezero=false]{012.3427}{5.2773}

\opadd[style=text]{02.8}{1.2}
\opadd[style=text, deletezero=false]{02.8}{1.2}
Addition

Soustraction

La soustraction est gérée par la macro « \opsub ».

Quelques exemples :

\opsub{-245}{72}
\opsub[style=text]{-245}{72}

\opsub{1.2}{2.45}
\opsub[style=text]{1.2}{2.45}

\opsub[carrysub]{1234}{567}
\opsub[carrysub, lastcarry]{1234}{567}
\opsub[carrysub, lastcarry, deletezero=false]{1234}{567}

\opsub[carrysub, lastcarry, deletezero=false]{12.34}{5.67}
\opsub[carrysub, lastcarry, deletezero=false, columnwidth=2.5ex, offsetcarry=-0.4, decimalsepoffset=-3pt]{12.34}{5.67}
Soustraction

Multiplication

La multiplication est gérée par la macro « \opmul ».

Quelques exemples :

\opmul[displayshiftintermediary=shift]{453}{1001205}
\opmul[displayshiftintermediary=all]{453}{1001205}
\opmul[displayshiftintermediary=none]{453}{1001205}

\opmul[displayintermediary=all]{453}{1001205}

\opmul{3.1416}{12.8}
\opmul[hfactor=decimal]{3.1416}{12.8}

\opmul[deletezero=false]{01.44}{25}
\opmul{01.44}{25}

\opmul[deletezero=false, style=text]{01.44}{25}
\opmul[style=text]{01.44}{25}
Multiplication

Division euclidienne

La division euclidienne est gérée par la macro « \opidiv ».

Quelques exemples :

\opidiv{25}{7}

\opidiv[style=text]{314}{2}
\opidiv[style=text]{314}{3}

\opidiv[style=text]{124}{7}
\opidiv[style=text]{124}{-7}
\opidiv[style=text]{-124}{7}
\opidiv[style=text]{-124}{-7}
Division euclidienne

Division

La division est gérée par la macro « \opdiv ».

Quelques exemples :

\opdiv{25}{7}

\opdiv[style=text]{3.14}{2}
\opdiv[style=text]{3.14}{3}

\opdiv[period]{100}{3}

\opdiv[period, style=text]{150}{7}
\opdiv[period, style=text, equalsymbol=$\approx$, hrulewidth=0.2pt, vruleperiod=0.7, afterperiodsymbol=]{150}{7}

\opdiv[displayintermediary=none, voperation=top]{251}{25}
\opdiv[displayintermediary=nonzero, voperation=top]{251}{25}
\opdiv[displayintermediary=all, voperation=top]{251}{25}
Division
\opdiv[dividendbridge]{1254}{30}

\opdiv[shiftdecimalsep=both]{3.456}{25.6}
\opdiv[shiftdecimalsep=divisor]{3.456}{25.6}
\opdiv[shiftdecimalsep=none]{3.456}{25.6}

\opset{strikedecimalsepsymbol={\rlap{,}\rule[-1pt]{3pt}{0.4pt}}}
\opdiv[shiftdecimalsep=both]{3.456}{25.6}
\opdiv[shiftdecimalsep=divisor]{3.456}{25.6}
\opdiv[shiftdecimalsep=none]{3.456}{25.6}
Division

Macros étoilées

Les macros précédentes ont une version étoilée.
Les calculs sont effectués et le résultat est affecté dans une variable.

Un exemple :

\opmul*{2}{2}{a}%
\opmul*{a}{a}{a}\opmul*{a}{a}{a}%
\opadd[style=text]{a}{1}

Ce code donnera : 256+1=257.