% without any invariant section or cover text.
\documentclass{lltxdoc}
-
+\usepackage{tcolorbox}
\title{\Verb+luamesh+: compute and draw meshes with \lualatex}
\author{Maxime Chupin \email{mc@melusine.eu.org}}
\date{\today}
+\newcommand*\commande{\noindent\hspace{-30pt}%
+ \SaveVerb[aftersave={%
+ \UseVerb{Vitem}
+ }%
+ ]{Vitem}}
+
+\usepackage{xargs}
+\newcommand*\textme[1]{\color{black}{\rmfamily\textit{#1}}}
+\newcommand*\meta[1]{% % meta
+ \textme{\ensuremath{\langle}#1\ensuremath{\rangle}}}
+\newcommand*\optstar{% % optional star
+ \meta{\ensuremath{*}}\xspace}
+\DefineShortVerb{\|}
+
+\setlength{\fboxsep}{2pt}
+\fvset{%
+ codes={\catcode`\«\active \catcode`\×\active },
+ defineactive={\makefancyog\makefancytimes},
+ formatcom=\color{red},
+ frame=single
+}
+% rendre «...» équivalent à \meta{...}
+{\catcode`\«\active
+ \newcommandx\makefancyog[0][addprefix=\global]{%
+ \def«##1»{\meta{##1}}}}
+% rendre × équivalent à \optstar
+{\catcode`\×\active
+ \newcommandx\makefancytimes[0][addprefix=\global]{%
+ \def×{\optstar{}}}}
+
+
+\tcbuselibrary{listings,breakable}
+
+\definecolor{vert}{rgb}{0.1,0.4,0.1}
+\definecolor{bleu}{rgb}{0.1,0.1,0.4}
+\lstset{
+ numberstyle=\footnotesize\color{vert},
+ keywordstyle=\ttfamily\bfseries\color{blue},
+ basicstyle=\ttfamily\footnotesize,
+ commentstyle=\itshape\color{vert},
+ stringstyle=\ttfamily,
+ showstringspaces=false,
+ language=[LaTeX]TeX,
+ breaklines=true,
+ breakindent=30pt,
+ defaultdialect=[LaTeX]TeX,
+ % frame=tb
+}
+
+\lstdefinelanguage{lua}
+{morekeywords={for,end,function,do,if,else,elseif,then,
+ tex.print,tex.sprint,io.read,io.open,string.find,string.explode,require},
+ morecomment=[l]{--},
+ morecomment=[s]{--[[}{]]},
+ morestring=[b]''
+}
+
+\newtcblisting{Exemple}{%
+ arc=0pt,outer arc=0pt,
+ colback=red!2!white,
+ colframe=red!75!black,
+ breakable,
+ boxsep=0pt,left=5pt,right=5pt,top=5pt,bottom=5pt, bottomtitle =
+ 3pt, toptitle=3pt,
+ boxrule=0pt,bottomrule=0.5pt,toprule=0.5pt, toprule at break =
+ 0pt, bottomrule at break = 0pt,
+ listing options={breaklines},
+}
+
+\newtcblisting{commandshell}{colback=black,colupper=white,colframe=black,
+ arc=0pt,
+ listing only,boxsep=0pt,listing
+ options={style=tcblatex,language=sh},
+ every listing line={\textcolor{red}{\small\ttfamily\bfseries user \$> }}}
+
+\newtcblisting{latexcode}{
+ arc=0pt,
+ listing only,boxsep=0pt,listing
+ options={style=tcblatex}}
+
+
+\newcommand\luamesh{\Verb+luamesh+\xspace}
+
\begin{document}
\maketitle
\begin{abstract}
- The package \Verb|luamesh| allows to compute and draw triangulation
+ The package \Verb|luamesh| allows to compute and draw 2D triangulation
of Delaunay. The algorithm is written with lua, and depending of the
choice of the ``engine'', the draw is done by MetaPost (with
\Verb|luamplib|) or by \Verb|tikz|.
\section{Installation}
-\section{The Macros}
+\subsection{With Linux}
+
+To install \luamesh with \TeX live, you have to create the local
+\Verb+texmf+ directory in your \Verb+home+.
+
+\begin{commandshell}
+mkdir ~/texmf
+\end{commandshell}
+
+Then we have to files to place in the correct directories. First, the
+\Verb+luamesh.sty+ file must be in the directory:
+\begin{center}
+ \Verb+~/texmf/tex/latex/luamesh/+
+\end{center}
+and secondly, the \Verb+luamesh.lua+ must be in the directory:
+\begin{center}
+ \Verb+~/texmf/scripts/luamesh/+
+\end{center}
+
+Once you have done this, \luamesh can be included in your document
+with
+\begin{latexcode}
+\usepackage{luamesh}
+\end{latexcode}
+
+\subsection{Dependencies}
+
+This package is built upon two main packages to draw the
+triangulations :
+\begin{enumerate}
+\item \Verb+luamplib+ to use MetaPost via the \luatex library
+ \Verb+mplib+;
+\item or \Verb+tikz+.
+\end{enumerate}
+We will see how to choose between these two \emph{drawing engines}.
+
+Moreover, the following packages are necessary:
+\begin{enumerate}
+\item \Verb+xkeyval+ to manage the optional arguments;
+\item \Verb+xcolor+ to use colors (needed by \Verb+luamplib+);
+\item \Verb+ifthen+ to help the programming with \TeX.
+\end{enumerate}
+
+
+\section{The Basic Macros}
+
+If you want to use this package, you must compile your document with
+\Verb+lualatex+:
+
+\begin{commandshell}
+ lualatex mylatexfile.tex
+\end{commandshell}
+
+Let us recall that this package provides macros to draw two
+dimensional triangulations (or meshes).
\subsection{Draw a Complete Mesh}
+\commande|\buildMeshBW[«options»]{«list of points» or «file name»}|\medskip
+
+This macro produce the Delaunay triangulation (using the Bowyer and
+Watson algorithm) of the given \meta{list of points}. The list of
+points must be given in the following way :
+\begin{center}
+ \verb+(x1,y1);(x2,y2);(x3,y3);...;(xn,yn)+
+\end{center}
+
+\begin{Exemple}
+ \buildMeshBW{(0.3,0.3);(1.5,1);(4,0);(4.5,2.5);(1.81,2.14);(2.5,0.5);(2.8,1.5)}
+\end{Exemple}
+
+\subsubsection{The Options}
+
+There are several options to customize the drawing.
+\begin{description}
+\item[\color{red}\texttt{mode = int (default) or ext}:] the mode option allow to
+ use either the previously described set of point in the argument, or
+ a file, containing, line by line (2 columns), the points. Such a
+ file looks like :
+\begin{verbatim}
+x1 y1
+x2 y2
+x3 y3
+...
+xn yn
+\end{verbatim}
+\end{description}
+
\subsection{Draw the Set of Points}
+\commande|\tracePointsMesh[«options»]{«list of points» or «file name»}|
+
+
\subsection{Draw a Step of the Bowyer and Watson Algorithm}
+\commande|\meshAddPointBW[«options»]{«list of points» or «file name»}{«point» or «number of line»}|
+
+
+\section{The \emph{inc} Macros}
+
\section{Gallery of Examples}
\end{document}