diff options
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/latex/writeongrid/README.md | 7 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/writeongrid/WriteOnGrid-doc-en.pdf | bin | 0 -> 376053 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/writeongrid/WriteOnGrid-doc-en.tex | 359 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/writeongrid/WriteOnGrid-doc-fr.pdf | bin | 0 -> 400100 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/writeongrid/WriteOnGrid-doc-fr.tex | 359 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/writeongrid/WriteOnGrid.sty | 116 |
6 files changed, 841 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/writeongrid/README.md b/Master/texmf-dist/doc/latex/writeongrid/README.md new file mode 100644 index 00000000000..7d037bc12ae --- /dev/null +++ b/Master/texmf-dist/doc/latex/writeongrid/README.md @@ -0,0 +1,7 @@ +WriteOnGrid is a package to work with a grid, with text on the lines. +----------------------------------------------------------------------- +WriteOnGrid est un package pour écrire sur les lignes d'un quadrillage. +----------------------------------------------------------------------- +Author : Cédric Pierquet +email : cpierquet@outlook.fr +Licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/writeongrid/WriteOnGrid-doc-en.pdf b/Master/texmf-dist/doc/latex/writeongrid/WriteOnGrid-doc-en.pdf Binary files differnew file mode 100644 index 00000000000..bcd238b1e05 --- /dev/null +++ b/Master/texmf-dist/doc/latex/writeongrid/WriteOnGrid-doc-en.pdf diff --git a/Master/texmf-dist/doc/latex/writeongrid/WriteOnGrid-doc-en.tex b/Master/texmf-dist/doc/latex/writeongrid/WriteOnGrid-doc-en.tex new file mode 100644 index 00000000000..624789e9871 --- /dev/null +++ b/Master/texmf-dist/doc/latex/writeongrid/WriteOnGrid-doc-en.tex @@ -0,0 +1,359 @@ +% !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[svgnames]{xcolor} +\usepackage[french]{babel} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{WriteOnGrid} +\usetikzlibrary{decorations.pathreplacing} +\usepackage{amsmath,amssymb} +\usepackage{fontawesome5} +\usepackage{enumitem} +\usepackage{frcursive} +\usepackage{tabularray} +\usepackage{fancyvrb} +\usepackage{fancyhdr} +\fancyhf{} +\renewcommand{\headrulewidth}{0pt} +\lfoot{\sffamily\small [WriteOnGrid]} +\cfoot{\sffamily\small - \thepage{} -} +\rfoot{\hyperlink{matoc}{\small\faArrowAltCircleUp[regular]}} + +\usepackage{hvlogos} +\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.0} +\def\TPdate{16/01/2023} + +\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 [en]}}\\ + \\ + {\LARGE To write on lines} \\ + {\LARGE of a grid.} + \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$~~Some commands to create a grid (5x5 or Seyes) and to write \og on \fg{} the lines.} + +\smallskip + +{$\blacktriangleright$~~Possibility to personnalize size, margins, ...} + +\vspace{1cm} + +\begin{center} + \begin{EnvGrid}[NumSquares=22x8] + \WriteLine{my text on line 1\ldots} + \WriteLine<center>{my centered text on line 2\ldots} + \WriteLine<right>{my right-align text on ligne 3\ldots} + \WriteLine[OffsetH=2]{my 2-squares shifted text on line 4\ldots} + \PassLine + \WriteLine{\sffamily my text, sans serif, on line 6\ldots} + \WriteLine[OffsetH=-1]{\small\cursive my -1-square shifted text on line 7\ldots} +\end{EnvGrid} +\end{center} + +\begin{EnvGrid}[NumSquares=24x5,Margin=1,Enlarge=2/2,Seyes] + \WriteLine[Scale=1.5]{\textcolor{red}{my text on line 1\ldots}} + \WriteLine[Scale=1.5]{\textcolor{blue}{my text on line 2\ldots}} + \WriteLine[Scale=1.5,OffsetH=-1]{$1+\frac{1}{2}=\frac32$ et $(1+x)^2=1+2x+x^2$ on line 3\ldots} + \WriteLine[Scale=1.5]{\cursive my text on line 4\ldots} +\end{EnvGrid} + +\vspace{0.5cm} + +%\hfill{}\textit{Merci à Denis Bitouzé et à Patrick Bideault pour leurs retours et idées !} + +\vfill + +\hrule + +\medskip + +\begin{tblr}{width=\linewidth,colspec={X[c]X[c]X[c]X[c]X[c]X[c]},cells={font=\sffamily}} +{\huge \LaTeX} & & & & &\\ +& {\huge \pdfLaTeX} & & & & \\ +& & {\huge \LuaLaTeX} & & & \\ +& & & {\huge \TikZ} & & \\ +& & & & {\huge \TeXLive} & \\ +& & & & & {\huge \MiKTeX} \\ +\end{tblr} + +\medskip + +\hrule + +\medskip + +\newpage + +\part*{Introduction} + +\section{The package} + +\subsection{Loading of the package, used packages} + +The package \textsf{writeongrid} loads within the preamble : + +\begin{PresentationCode}{listing only} +\usepackage{writeongrid} +\end{PresentationCode} + +It’s mostly compatible with \textsf{latex}, \textsf{pdflatex}, \textsf{lualatex} or \textsf{xelatex} compilation ! + +\medskip + +It loads the following packages and libraries : + +\begin{itemize} + \item \texttt{tikz} with the librairies \Cle{calc} and \Cle{positionning} ; + \item \texttt{xstring}, \texttt{xparse} and \texttt{simplekv}. +\end{itemize} + +\subsection{The package itself} + +The idea is to, thanks to TikZ, propose commands and environment to work with a grid, and to write on the lines. + +\begin{PresentationCode}{listing only} +%environment, with keys to prepare the grid +%commands to write or pass a line + +\begin{EnvGrid}[keys]<color> + \WriteLine[keys]<alignment>{text} + \PassLine +\end{EnvGrid} +\end{PresentationCode} + +\subsection{Overall functioning} + +The grid is given by the number of squares (nbCol$\times$nbRow), and after we can adjust with \textit{overtakings} to enlarge the grid onto the margins of the paper (left or right). We can also \textit{adjust} the global margin, to begin the lines differently. + +\medskip + +For example, a $5\times5$ grid : + +\begin{itemize} + \item with a size 24x5 squares ; + \item with an overtaking by \textcolor{red}{2 squares at the left} and \textcolor{blue}{3 squares at the right} ; + \item with a global margin of \textcolor{orange}{1 square} ; + \item with a \textcolor{ForestGreen}{\textit{border}} to show the \textit{basis} grid. +\end{itemize} + +\medskip + +\begin{tikzpicture} + \useasboundingbox (0,0) rectangle ({0.5*24},{-0.5*5}) ; + \draw[xstep=0.5,ystep=0.5,thin,lightgray!75] ({-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[ForestGreen,thick] (0,0) rectangle ({0.5*24},{-0.5*5}) ; +\end{tikzpicture} + +\vspace{1.5cm} + +The \texttt{tikzpicture} is \textit{bounded} by the \textcolor{ForestGreen}{\textit{border}}, in order to specify overtakings or alignment. + +\medskip + +Le left-border of the \textcolor{ForestGreen}{\textit{border}} is aligned on the left-margin of the page, so take care of the \texttt{\textbackslash parindent}. + +\pagebreak + +\section{Commands, keys and options} + +\subsection{The environement} + +\begin{PresentationCode}{listing only} +%environment, with keys to prepare the grid + +\begin{EnvGrid}[keys]<color> + ... +\end{EnvGrid} +\end{PresentationCode} + +The first argument, \textit{optional}, between \texttt{[...]} give the \Cle{keys} : + +\begin{itemize} + \item \Cle{NumSwuares} to specify the size of the grid, under \texttt{(nbCol)x(nbRow)} ; \hfill~default : \Cle{17x5} + \item \Cle{Unit} to specify the scale of the grid ; \hfill~default : \Cle{1} + \item \Cle{Margin} to specify the global \textcolor{orange}{margin} at the beginning of the lines ; \hfill~default : \Cle{0} + \item \Cle{Enlarge} to specify the squares-overtakings, globally with \texttt{\textcolor{red}{L}\textcolor{blue}{R}} or side by side with \texttt{\textcolor{red}{L}/\textcolor{blue}{R}} ;\hfill~default : \Cle{0} + \item the boolean \Cle{Border} to display the basis border of the grid ;\hfill~default : \Cle{false} + \item the boolean \Cle{Seyes} to work with a Seyes grid.\hfill~default : \Cle{false} +\end{itemize} + +The second argument, \textit{optional}, between \texttt{<...>} is the major color of the grid, \Cle{lightgray} by default. + +\medskip + +\begin{PresentationCode}{listing only} +%the borders are added to show the basis grid + +%30x5 small squares, w/o overtakings, basis color +\begin{EnvGrid}[NumSquares=30x5] +\end{EnvGrid} + +%36x8 small squares, overtakings 3/3, LightSteelBlue color +\begin{EnvGrid}[NumSquares=36x8,Enlarge=3/3]<LightSteelBlue> +\end{EnvGrid} + +%15x5 big squares, overtakings 1/2, orange, centered +\begin{center} + \begin{EnvGrid}[NumSquares=15x5,Enlarge=1/2,Seyes]<orange> + \end{EnvGrid} +\end{center} +\end{PresentationCode} + +\medskip + +\begin{EnvGrid}[NumSquares=30x5,Border] +\end{EnvGrid} + +\smallskip + +\begin{EnvGrid}[NumSquares=36x8,Enlarge=3/3,Border]<LightSteelBlue> +\end{EnvGrid} + +\begin{center} + \begin{EnvGrid}[NumSquares=15x5,Enlarge=1/2,Seyes,Border]<orange> + \end{EnvGrid} +\end{center} + +\pagebreak + +\subsection{Write on the lines} + +The idea is to write on the created grid. In order to write \textit{right} on the lines, we can : + +\begin{itemize} + \item give the lines one by one ; + \item avoid using multilines paragraps, items ; + \item pass a line. +\end{itemize} + +\begin{PresentationCode}{listing only} +... + %to write the lines, one by one + \WriteLine[keys]<alignment>{text} + %to pass the ligne + \PassLine +... +\end{PresentationCode} + +The fisrt argument, \textit{optional}, between \texttt{[...]} give the \Cle{keys} : + +\begin{itemize} + \item \Cle{OffsetH}, in squares, to shift the text from the \textcolor{orange}{margin} ; \hfill~default : \Cle{0} + \item \Cle{OffsetV} to shift vertically the line ; \hfill~default : \Cle{0pt} + \item \Cle{Scale} to specify the scale of the given text.\hfill~default : \Cle{1} +\end{itemize} + +the second argument, \textit{optional}, between \texttt{<...>} is the horizontal alignment (\Cle{left/center/right}) of the text in the basis \textcolor{ForestGreen}{\textit{border}}, \Cle{left} by default. + +\medskip + +Le third argument, \textit{mandatory} and between \texttt{\{...\}} is the text, eventually with options. + +\begin{PresentationCode}{listing only} +\begin{EnvGrid}[NumSquares=36x8] + \WriteLine{my text on ligne 1\ldots} + \WriteLine<center>{\ttfamily my tetetype text centered on line 2\ldots} + \WriteLine<right>{right-align text on line 3\ldots} + \WriteLine[OffsetH=0.1]{\textcolor{red}{red text, 1mm-shifted\ldots}} + \PassLine + \WriteLine[Scale=0.5]{\sffamily sans serif text, reduced by 50\,\%, on line 6\ldots} + \WriteLine[OffsetH=3]{\cursive 3 squares-shited text\ldots} +\end{EnvGrid} +\end{PresentationCode} + +\begin{EnvGrid}[NumSquares=36x8] + \WriteLine{my text on ligne 1\ldots} + \WriteLine<center>{\ttfamily my tetetype text centered on line 2\ldots} + \WriteLine<right>{right-align text on line 3\ldots} + \WriteLine[OffsetH=0.1]{\textcolor{red}{red text, 1mm-shifted\ldots}} + \PassLine + \WriteLine[Scale=0.5]{\sffamily sans serif text, reduced by 50\,\%, on line 6\ldots} + \WriteLine[OffsetH=3]{\cursive 3 squares-shited text\ldots} +\end{EnvGrid} + +\begin{PresentationCode}{listing only} +\begin{EnvGrid}[NumSquares=22x4,Margin=1,Enlarge=2/3,Seyes,Border] + \WriteLine[Scale=1.5]{\textcolor{red}{red text on line 1\ldots}} + \WriteLine[Scale=1.15,OffsetH=1]{$(1+x)^2=1+2x+x^2$ on line 2, with 1-square offset\ldots} + \WriteLine[OffsetH=-1]{\textcolor{blue}{blue text, back to left, on line 3\ldots}} +\end{EnvGrid} + +\end{PresentationCode} +\begin{EnvGrid}[NumSquares=22x4,Margin=1,Enlarge=2/3,Seyes,Border] + \WriteLine[Scale=1.5]{\textcolor{red}{red text on line 1\ldots}} + \WriteLine[Scale=1.15,OffsetH=1]{$(1+x)^2=1+2x+x^2$ on line 2, with 1-square offset\ldots} + \WriteLine[OffsetH=-1]{\textcolor{blue}{blue text, back to left, on line 3\ldots}} +\end{EnvGrid} + +\newpage + +\part*{History} + +\verb|v0.1.0|~:~~~~Initial version + +\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/writeongrid/WriteOnGrid-doc-fr.pdf b/Master/texmf-dist/doc/latex/writeongrid/WriteOnGrid-doc-fr.pdf Binary files differnew file mode 100644 index 00000000000..3604f845ea6 --- /dev/null +++ b/Master/texmf-dist/doc/latex/writeongrid/WriteOnGrid-doc-fr.pdf diff --git a/Master/texmf-dist/doc/latex/writeongrid/WriteOnGrid-doc-fr.tex b/Master/texmf-dist/doc/latex/writeongrid/WriteOnGrid-doc-fr.tex new file mode 100644 index 00000000000..57975ee6a6f --- /dev/null +++ b/Master/texmf-dist/doc/latex/writeongrid/WriteOnGrid-doc-fr.tex @@ -0,0 +1,359 @@ +% !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[svgnames]{xcolor} +\usepackage[french]{babel} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{WriteOnGrid} +\usetikzlibrary{decorations.pathreplacing} +\usepackage{amsmath,amssymb} +\usepackage{fontawesome5} +\usepackage{enumitem} +\usepackage{frcursive} +\usepackage{tabularray} +\usepackage{fancyvrb} +\usepackage{fancyhdr} +\fancyhf{} +\renewcommand{\headrulewidth}{0pt} +\lfoot{\sffamily\small [WriteOnGrid]} +\cfoot{\sffamily\small - \thepage{} -} +\rfoot{\hyperlink{matoc}{\small\faArrowAltCircleUp[regular]}} + +\usepackage{hvlogos} +\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.0} +\def\TPdate{16 Janvier 2023} + +\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) et écrire \og sur \fg{} les lignes.} + +\smallskip + +{$\blacktriangleright$~~Personnalisation de la taille de la grille, des marges, etc.} + +\vspace{1cm} + +\begin{center} + \begin{EnvQuadrillage}[NbCarreaux=22x8] + \EcrireLigne{mon texte sur la ligne 1\ldots} + \EcrireLigne<center>{mon texte centré sur la ligne 2\ldots} + \EcrireLigne<right>{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,Seyes] + \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 à Denis Bitouzé et à Patrick Bideault pour leurs retours et idées !} + +\vfill + +\hrule + +\medskip + +\begin{tblr}{width=\linewidth,colspec={X[c]X[c]X[c]X[c]X[c]X[c]},cells={font=\sffamily}} +{\huge \LaTeX} & & & & &\\ +& {\huge \pdfLaTeX} & & & & \\ +& & {\huge \LuaLaTeX} & & & \\ +& & & {\huge \TikZ} & & \\ +& & & & {\huge \TeXLive} & \\ +& & & & & {\huge \MiKTeX} \\ +\end{tblr} + +\medskip + +\hrule + +\medskip + +\newpage + +\part*{Introduction} + +\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 + +Il charge les packages et librairies suivantes : + +\begin{itemize} + \item \texttt{tikz} avec les librairies \Cle{calc} et \Cle{positionning} ; + \item \texttt{xstring}, \texttt{xparse} 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]<couleur> + \EcrireLigne[clés]<alignement>{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{ForestGreen}{\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!75] ({-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[ForestGreen,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{ForestGreen}{\textit{cadre}}, afin de pouvoir gérer les débordements et l'alignement de l'environnement ! + +\medskip + +De plus, le bord gauche du \textcolor{ForestGreen}{\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 + +\section{Commandes, clés et options} + +\subsection{L'environnement} + +\begin{PresentationCode}{listing only} +%environnement francisé, avec clés en français pour préparer la grille + +\begin{EnvQuadrillage}[clés]<couleur> + ... +\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 \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 le booléen \Cle{Seyes} pour afficher un quadrillage de type Seyes.\hfill~défaut : \Cle{false} +\end{itemize} + +Le second argument, \textit{optionnel}, entre \texttt{<...>} est quant à lui la couleur de base du quadrillage, \Cle{lightgray} par défaut. + +\medskip + +\begin{PresentationCode}{listing only} +%les cadres ont été rajoutés pour la sortie + +%30x5 petits carreaux, sans dépassement, couleur de base +\begin{EnvQuadrillage}[NbCarreaux=30x5] +\end{EnvQuadrillage} + +%36x8 petits carreaux, avec débordements 3/3, couleur LightSteelBlue +\begin{EnvQuadrillage}[NbCarreaux=36x8,Elargir=3/3]<LightSteelBlue> +\end{EnvQuadrillage} + +%15x5 grand carreaux, avec débordements 1/2, couleur orange, centré +\begin{center} + \begin{EnvQuadrillage}[NbCarreaux=15x5,Elargir=1/2,Seyes]<orange> + \end{EnvQuadrillage} +\end{center} +\end{PresentationCode} + +\medskip + +\begin{EnvQuadrillage}[NbCarreaux=30x5,Cadre] +\end{EnvQuadrillage} + +\smallskip + +\begin{EnvQuadrillage}[NbCarreaux=36x8,Elargir=3/3,Cadre]<LightSteelBlue> +\end{EnvQuadrillage} + +\begin{center} + \begin{EnvQuadrillage}[NbCarreaux=15x5,Elargir=1/2,Seyes,Cadre]<orange> +\end{EnvQuadrillage} +\end{center} + +\pagebreak + +\subsection{Écrire sur les lignes} + +L'idée est maintenant de pouvoir écrire sur les lignes du quadrillage créé, 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]<alignement>{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{ForestGreen}{\textit{cadre}} de base, \Cle{left} par défaut. + +\medskip + +Le troisième argument, \textit{mandataire} 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<center>{\ttfamily mon texte, en fonte teletype augmentée de 25\,\%, centré sur la ligne 2\ldots} + \EcrireLigne<right>{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<center>{\ttfamily mon texte, en fonte teletype augmentée de 25\,\%, centré sur la ligne 2\ldots} + \EcrireLigne<right>{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=1,Elargir=2/3,Seyes,Cadre] + \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 de la marge\ldots} + \EcrireLigne[DecalH=-1]{\textcolor{blue}{mon texte bleu, remis à gauche, sur la ligne 3\ldots}} +\end{EnvQuadrillage} + +\end{PresentationCode} +\begin{EnvQuadrillage}[NbCarreaux=22x4,Marge=1,Elargir=2/3,Seyes,Cadre] + \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 de la marge\ldots} + \EcrireLigne[DecalH=-1]{\textcolor{blue}{mon texte bleu, remis à gauche, sur la ligne 3\ldots}} +\end{EnvQuadrillage} + +\newpage + +\part*{Historique} + +\verb|v0.1.0|~:~~~~Version initiale + +\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/writeongrid/WriteOnGrid.sty b/Master/texmf-dist/tex/latex/writeongrid/WriteOnGrid.sty new file mode 100644 index 00000000000..096ea98be14 --- /dev/null +++ b/Master/texmf-dist/tex/latex/writeongrid/WriteOnGrid.sty @@ -0,0 +1,116 @@ +% Author : C. Pierquet +% licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{WriteOnGrid}[2023/01/16 v0.1.0 package to write on grid lines] +% 0.1.0 Version initiale [fr] & [en] + +%------Packages utiles +\RequirePackage{tikz} +\RequirePackage{simplekv} +\RequirePackage{xstring} +\RequirePackage{xparse} +%librairies tikz +\usetikzlibrary{calc,positioning} + +%------Variables +\newcounter{lgquadri}%compteur des lignes, qui sera incrémenté + +%------Commandes [fr] +\newcommand\PasseLigne{\addtocounter{lgquadri}{1}}%passer une ligne + +\defKV[LigneQuadrill]{Echelle=\xdef\QuadEchelle{#1}}%déf des clés +\setKVdefault[LigneQuadrill]{DecalV=0pt,DecalH=0,Sep=0pt,Echelle=1}%valeurs par défaut + +\NewDocumentCommand\EcrireLigne{ O{} D<>{left} m }{%écrire sur les lignes l'une après l'autre + \addtocounter{lgquadri}{1} + \useKVdefault[LigneQuadrill] + \setKV[LigneQuadrill]{#1} + \node[text width=\fpeval{\ValeurCarreau*\QuadNbCol-\ValeurCarreau*\useKV[Quadrill]{Marge}}cm,align=#2,scale=\QuadEchelle,anchor=base west,inner sep={\useKV[LigneQuadrill]{Sep}}] at ($({\ValeurCarreau*\useKV[Quadrill]{Marge}+\ValeurCarreau*\useKV[LigneQuadrill]{DecalH}},{-\ValeurCarreau*\thelgquadri})+(0,\useKV[LigneQuadrill]{DecalV})$) {\strut #3} ; +} + +\defKV[Quadrill]{NbCarreaux=\xdef\QuadNbCar{#1},Elargir=\xdef\QuadElar{#1}}%déf des clés +\setKVdefault[Quadrill]{NbCarreaux=17x5,Unite=1,Marge=0,Elargir=0,Cadre=false,Seyes=false}%valeurs par défaut (nbc x nbl) + +\NewDocumentEnvironment{EnvQuadrillage}{ O{} D<>{gray} }%créer le quadrillage +{% + \setcounter{lgquadri}{0}%on réinitialise les lignes + \useKVdefault[Quadrill]%on met les clés par défaut + \setKV[Quadrill]{#1}%on lit les clés + \StrCut{\QuadNbCar}{x}{\QuadNbCol}{\QuadNbLig}% + \ifboolKV[Quadrill]{Seyes}%seyes ou 5x5 + {\xdef\ValeurCarreau{0.8}}% + {\xdef\ValeurCarreau{0.5}}% + \IfSubStr{\QuadElar}{/}%on récupère les élargissements G et D + {\StrCut{\QuadElar}{/}{\QuadElarG}{\QuadElarD}}% + {\def\QuadElarG{\QuadElar}\def\QuadElarD{\QuadElar}}% + %\begin{tikzpicture}[xscale={\useKV[Quadrill]{Unite}},yscale={\useKV[Quadrill]{Unite}},trim left={(0,0)},trim right={({\QuadNbCol},0)}] + \begin{tikzpicture}[xscale={\useKV[Quadrill]{Unite}},yscale={\useKV[Quadrill]{Unite}}] + \useasboundingbox (0,0) rectangle ({\ValeurCarreau*\QuadNbCol},{-\ValeurCarreau*\QuadNbLig}) ;%on fixe la grille de base, avant élargissement éventuel + \ifboolKV[Quadrill]{Seyes}%seyes ou 5x5 + {% + \draw[xstep=0.8,ystep=0.2,thin,#2!50] ({-\ValeurCarreau*\QuadElarG},0) grid ({\ValeurCarreau*\QuadNbCol+\ValeurCarreau*\QuadElarD},{-\ValeurCarreau*\QuadNbLig}) ;%grille seyes + \draw[xstep=0.8,ystep=0.8,#2!85] ({-\ValeurCarreau*\QuadElarG},0) grid ({\ValeurCarreau*\QuadNbCol+\ValeurCarreau*\QuadElarD},{-\ValeurCarreau*\QuadNbLig}) ;%grille seyes + + }% + {% + \draw[xstep=0.5,ystep=0.5,thin,#2!50] ({-\ValeurCarreau*\QuadElarG},0) grid ({\ValeurCarreau*\QuadNbCol+\ValeurCarreau*\QuadElarD},{-\ValeurCarreau*\QuadNbLig}) ;%grille 5x5 + }% + + \ifboolKV[Quadrill]{Cadre}%cadre pour visualiser la "marge" (officielle) + {\draw[thick] (0,0) rectangle ({\ValeurCarreau*\QuadNbCol},{-\ValeurCarreau*\QuadNbLig}) ;}% + {}% + }% + {% + \end{tikzpicture}% +}% + +%------Commandes [en] +\newcommand\PassLine{\addtocounter{lgquadri}{1}}%passer une ligne + +\defKV[LineQuadril]{Scale=\xdef\QuadEchelle{#1}}%déf des clés +\setKVdefault[LineQuadril]{OffsetV=0pt,OffsetH=0,Sep=0pt,Scale=1}%valeurs par défaut + +\NewDocumentCommand\WriteLine{ O{} D<>{left} m }{%écrire sur les lignes l'une après l'autre + \addtocounter{lgquadri}{1} + \useKVdefault[LineQuadril] + \setKV[LineQuadril]{#1} + \node[text width=\fpeval{\ValeurCarreau*\QuadNbCol-\ValeurCarreau*\useKV[Quadril]{Margin}}cm,align=#2,scale=\QuadEchelle,anchor=base west,inner sep={\useKV[LineQuadril]{Sep}}] at ($({\ValeurCarreau*\useKV[Quadril]{Margin}+\ValeurCarreau*\useKV[LineQuadril]{OffsetH}},{-\ValeurCarreau*\thelgquadri})+(0,\useKV[LineQuadril]{OffsetV})$) {\strut #3} ; +} + +\defKV[Quadril]{NumSquares=\xdef\QuadNbCar{#1},Enlarge=\xdef\QuadElar{#1}}%déf des clés +\setKVdefault[Quadril]{NumSquares=17x5,Unit=1,Margin=0,Enlarge=0,Border=false,Seyes=false}%valeurs par défaut + +\NewDocumentEnvironment{EnvGrid}{ O{} D<>{gray} }%créer le quadrillage +{% + \setcounter{lgquadri}{0}%on réinitialise les lignes + \useKVdefault[Quadril]%on met les clés par défaut + \setKV[Quadril]{#1}%on lit les clés + \StrCut{\QuadNbCar}{x}{\QuadNbCol}{\QuadNbLig}% + \ifboolKV[Quadril]{Seyes}%seyes ou 5x5 + {\xdef\ValeurCarreau{0.8}}% + {\xdef\ValeurCarreau{0.5}}% + \IfSubStr{\QuadElar}{/}%on récupère les élargissements G et D + {\StrCut{\QuadElar}{/}{\QuadElarG}{\QuadElarD}}% + {\def\QuadElarG{\QuadElar}\def\QuadElarD{\QuadElar}}% + %\begin{tikzpicture}[xscale={\useKV[Quadril]{Unit}},yscale={\useKV[Quadril]{Unit}},trim left={(0,0)},trim right={({\QuadNbCol},0)}] + \begin{tikzpicture}[xscale={\useKV[Quadrill]{Unite}},yscale={\useKV[Quadrill]{Unite}}] + \useasboundingbox (0,0) rectangle ({\ValeurCarreau*\QuadNbCol},{-\ValeurCarreau*\QuadNbLig}) ;%on fixe la grille de base, avant élargissement éventuel + \ifboolKV[Quadril]{Seyes}%seyes ou 5x5 + {% + \draw[xstep=0.8,ystep=0.2,thin,#2!75] ({-\ValeurCarreau*\QuadElarG},0) grid ({\ValeurCarreau*\QuadNbCol+\ValeurCarreau*\QuadElarD},{-\ValeurCarreau*\QuadNbLig}) ;%grille seyes + \draw[xstep=0.8,ystep=0.8,#2] ({-\ValeurCarreau*\QuadElarG},0) grid ({\ValeurCarreau*\QuadNbCol+\ValeurCarreau*\QuadElarD},{-\ValeurCarreau*\QuadNbLig}) ;%grille seyes + + }% + {% + \draw[xstep=0.5,ystep=0.5,thin,#2!75] ({-\ValeurCarreau*\QuadElarG},0) grid ({\ValeurCarreau*\QuadNbCol+\ValeurCarreau*\QuadElarD},{-\ValeurCarreau*\QuadNbLig}) ;%grille 5x5 + }% + + \ifboolKV[Quadril]{Border}%cadre pour la "marge" + {\draw[thick] (0,0) rectangle ({\ValeurCarreau*\QuadNbCol},{-\ValeurCarreau*\QuadNbLig}) ;}% + {}% + }% + {% + \end{tikzpicture}% +}% +\endinput
\ No newline at end of file |