-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmd2beamer
executable file
·640 lines (574 loc) · 28.7 KB
/
md2beamer
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
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
#!/usr/bin/env bash
# Convertit un fichier markdown en une présentation via LaTeX/Beamer
# Copyright (C) 2016-2017 Bruno BEAUFILS
#
# usage: md2beamer [OPTIONS] SOURCE [FICHIERS-INCLUS...]
#
# md2beamer est un wrapper autour de pandoc qui permet de convertir un fichier
# au format Markdown en un diaporama PDF via LaTeX et Beamer.
#
# SOURCE est le fichier au format Markdown source de la présentation. Le
# fichier doit avoir comme suffixe '.md'. Les diapositives sont les sections
# de niveau 2, avec le titre de la section comme titre de diapositive.
#
# Si la présentation inclus d'autres fichiers on doit les spécifier à la
# suite. On peut, par exemple, spécifier des fichiers images, des modèles
# remplaçants ceux utilisés par le script (modèle pandoc, thème beamer, etc.)
# ou des répertoires complets.
#
# Les formats d'images utilisables sont uniquement pdf (pour du vectoriel) et
# png ou éventuellement jpg (pour du matriciel). Les extensions d'images
# '.svg' dans SOURCE sont remplacés automatiquement en '.pdf'. Les images sont
# alignées horizontalement en s'assurant qu'elles tiennent sur la largeur de
# la diapositive.
#
# OPTIONS
#
# -h, --help affiche ce message d'aide
# -t, --theme THEME utilise THEME pour la forme du diaporama au lieu de
# lille1. 'list' permet de lister les thèmes.
# -s, --slide-level N spéficie le niveau de titre qui définit une diapo
# au lieu du niveau 2
# -L, --latex produit le source LaTeX plutôt que le résultat PDF
# -c, --check vérifie la présence des outils nécessaires
# -l, --list-debian liste les paquets Debian nécessaires
# -d, --debug conserve le répertoire de travail (/tmp/md2beamer)
# -V, --version affiche la version du script
#
# EXEMPLES
#
# Vérifier que les outils nécessaires sont disponibles sur la machine :
#
# md2beamer -c
#
# Convertir le fichier presentation.md qui inclut l'image image.pdf
#
# md2beamer presentation.md image.pdf
#
# Convertir le fichier slides.md qui inclut des images du répertoire img
#
# md2beamer slides.md img/image1.pdf img/image2.png
#
# Convertir le fichier slides.md qui inclut des images du répertoire img
#
# md2beamer slides.md img
#
# DEPENDANCES/LIMITATIONS
#
# Pour fonctionner md2beamer a besoin que 'pandoc' ainsi qu'une installation
# TeX (avec 'pdflatex' et la classe 'beamer.cls') soit accessible. Seule la
# distribution TeXLive disponible pour Unix (sous le nom MacTeX pour Mac OS X)
# a été testée.
#
# [pandoc]: http://pandoc.org
# [texlive]: http://tug.org/texlive
# [mactex]: http://tug.org/mactex
#
# Avec les dépendances spécifiées, en l'état ce script ne peut pas fonctionner
# complètement sous MacOS X car il utilise des options spécifiques aux
# versions GNU des commandes UNIX classiques.
# TODO: expliciter extensions markdown supportées
# DETAILS TECHNIQUES
#
# Les autres fichiers nécessaires (thèmes beamer, logos) sont embaqués en fin
# de script (pour pouvoir diffuser le script et rien d'autre). L'embarquement
# est fait entre deux lignes sous la forme :
#
# # begin-THEMES FILENAME COMMAND
# ...
# # end FILENAME
#
# THEMES correspond à une liste de thème pour lesquels le fichier est
# nécessaire et doit donc être extrait avant la conversion. Dans cette liste
# les thèmes sont séparés les uns des autres par un tiret (-). Si THEMES vaut
# all le fichier est extrait pour tous les thèmes.
#
# COMMAND est la commande à utiliser pour reconstruire le fichier,
# généralement c'est cat (quand le contenu est textuel et qu'il faut juste
# l'extraire) ou base64 --decode (quand le contenu du fichier est binaire et
# qu'on l'a embarqué en base64).
# CONVENTIONS DE CODAGE
#
# Quand on ajoute/modifie quelque chose il faut penser à un fonctionnement
# sous Linux **et** BSD (e.g. MacOS X). Il faut par exemple être
# précautionneux avec les options de commandes Unix classiques qui sont
# souvent différentes. Dans l'idéal il faudrait penser POSIX.
# FreeBSD et GNU n'ont pas la même option pour activer les ERE dans sed
# TODO: probleme si le sed disponible est strictement POSIX (aka ni GNU, ni FreeBSD)
if sed v </dev/null >/dev/null 2>&1 ; then
_sed() { sed -r "$@" ; } # GNU
else
_sed() { sed -E "$@" ; } # (FreeBSD)
fi
doc () { sed -n '2,/^$/ { s/^ *#// ; s/^ //g ; t ok ; d ; :ok ; p }' <$0 ; }
die () { echo "${0##*/}: error: $*" 1>&2 ; exit 1 ; }
log () { date "+%F %T ${0##*/} $*" | tee -a "$LOG" ; }
abs () { echo $(cd $(dirname $1) ; pwd)/${1##*/} ; }
mute () { 1>/dev/null 2>&1 $* ; }
need () { die "$1 is unavailable" ; }
# réussit si les outils nécessaires sont accessibles
check ()
{
mute which pandoc || need pandoc
mute which tar || need tar
mute which base64 || need base64 coreutils
mute which pdflatex || need pdflatex texlive-latex-base
mute kpsewhich beamer.cls || need beamer.cls texlive-latex-recommended
}
# extrait un fichier embarqué dans le script
# args: dstdir name command
extract-file ()
{
d=$1
f=$2
shift 2
_sed -n '/^# begin-([^ ]+) '$f' .*$/,/^# end '$f'$/ p' $cmd \
| sed '1d ; $d' \
| $* >$d/$f
}
# liste les fichiers pour un thème donné (avec leur commande de décodage)
# args: theme
list-files ()
{
grep '^# begin-' $cmd \
| grep -e "-$1[- ]" -e '# begin-all '\
| _sed -e 's/^# begin-[^ ]+ (.*)$/\1/'
}
# liste les thèmes qui embarque des fichiers dans le script
list-themes ()
{
grep '^# begin-' $cmd \
| _sed -e 's/^# begin-([^ ]+) .*$/\1/' \
| tr '-' '\n' | sort | uniq
}
##############################################################################
VERSION=1.0-beta1
LATEX_ONLY=false
DEBUG=false
THEME=lille1
TMPDIR=/tmp/md2beamer
SLIDELEVEL=2
DESTDIR=$PWD
cmd=$(abs $0)
while [ ! -z "$1" ] ;
do
case "$1" in
"-h"|"--help") doc && exit ;;
"-V"|"--version") echo $VERSION && exit ;;
"-c"|"--check") check && exit ;;
"-l"|"--list-debian")
egrep '\|\| need' $0 | _sed 's/^.* (.*)$/\1/'
exit
;;
"-t"|"--theme")
shift
THEME=$1
[ "$1" = "list" ] && list-themes && exit 0
;;
"-s"|"--slide-level")
shift
SLIDELEVEL=$1
;;
"-L"|"--latex") LATEX_ONLY=true ;;
"-d"|"--debug") DEBUG=true ;;
*) break;;
esac
shift
done
check || die "needed tools missing"
[ -z $1 ] && die "missing source file"
SRC=$(abs $1)
dsttex=$(basename $1 .md).tex
dstpdf=$(basename $1 .md).pdf
shift
mkdir -p $TMPDIR
list-files $THEME | while read f
do
extract-file $TMPDIR $f
done
[ $# -ne 0 ] && { tar -cf - "$@" | tar -C $TMPDIR -xf - ; }
$LATEX_ONLY || cd $TMPDIR
pandoc -s \
-f markdown+pandoc_title_block+pipe_tables-implicit_figures+link_attributes \
--toc \
-t beamer \
--template=$TMPDIR/beamer-pandoc.tex \
-V theme=$THEME \
-V fontsize=10 \
--slide-level=$SLIDELEVEL \
$SRC > $dsttex
_sed -i \
-e '/\\begin\{document\}/,$ s!\\includegraphics(\[[^]]*\]|)\{([^}]*).svg\}!\\includegraphics\1{\2.pdf}!g' \
-e '/\\begin\{document\}/,$ s!(\\includegraphics(\[[^]]*\]|)\{[^}]*\})!\\centerline{\1}!g' \
$dsttex
if ! $LATEX_ONLY ; then
trap "die $PWD/$dsttex: compilation failure" ERR
export TEXINPUTS=.//:
pdflatex -halt-on-error $dsttex 1>/dev/null 2>&1
pdflatex -halt-on-error $dsttex 1>/dev/null 2>&1
mv $dstpdf $DESTDIR
fi
$DEBUG || { cd .. ; rm -rf $TMPDIR ; }
##############################################################################
exit 0
# begin-lille1 beamerthemelille1.sty cat
% Un thème Beamer pour l'Université de Lille 1
% Copyright (C) 2015-2016 Bruno BEAUFILS
% This file is distributed under the terms of the WTFPL license.
% Paramétrages génériques %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Les couleurs de Lille 1
\definecolor{Lille1Pourpre}{RGB}{174,37,115} % en HTML : ae2573
\definecolor{Lille1NeutreNoir}{RGB}{56,47,45} % en HTML : 382f2d
\definecolor{Lille1NeutreBleu}{RGB}{127,160,172} % en HTML : 7fa0ac
\definecolor{Lille1NeutreRose}{RGB}{216,200,209} % en HTML : d8c8d1
\definecolor{Lille1FroideBleu}{RGB}{29,66,138} % en HTML : 1d428a
\definecolor{Lille1FroideVert}{RGB}{0,179,152} % en HTML : 00b398
\definecolor{Lille1FroideCyan}{RGB}{141,200,232} % en HTML : 8dc8e8
\definecolor{Lille1ChaudeViolet}{RGB}{114,0,98} % en HTML : 720062
\definecolor{Lille1ChaudeMarron}{RGB}{211,130,53} % en HTML : d38235
\definecolor{Lille1ChaudeTaupe}{RGB}{213,203,159} % en HTML : d5cb9f
\definecolor{Lille1ViveRouge}{RGB}{249,66,58} % en HTML : f9423a
\definecolor{Lille1ViveVert}{RGB}{120,190,32} % en HTML : 78be20
\definecolor{Lille1ViveJaune}{RGB}{252,227,0} % en HTML : fce300
%% La police Lille 1 n'est pas libre (Verdana) on prend le truc le plus proche
\usepackage[scaled=.92]{helvet}
%% Paramétrage hyperref
\hypersetup{%
colorlinks,%
linkcolor=,%
urlcolor=Lille1Pourpre}
% Paramétrage Beamer %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\mode<presentation> % pour le mode présentation seulement
%% Logos
\titlegraphic{%
\raisebox{-0.5\height}{\includegraphics[width=6em]{logo-univ-lille1}}
}
\logo{\includegraphics[height=1.5em]{logo-univ-lille1}}
%% Couleurs
\usecolortheme{spruce}
\setbeamercolor{normal text}{fg=Lille1NeutreNoir}
\setbeamercolor{structure}{fg=black}
\setbeamercolor{frametitle}{fg=white,bg=Lille1Pourpre}
\setbeamercolor{title}{fg=Lille1Pourpre,bg=white}
\setbeamercolor{subtitle}{fg=Lille1NeutreBleu}
\setbeamercolor{footline}{fg=white,bg=Lille1Pourpre}
\setbeamercolor{block title}{fg=white,bg=Lille1Pourpre}
\setbeamercolor{block body}{fg=Lille1NeutreNoir,bg=Lille1NeutreRose}
\setbeamercolor{block title example}{fg=white,bg=Lille1NeutreBleu}
\setbeamercolor{block body example}{fg=Lille1NeutreNoir,bg=Lille1NeutreRose}
\setbeamercolor{alerted text}{fg=Lille1Pourpre}
%% Polices de caractères
%\usefonttheme[stillsansseriftext]{serif}
\usefonttheme[onlylarge]{structurebold}
\setbeamerfont{date in head/foot}{series=\bfseries}
\setbeamerfont{date}{series=\bfseries}
\setbeamerfont{alerted text}{series=\bfseries}
%% Traduction en français
\uselanguage{french}
\languagepath{french}
\deftranslation[to=french]{Definition}{Définition}
\deftranslation[to=french]{Example}{Exemple}
\deftranslation[to=french]{Theorem}{Théorème}
%% Adaptation des modèles
%%% Sections dans la table des matières
\setbeamertemplate{sections/subsections in toc}[sections numbered]
%%% Une page simple (avec table des matières) devant chaque section
\setbeamertemplate{section page}{\tableofcontents[currentsection,subsubsectionstyle=show/show/show/shaded]}
\AtBeginSection[]{\frame{\sectionpage}}
%%% Styles des blocs
\setbeamertemplate{blocks}[rounded][shadow=true]
\setbeamerfont{block title}{size={}}
%%% Style des listes
\setbeamertemplate{items}[triangle]
%%% Type des continuations
\setbeamertemplate{frametitle continuation}[from second][(suite)]
%%% Des pieds de diapo simples
\setbeamertemplate{footline}
{
\leavevmode%
\hbox{%
\begin{beamercolorbox}[wd=\paperwidth,ht=2.25ex,dp=1ex]{footline}
\usebeamerfont{date in head/foot}
\hspace*{1.25ex}
\inserttitle{} \hspace*{3ex} \emph{\textmd{\insertsection}}
\hfill
\insertframenumber{} / \inserttotalframenumber
\hspace*{1.25ex}
\llap{\raisebox{2em}{\insertlogo}\hspace{.75ex}}
\end{beamercolorbox}}%
\vskip0pt%
}
\setbeamertemplate{navigation symbols}{} % pas de navigation affichée
\setbeamertemplate{sidebar right}{} % pas de logo
%% D'autres paramètres Beamer en vrac
\setbeamercovered{dynamic} % on découvre lentement les trucs cachés
\setbeamersize{text margin left=1em,text margin right=1em}
# end beamerthemelille1.sty
##############################################################################
# begin-lille1 logo-univ-lille1.pdf base64 --decode
JVBERi0xLjUKJbXtrvsKMyAwIG9iago8PCAvTGVuZ3RoIDQgMCBSCiAgIC9GaWx0ZXIgL0ZsYXRl
RGVjb2RlCj4+CnN0cmVhbQp4nCvkClQo5CrkMlQwAEIQqWugZ2lgYmlpqZCcy6WfaKCQXqygX2Gq
4JLPFUikYjNSFJuTotiCFMWWUMVcAAwJMWUKZW5kc3RyZWFtCmVuZG9iago0IDAgb2JqCiAgIDY2
CmVuZG9iagoyIDAgb2JqCjw8CiAgIC9FeHRHU3RhdGUgPDwKICAgICAgL2EwIDw8IC9DQSAxIC9j
YSAxID4+CiAgID4+CiAgIC9YT2JqZWN0IDw8IC94NSA1IDAgUiAveDYgNiAwIFIgL3g3IDcgMCBS
IC94OCA4IDAgUiAveDkgOSAwIFIgPj4KPj4KZW5kb2JqCjEwIDAgb2JqCjw8IC9UeXBlIC9QYWdl
CiAgIC9QYXJlbnQgMSAwIFIKICAgL01lZGlhQm94IFsgMCAwIDU3NS4xMjI5MjUgMjIwLjA5NTAw
MSBdCiAgIC9Db250ZW50cyAzIDAgUgogICAvR3JvdXAgPDwKICAgICAgL1R5cGUgL0dyb3VwCiAg
ICAgIC9TIC9UcmFuc3BhcmVuY3kKICAgICAgL0kgdHJ1ZQogICAgICAvQ1MgL0RldmljZVJHQgog
ICA+PgogICAvUmVzb3VyY2VzIDIgMCBSCj4+CmVuZG9iago1IDAgb2JqCjw8IC9MZW5ndGggMTIg
MCBSCiAgIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCiAgIC9UeXBlIC9YT2JqZWN0CiAgIC9TdWJ0eXBl
IC9Gb3JtCiAgIC9CQm94IFsgMjY1IDIgNTM1IDU2IF0KICAgL1Jlc291cmNlcyAxMSAwIFIKPj4K
c3RyZWFtCnicbVlNsjSpDdzXKeoCrin+4Rg+gqPD38yiv4XH949wZkpAvW6v3pMoQEIpKaH/c9xX
SC2WcuKfGEod+qfkcf795/nHv+7zz/8esQ0OnjlcMZ2/zyWna3RI7SrQ53LVUSCmq0Cd2xXq+Tpj
HddIkPuVez8k15rPPK6ED6ZY7iu35t9LEa4eIpa7r97bWeLVMB5bvErLLh78vuXrjnu8XKlIjClD
rFfNgYvR4JeMDffgdi2U8y1f7nicJV2hS+5X5XrwIicp6tW5YrnuWrXdqIHitKfaKMWX+RdSWh/U
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
o6+TzH6F81F/gu6630yJjf0WxTbFsTv7+sQ6u1bDuXjnzqjUW3rJlhLbHkZjKyJKpOaZpauLvPPT
onoLRSiKD26juJGqh9+6rfCKW9TDeUt942aAOXy+RkqQL3B5PjtY35YtuIHPrk7LxQlsFH0rgBAw
LgUBWPICzFQsvLqiiiJxNTnuvxfAplBNOuQN2Fqva7jaK4EgLscaI2Dv6pQLkZ+tUJjI0s7HXW7s
gJDmqZiAAGhwtQq7iT7eDIu9GZbbHioW0S2hiJYsvrgUs8uuKR+KB9EFj9RPFl+KVaTKzbL3JS+a
ywmtbaY/5Vn1phGf8oPmljgY0ZCVBPAMNwEitNjlFxIfb7huGFtsIoKvrQAFDXxrjlV3fEKWL2MG
R5P49dAvLj6abtVwNQSU4RTt7sNrM1FABUFCTAcGqqQ8pxP1pghIBSiMynJKFqJpBDcAYz8ctLRG
vxSlaU1WhOcoyGOR5T0uCY4yIK+pOHhQOXVN5muk1y6kqR55eLClyvigNhBu+xwirw1DV3iXDhQO
e9uYw1UvEIlPAKc1OBqdrCmlLDvq5EAaZcsKbHs8EdAXtdqO7In6OAnXXc/mOJ7Ixw5eYe7hovEn
e/HQdJ4X6H+2xQkmy0IZUtui3jzqO405ikiwzhS1AZfoH219rWEcj34CSUm0nZWSDv+AIKv4P4//
AYJgl7cKZW5kc3RyZWFtCmVuZG9iagoxMiAwIG9iagogICAyNTYzCmVuZG9iagoxMSAwIG9iago8
PAogICAvRXh0R1N0YXRlIDw8CiAgICAgIC9hMCA8PCAvQ0EgMSAvY2EgMSA+PgogICA+Pgo+Pgpl
bmRvYmoKNiAwIG9iago8PCAvTGVuZ3RoIDE0IDAgUgogICAvRmlsdGVyIC9GbGF0ZURlY29kZQog
ICAvVHlwZSAvWE9iamVjdAogICAvU3VidHlwZSAvRm9ybQogICAvQkJveCBbIDAgMCA1NzYgMjIx
IF0KICAgL1Jlc291cmNlcyAxMyAwIFIKPj4Kc3RyZWFtCnicK+QKVCjkMlAwMjJUMDU3U9A1MjLQ
MzQ1UyhKVQhXyOMq5NJPNFBIL1bQrzA0VXDJ5woEQgA1MQu1CmVuZHN0cmVhbQplbmRvYmoKMTQg
MCBvYmoKICAgNTkKZW5kb2JqCjEzIDAgb2JqCjw8CiAgIC9FeHRHU3RhdGUgPDwKICAgICAgL2Ew
IDw8IC9DQSAxIC9jYSAxID4+CiAgID4+CiAgIC9YT2JqZWN0IDw8IC94MTUgMTUgMCBSID4+Cj4+
CmVuZG9iago3IDAgb2JqCjw8IC9MZW5ndGggMTcgMCBSCiAgIC9GaWx0ZXIgL0ZsYXRlRGVjb2Rl
CiAgIC9UeXBlIC9YT2JqZWN0CiAgIC9TdWJ0eXBlIC9Gb3JtCiAgIC9CQm94IFsgNTEgNDggNTM0
IDIxOSBdCiAgIC9SZXNvdXJjZXMgMTYgMCBSCj4+CnN0cmVhbQp4nG1YXY7mNg589yl8gVVEifo7
Ro6w+LBJHnoeNnt/YKuKtuyeCYKgm2yJ4k+xSM9/Dzv5399/nr/9O59//u9YJc1y+kx12PnjbJZG
rmcfyco6v27Zxkh1TSji/M9y3D8g/3GY92R5nXOmhj/9OC23tHydI6fSeOdWXK9CcV3pPfX1Uhy3
EdrNyeoorZ34pVjrS7802EE0tdUEA9ZbysPxaPWVstHTqlCq19Qb5Dmkr15Sq+ss2ZJ7Oz9nrQ4T
fmzV163amlo75AmjLWREoPS0KT2MtJF83gompCLsPPtzZxR6uk1+F2Ghw1H89vKi01Vkd/uOR2z0
J7bvwX+QrFZaal7PYvBwNlW2pznW1nw9mv1SM0vtrTgujS1Hmf116R80CLSV+tYglNnH2UpOtSAb
d55amWnV+cpbq1X+3pqvR4OophVpcvLSbw2T20pHMGsfusM2ALihcFselnIzPnRrHv/joeNX1Tsz
dz5/1ex8/nEUgK6z/APxsZ0eRUYmcNg99enyt/ezAE9rlVv8nKWsVDNLfR0onmotz/0t64HPVsgL
Z5bQGkDgvDXHS8VbPv2bBtBixW3AL6WtlAGrFs2CAvqoegfRtsYSLoRrcB0ZzYgEWBztiSREXHAL
DFx/R0N77rpuuZxHaWiLCi7qeArgxQ2U3h8TX1vxiu1K5y+a484Iq1BzjqQvGBqDZVhTjVLwF4QO
GcCciDOj+QbsobE64r9lODMried4joyVZg4TyEwBAToRDMvTdQMlqvzLdeFra15kQCu5vFB+KybK
6G/FQnoJgFmESYPHq9Xb02Mr8DAouJHp7iOrp2ovE7d8vfF5NC+Wyp4Wgbk925oJJJb21iz0YQd1
ZTyIn+wbdsKV92MnnkTkatrn9R/n1lz+OUi2lLr997qkfyJ0z2n0/gTtIG+1AeQGb13kzivIFjLO
K43jApqGoQMRPDGqPFsZlhzMjdmhclbBjzfmjA6vQBLfmL7LeXv1QIR+M3nPCUsljxshDo6btb8Q
4ugqtsIGyKV4lWHnZpfh5/wJ4Oje+eLpSar4F3JAtP39n/eJi5zixBTIdcCROXf7ZsK/29hHXjb8
m5GKZnZDEyAOR1leRvznIxVG1vgnI7NHl0xe0+imBhVgyKQGyt5GIJEjE3Iv/HtPTfOOGpBSTEgH
8ionJdkF+0OZS7J3yksyr8ChMgQZIKniR/YhLJeMYVDRI8ZHQsEbi525j5yei3JMEPaBgudwl7g2
JzlTs5ZwC0gQIlh8eANe5EvMI5wu/boAWClSWOALHFXIDDuQDmgpMpBCXVoW4AvftokOAZwrLPOo
gUXWlaqq2Qx9bleqlG5pNB7+OiragrxI6nUsVmhSgHiZb42j1xUsgWlo2txjz4FLU+DOgLkx1g6O
RQxuWS6Q4Fl5txqudKTP+3WFJ63DiHFxoNUYjyOmDTNkjA+bIVYguaG5xXm/4l3ju9IUdDiTtGTU
NZAYGp49tuITta7rOQIoVHYqXuX6yRTJcw7HdeVsoR5UdBviS6r6ClXh3AFiBS0tZWvJEbIaxIla
MRKOHG7OTX4vjqRDheBa7Ny0UEhYUbaKFhj2QNF5YzeuAH0vkhU3Kk79QYX2TEY3xYFWYltd0Tes
SMysIeh7HmImeKv2vQBr1wacu1Awh23KUlPk8iLBCvAH6d0nshZ2WkBvHpHcbMGKcoup4y7GZ4FA
yI7yDxEl+6bO2EkMjxEevGGxnbFK9RrEbDNOI8o5z2ht4apiFWCDMlWuE4h3RR9V7o1bQVNyaSuI
jCabfTXBzmhhVrGkYRMnGV+MYyv2IQ4alj+GfTTMzy3FWVj61KRj4Ka9BArEEQo2wK2wHEQcGjUJ
2QWXJC9gkB9R3NGoELWhd9rUEgmN+DEPxU+ZVbSsq5C5ZMK1fC2bsbyQYS3mahmxH5l57EvIjyb9
JXM/CmTsE+TqxXwAhmzhItJGSo1sGCtV50A1y/KTm4y4Dl5wr2JDXT5De8R5PKxAmXQ+QfpFajoS
Tg+4CxhJMivugQywJbLWBcjGPeVgele7Uvek/wPioxMgDdSKGxQXRRgdOlK0OsVMMu4EdHJ5dFB2
9SxXKdDO4scD0z8kaxPJSzOLNxa/WdSLrhs1yMTiJNe3MinTFX5+ksPJcbZU2MgE9wSOWXPthMNw
oxR1vKrjj8xMNE6z43UkgEsTak/U23Qli2YIGpABC2CBxQI+XYIEu5JrDtiSn/yGj7vos9K5Ibkw
wCwVrvLkE5ScvFowCbiNMRdXtqDJfmVLqz26h8UU3h9xsS914VbEdOYLDf2JfLBL6GOZKPDUnAzk
kxzRvsZPaFFxO4e+ybVZt1v6RBrh1vVXjNzBwQ/yyIWLNngLizdNLX2eABqABFDH6Fk1fniCrmdu
AQPcElv7dTqT/+bSGvElg/w8BuLoYtG3fGco+mcIPI9P5BM/VoCZQ79TJjjwPzfqgzK/uhiL3gvx
c3Vsff6e9S8EhHeuygu9hdNk3M95hMak0T/0iCRyHKmiIiYPv90EDw/wg+DN4f3um0Pk9vvxf3oq
kcoKZW5kc3RyZWFtCmVuZG9iagoxNyAwIG9iagogICAxOTAyCmVuZG9iagoxNiAwIG9iago8PAog
ICAvRXh0R1N0YXRlIDw8CiAgICAgIC9hMCA8PCAvQ0EgMSAvY2EgMSA+PgogICA+Pgo+PgplbmRv
YmoKOCAwIG9iago8PCAvTGVuZ3RoIDE5IDAgUgogICAvRmlsdGVyIC9GbGF0ZURlY29kZQogICAv
VHlwZSAvWE9iamVjdAogICAvU3VidHlwZSAvRm9ybQogICAvQkJveCBbIDAgMCA1NzYgMjIxIF0K
ICAgL1Jlc291cmNlcyAxOCAwIFIKPj4Kc3RyZWFtCnicK+QKVCjkMlAwMjJUMDU3U9A1MjLQMzQ1
UyhKVQhXyOMq5NJPNFBIL1bQrzAyUHDJ5woEQgA1DguxCmVuZHN0cmVhbQplbmRvYmoKMTkgMCBv
YmoKICAgNTkKZW5kb2JqCjE4IDAgb2JqCjw8CiAgIC9FeHRHU3RhdGUgPDwKICAgICAgL2EwIDw8
IC9DQSAxIC9jYSAxID4+CiAgID4+CiAgIC9YT2JqZWN0IDw8IC94MjAgMjAgMCBSID4+Cj4+CmVu
ZG9iago5IDAgb2JqCjw8IC9MZW5ndGggMjIgMCBSCiAgIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCiAg
IC9UeXBlIC9YT2JqZWN0CiAgIC9TdWJ0eXBlIC9Gb3JtCiAgIC9CQm94IFsgMjE1IDc3IDU2OCAy
MjEgXQogICAvUmVzb3VyY2VzIDIxIDAgUgo+PgpzdHJlYW0KeJxtVUmSFDEMvNcr/AJjLbasZ/AE
oiIYDj0H4P8RpFTl8jBw6la2LWdKKfXPo1US494LvjD14fmlq5dfb+XLt1befh9qXEl7oSl1NC7v
RUev0hmIVnIvLyCt2riQIVK0e9U2EA/c6Ss+AHilOcu5jzhX7bgyuDbBM67VLGKrzPLEuGFU2W0h
B4BeiQKQ6qSIrU5FSLV7XABjtvjd8GjQNK88vXAD3YY3TIL2AQCP28xHBXxXHDQnENonOuVn5OQx
djznler8AFGlFN+rQRjYKeEJqROVslGNL1kXmUBQ+6SpdQ5DtSDQIEDxkyIh6E6nHbbqgzLFBYwB
/VEHrkIo7dDq6OURslqnBziz2rNtJGQSO+KOJ4IzGqnxu9feshA6q3dUnSDAdARPHGqK+uLyMM6W
uuPdDqXw0vPsHZ/ZIeG5ELQQhvFoEfhwdGTF6LW0q4kL8XxMZ6tMYDr5bnra83j8eZbvByujG6PA
CROFeC8JdC3RJVxm8Trh4BlGjhBqh67wLMyGXOC3DjByw+ne0qNPCBU88vwFUJM08ysRm+h6G7VN
OD8A1A8ASjAEMZrc4oBnsyIJDAAWRFw7lDJ7kiXCmIEsC5LT8cS4IfPvE6kyEygmdlUhnnTE54VE
MVtOzHEBk4r3rMenup3lx1NKYtS9z6wlvjmUMHoE27FYznTE0angKdOeOJS1MO6xj1CPhQOm4IEl
sGKHgXLWF4CedtOnvjHgBkNHwxROu+OrEuHTG2DFCsA+inkXMFSFu6zEQFoWDiOqcp8+ol0XQFFQ
rJjXrt2/yF2IF3wmQmkI+KJjmN/LAvY1YQzjsP8gYSYaGzhCbWxP4V4dtG3m/hCJNUsrPAt2L+y6
4teK4dXeFDFoYW8QbUQE48W2gMVyYofh2CcVMUCCPR0rHkZoI3b+Aj7IwCCOaPs/SOQR2kAKi7ZI
/GGIPcKw+k35gzAMVDhqK7sB8J6s5QgErZQFRIzHXBewaE7L/51PMkKZwnIT/3iPsgVsHdpgPv8f
8ii7gUeZtpn78mauhMr2LUzh+5ivR9gClg5sQsJjMrcyjRFoz5FF81b2SUYo61i3udwwN+8FGwQm
wugQ5Uy9NtIwPEgMZN1AMhXdyJFJwuFfjz9AmJalCmVuZHN0cmVhbQplbmRvYmoKMjIgMCBvYmoK
ICAgODQ5CmVuZG9iagoyMSAwIG9iago8PAogICAvRXh0R1N0YXRlIDw8CiAgICAgIC9hMCA8PCAv
Q0EgMSAvY2EgMSA+PgogICA+Pgo+PgplbmRvYmoKMTUgMCBvYmoKPDwgL0xlbmd0aCAyNCAwIFIK
ICAgL0ZpbHRlciAvRmxhdGVEZWNvZGUKICAgL1R5cGUgL1hPYmplY3QKICAgL1N1YnR5cGUgL0Zv
cm0KICAgL0JCb3ggWyAwIDAgMjQyIDIxOSBdCiAgIC9SZXNvdXJjZXMgMjMgMCBSCj4+CnN0cmVh
bQp4nF2PS24EMQhE9z5FnYCYn4Fj5AijSJlNzyLJ/aXgmU4WvXJVgeHxNSaxhrijhbCvegq3wvcd
b7eJ+88QZWJjmJEW4wERpW6GCYkJjg6YfCa8n7AdaPeKwZ1MtzemUBvXAEpc9fzw2nH1584Dn40a
0zOlCWekKVsr24ltWE6nzIBwUjTVA/NfH61rktpT6aJcCus5e1iaoYRinWbgAzwXVdpZZZkkFQ1n
CVYhXokk9dqt24ds39UD7K/TOWhNGTs5yf5uu5Lu497HL1+JToUKZW5kc3RyZWFtCmVuZG9iagoy
NCAwIG9iagogICAyMDcKZW5kb2JqCjIzIDAgb2JqCjw8CiAgIC9FeHRHU3RhdGUgPDwKICAgICAg
L2EwIDw8IC9DQSAxIC9jYSAxID4+CiAgID4+Cj4+CmVuZG9iagoyMCAwIG9iago8PCAvTGVuZ3Ro
IDI2IDAgUgogICAvRmlsdGVyIC9GbGF0ZURlY29kZQogICAvVHlwZSAvWE9iamVjdAogICAvU3Vi
dHlwZSAvRm9ybQogICAvQkJveCBbIDQyNiA3NyA1NzYgMjAzIF0KICAgL1Jlc291cmNlcyAyNSAw
IFIKPj4Kc3RyZWFtCnicXVZLsms3CJyfVZwVKAKBgGVkCa9clZfBfYMk+69KNzp2bmVkgyU+3Q3y
X9ccskLdb3xR8V39xa3uv3/ev/2Y989/Lls+tNZdNbbE/etux97Hse6vj0PmGsv18axZ8Fhfajvk
gsPHxhE6fDnsPTz3/WrPLnpiWFrbZbQT6RliIwRDFkIjFK/E2DwiOtZCUJujtsC2gW5g+5hM8ti4
YXGCvk+4jIhAXbLGZlZfwzVgyxBLXoGnxOCZXam5DZ/ZdaDD/hkXu+xl13ODMLBXU+0ky7Lh2Qud
WI7JHFOHze7dkJWtzRHA0VYCnLqIcPlB7xsDr/vPi1Xk9LtiuChJcQS14BlSYXsOE+aUJsK29EES
ot59bYC22TopiLZjdVt2zMZ1lvVhGVPAsJA+ggASnDgGLhG2jcqVOOI6KDgopKICFVSCI1YjElcU
QYkjyWHIxyYKShW+PRf6RrDaHcJTm2+yJgoqTl3LwLh3WmrR1gLjVEA2fbaQPBbr2kOtsyhAJTKQ
wDLUpTlCVzNehSQKiag2EA9S8KDRBsoKTZqiW5Gjd/2YgJ4Nv/5zaFPCDBsc5B5SgpoAPNhOsL+u
t/KhiyjU7K1iqCM4BjBwSeuxXo0ikzy/ulK+d1BQiGWOMavsSFVNwuEnZ3dP2nKvO6XFQ8qpq6Qm
7DkO2K47q5n46oiOiAmdbW3xn06gz05vU+/EpB4d+zzpoNeUFno6AIM9p3UzHOXHfJ2B9Y+j+XXm
irkaFhYLFDeSHJzS/WoPMDlrJjPasXoTEbsJx+oPFkAZwKx5qv82NNfr/uNybgRqDJgxza/748nV
AvmCB/iiXwFQJJI2hhe29/6hjaGDyghMsDO6IAN4QBQYor2DNo4mQwBhlCJAmjZuADusyFvQzAJm
jvnZRRvsAA4nlfExcQEj3iHfBzYXEzYRut2hsDcFjKqKu0z6yj4LszBAkbABOPhiFbNtCtdP1bqf
G/yFrRqWLpPMsAZngysWEc7fUXV594E9zblO/mKwhXImvvVg1Vo9gHtvM9+OhwgziM+E2kDCXtgj
3h4NNndWgCA/p9Sh5N6hj/06eCUW8OcIIEYsQY/EkYm5NCSUu/ZQxIVOB9fq4ZlbpD2KbuGCxGsh
SqweKfab4W1neSPY7xgGsrsPdM01Gmd7OO9xogQzR+1DHhhFbS3puQHxs05qByNGmxuUnGDa+wID
cpmkXn1jjWCIeuQXZ4MKdB3ABM849xRsrvL1sOhY14rXgC8O8mACIFjFE9TEU1xYEG+bcBpn99sJ
7AoEZwhKvNE1huSzeOqyOC94nVFybPjgM1LZ+nM7QpXarTreANB8GSHhtVCXCSs+kuWr6phnvjc9
Jr2+sXdG2oGLfxNom8mZVgz1xw4uyuu5cTza/waYhJoHJtIpiD9M7cf66AIP4y2QGP4dUVj4joHY
xankSqu3o7HV5u3toZZ7DPkgC7HO3uAdLvPRCLRNpc4Gwo8kBRqPloh/tP00DUaT/33wKf2Xi1GX
HnU7dyIp7vngapb7/xPFVff79S/DVet8CmVuZHN0cmVhbQplbmRvYmoKMjYgMCBvYmoKICAgMTE1
MQplbmRvYmoKMjUgMCBvYmoKPDwKICAgL0V4dEdTdGF0ZSA8PAogICAgICAvYTAgPDwgL0NBIDEg
L2NhIDEgPj4KICAgPj4KPj4KZW5kb2JqCjEgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzCiAgIC9LaWRz
IFsgMTAgMCBSIF0KICAgL0NvdW50IDEKPj4KZW5kb2JqCjI3IDAgb2JqCjw8IC9DcmVhdG9yIChj
YWlybyAxLjEzLjEgKGh0dHA6Ly9jYWlyb2dyYXBoaWNzLm9yZykpCiAgIC9Qcm9kdWNlciAoY2Fp
cm8gMS4xMy4xIChodHRwOi8vY2Fpcm9ncmFwaGljcy5vcmcpKQo+PgplbmRvYmoKMjggMCBvYmoK
PDwgL1R5cGUgL0NhdGFsb2cKICAgL1BhZ2VzIDEgMCBSCj4+CmVuZG9iagp4cmVmCjAgMjkKMDAw
MDAwMDAwMCA2NTUzNSBmIAowMDAwMDA5MjAyIDAwMDAwIG4gCjAwMDAwMDAxNzkgMDAwMDAgbiAK
MDAwMDAwMDAxNSAwMDAwMCBuIAowMDAwMDAwMTU4IDAwMDAwIG4gCjAwMDAwMDA1NDggMDAwMDAg
biAKMDAwMDAwMzM2OSAwMDAwMCBuIAowMDAwMDAzNzEzIDAwMDAwIG4gCjAwMDAwMDU4NzQgMDAw
MDAgbiAKMDAwMDAwNjIxOCAwMDAwMCBuIAowMDAwMDAwMzE5IDAwMDAwIG4gCjAwMDAwMDMyOTYg
MDAwMDAgbiAKMDAwMDAwMzI3MiAwMDAwMCBuIAowMDAwMDAzNjEwIDAwMDAwIG4gCjAwMDAwMDM1
ODggMDAwMDAgbiAKMDAwMDAwNzMyNiAwMDAwMCBuIAowMDAwMDA1ODAxIDAwMDAwIG4gCjAwMDAw
MDU3NzcgMDAwMDAgbiAKMDAwMDAwNjExNSAwMDAwMCBuIAowMDAwMDA2MDkzIDAwMDAwIG4gCjAw
MDAwMDc3OTAgMDAwMDAgbiAKMDAwMDAwNzI1MyAwMDAwMCBuIAowMDAwMDA3MjMwIDAwMDAwIG4g
CjAwMDAwMDc3MTcgMDAwMDAgbiAKMDAwMDAwNzY5NCAwMDAwMCBuIAowMDAwMDA5MTI5IDAwMDAw
IG4gCjAwMDAwMDkxMDUgMDAwMDAgbiAKMDAwMDAwOTI2OCAwMDAwMCBuIAowMDAwMDA5Mzk2IDAw
MDAwIG4gCnRyYWlsZXIKPDwgL1NpemUgMjkKICAgL1Jvb3QgMjggMCBSCiAgIC9JbmZvIDI3IDAg
Ugo+PgpzdGFydHhyZWYKOTQ0OQolJUVPRgo=
# end logo-univ-lille1.pdf
##############################################################################
# begin-all beamer-pandoc.tex cat
\documentclass[10pt,t]{beamer}
% Paquets LaTeX %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Une gestion correcte du français (en entrée et en sortie)
\usepackage[french]{babel}
\usepackage{type1ec} % devant fontenc (cf type1ec.sty)
\usepackage[T1]{fontenc} % devant inputenc (utf8 choisi en fonction de ça)
\usepackage[utf8]{inputenc}
\DeclareUnicodeCharacter{20AC}{\euro} % pour la saisie du caractère euro
%% Des "jolies" polices de caractères
\usepackage{lmodern} % pour sf et tt
\usepackage{fourier} % pour rm
\usepackage{bbm} % pour les mathbbm
%% Plein de symboles
\usepackage{amssymb} % Les symboles mathématiques de l'AMS
\usepackage{latexsym} % Quelques symboles manquants dans LaTeX 2e
\usepackage{marvosym} % Quelques symboles en vrac par Martin Vogel
\usepackage{wasysym} % Quelques symboles en vrac par Roland Waldi
\usepackage{pifont} % Les symboles Dingbats
\usepackage{textcomp} % \textcopyleft
\usepackage[copyright]{ccicons} % Les (c) comme dans Creative Commons
\usepackage[official,right]{eurosym} % L'euro
%% Quelques paquets utiles
\usepackage{array} % pour faciliter les styles de tableaux
\usepackage{relsize} % pour faciliter le changement de taille des polices
\usepackage[normalem]{ulem} % pour avoir des soulignements funky
\usepackage{tikz} % pour les dessins portables
\usepackage{pgfpages} % pour les présentations en double-écran
\usepackage{fixltx2e} % provides \textsubscript
\usepackage{fancyvrb}
\usepackage{listings} % pour les programmes
$if(graphics)$
\usepackage{graphicx,grffile}
\makeatletter
\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi}
\def\maxheight{\ifdim\Gin@nat@height>\textheight0.8\textheight\else\Gin@nat@height\fi}
\makeatother
% Scale images if necessary, so that they will not overflow the page
% margins by default, and it is still possible to overwrite the defaults
% using explicit options in \includegraphics[width, height, ...]{}
\setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio}
$endif$
\setlength{\emergencystretch}{3em} % prevent overfull lines
\providecommand{\tightlist}{%
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
% Paramétrages Beamer %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
$if(theme)$\usetheme{$theme$}$endif$
%\setbeameroption{show notes on second screen} % les notes sur le second écran
%\AtBeginPart{
% \let\insertpartnumber\relax
% \let\partname\relax
% \frame{\partpage}
%}
%\AtBeginSection{
% \let\insertsectionnumber\relax
% \let\sectionname\relax
% \frame{\sectionpage}
%}
%\AtBeginSubsection{
% \let\insertsubsectionnumber\relax
% \let\subsectionname\relax
% \frame{\subsectionpage}
%}
% Méta-données du document %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
$if(title)$
\title{$title$}
$endif$
$if(subtitle)$
\subtitle{$subtitle$}
$endif$
$if(author)$
\author{$for(author)$$author$$sep$ \and $endfor$}
$endif$
\date{$date$}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\begin{frame}[plain]
\titlepage
\end{frame}
\begin{frame}
\frametitle{Plan}
\tableofcontents % il faut compiler deux fois pour mettre à jour la TDM
\end{frame}
$body$
\end{document}
# end beamer.pandoc