Une zone encadrée par \begin{...} et \end{...} s’appelle un environnement. Elle délimite une partie du document et applique un comportement ou une mise en forme à tout ce qu’elle contient ; presque toutes les structures LaTeX (listes, équations hors texte, figures, tableaux, citations) prennent cette forme. Cette page explique ce qu’est un environnement, comment ils s’imbriquent, lesquels sont courants et comment définir les vôtres.
Ce qu’est un environnement
Un environnement est un bloc délimité qui commence par \begin{name} et se termine par \end{name}, en appliquant un effet à son contenu. L’environnement center centre ce qu’il contient ; itemize transforme son contenu en liste à puces. La règle essentielle est la suivante : le nom du début doit correspondre exactement au nom de fin. On ne peut pas ouvrir \begin{center} puis fermer avec \end{flushleft}.
\begin{center}
この段落は中央に寄ります。
\end{center}Autre point essentiel : un environnement forme implicitement un groupe, donc une portée locale. Toute modification de police ou d’espacement faite à l’intérieur est annulée à \end{...} et ne se propage pas. Si quote modifie les retraits et les marges, le texte autour redevient normal dès que l’environnement est terminé. On peut voir un environnement comme un groupe entre accolades { ... }.
Le document lui-même est en réalité un seul environnement : \begin{document} … \end{document}. La règle de base selon laquelle tout le corps du texte doit s’y trouver en découle directement.
Comment les environnements s’imbriquent
Les environnements peuvent être imbriqués, mais il faut les fermer dans l’ordre inverse de leur ouverture. Si vous ouvrez \begin{b} à l’intérieur de \begin{a}, vous fermez d’abord l’intérieur avec \end{b}, puis l’extérieur avec \end{a} : \begin{a}\begin{b}...\end{b}\end{a}.
\begin{quote}
引用の中に箇条書きを置く例:
\begin{itemize}
\item 一つ目
\item 二つ目
\end{itemize}
\end{quote}À l’inverse, les portées ne peuvent pas se chevaucher, comme dans \begin{a}\begin{b}...\end{a}\end{b}. C’est l’une des erreurs LaTeX les plus fréquentes et elle produit un message du type \begin{...} ended by \end{...} : l’environnement ouvert ne correspond pas à celui qui est fermé. Dans les longs documents, indenter chaque environnement rend les paires visibles et évite d’oublier ou de confondre un \end.
Environnements courants
LaTeX standard fournit de nombreux environnements selon les usages. Les principaux sont regroupés ci-dessous par rôle. Chacun a sa page détaillée, mais tous partagent la même forme \begin / \end.
| Groupe | Environnements | Rôle | |
|---|---|---|---|
text | Texte | center, flushleft, flushright, quote, quotation, verbatim | Centrage, alignement gauche/droite, citations, sortie verbatim |
lists | Listes | itemize, enumerate, description | Listes à puces, numérotées et descriptives |
math | Maths | equation, align | Équation hors texte ; équations alignées sur plusieurs lignes |
floats | Flottants | figure, table | Laisser figures et tableaux se placer à un bon endroit |
tabular | Tableaux | tabular | Construire un tableau en lignes et colonnes |
quote et quotation indentent tous deux les citations, mais quotation indente aussi la première ligne de chaque paragraphe et convient mieux aux citations longues, sur plusieurs paragraphes. L’environnement verbatim imprime son contenu exactement tel qu’il est saisi dans une police monospace, en traitant même \ et { comme des caractères littéraux plutôt que comme des commandes ; c’est pratique pour afficher du code source.
Certains environnements prennent des arguments. tabular exige une spécification de colonnes : on donne l’alignement de chaque colonne (c centré, l à gauche, r à droite) dans l’argument qui suit \begin{tabular}, par exemple \begin{tabular}{cc}. Dans le tableau, les colonnes sont séparées par & et chaque ligne se termine par \\.
\begin{tabular}{cc}
名前 & 役割 \\
TeX & 組版エンジン \\
LaTeX & 文書フォーマット \\
\end{tabular}Beaucoup d’environnements ont aussi une forme étoilée, écrite avec un * après le nom. Par exemple, align numérote chaque ligne, tandis que \begin{align*} … \end{align*} est la version non numérotée. De même, equation* produit une équation hors texte sans numéro.
Définir son propre environnement
Si vous répétez la même combinaison de mise en forme dans un document, vous pouvez définir votre propre environnement avec \newenvironment. Une fois défini, vous l’appelez avec \begin / \end sous le nom choisi. La syntaxe est la suivante ([nargs] et [default] sont facultatifs) :
\newenvironment{名前}[nargs][default]{開始時のコード}{終了時のコード}- name — le nom du nouvel environnement (sans barre oblique inverse ; il ne doit pas commencer par
end). - nargs — le nombre d’arguments (0–9), référencés dans le corps par
#1,#2, … - default — le premier argument devient facultatif et cette valeur sert de valeur par défaut.
- begin-code — exécuté à
\begin{name}; c’est ici que l’on utilise des arguments comme#1. - end-code — exécuté à
\end{name}; il ne peut pas utiliser d’arguments comme#1.
À titre d’exemple, voici un environnement important qui met une note en valeur dans un encadré. Le mot de titre est passé comme argument facultatif, avec « Important » comme valeur par défaut. Comme un default a été fourni, #1 reçoit cet argument.
\newenvironment{important}[1][重要]{%
\begin{quote}\noindent\textbf{#1:}\itshape
}{%
\end{quote}%
}
% 使い方
\begin{important}
締め切りは厳守してください。
\end{important}
\begin{important}[注意]
バックアップを忘れずに。
\end{important}La première utilisation place la valeur par défaut « 重要: » (Important:) dans le titre ; la seconde passe [注意] pour « 注意: » (Note:) ; dans les deux cas, le texte qui suit est en italique. Remarquez que le begin-code ouvre \begin{quote} et que le end-code ferme le \end{quote} correspondant. Comme l’environnement est lui-même un groupe, l’effet de \itshape (italique) est annulé automatiquement à \end{important} et n’atteint jamais le texte autour.
Pour redéfinir un environnement existant, utilisez \renewenvironment. Sa syntaxe est la même que celle de \newenvironment, mais elle s’applique à un nom déjà défini (un nom non défini est une erreur). À l’inverse, \newenvironment signale une erreur si le nom existe déjà. \newenvironment et \renewenvironment ont aussi des formes étoilées, qui diffèrent par leur traitement des espaces finaux dans les arguments.
Écrire sans perdre les fins
Dans un long document, une erreur d’environnement peut ne pas apparaître là où vous l’avez commise ; elle peut se révéler plusieurs pages plus loin, près de \end{document}. Prenez l’habitude d’écrire la ligne de fermeture dès que vous ouvrez un environnement, puis de remplir le contenu. Indentez les blocs imbriqués de deux ou quatre espaces pour que la source montre ce qui se trouve dans quoi : un tabular dans un figure, un itemize dans un quote, etc.
\begin{figure}
\centering
\begin{tabular}{ll}
入力 & 出力 \\
source & PDF \\
\end{tabular}
\caption{処理の対応}
\end{figure}Lorsqu’une erreur apparaît, ne vous fiez pas seulement à la ligne \begin{...} ended by \end{...} du journal. Réduisez l’environnement que vous venez d’ajouter à un exemple minimal. Si un tableau, une figure, une équation ou une liste compile comme petit fragment avant de revenir dans le fichier principal, vous pouvez distinguer un \end manquant d’un problème propre à un paquet.
Choisir les environnements comme éléments sémantiques
Un environnement n’est pas seulement une boîte visuelle ; il nomme une partie du manuscrit. Utilisez quote pour les citations, itemize pour les listes à puces, tabular pour la grille d’un tableau, et figure ou table pour les éléments flottants qui auront besoin de légendes, numéros, références et listes. Si vous choisissez center seulement pour l’apparence, ou quote seulement pour obtenir des marges, le rôle du bloc devient flou dans un long document.
- Le bloc est une citation — utilisez
quoteouquotation, et citez la source dans le texte ou en note. - Le bloc est une liste logique — utilisez
itemize,enumerateoudescription; ne simulez pas les puces avec\\. - Une figure ou un tableau a besoin de numéros et de références — placez
\captionet\labeldansfigureoutable. - Un bloc personnalisé revient souvent — nommez-le avec
\newenvironmentau lieu de copier des commandes locales de mise en forme.