Recherche…


Compteur déclaration, initialisation et impression en pdf

Il est possible d'utiliser des variables entières avec latex. Pour créer une nouvelle variable, nous avons besoin de la commande \newcounter{name} , où name est le nom du nouveau compteur. Le name doit contenir que des lettres. Cette commande en crée une nouvelle avec le nom \thename . Avec cette commande, nous pouvons imprimer une variable de name sur le papier. La valeur initiale de name est 0. Pour donner une valeur à "name", nous pouvons utiliser \setcounter{name}{n} où n est un entier. \value{name} est une fonction qui renvoie la valeur de name .

\documentclass{article}
\begin{document}
\newcounter{num}                    %new counter, initial value is 0
\thenum                             %print 0
\setcounter{num}{3}                 %set num to 3
\thenum                             %print 3
\newcounter{number}
\setcounter{number}{\value{num}}    %set number to value of num
\thenumber                          %print 3

Latex provides some other formats to print a number.

Other types of printing:

\arabic{num}\\
\Roman{num}\\ %→ I, II, III, IV, . . . (num = 1, 2, 3, . . . )
\roman{num}\\ %→ i, ii, iii, iv, . . . (num = 1, 2, 3, . . . )
\Alph{num}\\  %→ A, B, C, D, . . . (num = 1, 2, 3, . . . , 26)
\alph{num}\\  %→ a, b, c, d, . . . (num = 1, 2, 3, . . . , 26)
\fnsymbol{num}\\ %→ ∗, †, ‡, §, ¶, k, ∗∗, ††, ‡‡ (num = 1, 2, 3, . . . , 9)
\end{document}

entrer la description de l'image ici

Opérations avec des compteurs

Cet exemple montre comment utiliser des opérations mathématiques avec des compteurs. Cela peut être utile pour les boucles en latex.

Ajout: \addtocounter{num}{n}

cette commande ajoute n à num , où num est un compteur et n est un entier positif.

Soustraction: \addtocounter{num}{-n}

cette commande soustrait n de num , où num est un compteur et n est un entier positif.

Multiplication: \multiply\value{num} by n

cette commande multiplie num par n , où num est un compteur et n est un entier.

Division \divide\value{num} by n

cette commande divise num par n et obtient la partie entière du quotient ( num est un compteur et n est un entier)

\documentclass{article}
    \begin{document}
    \newcounter{num}
    \setcounter{num}{3}
    \addtocounter{num}{10}
    \thenum\\%prints 13
    \addtocounter{num}{-3}
    \thenum\\%prints 10
    \stepcounter{num}
    \thenum\\%prints 11
    \multiply\value{num} by \value{num}
    \thenum\\%prints 121
    \multiply\value{num} by 2
    \thenum\\%prints 242
    \divide\value{num} by 60
    \thenum%prints 4
\end{document}

\newcommand{num} déclare un compteur. \setcounter{num}{3} définit la valeur de num sur 3.

\addtocounter{num}{10} ajoute 10 à num.

\addtocounter{num}{-3} soustrayez 3 de num.

\stepcounter{num} ajoute 1 à num

\multiply\value{num} by \value{num} carrés num.

\multiply\value{num} by 2 doubles num.

\divide\value{num} by 60 divise num par 60 et obtient la partie entière.

Le résultat du code: 13 \\ 10 \\ 11 \\ 121 \\ 242 \\ 4

(\\ symbolise la nouvelle ligne)

Le package intcalc ajoute d'autres opérations sur les nombres entiers, par exemple mod, pow, sng, abs, inv ...

intcalc_package.pdf

Si déclarations

Dans latex, nous pouvons utiliser des commandes intégrées pour exécuter du code, que les conditions soient vraies ou non.

Comparaison de deux entiers: \ifnum\value{num}>n {A} \else {B}\fi

Ce code exécute A si num> n else B. On peut substituer> par <et =.

Si un nombre est impair: \ifodd\value{num} {A}\else {B}\fi

Si num est impair, alors il exécute A else B.

Si avec condition: \ifthenelse{condition}{A}{B}

Nous devons charger si le paquet pour utiliser cette commande. Si la condition est vraie, elle exécute A else B.

Il est possible de créer une condition complexe avec \( \) , \AND , \OR , \NOT .

Par exemple: \ifthenelse{\(\NOT 4<2 \OR 4>11\)\AND\isodd{4}}{A}{B}

