Преглед на файлове

Reorganizing code and added second logo
*Code for titlepage and notitlepage options no more delayed with \AtBeginDocument, it is declared in the right place with an auxiliary command
*Added layout for a second logo with the notitlepageoption, layout made by DIRCOM

Denis Merigoux преди 10 години
родител
ревизия
f866c68cd4
променени са 1 файла, в които са добавени 191 реда и са изтрити 117 реда
  1. 191 117
      source/polytechnique.dtx

+ 191 - 117
source/polytechnique.dtx

@@ -71,7 +71,8 @@ LaTeX version 1999/12/01 or later.
71 71
 \usepackage[utf8]{inputenc}
72 72
 \usepackage[T1]{fontenc}
73 73
 \usepackage[french]{babel}
74
-\usepackage[pagenumber,fancysections,sectionmark]{polytechnique}
74
+\usepackage[hidelinks]{hyperref}
75
+\usepackage[fancysections,titlepage,sectionmark]{polytechnique}
75 76
 \makeatletter
76 77
 \renewcommand{\index@prologue}{\section*{Index}%Redéfinit le texte avant l'index
77 78
                 %Commande issue de tex/latex/base/doc.sty
@@ -105,7 +106,8 @@ LaTeX version 1999/12/01 or later.
105 106
 %
106 107
 %\title{Le package \textsf{polytechnique}}
107 108
 %\subtitle{\fileversion{} datée du \filedate.}
108
-%\author{Denis Merigoux}
109
+%\author{Denis \textsc{Merigoux}}
110
+%\logo{typographix.pdf}
109 111
 %
110 112
 %\maketitle
111 113
 %
@@ -118,23 +120,23 @@ LaTeX version 1999/12/01 or later.
118 120
 %\renewcommand{\contentsname}{Sommaire}
119 121
 %\tableofcontents
120 122
 %\clearpage
121
-%\newgeometry{
122
-%    top=\margehaut,headheight=\hauteurentete,headsep=\separationentete,
123
-%    bottom=\margebas,footskip=\separationpied,left=\margecote,right=\margecote,includemp
124
-%}
125 123
 %\section{Utilisation}
126 124
 %
125
+%\subsection{Chargement du package}
127 126
 %Pour utiliser le package, il suffit d'inclure dans le préambule de son document la ligne :
128 127
 %\begin{verbatim}
129 128
 %    \usepackage{polytechnique}
130 129
 %\end{verbatim}
130
+%On se reportera à la section \ref{options} page \pageref{options} pour l'utilisation des options du package.
131
+%
132
+%\subsection{Métadonnées du document}
131 133
 %
132
-%Il faut également définir dans le préambule les métadonnées du document, avec deux nouveaux champs optionnels |\subtitle| et |\logo| :
134
+%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 :
133 135
 %\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
+%\item |\subtitle|\marg{sous-titre} où \meta{sous-titre} peut être sur plusieurs lignes séparées par des |\\| ;
137
+%\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.
136 138
 %\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.
139
+%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.
138 140
 %Cela donne dans son préambule :
139 141
 %\begin{verbatim}
140 142
 %    \title{Le titre}
@@ -144,13 +146,25 @@ LaTeX version 1999/12/01 or later.
144 146
 %    \date{La date, enlever la ligne pour avoir la date du jour}
145 147
 %    %\logo{Chemin relatif vers le logo}
146 148
 %\end{verbatim}
147
-%
149
+
148 150
 %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 151
 %
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.
152
+%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 :
153
+%\begin{verbatim}
154
+%\author{
155
+%    \begin{tabular}{rlcrl}
156
+%    Coordinateur :&Jean Dupont&---&Tuteur :&Paul Martin
157
+%    \end{tabular}
158
+%    \\[\baselineskip]
159
+%    \begin{tabular}{cccc}
160
+%    Nom1&Nom2&Nom3\\%    Nom4&Nom5&Nom6
161
+%    \end{tabular}
162
+%}
163
+%\end{verbatim}
151 164
 %
152 165
 %\clearpage
153 166
 %\section{Options}
167
+%\label{options}
154 168
 %
155 169
 %\subsection{Options globales}
156 170
 %
@@ -189,6 +203,10 @@ LaTeX version 1999/12/01 or later.
189 203
 %    \PrintIndex
190 204
 %}
191 205
 %\clearpage
206
+%\newgeometry{
207
+%    top=\margehaut,headheight=\hauteurentete,headsep=\separationentete,
208
+%    bottom=\margebas,footskip=\separationpied,left=\margecote,right=\margecote,includemp
209
+%}
192 210
 %\section{Code source}
193 211
 %
194 212
 %\subsection{Déclaration des options}
@@ -246,61 +264,7 @@ LaTeX version 1999/12/01 or later.
246 264
 \DeclareOption{notitlepage}{
247 265
     \AtBeginDocument{
248 266
         \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}
267
+            \notitlepagelayout{}
304 268
         }
305 269
     }
306 270
 }
@@ -320,43 +284,7 @@ LaTeX version 1999/12/01 or later.
320 284
 \DeclareOption{titlepage}{
321 285
     \AtBeginDocument{
322 286
         \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
287
+            \titlepagelayout{}
360 288
         }
361 289
     }
362 290
 }
@@ -801,7 +729,7 @@ LaTeX version 1999/12/01 or later.
801 729
 %    \end{macrocode}
802 730
 %\end{macro}
803 731
 %\begin{macro}{\entetes}
804
-%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.
732
+%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.
805 733
 %    \begin{macrocode}
806 734
 \newcommand{\entetes}{
807 735
     \newpagestyle{polytechnique}{
@@ -839,6 +767,8 @@ LaTeX version 1999/12/01 or later.
839 767
 %    \end{macrocode}
840 768
 %
841 769
 %\subsection{Pages de titre}
770
+%
771
+%\subsubsection{Commandes générales}
842 772
 %Grace aux commandes suivantes, on peut faire |\title|\marg{titre} au lieu de |\renewcommand{\polytitre}|\marg{titre}.
843 773
 %
844 774
 %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|.
@@ -876,7 +806,7 @@ LaTeX version 1999/12/01 or later.
876 806
     \renewcommand*{\polytitresave}{#1}
877 807
     \entetes
878 808
 }
879
-%   \end{macrocode}
809
+%    \end{macrocode}
880 810
 %\end{macro}
881 811
 %\begin{macro}{\polyauthorsave}
882 812
 %Idem que |polysoustitresave| et |\polytitresave|.
@@ -904,22 +834,15 @@ LaTeX version 1999/12/01 or later.
904 834
 }
905 835
 %    \end{macrocode}
906 836
 %\end{macro}
907
-%\begin{macro}{\polylogosup}
908
-%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.
909
-%    \begin{macrocode}
910
-\newcommand{\polylogosup}{
911
-\includegraphics[height=\hauteurlogovert]{\polylogovert}
912
-}
913
-%    \end{macrocode}
914
-%\end{macro}
837
+
915 838
 %\begin{macro}{\logo}
916 839
 %Commande utilisée par l'utilisateur pour définir un deuxième logo.
917 840
 %    \begin{macrocode}
918 841
 \newcommand{\logo}[1]{
919 842
 %    \end{macrocode}
920
-%On redefinit la variable |\polylogosup|.
843
+%On redefinit la variable |\titlepagebottomline| pour l'option |titlepage|.
921 844
 %    \begin{macrocode}
922
-    \renewcommand{\polylogosup}{
845
+    \renewcommand{\titlepagebottomline}{
923 846
         \includegraphics[height=1.5\hauteurlogohori]
924 847
             {\polylogohori}
925 848
         \hspace{0.05\textwidth}
@@ -930,10 +853,161 @@ LaTeX version 1999/12/01 or later.
930 853
             width=1.5\largeurlogohori,
931 854
             keepaspectratio]{#1}%
932 855
     }
856
+%    \end{macrocode}
857
+%On redéfinit ensuite la commande |\notitlepageupperline| pour l'option |notitlepage|.
858
+%    \begin{macrocode}
859
+    \renewcommand{\notitlepageupperline}{	
860
+        \noindent
861
+        \begin{minipage}{\textwidth}
862
+%    \end{macrocode}
863
+%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.
864
+%    \begin{macrocode}
865
+            \parbox{0.333\textwidth}
866
+                {\raisebox{-0.5\height}
867
+                    {\includegraphics[width=\largeurlogovert]
868
+                        {\polylogovert}
869
+                    }
870
+                }
871
+            \parbox{0.333\textwidth}
872
+                 {\centering\polydatesave{}\\
873
+                     \polyauthorsave{}\\
874
+                     \includegraphics{\polyfiletcourtbleu}
875
+                 }
876
+            \parbox{0.333\textwidth}
877
+                {\flushright\raisebox{-0.5\height}
878
+                    {\includegraphics[height=\hauteurlogovert,
879
+                        width=1.5\largeurlogohori,
880
+                        keepaspectratio]{#1}
881
+                    }
882
+                }
883
+         \end{minipage}
884
+    }
885
+}
886
+%    \end{macrocode}
887
+%\end{macro}
888
+%\subsubsection{Option \texttt{notitlepage}}
889
+%\begin{macro}{\notitlepageupperline}
890
+%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.
891
+%    \begin{macrocode}
892
+\newcommand{\notitlepageupperline}{
893
+    \noindent
894
+    \begin{minipage}[b]{\largeurminipage}
895
+        \hspace{0cm}\polyauthorsave
896
+    \end{minipage}
897
+%    \end{macrocode}
898
+%La |minipage| permet les sauts de ligne pour avoir plusieurs auteurs, et |\hspace{0cm}| sert a ne pas faire une minipage vide si |\polyauthorsave={}|.
899
+%    \begin{macrocode}
900
+    \hspace*{\fill}
901
+%    \end{macrocode}
902
+%Les blocs sont séparés par des ressorts horizontaux. Vient ensuite le bloc central avec le logo de l'X.
903
+%    \begin{macrocode}
904
+    \includegraphics[width=\largeurlogovert]{\polylogovert}
905
+    \hspace*{\fill}
906
+%    \end{macrocode}
907
+%Et pour conclure la première ligne le bloc de droite qui contient la |\date|.
908
+%    \begin{macrocode}
909
+    \begin{minipage}[b]{\largeurminipage}
910
+        \flushright\hspace{0cm}\polydatesave
911
+    \end{minipage}
912
+}
913
+%    \end{macrocode}
914
+%Le |\hspace{0cm}| sert a ne pas faire une minipage vide si |\polydatesave={}|.
915
+%\end{macro}
916
+%\begin{macro}{\notitlepagelayout}
917
+%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.
918
+% D'abord le bloc de gauche avec le nom des auteurs.
919
+%    \begin{macrocode}
920
+\newcommand{\notitlepagelayout}{
921
+\thispagestyle{plain}
922
+            \vspace*{\distancetitrelogo}
923
+            \notitlepageupperline{}
924
+            \\[\separationlogotrait]
925
+%    \end{macrocode}
926
+%Deux filets horizontaux, le titre et le sous-titre sont au milieu.
927
+%    \begin{macrocode}
928
+            \begin{center}
929
+                    \textcolor{bleu303}
930
+                        {\rule{\textwidth}{\epaisseurtrait}}
931
+                    \\
932
+                    \color{bleu303}\Huge\scshape
933
+                    \MakeUppercaseWithNewline{\polytitresave}
934
+%    \end{macrocode}
935
+%La ligne qui précède affiche le titre. La commande |\MakeUpperCaseWithNewLine| sera définie par la suite.
936
+%    \begin{macrocode}
937
+                \ifthenelse{\boolean{subtitle}}{
938
+%    \end{macrocode}
939
+%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.
940
+%    \begin{macrocode}   
941
+                    \\[\separationlignestitre]
942
+                    \Large\upshape\polysoustitresave\\\normalsize
943
+                }{
944
+%    \end{macrocode}
945
+%Et maintenant, s'il n'y en a pas.
946
+%    \begin{macrocode}
947
+                    \\
948
+                    \normalsize
949
+                }
950
+                \textcolor{bleu303}
951
+                    {\rule{\textwidth}{\epaisseurtrait}}
952
+            \end{center}
953
+            \vspace*{\distancetitrecorps}
954
+%    \begin{macrocode}
955
+}
956
+%    \end{macrocode}
957
+%\end{macro}
958
+%\subsubsection{Option \texttt{titlepage}}
959
+%\begin{macro}{\titlepagebottomline}
960
+%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.
961
+%    \begin{macrocode}
962
+\newcommand{\titlepagebottomline}{
963
+\includegraphics[height=\hauteurlogovert]{\polylogovert}
964
+}
965
+%    \end{macrocode}
966
+%\end{macro}
967
+%\begin{macro}{\titlepagelayout}
968
+%Cette commande définit le contenu de la page de garde avec l'option |titlepage|.
969
+%    \begin{macrocode}
970
+\newcommand{\titlepagelayout}{
971
+%    \end{macrocode}
972
+%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.
973
+%    \begin{macrocode}
974
+        \noindent\makebox[\textwidth][c]{%
975
+          \raisebox{-\totalheight}[0pt][0pt]{%
976
+        \includegraphics[height=\hauteurlogopage]{\polyarmes}}}
977
+%    \end{macrocode}
978
+%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.
979
+%    \begin{macrocode}
980
+        \vspace*{0.125\textheight}
981
+        \begin{center}
982
+            \Huge\sffamily\bfseries\color{bleu303}
983
+            \MakeUppercaseWithNewline{\polytitresave}\\
984
+%    \end{macrocode}
985
+%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={}|.
986
+%    \begin{macrocode}
987
+            \vspace*{0.2\textheight}
988
+            \LARGE\hspace{0cm}\polysoustitresave\\
989
+%    \end{macrocode}
990
+%Ce qui suit est la date, idem pour le |\hspace{0cm}|.
991
+%    \begin{macrocode}
992
+            \vspace*{0.15\textheight}
993
+            \Large\mdseries\hspace{0cm}\polydatesave\\
994
+            \includegraphics{\polyfiletcourtbleu}
995
+            \\[0.4\baselineskip]
996
+%    \end{macrocode}
997
+%Ce qui suit affiche les auteurs, idem pour le |\hspace{0cm}|.
998
+%    \begin{macrocode}
999
+            \rmfamily\hspace{0cm}\polyauthorsave\\[\fill]
1000
+%    \end{macrocode}
1001
+%Enfin, le(s) logo(s) en bas de la page. On rabote la marge basse habituelle avec le |\vspace*{-0.5\margebas}|.
1002
+%    \begin{macrocode}
1003
+            $\;$\titlepagebottomline{}
1004
+            \vspace*{-0.5\margebas}
1005
+        \end{center}
1006
+        \thispagestyle{empty}
1007
+        \clearpage
933 1008
 }
934 1009
 %    \end{macrocode}
935 1010
 %\end{macro}
936
-%
937 1011
 %\subsection{Divers}
938 1012
 %
939 1013
 %\begin{macro}{\MakeUppercaseWithNewline}