\documentclass[10pt,a4paper]{article}
%%% taille 10 points et format de papier A4
%%% classe article

%%% Codage en unicode
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc} 

\usepackage{multicol}%%%         écriture en multicolonnes
\usepackage[normalem]{ulem}%%%   pour texte barré \sout{}
\usepackage[french]{babel}%%%    écriture en français
\DecimalMathComma%%%             évite l'espace après la virgule en mode math
\usepackage{multido}%%%          pour faire des boucles

\usepackage{pst-all,pst-eucl,pst-func}%%% PsTricks etc.
\usepackage{diagbox}

\usepackage{graphicx}%%%         pour graphiques et couleurs	
\usepackage{amsmath,amsfonts,amssymb}%%% outils AMS
\usepackage{mathrsfs}%%%         police script \mathscr{}
\usepackage{tabularx}%%%         tableaux
\usepackage{fancybox}%%%         divers boîtes
\usepackage{lscape}%%%           mode paysage
\usepackage[np]{numprint}%%%     pour formater les nombres de plus de 3 chiffres
\usepackage{colortbl}%%%         pour griser des cases dans un tableau
\usepackage{makeidx}%%%          pour créer un index
\makeindex%%%                    indispensable après l'appel du package makeidx
\usepackage{lettrine}%%%         pour créer des lettrines
\usepackage{eurosym}%%%          sigle euro
\usepackage{xcolor}

%\usepackage{bez123}%%%     courbes de Bézier

\usepackage{vmargin}%%%          réglage des marges
\setmarginsrb{3cm}{2cm}{3cm}{2cm}{1cm}{1cm}{1cm}{1cm}
% 1 est la marge gauche
% 2 est la marge en haut
% 3 est la marge droite
% 4 est la marge en bas
% 5 fixe la hauteur de l'entête
% 6 fixe la distance entre l'entête et le texte
% 7 fixe la hauteur du pied de page
% 8 fixe la distance entre le texte et le pied de page

\setlength{\parindent}{0pt}%%% règle l'indentation en début de paragraphe 

%%%  Commandes perso FH

%%% Pour intégrale, somme et produit, etc.
\newcommand{\ds}{\displaystyle}%%% raccourci pour \displaystyle

%%% ensembles de nombres
%%% On réservera le style "double barre" à l'écriture au tableau
\newcommand{\R}{\textbf{R}}
\newcommand{\N}{\textbf{N}}
\newcommand{\Z}{\textbf{Z}}
\newcommand{\C}{\textbf{C}}
\newcommand{\Q}{\textbf{Q}}
\newcommand{\K}{\textbf{K}}

