Experts LaTeX, Zeste de Savoir à besoin de vous

Experts ou non !

a marqué ce sujet comme résolu.
  • pour le spoiler, faire un bloc déplié par défaut (on peut pas déplié sur papier :/) ;
qwerty

Je le mettrais plutôt genre en fin de chapitre ou un truc comme ça. Les blocs spoilers pourraient être utilisés pour donner les réponses à un exercice, ou insérer du contenu sans surcharger visuellement la page.

Et sinon, une réflexion en l’air comme ça : est-ce que ça serait pas utile de pouvoir définir quelques options lors de l’export du tuto en PDF, comme par exemple :

  • format A4 ou A5;
  • définir si c’est pour impression (style avec moins de couleurs, fond blanc, etc) ou juste pour lire hors ligne (la plus agréable à lire);
  • etc.

Edit : Et je trouve la démo zMarkdown vraiment ultra chouette. :)

+4 -0
  • définir si c’est pour impression (style avec moins de couleurs, fond blanc, etc) ou juste pour lire hors ligne (la plus agréable à lire);
Roipoussiere

Ce serait pas mal, et c’est par exemple ce que permet pandoc.

  • Un style où les liens sont cliquables, et autres facilités de la lecture du PDF sur ordinateur ;
  • Un autre où les liens sont remplacés par des notes de bas de page, etc.

Pour le moment ça serait bien de se concentrer sur le style de base. Une fois qu’on aura ça, on pourra voir pour les spécificités.

+2 -0

Voilà, j’ai rajouté/modifié quelques trucs dans la classe.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{ZdSClass}

\LoadClass[fontsize = 12pt, twoside=false, numbers=enddot, parskip = half]{scrartcl}

\RequirePackage[utf8]{inputenc}
\RequirePackage[T1]{fontenc}
\RequirePackage{scrhack}
\RequirePackage[dvipsnames, table]{xcolor}
\RequirePackage{scrlayer-scrpage}
\RequirePackage{minted}
\RequirePackage{amsmath, amssymb}
\RequirePackage[francais]{babel}
\RequirePackage[babel=true]{microtype}
\RequirePackage{capt-of}
\RequirePackage{ulem}

%%% TABLE PACKAGES
\RequirePackage{multirow}
\RequirePackage{longtable}
\RequirePackage{tabu}

%%% GRAPHIC PACKAGES
\RequirePackage{graphicx}
\RequirePackage[export]{adjustbox}
\RequirePackage{tikz}

\RequirePackage[bookmarks=true,pdftex=true,hyperindex=true,colorlinks=true,linkcolor=YellowOrange,bookmarksopen=true,bookmarksnumbered=true]{hyperref}
\RequirePackage[thmmarks, amsmath, hyperref]{ntheorem}


\usetikzlibrary{shadows}


%%% SECTIONNING 

\definecolor{chaptercolor}{HTML}{EA9408}
\definecolor{sectioncolor}{HTML}{EA9408}
\definecolor{subsectioncolor}{HTML}{EA9408}
\definecolor{subsubsectioncolor}{HTML}{EA9408}
\definecolor{paragraphcolor}{HTML}{000000}
\definecolor{subparagraphcolor}{HTML}{000000}

%\addtokomafont{chapter}{\color{chaptercolor}}
\addtokomafont{section}{\color{sectioncolor}}
\addtokomafont{subsection}{\color{subsectioncolor}}
\addtokomafont{subsubsection}{\color{sectioncolor}}
\addtokomafont{paragraph}{\color{paragraphcolor}}
\addtokomafont{subparagraph}{\color{subparagraphcolor}}

\RedeclareSectionCommand[afterskip=.15\baselineskip]{paragraph}
\RedeclareSectionCommand[indent=0em, afterskip=.15\baselineskip]{subparagraph}

\setcounter{secnumdepth}{4}

%%%


%%% ZDS BOX 

