\documentclass{article}
\usepackage{luatextra}
\setmainfont{Linux Libertine O}
\usepackage[a4paper]{geometry}
\usepackage[french]{babel}
\usepackage[backend=biber,style=alphabetic,sorting=nyt]{biblatex}
\addbibresource{2022-23/refs.bib}

\usepackage{amsfonts,amssymb,amsmath,amsthm}
\usepackage{enumerate}
\usepackage{xcolor}
\usepackage{tikz}
\usepackage{graphicx}
\usepackage{array}
\usepackage{hyperref}
\hypersetup{pdfstartview=XYZ}

\newcommand\TikZ{Ti\textit{\color{orange}k}Z}

\begin{luacode}
function camembert(prof,pourc)
    local profliste = string.explode(prof,",+");
    local pourcliste = string.explode(pourc,",+");
    local angle=0;
    local bngle=0;
    tex.sprint("\\begin{tikzpicture}");
    for i=1, #profliste do
       bngle=tonumber(pourcliste[i])*3.6;
       tex.sprint("\\draw[fill=red!" .. pourcliste[i] .. "!green!" .. pourcliste[i] .. "] (0,0) -- (" .. angle .. ":4) arc (" .. angle .. ":" .. angle+bngle .. ":4) -- cycle;");
       tex.sprint("\\draw (".. angle+bngle*.5 .. ":5.5) node{" .. profliste[i] .. "};");
       tex.sprint("\\draw (".. angle+bngle*.5 .. ":3.5) node{" .. pourcliste[i] .. "\\%};");
        angle=angle+bngle;
    end 
    tex.sprint("\\end{tikzpicture}");
end
\end{luacode}

\begin{document}
\title{\LuaLaTeX}
\author{Stéphane Vinatier}
\maketitle

Ce document est un bref compte-rendu des activités de la 3\ieme~journée de la formation \textit{Initiation à \LaTeX} 2023-24, avec quelques exemples d'utilisation de caractères \texttt{unicode} et le corrigé de l'exercice final sur l'automatisation du codage du «~camembert~». Voir le code source pour les détails.

\section{Fontes et caractères}
Crayons : 
{\fontspec{DejaVu Sans}\char"270E ✎✎}

Ferry : {\fontspec{Symbola}\char"26F4 ⛴ €} %{\fontspec{DejaVu Sans}\char"26F4}

Œil : {\fontspec{Symbola}\char"1F441}

\begin{tikzpicture}
\draw[->] (0,0) node[left]{\fontspec{Symbola}\char"1F441} -- (2,0) node[right]{\fontspec{Symbola}⛴};
\end{tikzpicture}

\section{Camemberts et lua}
Il s'agit d'utiliser \texttt{lua} pour automatiser le codage donné dans \cite[90-94]{tikz} pour visualiser des données sous forme de «~camembert~» (ou \emph{diagramme à secteur}).

Le programme \texttt{lua} a d'abord été mis au point en le plaçant dans un fichier externe (nommé \texttt{cam.lua}), de façon à bénéficier des fonctionnalités de l'éditeur de texte (coloriage de certains passages en particulier, bien utile pour débogguer !). Il a ensuite été inséré dans le préambule de ce document dans l'environnement \texttt{\string\begin\{luacode\} ... \string\end\{luacode\}}, ce qui permet d'avoit tout dans le même fichier, et cela fonctionne.

La fonction \texttt{camembert} qui est définie dans l'environnement \texttt{luacode} est appelée par la commande \LaTeX{} \texttt{\string\moncam}, qui lui passe ses deux arguments (une liste de professions et une liste de pourcentages) sous forme de chaînes de caractères ; elle affiche alors le «~camembert~» représentant ces données. C'est une automatisation complète du codage présenté dans \cite[93]{tikz}, lequel serait assez laborieux à écrire à la main, et qui est désormais écrit une fois pour toutes !

Voir le résultat au verso et le fichier source \texttt{essai-lua.tex} pour les détails du code.

%\luadirect{ dofile('cam.lua' )}
\newcommand\moncam[2]{\luadirect{camembert(\luastring{#1},\luastring{#2})}}
\begin{center}
    \moncam{Agriculteurs, Artisans, Cadres, Intermédiaires, Employés, Ouvriers, Retraités, Actifs}{2,3,5,9,13, 12, 18,38}
\end{center}
\bigskip

\printbibliography

\end{document}

%%%%%%%%%%%%%%%%%%%%%%%%%
