« LaTeX/Créer une extension ou une classe » : différence entre les versions
Contenu supprimé Contenu ajouté
m Formatage, ajout de {{ISBN}} |
m <source> -> <syntaxhighlight> (phab:T237267) |
||
Ligne 19 :
; Fichier <code>monextension.sty</code>
<
\NeedsTeXFormat{LaTeX2e}
Ligne 37 :
\newcommand{\citital}{\emph} % citation en italique
\newcommand{\nomprog}{\texttt} % nom de programme en police teletype
</syntaxhighlight>
Le fichier <code>.tex</code> sera alors typiquement
<
\documentclass[a4paper, 11pt]{article}
Ligne 48 :
\begin{document}
...
</syntaxhighlight>
== Classe personnelle ==
Ligne 63 :
; Fichier <code>maclasse.cls</code>
<
\NeedsTeXFormat{LaTeX2e}
Ligne 85 :
\newcommand{\citital}{\emph} % citation en italique
\newcommand{\nomprog}{\texttt} % nom de programme en police teletype
</syntaxhighlight>
Le fichier <code>.tex</code> sera alors typiquement
<
\documentclass{maclasse}
Ligne 95 :
\begin{document}
...
</syntaxhighlight>
== Gestion des options ==
Ligne 106 :
Par exemple, si l'on veut laisser le choix de la langue, on utilise dans le fichier <code>.cls</code> ou <code>.sty</code>
<
\RequirePackageWithOptions{babel}
</syntaxhighlight>
le fichier <code>.tex</code> contiendra alors
<
\usepackage[frenchb]{monextension}
</syntaxhighlight>
ou bien
<
\documentclass[frenchb]{maclasse}
</syntaxhighlight>
=== Options s'appliquant à la classe appelée ===
De même, lorsque l'on appelle une classe standard dans une classe personnelle, on peut laisser le choix des options de classe dans le fichier <code>.tex</code>, par exemple, pour le fichier <code>.cls</code> :
<
\LoadClassWithOptions{article}
</syntaxhighlight>
et pour le fichier <code>.tex</code> :
<
\documentclass[a4paper, 11pt]{maclasse}
</syntaxhighlight>
=== Options personnelles ===
Vous pouvez aussi définir vos propres options. Il suffit pour cela d'utiliser, dans le fichier <code>.sty</code> ou <code>.cls</code> :
<
\DeclareOption{''NomDeLOption''}{''commandes''}
\ProcessOptions
</syntaxhighlight>
(ne pas oublier le <code>\ProcessOptions</code> à la fin de la déclaration des options, sinon on obtient des messages d'erreurs.)
Par exemple, dans le fichier <code>.sty</code> ou <code>.cls</code>
<
\RequirePackage{geometry}
\DeclareOption{petitemarge}{\geometry{lmargin=1cm,rmargin=1cm}}
\DeclareOption{grandemarge}{\geometry{lmargin=3cm,rmargin=3cm}}
</syntaxhighlight>
et ensuite avoir dans le fichier <code>.tex</code>
<
\documentclass[petitemarge]{maclasse}
</syntaxhighlight>
ou bien
<
\usepackage[petitemarge]{monextension}
</syntaxhighlight>
Les commandes <code>\PassOptionsToPackage</code> et <code>\PassOptionsToclass</code> permettent de passer des options à une extension ou à une classe :
<
\PassOptionsToPackage{''option''}{''extension''}
\PassOptionsToClass{''option''}{''classe''}
</syntaxhighlight>
par exemple
<
\RequirePackage{geometry}
Ligne 168 :
\DeclareOption{grandemarge}{%
\PassOptionsToPackage{lmargin=3cm,rmargin=3cm}{geometry}}
</syntaxhighlight>
On peut placer les commandes dans un fichier à part, portant l'extension <code>.clo</code>, et donc utiliser
<
\DeclareOption{petitemarge}{\input{petitemarge.clo}}
</syntaxhighlight>
== Voir aussi ==
|