%%% vecteurs
\newcommand{\vect}[1]{\,\overrightarrow{\,#1\mathstrut\,}}%%% vecteur
\newcommand{\vectt}[1]{\,\overrightarrow{\,\text{#1}\mathstrut\,}}%%% vecteur AB

%%% différents repères
\newcommand{\Oij}{(\text{O}\,;\,\vect{\imath}\,,\,\vect{\jmath})}
\newcommand{\rep}{(\text{O},\text{I},\text{J})}
\newcommand{\Ouv}{(\text{O}\,;\,\vect{u}\,,\,\vect{v})}
\newcommand{\Oijk}{(\text{O}\,;\,\vect{\imath}\,,\,\vect{\jmath}\,,\,\vect{k})}

%%%  Courbe représentative
\newcommand{\Cr}[1]{\mathscr{C}_{#1}}

%%% crochets gauche et droit
\newcommand{\cg}{\texttt{]}}
\newcommand{\cd}{\texttt{[}}

%%% crochet d'entiers
\newcommand{\cde}{\texttt{[}\!\!\texttt{[}}
\newcommand{\cge}{\texttt{]}\!\!\texttt{]}}

%%% inférieur ou égal, supérieur ou égal
\newcommand{\pg}{\geqslant}
\newcommand{\pp}{\leqslant}

\usepackage{fancyhdr}%%%       En-têtes et pieds de pages
\pagestyle{fancy}
\renewcommand\headrulewidth{1pt}%%% filet haut de page
\renewcommand\footrulewidth{0pt}%%% filet bas de page
\renewcommand{\headwidth}{\textwidth}
%%% head pour haut de page
%%% L C et R pour Left Center et Right
\fancyhead[L]{\url{http://latexetmath.canalblog.com}}
\fancyhead[R]{\today} %%% \today = date du jour
\fancyhead[C]{}
%%% foot pour pied de page
\fancyfoot[C]{\begin{small}-- \thepage\  --\end{small}}  
\fancyfoot[R]{}%%%     {\jobname}%%% nom du fichier tex
\fancyfoot[L]{\href{mailto:francois.hache@free.fr}{FH}}

%%% Pour les énumérations
%%% premier niveau 
\renewcommand{\theenumi}{\textbf{\arabic{enumi}}}
\renewcommand{\labelenumi}{\textbf{\theenumi.}}
%%% deuxième niveau
\renewcommand{\theenumii}{\textbf{\alph{enumii}}}
\renewcommand{\labelenumii}{\textbf{\theenumii.}}
%%% troisième niveau
\renewcommand{\theenumiii}{\textbf{\arabic{enumiii}}}
\renewcommand{\labelenumiii}{\textbf{\theenumiii)}}
%%% permet d'avoir a. au lieu de (a) dans une énumération de niveau 2
%%% voir : http://cahiers.gutenberg.eu.org/cg-bin/article/CG_1994___17_32_0.pdf
\usepackage{arydshln}

\newenvironment{changemargin}[2]
{\begin{list}{}{%
\setlength{\topsep}{0pt}%
\setlength{\leftmargin}{0pt}%
\setlength{\rightmargin}{0pt}%
\setlength{\listparindent}{\parindent}%
\setlength{\itemindent}{\parindent}%
\setlength{\parsep}{0pt plus 1pt}%
\addtolength{\leftmargin}{#1}%
\addtolength{\rightmargin}{#2}%
}\item }{\end{list}}
%%%% pour changer les marges gauche et droite sur un paragraphe
%%%% \begin{changemargin}{marge gauche}{marge droite}
%%%% ...
%%%% \end{changemargin}

\usepackage{hyperref}%%% pour les références

%%% paramètres des pdf
\hypersetup{
pdfauthor = {F. Hache},
pdftitle = {Diagbox},
pdfstartview = FitH,
pdfcreator = {LaTeX vers PDF}
allbordercolors = white,
colorlinks=true,
linkcolor=red,
urlcolor=red,
unicode=true}

%%% Autres commandes qui doivent être définies après hyperref
\newcommand{\e}{\,\text{e}}%%%               le e de l'exponentielle
\renewcommand{\d}{\,\text d}%%%              le d de l'intégration
\renewcommand{\i}{\,\text{i}\,}%%%           le i des complexes

%%% définitions de nouvelles couleurs
\newrgbcolor{rb}{0.804 0 0}
\newrgbcolor{vb}{0 0.545 0}

% \usepackage{listings}

\setlength{\parskip}{3pt}

\begin{document}

\part*{\centering Des points et des traits}

Pointillés et tirets sont au programme de cette chronique.

\section{Points de suspension}

Les points de suspension se tracent avec  \verb!\dots! ou \verb!\ldots!.

Pour écrire $1+2+\cdots+10$, on utilise plutôt \verb!\cdots!: \verb!$1+2+\cdots+10$!.

Enfin on emploie \verb!\ddots! \fbox{$\ddots$} et \verb!\vdots! \fbox{$\vdots$} par exemple dans
$\begin{pmatrix}
1 & 0 & 0 & \cdots & 0\\
0 & 1 & 0 & \cdots & 0\\
0 & 0 & 1 & \cdots & 0\\
\vdots & \vdots & \vdots & \ddots & \vdots\\
 0 & 0 & 0 & \cdots & 1
\end{pmatrix}$

\section{Tracés en pointillés}

On peut tracer une ligne en pointillés en entrant  \texttt{linestyle=dotted} comme option dans l'instruction \verb!\psline!:

\begin{center}
\verb!\psline[linestyle=dotted](-3,0)(3,0)!

\psline[linestyle = dotted](-3,0)(3,0)
\end{center}

Les points sont espacés de 3 points par défaut; on peut modifier cet écartement avec la variable \texttt{dotsep}:

\begin{center}
\verb!\psline[linestyle=dotted,dotsep=2pt](-3,0)(3,0)!

\psline[linestyle = dotted, dotsep=2pt](-3,0)(3,0)
\end{center}

%Le \texttt{linestyle} peut avoir pour autre valeur \texttt{none} ou \texttt{solid} (valeur par défaut).

\section{Tirets}

Pour tracer une ligne avec des tirets, on entre l'option \texttt{linestyle=dashed}:

\begin{center}
\verb!\psline[linestyle=dashed](-3,0)(3,0)!

\psline[linestyle = dashed](-3,0)(3,0)
\end{center}

Par défaut, les tirets ont une longueur de 5 points et sont espacés de 3 points; on peut modifier leur aspect au moyen de la variable \texttt{dash}:

\begin{center}
\verb!\psline[linestyle=dashed,dash=3pt 2pt](-3,0)(3,0)!

\psline[linestyle = dashed, dash=3pt 2pt](-3,0)(3,0)
\end{center}

Par défaut on a donc \texttt{dash=5pt 3pt}.

Toutes les unités sont permises (tout comme pour le mode \texttt{dotted}):

\begin{center}
\verb!\psline[linestyle=dashed,dash=1cm 4mm](-3,0)(3,0)!

\psline[linestyle = dashed, dash=1cm 4mm](-3,0)(3,0)
\end{center}

\section{Dans une grille}

Une grille dessinée avec \verb!\psgrid! est par défaut en traits pleins:

\begin{multicols}{2}
\begin{verbatim}

\begin{pspicture}(0,0)(5,3)
\psset{gridlabels=0pt,subgriddiv=1}
\psgrid(0,0)(5,3)
\end{pspicture}
\end{verbatim}

\columnbreak

\begin{pspicture}(0,0)(5,3)
\psgrid[gridlabels=0pt,subgriddiv=1](0,0)(5,3)
\end{pspicture}
\end{multicols}

Il faut utiliser la variable \texttt{griddots} pour tracer la grille en pointillés:


\begin{multicols}{2}
\begin{verbatim}

\begin{pspicture}(0,0)(5,3)
\psset{gridlabels=0pt,subgriddiv=1}
\psgrid[griddots=10](0,0)(5,3)
\end{pspicture}
\end{verbatim}

\columnbreak

\begin{pspicture}(0,0)(5,3)
\psgrid[gridlabels=0pt,subgriddiv=1,griddots=10](0,0)(5,3)
\end{pspicture}
\end{multicols}

L'option \texttt{griddots=10} signifie qu'il y a 10 points entre deux n\oe uds du quadrillage. 

\section{Dans un tableau}

Dans un sujet de baccalauréat (%
\href{https://www.apmep.fr/IMG/pdf/ES_Liban_29_mai_2018.pdf}{ES Liban 2018})
 publié par l'%
\href{https://www.apmep.fr/}{APMEP},
on trouve ce tableau:

\begin{center}
\renewcommand{\arraystretch}{1.5}
\begin{tabular}{|c|c|c|c|c|}
\cline{1-2}\cdashline{3-3}[1pt/2pt]\cline{4-5}
Valeur de $U$ & 20 & \hspace*{2cm}  &  & \\
\cline{1-2}\cdashline{3-3}[1pt/2pt]\cline{4-5}
Valeur de $N$ & 0 & & & \\
\cline{1-2}\cdashline{3-3}[1pt/2pt]\cline{4-5}
\shortstack{Condition\rule{0pt}{11pt}\\$U<70$} & vrai & & vrai & faux \\
\cline{1-2}\cdashline{3-3}[1pt/2pt]\cline{4-5}
\end{tabular}
\end{center}

Comment faire des traits de séparation en pointillés ou tirets?

Pour cela il faut utiliser le package \texttt{arydshln}.\\
Attention! L'appel du package \texttt{arydshln} doit se faire APRÈS les appels éventuels des packages \texttt{array}, \texttt{longtable}, \texttt{colortab} ou \texttt{colortbl}.

Une fois le package chargé, on emploie \verb!\hdashline! à la place de \verb!\hline!, et \verb!\cdashline! à la place de \verb!\cline!:

\begin{multicols}{2}
\begin{verbatim}
\begin{tabular}{|c|c|c|c|}
\hline
un & deux & trois & quatre\\
\hdashline
cinq & six & sept & huit\\
\cline{1-1}\cdashline{2-3}\cline{4-4}
neuf & dix & onze & douze\\
\hline
\end{tabular}
\end{verbatim}

\columnbreak

\begin{flushright}
\renewcommand{\arraystretch}{2.5}
\begin{tabular}{|c|c|c|c|}
\hline
un & deux & trois & quatre\\
\hdashline
cinq & six & sept & huit\\
\cline{1-1}\cdashline{2-3}\cline{4-4}
neuf & dix & onze & douze\\
\hline
\end{tabular}
\end{flushright}
\end{multicols}

La taille des tirets et l'espacement entre deux tirets peuvent être contrôlés en rajoutant entre crochets la longueur et l'espacement : \verb![longueur/espacement]!; voyons un exemple:

\begin{multicols}{2}
\begin{verbatim}
\begin{tabular}{|c|c|c|c|}
\hline
un & deux & trois & quatre\\
\hdashline[3pt/2pt]
cinq & six & sept & huit\\
\cline{1-1}\cdashline{2-3}[1pt/1pt]\cline{4-4}
neuf & dix & onze & douze\\
\hline
\end{tabular}
\end{verbatim}

\columnbreak

\begin{flushright}
\renewcommand{\arraystretch}{2.5}
\begin{tabular}{|c|c|c|c|}
\hline
un & deux & trois & quatre\\
\hdashline[3pt/2pt]
cinq & six & sept & huit\\
\cline{1-1}\cdashline{2-3}[1pt/1pt]\cline{4-4}
neuf & dix & onze & douze\\
\hline
\end{tabular}
\end{flushright}
\end{multicols}

On voit que l'option \verb![1pt/1pt]! trace des pointillés.

Et les traits verticaux? Facile! Il suffit de remplacer | par \texttt{:} dans la définition des colonnes:

\begin{multicols}{2}
\begin{verbatim}
\begin{tabular}{|c:c|c:c|}
\hline
un & deux & trois & quatre\\
\hline
cinq & six & sept & huit\\
\hline
neuf & dix & onze & douze\\
\hline
\end{tabular}
\end{verbatim}

\columnbreak

\begin{flushright}
\renewcommand{\arraystretch}{2.5}
\begin{tabular}{|c:c|c:c|}
\hline
un & deux & trois & quatre\\
\hline
cinq & six & sept & huit\\
\hline
neuf & dix & onze & douze\\
\hline
\end{tabular}
\end{flushright}
\end{multicols}

On peut modifier les traits en remplaçant \texttt{:} par \verb!;{3pt/2pt}! (par exemple).\\
Attention! Il s'agit bien d'un point-virgule et d'accolades:

\begin{multicols}{2}
\begin{verbatim}
\begin{tabular}{|c;{3pt/2pt}c|c;{1pt/1pt}c|}
\hline
un & deux & trois & quatre\\
\hline
cinq & six & sept & huit\\
\hline
neuf & dix & onze & douze\\
\hline
\end{tabular}
\end{verbatim}

\columnbreak

\begin{flushright}
\renewcommand{\arraystretch}{2.5}
\begin{tabular}{|c;{3pt/2pt}c|c;{1pt/1pt}c|}
\hline
un & deux & trois & quatre\\
\hline
cinq & six & sept & huit\\
\hline
neuf & dix & onze & douze\\
\hline
\end{tabular}
\end{flushright}
\end{multicols}

Sur le même principe, on peut écrire du texte encadré par des tirets:

\begin{multicols}{2}
\begin{verbatim}
\renewcommand{\arraystretch}{1.5}
\begin{tabular}{;{3pt/2pt}p{6cm};{3pt/2pt}}
\hdashline[3pt/2pt]
On peut écrire du texte...\\
\hdashline[3pt/2pt]
\end{tabular}
\end{verbatim}

\columnbreak

\begin{flushright}
\renewcommand{\arraystretch}{1.5}
\begin{tabular}{;{3pt/2pt}p{6cm};{3pt/2pt}}
\hdashline[3pt/2pt]
On peut écrire du texte encadré par des tirets. On peut écrire du texte encadré par des tirets. On peut écrire du texte encadré par des tirets. On peut écrire du texte encadré par des tirets.  \\
\hdashline[3pt/2pt]
\end{tabular}
\end{flushright}
\end{multicols}

Vous saurez tout sur le package \texttt{arydhln} en consultant son mode d'emploi (daté du 21/02/2019!)  qui est disponible
\href{http://mirrors.standaloneinstaller.com/ctan/macros/latex/contrib/arydshln/arydshln-man.pdf}{ici}, en anglais bien sûr!

\newpage

Vous pourrez ainsi voir comment tracer les traits en couleur, et même comment tracer les espaces intermédiaires (\emph{gap} en anglais) d'une autre couleur:

\begin{center}
\renewcommand{\arraystretch}{2.5}
\arrayrulecolor{red}
\begin{tabular}{|c;{3pt/2pt}c|c;{5pt/3pt}c|}
\hline
un & deux & trois & quatre\\
\dashgapcolor[rgb]{0,0,1}
\hdashline[5pt/5pt]
cinq & six & sept & huit\\
\nodashgapcolor
\hdashline
neuf & dix & onze & douze\\
\hline
\end{tabular}
\end{center}

Reste à savoir si c'est très utile d'apprendre à faire ça!

\end{document}
