aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--_preamble-ed.tex23
-rw-r--r--fichiers/02-tableur_bdd.tex405
-rw-r--r--fichiers/images/02-ascii.pngbin0 -> 96404 bytes
-rw-r--r--fichiers/images/02-donnees1.pngbin0 -> 33951 bytes
-rw-r--r--fichiers/images/02-donnees2.pngbin0 -> 11503 bytes
-rw-r--r--fichiers/images/02-exercice_formats.pngbin0 -> 17450 bytes
-rw-r--r--fichiers/images/02-unicode.pngbin0 -> 87510 bytes
-rw-r--r--ls-R7
-rw-r--r--makefile4
9 files changed, 437 insertions, 2 deletions
diff --git a/_preamble-ed.tex b/_preamble-ed.tex
new file mode 100644
index 0000000..93349fa
--- /dev/null
+++ b/_preamble-ed.tex
@@ -0,0 +1,23 @@
1\documentclass[open=any, DIV=classic]{scrbook}
2\usepackage[french]{babel}
3
4\usepackage{fontspec}
5\setmainfont{Old Standard}
6\addtokomafont{disposition}{\rmfamily}
7
8\usepackage{csquotes}
9\usepackage[font=footnotesize, rightmargin=0pt]{quoting}
10\usepackage[svgnames]{xcolor}
11
12\usepackage[french]{varioref}
13\usepackage{hyperref}
14\hypersetup{unicode,colorlinks,allcolors=blue,linktocpage}
15\usepackage{hyperxmp}
16\usepackage{uri}
17\usepackage[type={CC}, modifier={by-sa}, version ={3.0}]{doclicense}
18\author{Estelle Debouy}
19\lowertitleback{\footnotesize\textcopyright{} 2018 Estelle Debouy
20 \mailto[courses]{edebouy@univ-poitiers.fr}
21 \doclicenseThis}
22\usepackage{widows-and-orphans}
23\WaOsetup{avoid-all} \ No newline at end of file
diff --git a/fichiers/02-tableur_bdd.tex b/fichiers/02-tableur_bdd.tex
new file mode 100644
index 0000000..d6219d5
--- /dev/null
+++ b/fichiers/02-tableur_bdd.tex
@@ -0,0 +1,405 @@
1\input{../_preamble-ed.tex}
2\usepackage{comment}
3
4\usepackage[toc]{multitoc}
5\usepackage{graphicx}
6\graphicspath{{images/}}
7
8\title{Tableur et base de données}
9
10\usepackage{hyperref}
11
12\begin{document}
13\maketitle
14\renewcommand{\contentsname}{Sommaire}
15\tableofcontents
16
17\chapter{Qu'est-ce qu'une donnée?}
18
19\section{Définitions}
20Une donnée est un élément brut, qui n'a pas encore été interprété, mis
21en contexte. La mise en contexte crée de la valeur ajoutée pour
22constituer une information (on peut définir l'information comme
23l'interprétation d'une source de données). Les données brutes peuvent
24être entrées dans un programme informatique ou utilisées dans des
25procédures manuelles comme l'analyse statistique d'une enquête par
26exemple.
27
28Qu'entend-on maintenant par \enquote{données publiques}? Ce sont les
29données qui figurent dans les documents communiqués ou publiés par les
30administrations. À partir de là, quand on parle d'\emph{open data}, il
31s'agit de la mise à disposition de tous les citoyens sur internet des
32données publiques ayant vocation à être librement accessibles et
33gratuitement réutilisables. Ces données sont diffusées de manière
34structurée selon une licence ouverte garantissant leur libre accès et
35leur réutilisation par tous, sans restriction technique, juridique ou
36financière. Cela signifie que n'importe quel utilisateur peut utiliser
37ces données, les modifier ou les partager (même à des fins
38commerciales).
39
40Il y a enfin une autre expression que vous avez certainement
41entendues: celle de \emph{big data} qui désigne littéralement les
42\enquote{grosses données}. Qu'entend-on par là? Les vibrations de tel
43tablier de pont, les sentiments exprimés sur tel réseau social, les
44achats ou recherches sur tel site… Toutes ces données, utiles pour la
45maîtrise de machines ou notre vie sociale, économique, voire
46sentimentale, laissent des traces, des scories, qui sont de plus en
47plus souvent conservées. C’est de cette profusion de données sur de
48nombreux domaines que résultent les Big Data ou mégadonnées. On le
49voit, ces Big Data désignent des ensembles de données tellement
50volumineux qu'il devient difficile, voire impossible, de les manipuler
51avec des outils classiques de gestion de base de données ou de gestion
52de l'information.
53
54
55\section{Formats} En fonction de ce que l'on veut faire, les
56données informatiques sont rangées dans des fichiers. Le choix de la
57méthode de rangement, c'est ce qu'on appelle le format. Pour
58l'utilisateur, le format est représenté par une extension. Le format
59est déterminé par le logiciel au moment de l'enregistrement d'un
60document. Comme vous l'avez certainement constaté, le système associe
61par défaut un logiciel à un format, raison pour laquelle, quand vous
62double-cliquez sur un document, il s'ouvre automatiquement sans que
63vous ayez à préciser quel logiciel doit l'ouvrir. Avant de vous
64présenter les différents formats que vous devez connaître, sachez que
65chaque format relève d'une logique, d'une structure. On en distingue
66trois.
67
68
69\paragraph{les principales structures utilisées}: voici les trois
70principales structures utilisées pour présenter les données:
71\begin{enumerate}
72\item la structure tabulaire: c'est la plus répandue. On organise les
73données dans des colonnes et des lignes. Voir par exemple les données
74concernant la fréquentation des musées italiens:
75\url{http://www.datiopen.it/opendata/Visitatori_musei_pubblici_e_similari_titolo_d_accesso#ui-tabs-3}. Un
76des formats qui relève de cette structure est le format csv
77(Comma-separated values); il permet d'organiser des données en
78cellules afin qu'elles soient traitées par un tableur ou insérées dans
79une base de données. Les données dans un document csv sont le plus
80souvent encadrées par des guillemets et séparées par des points
81virgule.
82
83\begin{figure}[h] \centering \includegraphics[scale=0.6]{02-donnees2.png}
84\end{figure}
85
86\item la structure hiérarchique: les données présentées ainsi montrent
87les rapports entre les points de données comme pour un arbre
88généalogique.
89
90\item la structure en réseau: les données structurées ainsi permettent
91des rapports entre n'importe quelle combinaison d'éléments dans
92n'importe quelle direction. Le web en est un bon exemple puisque les
93pages web comportent des liens vers un nombre incalculable d'autres
94pages. Cf. le format xml (Extensible Markup Language) qui a pour
95objectif de faciliter l'échange automatisé de contenus complexes. Un
96document xml est constitué d'un prologue qui indique les informations
97de traitement (comme le jeu de caractères utilisé), et du corps du
98document, constitué d'un ensemble de balises qui décrivent les données
99(se présentant sous la forme d'une arborescence). Où trouve-t-on du
100xml? Dans les pages web, les documents OpenOffice sont également des
101fichiers xml, les logiciels de dessin comme InkScape utilisent aussi
102ce format, etc.
103
104\begin{figure}[h] \centering \includegraphics[scale=0.6]{02-donnees1.png}
105\end{figure}
106
107NB: vous remarquerez que les mêmes données peuvent être présentées
108sous des formats différents.
109\end{enumerate}
110
111\paragraph{les formats que vous devez savoir utiliser}: on distingue
112les formats ouverts dont les spécifications sont publiquement
113accessibles des formats fermés qui sont souvent propriétaires (même
114quand un format propriétaire est ouvert, les entreprises qui le
115commercialisent tentent d'en conserver le contrôle en proposant de
116nouvelles versions plus élaborées ou en ayant recours aux
117brevets). Voici la liste des principaux formats que vous
118rencontrerez. Vous penserez à préciser quels sont ceux qui sont
119ouverts.
120
121\begin{figure}[h] \centering
122\includegraphics[scale=0.6]{02-exercice_formats.png}
123\end{figure}
124
125Sur le format txt: éditeur de textes et traitement de
126textes. Qu’est-ce qu’un éditeur de textes ? À quoi cela sert-il ?
127Est-ce la même chose qu’un traitement de texte ? Un éditeur de texte
128est un programme qui permet de modifier des fichiers de texte brut,
129sans mise en forme (gras, italique, souligné…). Sous Windows, on
130dispose d’un éditeur de texte très basique, le Bloc-Notes, mais il
131existe aussi NotePad++ (plus évolué). Sous Linux, on a le choix entre
132Nano, Vim, Emacs, et bien d’autres. Un traitement de texte, en
133revanche, est fait pour rédiger des documents mis en forme. Word et
134LibreOffice Writer sont certainement les plus célèbres.
135
136
137\paragraph{Exercice 1}
138
139Quand a-t-on besoin d’un éditeur de texte ? Chaque fois qu’on veut
140éditer un fichier de texte brut (au format .txt). Si les éditeurs de
141texte sont parfaits pour les programmeurs, ils sont aussi utiles pour
142retravailler du texte à l’aide de commandes puissantes, avant de le
143structurer dans un traitement de textes. Exemple : quand on récupère
144une œuvre ou un extrait d’œuvre depuis une bibliothèque numérique, il
145faut très souvent supprimer les retours à la ligne intempestifs qu’on
146appelle hard wrap. Il est très facile de le faire grâce à un éditeur
147comme Notepad++ : allez dans le menu TextFX, commande TextFXEdit,
148sous-commande Unwrap Text. Les retours à la ligne simples sont
149convertis en fin de ligne (mode soft wrap) tandis que les doubles
150retours subsistent. À ce problème, s’ajoute parfois aussi celui de
151caractères cabalistiques qui apparaissent à la place des caractères
152accentués.
153
154\paragraph{Exercice 2}
155\begin{enumerate}
156\item Récupérez au format txt sur Gutenberg \emph{Le corbeau} de Poe
157et ouvrez-le dans LibreOffice ;
158\item Faites apparaître au début du document le titre de l’œuvre en
159italique (comme il se doit), puis enregistrez ce fichier au format
160natif d’OO (.odt). Enregistrez maintenant ce fichier au format txt et
161ouvrez-le avec un éditeur de textes par exemple : commentez la
162différence ;
163\item Exportez-le enfin au format pdf et veillez à ce que l’ouverture
164de ce fichier soit protégé par un mot de passe que vous définirez.
165\end{enumerate}
166
167
168\section{Le problème des données textuelles: coder du texte}
169\paragraph{Encodage binaire}
170C'est dans les années 60 qu'apparaît la
171nécessité de représenter chaque caractère en code traitable par
172l'ordinateur. Or la mémoire d'un ordinateur n'est capable
173d'enregistrer qu'une suite de 0 et 1 (encodage binaire): à l'origine,
174les lettres de l'alphabet ont donc été encodées sous la forme d'une
175suite de 0 et de 1.
176
177
178\paragraph{La table ASCII} Mais de quel alphabet parle-t-on? Tout
179commence par une constatation très simple : les premiers
180informaticiens parlaient anglais. Et l’anglais s’écrit avec peu de
181choses : deux fois 26 lettres, 10 chiffres, une trentaine de signes de
182ponctuation, de signes mathématiques, sans oublier le symbole
183dollar. : avec 95 caractères au total on peut se débrouiller. À
184l’époque dont je parle, on ne pouvait utiliser que la moitié des
185octets, soit 128 valeurs. On en a pris 33 comme caractères de «
186contrôle » (comme le retour à la ligne par exemple), plus les 95 dont
187on avait besoin pour écrire l’anglais. On a donc attribué des numéros
188à toutes ces valeurs : le code ASCII (American Standard Code for
189Information Interchange) était né. Voir la figure \ref{ascii}.
190
191\begin{figure}[h] \centering \includegraphics[scale=0.5]{02-ascii.png}
192\caption{La table ASCII}
193\label{ascii}
194\end{figure}
195
196
197\paragraph{L'unicode} Mais au bout d’un certain temps est apparue la
198nécessité de taper du français ou de l’allemand: on a donc utilisé les
199valeurs laissées de côté par l’ASCII et il a été possible de caser les
200caractères accentués et divers autres symboles utilisés par les
201langues d’Europe de l’ouest. Dans ces 128 valeurs, il n’y a hélas pas
202eu de place pour les caractères des langues occidentales et l’alphabet
203cyrillique et l’alphabet grec et l’alphabet hébreu. Pour pouvoir
204taper plusieurs langues sur un même ordinateur et pour que les
205ordinateurs puissent communiquer entre eux, des organismes de
206standardisation ont créé des tables de correspondance, comme
207l’ISO-8859-1, qui propose un jeu de caractères pour les langues
208occidentales, l’ISO-8859-5 qui offre du cyrillique, l’ISO-8859-7, qui
209propose du grec, etc. Mais, malgré tout, il n’a pas été possible de
210faire rentrer les 1945 idéogrammes du japonais officiel dans un octet,
211ni les 11 172 syllabes coréennes, ni les dizaines de milliers
212d’idéogrammes chinois qu’on arrive à recenser... Pour résoudre
213durablement tous ces problèmes de langues, au début des années 2000,
214s’est formé un consortium regroupant des grands noms de l’informatique
215et de la linguistique : le consortium Unicode. Sa tâche : recenser et
216numéroter tous les caractères existant dans toutes les langues du
217monde. Est donc né un jeu universel de caractères, acceptant plusieurs
218encodages, l’unicode. En 2007, le standard publié comportait environ
21960 000 caractères. Prenons, par exemple, le sigma majuscule: il a été
220encodé avec le point de code \texttt{U+03A3} (voir la figure
221\ref{unicode}).
222
223Mais l'unicode prend beaucoup plus de place que l'ASCII. Or, pour
224prendre l'exemple du français, la grand majorité des caractères
225utilisent seulement le code ASCII. On a donc imaginé l'UTF-8 (Unicode
226Transformation Format): un texte en UTF-8 est partout en ASCII et dès
227qu'on a besoin d'un caractère appartenant à l'unicode on utilise un
228caractère spécial pour l'indiquer.
229
230
231\begin{figure}[h] \centering \includegraphics[scale=0.7]{02-unicode.png}
232\caption{Aperçu de la table de codage unicode pour l'alphabet grec}
233\label{unicode}
234\end{figure}
235
236Cela dit, comment faire pour saisir une citation en espagnol, chinois,
237arabe ou grec ancien au milieu d’un texte en français ? Il faut non
238seulement disposer d’une police unicode (comme Gentium), mais encore
239d’un clavier virtuel qui vous permet de savoir où se trouvent les
240caractères. Ainsi, pour être en mesure de saisir du texte dans une
241langue autre que le français, vous devez attribuer à votre clavier la
242langue de saisie souhaitée. Par exemple, pour taper οὐκ ἔλαβον πόλιν,
243vous devez configurer votre clavier de façon à saisir π quand vous
244tapez sur la touche P. Pour ce faire, il suffit de cliquer du droit
245sur l’icône FR, puis de choisir «~Paramètres~» et «~Ajouter~». Il
246vous est aussi possible d’utiliser des claviers virtuels en ligne,
247comme celui disponible à l’adresse suivante :
248http://www.lexilogos.com/clavier/multilingue.htm
249
250\section{Coder des images} Une image se décompose en points appelés
251pixels (premier critère de qualité d'une image). À chaque pixel est
252associée une couleur décomposée en trois composantes, rouge, vert et
253bleu, chacune étant notée par un nombre entre 0 et 255. Exemple: le
254code pour le bleu ciel est (119, 181, 254), chaque nombre représentant
255le dosage nécessaire de chacune des couleurs primaires pour obtenir la
256couleur désirée. C'est ce qu'on appelle le code RVB (Red Green
257Blue). Notez que le poids d'une image correspond à 3*nombre de pixels.
258
259
260\chapter{Le tableur: fonctionnalités simples}
261Un classeur permet de stocker des données numériques en vue de calculs
262ou d'affichages graphiques (par opposition à l'affichage texte qu'on
263vient de voir avec le format csv). Chaque classeur peut contenir de
264nombreuses feuilles qu'on sélectionne avec des onglets. Chaque feuille
265de calcul permet de saisir, contrôler, répertorier et analyser des
266données (textuelles, numériques, fonctionnelles, etc.). Elle contient
267des cellules éventuellement regroupées en plages.
268
269\section{Mise en forme} Chaque cellule peut être mise en forme avec
270une palette complète d'outils. Il est possible de reproduire la mise
271en forme à une autre cellule ou plage (voir le pinceau brosse).
272
273Dans un tableur, on peut insérer des graphiques dont on règle les
274dimensions, les axes, les légendes et titres. En fonction du type de
275données, on pourra privilégier le graphique en histogramme, en lignes
276et courbes (pour représenter des tendances ou une évolution dans le
277temps de valeurs numériques), à nuage, en secteurs (ou camemberts).
278
279\section{Fonctions de calcul} Voir la moyenne.
280
281\section{Tri, filtre et conversion de données}
282\paragraph{Tri} Il est possible de trier des données en fonction de
283textes (tri croissant ou décroissant), de nombres, de dates. Plusieurs
284critères peuvent être définis (ex.: classement d'une classe par ordre
285alphabétique des noms puis des notes obtenues). Pensez à cliquer sur
286l'onglet Options pour déterminer les options de tri: vous pourrez
287ainsi indiquer que la plage contient des étiquettes de colonne afin
288d'éviter que les en-têtes de colonne soient triés avec les autres
289données.
290
291\paragraph{Filtre} Le filtre automatique (Données>AutoFiltre) permet
292de faciliter la recherche d'informations au sein d'une plage de
293données. L'utilisateur peut ainsi choisir des informations qu'il
294souhaite afficher ou masquer.
295
296\paragraph{Conversion} Une fonction permet de diviser une colonne de
297données texte en plusieurs colonnes (Données>Texte en colonnes). Ex.:
298à partir d'un nom complet, vous voulez une colonne nom et une colonne
299prénom.
300
301
302\section{Importation d'une source de données}
303On peut vouloir importer une source de données dans un tableur, par
304exemple une liste au format texte (qu'on peut visualiser dans un
305traitement de textes en affichant les caractères non imprimables):
306chaque caractère tabulation délimite le champ d'une cellule et chaque
307pied de mouche indique qu'il faut passer à la ligne. Commençons par
308ouvrir cette source de données (Fichier>Ouvrir): il faut alors
309indiquer que le séparateur est la tabulation.
310
311
312\chapter{Le tableur comme base de données} Un document Calc peut
313constituer une base de données simplifiée. Dans une base de données,
314un enregistrement est un groupe d'éléments de données liés entre eux
315et traités comme une seule unité d'information. Chaque élément dans
316l'enregistrement est appelé un champ. Une table est un ensemble
317d'enregistrements. Chaque enregistrement, à l'intérieur d'une table, a
318la même structure. Une table peut être vue comme une série de lignes
319et de colonnes. On le voit, une feuille d'un document Calc a une
320structure similaire à une table de base de données.
321
322Nous allons définir une plage de base de données de façon à trier,
323grouper, rechercher et effectuer des calculs avec la plage comme si
324c'était une base de données (Données>Définir la plage).
325
326\section{Utiliser des critères de recherche pour trouver des
327données}
328\paragraph{Exemple n°1} Comment compter toutes les cellules d'une
329plage de données dont le contenu correspond à des critères de
330recherche que nous aurons définis. Hypothèse de travail: nous
331recherchons le nombre d'étudiants de la base dont la moyenne est égale
332ou supérieure à 10 OU dont l'âge est inférieur ou égal à 17. Voici ce
333qu'on doit saisir dans la cellule H5:
334\begin{verbatim} =BDNB(A9:G51;0;A1:G3)
335\end{verbatim}
336
337\paragraph{Commentaire} Le nom de la fonction est suivi d'une
338parenthèse dans laquelle figurent:
339\begin{itemize}
340\item la plage de cellules contenant les données: A9:G51
341\item le champ de la base (colonne) utilisé pour les critères de
342recherche: 0
343\item la plage de cellules contenant les critères de recherche: A1:G3
344\end{itemize}
345
346\paragraph{Exemple n°2} Comment déterminer le contenu de la cellule
347d'une plage de données correspondant aux critères de
348recherche. Hypothèse de travail: nous recherchons le nom de l'étudiant
349qui a obtenu 5/20 au devoir n°1:
350\begin{verbatim} =BDLIRE(A9:G51;"PRÉNOM";A1:C2)
351\end{verbatim}
352
353
354\section{Utiliser des formules pour trouver des données} Ne prenons
355qu'un exemple: la fonction RECHERCHEV (pour recherche verticale): il
356s'agit de récupérer des données issues d'une feuille différente de la
357feuille de travail grâce à une "clé" commune aux deux feuilles.
358\begin{enumerate}
359\item dans la feuille n°1, j'ai les noms de tous mes étudiants et leur
360n° d'étudiant;
361\item dans la feuille n°2, j'ai les noms d'un seul groupe d'étudiants
362et leur note.
363\end{enumerate} --> Comment faire pour récupérer dans ma deuxième
364feuille les n° d'étudiant du seul groupe concerné?
365\begin{verbatim} =RECHERCHEV(A2;$Feuille1.$A$1:$B$120;2;0)
366\end{verbatim}
367
368\paragraph{Commentaire} Notez que le premier argument est la valeur
369cherchée dans la feuille 1: il s'agit, dans notre exemple, de chercher
370l'étudiant Charles-Daniel (cellule A2).
371
372Le deuxième argument identifie les cellules où effectuer la recherche.
373
374Le troisième argument identifie la colonne à renvoyer: dans notre
375exemple, celle des n° d'étudiants est la deuxième colonne de notre
376feuille 1.
377
378Le dernier argument est facultatif. La valeur par défaut est 1 ou
379VRAI, ce qui indique que la première colonne est triée dans l'ordre
380croissant. Une valeur de 0 ou FAUX indique que les données ne sont pas
381triées.
382
383Une fois que la recherche a abouti pour le premier étudiant, il faut
384étendre la recherche à toutes les données de notre feuille 2: pour
385cela, il suffit de faire un copier/coller en ayant pris la précaution
386de protéger la formule en encadrant les numéros des colonnes du
387chiffre \$.
388
389
390\section{Utiliser des formules pour traiter des
391 données textuelles}
392Plusieurs fonctions permettent de travailler sur du texte. En voici
393quelques exemples:
394\begin{itemize}
395\item Mettre en majuscule la première lettre de chaque mot:
396=NOMPROPRE(A1)
397\item Supprimer les espaces en trop dans le texte de la cellule A1:
398=SUPPRESPACE(A1)
399\item Extraire le premier mot d'un texte saisi dans la cellule A1:
400=GAUCHE(A1;CHERCHE(" ";A1;1)-1)
401\end{itemize}
402
403
404
405\end{document} \ No newline at end of file
diff --git a/fichiers/images/02-ascii.png b/fichiers/images/02-ascii.png
new file mode 100644
index 0000000..8a5c75a
--- /dev/null
+++ b/fichiers/images/02-ascii.png
Binary files differ
diff --git a/fichiers/images/02-donnees1.png b/fichiers/images/02-donnees1.png
new file mode 100644
index 0000000..369e48d
--- /dev/null
+++ b/fichiers/images/02-donnees1.png
Binary files differ
diff --git a/fichiers/images/02-donnees2.png b/fichiers/images/02-donnees2.png
new file mode 100644
index 0000000..3aeb112
--- /dev/null
+++ b/fichiers/images/02-donnees2.png
Binary files differ
diff --git a/fichiers/images/02-exercice_formats.png b/fichiers/images/02-exercice_formats.png
new file mode 100644
index 0000000..382fb85
--- /dev/null
+++ b/fichiers/images/02-exercice_formats.png
Binary files differ
diff --git a/fichiers/images/02-unicode.png b/fichiers/images/02-unicode.png
new file mode 100644
index 0000000..a8856e9
--- /dev/null
+++ b/fichiers/images/02-unicode.png
Binary files differ
diff --git a/ls-R b/ls-R
index cc91b8f..a5f0340 100644
--- a/ls-R
+++ b/ls-R
@@ -1,5 +1,12 @@
1./fichiers/images/02-donnees1.png
2./fichiers/images/02-unicode.png
3./fichiers/images/02-exercice_formats.png
4./fichiers/images/02-donnees2.png
5./fichiers/images/02-ascii.png
1./fichiers/01-ligne-de-commande.tex 6./fichiers/01-ligne-de-commande.tex
7./fichiers/02-tableur_bdd.tex
2./makefile 8./makefile
9./_preamble-ed.tex
3./_preamble.tex 10./_preamble.tex
4./README.md 11./README.md
5./README.tex 12./README.tex
diff --git a/makefile b/makefile
index 25be7fc..02442bf 100644
--- a/makefile
+++ b/makefile
@@ -1,7 +1,7 @@
1all: pdf 1all: pdf
2 2
3pdf: clean 3pdf: clean
4 find ./* -type f | grep -v '_.*.tex' | grep 'tex$$' > texfiles 4 find ./* -type f | grep -v '/_.*.tex' | grep 'tex$$' > texfiles
5 while read l ; do \ 5 while read l ; do \
6 latexmk -quiet -cd -lualatex -e '$$lualatex=q/lualatex %O --shell-escape %S/' $$l ; \ 6 latexmk -quiet -cd -lualatex -e '$$lualatex=q/lualatex %O --shell-escape %S/' $$l ; \
7 done < texfiles 7 done < texfiles
@@ -12,7 +12,7 @@ pdf: clean
12clean: 12clean:
13 rm -rf .backup 13 rm -rf .backup
14 find -iname "*~" | xargs rm -rf 14 find -iname "*~" | xargs rm -rf
15 find ./* -type f | grep 'makefile\|\.md$$\|\.tex$$' > ls-R 15 find ./* -type f | grep 'makefile\|\.md$$\|\.png$$\|\.tex$$' > ls-R
16 rsync -avPr --files-from=ls-R . .backup 16 rsync -avPr --files-from=ls-R . .backup
17 cp ls-R .backup 17 cp ls-R .backup
18 rm -rf * 18 rm -rf *