« LaTeX/Créer une extension ou une classe » : différence entre les versions

Contenu supprimé Contenu ajouté
m Formatage, ajout de {{ISBN}}
DannyS712 (discussion | contributions)
m <source> -> <syntaxhighlight> (phab:T237267)
 
Ligne 19 :
 
; Fichier <code>monextension.sty</code>
<sourcesyntaxhighlight lang="latex">
\NeedsTeXFormat{LaTeX2e}
 
Ligne 37 :
\newcommand{\citital}{\emph} % citation en italique
\newcommand{\nomprog}{\texttt} % nom de programme en police teletype
</syntaxhighlight>
</source>
 
Le fichier <code>.tex</code> sera alors typiquement
 
<sourcesyntaxhighlight lang="latex">
\documentclass[a4paper, 11pt]{article}
 
Ligne 48 :
\begin{document}
...
</syntaxhighlight>
</source>
 
== Classe personnelle ==
Ligne 63 :
 
; Fichier <code>maclasse.cls</code>
<sourcesyntaxhighlight lang="latex">
\NeedsTeXFormat{LaTeX2e}
 
Ligne 85 :
\newcommand{\citital}{\emph} % citation en italique
\newcommand{\nomprog}{\texttt} % nom de programme en police teletype
</syntaxhighlight>
</source>
 
Le fichier <code>.tex</code> sera alors typiquement
 
<sourcesyntaxhighlight lang="latex">
 
\documentclass{maclasse}
Ligne 95 :
\begin{document}
...
</syntaxhighlight>
</source>
 
== 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>
<sourcesyntaxhighlight lang="latex">
\RequirePackageWithOptions{babel}
</syntaxhighlight>
</source>
le fichier <code>.tex</code> contiendra alors
<sourcesyntaxhighlight lang="latex">
\usepackage[frenchb]{monextension}
</syntaxhighlight>
</source>
ou bien
<sourcesyntaxhighlight lang="latex">
\documentclass[frenchb]{maclasse}
</syntaxhighlight>
</source>
 
=== 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> :
<sourcesyntaxhighlight lang="latex">
\LoadClassWithOptions{article}
</syntaxhighlight>
</source>
et pour le fichier <code>.tex</code> :
<sourcesyntaxhighlight lang="latex">
\documentclass[a4paper, 11pt]{maclasse}
</syntaxhighlight>
</source>
 
=== 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> :
<sourcesyntaxhighlight lang="latex">
\DeclareOption{''NomDeLOption''}{''commandes''}
\ProcessOptions
</syntaxhighlight>
</source>
(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>
<sourcesyntaxhighlight lang="latex">
\RequirePackage{geometry}
 
\DeclareOption{petitemarge}{\geometry{lmargin=1cm,rmargin=1cm}}
\DeclareOption{grandemarge}{\geometry{lmargin=3cm,rmargin=3cm}}
</syntaxhighlight>
</source>
 
et ensuite avoir dans le fichier <code>.tex</code>
<sourcesyntaxhighlight lang="latex">
\documentclass[petitemarge]{maclasse}
</syntaxhighlight>
</source>
ou bien
<sourcesyntaxhighlight lang="latex">
\usepackage[petitemarge]{monextension}
</syntaxhighlight>
</source>
 
Les commandes <code>\PassOptionsToPackage</code> et <code>\PassOptionsToclass</code> permettent de passer des options à une extension ou à une classe :
<sourcesyntaxhighlight lang="latex">
\PassOptionsToPackage{''option''}{''extension''}
\PassOptionsToClass{''option''}{''classe''}
</syntaxhighlight>
</source>
par exemple
<sourcesyntaxhighlight lang="latex">
\RequirePackage{geometry}
 
Ligne 168 :
\DeclareOption{grandemarge}{%
\PassOptionsToPackage{lmargin=3cm,rmargin=3cm}{geometry}}
</syntaxhighlight>
</source>
 
On peut placer les commandes dans un fichier à part, portant l'extension <code>.clo</code>, et donc utiliser
<sourcesyntaxhighlight lang="latex">
\DeclareOption{petitemarge}{\input{petitemarge.clo}}
</syntaxhighlight>
</source>
 
== Voir aussi ==