diff --git a/theorie-graphes/Makefile b/theorie-graphes/Makefile index ccf3860..9aaf992 100644 --- a/theorie-graphes/Makefile +++ b/theorie-graphes/Makefile @@ -1,7 +1,16 @@ filename=$(shell basename $(shell pwd)) timestamp=$(shell date +%Y-%m-%d_%H:%M) -all: snapshot +all: snapshot exercice + +exercice: exercice.tex + @latexmk -pdf exercice.tex + @if ! cmp --silent build/exercice.pdf exercice_*.pdf; then \ + touch exercice_tmp.pdf; \ + rm exercice*.pdf; \ + cp build/main.pdf exercice_${timestamp}.pdf; \ + echo "Updated"; \ + fi snapshot: main.tex @latexmk -pdf main.tex diff --git a/theorie-graphes/exercice.tex b/theorie-graphes/exercice.tex new file mode 100644 index 0000000..bae01f7 --- /dev/null +++ b/theorie-graphes/exercice.tex @@ -0,0 +1,95 @@ +\documentclass[a4paper,french,12pt]{article} + +\title{Théorie des graphes --- Exercices} +\author{} +\date{Dernière compilation~: \today{} à \currenttime} + +\usepackage{styles} +\usepackage{tikz} +\usetikzlibrary{shapes.multipart} +\usetikzlibrary{automata, arrows.meta, positioning} + +\begin{document} + +\maketitle + +\section{Exercice 1} + + \paragraph{Graphe simple} + \begin{tikzpicture}[auto,x=2cm,y=2cm] + \node(a)[state] at (0,0) {}; + \node(b)[state] at (2,0) {}; + \path (a) edge (b); + \end{tikzpicture} + + \paragraph{Graphe multigraphe} + \begin{tikzpicture}[auto,x=2cm,y=2cm] + \node(a)[state] at (0,0) {}; + \node(b)[state] at (2,0) {}; + \path + (a) [bend left] edge (b) + (b) [bend left] edge (a) + ; + \end{tikzpicture} + + \paragraph{Graphe connexe} + \begin{tikzpicture}[auto,x=2cm,y=2cm] + \node(a)[state] at (0,0) {}; + \node(b)[state] at (1,1) {}; + \node(c)[state] at (2,0) {}; + \path + (a) edge (b) + (b) edge (c) + (c) edge (a) + ; + \end{tikzpicture} + + \paragraph{Graphe non connexe} + \begin{tikzpicture}[auto,x=2cm,y=2cm] + \node(a)[state] at (0,0) {}; + \node(b)[state] at (1,1) {}; + \node(c)[state] at (2,0) {}; + \path + (a) edge (b) + (b) edge (c) + ; + \end{tikzpicture} + + \paragraph{Graphe complet} + \begin{tikzpicture}[auto,x=2cm,y=2cm] + \node(a)[state] at (0,0) {}; + \node(b)[state] at (1,0) {}; + \node(c)[state] at (0,1) {}; + \node(d)[state] at (1,1) {}; + \path + (a) edge (b) + (a) edge (c) + (a) edge (d) + (b) edge (c) + (b) edge (d) + (c) edge (d) + ; + \end{tikzpicture} + + \paragraph{Graphe biparti} + \begin{tikzpicture}[auto,x=2cm,y=2cm] + \node(a)[state] at (0,0) {}; + \node(b)[state] at (1,0) {}; + \node(c)[state] at (0,1) {}; + \node(d)[state] at (1,1) {}; + \node(e)[state] at (2,0) {}; + \node(f)[state] at (2,1) {}; + \path + (a) edge (b) + (a) edge (c) + (a) edge (d) + (b) edge (c) + (b) edge (d) + (c) edge (d) + (d) edge (e) + (d) edge (f) + (e) edge (f) + ; + \end{tikzpicture} + +\end{document} diff --git a/theorie-graphes/styles.sty b/theorie-graphes/styles.sty new file mode 100644 index 0000000..f037c8d --- /dev/null +++ b/theorie-graphes/styles.sty @@ -0,0 +1,94 @@ +\ProvidesPackage{styles} + +\usepackage[ + %showframe, + a4paper,includeheadfoot,margin=2cm,top=1cm,bottom=1cm +]{geometry} + +\setcounter{tocdepth}{2} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{babel} + +\usepackage{datetime} + +\usepackage{color} + +\usepackage{amsmath} +\usepackage{amsfonts} +\everymath{\displaystyle} +\newcommand*\dif{\mathop{}\!\mathrm{d}} + +\usepackage{booktabs} +\usepackage{tabularx} +\newcolumntype{Y}{>{\centering\arraybackslash}X} +\usepackage{multicol} +\usepackage{multirow} +\usepackage{makecell} +\usepackage{parskip} +\usepackage{microtype} + +\usepackage{listingsutf8} +\lstset{% + inputencoding=utf8/latin1, + basicstyle=\small\ttfamily, + columns=flexible, + breaklines=true, + extendedchars=true, + literate= + {á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'\i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1 + {Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1 + {à}{{\`a}}1 {è}{{\`e}}1 {ì}{{\`\i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1 + {À}{{\`A}}1 {È}{{\`E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1 + {ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"\i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1 + {Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1 + {â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^\i}}1 {ô}{{\^o}}1 {û}{{\^u}}1 + {Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1 + {Ã}{{\~A}}1 {ã}{{\~a}}1 {Õ}{{\~O}}1 {õ}{{\~o}}1 {œ}{{\oe}}1 + {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1 {ű}{{\H{u}}}1 + {Ű}{{\H{U}}}1 {ő}{{\H{o}}}1 {Ő}{{\H{O}}}1 {ç}{{\c c}}1 + {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1 + {€}{{\euro}}1 {£}{{\pounds}}1 {«}{{\guillemotleft}}1 + {»}{{\guillemotright}}1 {ñ}{{\~n}}1 {Ñ}{{\~N}}1 {¿}{{?`}}1 +} +\let\oldlstinputlisting\lstinputlisting +% make \lstinputlisting always have frame +\renewcommand{\lstinputlisting}[2][]{\oldlstinputlisting[frame=single,#1]{#2}} + +\lstnewenvironment{console}[1][]{% + \lstset{% + inputencoding=utf8/latin1, + basicstyle=\small\ttfamily\color{white}, + columns=flexible, + breaklines=true, + extendedchars=true, + literate= + {á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'\i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1 + {Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1 + {à}{{\`a}}1 {è}{{\`e}}1 {ì}{{\`\i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1 + {À}{{\`A}}1 {È}{{\`E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1 + {ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"\i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1 + {Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1 + {â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^\i}}1 {ô}{{\^o}}1 {û}{{\^u}}1 + {Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1 + {Ã}{{\~A}}1 {ã}{{\~a}}1 {Õ}{{\~O}}1 {õ}{{\~o}}1 {œ}{{\oe}}1 + {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1 {ű}{{\H{u}}}1 + {Ű}{{\H{U}}}1 {ő}{{\H{o}}}1 {Ő}{{\H{O}}}1 {ç}{{\c c}}1 + {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1 + {€}{{\euro}}1 {£}{{\pounds}}1 {«}{{\guillemotleft}}1 + {»}{{\guillemotright}}1 {ñ}{{\~n}}1 {Ñ}{{\~N}}1 {¿}{{?`}}1, + backgroundcolor=\color{black}, #1 + }% +}{} + +\usepackage{graphicx} + +\usepackage[hyphens]{url} +\usepackage[colorlinks,hidelinks]{hyperref} + +\usepackage{letltxmacro} +\LetLtxMacro{\normalparagraph}{\paragraph} +\renewcommand{\paragraph}[1]{\normalparagraph{#1}\mbox{}} + +\sloppy