Ce morceau de code écrit "B" sur la page. \NOT 4<2 est vrai et 4>11 est faux. Si nous connectons une instruction false et une instruction true avec "OR", le résultat est vrai. Donc \(\NOT 4<2 \OR 4>11\) est vrai. \isodd{4} est faux car 4 est pair. Une instruction false et une instruction true connectées à "AND" sont fausses, la sortie est donc B.

Un exemple de code:

\documentclass{article}
\usepackage{ifthen}
\begin{document}
    \newcounter{num}
    \setcounter{num}{10}

    If num$>$100 then the next sentence will be "Num is large." else "Num is small."

    Num is \ifnum \value{num}>100 {large} \else {small}.

    If num is odd then the next sentence will begin with "Odd" if not then with "Even"

    \ifodd \value{num} {Odd} \else {Even} numbers are cool.

    If (num$>$3 and (1$<$0 or num$=$10)) is true then the next sentence will be "True." else "False."

    \ifthenelse{\value{num}>3\AND\(1<0 \OR \value{num}=10\)}{True.}{False.}


\end{document}

résultat

Boucles - répéter des choses

Nous pouvons créer des boucles en latex. Ils sont similaires mais pas aussi personnalisables que les boucles dans d'autres langages de programmation. Une alternative à l'utilisation de boucles est @loops. Si nous utilisons une commande qui inclut "@" dans son nom, il faut le placer entre \makeatletter et \makeatother . Il n'est pas autorisé de les utiliser dans une macro qui décrit une nouvelle définition.

Faux:

\def\is#1#2{\makeatletter\@ifstar{#1}{#2}\makeatother

Droite:

\makeatletter\def\is#1#2{\@ifstar{#1}{#2}}\makeatother

@pour la boucle: \@for\command:={list}\do{commands}

Exemple :

\makeatletter
\@for\sun:={rising,setting}\do{The sun is \sun.}
\makeatother

Il crée le texte suivant: Le soleil se lève. Le soleil se couche.

@whilenum loop: \@whilenum condition\do{commands}

Exemple :

\makeatletter
\newcounter{int}
\@whilenum\value{int}<10\do
{\stepcounter{int}\ifthenelse{\isodd{\value{int}}}{\theint}{}}
\makeatother

Ce code écrit les nombres impairs de 1 à 9.

"loop repeat" loop: \loop {commands} \ifnum condition \repeat

Exécute les commandes jusqu'à ce que la condition soit vraie.

Exemple

\setcounter{int}{1}
\loop
\theint
\addtocounter{int}{2}
\ifnum \value{int}<10
\repeat

Ce code fait la même chose que la boucle @whilenum.

Un exemple de code:

\documentclass{article}
\usepackage{ifthen}
\usepackage{amsmath} %\text{} command needs this package
\begin{document}
    Demonstration of @for loop:

    \makeatletter
    \@for\sun:={rising,setting}\do{The sun is \sun. }
    \makeatother

    \newcounter{int}

    @whilenum loop:
    
    \setcounter{int}{0}
    \makeatletter
    \@whilenum\value{int}<20\do
    {\stepcounter{int}\ifthenelse{\isodd{\value{int}}}{\theint\text{ }}{}}
    \makeatother
    
    "loop repeat" loop:
    
    \setcounter{int}{1}
    \loop
    \theint
    \text{ }\addtocounter{int}{2}\ifnum\value{int}<20
    \repeat
\end{document}

résultat

Utiliser des boucles dans Tikz

Les boucles sont utiles dans Tikz.

Le code suivant dessine une horloge sans chiffres:

\documentclass{article}
\usepackage{ifthen}
\usepackage{intcalc}
\usepackage{tikz}
\newcounter{num}

\begin{document}       
\begin{tikzpicture}
    \makeatletter
    \setcounter{num}{1}
    \newcounter{angle}
    \draw (0,0) circle (3cm);
    \@whilenum\value{num}<13\do{
    \setcounter{angle}{360}
    \multiply\value{angle} by \value{num}
    \divide\value{angle} by 12
    \ifnum \intcalcMod{\value{num}}{3}=0{
    \draw[line width=4pt] (\theangle:2cm) -- (\theangle:3cm);    }\else
    {
    \draw[line width=1pt] (\theangle:2.3cm) -- (\theangle:3cm);
    }\fi
    \addtocounter{num}{1}
    }
    \makeatother
\end{tikzpicture}
\end{document}

Le résultat:

l'horloge



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow