summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/formation-latex-ul/apparence.tex
blob: 3563a66ec61b33161541f78d1b0487f1ec899625 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
%%% Copyright (C) 2020 Vincent Goulet
%%%
%%% Ce fichier fait partie du projet
%%% «Rédaction avec LaTeX»
%%% https://gitlab.com/vigou3/formation-latex-ul
%%%
%%% Cette création est mise à disposition sous licence
%%% Attribution-Partage dans les mêmes conditions 4.0
%%% International de Creative Commons.
%%% https://creativecommons.org/licenses/by-sa/4.0/

\chapter{Apparence et disposition du texte}
\label{chap:apparence}

Les bonnes pratiques dictent de séparer le contenu du texte de son
apparence lorsque l'on utilise un système de mise en page comme
{\LaTeX}. Néanmoins, vient un moment où l'on peut souhaiter modifier
l'apparence générale du document ou disposer le texte d'une manière
particulière. {\LaTeX} offre toute la flexibilité voulue, que ce soit
pour contrôler les attributs et la taille des polices de caractères,
disposer du texte sous forme de liste numérotée ou à puce, centrer du
texte ou créer des notes de base de page et des citations.

\section{Police de caractères}
\label{sec:apparence:police}

Par défaut, tous les documents {\LaTeX} utilisent la même police de
caractères\footnote{%
  Donald~Knuth a créé la police en même temps que {\TeX}.}, %
{\fontfamily{lmr}\selectfont Computer Modern}. Chose qui ne manquera
pas de surprendre les utilisateurs débutants: le système n'a pas été
conçu pour changer facilement la police du document!

Cela dit, il est aujourd'hui devenu assez simple d'utiliser d'autres
polices pour son document, surtout avec les moteurs
{\TeX} modernes comme {\XeTeX}. La \autoref{sec:trucs:polices} traite
du sujet plus en détail.

Cette section se concentre plutôt sur le changement d'\emph{attribut}
de la police du document, qu'il s'agisse de la famille (avec ou sans
empattements, à largeur fixe ou variable), de la forme (droit,
italique, penché) ou de la graisse (normal, gras). Le
\autoref{tab:apparence:police} dresse la liste des commandes de
changement d'attribut de la police.

\begin{table}
  \centering
  \caption[Commandes de changement d'attribut de la police]{%
    Commandes de changement d'attribut de la police. Les
    commandes de la deuxième colonne s'appliquent à tout le texte qui
    suit. Celles de la troisième colonne s'appliquent uniquement au
    texte en argument.}
  \label{tab:apparence:police}
  \begin{tabularx}{0.9\linewidth}{p{0.35\linewidth}Xl}
    \toprule
    \textbf{Famille} \\
    \textrm{romain} & \cmd{\rmfamily} & \cmd{\textrm}\marg{texte} \\
    \texttt{largeur fixe} & \cmd{\ttfamily} & \cmd{\texttt}\marg{texte} \\
    \textsf{sans empattements} & \cmd{\sffamily} & \cmd{\textsf}\marg{texte} \\
    \addlinespace[6pt]
    \textbf{Forme} \\
    \textup{\rmfamily droit} & \cmd{\upshape} & \cmd{\textup}\marg{texte} \\
    \textit{\rmfamily italique} & \cmd{\itshape} & \cmd{\textit}\marg{texte} \\
    \textsl{penché}$^\dagger$ & \cmd{\slshape} & \cmd{\textsl}\marg{texte} \\
    \textsc{\rmfamily petites capitales} & \cmd{\scshape} & \cmd{\textsc}\marg{texte} \\

    \addlinespace[6pt]
    \textbf{Série} \\
    \textmd{\rmfamily moyen} & \cmd{\mdseries} & \cmd{\textmd}\marg{texte} \\
    \textbf{\rmfamily gras} & \cmd{\bfseries} & \cmd{\textbf}\marg{texte} \\
    \bottomrule
  \end{tabularx} \\
  \raggedright
  \hspace*{3em}{\footnotesize $^\dagger$ diffère de l'italique selon
    la police utilisée}
\end{table}

La commande
\begin{lstlisting}
\normalfont
\end{lstlisting}
permet de revenir d'un trait à la police par défaut, soit le romain,
droit de graisse moyenne.

\begin{exemple}
  \label{ex:apparence:police}
  La commande \cmd{\setsecheadstyle} de la classe \class{memoir}
  permet de modifier facilement le style des titres de section pour
  tout le document. Pour obtenir des titres de section en gras sans
  empattements, on placera dans le préambule d'un document utilisant
  cette classe la commande suivante:
\begin{lstlisting}
\setsecheadstyle{\normalfont\sffamily\bfseries}
\end{lstlisting}
  L'utilisation de \cmd{\normalfont} au début de la série de commandes
  permet de réinitialiser le style des titres, question d'éviter
  d'éventuels conflits avec une configuration antérieure. %
  \qed
\end{exemple}

\section{Taille du texte}
\label{sec:apparence:taille}

On se souviendra que l'on règle la taille de base du texte au
chargement de la classe du document, tel qu'expliqué à la
\autoref{sec:bases:classes}. Les commandes du
\autoref{tab:apparence:taille} permettent néanmoins de réduire ou
d'agrandir la taille des caractères pour une section du texte. Les
commandes servent également pour la configuration de l'apparence
générale du document dans le préambule.

La taille des car

\begin{table}
  \centering
  \caption[Commandes de changement de la taille des caractères]{%
    Commandes de changement de la taille des caractères. Toutes
    les tailles sont relatives à celle de police de base du document.}
  \label{tab:apparence:taille}
  \begin{tabularx}{0.9\linewidth}{Xl}
    \toprule
    \cmd{\miniscule}$^\dagger$ & {\miniscule minuscule} \\
    \cmd{\tiny} & {\tiny vraiment petit} \\
    \cmd{\scriptsize} & {\scriptsize encore plus petit} \\
    \cmd{\footnotesize} & {\footnotesize plus petit} \\
    \cmd{\small} & {\small petit} \\
    \cmd{\normalsize} & {\normalsize taille normale} \\
    \cmd{\large} & {\large grand} \\
    \cmd{\Large} & {\Large plus grand} \\
    \cmd{\LARGE} & {\LARGE encore plus grand} \\
    \cmd{\huge} & {\huge énorme} \\
    \cmd{\Huge} & {\Huge encore plus énorme} \\
    \cmd{\HUGE}$^\dagger$ & {\HUGE vraiment énorme} \\
    \bottomrule
  \end{tabularx} \\
  \raggedright
  \hspace*{3em}{\footnotesize $^\dagger$ ajout de la classe
    \class{memoir} (et donc aussi de \class{ulthese})}
\end{table}

\begin{exemple}
  \label{ex:taille-du-texte}
  Les titres de sections sont généralement composés dans une taille
  supérieure à celle du texte. La commande suivante permet d'augmenter
  de deux échelons la taille des titres de
  l'\autoref{ex:apparence:police}:
\begin{lstlisting}
\setsecheadstyle{\normalfont\Large\sffamily\bfseries}
\end{lstlisting}
  \qed
\end{exemple}

\section{Italique}

L'italique est l'un des attributs de police les plus fréquemment
employés dans le texte. Il sert, notamment, à insister sur des mots, à
composer les expressions et locutions en langue étrangère ou à
détacher les titres d'{\oe}uvres du fil du texte.

Évidemment, il est possible d'obtenir de l'italique avec la commande
\cmd{\textit} du \autoref{tab:apparence:police}. Cependant, nous
recommandons plutôt d'utiliser une commande spécifiquement dédiée à
mettre en évidence une portion de texte:
\begin{lstlisting}
\emph`\marg{texte}'
\end{lstlisting}
Par défaut, la commande \cmd{\emph} (pour \emph{emphasis}, «emphase»)
placera \meta{texte} en italique dans du texte en romain (droit), ou
encore en romain dans du texte déjà en italique.
\begin{demo}
  \begin{texample}
\begin{lstlisting}
C'était un peu \emph{rough}
par moments.
\end{lstlisting}
    \producing
    C'était un peu \emph{rough} par moments.
  \end{texample}
  \begin{texample}
\begin{lstlisting}
Il m'a dit: «\emph{Enough
\emph{poutine} for the
week!}»
\end{lstlisting}
    \producing
    Il m'a dit: «\emph{Enough \emph{poutine} for the week!}»
  \end{texample}
\end{demo}

\tipbox{Le soulignement\index{soulignement} servait pour remplacer
  l'italique à l'ère des dactylos. C'est aujourd'hui une marque de
  typographie très rarement utilisée, voire à éviter. Ce n'est donc
  pas pour rien qu'il n'existe pas de commande de soulignement dans
  les classes {\LaTeX} standards.}


\section{Listes}
\label{sec:apparence:listes}

{\LaTeX} offre deux environnements principaux pour la composition de
listes ou d'énumérations:
\begin{demo}
  \begin{minipage}{0.48\linewidth}
\begin{lstlisting}
\begin{itemize}
\item `\meta{texte}'
\item `\meta{texte}'
...
\end{itemize}
\end{lstlisting}
  \end{minipage}
  \hfill
  \begin{minipage}{0.48\linewidth}
\begin{lstlisting}
\begin{enumerate}
\item `\meta{texte}'
\item `\meta{texte}'
...
\end{enumerate}
\end{lstlisting}
  \end{minipage}
\end{demo}
L'environnement \Ie{itemize} crée une liste à puce, alors que
l'environnement \Ie{enumerate} crée une énumération. Il est possible
d'imbriquer les listes les unes dans les autres, et ce, peu importe
leur type. {\LaTeX} se chargera d'adapter les marqueurs ou la
numérotation jusqu'à quatre niveaux de profondeur.

Illustrons ces concepts par le biais d'un exemple.

\begin{exemple}
  La liste mixte suivante résume les étapes de création d'une liste
  avec {\LaTeX}.
  \begin{enumerate}
  \item Décider s'il s'agit d'une liste à puce ou d'une énumération;
    \begin{itemize}
    \item pour une liste à puce utiliser environnement \Ie{itemize};
      \begin{itemize}
      \item chaque niveau d'une liste à puce possède un marqueur
        différent;
      \end{itemize}
    \item pour une énumération utiliser environnement \Ie{enumerate};
    \end{itemize}
  \item Débuter chaque élément de la liste par la commande
    \cmdprint{\item}.
    \begin{enumerate}
    \item utiliser simplement un autre environnement \Pe{itemize} ou
      \Pe{enumerate} comme texte d'un élément pour créer des listes
      imbriquées;
    \item {\LaTeX} ajustera automatiquement les marqueurs;
    \end{enumerate}
  \item S'assurer de fermer tous les environnements dans le bon ordre
    pour retourner au texte normal.
  \end{enumerate}

  On a composé la liste ci-dessus avec le texte suivant.
  \begin{demo}
\begin{lstlisting}[emph={enumerate,itemize}]
\begin{enumerate}
\item Décider s'il s'agit d'une liste à puce ou [...]
  \begin{itemize}
  \item pour une liste à puce utiliser [...]
    \begin{itemize}
    \item chaque niveau d'une liste à puce [...]
    \end{itemize}
  \item pour une énumération utiliser [...]
  \end{itemize}
\item Débuter chaque élément de la liste par la commande
  \verb=\item=.
  \begin{enumerate}
  \item utiliser simplement un autre environnement [...]
  \item {\LaTeX} ajustera automatiquement les marqueurs;
  \end{enumerate}
\item S'assurer de fermer tous les environnements [...]
\end{enumerate}
\end{lstlisting}
  \end{demo}
  \qed
\end{exemple}

{\LaTeX} permet de configurer à peu près toutes les facettes de la
présentation des listes: puces, folios, alignement, espacement entre
les éléments, etc. Cette grande flexibilité implique une certaine
complexité et la configuration des listes dépasse le cadre du présent
document. Plusieurs paquetages facilitent toutefois la configuration
des listes; nous recommandons à ce titre le paquetage \pkg{enumitem}
\citep{enumitem}.

\tipbox{Le mode français de \pkg{babel} remplace les puces par défaut
  en anglais ({\textbullet}, {\textendash}, $\ast$ et $.$ pour chacun
  des quatre niveaux de l'environnement \Ie{itemize}) par le tiret
  cadratin {\textemdash}.

  On peut désactiver cette fonctionnalité de \pkg{babel} en entrant
  l'option \code{StardardItemLabels=true} dans \cmd{\frenchbsetup}
  (\autoref{sec:bases:francais:babel}).

  De plus, il est possible de modifier le symbole utilisé comme puce
  pour l'un, l'autre ou chacun des quatre niveaux en configurant,
  toujours via \cmd{\frenchbsetup}, les options du paquetage
  \code{ItemLabeli}, \code{ItemLabelii}, \code{ItemLabeliii} et
  \code{ItemLabeliv}. La \emph{Comprehensive {\LaTeX} Symbol List}
  \citep{comprehensive} propose une immense sélection de symboles
  pouvant faire office de puces.}

Il existe un troisième environnement, plus rarement utilisé, pour
composer du texte sous une forme s'apparentant à une liste.
L'environnement \Ie{description} permet d'associer des termes à une
définition ou une description pour chacun.
\begin{demo}
  \begin{texample}
\begin{lstlisting}
\begin{description}
\item[rouge] première couleur
  primaire
\item[vert] seconde couleur
  primaire
\item[bleu] troisième couleur
  primaire
\end{description}
\end{lstlisting}
    \producing
\begin{description}
\item[rouge] première couleur primaire
\item[vert] seconde couleur primaire
\item[bleu] troisième couleur primaire
\end{description}
  \end{texample}
\end{demo}


\section{Texte centré}
\label{sec:apparence:centering}

On obtient du texte centré avec l'environnement \Ie{center} ou à
l'aide de la commande \cmd{\centering}. L'environnement sert
principalement pour centrer un bloc de texte.
\begin{demo}
  \begin{eqxample}
\begin{lstlisting}
\begin{center}
  Centrer un mot ou une
  expression les met en
  évidence.
\end{center}
\end{lstlisting}
    \producing
\begin{center}
  Centrer un mot ou une expression
  les met en évidence.
\end{center}
  \end{eqxample}
\end{demo}
On remarquera que le texte centré n'est pas placé en retrait des
marges gauche et droite (illustrées par les lignes verticales
ci-dessus). Lorsque le texte fait plus d'une ligne, on pourra
souhaiter forcer des retours à la ligne avec la commande {\bs\bs}.
\begin{demo}
  \begin{eqxample}
\begin{lstlisting}
\begin{center}
  Centrer un mot \\
  ou une expression \\
  les met en évidence.
\end{center}
\end{lstlisting}
    \producing
\begin{center}
  Centrer un mot \\
  ou une expression \\
  les met en évidence.
\end{center}
  \end{eqxample}
\end{demo}

La commande \cmd{\centering} s'applique à tout le texte qui suit. Elle
s'avère surtout utile à l'intérieur d'environnements comme \Pe{table}
ou \Pe{figure} pour centrer un tableau ou une figure sur la page. On
trouvera plusieurs exemples de son utilisation
au \autoref{chap:tableaux}.


\section{Citations}
\label{sec:apparence:citations}

Une citation est une reproduction d'un propos ou d'un écrit antérieur
d'un auteur qui est habituellement mentionné. Il existe deux
environnements dans {\LaTeX} pour composer les citations.

\begin{quote}
  L'environnement \Ie{quote} est utilisé pour les citations courtes.
  Le texte est placé en retrait des marges gauche et droite. Le
  présent texte a été placé dans cet environnement.
\end{quote}

\begin{quotation}
  L'environnement \Ie{quotation}, lui, sert pour les citations plus
  longues se comptant en paragraphes.

  La principale différence par rapport à l'environnement \Pe{quote},
  c'est que \Pe{quotation} prend aussi en charge les marques de
  paragraphes.

  Ce paragraphe et les deux précédents sont composés dans
  un environnement \Pe{quotation}.
\end{quotation}


\section{Notes de bas de page}
\label{sec:apparence:notes}

Une note de bas de page --- ou tout simplement \emph{note},
puisqu'elle peut apparaitre ailleurs qu'au bas de la page --- est un
court texte qui sert à expliquer un mot ou une phrase du texte
principal. L'\emph{appel de note} désigne le signe, le chiffre ou la
lettre que l'on place après la partie à expliquer.

La commande
\begin{lstlisting}
\footnote`\marg{texte de la note}'
\end{lstlisting}
insère un appel de note à l'endroit où la commande apparait dans le
texte et affiche \meta{texte de la note} à l'endroit
approprié\footnote{%
  Au bas de la page par défaut, comme ici. La note est composée dans
  un corps plus petit et elle est séparée du texte par un trait.}. %
{\LaTeX} se charge automatiquement de la numérotation et de la
disposition des notes.

Pour éviter que l'appel de note ne soit séparé du texte à expliquer,
la commande \cmd{\footnote} doit immédiatement suivre celui-ci. La
gestion des espaces peut alors devenir délicate, surtout si l'appel de
note se trouve en fin de phrase. Nous recommandons de faire bon usage
du symbole \% pour délimiter le contenu de \cmdprint{\footnote} du
texte courant.
\begin{lstlisting}[emph=footnote]
%% note en fin de phrase
Nous remercions Pierre Lasou\footnote{%
  Spécialiste en ressources documentaires.}. %
Il fut d'une grande aide dans la préparation de ...
\end{lstlisting}
\begin{lstlisting}[emph=footnote]
%% note au fil de la phrase
Nous soulignons que Pierre Lasou\footnote{%
  Spécialiste en ressources documentaires.} %
fut d'une grande aide dans la préparation de ...
\end{lstlisting}

Les usages en matière de numérotation et de disposition des notes
varient beaucoup d'une discipline à l'autre: numérotation consécutive
pour tout le document, notes dans la marge plutôt qu'au bas de la
page, notes rassemblées à la fin de chaque chapitre ou à la toute fin
du document, etc. Différents paquetages permettent de réaliser ce type
de disposition, notamment \pkg{footmisc} \citep{footmisc}. Les
utilisateurs de la classe \class{ulthese} pourront également tirer
profit des nombreuses fonctionnalités de la classe \class{memoir} pour
la gestion des notes; consulter le chapitre~12 de la %
\doc{memoir}{http://texdoc.net/pkg/memoir} de \class{memoir}.


\section{Texte brut et code source}
\label{sec::apparence:code}

Il est parfois utile d'afficher du texte exactement comme il a été
saisi dans un fichier, sans que {\LaTeX} n'interprète les commandes
qui s'y trouvent ou n'en modifie la disposition. C'est ainsi que nous
avons composé les nombreux extraits de code du présent document.

L'environnement \Ie{verbatim} permet de présenter du texte tel qu'il
est entré dans le code source du document.
\begin{demo}
  \begin{texample}
\begin{lstlisting}
\begin{verbatim}
Texte disposé exactement tel
qu'il est tapé et
présenté dans une police
à largeur fixe
\end{verbatim}
\end{lstlisting}
    \producing
\begin{verbatim}
Texte disposé exactement tel
qu'il est tapé et
présenté dans une police
à largeur fixe
\end{verbatim}
\end{texample}
\end{demo}
La variante \Ie{verbatim*} affiche les espaces de manière explicite en
les remplaçant par le symbole \verb*| |. C'est surtout utile pour le
code source de langages informatiques où le nombre d'espaces joue un rôle
important.

Pour afficher du texte brut ou une commande {\LaTeX} au fil du texte,
on aura recours à la commande
\cmd{\verb}. Sa syntaxe est un peu particulière:
\begin{lstlisting}
\verb`\meta{c}\meta{source}\meta{c}'
\end{lstlisting}
où \meta{c} est un symbole quelconque ne se trouvant pas dans
\meta{source} et qui sert à délimiter le début et la fin de
\meta{source}. La variante
\cmd{\verb*} affiche elle aussi les espaces.
\begin{demo}
  \begin{texample}
\begin{lstlisting}
{\LaTeX} n'interprète pas la
commande \verb=\bfseries=
lorsqu'elle est placée
dans \verb=\verb=.
\end{lstlisting}
    \producing
    {\LaTeX} n'interprète pas la
    commande \verb=\bfseries=
    lorsqu'elle est placée
    dans \verb=\verb=.
  \end{texample}
  \begin{texample}
\begin{lstlisting}
Le nombre d'espaces entre les
mots ne compte pas dans
{\LaTeX}: \verb*=a b= et
\verb*=a  b= donnent «a b».
\end{lstlisting}
    \producing
    Le nombre d'espaces entre les mots ne
    compte pas dans {\LaTeX}: \verb*=a b= et
    \verb*=a  b= donnent «a b».
  \end{texample}
\end{demo}

Pour tout document comportant une grande quantité de texte brut ou de
code source, nous recommandons d'avoir le paquetage \pkg{listings}
\citep{listings}. La \autoref{sec:trucs:listings} approfondit le
sujet.


%%%
%%% Exercices
%%%

\section{Exercice}
\label{sec:apparence:exercices}

% \Opensolutionfile{solutions}[solutions-apparence]

% \begin{Filesave}{solutions}
% \section*{Chapitre \ref*{chap:apparence}}
% \addcontentsline{toc}{section}{Chapitre \protect\ref*{chap:apparence}}

% \end{Filesave}

\begin{exercice}[nosol]
  \begin{enumerate}
  \item Ouvrir le fichier \fichier{exercice\_complet.tex} et en
    étudier le code source, puis le compiler.
  \item Supprimer l'option \code{article} au chargement de la classe
    et compiler de nouveau le document. Observer l'effet de cette
    option de la classe \class{memoir}.
  \item Au dernier paragraphe de la première section, placer toute la
    phrase débutant par \code{«De simple dérivé»} à l'intérieur d'une
    commande \cmd{\emph} et compiler de nouveau le document.
  \item Changer la puce des listes pour le symbole \code{\$>\$} et
    compiler de nouveau le document.
  \end{enumerate}
\end{exercice}

% \Closesolutionfile{solutions}

%%% Local Variables:
%%% mode: latex
%%% TeX-master: "formation-latex-ul"
%%% TeX-engine: xetex
%%% coding: utf-8
%%% End: