|
|
@@ -0,0 +1,955 @@
|
|
|
1
|
+% \iffalse meta-comment
|
|
|
2
|
+%
|
|
|
3
|
+% For explanation on this file, see http://texdoc.net/texmf-dist/doc/latex/dtxtut/dtxtut.pdf
|
|
|
4
|
+%
|
|
|
5
|
+% Copyright (C) 2015 i by Denis Merigoux
|
|
|
6
|
+%
|
|
|
7
|
+% This file may be distributed and/or modified under the
|
|
|
8
|
+% conditions of the LaTeX Project Public License, either
|
|
|
9
|
+% version 1.2 of this license or (at your option) any later
|
|
|
10
|
+% version. The latest version of this license is in:
|
|
|
11
|
+%
|
|
|
12
|
+% http://www.latex-project.org/lppl.txt
|
|
|
13
|
+%
|
|
|
14
|
+% and version 1.2 or later is part of all distributions of
|
|
|
15
|
+% LaTeX version 1999/12/01 or later.
|
|
|
16
|
+%
|
|
|
17
|
+% \fi
|
|
|
18
|
+%
|
|
|
19
|
+% \iffalse
|
|
|
20
|
+%<package>\NeedsTeXFormat{LaTeX2e}
|
|
|
21
|
+%<package>\ProvidesPackage{polytechnique}
|
|
|
22
|
+%<package> [2015/04/29 v1.3.0, standard scientific documents layout for Ecole polytechnique (Palaiseau,France).]
|
|
|
23
|
+%
|
|
|
24
|
+%<*batchfile>
|
|
|
25
|
+\begingroup
|
|
|
26
|
+\input docstrip.tex
|
|
|
27
|
+\keepsilent
|
|
|
28
|
+\usedir{tex/latex/polytechnique}
|
|
|
29
|
+
|
|
|
30
|
+\preamble
|
|
|
31
|
+This is a generated file.
|
|
|
32
|
+
|
|
|
33
|
+Copyright (C) 2015 by Denis Merigoux
|
|
|
34
|
+
|
|
|
35
|
+This file may be distributed and/or modified under the
|
|
|
36
|
+conditions of the LaTeX Project Public License, either
|
|
|
37
|
+version 1.2 of this license or (at your option) any later
|
|
|
38
|
+version. The latest version of this license is in:
|
|
|
39
|
+
|
|
|
40
|
+http://www.latex-project.org/lppl.txt
|
|
|
41
|
+
|
|
|
42
|
+and version 1.2 or later is part of all distributions of
|
|
|
43
|
+LaTeX version 1999/12/01 or later.
|
|
|
44
|
+\endpreamble
|
|
|
45
|
+
|
|
|
46
|
+\askforoverwritefalse
|
|
|
47
|
+\generate{\file{polytechnique.sty}{\from{polytechnique.dtx}{package}}}
|
|
|
48
|
+
|
|
|
49
|
+\obeyspaces
|
|
|
50
|
+
|
|
|
51
|
+\endgroup
|
|
|
52
|
+%</batchfile>
|
|
|
53
|
+%%\CharacterTable
|
|
|
54
|
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
|
|
|
55
|
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
|
|
|
56
|
+%% Digits \0\1\2\3\4\5\6\7\8\9
|
|
|
57
|
+%% Exclamation \! Double quote \" Hash (number) \#
|
|
|
58
|
+%% Dollar \$ Percent \% Ampersand \&
|
|
|
59
|
+%% Acute accent \' Left paren \( Right paren \)
|
|
|
60
|
+%% Asterisk \* Plus \+ Comma \,
|
|
|
61
|
+%% Minus \- Point \. Solidus \/
|
|
|
62
|
+%% Colon \: Semicolon \; Less than \<
|
|
|
63
|
+%% Equals \= Greater than \> Question mark \?
|
|
|
64
|
+%% Commercial at \@ Left bracket \[ Backslash \\
|
|
|
65
|
+%% Right bracket \] Circumflex \^ Underscore \_
|
|
|
66
|
+%% Grave accent \` Left brace \{ Vertical bar \|
|
|
|
67
|
+%% Right brace \} Tilde \~}
|
|
|
68
|
+%%
|
|
|
69
|
+%<*driver>
|
|
|
70
|
+\documentclass[a4paper,11pt]{ltxdoc}
|
|
|
71
|
+\usepackage[utf8]{inputenc}
|
|
|
72
|
+\usepackage[T1]{fontenc}
|
|
|
73
|
+\usepackage[french]{babel}
|
|
|
74
|
+\usepackage[pagenumber,fancysections,sectionmark]{polytechnique}
|
|
|
75
|
+\makeatletter
|
|
|
76
|
+\renewcommand{\index@prologue}{\section*{Index}%Redéfinit le texte avant l'index
|
|
|
77
|
+ %Commande issue de tex/latex/base/doc.sty
|
|
|
78
|
+ Les nombre en italique se réfèrent à la page où l'entrée correspondante est documentée ; les nombres soulignés se réfèrent à la ligne de code où l'entrée correspondante est définie. Enfin, les autres nombres correspondent aux lignes de code où l'entrée correspondante est utilisée.
|
|
|
79
|
+ }
|
|
|
80
|
+\makeatother
|
|
|
81
|
+\EnableCrossrefs
|
|
|
82
|
+\CodelineIndex
|
|
|
83
|
+\RecordChanges
|
|
|
84
|
+\begin{document}
|
|
|
85
|
+\DocInput{polytechnique.dtx}
|
|
|
86
|
+\end{document}
|
|
|
87
|
+%</driver>
|
|
|
88
|
+% \fi
|
|
|
89
|
+%
|
|
|
90
|
+%\changes{v1.3.0}{2015/04/29}{Ajout des options oneside, twoside, sectionmark, chaptermark, markboth, pagenumber}
|
|
|
91
|
+%\changes{v1.2.2}{2015/02/18}{Recadrage du logo horizontal}
|
|
|
92
|
+%\changes{v1.2.1}{2015/02/16}{Correction du bug title vide ou author vide}
|
|
|
93
|
+%\changes{v1.2.0}{2015/01/25}{Dimensionnement des logos conforme à la charte graphique}
|
|
|
94
|
+%\changes{v1.1.0}{2015/01/20}{Ajout formatage chapter et subsubsection avec l'option fancysections}
|
|
|
95
|
+%\changes{v1.0.0}{2015/01/15}{Version initiale}
|
|
|
96
|
+% \GetFileInfo{polytechnique.sty}
|
|
|
97
|
+%
|
|
|
98
|
+%\DoNotIndex{\#,\$,\%,\&,\@,\\,\{,\},\^,\_,\~,\ }
|
|
|
99
|
+%\DoNotIndex{\@ne}
|
|
|
100
|
+%\DoNotIndex{\advance,\begingroup,\catcode,\closein}
|
|
|
101
|
+%\DoNotIndex{\closeout,\day,\def,\edef,\else,\empty,\endgroup}
|
|
|
102
|
+%\DoNotIndex{\newcommand,\renewcommand,\newlength,
|
|
|
103
|
+% \setlength,\RequirePackage,\PassOptionsToPackage}
|
|
|
104
|
+%
|
|
|
105
|
+%
|
|
|
106
|
+%\title{Le package \textsf{polytechnique}}
|
|
|
107
|
+%\subtitle{\fileversion{} datée du \filedate.}
|
|
|
108
|
+%\author{Denis Merigoux}
|
|
|
109
|
+%
|
|
|
110
|
+%\maketitle
|
|
|
111
|
+%
|
|
|
112
|
+%Le but du package est d'offrir un moyen efficace et rapide aux élèves de mettre en forme leurs documents \LaTeX{} destinés à être rendus à l'administration de l'École ou aux professeurs : rapports de stage, rapports de MODAL, devoirs à la maison, etc. La DIRCOM a établi la maquette en accord avec la charte graphique donc le package peut aussi être utilisé pour produire des documents diffusés à l'extérieur de l'École.
|
|
|
113
|
+%
|
|
|
114
|
+%En pratique, package redéfinit les marges et les en-têtes du document, ainsi que la commande |\maketitle| (voir plus bas). La compilation peut être faite avec \texttt{pdflatex} ou \texttt{latex}, les logos et images étant fournies en \texttt{.eps} et \texttt{.pdf}. Attention donc à ne pas utiliser les package \texttt{geometry} ou \texttt{fancyhdr} en parallèle avec ce package.
|
|
|
115
|
+%
|
|
|
116
|
+%Le package impose également la police du document par le package \texttt{lmodern}, version vectorielle de la police \emph{Computer Modern Roman} par défaut de \LaTeX.
|
|
|
117
|
+%
|
|
|
118
|
+%\renewcommand{\contentsname}{Sommaire}
|
|
|
119
|
+%\tableofcontents
|
|
|
120
|
+%\clearpage
|
|
|
121
|
+%\newgeometry{
|
|
|
122
|
+% top=\margehaut,headheight=\hauteurentete,headsep=\separationentete,
|
|
|
123
|
+% bottom=\margebas,footskip=\separationpied,left=\margecote,right=\margecote,includemp
|
|
|
124
|
+%}
|
|
|
125
|
+%\section{Utilisation}
|
|
|
126
|
+%
|
|
|
127
|
+%Pour utiliser le package, il suffit d'inclure dans le préambule de son document la ligne :
|
|
|
128
|
+%\begin{verbatim}
|
|
|
129
|
+% \usepackage{polytechnique}
|
|
|
130
|
+%\end{verbatim}
|
|
|
131
|
+%
|
|
|
132
|
+%Il faut également définir dans le préambule les métadonnées du document, avec deux nouveaux champs optionnels |\subtitle| et |\logo| :
|
|
|
133
|
+%\begin{itemize}
|
|
|
134
|
+%\item \DescribeMacro{\subtitle}|\subtitle|\marg{sous-titre} où \meta{sous-titre} peut être sur plusieurs lignes séparées par des |\\| ;
|
|
|
135
|
+%\item \DescribeMacro{\logo}|\logo|\marg{chemin} où \meta{chemin} est le chemin relatif vers le fichier d'un logo supplémentaire (entreprise, laboratoire, etc.) ; si le logo est dans le même dossier que le |.tex|, \meta{chemin} est le nom du fichier.
|
|
|
136
|
+%\end{itemize}
|
|
|
137
|
+%Il est recommandé de recadrer au mieux l'image du logo pour qu'elle prenne les meilleures dimensions possibles sur la page. Le deuxième logo n'apparaîtra que si l'option |titlepage| est activée.
|
|
|
138
|
+%Cela donne dans son préambule :
|
|
|
139
|
+%\begin{verbatim}
|
|
|
140
|
+% \title{Le titre}
|
|
|
141
|
+% \subtitle{Le sous-titre (optionnel, enlever cette ligne sinon)}
|
|
|
142
|
+% \author{L'auteur Prénom \textsc{Nom}
|
|
|
143
|
+% (si plusieurs séparer par des \\)}
|
|
|
144
|
+% \date{La date, enlever la ligne pour avoir la date du jour}
|
|
|
145
|
+% %\logo{Chemin relatif vers le logo}
|
|
|
146
|
+%\end{verbatim}
|
|
|
147
|
+%
|
|
|
148
|
+%Puis rajouter après |\begin{document}| la commande |\maketitle|. Les champs |\title|, |\subtitle|, |\author| et |\date| peuvent être sur plusieurs lignes, c'est par exemple utile pour une liste d'auteurs. On passera alors à la ligne avec la commande |\\|.
|
|
|
149
|
+%
|
|
|
150
|
+%Si un des champs est trop grand verticalement et nuit à la mise en page globale, on pourra réduire la taille des caractères à l'aide de |\large|, |\Large| ou |\normalsize| par exemple. On pourra aussi utiliser un tableau gagner en place horizontalement.
|
|
|
151
|
+%
|
|
|
152
|
+%\clearpage
|
|
|
153
|
+%\section{Options}
|
|
|
154
|
+%
|
|
|
155
|
+%\subsection{Options globales}
|
|
|
156
|
+%
|
|
|
157
|
+%Ces options peuvent être indiquées directement dans la déclaration de la classe du document, suivant la syntaxe habituelle : |\documentclass|\oarg{options globales}\marg{classe du document}. \meta{options globales} est une liste d'options séparées par des virgules, selon la syntaxe habituelle. Par exemple :
|
|
|
158
|
+%\begin{verbatim}
|
|
|
159
|
+% \documenclass[titlepage,11pt,a4paper]{article}
|
|
|
160
|
+%\end{verbatim}
|
|
|
161
|
+%
|
|
|
162
|
+%Voici la liste des options globales qui sont reprises par le package :
|
|
|
163
|
+%\begin{description}
|
|
|
164
|
+%\item[oneside] C'est le comportement par défaut, les en-têtes et les marges seront les mêmes pour toutes les pages.
|
|
|
165
|
+%\item[twoside] Rend la marge intérieur plus grande que la marge extérieure et transforme les en-têtes gauche/droite en en-têtes intérieurs/extérieurs.
|
|
|
166
|
+%\item[notitlepage] Comportement par défaut pour la classe |article|. |\maketitle| produit son résultat sur un quart de page environ.
|
|
|
167
|
+%\item[titlepage] Comportement par défaut pour les classes |report| et |book|.
|
|
|
168
|
+%\item[a4paper] Signifie à \LaTeX{} que le format de la feuille est A4. À inclure systématiquement pour éviter les mauvaises surprises.
|
|
|
169
|
+%\end{description}
|
|
|
170
|
+%
|
|
|
171
|
+%\subsection{Options spécifiques}
|
|
|
172
|
+%
|
|
|
173
|
+%Ces options sont à appeler directement avec le package avec la syntaxe :
|
|
|
174
|
+%\begin{center}
|
|
|
175
|
+%|\usepackage|\oarg{options}|{polytechnique}|
|
|
|
176
|
+%\end{center}
|
|
|
177
|
+%En voici la liste :
|
|
|
178
|
+%\begin{description}
|
|
|
179
|
+%\item[fancysections] Redéfinit les commandes |\chapter|, |\section|, |\subsection| et |\subsubsection| avec un style conforme à la charte graphique de l'École. Donne un aspect moins formel au document.
|
|
|
180
|
+%\item[pagenumber] Change la numérotation des pages dans le pied de page. Si l'option est activée, elle deviendra \meta{page en cours}/\meta{nombre total de pages}.
|
|
|
181
|
+%\item[sectionmark] Affiche en en-tête intérieur le titre de la section courante plutôt que le titre du document.
|
|
|
182
|
+%\item[chaptermark] Idem que l'option précédente avec le titre du chapitre courant. Ne peut être utilisé avec la classe |article|.
|
|
|
183
|
+%\item[markboth] Pensé pour les longs documents : affiche le titre de la section courante sur l'en-tête intérieur des pages paires et le titre du chapitre courant sur l'en-tête des pages impaires.
|
|
|
184
|
+%\end{description}
|
|
|
185
|
+%
|
|
|
186
|
+%\StopEventually{
|
|
|
187
|
+% \clearpage
|
|
|
188
|
+% \restoregeometry
|
|
|
189
|
+% \PrintIndex
|
|
|
190
|
+%}
|
|
|
191
|
+%\clearpage
|
|
|
192
|
+%\section{Code source}
|
|
|
193
|
+%
|
|
|
194
|
+%\subsection{Déclaration des options}
|
|
|
195
|
+%Le code de ces options est exécuté à la fin du package grâce à la commande |\AtEndOfPackage|. Les commandes utilisées dans le code seront donc définies par la suite mais portent des noms explicites.
|
|
|
196
|
+%
|
|
|
197
|
+%\paragraph{a4paper}
|
|
|
198
|
+%Passe l'option |a4paper| declarée au package |geometry| pour action. L'option est aussi reconnue depuis les options passées a |\documentclass|.
|
|
|
199
|
+% \begin{macrocode}
|
|
|
200
|
+\DeclareOption{a4paper}{
|
|
|
201
|
+ \PassOptionsToPackage{a4paper}{geometry}
|
|
|
202
|
+}
|
|
|
203
|
+% \end{macrocode}
|
|
|
204
|
+%
|
|
|
205
|
+%\paragraph{fancysections}
|
|
|
206
|
+%Si activée, modifie le formatage des titres dans le document. Les commandes utilisées sont issues du package |titlesec|, se reporter à la documentation pour plus d'explications.
|
|
|
207
|
+% \begin{macrocode}
|
|
|
208
|
+\DeclareOption{fancysections}{
|
|
|
209
|
+ \AtEndOfPackage{
|
|
|
210
|
+ \titleformat{\chapter}
|
|
|
211
|
+ [display]
|
|
|
212
|
+ {\Huge\bfseries\sffamily}
|
|
|
213
|
+ {\LARGE\chaptertitlename{} \thechapter}
|
|
|
214
|
+ {0em}
|
|
|
215
|
+ {}
|
|
|
216
|
+ []
|
|
|
217
|
+ \titleformat{\section}
|
|
|
218
|
+ [display]
|
|
|
219
|
+ {\color{rouge485}\LARGE\bfseries\sffamily\filcenter}
|
|
|
220
|
+ {\thesection}{0em}
|
|
|
221
|
+ {\MakeUppercase}
|
|
|
222
|
+ [\vspace*{-0.5\baselineskip}%
|
|
|
223
|
+ \includegraphics{\polyfiletlongrouge}]
|
|
|
224
|
+ \titleformat{\subsection}
|
|
|
225
|
+ [hang]
|
|
|
226
|
+ {\color{bleu315}\Large\scshape}
|
|
|
227
|
+ {\thesubsection}
|
|
|
228
|
+ {0.5em}
|
|
|
229
|
+ {}
|
|
|
230
|
+ [\vspace*{-0.3\baselineskip}%
|
|
|
231
|
+ \includegraphics{\polyfiletcourtbleuclair}]
|
|
|
232
|
+ \titleformat{\subsubsection}
|
|
|
233
|
+ [block]
|
|
|
234
|
+ {\color{bleu303}\large\scshape}
|
|
|
235
|
+ {\thesubsubsection}
|
|
|
236
|
+ {0.5em}
|
|
|
237
|
+ {\textbullet{} }
|
|
|
238
|
+ []
|
|
|
239
|
+ }
|
|
|
240
|
+}
|
|
|
241
|
+% \end{macrocode}
|
|
|
242
|
+%
|
|
|
243
|
+%\paragraph{notitlepage}
|
|
|
244
|
+%Cette option activée par défaut produit un titre avec logo vertical de l'X, auteur et date sur la première lignes, puis le titre et le sous-titre entre filets horizontaux. L'option est aussi reconnues depuis les options globales passées à |\documentclass|.
|
|
|
245
|
+% \begin{macrocode}
|
|
|
246
|
+\DeclareOption{notitlepage}{
|
|
|
247
|
+ \AtBeginDocument{
|
|
|
248
|
+ \renewcommand*{\maketitle}{
|
|
|
249
|
+ \thispagestyle{plain}
|
|
|
250
|
+ \vspace*{\distancetitrelogo}
|
|
|
251
|
+% \end{macrocode}
|
|
|
252
|
+% D'abord le bloc de gauche avec le nom des auteurs.
|
|
|
253
|
+% \begin{macrocode}
|
|
|
254
|
+ \noindent
|
|
|
255
|
+ \begin{minipage}[b]{\largeurminipage}
|
|
|
256
|
+ \hspace{0cm}\polyauthorsave
|
|
|
257
|
+ \end{minipage}
|
|
|
258
|
+% \end{macrocode}
|
|
|
259
|
+%La |minipage| permet les sauts de ligne pour avoir plusieurs auteurs, et |\hspace{0cm}| sert a ne pas faire une minipage vide si |\polyauthorsave={}|.
|
|
|
260
|
+% \begin{macrocode}
|
|
|
261
|
+ \hspace*{\fill}
|
|
|
262
|
+% \end{macrocode}
|
|
|
263
|
+%Les blocs sont séparés par des ressorts horizontaux. Vient ensuite le bloc central avec le logo de l'X.
|
|
|
264
|
+% \begin{macrocode}
|
|
|
265
|
+ \includegraphics[width=\largeurlogovert]{\polylogovert}
|
|
|
266
|
+ \hspace*{\fill}
|
|
|
267
|
+% \end{macrocode}
|
|
|
268
|
+%Et pour conclure la première ligne le bloc de droite qui contient la |\date|.
|
|
|
269
|
+% \begin{macrocode}
|
|
|
270
|
+ \begin{minipage}[b]{\largeurminipage}
|
|
|
271
|
+ \flushright\hspace{0cm}\polydatesave
|
|
|
272
|
+ \end{minipage}
|
|
|
273
|
+% \end{macrocode}
|
|
|
274
|
+%Le |\hspace{0cm}| sert a ne pas faire une minipage vide si |\polydatesave={}|.
|
|
|
275
|
+% \begin{macrocode}
|
|
|
276
|
+ \\[\separationlogotrait]
|
|
|
277
|
+% \end{macrocode}
|
|
|
278
|
+%Deux filets horizontaux, le titre et le sous-titre sont au milieu.
|
|
|
279
|
+% \begin{macrocode}
|
|
|
280
|
+ \begin{center}
|
|
|
281
|
+ \textcolor{bleu303}{\rule{\textwidth}{\epaisseurtrait}}
|
|
|
282
|
+ \\
|
|
|
283
|
+ \color{bleu303}\Huge\scshape
|
|
|
284
|
+ \MakeUppercaseWithNewline{\polytitresave}
|
|
|
285
|
+% \end{macrocode}
|
|
|
286
|
+%La ligne qui précède affiche le titre. La commande |\MakeUpperCaseWithNewLine| sera définie par la suite.
|
|
|
287
|
+% \begin{macrocode}
|
|
|
288
|
+ \ifthenelse{\boolean{subtitle}}{
|
|
|
289
|
+% \end{macrocode}
|
|
|
290
|
+%Le booléen |subtitle| est vrai si et seulement si le champ |\subtitle| a été initialisé. La clause qui suit s'exécute si il y a un sous-titre.
|
|
|
291
|
+% \begin{macrocode}
|
|
|
292
|
+ \\[\separationlignestitre]
|
|
|
293
|
+ \Large\upshape\polysoustitresave\\\normalsize
|
|
|
294
|
+ }{
|
|
|
295
|
+% \end{macrocode}
|
|
|
296
|
+%Et maintenant, s'il n'y en a pas.
|
|
|
297
|
+% \begin{macrocode}
|
|
|
298
|
+ \\
|
|
|
299
|
+ \normalsize
|
|
|
300
|
+ }
|
|
|
301
|
+ \textcolor{bleu303}{\rule{\textwidth}{\epaisseurtrait}}
|
|
|
302
|
+ \end{center}
|
|
|
303
|
+ \vspace*{\distancetitrecorps}
|
|
|
304
|
+ }
|
|
|
305
|
+ }
|
|
|
306
|
+}
|
|
|
307
|
+% \end{macrocode}
|
|
|
308
|
+%
|
|
|
309
|
+%\paragraph{titlepage}
|
|
|
310
|
+%Option qui active une page de garde où le titre prend toute la page. L'option est aussi reconnue depuis les options passées a |\documentclass|. La page de garde comporte :
|
|
|
311
|
+%\begin{itemize}
|
|
|
312
|
+%\item les armes de l'École en arrière-plan ;
|
|
|
313
|
+%\item le titre en capitales bleues ;
|
|
|
314
|
+%\item le sous-titre sans empattements en bleu également ;
|
|
|
315
|
+%\item la date, suivie d'un filet séparateur ;
|
|
|
316
|
+%\item les auteurs ;
|
|
|
317
|
+%\item le logo horizontal de l'X et en option un autre logo.
|
|
|
318
|
+%\end{itemize}
|
|
|
319
|
+% \begin{macrocode}
|
|
|
320
|
+\DeclareOption{titlepage}{
|
|
|
321
|
+ \AtBeginDocument{
|
|
|
322
|
+ \renewcommand*{\maketitle}{
|
|
|
323
|
+% \end{macrocode}
|
|
|
324
|
+%On met d'abord les armes de l'École en arrière-plan. On créé pour cela une boîte à laquelle on donne des dimensions virtuelles nulles pour ne pas empiéter sur les autres éléments. L'image se trouve dans cette boîte.
|
|
|
325
|
+% \begin{macrocode}
|
|
|
326
|
+ \noindent\makebox[\textwidth][c]{%
|
|
|
327
|
+ \raisebox{-\totalheight}[0pt][0pt]{%
|
|
|
328
|
+ \includegraphics[height=\hauteurlogopage]{\polyarmes}}}
|
|
|
329
|
+% \end{macrocode}
|
|
|
330
|
+%On passe maintenant au titre, séparé par un espace vertical du haut de la page. La commande |\MakeUpperCaseWithNewLine| permet de mettre plusieurs lignes à la suite en capitales.
|
|
|
331
|
+% \begin{macrocode}
|
|
|
332
|
+ \vspace*{0.125\textheight}
|
|
|
333
|
+ \begin{center}
|
|
|
334
|
+ \Huge\sffamily\bfseries\color{bleu303}
|
|
|
335
|
+ \MakeUppercaseWithNewline{\polytitresave}\\
|
|
|
336
|
+% \end{macrocode}
|
|
|
337
|
+%Ensuite, le sous-titre. Le |\hspace{0cm}| est là pour occuper la place, sa présence est indispensable pour gérer le cas où |\polysoustitresave={}|.
|
|
|
338
|
+% \begin{macrocode}
|
|
|
339
|
+ \vspace*{0.2\textheight}
|
|
|
340
|
+ \LARGE\hspace{0cm}\polysoustitresave\\
|
|
|
341
|
+% \end{macrocode}
|
|
|
342
|
+%Ce qui suit est la date, idem pour le |\hspace{0cm}|.
|
|
|
343
|
+% \begin{macrocode}
|
|
|
344
|
+ \vspace*{0.15\textheight}
|
|
|
345
|
+ \Large\mdseries\hspace{0cm}\polydatesave\\
|
|
|
346
|
+ \includegraphics{\polyfiletcourtbleu}
|
|
|
347
|
+ \\[0.4\baselineskip]
|
|
|
348
|
+% \end{macrocode}
|
|
|
349
|
+%Ce qui suit affiche les auteurs, idem pour le |\hspace{0cm}|.
|
|
|
350
|
+% \begin{macrocode}
|
|
|
351
|
+ \rmfamily\hspace{0cm}\polyauthorsave\\[\fill]
|
|
|
352
|
+% \end{macrocode}
|
|
|
353
|
+%Enfin, le(s) logo(s) en bas de la page. On rabote la marge basse habituelle avec le |\vspace*{-0.5\margebas}|.
|
|
|
354
|
+% \begin{macrocode}
|
|
|
355
|
+ $\;$\polylogosup{}
|
|
|
356
|
+ \vspace*{-0.5\margebas}
|
|
|
357
|
+ \end{center}
|
|
|
358
|
+ \thispagestyle{empty}
|
|
|
359
|
+ \clearpage
|
|
|
360
|
+ }
|
|
|
361
|
+ }
|
|
|
362
|
+}
|
|
|
363
|
+% \end{macrocode}
|
|
|
364
|
+%
|
|
|
365
|
+%\paragraph{oneside} Règle les marges pour des documents recto uniquement. L'option est aussi reconnue depuis les options passées a |\documentclass|.
|
|
|
366
|
+% \begin{macrocode}
|
|
|
367
|
+\DeclareOption{oneside}{
|
|
|
368
|
+ \AtEndOfPackage{
|
|
|
369
|
+ \geometry{left=\margecote,right=\margecote}
|
|
|
370
|
+ }
|
|
|
371
|
+}
|
|
|
372
|
+% \end{macrocode}
|
|
|
373
|
+%
|
|
|
374
|
+%\paragraph{twoside} Règle les marges pour des documents recto-verso. L'option est aussi reconnue depuis les options passées a |\documentclass|.
|
|
|
375
|
+% \begin{macrocode}
|
|
|
376
|
+\DeclareOption{twoside}{
|
|
|
377
|
+ \AtEndOfPackage{
|
|
|
378
|
+ \geometry{inner=\margecoteinterieur,
|
|
|
379
|
+ outer=\margecoteexterieur}
|
|
|
380
|
+ }
|
|
|
381
|
+}
|
|
|
382
|
+% \end{macrocode}
|
|
|
383
|
+%
|
|
|
384
|
+%\paragraph{sectionmark} Met le titre de la section en cours plutôt que le titre du document dans les en-têtes.
|
|
|
385
|
+% \begin{macrocode}
|
|
|
386
|
+\DeclareOption{sectionmark}{
|
|
|
387
|
+ \AtEndOfPackage{
|
|
|
388
|
+% \end{macrocode}
|
|
|
389
|
+%On redéfinit pour cela la commande des en-têtes intérieurs.
|
|
|
390
|
+% \begin{macrocode}
|
|
|
391
|
+ \renewcommand{\enteteinterieur}[1]{
|
|
|
392
|
+% \end{macrocode}
|
|
|
393
|
+%|\ifthesection|\marg{vrai}\marg{faux} exécute le code \meta{vrai} si une section courante a été définie au moment où le code est appelé, et faux sinon. Voir la documentation du package |titlesec|.
|
|
|
394
|
+% \begin{macrocode}
|
|
|
395
|
+ \ifthesection{
|
|
|
396
|
+% \end{macrocode}
|
|
|
397
|
+%S'il y a une section courante, on affiche son titre en en-tête intérieur.
|
|
|
398
|
+% \begin{macrocode}
|
|
|
399
|
+ \raisebox{\decalageverticalentete}
|
|
|
400
|
+ {\scshape\color{bleu303}
|
|
|
401
|
+ \thesection{}.~\sectiontitle}
|
|
|
402
|
+ }{
|
|
|
403
|
+% \end{macrocode}
|
|
|
404
|
+%Si pas de section courante définie, on ne met rien dans l'en-tête intérieur.
|
|
|
405
|
+% \begin{macrocode}
|
|
|
406
|
+ }
|
|
|
407
|
+ }
|
|
|
408
|
+ }
|
|
|
409
|
+}
|
|
|
410
|
+% \end{macrocode}
|
|
|
411
|
+%
|
|
|
412
|
+%\paragraph{chaptermark} Met le titre de la section en cours plutôt que le titre du document dans les en-têtes. Le code est analogue à celui de l'option précédente.
|
|
|
413
|
+% \begin{macrocode}
|
|
|
414
|
+\DeclareOption{chaptermark}{
|
|
|
415
|
+ \AtEndOfPackage{
|
|
|
416
|
+ \renewcommand{\enteteinterieur}[1]{
|
|
|
417
|
+ \ifthechapter{
|
|
|
418
|
+ \raisebox{\decalageverticalentete}
|
|
|
419
|
+ {\scshape\color{bleu303}
|
|
|
420
|
+ \thechapter{}.~\chaptertitle}
|
|
|
421
|
+ }{
|
|
|
422
|
+
|
|
|
423
|
+ }
|
|
|
424
|
+ }
|
|
|
425
|
+ }
|
|
|
426
|
+}
|
|
|
427
|
+% \end{macrocode}
|
|
|
428
|
+%
|
|
|
429
|
+%\paragraph{markboth} L'option est un mélange des deux options précédentes, voir la documentation utilisateur. On redéfinit alors |\enteteinterieurpair| et |\enteteinterieurimpair| pour distinguer les en-têtes des pages paires et impaires. Le code est un copier-coller de celui des deux options précédentes.
|
|
|
430
|
+% \begin{macrocode}
|
|
|
431
|
+\DeclareOption{markboth}{
|
|
|
432
|
+ \AtEndOfPackage{
|
|
|
433
|
+ \renewcommand{\enteteinterieurimpair}{
|
|
|
434
|
+ \ifthesection{%Si la section a ete definie
|
|
|
435
|
+ \raisebox{\decalageverticalentete}
|
|
|
436
|
+ {\scshape\color{bleu303}
|
|
|
437
|
+ \thesection{}.~\sectiontitle}
|
|
|
438
|
+ }{
|
|
|
439
|
+
|
|
|
440
|
+ }
|
|
|
441
|
+ }
|
|
|
442
|
+ \renewcommand{\enteteinterieurpair}{
|
|
|
443
|
+ \ifthechapter{
|
|
|
444
|
+ \raisebox{\decalageverticalentete}
|
|
|
445
|
+ {\scshape\color{bleu303}
|
|
|
446
|
+ \thechapter{}.~\chaptertitle}
|
|
|
447
|
+ }{
|
|
|
448
|
+
|
|
|
449
|
+ }
|
|
|
450
|
+ }
|
|
|
451
|
+ }
|
|
|
452
|
+}
|
|
|
453
|
+% \end{macrocode}
|
|
|
454
|
+%
|
|
|
455
|
+%\paragraph{pagenumber} Cette option modifie le pied central \emph{via} la commande |\piedcentre| pour y rajouter le nombre total de page grâce au label |LastPage| introduit par le package |lastpage|.
|
|
|
456
|
+% \begin{macrocode}
|
|
|
457
|
+\DeclareOption{pagenumber}{
|
|
|
458
|
+ \AtEndOfPackage{
|
|
|
459
|
+ \RequirePackage{lastpage}
|
|
|
460
|
+ \renewcommand{\piedcentre}{
|
|
|
461
|
+ \setlength{\largeurfiletpiedcentre}
|
|
|
462
|
+ {2\largeurfiletpiedcentre}
|
|
|
463
|
+ \textcolor{bleu303}{\shortstack[c]{
|
|
|
464
|
+ \rule{\largeurfiletpiedcentre}{0.3mm}\\
|
|
|
465
|
+ \thepage/\pageref{LastPage}}}
|
|
|
466
|
+ }
|
|
|
467
|
+ }
|
|
|
468
|
+}
|
|
|
469
|
+% \end{macrocode}
|
|
|
470
|
+%
|
|
|
471
|
+%\paragraph{Autres options} Toute option passée au package qui n'est pas dans la liste ci-avant est repassée au package |geometry| (différentes tailles de papier).
|
|
|
472
|
+% \begin{macrocode}
|
|
|
473
|
+\DeclareOption*{
|
|
|
474
|
+ \PassOptionsToPackage{\CurrentOption}{geometry}
|
|
|
475
|
+}
|
|
|
476
|
+% \end{macrocode}
|
|
|
477
|
+%Enfin, on exécute les options standards utilisées par la classe article.
|
|
|
478
|
+% \begin{macrocode}
|
|
|
479
|
+\ExecuteOptions{a4paper,notitlepage,oneside}
|
|
|
480
|
+\ProcessOptions\relax
|
|
|
481
|
+% \end{macrocode}
|
|
|
482
|
+%\subsection{Chargement des packages externes}
|
|
|
483
|
+%
|
|
|
484
|
+%Le package |polytechnique| utilise de nombreux autres packages afin d'effectuer la mise en page. Ces packages sont appelés avec la commande |\RequirePackage| par le code ci-dessous.
|
|
|
485
|
+%\begin{description}
|
|
|
486
|
+%\item[calc] Pour faire des operations sur les longueurs.
|
|
|
487
|
+% \begin{macrocode}
|
|
|
488
|
+\RequirePackage{calc}
|
|
|
489
|
+% \end{macrocode}
|
|
|
490
|
+%\item[color] Pour colorer les éléments du titre en accord avec la charte graphique.
|
|
|
491
|
+% \begin{macrocode}
|
|
|
492
|
+\RequirePackage{color}
|
|
|
493
|
+% \end{macrocode}
|
|
|
494
|
+%\item[geometry] Pour redéfinir les marges de manière pratique.
|
|
|
495
|
+% \begin{macrocode}
|
|
|
496
|
+\RequirePackage{geometry}
|
|
|
497
|
+% \end{macrocode}
|
|
|
498
|
+%\item[graphicx] Pour insérer les images, en particulier les logos et les éléments graphiques.
|
|
|
499
|
+% \begin{macrocode}
|
|
|
500
|
+\RequirePackage{graphicx}
|
|
|
501
|
+% \end{macrocode}
|
|
|
502
|
+%\item[ifthen] Pour l'utilisation de la commande |\ifthenelse|\marg{condition}\marg{vrai}\marg{faux}.
|
|
|
503
|
+% \begin{macrocode}
|
|
|
504
|
+\RequirePackage{ifthen}
|
|
|
505
|
+% \end{macrocode}
|
|
|
506
|
+%\item[ifpdf] Pour détecter le mode de compilation du document.
|
|
|
507
|
+% \begin{macrocode}
|
|
|
508
|
+\RequirePackage{ifpdf}
|
|
|
509
|
+% \end{macrocode}
|
|
|
510
|
+%\item[lmodern] Pour les polices vectorielles.
|
|
|
511
|
+% \begin{macrocode}
|
|
|
512
|
+\RequirePackage{lmodern}
|
|
|
513
|
+% \end{macrocode}
|
|
|
514
|
+%\item[titlesec] Pour redéfinir les en-têtes et pieds de pages, ainsi que le format des titres de section.
|
|
|
515
|
+% \begin{macrocode}
|
|
|
516
|
+\RequirePackage[pagestyles]{titlesec}
|
|
|
517
|
+% \end{macrocode}
|
|
|
518
|
+%\end{description}
|
|
|
519
|
+%
|
|
|
520
|
+%\subsection{Couleurs}
|
|
|
521
|
+%
|
|
|
522
|
+%On définit des couleurs utilisées par le package définies par la charte graphique de l'École.
|
|
|
523
|
+% \begin{macrocode}
|
|
|
524
|
+\definecolor{bleu303}{RGB}{0,62,92}
|
|
|
525
|
+\definecolor{rouge485}{RGB}{213,43,30}
|
|
|
526
|
+\definecolor{bleu315}{RGB}{0,104,128}
|
|
|
527
|
+% \end{macrocode}
|
|
|
528
|
+%
|
|
|
529
|
+%\subsection{Logos et éléments graphiques}
|
|
|
530
|
+%
|
|
|
531
|
+%Les lignes suivantes servent à inclure les logos et éléments graphiques. Les fichiers correspondant doivent se trouver dans le même dossier que |polytechnique.sty|. |\ifpdf| exécute la première partie du code si le document est compilé avec |pdflatex|, et la deuxième si le document est compilé avec |latex|. Ceci permet d'utiliser des images vectorielles lorsque c'est possible.
|
|
|
532
|
+% \begin{macrocode}
|
|
|
533
|
+\ifpdf
|
|
|
534
|
+ \newcommand{\polyfiletlongrouge}{ressources/filetlongrouge.pdf}
|
|
|
535
|
+ \newcommand{\polyfiletcourtbleuclair}{ressources/filetcourtbleuclair.pdf}
|
|
|
536
|
+ \newcommand{\polyfiletcourtbleu}{ressources/filetcourtbleu.pdf}
|
|
|
537
|
+ \newcommand{\polylogovert}{ressources/logovert.pdf}
|
|
|
538
|
+ \newcommand{\polylogohori}{ressources/logohori.pdf}
|
|
|
539
|
+ \newcommand{\polyarmes}{ressources/armes.pdf}
|
|
|
540
|
+\else
|
|
|
541
|
+ \newcommand{\polyfiletlongrouge}{ressources/filetlongrouge.eps}
|
|
|
542
|
+ \newcommand{\polyfiletcourtbleuclair}{ressources/filetcourtbleuclair.eps}
|
|
|
543
|
+ \newcommand{\polyfiletcourtbleu}{ressources/filetcourtbleu.eps}
|
|
|
544
|
+ \newcommand{\polylogovert}{ressources/logovert.eps}
|
|
|
545
|
+ \newcommand{\polylogohori}{ressources/logohori.eps}
|
|
|
546
|
+ \newcommand{\polyarmes}{ressources/armes.eps}
|
|
|
547
|
+\fi
|
|
|
548
|
+% \end{macrocode}
|
|
|
549
|
+%
|
|
|
550
|
+%\subsection{Longeurs}
|
|
|
551
|
+%
|
|
|
552
|
+%Le package définit beaucoup de longueurs qui seront utilisées pour régler les marges, la taille des logos,la disposition des éléments sur la page de titre, les en-têtes...
|
|
|
553
|
+%
|
|
|
554
|
+%\subsubsection{Longueurs définies} On commence par définir quelques longueurs, choisies par la DIRCOM en accord avec la charte graphique.
|
|
|
555
|
+%
|
|
|
556
|
+%\paragraph{Marges}
|
|
|
557
|
+%\begin{macro}{\margehaut}
|
|
|
558
|
+%Longueur entre le haut de la page et le haut de la boîte de texte principal.
|
|
|
559
|
+% \begin{macrocode}
|
|
|
560
|
+\newlength{\margehaut}
|
|
|
561
|
+\setlength{\margehaut}{40mm}
|
|
|
562
|
+% \end{macrocode}
|
|
|
563
|
+%\end{macro}
|
|
|
564
|
+%\begin{macro}{\hauteurentete}
|
|
|
565
|
+%Longueur entre le haut de l'en-tête et le haut de la boîte de texte principale.
|
|
|
566
|
+% \begin{macrocode}
|
|
|
567
|
+\newlength{\hauteurentete}
|
|
|
568
|
+\setlength{\hauteurentete}{27mm}
|
|
|
569
|
+% \end{macrocode}
|
|
|
570
|
+%\end{macro}
|
|
|
571
|
+%\begin{macro}{\separationentente}
|
|
|
572
|
+%Longueur entre le bas de l'en-tête et le haut de la boîte de texte principale.
|
|
|
573
|
+% \begin{macrocode}
|
|
|
574
|
+\newlength{\separationentete}
|
|
|
575
|
+\setlength{\separationentete}{12mm}
|
|
|
576
|
+% \end{macrocode}
|
|
|
577
|
+%\end{macro}
|
|
|
578
|
+%\begin{macro}{\margecote}
|
|
|
579
|
+%Longueur de la marge des cotés, entre les côtés de la page et les côtés de la boîte de texte principale. Longueur utilisée par l'option |oneside|.
|
|
|
580
|
+% \begin{macrocode}
|
|
|
581
|
+\newlength{\margecote}
|
|
|
582
|
+\setlength{\margecote}{20mm}
|
|
|
583
|
+% \end{macrocode}
|
|
|
584
|
+%\end{macro}
|
|
|
585
|
+%\begin{macro}{\margecoteinterieur}
|
|
|
586
|
+%Longueur de la marge du côté intérieur. Longueur utilisée par l'option |twoside|.
|
|
|
587
|
+% \begin{macrocode}
|
|
|
588
|
+\newlength{\margecoteinterieur}
|
|
|
589
|
+\setlength{\margecoteinterieur}{22.5mm}
|
|
|
590
|
+% \end{macrocode}
|
|
|
591
|
+%\end{macro}
|
|
|
592
|
+%\begin{macro}{\margecoteexterieur}
|
|
|
593
|
+%Longueur de la marge du côté extérieur. Longueur utilisée par l'option |twoside|.
|
|
|
594
|
+% \begin{macrocode}
|
|
|
595
|
+\newlength{\margecoteexterieur}
|
|
|
596
|
+\setlength{\margecoteexterieur}{17.5mm}
|
|
|
597
|
+% \end{macrocode}
|
|
|
598
|
+%\end{macro}
|
|
|
599
|
+%\begin{macro}{\margebas}
|
|
|
600
|
+%Longueur entre le bas de la page et le bas de la boîte de texte principale.
|
|
|
601
|
+% \begin{macrocode}
|
|
|
602
|
+\newlength{\margebas}
|
|
|
603
|
+\setlength{\margebas}{35mm}
|
|
|
604
|
+% \end{macrocode}
|
|
|
605
|
+%\end{macro}
|
|
|
606
|
+%\begin{macro}{\separationpied}
|
|
|
607
|
+%Longueur entre le bas de la boîte de texte principale et le haut du pied de page.
|
|
|
608
|
+% \begin{macrocode}
|
|
|
609
|
+\newlength{\separationpied}
|
|
|
610
|
+\setlength{\separationpied}{17.5mm}
|
|
|
611
|
+% \end{macrocode}
|
|
|
612
|
+%\end{macro}
|
|
|
613
|
+%\paragraph{Taille des logos}
|
|
|
614
|
+%\begin{macro}{\hauteurlogohori}
|
|
|
615
|
+%Taille du logo horizontal de l'X utilisé dans les en-têtes.
|
|
|
616
|
+% \begin{macrocode}
|
|
|
617
|
+\newlength{\hauteurlogohori}
|
|
|
618
|
+\setlength{\hauteurlogohori}{15mm}
|
|
|
619
|
+% \end{macrocode}
|
|
|
620
|
+%\end{macro}
|
|
|
621
|
+%\paragraph{Page de titre} Ces longueurs sont utilisées sur la page de titre de l'option |notitlepage| uniquement (sauf |\hauteurlogopage|).
|
|
|
622
|
+%\begin{macro}{\separationtitre}
|
|
|
623
|
+%Longueur entre le haut de la page de titre et le haut de la première ligne contenant le logo vertical de l'École, les auteurs et la date.
|
|
|
624
|
+% \begin{macrocode}
|
|
|
625
|
+\newlength{\separationtitre}
|
|
|
626
|
+\setlength{\separationtitre}{15mm}
|
|
|
627
|
+% \end{macrocode}
|
|
|
628
|
+%\end{macro}
|
|
|
629
|
+%\begin{macro}{\epaisseurtrait}
|
|
|
630
|
+%Épaisseur des filets qui encadrent verticalement le titre.
|
|
|
631
|
+% \begin{macrocode}
|
|
|
632
|
+\newlength{\epaisseurtrait}
|
|
|
633
|
+\setlength{\epaisseurtrait}{1pt}
|
|
|
634
|
+% \end{macrocode}
|
|
|
635
|
+%\end{macro}
|
|
|
636
|
+%\begin{macro}{\separationlignestitre}
|
|
|
637
|
+%Longueur qui sépare le titre du sous-titre en plus de l'interligne normal.
|
|
|
638
|
+% \begin{macrocode}
|
|
|
639
|
+\newlength{\separationlignestitre}
|
|
|
640
|
+\setlength{\separationlignestitre}{3mm}
|
|
|
641
|
+% \end{macrocode}
|
|
|
642
|
+%\end{macro}
|
|
|
643
|
+%\begin{macro}{\separationtitrecorps}
|
|
|
644
|
+%Longueur entre le deuxième filet et le haut de la première ligne de texte après le titre.
|
|
|
645
|
+% \begin{macrocode}
|
|
|
646
|
+\newlength{\separationtitrecorps}
|
|
|
647
|
+\setlength{\separationtitrecorps}{15mm}
|
|
|
648
|
+% \end{macrocode}
|
|
|
649
|
+%\end{macro}
|
|
|
650
|
+%\begin{macro}{\hauteurlogopage}
|
|
|
651
|
+%Sur la page de titre de l'option |titlepage|, hauteur de l'image des armes de l'École en arrière-plan.
|
|
|
652
|
+% \begin{macrocode}
|
|
|
653
|
+\newlength{\hauteurlogopage}
|
|
|
654
|
+\setlength{\hauteurlogopage}{0.6\textheight}
|
|
|
655
|
+% \end{macrocode}
|
|
|
656
|
+%\end{macro}
|
|
|
657
|
+%\paragraph{En-têtes et pieds de page}
|
|
|
658
|
+%\begin{macro}{\separationentetelogo}
|
|
|
659
|
+%Longueur entre le côté intérieur du logo en en-tête et le côté intérieur de la minipage en en-tête qui contient le titre du document. Cette longueur est inutile avec les options |sectionmark|, |chaptermark| et |markboth|.
|
|
|
660
|
+% \begin{macrocode}
|
|
|
661
|
+\newlength{\separationentetelogo}
|
|
|
662
|
+\setlength{\separationentetelogo}{20mm}
|
|
|
663
|
+% \end{macrocode}
|
|
|
664
|
+%\end{macro}
|
|
|
665
|
+%\begin{macro}{\filetpiedcentre}
|
|
|
666
|
+%Largeur du filet au dessus du numéro de page dans le pied central.
|
|
|
667
|
+% \begin{macrocode}
|
|
|
668
|
+\newlength{\largeurfiletpiedcentre}
|
|
|
669
|
+\setlength{\largeurfiletpiedcentre}{4mm}
|
|
|
670
|
+% \end{macrocode}
|
|
|
671
|
+%\end{macro}
|
|
|
672
|
+%
|
|
|
673
|
+%\subsubsection{Longueur calculées}
|
|
|
674
|
+%
|
|
|
675
|
+%Les longueurs suivantes sont calculées à partir des longueurs précédentes.
|
|
|
676
|
+%
|
|
|
677
|
+%\paragraph{Taille des logos}
|
|
|
678
|
+%\begin{macro}{\largeurlogovert}
|
|
|
679
|
+%Selon la charte graphique, la largeur du logo vertical sur une page de titre est $y/7$ où $y$ est la largeur de la page.
|
|
|
680
|
+% \begin{macrocode}
|
|
|
681
|
+\newlength{\largeurlogovert}
|
|
|
682
|
+\setlength{\largeurlogovert}{\paperwidth/\real{7}}
|
|
|
683
|
+% \end{macrocode}
|
|
|
684
|
+%\end{macro}
|
|
|
685
|
+%\begin{macro}{\hauteurlogovert}
|
|
|
686
|
+%1.361 est le ration hauteur/largeur du logo vertical de l'École.
|
|
|
687
|
+% \begin{macrocode}
|
|
|
688
|
+\newlength{\hauteurlogovert}
|
|
|
689
|
+\setlength{\hauteurlogovert}{\largeurlogovert*\real{1.361}}
|
|
|
690
|
+% \end{macrocode}
|
|
|
691
|
+%\end{macro}
|
|
|
692
|
+%\begin{macro}{\largeurlogohori}
|
|
|
693
|
+%1.859 est le ration hauteur/largeur du logo vertical de l'École.
|
|
|
694
|
+% \begin{macrocode}
|
|
|
695
|
+\newlength{\largeurlogohori}
|
|
|
696
|
+\setlength{\largeurlogohori}{\hauteurlogohori*\real{1.859}}
|
|
|
697
|
+% \end{macrocode}
|
|
|
698
|
+%\end{macro}
|
|
|
699
|
+%\paragraph{Page de titre}
|
|
|
700
|
+%\begin{macro}{\distancetitrelogo}
|
|
|
701
|
+%Argument négatif d'un |\vspace| réglé pour que la distance verticale entre le haut de la page et le haut de la première ligne contenant le logo soit bien |\separationtitre|.
|
|
|
702
|
+% \begin{macrocode}
|
|
|
703
|
+\newlength{\distancetitrelogo}
|
|
|
704
|
+\setlength{\distancetitrelogo}{\separationtitre-\margehaut}
|
|
|
705
|
+% \end{macrocode}
|
|
|
706
|
+%\end{macro}
|
|
|
707
|
+%\begin{macro}{\separationlogotrait}
|
|
|
708
|
+%Distance entre le bas du logo et le premier filet de la page de titre.
|
|
|
709
|
+% \begin{macrocode}
|
|
|
710
|
+\newlength{\separationlogotrait}
|
|
|
711
|
+\setlength{\separationlogotrait}{-\baselineskip*2+10mm}
|
|
|
712
|
+% \end{macrocode}
|
|
|
713
|
+%\end{macro}
|
|
|
714
|
+%\begin{macro}{\largeurminipage}
|
|
|
715
|
+%Largeur des minipage contenant les auteurs et la date sur la page de titre.
|
|
|
716
|
+% \begin{macrocode}
|
|
|
717
|
+\newlength{\largeurminipage}
|
|
|
718
|
+\setlength{\largeurminipage}{(\textwidth-\largeurlogovert)/\real{2}}
|
|
|
719
|
+% \end{macrocode}
|
|
|
720
|
+%\end{macro}
|
|
|
721
|
+%\begin{macro}{\distancetitrecorps}
|
|
|
722
|
+%Argument d'un |\vspace| réglé pour que la distance verticale entre le deuxième filet et le haut de la première ligne du texte soit bien |\separationtitrecorps|.
|
|
|
723
|
+% \begin{macrocode}
|
|
|
724
|
+\newlength{\distancetitrecorps}
|
|
|
725
|
+\setlength{\distancetitrecorps}{\separationtitrecorps-\baselineskip*2}
|
|
|
726
|
+% \end{macrocode}
|
|
|
727
|
+%\end{macro}
|
|
|
728
|
+%\paragraph{En-têtes et pieds de page}
|
|
|
729
|
+%\begin{macro}{\largeurtitreentete}
|
|
|
730
|
+%Largeur de la minipage contenant le titre du document dans les en-têtes.
|
|
|
731
|
+% \begin{macrocode}
|
|
|
732
|
+\newlength{\largeurtitreentete}
|
|
|
733
|
+\setlength{\largeurtitreentete}{\textwidth-\largeurlogohori
|
|
|
734
|
+ -\separationentetelogo}
|
|
|
735
|
+% \end{macrocode}
|
|
|
736
|
+%\end{macro}
|
|
|
737
|
+%\begin{macro}{\decalageverticalentete}
|
|
|
738
|
+%Longeur ajustée pour que le titre ou la ligne d'en-tête intérieur soit alignée verticalement avec le « École polytechnique » du logo horizontal qui lui fait face. Le 2.6 remplit cette fonction.
|
|
|
739
|
+% \begin{macrocode}
|
|
|
740
|
+\newlength{\decalageverticalentete}
|
|
|
741
|
+\setlength{\decalageverticalentete}{\hauteurlogohori/\real{2.6}}
|
|
|
742
|
+% \end{macrocode}
|
|
|
743
|
+%\end{macro}
|
|
|
744
|
+%
|
|
|
745
|
+%\subsection{Marges,en-têteset pieds de page}
|
|
|
746
|
+%
|
|
|
747
|
+%On utilise les package |geometry| et |titlesec| pour les régler à l'aide des longueurs définies auparavant. Les marges gauches et droites sont définies par les options |oneside| et |twoside|.
|
|
|
748
|
+% \begin{macrocode}
|
|
|
749
|
+\geometry{
|
|
|
750
|
+ top=\margehaut,headheight=\hauteurentete,headsep=\separationentete,
|
|
|
751
|
+ bottom=\margebas,footskip=\separationpied
|
|
|
752
|
+}
|
|
|
753
|
+% \end{macrocode}
|
|
|
754
|
+%On définit d'abord les contenus des differents en-têtes et pieds de page.
|
|
|
755
|
+%\begin{macro}{\piedcentre}
|
|
|
756
|
+% \begin{macrocode}
|
|
|
757
|
+\newcommand{\piedcentre}{
|
|
|
758
|
+ \textcolor{bleu303}{\shortstack[c]
|
|
|
759
|
+ {\rule{\largeurfiletpiedcentre}{0.3mm}\\\thepage}}
|
|
|
760
|
+}
|
|
|
761
|
+% \end{macrocode}
|
|
|
762
|
+%\end{macro}
|
|
|
763
|
+%\begin{macro}{\enteteinterieur}
|
|
|
764
|
+%L'argument sert à insérer |\flushright| dans le cas ou l'en-tête est sur une page impaire.
|
|
|
765
|
+% \begin{macrocode}
|
|
|
766
|
+\newcommand{\enteteinterieur}[1]{
|
|
|
767
|
+ \raisebox{\decalageverticalentete}
|
|
|
768
|
+ {\begin{minipage}[b]{\largeurtitreentete}
|
|
|
769
|
+ \scshape#1\textcolor{bleu303}
|
|
|
770
|
+ \polytitresave
|
|
|
771
|
+ \end{minipage}}
|
|
|
772
|
+}
|
|
|
773
|
+% \end{macrocode}
|
|
|
774
|
+%\end{macro}
|
|
|
775
|
+%\begin{macro}{\enteteexterieur}
|
|
|
776
|
+% \begin{macrocode}
|
|
|
777
|
+\newcommand{\enteteexterieur}{
|
|
|
778
|
+ \includegraphics[height=\hauteurlogohori]{\polylogohori}
|
|
|
779
|
+}
|
|
|
780
|
+% \end{macrocode}
|
|
|
781
|
+%\end{macro}
|
|
|
782
|
+%Spécifications supplémentaires pur pair/impair, redéfinies par l'option |markboth|.
|
|
|
783
|
+%\begin{macro}{\enteteinterieurpair}
|
|
|
784
|
+% \begin{macrocode}
|
|
|
785
|
+\newcommand{\enteteinterieurpair}{
|
|
|
786
|
+ \enteteinterieur{}
|
|
|
787
|
+}
|
|
|
788
|
+% \end{macrocode}
|
|
|
789
|
+%\end{macro}
|
|
|
790
|
+%\begin{macro}{\entetinterieurimpair}
|
|
|
791
|
+% \begin{macrocode}
|
|
|
792
|
+\newcommand{\enteteinterieurimpair}{
|
|
|
793
|
+ \enteteinterieur{\flushright}
|
|
|
794
|
+}
|
|
|
795
|
+% \end{macrocode}
|
|
|
796
|
+%\end{macro}
|
|
|
797
|
+%\begin{macro}{\entetes}
|
|
|
798
|
+%Comme l'en-tête contient le titre, on les active uniquement quand le titre est defini d'ou cette forme de commande qui sera placée dans la commande |title| redéfinie.
|
|
|
799
|
+% \begin{macrocode}
|
|
|
800
|
+\newcommand{\entetes}{
|
|
|
801
|
+ \newpagestyle{polytechnique}{
|
|
|
802
|
+% \end{macrocode}
|
|
|
803
|
+%On definit un nouveau style d'en-tetes. Voir la documentation du package |titlesec| pour la syntaxe.
|
|
|
804
|
+% \begin{macrocode}
|
|
|
805
|
+ \sethead[\enteteinterieurpair]% left even
|
|
|
806
|
+ []% center even
|
|
|
807
|
+ [\enteteexterieur]% right even
|
|
|
808
|
+ {\enteteexterieur}% left odd
|
|
|
809
|
+ {}% center odd
|
|
|
810
|
+ {\enteteinterieurimpair}% right odd
|
|
|
811
|
+ \setfoot{}% left odd
|
|
|
812
|
+ {\piedcentre}% center odd
|
|
|
813
|
+ {}% right odd
|
|
|
814
|
+ }
|
|
|
815
|
+ \pagestyle{polytechnique}
|
|
|
816
|
+}
|
|
|
817
|
+% \end{macrocode}
|
|
|
818
|
+%\end{macro}
|
|
|
819
|
+%On redéfinit ensuite le style de page par défaut de la page de titre et des titres de chapitres, |plain|, pour qu'il soit en accord avec le reste du document.
|
|
|
820
|
+% \begin{macrocode}
|
|
|
821
|
+\renewpagestyle{plain}{
|
|
|
822
|
+ \sethead{}% left
|
|
|
823
|
+ {}% center
|
|
|
824
|
+ {}% right
|
|
|
825
|
+ \setfoot{}% left
|
|
|
826
|
+ {\piedcentre}% center
|
|
|
827
|
+ {}% right
|
|
|
828
|
+}
|
|
|
829
|
+% \end{macrocode}
|
|
|
830
|
+%Puisque les en-têtes normaux utilisent le titre, tant que le titre n'a pas été défini avec |\title| on laisse les en-têtes normaux par défaut.
|
|
|
831
|
+% \begin{macrocode}
|
|
|
832
|
+\pagestyle{plain}
|
|
|
833
|
+% \end{macrocode}
|
|
|
834
|
+%
|
|
|
835
|
+%\subsection{Pages de titre}
|
|
|
836
|
+%Grace aux commandes suivantes, on peut faire |\title|\marg{titre} au lieu de |\renewcommand{\polytitre}|\marg{titre}.
|
|
|
837
|
+%
|
|
|
838
|
+%On commence par définir un booléen |subtitle| vrai si et seulement si l'utilisateur a définit un sous-titre par la commande |\subtitle|.
|
|
|
839
|
+% \begin{macrocode}
|
|
|
840
|
+\newboolean{subtitle}\setboolean{subtitle}{false}
|
|
|
841
|
+% \end{macrocode}
|
|
|
842
|
+%\begin{macro}{\polysoustitresave}
|
|
|
843
|
+%À voir comme une variable dans laquelle on stocke une valeur.
|
|
|
844
|
+% \begin{macrocode}
|
|
|
845
|
+\newcommand{\polysoustitresave}{}
|
|
|
846
|
+% \end{macrocode}
|
|
|
847
|
+%\end{macro}
|
|
|
848
|
+%\begin{macro}{\subtitle}
|
|
|
849
|
+%Commande par laquelle l'utilisateur définit le sous-titre.
|
|
|
850
|
+% \begin{macrocode}
|
|
|
851
|
+\newcommand*{\subtitle}[1]{
|
|
|
852
|
+ \renewcommand*{\polysoustitresave}{#1}
|
|
|
853
|
+% \end{macrocode}
|
|
|
854
|
+%Si le sous-titre a éé défini, on met le booléen |subtitle| à vrai.
|
|
|
855
|
+% \begin{macrocode}
|
|
|
856
|
+ \setboolean{subtitle}{true}
|
|
|
857
|
+}
|
|
|
858
|
+% \end{macrocode}
|
|
|
859
|
+%\end{macro}
|
|
|
860
|
+%\begin{macro}{\polytitresave}
|
|
|
861
|
+%Idem que |\polysoustitresave|.
|
|
|
862
|
+% \begin{macrocode}
|
|
|
863
|
+\newcommand{\polytitresave}{}
|
|
|
864
|
+% \end{macrocode}
|
|
|
865
|
+%\end{macro}
|
|
|
866
|
+%\begin{macro}{\title}
|
|
|
867
|
+%Commande utilisée par l'utilisateur pour définit le titre. Comme les en-tête dépendent du titre, on les définit une fois qu'on connaît le titre.
|
|
|
868
|
+% \begin{macrocode}
|
|
|
869
|
+\renewcommand*{\title}[1]{
|
|
|
870
|
+ \renewcommand*{\polytitresave}{#1}
|
|
|
871
|
+ \entetes
|
|
|
872
|
+}
|
|
|
873
|
+% \end{macrocode}
|
|
|
874
|
+%\end{macro}
|
|
|
875
|
+%\begin{macro}{\polyauthorsave}
|
|
|
876
|
+%Idem que |polysoustitresave| et |\polytitresave|.
|
|
|
877
|
+% \begin{macrocode}
|
|
|
878
|
+\newcommand{\polyauthorsave}{}
|
|
|
879
|
+% \end{macrocode}
|
|
|
880
|
+%\end{macro}
|
|
|
881
|
+%\begin{macro}{\author}
|
|
|
882
|
+% \begin{macrocode}
|
|
|
883
|
+\renewcommand*{\author}[1]{
|
|
|
884
|
+ \renewcommand*{\polyauthorsave}{#1}
|
|
|
885
|
+}
|
|
|
886
|
+% \end{macrocode}
|
|
|
887
|
+%\end{macro}
|
|
|
888
|
+%\begin{macro}{\polydatesave}
|
|
|
889
|
+%|\today| est la date du jour dans la langue qu'il faut si |babel| est actif.
|
|
|
890
|
+% \begin{macrocode}
|
|
|
891
|
+\newcommand{\polydatesave}{\today}
|
|
|
892
|
+% \end{macrocode}
|
|
|
893
|
+%\end{macro}
|
|
|
894
|
+%\begin{macro}{\date}
|
|
|
895
|
+% \begin{macrocode}
|
|
|
896
|
+\renewcommand*{\date}[1]{
|
|
|
897
|
+ \renewcommand*{\polydatesave}{#1}
|
|
|
898
|
+}
|
|
|
899
|
+% \end{macrocode}
|
|
|
900
|
+%\end{macro}
|
|
|
901
|
+%\begin{macro}{\polylogosup}
|
|
|
902
|
+%Logo(s) de bas de page pour l'option |titlepage|. C'est une variable de stockage initialisee par defaut au logo de l'École vertical.
|
|
|
903
|
+% \begin{macrocode}
|
|
|
904
|
+\newcommand{\polylogosup}{
|
|
|
905
|
+\includegraphics[height=\hauteurlogovert]{\polylogovert}
|
|
|
906
|
+}
|
|
|
907
|
+% \end{macrocode}
|
|
|
908
|
+%\end{macro}
|
|
|
909
|
+%\begin{macro}{\logo}
|
|
|
910
|
+%Commande utilisée par l'utilisateur pour définir un deuxième logo.
|
|
|
911
|
+% \begin{macrocode}
|
|
|
912
|
+\newcommand{\logo}[1]{
|
|
|
913
|
+% \end{macrocode}
|
|
|
914
|
+%On redefinit la variable |\polylogosup|.
|
|
|
915
|
+% \begin{macrocode}
|
|
|
916
|
+ \renewcommand{\polylogosup}{
|
|
|
917
|
+ \includegraphics[height=1.5\hauteurlogohori]
|
|
|
918
|
+ {\polylogohori}
|
|
|
919
|
+ \hspace{0.05\textwidth}
|
|
|
920
|
+% \end{macrocode}
|
|
|
921
|
+%Pour une certaine harmonie, on ne laisse pas à l'utilisateur le choix des dimensions du logo. Celles-ci sont déterminées en fonction des dimensions du logo horizontal de l'X pour que les deux logos aient des proportions similaires.
|
|
|
922
|
+% \begin{macrocode}
|
|
|
923
|
+ \includegraphics[height=\hauteurlogovert,
|
|
|
924
|
+ width=1.5\largeurlogohori,
|
|
|
925
|
+ keepaspectratio]{#1}%
|
|
|
926
|
+ }
|
|
|
927
|
+}
|
|
|
928
|
+% \end{macrocode}
|
|
|
929
|
+%\end{macro}
|
|
|
930
|
+%
|
|
|
931
|
+%\subsection{Divers}
|
|
|
932
|
+%
|
|
|
933
|
+%\begin{macro}{\MakeUppercaseWithNewline}
|
|
|
934
|
+%Permet de mettre plusieurs lignes en majuscules (pour le titre).
|
|
|
935
|
+% \begin{macrocode}
|
|
|
936
|
+\newcommand{\MakeUppercaseWithNewline}[1]{
|
|
|
937
|
+ \begingroup
|
|
|
938
|
+ \let\SavedOrgNewline\\%
|
|
|
939
|
+ \DeclareRobustCommand{\\}{\SavedOrgNewline}%
|
|
|
940
|
+ \MakeUppercase{#1}%
|
|
|
941
|
+ \endgroup
|
|
|
942
|
+}
|
|
|
943
|
+% \end{macrocode}
|
|
|
944
|
+%\end{macro}
|
|
|
945
|
+%\Finale
|
|
|
946
|
+%
|
|
|
947
|
+%\typeout{****************************************************}
|
|
|
948
|
+%\typeout{* *}
|
|
|
949
|
+%\typeout{* Pour finir l'installation, deplacez les fichiers *}
|
|
|
950
|
+%\typeout{* polytechnique.sty, les .pdf et les .eps dans le *}
|
|
|
951
|
+%\typeout{* dossier ou se trouvent les packages de votre di- *}
|
|
|
952
|
+%\typeout{* tribution (si ce n'est pas deja fait). *}
|
|
|
953
|
+%\typeout{* *}
|
|
|
954
|
+\PrintChanges
|
|
|
955
|
+\endinput
|