% !TeX TXS-program:compile = txs:///arara
% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode}
% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)')
\documentclass[a4paper]{article}
\usepackage[french]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{WriteOnGrid}
\usetikzlibrary{decorations.pathreplacing}
\usepackage{amsmath,amssymb}
\usepackage{fontawesome5}
\usepackage{enumitem}
\usepackage{frcursive}
\usepackage{lipsum}
\usepackage{tabularray}
\usepackage{fancyvrb}
\usepackage{fancyhdr}
\usepackage{frcursive}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\lfoot{\sffamily\small [WriteOnGrid]}
\cfoot{\sffamily\small - \thepage{} -}
\rfoot{\hyperlink{matoc}{\small\faArrowAltCircleUp[regular]}}
%\usepackage{hvlogos}
\usepackage{hologo}
\providecommand\tikzlogo{Ti\textit{k}Z}
\providecommand\TeXLive{\TeX{}Live\xspace}
\providecommand\PSTricks{\textsf{PSTricks}\xspace}
\let\pstricks\PSTricks
\let\TikZ\tikzlogo
\newcommand\TableauDocumentation{%
\begin{tblr}{width=\linewidth,colspec={X[c]X[c]X[c]X[c]X[c]X[c]},cells={font=\sffamily}}
{\huge \LaTeX} & & & & &\\
& {\huge \hologo{pdfLaTeX}} & & & & \\
& & {\huge \hologo{LuaLaTeX}} & & & \\
& & & {\huge \TikZ} & & \\
& & & & {\huge \TeXLive} & \\
& & & & & {\huge \hologo{MiKTeX}} \\
\end{tblr}
}
\usepackage{hyperref}
\urlstyle{same}
\hypersetup{pdfborder=0 0 0}
\usepackage[margin=1.5cm]{geometry}
\setlength{\parindent}{0pt}
\definecolor{LightGray}{gray}{0.9}
\def\TPversion{0.1.8}
\def\TPdate{05 novembre 2024}
\usepackage{minted2}
\usepackage[most]{tcolorbox}
\tcbuselibrary{minted}
\NewTCBListing{PresentationCode}{ O{blue} m }{%
sharp corners=downhill,enhanced,arc=12pt,skin=bicolor,%
colback=#1!1!white,colframe=#1!75!black,colbacklower=white,%
attach boxed title to top right={yshift=-\tcboxedtitleheight},title=Code \LaTeX,%
boxed title style={%
colframe=#1!75!black,colback=#1!15!white,%
,sharp corners=downhill,arc=12pt,%
},%
fonttitle=\color{#1!90!black}\itshape\ttfamily\footnotesize,%
listing engine=minted,minted style=colorful,
minted language=tex,minted options={tabsize=4,fontsize=\footnotesize,autogobble},
#2
}
\newcommand\Cle[1]{{\bfseries\sffamily\textlangle #1\textrangle}}
\begin{document}
\pagestyle{fancy}
\thispagestyle{empty}
\vspace{2cm}
\begin{center}
\begin{minipage}{0.75\linewidth}
\begin{tcolorbox}[colframe=yellow,colback=yellow!15]
\begin{center}
\begin{tabular}{c}
{\Huge \texttt{WriteOnGrid [fr]}}\\
\\
{\LARGE Pour écrire sur les} \\
{\LARGE lignes d'une grille.}
\end{tabular}
\medskip
{\small \texttt{Version \TPversion{} -- \TPdate}}
\end{center}
\end{tcolorbox}
\end{minipage}
\end{center}
\vspace{0.5cm}
\begin{center}
\begin{tabular}{c}
\texttt{Cédric Pierquet}\\
{\ttfamily c pierquet -- at -- outlook . fr}\\
\texttt{\url{https://github.com/cpierquet/WriteOnGrid}}
\end{tabular}
\end{center}
\vspace{0.5cm}
{$\blacktriangleright$~~Quelques commandes créer une grille (5x5 ou Seyes ou Ruled) et écrire \og sur \fg{} les lignes.}
\smallskip
{$\blacktriangleright$~~Personnalisation de la taille de la grille, des marges, etc.}
\smallskip
{$\blacktriangleright$~~Possibilité de créer une page complète Seyes}
\vspace{1cm}
\begin{center}
\begin{EnvQuadrillage}[NbCarreaux=22x8]
\EcrireLigne{mon texte sur la ligne 1\ldots}
\EcrireLigne
{mon texte centré sur la ligne 2\ldots}
\EcrireLigne{mon texte aligné à droite sur la ligne 3\ldots}
\EcrireLigne[DecalH=2]{mon texte décalé de 2 carreaux sur la ligne 4\ldots}
\PasseLigne
\EcrireLigne{\sffamily mon texte sur la ligne 6\ldots}
\EcrireLigne[DecalH=-1]{\small\cursive mon texte, décalé à gauche de 1 carreau, sur la ligne 7\ldots}
\end{EnvQuadrillage}
\end{center}
\begin{EnvQuadrillage}[NbCarreaux=24x5,Marge=1,Elargir=2/2,Grille=Seyes]<\CoulSeyes>
\EcrireLigne[Echelle=1.5]{\textcolor{red}{mon texte sur la ligne 1\ldots}}
\EcrireLigne[Echelle=1.5]{\textcolor{blue}{mon texte sur la ligne 2\ldots}}
\EcrireLigne[Echelle=1.5,DecalH=-1]{$1+\frac{1}{2}=\frac32$ et $(1+x)^2=1+2x+x^2$ sur la ligne 3\ldots}
\EcrireLigne[Echelle=1.5]{\cursive mon texte sur la ligne 4\ldots}
\end{EnvQuadrillage}
\vspace{0.5cm}
\hfill{}\textit{Merci à Patrick Bideault pour ses retours et idées !}
\vfill
\hrule
\medskip
\TableauDocumentation
\medskip
\hrule
\medskip
\newpage
\phantomsection
\hypertarget{matoc}{}
\tableofcontents
\newpage
\section{Le package WriteOnGrid}
\subsection{Chargement du package, packages utilisés}
Le package \textsf{WriteOnGrid} se charge dans le préambule via la commande :
\begin{PresentationCode}{listing only}
\usepackage{WriteOnGrid}
\end{PresentationCode}
Il est compatible avec les compilations usuelles en \textsf{latex}, \textsf{pdflatex}, \textsf{lualatex} ou \textsf{xelatex}.
\medskip
Pour des soucis de compatibilité, \texttt{xcolor} n'est pas chargé avec des options spécifiques, les couleurs utiles ont été définies directement dans le package.
\medskip
Il charge les packages et librairies suivantes :
\begin{itemize}
%\item \texttt{xcolor} avec les options \Cle{table,svgnames} ;
\item \texttt{tikz} avec les librairies \Cle{calc} et \Cle{positionning} ;
\item \texttt{xstring} et \texttt{simplekv}.
\end{itemize}
\subsection{\og Philosophie \fg{} du package}
L'idée est de proposer, grâce à \TikZ, des \textsf{commandes} et \textsf{environnements} pour travailler sur un quadrillage et écrire \og sur les lignes \fg.
\begin{PresentationCode}{listing only}
%environnement francisé, avec clés en français pour préparer la grille
%commandes pour placer ou passer une ligne
\begin{EnvQuadrillage}[clés]
\EcrireLigne[clés]{texte}
\PasseLigne
\end{EnvQuadrillage}
\end{PresentationCode}
\subsection{Fonctionnement global}
La grille est créée en spécifiant le nombre de carreaux (sous la forme nbCol$\times$nbLig), et on peut ensuite spécifier des \textit{débordements} latéraux pour éventuellement étendre le quadrillage dans les marges (gauche et droite). On peut également \textit{jouer} sur la marge, pour commencer les lignes à un niveau donné.
\medskip
Ci-dessous on représente une grille $5\times5$ :
\begin{itemize}
\item de taille 24x5 ;
\item avec un élargissement de \textcolor{red}{2 carreaux à gauche} et \textcolor{blue}{3 carreaux à droite} ;
\item en commençant à écrire au niveau du \textcolor{orange}{1\up{er} carreau} ;
\item un \textcolor{green!50!black}{\textit{cadre}} est rajouté pour visualiser la grille \textit{de base}.
\end{itemize}
\medskip
\begin{tikzpicture}
\useasboundingbox (0,0) rectangle ({0.5*24},{-0.5*5}) ;
\draw[xstep=0.5,ystep=0.5,thin,lightgray!50] ({-0.5*2},0) grid ({0.5*24+0.5*3},{-0.5*5}) ;
\draw[thick,decorate,decoration={brace,amplitude=8pt,mirror}](0,{-0.5*5-0.25})--({0.5*24},{-0.5*5-0.25}) node[midway,below=8pt,font=\small\sffamily] {24C} ;
\draw[red,thick,decorate,decoration={brace,amplitude=8pt,mirror}] ({-2*0.5},{-0.5*5-0.25})--({0},{-0.5*5-0.25}) node[midway,below=8pt,font=\small\sffamily] {2C} ;
\draw[blue,thick,decorate,decoration={brace,amplitude=8pt,mirror}] ({0.5*24},{-0.5*5-0.25})--({0.5*24+3*0.5},{-0.5*5-0.25}) node[midway,below=8pt,font=\small\sffamily] {3C} ;
\draw[thick,decorate,decoration={brace,amplitude=8pt}] ({0.5*24+3*0.5+0.25},0)--({0.5*24+3*0.5+0.25},{-0.5*5}) node[midway,right=8pt,font=\small\sffamily] {5C} ;
\draw[very thick,orange,densely dashed] ({0.5*1},0)--({0.5*1},{-0.5*5}) ;
\draw[green!50!black,thick] (0,0) rectangle ({0.5*24},{-0.5*5}) ;
\end{tikzpicture}
\vspace{1.5cm}
Il est à noter que le figure \texttt{tikzpicture} est \textit{délimitée} par le \textcolor{green!50!black}{\textit{cadre}}, afin de pouvoir gérer les débordements et l'alignement de l'environnement !
\smallskip
De plus, le bord gauche du \textcolor{green!50!black}{\textit{cadre}} est aligné sur la marge gauche de la page, donc la position du quadrillage dépend en partie de la configuration de \texttt{\textbackslash parindent}.
\pagebreak
\subsection{Couleurs et styles prédéfinis}
Le package \textsf{WriteOnGrid} définit également des couleurs pour une saisie plus facile !
\begin{PresentationCode}{listing only}
\definecolor{TyrianPurple}{rgb}{0.4,0.01,0.24}
\definecolor{PapierRose}{HTML}{E6B8E6}
\definecolor{PapierGris}{HTML}{D7E2EE}
%Couleurs adaptées pour le Seyes
\def\CoulSeyes{PapierRose/PapierGris}
%Couleurs adaptées pour le Ruled
\def\CoulRuled{PapierGris/TyrianPurple}
\end{PresentationCode}
\begin{PresentationCode}{text only}
{\tikz \filldraw[TyrianPurple] (0,0) rectangle++ (6,1) node[midway,font=\bfseries\large,text=white] {\verb+TyrianPurple+};}
{\tikz \filldraw[PapierRose] (0,0) rectangle++ (6,1) node[midway,font=\bfseries\large,text=black] {\verb+PapierRose+};}
{\tikz \filldraw[PapierGris] (0,0) rectangle++ (6,1) node[midway,font=\bfseries\large,text=black] {\verb+PapierGris+};}
\end{PresentationCode}
À noter que, depuis la dernière version \texttt{0.1.8}, les épaisseurs des réglures peuvent être redéfinies globalement via \texttt{tikzset} (dans l'optique d'une impression notamment).
\begin{PresentationCode}{listing only}
%grille principale
\tikzset{WoGridp/.style={semithick}} %0.6pt
%grille secondaire (si Seyes)
\tikzset{WoGridp/.style={thin}} %0.4pt
%barre
\tikzset{WoGridbar/.style={thick}} %0.8pt
\end{PresentationCode}
\subsection{Le nombre de carreaux}
Le nombre de carreaux de la grille (pour les quadrillages individuelles et les environnements) peuvent être donnés de plusieurs manières :
\begin{itemize}
\item \Cle{NbCarreaux=x} pour spécifier manuellement ;
\item \Cle{NbCarreaux=Auto} pour remplir le reste de la page (horiz. et vert.) ;
\item \Cle{NbCarreaux=CxxL} pour remplir verticalement et spécifier le nombre de colonnes.
\end{itemize}
À noter que les calculs effectués pour déterminer la \textit{place} restante ne tiennent pas compte des éventuels ressorts élastiques que \LaTeX\ peut rajouter pour \textit{optimiser} la place.
\smallskip
Pour \textit{forcer} l'ajout de ligne(s) supplémentaire(s), il est possible d'utiliser :
\begin{itemize}
\item \Cle{NbCarreaux=Auto*} pour forcer l'ajout d'une ligne en plus ;
\item \Cle{NbCarreaux=Auto**} pour forcer l'ajout de deux lignes en plus ;
\item \Cle{NbCarreaux=Auto***} pour forcer l'ajout de trois lignes en plus ;
\item etc
\end{itemize}
\pagebreak
\section{Grilles individuelles}
\subsection{La commande}
\begin{PresentationCode}{listing only}
%commande francisée, avec clés en français pour préparer la grille
\AffQuadrillage[clés]
\end{PresentationCode}
Le premier argument, \textit{optionnel}, entre \texttt{[...]} propose les \Cle{clés} :
\begin{itemize}
\item \Cle{NbCarreaux} pour spécifier le nombre de carreaux, sous la forme \texttt{(nbCol)x(nbLig)} ; \hfill~défaut : \Cle{17x5}
\item \Cle{Unite} pour spécifier l'échelle de la figure ; \hfill~défaut : \Cle{1}
\item \Cle{Marge} pour spécifier la \textcolor{orange}{marge} du début des lignes ; \hfill~défaut : \Cle{0}
\item le booléen \Cle{AffBarre} pour afficher ou non la marge ; \hfill~défaut : \Cle{true}
\item \Cle{Elargir} pour préciser les carreaux de débordements, sous la forme unique \texttt{\textcolor{red}{G}\textcolor{blue}{D}} ou par côté \texttt{\textcolor{red}{G}/\textcolor{blue}{D}} ;\hfill~défaut : \Cle{0}
\item le booléen \Cle{Cadre} pour afficher le cadre de base du quadrillage ;\hfill~défaut : \Cle{false}
\item la clé \Cle{Grille}, parmi \Cle{5x5 / Seyes / Ruled}, pour spécifier le type de quadrillage ;\hfill~défaut : \Cle{5x5}
\item la clé \Cle{ReglureSeyes} pour paramétrer (en mm) la réglure dans le cas de lignes Seyes ;\hfill~défaut : \Cle{2}
\item la clé \Cle{CouleurBarreSeyes} pour rajouter un trait vertical pour le papier Seyes .\hfill~défaut : \Cle{red!75}
\end{itemize}
Le second argument, \textit{optionnel}, entre \texttt{<...>} correspond quant à lui à la couleur de base du quadrillage :
\begin{itemize}
\item sous la forme \Cle{Couleur} (\Cle{lightgray!66} par défaut) pour le quadrillage $5\times5$ ;
\item sous la forme \Cle{CouleurP/CouleurS} (\Cle{lightgray!66/lightgray!33} par défaut) pour le Seyes ou le Ruled.
\end{itemize}
\medskip
\begin{PresentationCode}{listing only}
%18x4 grands carreaux, sans dépassement, couleurs adaptées, sans marge/barre
\AffQuadrillage[NbCarreaux=16x4,Grille=Seyes,ReglureSeyes=2.5,AffBarre=false]<\CoulSeyes>
%36x8 petits carreaux, avec débordements 3/3, couleur PapierGris
\AffQuadrillage[NbCarreaux=36x6,Elargir=3/3]
%12x3 lignes "Ruled", sans débordements, couleur Ruled, centré, avec marge
\begin{center}
\AffQuadrillage[NbCarreaux=12x3,Elargir=2/2,Grille=Ruled,Marge=2]<\CoulRuled>
\end{center}
\end{PresentationCode}
\medskip
\AffQuadrillage[NbCarreaux=18x4,Grille=Seyes,ReglureSeyes=2.5,AffBarre=false]<\CoulSeyes>
\medskip
\AffQuadrillage[NbCarreaux=36x8,Elargir=3/3]
\begin{center}
\AffQuadrillage[NbCarreaux=12x3,Elargir=2/2,Grille=Ruled,Marge=2]<\CoulRuled>
\end{center}
\pagebreak
\subsection{L'environnement}
\begin{PresentationCode}{listing only}
%environnement francisé, avec clés en français pour préparer la grille
\begin{EnvQuadrillage}[clés]
...
\end{EnvQuadrillage}
\end{PresentationCode}
Le premier argument, \textit{optionnel}, entre \texttt{[...]} propose les \Cle{clés} :
\begin{itemize}
\item \Cle{NbCarreaux} pour spécifier le nombre de carreaux, sous la forme \texttt{(nbCol)x(nbLig)} ; \hfill~défaut : \Cle{17x5}
\item \Cle{Unite} pour spécifier l'échelle de la figure ; \hfill~défaut : \Cle{1}
\item \Cle{Marge} pour spécifier la \textcolor{orange}{marge} du début des lignes ; \hfill~défaut : \Cle{0}
\item le booléen \Cle{AffBarre} pour afficher ou non la marge ; \hfill~défaut : \Cle{true}
\item \Cle{Elargir} pour préciser les carreaux de débordements, sous la forme unique \texttt{\textcolor{red}{G}\textcolor{blue}{D}} ou par côté \texttt{\textcolor{red}{G}/\textcolor{blue}{D}} ;\hfill~défaut : \Cle{0}
\item le booléen \Cle{Cadre} pour afficher le cadre de base du quadrillage ;\hfill~défaut : \Cle{false}
\item la clé \Cle{Grille}, parmi \Cle{5x5 / Seyes / Ruled}, pour spécifier le type de quadrillage ;\hfill~défaut : \Cle{5x5}
\item la clé \Cle{ReglureSeyes} pour paramétrer (en mm) la réglure dans le cas de lignes Seyes ;\hfill~défaut : \Cle{2}
\item la clé \Cle{CouleurBarreSeyes} pour rajouter un trait vertical pour le papier Seyes .\hfill~défaut : \Cle{red!75}
\end{itemize}
Le second argument, \textit{optionnel}, entre \texttt{<...>} correspond quant à lui à la couleur de base du quadrillage :
\begin{itemize}
\item sous la forme \Cle{Couleur} (\Cle{lightgray!66} par défaut) pour le quadrillage $5\times5$ ;
\item sous la forme \Cle{CouleurP/CouleurS} (\Cle{lightgray!66/lightgray!33} par défaut) pour le Seyes ou le Ruled.
\end{itemize}
\medskip
\begin{PresentationCode}{listing only}
%des cadres ont été rajoutés pour la sortie
%18x4 grands carreaux, sans dépassement, couleurs adaptées, marge de 3 carreaux
\begin{EnvQuadrillage}[NbCarreaux=18x4,Grille=Seyes,Marge=3]<\CoulSeyes>
\end{EnvQuadrillage}
%36x8 petits carreaux, avec débordements 3/3, couleur PapierGris
\begin{EnvQuadrillage}[NbCarreaux=36x8,Elargir=3/3]
\end{EnvQuadrillage}
%12x3 lignes "Ruled", sans débordements, couleur Ruled, centré, avec marge
\begin{center}
\begin{EnvQuadrillage}[NbCarreaux=12x3,Elargir=2/2,Grille=Ruled,Marge=2]<\CoulRuled>
\end{EnvQuadrillage}
\end{center}
\end{PresentationCode}
\medskip
\begin{EnvQuadrillage}[NbCarreaux=18x4,Grille=Seyes,Marge=3]<\CoulSeyes>
\end{EnvQuadrillage}
\smallskip
\begin{EnvQuadrillage}[NbCarreaux=36x8,Elargir=3/3,Cadre]
\end{EnvQuadrillage}
\begin{center}
\begin{EnvQuadrillage}[NbCarreaux=12x3,Grille=Ruled,Marge=2]<\CoulRuled>
\end{EnvQuadrillage}
\end{center}
\pagebreak
\subsection{Écrire sur les lignes}
L'idée est maintenant de pouvoir écrire sur les lignes du quadrillage créé (environnement !), et pour garantir le fait d'écrire \textit{pile} sur le ligne, on applique les recommandations suivantes :
\begin{itemize}
\item les lignes doivent être saisies une par une, du \og haut \fg{} vers le \og bas \fg{} ;
\item pas de paragraphe \textit{multilignes}, pas de puce ou de numérotation ;
\item une ligne peut être passée.
\end{itemize}
\begin{PresentationCode}{listing only}
...
%pour saisir les lignes, une par une
\EcrireLigne[clés]{texte}
%pour passer la ligne
\PasseLigne
...
\end{PresentationCode}
Le premier argument, entre \texttt{[...]} propose les \Cle{clés} :
\begin{itemize}
\item \Cle{DecalH} pour spécifier le décalage horizontal (en carreaux) de la ligne, par rapport à la \textcolor{orange}{marge} ; \hfill~défaut : \Cle{0}
\item \Cle{DecalV} pour spécifier le décalage vertical du texte par rapport à la ligne ; \hfill~défaut : \Cle{0pt}
\item \Cle{Echelle} pour spécifier l'échelle du texte à écrire.\hfill~défaut : \Cle{1}
\end{itemize}
Le deuxième argument, \textit{optionnel}, entre \texttt{<...>} permet de spécifier l'alignement horizontal (parmi \Cle{left/center/right}) du texte dans le \textcolor{green!50!black}{\textit{cadre}} de base, \Cle{left} par défaut.
\medskip
Le troisième argument, \textit{obligatoire} et entre \texttt{\{...\}} est quant à lui le texte à saisir, avec possibilité de spécifier taille, couleur, fonte, etc
\begin{PresentationCode}{listing only}
\begin{EnvQuadrillage}[NbCarreaux=36x8]
\EcrireLigne{mon texte sur la ligne 1\ldots}
\EcrireLigne[Echelle=1.25]{\ttfamily mon texte, en fonte teletype +25\,\%, centré sur la ligne 2\ldots}
\EcrireLigne{mon texte aligné à droite sur la ligne 3\ldots}
\EcrireLigne[DecalV=0.1]{\textcolor{red}{mon texte rouge sur la ligne 4, décalé de 1mm vers le haut\ldots}}
\PasseLigne
\EcrireLigne[Echelle=0.5]{\sffamily mon texte, en fonte sans réduite de 50\,\%, sur la ligne 6\ldots}
\EcrireLigne[DecalH=3]{\cursive mon texte sur la ligne 7, décalé de 3 carreaux\ldots}
\end{EnvQuadrillage}
\end{PresentationCode}
\begin{EnvQuadrillage}[NbCarreaux=36x8]
\EcrireLigne{mon texte sur la ligne 1\ldots}
\EcrireLigne[Echelle=1.25]{\ttfamily mon texte, en fonte teletype augmentée de 25\,\%, centré sur la ligne 2\ldots}
\EcrireLigne{mon texte aligné à droite sur la ligne 3\ldots}
\EcrireLigne[DecalV=0.1]{\textcolor{red}{mon texte rouge sur la ligne 4, décalé de 1mm vers le haut\ldots}}
\PasseLigne
\EcrireLigne[Echelle=0.5]{\sffamily mon texte, en fonte sans réduite de 50\,\%, sur la ligne 6\ldots}
\EcrireLigne[DecalH=3]{\cursive mon texte sur la ligne 7, décalé de 3 carreaux\ldots}
\end{EnvQuadrillage}
\begin{PresentationCode}{listing only}
\begin{EnvQuadrillage}[NbCarreaux=22x4,Marge=2,Elargir=2/3,Grille=Seyes]
\EcrireLigne[Echelle=1.5]{\textcolor{red}{mon texte rouge, un peu agrandi, sur la ligne 1\ldots}}
\EcrireLigne[Echelle=1.15,DecalH=1]{$(1+x)^2=1+2x+x^2$ sur la l2, avec un décal de 1 en plus\ldots}
\EcrireLigne[DecalH=-1.75]{\textcolor{blue}{mon texte bleu, remis un peu à gauche, sur la ligne 3\ldots}}
\end{EnvQuadrillage}
\end{PresentationCode}
\begin{EnvQuadrillage}[NbCarreaux=22x4,Marge=2,Elargir=2/3,Grille=Seyes]
\EcrireLigne[Echelle=1.5]{\textcolor{red}{mon texte rouge, un peu agrandi, sur la ligne 1\ldots}}
\EcrireLigne[Echelle=1.15,DecalH=1]{$(1+x)^2=1+2x+x^2$ sur la ligne 2, avec un décalage de 1 carreau en plus\ldots}
\EcrireLigne[DecalH=-1.75]{\textcolor{blue}{mon texte bleu, remis un peu à gauche, sur la ligne 3\ldots}}
\end{EnvQuadrillage}
\pagebreak
\section{Page complète type Seyes}
\subsection{Idée et fonctionnement global}
Il s'agit ici de créer le quadrillage Seyes sur la page complète, comme pour la copie d'un élève !
Il est possible de paramétrer le type de papier (A4, A5 ou Lxh), et les marges sont adaptées automatiquement pour coller au type de papier.
\smallskip
\faBomb{} Le fonctionnement est différent des environnements \textit{ponctuels} précédents, et l'écriture sur les lignes du quadrillage peuvent poser souci avec des environnements mathématiques !!
\medskip
La grille complète est liée à un environnement (basé sur \texttt{tikzpicture}), et les commandes pour écrire sont à mettre dans l'environnement.
\smallskip
Tout le placement est géré grâce à un point (fictif), nommé \texttt{(SeyesOrigine)}, qui correspond au point de départ de l'écriture sur la copie !
\begin{PresentationCode}{listing only}
\begin{PleinePageSeyes}[options]
\LignePapierSeyes[options](ajustement){texte}
\CadreNoteSeyes[hauteur]{numligne}
\ParagraphePapierSeyes[options](ajustement){texte}
\end{PleinePageSeyes}
\end{PresentationCode}
\subsection{La grille}
Pour l'environnement de création de la grille, l'argument, \textit{optionnel} et entre \texttt{[...]}, propose :
\begin{itemize}
\item la clé \Cle{CouleurP} pour la couleur des \textit{gros traits} ;\hfill~défaut : \Cle{PapierRose}
\item la clé \Cle{CouleurS} pour la couleur des \textit{petits traits} ;\hfill~défaut : \Cle{PapierGris}
\item la clé \Cle{CouleurMarge} pour la couleur du trait de la marge ;\hfill~défaut : \Cle{red!75}
\item le booléen \Cle{NumLignes} pour afficher le numéro des lignes (pour aider !) ; \hfill~défaut : \Cle{false}
\item la cle \Cle{ReglureSeyes} pour spécifier la réglure, en mm ;\hfill~défaut : \Cle{2}
\item la cle \Cle{FormatPapier} parmi \Cle{A4 / A5 / lxh}. \hfill~défaut : \Cle{A4}
\end{itemize}
\subsection{La commande pour saisir une ligne}
La commande \texttt{LignePapierSeyes} permet de saisir une ligne \textbf{unique}, un peu comme la commande pour les petits blocs de quadrillage. Plusieurs options et arguments sont disponibles.
\begin{PresentationCode}{listing only}
\LignePapierSeyes[options](ajustement){texte}
\end{PresentationCode}
La commande positionne le \textsf{texte}, au niveau de la marge verticale, sur la ligne précisée !
\smallskip
Le premier argument, \textit{optionnel} et entre \texttt{[...]} propose :
\begin{itemize}
\item la clé \Cle{Couleur} pour spécifier une couleur globale pour le texte ;\hfill~défaut : \Cle{black}
\item la clé \Cle{Echelle} pour spécifier une échelle globale pour le texte ;\hfill~défaut : \Cle{1}
\item la clé \Cle{Ligne} pour spécifier le numéro de ligne sur lequel on souhaite écrire ;\hfill~défaut : \Cle{1}
\item la clé \Cle{Largeur} pour spécifier la largeur (en cm) de la boîte dans laquelle le texte sera placé.\hfill~défaut : \Cle{auto}
\end{itemize}
Le deuxième argument, \textit{optionnel} et entre \texttt{<...>}, permet de spécifier l'alignement souhaité pour la ligne, parmi \Cle{left/center/right}, et vaut \Cle{left} par défaut.
\smallskip
Le troisième argument, \textit{optionnel} et entre \texttt{(...)}, permet de positionner le texte avec un \textit{décalage fin} et \textit{relatif} de $(x\,;y)$, et il est fixé par défaut à \Cle{0,0}.
\smallskip
Le dernier argument, \textit{obligatoire} et entre \texttt{\{...\}} est le texte à placer, avec les options classiques en langage \TeX{} !
\subsection{Une commande pour un cadre de note}
\begin{PresentationCode}{listing only}
\CadreNoteSeyes[hauteur]{numligne}
\end{PresentationCode}
Cette commande permet de tracer un cadre \textsf{note/appréciation} de \Cle{hauteur} en carreaux, et placé sur la ligne \Cle{numligne}.
\pagebreak
\subsection{Une commande pour saisir un paragraphe (non fonctionnelle à 100\,\%)}
La commande \texttt{ParagraphePapierSeyes} permet de saisir des commandes \textit{multilignes}, grâce à l'utilisation de \texttt{\textbackslash\textbackslash}.
\begin{PresentationCode}{listing only}
\ParagraphePapierSeyes[options](ajustement){texte}
\end{PresentationCode}
\faBomb{} Cet aspect \textit{multilignes} pourra sans doute être problématique pour un placement optimal, donc doit être utilisé avec précautions\ldots
\smallskip
Le premier argument, \textit{optionnel} et entre \texttt{[...]} propose :
\begin{itemize}
\item la clé \Cle{Couleur} pour spécifier une couleur globale pour le texte ;\hfill~défaut : \Cle{black}
\item la clé \Cle{Echelle} pour spécifier une échelle pour le texte ; \hfill~défaut : \Cle{1}
\item la clé \Cle{Espacement} (éventuellement à \textit{calculer} avec une échelle), pour que l'interligne soit OK ;\hfill~défaut : \Cle{auto}
\item la clé \Cle{Largeur} pour la largeur (en cm) de la boîte dans laquelle le paragraphe sera placé.\hfill~défaut : \Cle{auto}
\end{itemize}
Le deuxième argument, \textit{optionnel} et entre \texttt{<...>}, permet de spécifier l'alignement souhaité pour la ligne, parmi \Cle{left/center/right/justify}, et vaut \Cle{justify} par défaut.
\smallskip
Le troisième argument, \textit{optionnel} et entre \texttt{(...)}, permet de positionner le paragraphe avec un \textit{décalage fin} et \textit{relatif} de $(x\,;y)$, et il est fixé par défaut à \Cle{0,0}.
\smallskip
Le dernier argument, \textit{obligatoire} et entre \texttt{\{...\}} est le paragraphe à placer, avec les options classiques en langage \TeX{}, et le passage à la ligne effectué par \texttt{\textbackslash\textbackslash} !
\subsection{Exemple \og détaillé \fg}
Un exemple \textit{détaillé}, avec le rendu en page suivante, avec quelques commentaires pour expliquer.
\begin{PresentationCode}{listing only}
\documentclass[a4paper,11pt]{article}
\usepackage{WriteOnGrid}
\usepackage{amsmath,amssymb}
\usepackage{frcursive}
\usepackage{lipsum}
\begin{document}
\pagestyle{empty}
\begin{PleinePageSeyes}[NumLignes]%numéro de lignes pour mieux "lire"
%entête
\LignePapierSeyes[Echelle=1.25,Ligne=1]{C. PIERQUET \hfill LaTeX}
%titre
\LignePapierSeyes[Echelle=1.5,Ligne=2,Couleur=red]{\underline{\cursive\bfseries Devoir 1}}
%cadre de notes
\CadreNoteSeyes{3}
%ligne pour un petit titre
\LignePapierSeyes[Echelle=1.5,Ligne=9,Couleur=green!50!black]{\sffamily\underline{Exercice 1 :}}
%un paragraphe de quelques lignes
\ParagraphePapierSeyes[Ligne=10]{\cursive\lipsum[1]}
%un paragraphe avec des maths
\ParagraphePapierSeyes[Ligne=22]{%
On essaye avec des maths $1+\frac12=\frac32$ en mode ligne avec des lignes assez longues pour voir
ce que ça peut donner\ldots Et une intégrale $\int_0^1 2x dx = 1$.\\On essaye en passant à la ligne !!!
}
%une ligne avec des maths
\LignePapierSeyes[Ligne=25]{${\displaystyle\sum_{i=1}^{n} i=\displaystyle\frac{n(n+1)}{2}}$.}
%un environnement, avec ajustement manuel via (x,y)...
%pas fonctionnel à 100%
\LignePapierSeyes[Echelle=1.1,Ligne=27](-1.4,0.95){
\begin{align*}
\frac{d}{dx} \ln x &= \lim_{h\to 0} \frac{\ln(x+h) - \ln x}{h} \\
&= \ln e^{1/x} &&\text{How this follows is left as an exercise.}\\
&= \frac{1}{x} &&\text{Using the definition of ln as inverse function}
\end{align*}
}
%un paragraphe multiligne, avec police agrandie
\ParagraphePapierSeyes[Echelle=1.15,Ligne=30]{BlablablaBlablabla.\\BlablablaBlablablaBlablablaBlablabla.}
\end{PleinePageSeyes}
\end{document}
\end{PresentationCode}
\newpage
\pagestyle{empty}
\begin{PleinePageSeyes}[NumLignes]%numéro de lignes pour mieux "lire"
%entête
\LignePapierSeyes[Echelle=1.25,Ligne=1]{C. PIERQUET \hfill LaTeX}
%titre
\LignePapierSeyes[Echelle=1.5,Ligne=2,Couleur=red]{\underline{\cursive\bfseries Devoir 1}}
%cadre de notes
\CadreNoteSeyes{3}
%ligne pour un petit titre
\LignePapierSeyes[Echelle=1.5,Ligne=9,Couleur=green!50!black]{\sffamily\underline{Exercice 1 :}}
%un paragraphe de quelques lignes
\ParagraphePapierSeyes[Ligne=10]{\cursive\lipsum[1]}
%un paragraphe avec des maths
\ParagraphePapierSeyes[Ligne=22]
{%
On essaye avec des maths $1+\frac12=\frac32$ en mode ligne avec des lignes assez longues pour voir
ce que ça peut donner\ldots Et une intégrale $\int_0^1 2x dx = 1$.\\On essaye en passant à la ligne !!!
}
%une ligne avec des maths
\LignePapierSeyes[Ligne=25]{${\displaystyle\sum_{i=1}^{n} i=\displaystyle\frac{n(n+1)}{2}}$.}
%un environnement, avec ajustement manuel via (x,y)...
%pas fonctionnel à 100%
\LignePapierSeyes[Echelle=1.1,Ligne=27](-1.4,0.95)
{
\begin{align*}
\frac{d}{dx} \ln x &= \lim_{h\to 0} \frac{\ln(x+h) - \ln x}{h} \\
&= \ln e^{1/x} &&\text{How this follows is left as an exercise.}\\
&= \frac{1}{x} &&\text{Using the definition of ln as inverse function}
\end{align*}
}
%un paragraphe multiligne, avec police aggrandie
\ParagraphePapierSeyes[Echelle=1.15,Ligne=30]
{BlablablaBlablabla.\\BlablablaBlablablaBlablablaBlablabla.}
\end{PleinePageSeyes}
\pagebreak
\subsection{Exemple \og détaillé \fg{} en mode A5}
Un exemple \textit{détaillé}, avec le rendu en page suivante, avec quelques commentaires pour expliquer.
\begin{PresentationCode}{listing only}
\documentclass[a5paper,11pt]{article}
\usepackage{WriteOnGrid}
\usepackage{lipsum}
\usepackage{frcursive}
\begin{document}
\thispagestyle{empty}
\begin{PleinePageSeyes}[FormatPapier=A5,NumLignes,ReglureSeyes=2.5]
%entête
\LignePapierSeyes[Echelle=2,Ligne=1]{C. PIERQUET \hfill LaTeX}
%titre
\LignePapierSeyes[Echelle=2,Ligne=2,Couleur=red]{\underline{\cursive\bfseries Devoir 1}}
%cadre de notes
\CadreNoteSeyes[2]{3}
%ligne pour un petit titre
\LignePapierSeyes[Echelle=2,Ligne=6,Couleur=green!50!black]{\sffamily\underline{Exercice 1 :}}
%paragraphe lipsum avec une échelle de 1.5
\ParagraphePapierSeyes[Ligne=7,Echelle=1.5]{\cursive\lipsum[1][1-7]}
\end{PleinePageSeyes}
\end{document}
\end{PresentationCode}
\pagebreak
\fbox{%
\includegraphics{WriteOnGrid-Seyes-A5.pdf}
}
\pagebreak
\section{Pages type 5x5 et College Ruled}
\subsection{Fonctionnement global}
Les commandes, méthodes et remarques de la section précédente sur les grilles Seyes peuvent être adaptées pour les grilles de type 5x5 et College Ruled.
\subsection{Commandes et environnements}
Les commandes et environnements sont suffixées différemment, mais le reste est identique !
\begin{PresentationCode}{listing only}
\pagestyle{empty}
\begin{PleinePageCinqCinq}[options]
\LignePapierCinqCinq[options](ajustement){texte}
\CadreNoteCinqCinq[hauteur]{numligne}
\ParagraphePapierCinqCinq[options](ajustement){texte}
\end{PleinePageSeyes}
\end{PresentationCode}
\begin{PresentationCode}{listing only}
\pagestyle{empty}
\begin{PleinePageRuled}[options]
\LignePapierRuled[options](ajustement){texte}
\CadreNoteRuled[hauteur]{numligne}
\ParagraphePapierRuled[options](ajustement){texte}
\end{PleinePageSeyes}
\end{PresentationCode}
{\small\faBomb} Pour les pages complètes 5x5, il est possible d'utiliser les clés \Cle{MargeG} et \Cle{MargeH} qui valent \Cle{auto} par défaut (adaptées au format du papier), mais elles peuvent être définies manuellement, avec les \textbf{contraintes} suivantes (pour un affichage correct sur les lignes, pour le moment\ldots) :
\begin{itemize}
\item \Cle{MargeG} doit valoir $0.2$ ou $0.7$ ou $1.2$ ou $1.7$ etc
\item \Cle{MargeH} doit valoir $0.3$ ou $0.8$ ou $1.3$ ou $1.8$ etc
\end{itemize}
\subsection{Exemples}
Les exemples des pages suivantes ont été obtenus de la même manière que celui de la pleine page Seyes, il \textit{suffit} d'adapter les commandes et environnements avec le bon suffixe.
\begin{PresentationCode}{listing only}
\pagestyle{empty}
\begin{PleinePageCinqCinq}[NumLignes,MargeG=2.7,MargeH=2.3]
\LignePapierCinqCinq[Echelle=1.25,Ligne=1]{C. PIERQUET \hfill LaTeX}
\LignePapierCinqCinq[Echelle=1.25,Ligne=3,Couleur=red]{\underline{\cursive\bfseries Devoir 2}}
\CadreNoteCinqCinq{4}
\LignePapierCinqCinq[Echelle=1.25,Ligne=9,Couleur=green!50!black]{\sffamily\underline{Exercice 1 :}}
%echelle de 1.25 et espacement de 10mm (2 lignes) := calcul 10/1.25 pour l'espacement
\ParagraphePapierCinqCinq[Ligne=11,Echelle=1.25,Espacement=\fpeval{10/1.25}]{\cursive\lipsum[1]}
\ParagraphePapierCinqCinq[Ligne=38]
{%
On essaye avec des maths $1+\frac12=\frac32$ en mode ligne avec des lignes assez longues pour voir
ce que ça peut donner\ldots Et une intégrale $\int_0^1 2x dx = 1$.\\On essaye en passant à la ligne !!!
}
\end{PleinePageCinqCinq}
\end{PresentationCode}
\begin{PresentationCode}{listing only}
\pagestyle{empty}
\begin{PleinePageRuled}[NumLignes]
\LignePapierRuled[Echelle=1.25,Ligne=1]{C. PIERQUET \hfill LaTeX}
\LignePapierRuled[Echelle=1.25,Ligne=2,Couleur=red]{\underline{\cursive\bfseries Devoir 3}}
\CadreNoteRuled{3}
\LignePapierRuled[Echelle=1.25,Ligne=8,Couleur=green!50!black]{\sffamily\underline{Exercice 1 :}}
%echelle de 1.33 et espacement de 9mm (1 ligne) := calcul 9/1.33 pour l'espacement
\ParagraphePapierRuled[Ligne=9,Echelle=1.33,Espacement=\fpeval{9/1.25}]{\cursive\lipsum[1]}
\ParagraphePapierRuled[Ligne=28]
{%
On essaye avec des maths $1+\frac12=\frac32$ en mode ligne avec des lignes assez longues pour voir
ce que ça peut donner\ldots Et une intégrale $\int_0^1 2x dx = 1$.\\On essaye en passant à la ligne !!!
}
\end{PleinePageRuled}
\end{PresentationCode}
\pagebreak
\pagestyle{empty}
\begin{PleinePageCinqCinq}[NumLignes,MargeG=2.7,MargeH=2.3]
%marges pour illustrer
\draw[thick,teal,<->,>=latex] ([shift={(-2.7,1.5)}]CinqCinqOrigine) --++ (2.7,0) node[midway,below,font=\small\ttfamily] {MargeG} ;
\draw[thick,orange,<->,>=latex] ([shift={(-0.5,0)}]CinqCinqOrigine) --++ (0,2.3) node[midway,right,font=\small\ttfamily] {MargeH} ;
%back to normal
\LignePapierCinqCinq[Echelle=1.25,Ligne=1]{C. PIERQUET \hfill LaTeX}
\LignePapierCinqCinq[Echelle=1.25,Ligne=3,Couleur=red]{\underline{\cursive\bfseries Devoir 2}}
\CadreNoteCinqCinq{4}
\LignePapierCinqCinq[Echelle=1.25,Ligne=9,Couleur=green!50!black]{\sffamily\underline{Exercice 1 :}}
%echelle de 1.25 et espacement de 10mm (2 lignes) := calcul 10/1.25 pour l'espacement
\ParagraphePapierCinqCinq[Ligne=11,Echelle=1.25,Espacement=\fpeval{10/1.25}]{\cursive\lipsum[1]}
\ParagraphePapierCinqCinq[Ligne=38]
{%
On essaye avec des maths $1+\frac12=\frac32$ en mode ligne avec des lignes assez longues pour voir
ce que ça peut donner\ldots Et une intégrale $\int_0^1 2x dx = 1$.\\On essaye en passant à la ligne !!!
}
\end{PleinePageCinqCinq}
\pagebreak
\pagestyle{empty}
\begin{PleinePageRuled}[NumLignes]
\LignePapierRuled[Echelle=1.25,Ligne=1]{C. PIERQUET \hfill LaTeX}
\LignePapierRuled[Echelle=1.25,Ligne=2,Couleur=red]{\underline{\cursive\bfseries Devoir 3}}
\CadreNoteRuled{3}
\LignePapierRuled[Echelle=1.25,Ligne=8,Couleur=green!50!black]{\sffamily\underline{Exercice 1 :}}
\ParagraphePapierRuled[Ligne=9,Echelle=1.33,Espacement=\fpeval{9/1.33}]{\cursive\lipsum[1]}
\ParagraphePapierRuled[Ligne=28]
{%
On essaye avec des maths $1+\frac12=\frac32$ en mode ligne avec des lignes assez longues pour voir
ce que ça peut donner\ldots Et une intégrale $\int_0^1 2x dx = 1$.\\On essaye en passant à la ligne !!!
}
\end{PleinePageRuled}
\pagebreak
\section{Historique}
\verb|v0.1.8|~:~~~~Styles modifiables pour les épaisseurs des réglures
\verb|v0.1.7|~:~~~~Option pour régler la marge pour les \textsf{PleinePageCinqCinq}
\verb|v0.1.6|~:~~~~Possibilité de déterminer automatiquement L\&C en fonction de la place restante.
\verb|v0.1.5|~:~~~~Possibilité de spécifier la réglure pour les quadrillages de type \textsf{Seyes} + meilleure gestion des paragraphes.
\phantom{\texttt{v0.1.5}}~:~~~~Amélioration de la gestion des paragraphes en mode \textsf{pleine page}.
\verb|v0.1.4|~:~~~~Modification de la gestion des couleurs (\texttt{xcolor} n'est plus chargé avec \textsf{[table,svgnames]})
\verb|v0.1.3|~:~~~~Ajout d'une commande pour afficher (sans écrire dessus) une grille
\verb|v0.1.2|~:~~~~Ajustement au niveau des couleurs + raccourcis couleurs par défaut
\verb|v0.1.1|~:~~~~Meilleure gestion des couleurs du quadrillage + Ajout pages complètes
\verb|v0.1.0|~:~~~~Version initiale
\end{document}