\newcommand{\newZdSbox}[3]{{
\theoremprework{~\\ \textcolor{#3}{\rule{0.6\linewidth}{1pt}}}
\theorempostwork{\hfill \textcolor{#3}{\rule{0.6\linewidth}{1pt}} \\}
\theoremheaderfont{\scshape}
\theoremseparator{ ---}
\theoremstyle{break}
\theorembodyfont{\normalfont}
\newtheorem*{#1}{\textcolor{#3}{#2}}
}}

\newZdSbox{Info}{Information}{SkyBlue}
\newZdSbox{Ques}{Question}{Orchid}
\newZdSbox{Err}{Erreur}{RedOrange}
\newZdSbox{Atten}{Attention}{Apricot}

\newenvironment{Attention}{\begin{minipage}{\linewidth}\begin{Atten}}{\end{Atten}\end{minipage}}
\newenvironment{Question}{\begin{minipage}{\linewidth}\begin{Ques}}{\end{Ques}\end{minipage}}
\newenvironment{Information}{\begin{minipage}{\linewidth}\begin{Info}}{\end{Info}\end{minipage}}
\newenvironment{Erreur}{\begin{minipage}{\linewidth}\begin{Err}}{\end{Err}\end{minipage}}

%%%


%%% TITLE PAGE

\newcommand{\licence}[1]{\def\@licence{#1}}
\newcommand{\logo}[1]{\def\@logo{#1}}


\renewcommand{\maketitle}{%
    {\centering
    \vspace*{0.5 cm}
    \ifcsdef{@logo}{\includegraphics[width=0.6\linewidth]{\@logo}}{Pas de logo}\\[1.0 cm]
    \LARGE \href{https://zestedesavoir.com/membres/voir/@author/}{\bsc{\@author}}\\[2.0 cm]
    \Large \href{https://zestedesavoir.com}{Zeste de Savoir}\\[0.5 cm] 
    \rule{\linewidth}{0.2 mm} \\[0.4 cm]
    \huge\textbf{\@title}\\
    \rule{\linewidth}{0.2 mm} \\[1.5 cm]  
   \large\textbf{Ce tutoriel est sous licence \@licence}\\[2 cm]}
}

\hypersetup{pdftitle={\@title}}
\hypersetup{pdfauthor={\@author}}

%%%

%%% KEYBOARD FONT
%   Could be manage with \keys command of menukeys package instead of creating command

\newcommand*\key[1]{%
  \tikz[baseline=(key.base)]
    \node[%
      draw,
      fill=white,
      drop shadow={shadow xshift=0.25ex,shadow yshift=-0.25ex,fill=black,opacity=0.75},
      rectangle,
      rounded corners=2pt,
      inner sep=1pt,
      line width=0.5pt,
      font=\scriptsize\sffamily
    ](key) {#1\strut}
  ;
}

%%%

\lohead{\headmark}
\chead{} 
\automark{section}
\pagestyle[subsection]{scrheadings}


\setlength{\tabcolsep}{0.2cm}
\renewcommand{\arraystretch}{1.5}

% \taburowcolors[2]{gray!5 .. white} % ALternate cell color in arrays. Bad with multicolumn.                                       

\newcommand{\horizontalLine}{{\color{gray}\rule{\textwidth}{0.2pt}}} 

\setminted{breaklines, breaksymbolleft=\hspace{2em}, frame=single}

Et pour le fichier de test.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
\documentclass{ZdsClass}
   
\title{Titre}
\author{Auteur}
\licence{CC-BY-NC-ND}
\logo{logo.png}
   
\begin{document}
\maketitle
\tableofcontents

\addsec{Introcution}
   Bonjour à tous,

   Ce message s’adresse principalement aux bon connaisseurs de LaTeX : l’équipe de développement a besoin de vous !
\section{Contexte}
   Nous travaillons actuellement sur la refonte de l’outils qui gère la partie MarkDown -> autres formats et nous souhaitons refaire le template actuel LaTeX. Nous utilisons celui de base de Pandoc or cet outil sera remplacé dans le futur. Nous cherchons donc quelques personnes pour nous aider dans la réalisation de macros pour chaque élément spécifique à ZdS.
   
   Si vous avez des questions et/ou si vous êtes intéressés, n’hésitez pas à passer sur IRC ou à laisser un message par ici

\subsection{Les éléments à faire}
   \subsubsection{Ensemble des éléments classiques}
      \begin{itemize}
         \item \textbf{Gras}
         \item \textit{Italique}
         \item \sout{Barré}
         \item Abbréviation\footnote{Abbréviation}
         \item Indice\textsubscript{X}
         \item Exposant\textsuperscript{2}
         \item Emojis
         \item \href{zestedesavoir.com}{liens}
      \end{itemize}
      \begin{flushleft}Texte aligné à gauche\end{flushleft}
      \begin{center}Texte centré\end{center}
      \begin{flushright}Texte aligné à droite\end{flushright}
      \begin{enumerate}
         \item Listes
         \item Liste numérotées
      \end{enumerate}
      
   \subsection{Titre}
   \subsubsection{De}
   \paragraph{Toute}
   \subparagraph{taille}
      La suite.
   \key{Touche} \key{A}
   On peut avoir une ligne avec
  
   \horizontalLine
  
   \section{Code}
      \verb|aaa| % On peut aussi utiliser mintinline pour avoir de la coloration syntaxique (mais il faut spécifier le langage).
   \begin{minted}{python}
def foo(bar):
    return 42
   \end{minted}
   
   \begin{Information}
      Bloc information
   \end{Information}
   \begin{Question}
      Bloc question
   \end{Question}
   \begin{Attention}
      Bloc attention
   \end{Attention}
   \begin{Erreur}
      Bloc erreur
   \end{Erreur}

   \begin{center}
      \includegraphics[max width = \linewidth]{img.jpg}
      \captionof{figure}{Légende}
   \end{center}
   
      \begin{longtabu}{|c|c|c|} \hline
         element & element & element\\ \hline
         element & element & element\\ \hline
         element & element & element\\ \hline
         element & element & element\\ \hline
         element & element & element\\ \hline
         element & element & element\\ \hline
         element & element & element\\ \hline
         element & element & element\\ \hline
         element & element & element\\ \hline
         element & element & element\\ \hline
         element & element & element\\ \hline
         element & element & element\\ \hline
         element & element & element\\ \hline
         element & element & element\\ \hline
         element & element & element\\ \hline
         element & element & element\\ \hline
         element & element & element\\ \hline
         element & element & element\\ \hline
         element & element & element\\ \hline
         element & element & element\\ \hline
         element & element & element\\ \hline
         element & element & element\\ \hline
         element & element & element\\ \hline
         element & element & element\\ \hline
         element & element & element\\ \hline
         element & element & element\\ \hline
         \caption{Légende}
      \end{longtabu}
   
   \addsec{Conclusion}
   Conclusion
\end{document}

Pour les points qui posent problème.

Image

Normalement, c’est OK grâce aux packages adjustbox et capt-of. Si la largeur de l’image est supérieure à celle de la ligne, on la réduit (pas besoin d’un environnement ZdSImage, même s’il peut être fait).

Tableaux

Avec tabu et longtable, les tableaux sont sur plusieurs pages facilement. Les cellules sur plusieurs lignes ou plusieurs colonnes se font également bien. Il manque l’apparence des tableaux (gris clair une ligne sur deux et lignes de titre en gris foncé), mais ça se gère bien avec la commande \cellcolor (je n’utilise pas \rowcolor qui a des problèmes avec les cellules multicolonnes). J’ai réussi à reproduire le tableau « compliqué » du tutoriel « Rédiger sur Zeste de Savoir ».

Autres

  • Les émoticônes ne sont pas là.
  • Les abréviations sont gérés par des notes de bas de page. Il y a aussi la possibilité (meilleure ?) d’utiliser un glossaire.
  • Le bloc citation n’est pas encore là, mais est simple à créer s’il doit avoir le même rendu que les autres blocs.
  • J’aime bien les spoilers à la fin du document, j’aime bien l’idée (c’est celle que j’utilise dans mon PDF du tutoriel Ruby). Avec des références, ça fonctionne bien.
+5 -0

Suis allé voir et j’ai regardé les issues. Pour réparer le bug des auteurs multiples, on peut boucler sur tous les auteurs (les auteurs seraient alors passés séparés par une virgule.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
\renewcommand{\maketitle}{%
    {\centering
    \vspace*{0.5 cm}
    \ifcsdef{@logo}{\includegraphics[width=0.6\linewidth]{\@logo}}{Pas de logo}\\[1.0 cm]
    \LARGE \renewcommand*{\do}[1]{\href{https://zestedesavoir.com/membres/voir/##1/}{\bsc{##1}} 
                                  \qquad}
           \expandafter\docsvlist\expandafter{\@author}\\[2.0 cm]
    \Large \href{https://zestedesavoir.com}{Zeste de Savoir}\\[0.5 cm] 
    \rule{\linewidth}{0.2 mm} \\[0.4 cm]
    \huge\textbf{\@title}\\
    \rule{\linewidth}{0.2 mm} \\[1.5 cm]  
    \large\textbf{Ce tutoriel est sous licence \@licence}\\[2 cm]}
}

À tester avec plusieurs auteurs (par exemple, \author{Karnaj, pierre_24}.

De même, le nom du site, son adresse et l’adresse pour avoir accès aux membres (ici « zestedesavoir.com/membres/voir ») peuvent être placés dans des paramètres.

Sinon, je ne suis pas trop d’accord pour utiliser \emph pour l’italique (je suis plutôt pour \textit) car \emph est là pour l’emphase et pas l’italique or chez nous, l’italique n’est pas utilisé seulement pour l’emphase (il y en a qui l’utilisent pour la traduction par exemple).

+0 -0

Suis allé voir et j’ai regardé les issues. Pour réparer le bug des auteurs multiples, on peut boucler sur tous les auteurs (les auteurs seraient alors passés séparés par une virgule) (..)

Je m’attendais à ce que la réponse ressemble à peu près à ça ! Je poste sur l’issue et résouds ça asap :)

De même, le nom du site, son adresse et l’adresse pour avoir accès aux membres (ici « zestedesavoir.com/membres/voir ») peuvent être placés dans des paramètres.

Indeed.

Sinon, je ne suis pas trop d’accord pour utiliser \emph pour l’italique (je suis plutôt pour \textit) car \emph est là pour l’emphase et pas l’italique or chez nous, l’italique n’est pas utilisé seulement pour l’emphase (il y en a qui l’utilisent pour la traduction par exemple).

Techniquement, tu as a tout à fait raison.

Salut,

Pour avoir fait beaucoup de LaTeX il y a quelques années, dans des conditions assez similaires1, j’ai tendance à dire que même avec un bon script, pour avoir un PDF de qualité, il faudra toujours une action humaine à un moment donné. Des noms de classes un peu longues qui ne vont pas à la ligne et qui dépassent, des tableaux avec trop de colonnes, etc.


  1. J’étais éditeur sur le SdZ, une partie de mon job consistait donc à convertir des tutos en livres via LaTeX. 

+5 -0

C’est évident qu’on ne peut rien (ou difficilement) faire contre ça. Le but ici, selon moi, serait néanmoins d’améliorer la qualité de ce qui est proposé actuellement, et je pense que ça va dans le bon sens. Et si on envisage une "vraie impression", ça fourni déjà une bonne base de travail (un fichier TeX compilable, là ou c’est même pas forcément le cas actuellement).

+2 -0

Salut,

Pour avoir fait beaucoup de LaTeX il y a quelques années, dans des conditions assez similaires1, j’ai tendance à dire que même avec un bon script, pour avoir un PDF de qualité, il faudra toujours une action humaine à un moment donné. Des noms de classes un peu longues qui ne vont pas à la ligne et qui dépassent, des tableaux avec trop de colonnes, etc.

John

Le but premier est surtout d’avoir un export pdf depuis le site et d’avoir un truc lisible. Pas avoir un pdf d’une qualité irréprochable prêt à imprimer :)


  1. J’étais éditeur sur le SdZ, une partie de mon job consistait donc à convertir des tutos en livres via LaTeX. 

@mes-2-VDD

Nous sommes bien d’accord, et c’est une très bonne chose. J’attirais juste l’attention sur le fait qu’un simple script seul, aussi bon soit-il, ne pourra jamais produire quelque chose de parfait dans 100% des cas. Et que dans certains cas, ça peut être pénalisant.

Après l’avantage, c’est qu’on est sur du collaboratif, donc que ce genre de problème peut être repéré et corrigé rapidement.

+1 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte