Le premier code. code :
\def\@oddfoot{
\if@mainmatter
\hfil\textcolor{red}{\thepage}\hfil
\else
\hfil\textcolor{blue}{\thepage}\hfil
\fi}
À chaque fois LaTeX rencontre `\@oddfoot` (i.e. la composition de du pied de page)
il fais fait le test et décide.
Le deuxième code. code :
\if@mainmatter
\def\@oddfoot{\hfil\textcolor{red}{\thepage}\hfil}
\else
\def\@oddfoot{\hfil\textcolor{blue}{\thepage}\hfil}
\fi
LaTeX fais fait le test et selon le résultat `\@oddfoot` est définie défini... définitivement.
**Edit:** **Edit** - Exemple
:
\documentclass{article}
\newif\ifmytest
\mytesttrue
%% comme \mytesttrue donc \cmd est toujours T
\ifmytest % c'est vrai
\def\cmd{T}
\else % LaTeX soutera sautera la suite jusqu' à \fi
\def\cmd{bla bla}
\fi
\mytestfalse
%% comme \mytestfalse donc \cmdd n'est pas définie de du tout
\ifmytest% ce n'est pas vrai % LaTeX soutera sautera la suite jusqu' à \fi
\def\cmdd{D}
\fi
\begin{document}
\mytesttrue
\cmd***%\cmdd
\mytestfalse
\cmd***%\cmdd
\end{document}
**Exemple avec mainmatter** mainmatter :**
\documentclass{book}
\makeatletter
\if@mainmatter% c'est vraie
vrai
\def\mt{T}
\else% tout qui suit (jusqu à \fi) n'est pas vu par latex
LaTeX
\documentclass{article}
\begin{document}
\chapter{Foo}
\section{Bar}
\end{document}
\fi
\makeatother
\begin{document}
\frontmatter
1) bla bla \mt
\mainmatter
2) bla bla \mt
\end{document}