Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • ines.fonquernie/polytechnique
  • julien.griffon/polytechnique
  • typographix/polytechnique
  • stanislas.radziszewski/polytechnique
  • mael.madon/polytechnique
  • ghada.ben-slama/polytechnique
  • bbrman/polytechnique
  • amadou.dieye/polytechnique
  • william.lenglet/polytechnique
  • soukaina.bruneau/polytechnique
10 results
Show changes
File added
File added
......@@ -2,16 +2,15 @@
%
% For explanation on this file, see http://texdoc.net/texmf-dist/doc/latex/dtxtut/dtxtut.pdf
%
% Copyright (C) 2015 i by Denis Merigoux
%
% This file may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
% version 1.2 of this license or (at your option) any later
% version 1.3c of this license or (at your option) any later
% version. The latest version of this license is in:
%
% http://www.latex-project.org/lppl.txt
%
% and version 1.2 or later is part of all distributions of
% and version 1.3c or later is part of all distributions of
% LaTeX version 1999/12/01 or later.
%
% \fi
......@@ -19,7 +18,7 @@
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{polytechnique}
%<package> [2015/04/29 v1.3.0, standard scientific documents layout for Ecole polytechnique (Palaiseau,France).]
%<package> [2022/04/29 v1.3.10, standard scientific documents layout for Ecole polytechnique (Palaiseau,France).]
%
%<*batchfile>
\begingroup
......@@ -30,16 +29,15 @@
\preamble
This is a generated file.
Copyright (C) 2015 by Denis Merigoux
This file may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either
version 1.2 of this license or (at your option) any later
version 1.3c of this license or (at your option) any later
version. The latest version of this license is in:
http://www.latex-project.org/lppl.txt
and version 1.2 or later is part of all distributions of
and version 1.3c or later is part of all distributions of
LaTeX version 1999/12/01 or later.
\endpreamble
......@@ -71,7 +69,8 @@ LaTeX version 1999/12/01 or later.
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage[pagenumber,fancysections,sectionmark]{polytechnique}
\usepackage[hidelinks]{hyperref}
\usepackage[fancysections,titlepage,sectionmark]{polytechnique}
\makeatletter
\renewcommand{\index@prologue}{\section*{Index}%Redéfinit le texte avant l'index
%Commande issue de tex/latex/base/doc.sty
......@@ -86,7 +85,14 @@ LaTeX version 1999/12/01 or later.
\end{document}
%</driver>
% \fi
%
%\changes{v1.3.10}{2022/04/29}{Modifie la doc sur l'installation du package dans Windows, modifie la numérotation des pages après la titlepage}
%\changes{v1.3.9}{2020/04/03}{Ajoute de la doc sur l'utilisation dans overleaf}
%\changes{v1.3.8}{2020/04/02}{Fixe la dépendance de l'option titlepage en fonction de la documentclass}
%\changes{v1.3.7}{2020/02/13}{Mis à jour des logos pour inclure l'I.P.P.}
%\changes{v1.3.5}{2017/09/02}{Travail sur les scripts d'installation, couleurs des logos, ajout d'options, correction de bugs}
%\changes{v1.3.4}{2016/01/17}{Correction de bugs, ajout du logo en en-tête, ajout du titre court en en-tête, compatibilité avec d'autres classes}
%\changes{v1.3.3}{2015/07/04}{Correction de bugs, inversion des en-têtes exterieur/interieur}
%\changes{v1.3.2}{2015/05/27}{Code réorganisé et installation facilitée}
%\changes{v1.3.0}{2015/04/29}{Ajout des options oneside, twoside, sectionmark, chaptermark, markboth, pagenumber}
%\changes{v1.2.2}{2015/02/18}{Recadrage du logo horizontal}
%\changes{v1.2.1}{2015/02/16}{Correction du bug title vide ou author vide}
......@@ -105,7 +111,8 @@ LaTeX version 1999/12/01 or later.
%
%\title{Le package \textsf{polytechnique}}
%\subtitle{\fileversion{} datée du \filedate.}
%\author{Denis Merigoux}
%\author{Par TypographiX}
%\logo[typographix.pdf]{typographix.pdf}
%
%\maketitle
%
......@@ -118,53 +125,66 @@ LaTeX version 1999/12/01 or later.
%\renewcommand{\contentsname}{Sommaire}
%\tableofcontents
%\clearpage
%\newgeometry{
% top=\margehaut,headheight=\hauteurentete,headsep=\separationentete,
% bottom=\margebas,footskip=\separationpied,left=\margecote,right=\margecote,includemp
%}
%\section{Utilisation}
%
%\subsection{Chargement du package}
%Pour utiliser le package, il suffit d'inclure dans le préambule de son document la ligne :
%\begin{verbatim}
% \usepackage{polytechnique}
%\end{verbatim}
%On se reportera à la section \ref{options} page \pageref{options} pour l'utilisation des options du package.
%
%\subsection{Métadonnées du document}
%
%Il faut également définir dans le préambule les métadonnées du document, avec deux nouveaux champs optionnels |\subtitle| et |\logo| :
%La page de titre est gérée entièrement par le package. Pour la définir, il faut signaler dans le préambule les métadonnées du document qui apparaîtront sur la page de titre, avec deux nouveaux champs optionnels |\subtitle| et |\logo| par rapport au \LaTeX{} standard, et une modification de |\title|~:
%\begin{itemize}
%\item \DescribeMacro{\subtitle}|\subtitle|\marg{sous-titre} où \meta{sous-titre} peut être sur plusieurs lignes séparées par des |\\| ;
%\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.
%\item |\subtitle|\marg{sous-titre} où \meta{sous-titre} peut être sur plusieurs lignes séparées par des |\\| ;
%\item |\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. Par défaut, en recto-verso, le logo principal est utilisé dans les en-têtes des pages impaires. On peut mettre un deuxième logo (éventuellement le même) dans les en-têtes avec |\logo|\oarg{chemin image d'en-têtes}\marg{chemin}. Le logo apparaîtra alors sur toute les pages en mode recto et une page sur deux en mode recto-verso.
%\item |\title|\oarg{titre court}\marg{titre} où \emph{titre court} est facultatif. Il permet, si votre vrai titre est long et ne vous plaît pas dans les en-têtes, de mettre un titre court en en-tête.
%\end{itemize}
%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.
%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 apparaîtra sur les deux pages de titre différentes (option |titlepage| ou |notitlepage|) dont il modifiera la présentation en conséquence.
%Cela donne dans son préambule :
%\begin{verbatim}
% \title{Le titre}
% \title[Le titre court (optionnel)]{Le titre}
% \subtitle{Le sous-titre (optionnel, enlever cette ligne sinon)}
% \author{L'auteur Prénom \textsc{Nom}
% (si plusieurs séparer par des \\)}
% (si plusieurs séparer par des \\)}
% \date{La date, enlever la ligne pour avoir la date du jour}
% %\logo{Chemin relatif vers le logo}
% %\logo[headers]{Chemin relatif vers le logo}
%\end{verbatim}
%
%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 |\\|.
%
%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.
%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 pour |\author| afin de gagner en place horizontalement :
%\begin{verbatim}
%\author{
% \begin{tabular}{rlcrl}
% Coordinateur :&Jean Dupont&---&Tuteur :&Paul Martin
% \end{tabular}
% \\[\baselineskip]
% \begin{tabular}{ccc}
% Nom1&Nom2&Nom3\\
% Nom4&Nom5&Nom6
% \end{tabular}
%}
%\end{verbatim}
%On veillera cependant à utiliser cette présentation sur la page de garde grand format (option |titlepage|), il n'y a pas la place sur la page de garde courte.
%
%\clearpage
%\section{Options}
%\label{options}
%
%\subsection{Options globales}
%\subsection{Options globales}\label{globaloptions}
%
%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 :
%\begin{verbatim}
% \documenclass[titlepage,11pt,a4paper]{article}
% \documentclass[titlepage,11pt,a4paper]{article}
%\end{verbatim}
%
%Voici la liste des options globales qui sont reprises par le package :
%\begin{description}
%\item[oneside] C'est le comportement par défaut, les en-têtes et les marges seront les mêmes pour toutes les pages.
%\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.
%\item[notitlepage] Comportement par défaut pour la classe |article|. |\maketitle| produit son résultat sur un quart de page environ.
%\item[titlepage] Comportement par défaut pour les classes |report| et |book|.
%\item[a4paper] Signifie à \LaTeX{} que le format de la feuille est A4. À inclure systématiquement pour éviter les mauvaises surprises.
%\end{description}
%
......@@ -176,9 +196,11 @@ LaTeX version 1999/12/01 or later.
%\end{center}
%En voici la liste :
%\begin{description}
%\item[notitlepage] Comportement par défaut pour la classe |article|. |\maketitle| produit son résultat sur un quart de page environ.
%\item[titlepage] Comportement par défaut pour les classes |report| et |book|. Produit une belle page de couverture avec les armes en arrière-plan.
%\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.
%\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}.
%\item[sectionmark] Affiche en en-tête intérieur le titre de la section courante plutôt que le titre du document.
%\item[sectionmark] Affiche en en-tête intérieur le titre de la section courante plutôt que le titre du document, ou une page sur deux si le document est recto-verso.
%\item[chaptermark] Idem que l'option précédente avec le titre du chapitre courant. Ne peut être utilisé avec la classe |article|.
%\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.
%\end{description}
......@@ -189,13 +211,17 @@ LaTeX version 1999/12/01 or later.
% \PrintIndex
%}
%\clearpage
%\newgeometry{
% top=\margehaut,headheight=\hauteurentete,headsep=\separationentete,
% bottom=\margebas,footskip=\separationpied,left=\margecote,right=\margecote,includemp
%}
%\section{Code source}
%
%\subsection{Déclaration des options}
%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.
%
%\paragraph{a4paper}
%Passe l'option |a4paper| declarée au package |geometry| pour action. L'option est aussi reconnue depuis les options passées a |\documentclass|.
%Passe l'option |a4paper| declarée au package |geometry| pour action. L'option est aussi reconnue depuis les options passées à |\documentclass|.
% \begin{macrocode}
\DeclareOption{a4paper}{
\PassOptionsToPackage{a4paper}{geometry}
......@@ -217,12 +243,13 @@ LaTeX version 1999/12/01 or later.
\titleformat{\section}
[display]
{\color{rouge485}\LARGE\bfseries\sffamily\filcenter}
{\thesection}{0em}
{\MakeUppercase}
{\thesection}
{0em}
{\MakeUppercaseWithNewline}
[\vspace*{-0.5\baselineskip}%
\includegraphics{\polyfiletlongrouge}]
\titleformat{\subsection}
[hang]
[block]
{\color{bleu315}\Large\scshape}
{\thesubsection}
{0.5em}
......@@ -241,73 +268,17 @@ LaTeX version 1999/12/01 or later.
% \end{macrocode}
%
%\paragraph{notitlepage}
%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|.
%Cette option activée par défaut pour |article| 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.
% \begin{macrocode}
\DeclareOption{notitlepage}{
\AtBeginDocument{
\renewcommand*{\maketitle}{
\thispagestyle{plain}
\vspace*{\distancetitrelogo}
% \end{macrocode}
% D'abord le bloc de gauche avec le nom des auteurs.
% \begin{macrocode}
\noindent
\begin{minipage}[b]{\largeurminipage}
\hspace{0cm}\polyauthorsave
\end{minipage}
% \end{macrocode}
%La |minipage| permet les sauts de ligne pour avoir plusieurs auteurs, et |\hspace{0cm}| sert a ne pas faire une minipage vide si |\polyauthorsave={}|.
% \begin{macrocode}
\hspace*{\fill}
% \end{macrocode}
%Les blocs sont séparés par des ressorts horizontaux. Vient ensuite le bloc central avec le logo de l'X.
% \begin{macrocode}
\includegraphics[width=\largeurlogovert]{\polylogovert}
\hspace*{\fill}
% \end{macrocode}
%Et pour conclure la première ligne le bloc de droite qui contient la |\date|.
% \begin{macrocode}
\begin{minipage}[b]{\largeurminipage}
\flushright\hspace{0cm}\polydatesave
\end{minipage}
% \end{macrocode}
%Le |\hspace{0cm}| sert a ne pas faire une minipage vide si |\polydatesave={}|.
% \begin{macrocode}
\\[\separationlogotrait]
% \end{macrocode}
%Deux filets horizontaux, le titre et le sous-titre sont au milieu.
% \begin{macrocode}
\begin{center}
\textcolor{bleu303}{\rule{\textwidth}{\epaisseurtrait}}
\\
\color{bleu303}\Huge\scshape
\MakeUppercaseWithNewline{\polytitresave}
% \end{macrocode}
%La ligne qui précède affiche le titre. La commande |\MakeUpperCaseWithNewLine| sera définie par la suite.
% \begin{macrocode}
\ifthenelse{\boolean{subtitle}}{
% \end{macrocode}
%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.
% \begin{macrocode}
\\[\separationlignestitre]
\Large\upshape\polysoustitresave\\\normalsize
}{
% \end{macrocode}
%Et maintenant, s'il n'y en a pas.
% \begin{macrocode}
\\
\normalsize
}
\textcolor{bleu303}{\rule{\textwidth}{\epaisseurtrait}}
\end{center}
\vspace*{\distancetitrecorps}
}
\notitlepagelayout{}
}
}
% \end{macrocode}
%
%\paragraph{titlepage}
%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 :
%Option par défaut pour |report| et |book| qui active une page de garde où le titre prend toute la page. La page de garde comporte :
%\begin{itemize}
%\item les armes de l'École en arrière-plan ;
%\item le titre en capitales bleues ;
......@@ -318,46 +289,8 @@ LaTeX version 1999/12/01 or later.
%\end{itemize}
% \begin{macrocode}
\DeclareOption{titlepage}{
\AtBeginDocument{
\renewcommand*{\maketitle}{
% \end{macrocode}
%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.
% \begin{macrocode}
\noindent\makebox[\textwidth][c]{%
\raisebox{-\totalheight}[0pt][0pt]{%
\includegraphics[height=\hauteurlogopage]{\polyarmes}}}
% \end{macrocode}
%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.
% \begin{macrocode}
\vspace*{0.125\textheight}
\begin{center}
\Huge\sffamily\bfseries\color{bleu303}
\MakeUppercaseWithNewline{\polytitresave}\\
% \end{macrocode}
%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={}|.
% \begin{macrocode}
\vspace*{0.2\textheight}
\LARGE\hspace{0cm}\polysoustitresave\\
% \end{macrocode}
%Ce qui suit est la date, idem pour le |\hspace{0cm}|.
% \begin{macrocode}
\vspace*{0.15\textheight}
\Large\mdseries\hspace{0cm}\polydatesave\\
\includegraphics{\polyfiletcourtbleu}
\\[0.4\baselineskip]
% \end{macrocode}
%Ce qui suit affiche les auteurs, idem pour le |\hspace{0cm}|.
% \begin{macrocode}
\rmfamily\hspace{0cm}\polyauthorsave\\[\fill]
% \end{macrocode}
%Enfin, le(s) logo(s) en bas de la page. On rabote la marge basse habituelle avec le |\vspace*{-0.5\margebas}|.
% \begin{macrocode}
$\;$\polylogosup{}
\vspace*{-0.5\margebas}
\end{center}
\thispagestyle{empty}
\clearpage
}
\titlepagelayout{}
}
}
% \end{macrocode}
......@@ -366,7 +299,7 @@ LaTeX version 1999/12/01 or later.
% \begin{macrocode}
\DeclareOption{oneside}{
\AtEndOfPackage{
\geometry{left=\margecote,right=\margecote}
\geometry{inner=\margecote,outer=\margecote}
}
}
% \end{macrocode}
......@@ -381,14 +314,14 @@ LaTeX version 1999/12/01 or later.
}
% \end{macrocode}
%
%\paragraph{sectionmark} Met le titre de la section en cours plutôt que le titre du document dans les en-têtes.
%\paragraph{sectionmark} Met le titre de la section en cours plutôt que le titre du document dans les en-têtes. Si le document est recto-verso, on met une page sur deux le titre du document, et une page sur deux le titre de la section.
% \begin{macrocode}
\DeclareOption{sectionmark}{
\AtEndOfPackage{
% \end{macrocode}
%On redéfinit pour cela la commande des en-têtes intérieurs.
%On redéfinit pour cela la commande des en-têtes extérieurs.
% \begin{macrocode}
\renewcommand{\enteteinterieur}[1]{
\renewcommand{\enteteexterieurimpair}{
% \end{macrocode}
%|\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|.
% \begin{macrocode}
......@@ -396,9 +329,11 @@ LaTeX version 1999/12/01 or later.
% \end{macrocode}
%S'il y a une section courante, on affiche son titre en en-tête intérieur.
% \begin{macrocode}
\raisebox{\decalageverticalentete}
\begin{minipage}{\largeurtitreentete}
\flushleft
{\scshape\color{bleu303}
\thesection{}.~\sectiontitle}
\end{minipage}
}{
% \end{macrocode}
%Si pas de section courante définie, on ne met rien dans l'en-tête intérieur.
......@@ -413,11 +348,13 @@ LaTeX version 1999/12/01 or later.
% \begin{macrocode}
\DeclareOption{chaptermark}{
\AtEndOfPackage{
\renewcommand{\enteteinterieur}[1]{
\ifthechapter{
\raisebox{\decalageverticalentete}
{\scshape\color{bleu303}
\thechapter{}.~\chaptertitle}
\renewcommand{\enteteexterieurimpair}{
\begin{minipage}{\largeurtitreentete}
\flushleft
\ifthechapter{
{\scshape\color{bleu303}
\thechapter{}.~\chaptertitle}
\end{minipage}
}{
}
......@@ -426,24 +363,28 @@ LaTeX version 1999/12/01 or later.
}
% \end{macrocode}
%
%\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.
%\paragraph{markboth} L'option est un mélange des deux options précédentes, voir la documentation utilisateur. On redéfinit alors |\enteteexterieurpair| et |\enteteexterieurimpair| 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.
% \begin{macrocode}
\DeclareOption{markboth}{
\AtEndOfPackage{
\renewcommand{\enteteinterieurimpair}{
\ifthesection{%Si la section a ete definie
\raisebox{\decalageverticalentete}
{\scshape\color{bleu303}
\thesection{}.~\sectiontitle}
\begin{minipage}{\largeurtitreentete}
\flushleft
\renewcommand{\enteteexterieurimpair}{
\ifthesection{%Si la section a ete definie
{\scshape\color{bleu303}
\thesection{}.~\sectiontitle}
\end{minipage}
}{
}
}
\renewcommand{\enteteinterieurpair}{
\ifthechapter{
\raisebox{\decalageverticalentete}
{\scshape\color{bleu303}
\thechapter{}.~\chaptertitle}
\renewcommand{\enteteexterieurpair}{
\begin{minipage}{\largeurtitreentete}
\flushleft
\ifthechapter{
{\scshape\color{bleu303}
\thechapter{}.~\chaptertitle}
\end{minipage}
}{
}
......@@ -468,60 +409,57 @@ LaTeX version 1999/12/01 or later.
}
% \end{macrocode}
%
%\paragraph{Grandes marges} Pour les documents trop denses avec les marges standard.
% \begin{macrocode}
\newif\ifgrandesmarges
\grandesmargesfalse
\DeclareOption{enmanquedinspiration}{
\grandesmargestrue
}
% \end{macrocode}
%\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).
% \begin{macrocode}
\DeclareOption*{
\PassOptionsToPackage{\CurrentOption}{geometry}
}
% \end{macrocode}
%Enfin, on exécute les options standards utilisées par la classe article.
%On exécute les options titlepage en fonction de la classe.
% \begin{macrocode}
\@ifclassloaded{book}{
\ExecuteOptions{titlepage}
}{}
\@ifclassloaded{report}{
\ExecuteOptions{titlepage}
}{}
\@ifclassloaded{article}{
\ExecuteOptions{notitlepage}
}{}
% \end{macrocode}
%Enfin, on exécute les options standards.
% \begin{macrocode}
\ExecuteOptions{a4paper,notitlepage,oneside}
\ProcessOptions\relax
\ExecuteOptions{a4paper,oneside}
\ProcessOptions*
% \end{macrocode}
%\subsection{Chargement des packages externes}
%
%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.
%\begin{description}
%\item[calc] Pour faire des operations sur les longueurs.
% \begin{macrocode}
\RequirePackage{calc}
% \end{macrocode}
%\item[color] Pour colorer les éléments du titre en accord avec la charte graphique.
% \begin{macrocode}
\RequirePackage{color}
% \end{macrocode}
%\item[geometry] Pour redéfinir les marges de manière pratique.
% \begin{macrocode}
\RequirePackage{xcolor}
\RequirePackage{geometry}
% \end{macrocode}
%\item[graphicx] Pour insérer les images, en particulier les logos et les éléments graphiques.
% \begin{macrocode}
\RequirePackage{graphicx}
% \end{macrocode}
%\item[ifthen] Pour l'utilisation de la commande |\ifthenelse| \marg{condition} \marg{vrai} \marg{faux}.
% \begin{macrocode}
\RequirePackage{ifthen}
% \end{macrocode}
%\item[ifpdf] Pour détecter le mode de compilation du document.
% \begin{macrocode}
\RequirePackage{ifpdf}
% \end{macrocode}
%\item[lmodern] Pour les polices vectorielles.
% \begin{macrocode}
\RequirePackage{lmodern}
% \end{macrocode}
%\item[titlesec] Pour redéfinir les en-têtes et pieds de pages, ainsi que le format des titres de section.
% \begin{macrocode}
\RequirePackage[pagestyles]{titlesec}
% \end{macrocode}
%\end{description}
%
%\subsection{Couleurs}
%
%On définit des couleurs utilisées par le package définies par la charte graphique de l'École.
% \begin{macrocode}
\definecolor{bleu303}{RGB}{0,62,92}
\colorlet{bleu303pale}{bleu303!20!white}
\definecolor{rouge485}{RGB}{213,43,30}
\definecolor{bleu315}{RGB}{0,104,128}
% \end{macrocode}
......@@ -531,21 +469,31 @@ LaTeX version 1999/12/01 or later.
%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.
% \begin{macrocode}
\ifpdf
\newcommand{\polyfiletlongrouge}{ressources/filetlongrouge.pdf}
\newcommand{\polyfiletcourtbleuclair}
{ressources/filetcourtbleuclair.pdf}
\newcommand{\polyfiletcourtbleu}{ressources/filetcourtbleu.pdf}
\newcommand{\polylogovert}{ressources/logovert.pdf}
\newcommand{\polylogohori}{ressources/logohori.pdf}
\newcommand{\polyarmes}{ressources/armes.pdf}
\newcommand{\polyfiletlongrouge}
{polytechnique-filetlongrouge.pdf}
\newcommand{\polyfiletcourt}
{polytechnique-filetcourt.pdf}
\let\polyfiletcourtbleuclair\polyfiletcourt
\let\polyfiletcourtbleu\polyfiletcourt
\newcommand{\polylogovert}
{polytechnique-logovert.pdf}
\newcommand{\polylogohori}
{polytechnique-logohori.pdf}
\newcommand{\polyarmes}
{polytechnique-armes.pdf}
\else
\newcommand{\polyfiletlongrouge}{ressources/filetlongrouge.eps}
\newcommand{\polyfiletlongrouge}
{polytechnique-filetlongrouge.eps}
\newcommand{\polyfiletcourtbleuclair}
{ressources/filetcourtbleuclair.eps}
\newcommand{\polyfiletcourtbleu}{ressources/filetcourtbleu.eps}
\newcommand{\polylogovert}{ressources/logovert.eps}
\newcommand{\polylogohori}{ressources/logohori.eps}
\newcommand{\polyarmes}{ressources/armes.eps}
{polytechnique-filetcourtbleuclair.eps}
\newcommand{\polyfiletcourtbleu}
{polytechnique-filetcourtbleu.eps}
\newcommand{\polylogovert}
{polytechnique-logovert.eps}
\newcommand{\polylogohori}
{polytechnique-logohori.eps}
\newcommand{\polyarmes}
{polytechnique-armes.eps}
\fi
% \end{macrocode}
%
......@@ -617,7 +565,7 @@ LaTeX version 1999/12/01 or later.
%Taille du logo horizontal de l'X utilisé dans les en-têtes.
% \begin{macrocode}
\newlength{\hauteurlogohori}
\setlength{\hauteurlogohori}{15mm}
\setlength{\hauteurlogohori}{20mm}
% \end{macrocode}
%\end{macro}
%\paragraph{Page de titre} Ces longueurs sont utilisées sur la page de titre de l'option |notitlepage| uniquement (sauf |\hauteurlogopage|).
......@@ -649,6 +597,15 @@ LaTeX version 1999/12/01 or later.
\setlength{\separationtitrecorps}{15mm}
% \end{macrocode}
%\end{macro}
% \begin{macrocode}
\ifgrandesmarges
\setlength\margecote{1.5\margecote}
\setlength\margehaut{1.2\margehaut}
\setlength\margebas{1.2\margebas}
\setlength\margecoteinterieur{1.5\margecoteinterieur}
\setlength\margecoteexterieur{1.5\margecoteexterieur}
\fi
% \end{macrocode}
%\begin{macro}{\hauteurlogopage}
%Sur la page de titre de l'option |titlepage|, hauteur de l'image des armes de l'École en arrière-plan.
% \begin{macrocode}
......@@ -718,7 +675,7 @@ LaTeX version 1999/12/01 or later.
% \begin{macrocode}
\newlength{\largeurminipage}
\setlength{\largeurminipage}
{(\textwidth-\largeurlogovert)/\real{2}}
{(\textwidth-\largeurlogovert-0.5cm)/\real{2}}
% \end{macrocode}
%\end{macro}
%\begin{macro}{\distancetitrecorps}
......@@ -747,8 +704,6 @@ LaTeX version 1999/12/01 or later.
% \end{macrocode}
%\end{macro}
%
%\subsection{Marges,en-têteset pieds de page}
%
%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|.
% \begin{macrocode}
\geometry{
......@@ -766,54 +721,70 @@ LaTeX version 1999/12/01 or later.
}
% \end{macrocode}
%\end{macro}
%\begin{macro}{\enteteinterieur}
%\begin{macro}{\enteteexterieur}
%L'argument sert à insérer |\flushright| dans le cas ou l'en-tête est sur une page impaire.
% \begin{macrocode}
\newcommand{\enteteinterieur}[1]{
\raisebox{\decalageverticalentete}
\newcommand{\enteteexterieur}[1]{
{\begin{minipage}[b]{\largeurtitreentete}
\scshape#1\textcolor{bleu303}
\polytitresave
\polytitrecourtsave
\end{minipage}}
}
% \end{macrocode}
%\end{macro}
%\begin{macro}{\enteteexterieur}
%\begin{macro}{\enteteinterieur}
% \begin{macrocode}
\newcommand{\enteteexterieur}{
\includegraphics[height=\hauteurlogohori]{\polylogohori}
\newcommand{\enteteinterieur}[2][bleu303]{
{%
\color{#1}%
\includegraphics[height=\hauteurlogohori,width=\largeurlogohori,keepaspectratio]{#2}%
}%
}
% \end{macrocode}
%\end{macro}
%Spécifications supplémentaires pur pair/impair, redéfinies par l'option |markboth|.
%\begin{macro}{\enteteexterieurpair}
% \begin{macrocode}
\newcommand{\enteteexterieurpair}{
\enteteexterieur{\flushright}
}
% \end{macrocode}
%\end{macro}
%\begin{macro}{\enteteexterieurimpair}
% \begin{macrocode}
\newcommand{\enteteexterieurimpair}{
\enteteexterieur{}
}
% \end{macrocode}
%\end{macro}
%\begin{macro}{\enteteinterieurpair}
% \begin{macrocode}
\newcommand{\enteteinterieurpair}{
\enteteinterieur{}
\enteteinterieur{\polylogohori}
}
% \end{macrocode}
%\end{macro}
%\begin{macro}{\entetinterieurimpair}
%\begin{macro}{\enteteinterieurimpair}
% \begin{macrocode}
\newcommand{\enteteinterieurimpair}{
\enteteinterieur{\flushright}
\enteteinterieur{\polylogohori}
}
% \end{macrocode}
%\end{macro}
%\begin{macro}{\entetes}
%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.
%Comme l'en-tête contient le titre, on les active uniquement quand le titre est défini d'où cette forme de commande qui sera placée dans la commande |title| redéfinie.
% \begin{macrocode}
\newcommand{\entetes}{
\newpagestyle{polytechnique}{
% \end{macrocode}
%On definit un nouveau style d'en-tetes. Voir la documentation du package |titlesec| pour la syntaxe.
% \begin{macrocode}
\sethead[\enteteinterieurpair]% left even
\sethead[\raisebox{.5\hauteurlogohori}{\raisebox{-0.5\height}{\enteteinterieurpair}}]% left even
[]% center even
[\enteteexterieur]% right even
{\enteteexterieur}% left odd
[\raisebox{.5\hauteurlogohori}{\raisebox{-0.5\height}{\enteteexterieurpair}}]% right even
{\raisebox{.5\hauteurlogohori}{\raisebox{-0.5\height}{\enteteexterieurimpair}}}% left odd
{}% center odd
{\enteteinterieurimpair}% right odd
{\raisebox{.5\hauteurlogohori}{\raisebox{-0.5\height}{\enteteinterieurimpair}}}% right odd
\setfoot{}% left odd
{\piedcentre}% center odd
{}% right odd
......@@ -839,6 +810,8 @@ LaTeX version 1999/12/01 or later.
% \end{macrocode}
%
%\subsection{Pages de titre}
%
%\subsubsection{Commandes générales}
%Grace aux commandes suivantes, on peut faire |\title|\marg{titre} au lieu de |\renewcommand{\polytitre}|\marg{titre}.
%
%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|.
......@@ -854,10 +827,11 @@ LaTeX version 1999/12/01 or later.
%\begin{macro}{\subtitle}
%Commande par laquelle l'utilisateur définit le sous-titre.
% \begin{macrocode}
\newcommand*{\subtitle}[1]{
\def\subtitle{}
\renewcommand*{\subtitle}[1]{
\renewcommand*{\polysoustitresave}{#1}
% \end{macrocode}
%Si le sous-titre a éé défini, on met le booléen |subtitle| à vrai.
%Si le sous-titre a été défini, on met le booléen |subtitle| à vrai.
% \begin{macrocode}
\setboolean{subtitle}{true}
}
......@@ -869,14 +843,25 @@ LaTeX version 1999/12/01 or later.
\newcommand{\polytitresave}{}
% \end{macrocode}
%\end{macro}
%\begin{macro}{\title}
%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.
%\begin{macro}{\polytitrecourtsave}
%Idem que |\polysoustitresave|.
% \begin{macrocode}
\renewcommand*{\title}[1]{
\renewcommand*{\polytitresave}{#1}
\newcommand{\polytitrecourtsave}{}
% \end{macrocode}
%\end{macro}
%\begin{macro}{\title}
%Commande utilisée par l'utilisateur pour définir le titre. Comme les en-tête dépendent du titre, on les définit une fois qu'on connaît le titre.
% \begin{macrocode}
\renewcommand*{\title}[2][{}]{
\renewcommand*{\polytitresave}{#2}
\ifthenelse{\equal{#1}{}}{
\renewcommand*{\polytitrecourtsave}{#2}
}{
\renewcommand*{\polytitrecourtsave}{#1}
}
\entetes
}
% \end{macrocode}
% \end{macrocode}
%\end{macro}
%\begin{macro}{\polyauthorsave}
%Idem que |polysoustitresave| et |\polytitresave|.
......@@ -904,36 +889,218 @@ LaTeX version 1999/12/01 or later.
}
% \end{macrocode}
%\end{macro}
%\begin{macro}{\polylogosup}
%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.
%\begin{macro}{\logo}
%Commande utilisée par l'utilisateur pour définir un deuxième logo.
% \begin{macrocode}
\newcommand{\logo}[2][{}]{
% \end{macrocode}
%On redefinit la variable |\enteteinterieurimpair| pour les en-têtes si l'utilisateur le souhaite.
% \begin{macrocode}
\ifthenelse{\equal{#1}{}}{
\if@twoside%
\renewcommand{\enteteinterieurimpair}{%
\enteteinterieur{#2}%
}%
\else%
\fi%
}{
\renewcommand{\enteteinterieurimpair}{
\enteteinterieur{#1}
}
}
% \end{macrocode}
%On redefinit la variable |\titlepagebottomline| pour l'option |titlepage|.
% \begin{macrocode}
\renewcommand{\titlepagebottomline}{
\begin{minipage}{\linewidth}
\centering
\raisebox{-0.5\height}{
\includegraphics[width=1.5\largeurlogohori]
{\polylogohori}
}
\hspace{0.25\largeurlogohori}
% \end{macrocode}
%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.
% \begin{macrocode}
\raisebox{-0.5\height}{
\includegraphics[height=\hauteurlogovert,
width=1.5\largeurlogohori,
keepaspectratio]{#2}
}
\end{minipage}
}
% \end{macrocode}
%On redéfinit ensuite la commande |\notitlepageupperline| pour l'option |notitlepage|.
% \begin{macrocode}
\renewcommand{\notitlepageupperline}{
\noindent%
\begin{minipage}{\textwidth}
\centering
% \end{macrocode}
%Le système de |minipage| et de |\parbox| est fait de tel sorte que les deux logos soient alignés à gauche et à droite sur la première ligne et verticalement au centre ; la date et le titre sont centrés sur la largeur et la hauteur.
% \begin{macrocode}
\begin{minipage}{0.33\textwidth}
\raisebox{-0.5\height}
% \end{macrocode}
%Les logos sont cntrés verticalement grâce au |\raisebox|. |\height| contient la hauteur de la |minipage| en cours.
% \begin{macrocode}
{%
\includegraphics[width=\largeurlogovert]
{\polylogovert}
}
\end{minipage}%
% \end{macrocode}
%Le |%| qui suit le |\end{minipage}| est en fait très important. La ligne est divisée en 3 minipages de largeur |0.33\textwidth|, ce qui couvre exactement la largeur de la page. Néanmoins un retour à la ligne dans le code correspond à un espace sur la sortie, ce qui augmente la largeur de la ligne et la fait déborder : le logo de droite se retrouve sur la ligne suivante, ce qui n'est pas voulu. Le |%| sert à annuler l'effet espace du retour à la ligne dans le code.
% \begin{macrocode}
\begin{minipage}{0.33\textwidth}
\color{bleu303}%
\centering\polydatesave{}\\
\polyauthorsave{}\\
\includegraphics{\polyfiletcourtbleu}
\end{minipage}%
\begin{minipage}{0.33\textwidth}
\color{bleu303}%
\flushright\raisebox{-0.5\height}
{\includegraphics[height=\hauteurlogovert,
width=1.75\largeurlogohori,
keepaspectratio]{#2}
}
\end{minipage}
\end{minipage}
}
}
% \end{macrocode}
%\end{macro}
%\subsubsection{Option \texttt{notitlepage}}
%\begin{macro}{\notitlepageupperline}
%Cette commande contient la partie haute de la page de titre pour l'option |notitlepage|. Cette commande est redéfinie par l'utilisation de |\logo| par l'utilisateur pour ajouter un deuxième logo.
% \begin{macrocode}
\newcommand{\notitlepageupperline}{
\noindent
\begin{minipage}[b]{\largeurminipage}
\color{bleu303}%
\hspace{0cm}\polyauthorsave
\end{minipage}%
% \end{macrocode}
%La |minipage| permet les sauts de ligne pour avoir plusieurs auteurs, et |\hspace{0cm}| sert a ne pas faire une minipage vide si |\polyauthorsave={}|.
% \begin{macrocode}
\newcommand{\polylogosup}{
\hspace*{\fill}
% \end{macrocode}
%Les blocs sont séparés par des ressorts horizontaux. Vient ensuite le bloc central avec le logo de l'X.
% \begin{macrocode}
{%
\includegraphics[width=\largeurlogovert]{\polylogovert}}
\hspace*{\fill}%
% \end{macrocode}
%Et pour conclure la première ligne le bloc de droite qui contient la |\date|.
% \begin{macrocode}
\begin{minipage}[b]{\largeurminipage}
\color{bleu303}%
\flushright\hspace{0cm}\polydatesave
\end{minipage}%
}
% \end{macrocode}
%Le |\hspace{0cm}| sert a ne pas faire une minipage vide si |\polydatesave={}|.
%\end{macro}
%\begin{macro}{\notitlepagelayout}
%Cette commande est une variable contenant la partie haute de la page de titre de l'option |notitlepage|. En effet, cette ligne diffère selon la présence ou l'absence d'un deuxième logo.
% D'abord le bloc de gauche avec le nom des auteurs.
% \begin{macrocode}
\newcommand{\notitlepagelayout}{
\thispagestyle{plain}
\vspace*{\distancetitrelogo}
\notitlepageupperline{}
\\[\separationlogotrait]
% \end{macrocode}
%Deux filets horizontaux, le titre et le sous-titre sont au milieu.
% \begin{macrocode}
\begin{center}
\textcolor{bleu303}
{\rule{\textwidth}{\epaisseurtrait}}
\\
\color{bleu303}\Huge\scshape
\MakeUppercaseWithNewline{\polytitresave}
% \end{macrocode}
%La ligne qui précède affiche le titre. La commande |\MakeUpperCaseWithNewline| sera définie par la suite.
% \begin{macrocode}
\ifthenelse{\boolean{subtitle}}{
% \end{macrocode}
%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.
% \begin{macrocode}
\\[\separationlignestitre]
\Large\upshape\polysoustitresave\\\normalsize
}{
% \end{macrocode}
%Et maintenant, s'il n'y en a pas.
% \begin{macrocode}
\\
\normalsize
}
\textcolor{bleu303}
{\rule{\textwidth}{\epaisseurtrait}}
\end{center}
\vspace*{\distancetitrecorps}
% \begin{macrocode}
}
% \end{macrocode}
%\end{macro}
%\subsubsection{Option \texttt{titlepage}}
%\begin{macro}{\titlepagebottomline}
%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. Cette commande est redéfinie par l'utilisation de |\logo| par l'utilisateur pour ajouter un deuxième logo.
% \begin{macrocode}
\newcommand{\titlepagebottomline}{
\includegraphics[height=\hauteurlogovert]{\polylogovert}
}
% \end{macrocode}
%\end{macro}
%\begin{macro}{\logo}
%Commande utilisée par l'utilisateur pour définir un deuxième logo.
%\begin{macro}{\titlepagelayout}
%Cette commande définit le contenu de la page de garde avec l'option |titlepage|.
% \begin{macrocode}
\newcommand{\logo}[1]{
\newcommand{\titlepagelayout}{
% \end{macrocode}
%On redefinit la variable |\polylogosup|.
%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.
% \begin{macrocode}
\renewcommand{\polylogosup}{
\includegraphics[height=1.5\hauteurlogohori]
{\polylogohori}
\hspace{0.05\textwidth}
\noindent\makebox[\textwidth][c]{%
\raisebox{-\totalheight}[0pt][0pt]{%
\color{bleu303pale}%
\includegraphics[height=\hauteurlogopage]{\polyarmes}}}
% \end{macrocode}
%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.
%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.
% \begin{macrocode}
\includegraphics[height=\hauteurlogovert,
width=1.5\largeurlogohori,
keepaspectratio]{#1}%
}
\vspace*{0.125\textheight}
\begin{center}
\Huge\sffamily\bfseries\color{bleu303}
\MakeUppercaseWithNewline{\polytitresave}\\
% \end{macrocode}
%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={}|.
% \begin{macrocode}
\vspace*{0.2\textheight}
\LARGE\hspace{0cm}\polysoustitresave\\
% \end{macrocode}
%Ce qui suit est la date, idem pour le |\hspace{0cm}|.
% \begin{macrocode}
\vspace*{0.15\textheight}
\Large\mdseries\hspace{0cm}\polydatesave\\
\includegraphics{\polyfiletcourtbleu}
\\[0.4\baselineskip]
% \end{macrocode}
%Ce qui suit affiche les auteurs, idem pour le |\hspace{0cm}|.
% \begin{macrocode}
\rmfamily\hspace{0cm}\polyauthorsave\\[\fill]
% \end{macrocode}
%Enfin, le(s) logo(s) en bas de la page. On rabote la marge basse habituelle avec le |\vspace*{-0.5\margebas}|.
% \begin{macrocode}
$\;$\titlepagebottomline{}
\vspace*{-0.5\margebas}
\end{center}
% \end{macrocode}
% \begin{macrocode}
\thispagestyle{empty}
\clearpage
}
% \end{macrocode}
%\end{macro}
%
%\subsection{Divers}
%
%\begin{macro}{\MakeUppercaseWithNewline}
......
%% \iffalse meta-comment
%%
%% For explanation on this file, see http://texdoc.net/texmf-dist/doc/latex/dtxtut/dtxtut.pdf
%%
%%
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
%% version 1.3c of this license or (at your option) any later
%% version. The latest version of this license is in:
%%
%% http://www.latex-project.org/lppl.txt
%%
%% and version 1.3c or later is part of all distributions of
%% LaTeX version 1999/12/01 or later.
%%
\input docstrip.tex
\keepsilent
\usedir{tex/latex/polytechnique}
\preamble
This is a generated file.
This file may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either
version 1.3c of this license or (at your option) any later
version. The latest version of this license is in:
http://www.latex-project.org/lppl.txt
and version 1.3c or later is part of all distributions of
LaTeX version 1999/12/01 or later.
\endpreamble
\askforoverwritefalse
\generate{\file{polytechnique.sty}{\from{polytechnique.dtx}{package}}}
\obeyspaces
\endbatchfile
File added
%%
%% This is file `polytechnique.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% polytechnique.dtx (with options: `package')
%% This is a generated file.
%%
%%
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
%% version 1.3c of this license or (at your option) any later
%% version. The latest version of this license is in:
%%
%% http://www.latex-project.org/lppl.txt
%%
%% and version 1.3c or later is part of all distributions of
%% LaTeX version 1999/12/01 or later.
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{polytechnique}
[2022/04/29 v1.3.10, standard scientific documents layout for Ecole polytechnique (Palaiseau,France).]
%%\CharacterTable
%% {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
%% 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
%% Digits \0\1\2\3\4\5\6\7\8\9
%% Exclamation \! Double quote \" Hash (number) \#
%% Dollar \$ Percent \% Ampersand \&
%% Acute accent \' Left paren \( Right paren \)
%% Asterisk \* Plus \+ Comma \,
%% Minus \- Point \. Solidus \/
%% Colon \: Semicolon \; Less than \<
%% Equals \= Greater than \> Question mark \?
%% Commercial at \@ Left bracket \[ Backslash \\
%% Right bracket \] Circumflex \^ Underscore \_
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
%%
\DeclareOption{a4paper}{
\PassOptionsToPackage{a4paper}{geometry}
}
\DeclareOption{fancysections}{
\AtEndOfPackage{
\titleformat{\chapter}
[display]
{\Huge\bfseries\sffamily}
{\LARGE\chaptertitlename{} \thechapter}
{0em}
{}
[]
\titleformat{\section}
[display]
{\color{rouge485}\LARGE\bfseries\sffamily\filcenter}
{\thesection}
{0em}
{\MakeUppercaseWithNewline}
[\vspace*{-0.5\baselineskip}%
\includegraphics{\polyfiletlongrouge}]
\titleformat{\subsection}
[block]
{\color{bleu315}\Large\scshape}
{\thesubsection}
{0.5em}
{}
[\vspace*{-0.3\baselineskip}%
\includegraphics{\polyfiletcourtbleuclair}]
\titleformat{\subsubsection}
[block]
{\color{bleu303}\large\scshape}
{\thesubsubsection}
{0.5em}
{\textbullet{} }
[]
}
}
\DeclareOption{notitlepage}{
\renewcommand*{\maketitle}{
\notitlepagelayout{}
}
}
\DeclareOption{titlepage}{
\renewcommand*{\maketitle}{
\titlepagelayout{}
}
}
\DeclareOption{oneside}{
\AtEndOfPackage{
\geometry{inner=\margecote,outer=\margecote}
}
}
\DeclareOption{twoside}{
\AtEndOfPackage{
\geometry{inner=\margecoteinterieur,
outer=\margecoteexterieur}
}
}
\DeclareOption{sectionmark}{
\AtEndOfPackage{
\renewcommand{\enteteexterieurimpair}{
\ifthesection{
\begin{minipage}{\largeurtitreentete}
\flushleft
{\scshape\color{bleu303}
\thesection{}.~\sectiontitle}
\end{minipage}
}{
}
}
}
}
\DeclareOption{chaptermark}{
\AtEndOfPackage{
\renewcommand{\enteteexterieurimpair}{
\begin{minipage}{\largeurtitreentete}
\flushleft
\ifthechapter{
{\scshape\color{bleu303}
\thechapter{}.~\chaptertitle}
\end{minipage}
}{
}
}
}
}
\DeclareOption{markboth}{
\AtEndOfPackage{
\begin{minipage}{\largeurtitreentete}
\flushleft
\renewcommand{\enteteexterieurimpair}{
\ifthesection{%Si la section a ete definie
{\scshape\color{bleu303}
\thesection{}.~\sectiontitle}
\end{minipage}
}{
}
}
\renewcommand{\enteteexterieurpair}{
\begin{minipage}{\largeurtitreentete}
\flushleft
\ifthechapter{
{\scshape\color{bleu303}
\thechapter{}.~\chaptertitle}
\end{minipage}
}{
}
}
}
}
\DeclareOption{pagenumber}{
\AtEndOfPackage{
\RequirePackage{lastpage}
\renewcommand{\piedcentre}{
\setlength{\largeurfiletpiedcentre}
{2\largeurfiletpiedcentre}
\textcolor{bleu303}{\shortstack[c]{
\rule{\largeurfiletpiedcentre}{0.3mm}\\
\thepage/\pageref{LastPage}}}
}
}
}
\newif\ifgrandesmarges
\grandesmargesfalse
\DeclareOption{enmanquedinspiration}{
\grandesmargestrue
}
\DeclareOption*{
\PassOptionsToPackage{\CurrentOption}{geometry}
}
\@ifclassloaded{book}{
\ExecuteOptions{titlepage}
}{}
\@ifclassloaded{report}{
\ExecuteOptions{titlepage}
}{}
\@ifclassloaded{article}{
\ExecuteOptions{notitlepage}
}{}
\ExecuteOptions{a4paper,oneside}
\ProcessOptions*
\RequirePackage{calc}
\RequirePackage{xcolor}
\RequirePackage{geometry}
\RequirePackage{graphicx}
\RequirePackage{ifthen}
\RequirePackage{ifpdf}
\RequirePackage{lmodern}
\RequirePackage[pagestyles]{titlesec}
\definecolor{bleu303}{RGB}{0,62,92}
\colorlet{bleu303pale}{bleu303!20!white}
\definecolor{rouge485}{RGB}{213,43,30}
\definecolor{bleu315}{RGB}{0,104,128}
\ifpdf
\newcommand{\polyfiletlongrouge}
{polytechnique-filetlongrouge.pdf}
\newcommand{\polyfiletcourt}
{polytechnique-filetcourt.pdf}
\let\polyfiletcourtbleuclair\polyfiletcourt
\let\polyfiletcourtbleu\polyfiletcourt
\newcommand{\polylogovert}
{polytechnique-logovert.pdf}
\newcommand{\polylogohori}
{polytechnique-logohori.pdf}
\newcommand{\polyarmes}
{polytechnique-armes.pdf}
\else
\newcommand{\polyfiletlongrouge}
{polytechnique-filetlongrouge.eps}
\newcommand{\polyfiletcourtbleuclair}
{polytechnique-filetcourtbleuclair.eps}
\newcommand{\polyfiletcourtbleu}
{polytechnique-filetcourtbleu.eps}
\newcommand{\polylogovert}
{polytechnique-logovert.eps}
\newcommand{\polylogohori}
{polytechnique-logohori.eps}
\newcommand{\polyarmes}
{polytechnique-armes.eps}
\fi
\newlength{\margehaut}
\setlength{\margehaut}{40mm}
\newlength{\hauteurentete}
\setlength{\hauteurentete}{27mm}
\newlength{\separationentete}
\setlength{\separationentete}{12mm}
\newlength{\margecote}
\setlength{\margecote}{20mm}
\newlength{\margecoteinterieur}
\setlength{\margecoteinterieur}{22.5mm}
\newlength{\margecoteexterieur}
\setlength{\margecoteexterieur}{17.5mm}
\newlength{\margebas}
\setlength{\margebas}{35mm}
\newlength{\separationpied}
\setlength{\separationpied}{17.5mm}
\newlength{\hauteurlogohori}
\setlength{\hauteurlogohori}{20mm}
\newlength{\separationtitre}
\setlength{\separationtitre}{15mm}
\newlength{\epaisseurtrait}
\setlength{\epaisseurtrait}{1pt}
\newlength{\separationlignestitre}
\setlength{\separationlignestitre}{3mm}
\newlength{\separationtitrecorps}
\setlength{\separationtitrecorps}{15mm}
\ifgrandesmarges
\setlength\margecote{1.5\margecote}
\setlength\margehaut{1.2\margehaut}
\setlength\margebas{1.2\margebas}
\setlength\margecoteinterieur{1.5\margecoteinterieur}
\setlength\margecoteexterieur{1.5\margecoteexterieur}
\fi
\newlength{\hauteurlogopage}
\setlength{\hauteurlogopage}{0.6\textheight}
\newlength{\separationentetelogo}
\setlength{\separationentetelogo}{20mm}
\newlength{\largeurfiletpiedcentre}
\setlength{\largeurfiletpiedcentre}{4mm}
\newlength{\largeurlogovert}
\setlength{\largeurlogovert}{\paperwidth/\real{7}}
\newlength{\hauteurlogovert}
\setlength{\hauteurlogovert}{\largeurlogovert*\real{1.361}}
\newlength{\largeurlogohori}
\setlength{\largeurlogohori}{\hauteurlogohori*\real{1.859}}
\newlength{\distancetitrelogo}
\setlength{\distancetitrelogo}{\separationtitre-\margehaut}
\newlength{\separationlogotrait}
\setlength{\separationlogotrait}{-\baselineskip*2+10mm}
\newlength{\largeurminipage}
\setlength{\largeurminipage}
{(\textwidth-\largeurlogovert-0.5cm)/\real{2}}
\newlength{\distancetitrecorps}
\setlength{\distancetitrecorps}
{\separationtitrecorps-\baselineskip*2}
\newlength{\largeurtitreentete}
\setlength{\largeurtitreentete}{\textwidth-\largeurlogohori
-\separationentetelogo}
\newlength{\decalageverticalentete}
\setlength{\decalageverticalentete}
{\hauteurlogohori/\real{2.6}}
\geometry{
top=\margehaut,headheight=\hauteurentete,
headsep=\separationentete,
bottom=\margebas,footskip=\separationpied
}
\newcommand{\piedcentre}{
\textcolor{bleu303}{\shortstack[c]
{\rule{\largeurfiletpiedcentre}{0.3mm}\\\thepage}}
}
\newcommand{\enteteexterieur}[1]{
{\begin{minipage}[b]{\largeurtitreentete}
\scshape#1\textcolor{bleu303}
\polytitrecourtsave
\end{minipage}}
}
\newcommand{\enteteinterieur}[2][bleu303]{
{%
\color{#1}%
\includegraphics[height=\hauteurlogohori,width=\largeurlogohori,keepaspectratio]{#2}%
}%
}
\newcommand{\enteteexterieurpair}{
\enteteexterieur{\flushright}
}
\newcommand{\enteteexterieurimpair}{
\enteteexterieur{}
}
\newcommand{\enteteinterieurpair}{
\enteteinterieur{\polylogohori}
}
\newcommand{\enteteinterieurimpair}{
\enteteinterieur{\polylogohori}
}
\newcommand{\entetes}{
\newpagestyle{polytechnique}{
\sethead[\raisebox{.5\hauteurlogohori}{\raisebox{-0.5\height}{\enteteinterieurpair}}]% left even
[]% center even
[\raisebox{.5\hauteurlogohori}{\raisebox{-0.5\height}{\enteteexterieurpair}}]% right even
{\raisebox{.5\hauteurlogohori}{\raisebox{-0.5\height}{\enteteexterieurimpair}}}% left odd
{}% center odd
{\raisebox{.5\hauteurlogohori}{\raisebox{-0.5\height}{\enteteinterieurimpair}}}% right odd
\setfoot{}% left odd
{\piedcentre}% center odd
{}% right odd
}
\pagestyle{polytechnique}
}
\renewpagestyle{plain}{
\sethead{}% left
{}% center
{}% right
\setfoot{}% left
{\piedcentre}% center
{}% right
}
\pagestyle{plain}
\newboolean{subtitle}\setboolean{subtitle}{false}
\newcommand{\polysoustitresave}{}
\def\subtitle{}
\renewcommand*{\subtitle}[1]{
\renewcommand*{\polysoustitresave}{#1}
\setboolean{subtitle}{true}
}
\newcommand{\polytitresave}{}
\newcommand{\polytitrecourtsave}{}
\renewcommand*{\title}[2][{}]{
\renewcommand*{\polytitresave}{#2}
\ifthenelse{\equal{#1}{}}{
\renewcommand*{\polytitrecourtsave}{#2}
}{
\renewcommand*{\polytitrecourtsave}{#1}
}
\entetes
}
\newcommand{\polyauthorsave}{}
\renewcommand*{\author}[1]{
\renewcommand*{\polyauthorsave}{#1}
}
\newcommand{\polydatesave}{\today}
\renewcommand*{\date}[1]{
\renewcommand*{\polydatesave}{#1}
}
\newcommand{\logo}[2][{}]{
\ifthenelse{\equal{#1}{}}{
\if@twoside%
\renewcommand{\enteteinterieurimpair}{%
\enteteinterieur{#2}%
}%
\else%
\fi%
}{
\renewcommand{\enteteinterieurimpair}{
\enteteinterieur{#1}
}
}
\renewcommand{\titlepagebottomline}{
\begin{minipage}{\linewidth}
\centering
\raisebox{-0.5\height}{
\includegraphics[width=1.5\largeurlogohori]
{\polylogohori}
}
\hspace{0.25\largeurlogohori}
\raisebox{-0.5\height}{
\includegraphics[height=\hauteurlogovert,
width=1.5\largeurlogohori,
keepaspectratio]{#2}
}
\end{minipage}
}
\renewcommand{\notitlepageupperline}{
\noindent%
\begin{minipage}{\textwidth}
\centering
\begin{minipage}{0.33\textwidth}
\raisebox{-0.5\height}
{%
\includegraphics[width=\largeurlogovert]
{\polylogovert}
}
\end{minipage}%
% \end{macrocode}
\begin{minipage}{0.33\textwidth}
\color{bleu303}%
\centering\polydatesave{}\\
\polyauthorsave{}\\
\includegraphics{\polyfiletcourtbleu}
\end{minipage}%
\begin{minipage}{0.33\textwidth}
\color{bleu303}%
\flushright\raisebox{-0.5\height}
{\includegraphics[height=\hauteurlogovert,
width=1.75\largeurlogohori,
keepaspectratio]{#2}
}
\end{minipage}
\end{minipage}
}
}
\newcommand{\notitlepageupperline}{
\noindent
\begin{minipage}[b]{\largeurminipage}
\color{bleu303}%
\hspace{0cm}\polyauthorsave
\end{minipage}%
\hspace*{\fill}
{%
\includegraphics[width=\largeurlogovert]{\polylogovert}}
\hspace*{\fill}%
\begin{minipage}[b]{\largeurminipage}
\color{bleu303}%
\flushright\hspace{0cm}\polydatesave
\end{minipage}%
}
\newcommand{\notitlepagelayout}{
\thispagestyle{plain}
\vspace*{\distancetitrelogo}
\notitlepageupperline{}
\\[\separationlogotrait]
\begin{center}
\textcolor{bleu303}
{\rule{\textwidth}{\epaisseurtrait}}
\\
\color{bleu303}\Huge\scshape
\MakeUppercaseWithNewline{\polytitresave}
\ifthenelse{\boolean{subtitle}}{
\\[\separationlignestitre]
\Large\upshape\polysoustitresave\\\normalsize
}{
\\
\normalsize
}
\textcolor{bleu303}
{\rule{\textwidth}{\epaisseurtrait}}
\end{center}
\vspace*{\distancetitrecorps}
}
\newcommand{\titlepagebottomline}{
\includegraphics[height=\hauteurlogovert]{\polylogovert}
}
\newcommand{\titlepagelayout}{
\noindent\makebox[\textwidth][c]{%
\raisebox{-\totalheight}[0pt][0pt]{%
\color{bleu303pale}%
\includegraphics[height=\hauteurlogopage]{\polyarmes}}}
\vspace*{0.125\textheight}
\begin{center}
\Huge\sffamily\bfseries\color{bleu303}
\MakeUppercaseWithNewline{\polytitresave}\\
\vspace*{0.2\textheight}
\LARGE\hspace{0cm}\polysoustitresave\\
\vspace*{0.15\textheight}
\Large\mdseries\hspace{0cm}\polydatesave\\
\includegraphics{\polyfiletcourtbleu}
\\[0.4\baselineskip]
\rmfamily\hspace{0cm}\polyauthorsave\\[\fill]
$\;$\titlepagebottomline{}
\vspace*{-0.5\margebas}
\end{center}
\thispagestyle{empty}
\clearpage
}
\newcommand{\MakeUppercaseWithNewline}[1]{
\begingroup
\let\SavedOrgNewline\\%
\DeclareRobustCommand{\\}{\SavedOrgNewline}%
\MakeUppercase{#1}%
\endgroup
}
\endinput
%%
%% End of file `polytechnique.sty'.
File added
@echo off
pdflatex polytechnique.dtx
makeindex -s gind.ist -o polytechnique.ind polytechnique.idx
pdflatex polytechnique.dtx
del *.aux
del *.glo
del *.idx
del *.ilg
del *.ind
del *.log
del *.toc
kpsewhich article.cls> temp.txt
set /p installdir=<temp.txt
set installdir=%installdir:~0,-16%
del temp.txt
md "%installdir%polytechnique"
md "%installdir%polytechnique/ressources"
copy polytechnique.dtx "%installdir%polytechnique"
copy polytechnique.sty "%installdir%polytechnique"
md "%installdir:~0,-10%doc/polytechnique"
copy polytechnique.pdf "%installdir:~0,-10%doc/polytechnique"
del polytechnique.sty
cd ressources
copy *.eps "%installdir%polytechnique/ressources"
copy *.pdf "%installdir%polytechnique/ressources"
echo ************************************************
echo * La base de donnees des packages est en train *
echo * d'etre mise a jour. Cela peut prendre un peu *
echo * de temps. Merci de patienter. *
echo ************************************************
initexmf --update-fndb
echo ************************************************
echo * Le package a ete installe ! La documentation *
echo * se trouve a l'emplacement suivant : *
echo %installdir:~0,-10%doc/polytechnique
echo * Bonne utilisation ! *
echo ************************************************
pause
\ No newline at end of file