J'écris un livre en Markdown et j'aimerais créer un fichier PDF avec une mise en page personnalisée.

J'ai utilisé iA Writer pour l'écriture et je pensais m'en servir pour la génération PDF, sauf qu'il y a pas mal de limitations, je trouve, et l'une des plus problématiques est la génération d'une table des matières sans la numérotation des pages associées.

J'ai cherché d'autres solutions et celle qui me paraît la plus appropriée serait d'utiliser Pandoc en passant par un moteur qui utilise LaTeX.

Voilà pour le contexte.

La commande :

pandoc test.md --pdf-engine=xelatex --katex --from markdown+abbreviations+hard_line_breaks+mark+emoji --abbreviations=abbreviations.txt --metadata-file=metadata.yaml --template=template.tex -o livre.pdf

J'ai testé avec xelatex & lualatex, j'obtiens les mêmes résultats.

Pour le moment on ne va pas parler du fichier abbreviations=abbreviations.txt, ce n'est pas pris en compte.

Le Markdown :

J'ai supprimé les données pour faire quelque chose de très simple, 2 ou 3 titres et du texte généré Lorem ipsum. Ceci sans emphase ou autre, afin de vérifier que ce n'est pas mon texte initial qui pose problème.

Les problèmes

J'en ai deux que j'aimerais régler en priorité : 1. quand j'insère une couverture, qui devrait donc être la première page du livre, je me retrouve avec une page blanche, suivie de la couverture ; 2. La table des matières (toc) génère un titre , je n'arrive pas à comprendre le pourquoi du comment. J'ai essayé avec le flag --toc de la commande Pandoc, sans le template LaTeX, avec le template sans le flag, ou les deux, j'obtiens toujours le même résultat. Pour info ce titre s'ajoute avant* la toc, ce qui est vraiment bizarre.

J'ai fait le tour des iA, je n'ai pas trouvé de réponse pour régler ces soucis, d'où mon message ici. Pour info, je ne connais pas LaTeX, enfin du coup je le découvre maintenant en fait.

Voici le template qui est à la base extrait avec la commande Pandoc, puis modifié (principalement les modifications sont là où vous avez des commentaires) :

$passoptions.latex()$
\documentclass[
$for(babel-otherlangs)$
  $babel-otherlangs$,
$endfor$
$if(babel-lang)$
  $babel-lang$,
$endif$
$if(fontsize)$
  $fontsize$,
$endif$
$if(papersize)$
  $papersize$paper,
$endif$
$for(classoption)$
  $classoption$$sep$,
$endfor$
]{$documentclass$}
$if(beamerarticle)$
\usepackage{beamerarticle} % needs to be loaded first
$endif$
\usepackage{xcolor}
$if(geometry)$
\usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry}
$endif$
\usepackage{amsmath,amssymb}
$--
$-- section numbering
$--
$if(numbersections)$
\setcounter{secnumdepth}{$if(secnumdepth)$$secnumdepth$$else$5$endif$}
$else$
\setcounter{secnumdepth}{-\maxdimen} % remove section numbering
$endif$
$fonts.latex()$
$font-settings.latex()$
$common.latex()$
$for(header-includes)$
$header-includes$
$endfor$
$after-header-includes.latex()$
$hypersetup.latex()$

$if(title)$
\title{$title$$if(thanks)$\thanks{$thanks$}$endif$}
$endif$
$if(subtitle)$
\usepackage{etoolbox}
\makeatletter
\providecommand{\subtitle}[1]{% add subtitle to \maketitle
  \apptocmd{\@title}{\par {\large #1 \par}}{}{}
}
\makeatother
\subtitle{$subtitle$}
$endif$
\author{$for(author)$$author$$sep$ \and $endfor$}
\date{$date$}

% =============================
% Chargement des packages
% =============================
\usepackage{titlesec} % Personnalisation des styles de titres
\usepackage{textcase} % Conversion en majuscules
\usepackage{graphicx} % Pour gérer les images
\usepackage{xcolor}   % Gestion des couleurs
\usepackage{ifthen}   % Gestion des conditions

% =============================
% Gestion du compteur
% =============================
\setcounter{secnumdepth}{2}  % Définit le niveau de numérotation (H1 à H5)

% =============================
% Gestion des couvertures
% =============================
\newcommand{\insertcover}{
    \newgeometry{margin=0pt} % Définir des marges nulles pour la couverture
    \begin{titlepage}
        \includegraphics[width=\paperwidth,height=\paperheight]{$cover-image$}
    \end{titlepage}
    \restoregeometry % Restaurer les marges par défaut
}

\newcommand{\insertbackcover}{
    \newgeometry{margin=0pt} % Définir des marges nulles pour la quatrième de couverture
    \begin{titlepage}
        \includegraphics[width=\paperwidth,height=\paperheight]{$back-cover-image$}
    \end{titlepage}
    \restoregeometry % Restaurer les marges par défaut
}

% =============================
% Paramètres modifiables
% =============================
\definecolor{colorH1}{RGB}{240, 36, 32}

\newcommand{\TitleUppercase}{true}      % Mettre les titres en majuscules (true/false)
\newcommand{\TitleNumbering}{true}      % Activer la numérotation automatique (true/false)
\newcommand{\HOneColor}{colorH1}        % Couleur pour les titres H1
\newcommand{\HTwoColor}{black}          % Couleur pour les titres H2
\newcommand{\HThreeColor}{black}        % Couleur pour les titres H3
\newcommand{\HFourColor}{black}         % Couleur pour les titres H4
\newcommand{\HFiveColor}{black}         % Couleur pour les titres H5

% =============================
% Fonction pour la mise en majuscules
% =============================
\newcommand{\TitleFormat}[1]{%
    \ifthenelse{\equal{\TitleUppercase}{true}}{\MakeUppercase{#1}}{#1}%
}

% =============================
% Configuration de la police principale
% =============================
\usepackage{fontspec} % Permet d'utiliser des polices personnalisées avec LuaLaTeX
\setmainfont{Playfair Display}
%\setmainfont{Playfair Display}[
%   ItalicFont={Playfair Display Italic},
%   BoldFont={Playfair Display Bold},
%   BoldItalicFont={Playfair Display Bold Italic}
%]

\renewcommand{\baselinestretch}{1.2} % Paramètre de l'interligne

% =============================
% Configuration des polices pour les titres
% =============================
\newfontfamily\hOneFont{Russo One}    % Police pour les titres H1
\newfontfamily\hTwoFont{Russo One}    % Police pour les titres H2
\newfontfamily\hThreeFont{Russo One}  % Police pour les titres H3
\newfontfamily\hFourFont{Russo One}   % Police pour les titres H4
\newfontfamily\hFiveFont{Russo One}   % Police pour les titres H5
% Pas de titre natif H6 avec LaTex

% =============================
% Définition des styles des titres
% =============================
% ---- TITRE H1 ----
\titleformat{\section}
  [block]                                                       % Bloc pour prendre toute la ligne
  {\hOneFont\fontsize{32pt}{36pt}\bfseries\color{\HOneColor}}   % Police et couleur
  {\ifthenelse{\equal{\TitleNumbering}{true}}{\thesection\hspace{-0.5em}}{}}   % Numérotation si activée
  {1em}                                                         % Espacement
  {\TitleFormat}                                                % Mise en majuscule

% ---- TITRE H2 ----
\titleformat{\subsection}
  {\hTwoFont\fontsize{24pt}{28pt}\bfseries\color{\HTwoColor}}
  {\ifthenelse{\equal{\TitleNumbering}{true}}{\thesubsection\hspace{-0.5em}}{}} 
  {1em}
  {\TitleFormat}

% ---- TITRE H3 ----
\titleformat{\subsubsection}
  {\hThreeFont\fontsize{18pt}{22pt}\bfseries}  
  {\thesubsubsection}{1em}{}

% ---- TITRE H4 ----
\titleformat{\paragraph}
  {\hFourFont\fontsize{16pt}{20pt}\bfseries}  
  {\theparagraph}{1em}{}

% ---- TITRE H5 ----
\titleformat{\subparagraph}
  {\hFiveFont\fontsize{14pt}{18pt}\bfseries}  
  {\thesubparagraph}{1em}{}

% =============================
% Gestion des marges et de la mise en page
% =============================
\usepackage[strict]{changepage} % Gestion avancée des marges
\usepackage{geometry} % Définition des marges

\geometry{twoside,
  inner=24mm,        % Marge intérieure (côté reliure)
  outer=24mm,        % Marge extérieure
  top=24mm,          % Marge supérieure
  bottom=40mm,       % Marge inférieure
  footskip=16mm,     % Distance entre le texte et le numéro de page
  bindingoffset=6mm  % Décalage pour la reliure
}

% Définit l'espace entre le texte et les notes de bas de page
\renewcommand{\footnoterule}{\vspace{18pt}\hrule width 0.3\textwidth \vspace{5pt}}

% =============================
% Gestion des numéros de pages
% =============================
\usepackage{fancyhdr} % Personnalisation des en-têtes et pieds de page
\pagestyle{fancy} % Activation du style personnalisé
\fancyhf{} % Efface les en-têtes et pieds de page par défaut
\fancyfoot[LE,RO]{\thepage} % Numérotation à gauche sur pages impaires et à droite sur pages paires
\renewcommand{\headrulewidth}{0pt} % Supprime la ligne d'en-tête
\renewcommand{\footrulewidth}{0pt} % Supprime la ligne de pied de page

% =============================
% Gestion des titres H1 : saut de page + en-tête
% =============================
\let\oldsection\section
\renewcommand{\section}[1]{%
    \cleardoublepage  % Saut de page avant le H1
    \sectionmark{#1}  % Stocke le titre H1 pour l'en-tête
    \fancyhead[C]{}  % Supprime l'en-tête sur la page du H1
    {\oldsection{#1}}  % Affiche le titre H1 normalement
    \thispagestyle{empty}  % Supprime l'en-tête et la pagination sur cette page
    \fancyhead[C]{\fontsize{10pt}{12pt}\selectfont #1}  % Remet le titre H1 en en-tête pour les pages suivantes
    \clearpage  % Saut de page après le H1
}

% =============================
% Mise en forme du code inline et des blocs de code
% =============================

% Charger le package pour la coloration et le fond des blocs de code
\usepackage[listings, skins, breakable]{tcolorbox} % Chargement avec les bonnes options

% Définition de la police Hack pour le code
\newfontfamily\codeFont{Hack} % Définit Hack comme police monospacée

% Appliquer Hack comme police principale pour le code
\renewcommand{\ttdefault}{lmtt} % Corrige la police de \texttt
\lstset{basicstyle=\codeFont\small} % Applique Hack aux listings

% =============================
% Blocs de code (fond gris, arrondi, police Hack)
% =============================
\newtcblisting{codeblock}{
    colback=gray!10, % Fond gris clair
    colframe=black,  % Bordure noire
    arc=4pt, % Coins arrondis (4px)
    boxrule=0.5pt, % Épaisseur de la bordure
    listing only, % Pas d'espace supplémentaire
    breakable, % Autoriser la coupure sur plusieurs pages
    fontupper=\codeFont, % Appliquer Hack
}

% Appliquer ce style aux environnements verbatim
\let\oldverbatim\verbatim
\renewcommand{\verbatim}{\codeblock}

% =============================
% Code inline (fond gris, arrondi, police Hack)
% =============================
\renewcommand{\texttt}[1]{%
    \tcbox[colback=gray!10, arc=4pt, boxrule=0pt, 
    left=4pt, right=4pt, top=0pt, bottom=0pt, boxsep=2pt, on line]{\codeFont #1}
}

\begin{document}

\pagestyle{empty} % Supprime les numéros de page pour la couverture et la page blanche suivante

% Insérer la couverture en première page
\insertcover
\clearpage

% Ajouter une seule page blanche après la couverture
\mbox{}

% Réactiver le style de page mais sans afficher le numéro sur cette page blanche
\pagestyle{empty}
\pagenumbering{arabic}
\setcounter{page}{1}

% Afficher les numéros de page à partir de la première vraie page du contenu
\clearpage
\pagestyle{fancy}

$if(has-frontmatter)$
\frontmatter
$endif$
$if(title)$
\maketitle
$if(abstract)$
\begin{abstract}
$abstract$
\end{abstract}
$endif$
$endif$

$for(include-before)$
$include-before$

$endfor$
$if(toc)$
$if(toc-title)$
\renewcommand*\contentsname{$toc-title$}
$endif$
{
$if(colorlinks)$
\hypersetup{linkcolor=$if(toccolor)$$toccolor$$else$$endif$}
$endif$
\setcounter{tocdepth}{$toc-depth$}
\tableofcontents
}
$endif$
$if(lof)$
\listoffigures
$endif$
$if(lot)$
\listoftables
$endif$
$if(linestretch)$
\setstretch{$linestretch$}
$endif$
$if(has-frontmatter)$
\mainmatter
$endif$

% Contenu principal
$body$

$if(has-frontmatter)$
\backmatter
$endif$
$if(nocite-ids)$
\nocite{$for(nocite-ids)$$it$$sep$, $endfor$}
$endif$
$if(natbib)$
$if(bibliography)$
$if(biblio-title)$
$if(has-chapters)$
\renewcommand\bibname{$biblio-title$}
$else$
\renewcommand\refname{$biblio-title$}
$endif$
$endif$
\bibliography{$for(bibliography)$$bibliography$$sep$,$endfor$}

$endif$
$endif$
$if(biblatex)$
\printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$

$endif$
$for(include-after)$
$include-after$

$endfor$

\newpage  % Nouvelle page avant la dernière couverture
\insertbackcover

\end{document}

Si quelqu'un pouvait me donner au moins des pistes ou des conseils, ça serait formidable :)

Posée 28 Fév, 13:54

LaTeXBold's gravatar image

LaTeXBold
113
Taux d'acceptation : 0%

Modifiée 02 Mar, 11:31

Pathe's gravatar image

Pathe ♦♦
7.6k49208252

Je pense que la sources des problème est --template=template.tex dans votre commande. Je ne sais pas comment fonctionne panadoc à ce niveau, mais vous pouvez commencer par modifier ce fichier, puis recommence.

(01 Mar, 13:21) touhami touhami's gravatar image

Par exemple, pour le titre de TOC vous pouvez enlever la partie que vous avez détecter ci-dessous: % Gestion des titres H1 : saut de page + en-tête ....

(01 Mar, 13:21) touhami touhami's gravatar image

Pour la couverture ajouter \noindent comme suit

\newcommand{\insertcover}{ \newgeometry{margin=0pt} % Définir des marges nulles pour la couverture \begin{titlepage} \noindent\includegraphics[width=.99\paperwidth,height=.99\paperheight]{$cover-image$} \end{titlepage} \restoregeometry % Restaurer les marges par défaut }

(01 Mar, 13:21) touhami touhami's gravatar image

Oui c'est bien le bloc de gestion des titres H1 qui pose souci et plus particulièrement cette ligne : {oldsection{#1}} % Affiche le titre H1 normalement

Je cherche une solution pour voir si je peux le remplacer par une autre commande.

(01 Mar, 14:32) LaTeXBold LaTeXBold's gravatar image

Avez vous essayer de supprimer (totalement) cette partie?

(02 Mar, 11:06) touhami touhami's gravatar image

@LaTeXBold : les formules de politesse et les signatures sont à éviter : celles de votre contribution ont été supprimées. Et l'usage met un X majuscule à LaTeX !

(02 Mar, 11:33) Pathe ♦♦ Pathe's gravatar image

Oui, je suis reparti de 0 et maintenant c'est OK pour la toc, je n'ai plus ce titre * venu de nul part. J'ai essayé votre code pour la couverture, ça fonctionne, ce qui me gêne un peu c'est que je me retrouve avec des zones blanches. Je dois vérifier que ça ne vienne pas de mon lecteur. Effectivement si je met 1 à la place des .99 je retrouve une page blanche en premier.

(02 Mar, 16:50) LaTeXBold LaTeXBold's gravatar image
Affichage de 5 parmi 7 Afficher 2 commentaire(s) en plus

12Suivant »

Vous pouvez toujours procéder par étapes en commençant par une commande simple telle que

$ pandoc test.md --pdf-engine=lualatex -o test.pdf

Et en continuant en ajoutant petit à petit plus d'options afin de découvrir les points bloquants.

Lien permanent

Publiée 28 Fév, 19:24

polymorphisme's gravatar image

polymorphisme
592925
Taux d'acceptation : 50%

Alors oui, mais j'ai oublié de préciser que si je suis ici c'est parce que je pense que le problème vient du template LaTeX. Soit dans l'ordre des instructions, soit des conflits dans le fichier ?

Si je fais votre commande, évidemment ça fonctionne, mais je perd tous les réglages (y compris la toc) que j'ai introduit dans le template personnalisé. Au minimum, je suis obligé de faire cette commande :

pandoc test.md --pdf-engine=xelatex --from markdown+hard_line_breaks+mark --metadata-file=metadata.yaml --template=template.tex -o livre.pdf

Et dans cette configuration j'ai la toc avec ce titre sorti de nulle part...

J'ai oublié de partager le fichier YAML (l'iA m'a fait modifier des éléments, mais a priori ce n'est pas ce fichier qui pose souci) :

lang: FR-fr
fontsize: 12pt
csquotes: true
toc: true
toc-title: "Table des matières"
cover-image: "cover.png"  # Image pour la couverture (1ère de couverture)
back-cover-image: "backcover.png"  # Image pour la 4ème de couverture
header-includes:
  - \frenchbsetup{AutoSpacePunctuation=true}
Lien permanent

Publiée 28 Fév, 22:04

LaTeXBold's gravatar image

LaTeXBold
113
Taux d'acceptation : 0%

Modifiée 02 Mar, 11:34

Pathe's gravatar image

Pathe ♦♦
7.6k49208252

J'ai trouvé le code coupable du titre * :

% =============================
% Gestion des titres H1 : saut de page + en-tête
% =============================
\let\oldsection\section
\renewcommand{\section}[1]{%
    \cleardoublepage  % Saut de page avant le H1
    \sectionmark{#1}  % Stocke le titre H1 pour l'en-tête
    \fancyhead[C]{}  % Supprime l'en-tête sur la page du H1
    {\oldsection{#1}}  % Affiche le titre H1 normalement
    \thispagestyle{empty}  % Supprime l'en-tête et la pagination sur cette page
    \fancyhead[C]{\fontsize{10pt}{12pt}\selectfont #1}  % Remet le titre H1 en en-tête pour les pages suivantes
    \clearpage  % Saut de page après le H1
}

Il est tard, mais je ne vois pas ce qui « invente » ce titre...

Lien permanent

Publiée 01 Mar, 02:57

LaTeXBold's gravatar image

LaTeXBold
113
Taux d'acceptation : 0%

Modifiée 02 Mar, 11:35

Pathe's gravatar image

Pathe ♦♦
7.6k49208252

OK, alors j'ai réglé l'histoire de cette étoile qui venait s'incruster dans la toc. En gros la solution vient du fait qu'un seul bloc de code gérait les titres H1 et la toc. J'ai fait une séparation, H1 d'un côté et toc de l'autre et je n'ai plus de problème.

J'ai ce code qui répond à ce que je souhaitais dès le départ :

% =============================
% Gestion des titres H1 : saut de page + en-tête
% =============================
\let\oldsection\section
\newcommand{\HOneFormat}[1]{% Définit le format des H1
    \cleardoublepage  % Saut de page avant H1 (sur page droite uniquement)
    \sectionmark{#1}  % Stocke le titre H1 pour l'en-tête
    \fancyhead[C]{}  % Supprime l'en-tête sur la page du H1
    {\color{\HOneColor}\hOneFont\fontsize{28pt}{30pt}\bfseries #1}  % Applique couleur + police
    \thispagestyle{empty}  % Supprime numérotation et en-tête sur cette page
    \fancyhead[C]{\fontsize{10pt}{12pt}\selectfont #1}  % Remet le titre H1 dans l'en-tête des pages suivantes
    \clearpage  % Saut de page après le H1
}

Mon document commence donc par la toc (j'ai laissé tomber les couvertures pour le moment afin de me concentrer sur ce problème), ensuite j'ai une page blanche, puis le contenu de mon document.

J'aimerais ajouter une condition dans le template : - tout titre H2 qui se trouve à la suite d'un titre H1 se voit ajouter d'un saut de page, ceci afin d'avoir le titre H1 (et éventuellement du contenu) sur une page blanche unique, suivi du reste du document sur une nouvelle page...

Idem, j'ai essayé d'ajouter cette condition, mais pour le moment je reviens en arrière, c'est à dire qu'une étoile revient ou alors des pages blanches etc.

EDIT :

Éventuellement, j'aimerais (comme iA Writer) utiliser dans le fichier Markdown la combinaison suivante : +++ pour y insérer un saut de page. La réponse de Deep Seek serait de passer par un filtre, mais a priori celui-ci ne fonctionne pas. Qu'en pensez-vous ?

function RawBlock(el)
    if el.text == "+++" then
        return pandoc.RawBlock('latex', '\\newpage')
    end
end
Lien permanent

Publiée 01 Mar, 18:19

LaTeXBold's gravatar image

LaTeXBold
113
Taux d'acceptation : 0%

Modifiée 02 Mar, 11:38

Pathe's gravatar image

Pathe ♦♦
7.6k49208252

@LaTeXBold : les formules de politesse et les signatures sont à éviter : celles de votre contribution ont été supprimées.

(02 Mar, 11:38) Pathe ♦♦ Pathe's gravatar image

Essayer ce code:

% ---- TITRE H2 ---- \titleformat{\subsection} {\ifnum\value{subsection}=1\newpage\fi\hTwoFont\fontsize{24pt}{28pt}\bfseries\color{\HTwoColor}} {\ifthenelse{\equal{\TitleNumbering}{true}}{\thesubsection\hspace{-0.5em}}{}} {1em} {\TitleFormat}

(02 Mar, 13:19) touhami touhami's gravatar image

J'ai ce code :

% =============================
% Gestion des titres H1 : saut de page + en-tête
% =============================
\let\oldsection\section
\newcommand{\HOneFormat}[1]{% Définit le format des H1
    \cleardoublepage  % Saut de page avant H1 (sur page droite uniquement)
    \sectionmark{#1}  % Stocke le titre H1 pour l'en-tête
    \fancyhead[C]{}  % Supprime l'en-tête sur la page du H1
    {\color{\HOneColor}\hOneFont\fontsize{28pt}{30pt}\bfseries #1}  % Applique couleur + police
    \thispagestyle{empty}  % Supprime numérotation et en-tête sur cette page
    \fancyhead[C]{\fontsize{10pt}{12pt}\selectfont #1}  % Remet le titre H1 dans l'en-tête des pages suivantes
    \clearpage  % Saut de page après le H1
}

Ca fonctionné, mais depuis les dernières modifications je n'ai plus le titre du H1 au niveau des header de chaque page qui le suive (effectivement je ne souhaite pas de header sur la page où est le titre H1, mais sur les autres). Pourtant il y a bien une mise en mémoire du titre... ?

EDIT : voici le template avec les dernières mise à jour (couverture - OK, toc - OK)

$passoptions.latex()$
\documentclass[
$for(babel-otherlangs)$
  $babel-otherlangs$,
$endfor$
$if(babel-lang)$
  $babel-lang$,
$endif$
$if(fontsize)$
  $fontsize$,
$endif$
$if(papersize)$
  $papersize$paper,
$endif$
$for(classoption)$
  $classoption$$sep$,
$endfor$
]{$documentclass$}
$if(beamerarticle)$
\usepackage{beamerarticle} % needs to be loaded first
$endif$
\usepackage{xcolor}
$if(geometry)$
\usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry}
$endif$
\usepackage{amsmath,amssymb}
$--
$-- section numbering
$--
$if(numbersections)$
\setcounter{secnumdepth}{$if(secnumdepth)$$secnumdepth$$else$5$endif$}
$else$
\setcounter{secnumdepth}{-\maxdimen} % remove section numbering
$endif$
$fonts.latex()$
$font-settings.latex()$
$common.latex()$
$for(header-includes)$
$header-includes$
$endfor$
$after-header-includes.latex()$
$hypersetup.latex()$

$if(title)$
\title{$title$$if(thanks)$\thanks{$thanks$}$endif$}
$endif$
$if(subtitle)$
\usepackage{etoolbox}
\makeatletter
\providecommand{\subtitle}[1]{% add subtitle to \maketitle
  \apptocmd{\@title}{\par {\large #1 \par}}{}{}
}
\makeatother
\subtitle{$subtitle$}
$endif$
\author{$for(author)$$author$$sep$ \and $endfor$}
\date{$date$}

% =============================
% Chargement des packages
% =============================
\usepackage{titlesec} % Personnalisation des styles de titres
\usepackage{textcase} % Conversion en majuscules
\usepackage{graphicx} % Pour gérer les images
\usepackage{xcolor}   % Gestion des couleurs
\usepackage{ifthen}   % Gestion des conditions

% =============================
% Gestion du compteur
% =============================
\setcounter{secnumdepth}{2}  % Définit le niveau de numérotation (H1 à H5)

% =============================
% Gestion des couvertures
% =============================

\newcommand{\insertcover}{
    \newgeometry{margin=0pt} % Définir des marges nulles pour la couverture
    \begin{titlepage}
        \noindent\includegraphics[width=1\paperwidth,height=1\paperheight]{$cover-image$}
    \end{titlepage}
    \restoregeometry % Restaurer les marges par défaut
}

\newcommand{\insertbackcover}{
    \newgeometry{margin=0pt} % Définir des marges nulles pour la quatrième de couverture
    \begin{titlepage}
        \includegraphics[width=\paperwidth,height=\paperheight]{$back-cover-image$}
    \end{titlepage}
    \restoregeometry % Restaurer les marges par défaut
}

% =============================
% Paramètres modifiables
% =============================
\definecolor{colorH1}{RGB}{240, 36, 32}

\newcommand{\TitleUppercase}{true}      % Mettre les titres en majuscules (true/false)
\newcommand{\TitleNumbering}{true}      % Activer la numérotation automatique (true/false)
\newcommand{\HOneColor}{colorH1}        % Couleur pour les titres H1
\newcommand{\HTwoColor}{black}          % Couleur pour les titres H2
\newcommand{\HThreeColor}{black}        % Couleur pour les titres H3
\newcommand{\HFourColor}{black}         % Couleur pour les titres H4
\newcommand{\HFiveColor}{black}         % Couleur pour les titres H5

% =============================
% Fonction pour la mise en majuscules
% =============================
\newcommand{\TitleFormat}[1]{%
    \ifthenelse{\equal{\TitleUppercase}{true}}{\MakeUppercase{#1}}{#1}%
}

% =============================
% Configuration de la police principale
% =============================
\usepackage{fontspec} % Permet d'utiliser des polices personnalisées avec LuaLaTeX
\setmainfont{Playfair Display}
%\setmainfont{Playfair Display}[
%   ItalicFont={Playfair Display Italic},
%   BoldFont={Playfair Display Bold},
%   BoldItalicFont={Playfair Display Bold Italic}
%]

\renewcommand{\baselinestretch}{1.2} % Paramètre de l'interligne

% =============================
% Configuration des polices pour les titres
% =============================
\newfontfamily\hOneFont{Russo One}    % Police pour les titres H1
\newfontfamily\hTwoFont{Russo One}    % Police pour les titres H2
\newfontfamily\hThreeFont{Russo One}  % Police pour les titres H3
\newfontfamily\hFourFont{Russo One}   % Police pour les titres H4
\newfontfamily\hFiveFont{Russo One}   % Police pour les titres H5
% Pas de titre natif H6 avec LaTex

% =============================
% Définition des styles des titres
% =============================
% ---- TITRE H1 ----
\titleformat{\section}
  [block]                                                       % Bloc pour prendre toute la ligne
  {\hOneFont\fontsize{32pt}{36pt}\bfseries\color{\HOneColor}}   % Police et couleur
  {\ifthenelse{\equal{\TitleNumbering}{true}}{\thesection\hspace{-0.5em}}{}}   % Numérotation si activée
  {1em}                                                         % Espacement
  {\TitleFormat}                                                % Mise en majuscule

% ---- TITRE H2 ----
  \titleformat{\subsection}
    {\ifnum\value{subsection}=1\newpage\fi\hTwoFont\fontsize{24pt}{28pt}\bfseries\color{\HTwoColor}}
    {\ifthenelse{\equal{\TitleNumbering}{true}}{\thesubsection\hspace{-0.5em}}{}} 
    {1em}
    {\TitleFormat}

% ---- TITRE H3 ----
\titleformat{\subsubsection}
  {\hThreeFont\fontsize{18pt}{22pt}\bfseries}  
  {\thesubsubsection}{1em}{}

% ---- TITRE H4 ----
\titleformat{\paragraph}
  {\hFourFont\fontsize{16pt}{20pt}\bfseries}  
  {\theparagraph}{1em}{}

% ---- TITRE H5 ----
\titleformat{\subparagraph}
  {\hFiveFont\fontsize{14pt}{18pt}\bfseries}  
  {\thesubparagraph}{1em}{}

% =============================
% Gestion des titres H1 : saut de page + en-tête
% =============================
\let\oldsection\section
\newcommand{\HOneFormat}[1]{% Définit le format des H1
    \cleardoublepage  % Saut de page avant H1 (sur page droite uniquement)
    \sectionmark{#1}  % Stocke le titre H1 pour l'en-tête
    \fancyhead[C]{}  % Supprime l'en-tête sur la page du H1
    {\color{\HOneColor}\hOneFont\fontsize{28pt}{30pt}\bfseries #1}  % Applique couleur + police
    \thispagestyle{empty}  % Supprime numérotation et en-tête sur cette page
    \fancyhead[C]{\fontsize{10pt}{12pt}\selectfont #1}  % Remet le titre H1 dans l'en-tête des pages suivantes
    \clearpage  % Saut de page après le H1
}

% =============================
% Gestion des marges et de la mise en page
% =============================
\usepackage[strict]{changepage} % Gestion avancée des marges
\usepackage{geometry} % Définition des marges

\geometry{twoside,
  inner=24mm,        % Marge intérieure (côté reliure)
  outer=24mm,        % Marge extérieure
  top=24mm,          % Marge supérieure
  bottom=40mm,       % Marge inférieure
  footskip=16mm,     % Distance entre le texte et le numéro de page
  bindingoffset=6mm  % Décalage pour la reliure
}

% Définit l'espace entre le texte et les notes de bas de page
\renewcommand{\footnoterule}{\vspace{18pt}\hrule width 0.3\textwidth \vspace{5pt}}

% =============================
% Gestion des numéros de pages
% =============================
\usepackage{fancyhdr} % Personnalisation des en-têtes et pieds de page
\pagestyle{fancy} % Activation du style personnalisé
\fancyhf{} % Efface les en-têtes et pieds de page par défaut
\fancyfoot[LE,RO]{\thepage} % Numérotation à gauche sur pages impaires et à droite sur pages paires
\renewcommand{\headrulewidth}{0pt} % Supprime la ligne d'en-tête
\renewcommand{\footrulewidth}{0pt} % Supprime la ligne de pied de page

\begin{document}

% Insérer la couverture en première page
\insertcover

$if(has-frontmatter)$
\frontmatter
$endif$
$if(title)$
\maketitle
$if(abstract)$
\begin{abstract}
$abstract$
\end{abstract}
$endif$
$endif$

$for(include-before)$
$include-before$

$endfor$

$if(toc)$
\cleardoublepage
\section*{$toc-title$}  % Affiche "Table des matières" sans numérotation
\addtocontents{toc}{\protect\vspace{20mm}} % Espace entre le titre et la toc
%\addcontentsline{toc}{section}{$toc-title$} % Ajoute la TOC elle-même dans la TOC
\tableofcontents
\cleardoublepage % Ajoute une nouvelle page après la TOC
$endif$

$if(lof)$
\listoffigures
$endif$
$if(lot)$
\listoftables
$endif$
$if(linestretch)$
\setstretch{$linestretch$}
$endif$
$if(has-frontmatter)$
\mainmatter
$endif$
$body$

$if(has-frontmatter)$
\backmatter
$endif$
$if(nocite-ids)$
\nocite{$for(nocite-ids)$$it$$sep$, $endfor$}
$endif$
$if(natbib)$
$if(bibliography)$
$if(biblio-title)$
$if(has-chapters)$
\renewcommand\bibname{$biblio-title$}
$else$
\renewcommand\refname{$biblio-title$}
$endif$
$endif$
\bibliography{$for(bibliography)$$bibliography$$sep$,$endfor$}

$endif$
$endif$
$if(biblatex)$
\printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$

$endif$
$for(include-after)$
$include-after$

$endfor$

\newpage  % Nouvelle page avant la dernière couverture
\insertbackcover

\end{document}
Lien permanent

Publiée 02 Mar, 16:55

LaTeXBold's gravatar image

LaTeXBold
113
Taux d'acceptation : 0%

Modifiée 02 Mar, 18:58

Pourriez-vous poster le code final de template.tex que vous utilisez?

(02 Mar, 18:00) touhami touhami's gravatar image

J'ai ajouté le dernier code du template, par contre je viens de m'apercevoir que j'ai "perdu" le gras. C'est à dire qu'avec le Markdown, j'ai soit de l'italique, du gras ou les deux, et là uniquement l'italique fonctionne.

Pourtant j'ai réactiver les lignes sur la police (Playfair Display) et j'ai un message d'erreur comme quoi il ne trouve pas la font : Playfair Display Bold. Alors qu'elle existe bien et est installé. (par contre c'est une font variable, ça doit être pour cela).

(03 Mar, 00:13) LaTeXBold LaTeXBold's gravatar image

Je suis désolé pour la réponse tardive. Voici quelques remarques:

Pour la couverture:

\noindent\includegraphics[width=\paperwidth,height=\paperheight,keepaspectratio]{$cover-image$}

Pour l'entête:

% =============================
% Gestion des numéros de pages
% =============================
\usepackage{fancyhdr} % Personnalisation des en-têtes et pieds de page
\fancyhf{} % Efface les en-têtes et pieds de page par défaut
\fancyhead[C]{\fontsize{10pt}{12pt}\selectfont\leftmark}
\fancyfoot[LE,RO]{\thepage} % Numérotation à gauche sur pages impaires et à droite sur pages paires
\pagestyle{fancy} % Activation du style personnalisé
\renewcommand{\headrulewidth}{0pt} % Supprime la ligne d'en-tête
\renewcommand{\footrulewidth}{0pt} % Supprime la ligne de pied de page

Pour les styles des différents titres:

% =============================
% Définition des styles des titres
% =============================
% ---- TITRE H1 ----
\titleformat{\chapter}
  [block]                                                       % Bloc pour prendre toute la ligne
  {\hOneFont\fontsize{32pt}{36pt}\bfseries\color{\HOneColor}}   % Police et couleur
  {\ifthenelse{\equal{\TitleNumbering}{true}}{\thechapter\hspace{-0.5em}}{}}   % Numérotation si activée
  {1em}                                                         % Espacement
  {\TitleFormat}                                                % Mise en majuscule

% ---- TITRE H2 ----
\titleformat{\section}
  {\hTwoFont\fontsize{24pt}{28pt}\bfseries\color{\HTwoColor}}
  {\ifthenelse{\equal{\TitleNumbering}{true}}{\thesection\hspace{-0.5em}}{}} 
  {1em}
  {\TitleFormat}

% ---- TITRE H3 ----
\titleformat{\subsection}
  {\hThreeFont\fontsize{18pt}{22pt}\bfseries}  
  {\thesubsection}{1em}{}

% ---- TITRE H4 ----
\titleformat{\subsubsection}
  {\hFourFont\fontsize{16pt}{20pt}\bfseries}  
  {\thesubsubsection}{1em}{}

% ---- TITRE H5 ----
\titleformat{\paragraph}
  {\hFiveFont\fontsize{14pt}{18pt}\bfseries}  
  {\theparagraph}{1em}{}

Ici le niveau H1 doit normalement être chapter et il faut préciser au niveau de votre document Markdown (ou dans le fichier YAML) qu'il s'agit de la classe book. Par exemple dans le fichier test.md

---
title: "Example PDF"
author: [Author]
date: "2025-03-04"
subject: "Markdown"
book: true
...

Voici maintenant le code complet de fichier template.tex

$passoptions.latex()$
\documentclass[
$for(babel-otherlangs)$
  $babel-otherlangs$,
$endfor$
$if(babel-lang)$
  $babel-lang$,
$endif$
$if(fontsize)$
  $fontsize$,
$endif$
$if(papersize)$
  $papersize$paper,
$endif$
$for(classoption)$
  $classoption$$sep$,
$endfor$
]{$documentclass$}
$if(beamerarticle)$
\usepackage{beamerarticle} % needs to be loaded first
$endif$
\usepackage{xcolor}
$if(geometry)$
\usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry}
$endif$
\usepackage{amsmath,amssymb}
$--
$-- section numbering
$--
$if(numbersections)$
\setcounter{secnumdepth}{$if(secnumdepth)$$secnumdepth$$else$5$endif$}
$else$
\setcounter{secnumdepth}{-\maxdimen} % remove section numbering
$endif$
$fonts.latex()$
$font-settings.latex()$
$common.latex()$
$for(header-includes)$
$header-includes$
$endfor$
$after-header-includes.latex()$
$hypersetup.latex()$

$if(title)$
\title{$title$$if(thanks)$\thanks{$thanks$}$endif$}
$endif$
$if(subtitle)$
\usepackage{etoolbox}
\makeatletter
\providecommand{\subtitle}[1]{% add subtitle to \maketitle
  \apptocmd{\@title}{\par {\large #1 \par}}{}{}
}
\makeatother
\subtitle{$subtitle$}
$endif$
\author{$for(author)$$author$$sep$ \and $endfor$}
\date{$date$}

% =============================
% Chargement des packages
% =============================
\usepackage{titlesec} % Personnalisation des styles de titres
\usepackage{textcase} % Conversion en majuscules
\usepackage{graphicx} % Pour gérer les images
\usepackage{xcolor}   % Gestion des couleurs
\usepackage{ifthen}   % Gestion des conditions

% =============================
% Gestion du compteur
% =============================
\setcounter{secnumdepth}{2}  % Définit le niveau de numérotation (H1 à H5)

% =============================
% Gestion des couvertures
% =============================
\newcommand{\insertcover}{
    \newgeometry{margin=0pt} % Définir des marges nulles pour la couverture
    \begin{titlepage}
        \noindent\includegraphics[width=\paperwidth,height=\paperheight,keepaspectratio]{$cover-image$}
    \end{titlepage}
    \restoregeometry % Restaurer les marges par défaut
}

\newcommand{\insertbackcover}{
    \newgeometry{margin=0pt} % Définir des marges nulles pour la quatrième de couverture
    \begin{titlepage}
        \noindent\includegraphics[width=\paperwidth,height=\paperheight,keepaspectratio]{$back-cover-image$}
    \end{titlepage}
    \restoregeometry % Restaurer les marges par défaut
}

% =============================
% Paramètres modifiables
% =============================
\definecolor{colorH1}{RGB}{240, 36, 32}

\newcommand{\TitleUppercase}{true}      % Mettre les titres en majuscules (true/false)
\newcommand{\TitleNumbering}{true}      % Activer la numérotation automatique (true/false)
\newcommand{\HOneColor}{colorH1}        % Couleur pour les titres H1
\newcommand{\HTwoColor}{black}          % Couleur pour les titres H2
\newcommand{\HThreeColor}{black}        % Couleur pour les titres H3
\newcommand{\HFourColor}{black}         % Couleur pour les titres H4
\newcommand{\HFiveColor}{black}         % Couleur pour les titres H5

% =============================
% Fonction pour la mise en majuscules
% =============================
\newcommand{\TitleFormat}[1]{%
    \ifthenelse{\equal{\TitleUppercase}{true}}{\MakeUppercase{#1}}{#1}%
}

% =============================
% Configuration de la police principale
% =============================
\usepackage{fontspec} % Permet d'utiliser des polices personnalisées avec LuaLaTeX
\setmainfont{Playfair Display}
%\setmainfont{Playfair Display}[
%   ItalicFont={Playfair Display Italic},
%   BoldFont={Playfair Display Bold},
%   BoldItalicFont={Playfair Display Bold Italic}
%]

\renewcommand{\baselinestretch}{1.2} % Paramètre de l'interligne

% =============================
% Configuration des polices pour les titres
% =============================
\newfontfamily\hOneFont{Russo One}    % Police pour les titres H1
\newfontfamily\hTwoFont{Russo One}    % Police pour les titres H2
\newfontfamily\hThreeFont{Russo One}  % Police pour les titres H3
\newfontfamily\hFourFont{Russo One}   % Police pour les titres H4
\newfontfamily\hFiveFont{Russo One}   % Police pour les titres H5
% Pas de titre natif H6 avec LaTex

% =============================
% Définition des styles des titres
% =============================
% ---- TITRE H1 ----
\titleformat{\chapter}
  [block]                                                       % Bloc pour prendre toute la ligne
  {\hOneFont\fontsize{32pt}{36pt}\bfseries\color{\HOneColor}}   % Police et couleur
  {\ifthenelse{\equal{\TitleNumbering}{true}}{\thechapter\hspace{-0.5em}}{}}   % Numérotation si activée
  {1em}                                                         % Espacement
  {\TitleFormat}                                                % Mise en majuscule

% ---- TITRE H2 ----
\titleformat{\section}
  {\hTwoFont\fontsize{24pt}{28pt}\bfseries\color{\HTwoColor}}
  {\ifthenelse{\equal{\TitleNumbering}{true}}{\thesection\hspace{-0.5em}}{}} 
  {1em}
  {\TitleFormat}

% ---- TITRE H3 ----
\titleformat{\subsection}
  {\hThreeFont\fontsize{18pt}{22pt}\bfseries}  
  {\thesubsection}{1em}{}

% ---- TITRE H4 ----
\titleformat{\subsubsection}
  {\hFourFont\fontsize{16pt}{20pt}\bfseries}  
  {\thesubsubsection}{1em}{}

% ---- TITRE H5 ----
\titleformat{\paragraph}
  {\hFiveFont\fontsize{14pt}{18pt}\bfseries}  
  {\theparagraph}{1em}{}

% =============================
% Gestion des marges et de la mise en page
% =============================
\usepackage[strict]{changepage} % Gestion avancée des marges
\usepackage{geometry} % Définition des marges

\geometry{twoside,
  inner=24mm,        % Marge intérieure (côté reliure)
  outer=24mm,        % Marge extérieure
  top=24mm,          % Marge supérieure
  bottom=40mm,       % Marge inférieure
  footskip=16mm,     % Distance entre le texte et le numéro de page
  bindingoffset=6mm  % Décalage pour la reliure
}

% Définit l'espace entre le texte et les notes de bas de page
\renewcommand{\footnoterule}{\vspace{18pt}\hrule width 0.3\textwidth \vspace{5pt}}

% =============================
% Gestion des numéros de pages
% =============================
\usepackage{fancyhdr} % Personnalisation des en-têtes et pieds de page
\fancyhf{} % Efface les en-têtes et pieds de page par défaut
\fancyhead[C]{\fontsize{10pt}{12pt}\selectfont\leftmark}
\fancyfoot[LE,RO]{\thepage} % Numérotation à gauche sur pages impaires et à droite sur pages paires
\pagestyle{fancy} % Activation du style personnalisé
\renewcommand{\headrulewidth}{0pt} % Supprime la ligne d'en-tête
\renewcommand{\footrulewidth}{0pt} % Supprime la ligne de pied de page

% =============================
% Mise en forme du code inline et des blocs de code
% =============================

% Charger le package pour la coloration et le fond des blocs de code
\usepackage[listings, skins, breakable]{tcolorbox} % Chargement avec les bonnes options

% Définition de la police Hack pour le code
\newfontfamily\codeFont{Hack} % Définit Hack comme police monospacée

% Appliquer Hack comme police principale pour le code
\renewcommand{\ttdefault}{lmtt} % Corrige la police de \texttt
\lstset{basicstyle=\codeFont\small} % Applique Hack aux listings

% =============================
% Blocs de code (fond gris, arrondi, police Hack)
% =============================
\newtcblisting{codeblock}{
    colback=gray!10, % Fond gris clair
    colframe=black,  % Bordure noire
    arc=4pt, % Coins arrondis (4px)
    boxrule=0.5pt, % Épaisseur de la bordure
    listing only, % Pas d'espace supplémentaire
    breakable, % Autoriser la coupure sur plusieurs pages
    fontupper=\codeFont, % Appliquer Hack
}

% Appliquer ce style aux environnements verbatim
\let\oldverbatim\verbatim
\renewcommand{\verbatim}{\codeblock}

% =============================
% Code inline (fond gris, arrondi, police Hack)
% =============================
\renewcommand{\texttt}[1]{%
    \tcbox[colback=gray!10, arc=4pt, boxrule=0pt, 
    left=4pt, right=4pt, top=0pt, bottom=0pt, boxsep=2pt, on line]{\codeFont #1}
}

\begin{document}

\pagestyle{empty} % Supprime les numéros de page pour la couverture et la page blanche suivante

% Insérer la couverture en première page
\insertcover
\clearpage

% Ajouter une seule page blanche après la couverture
\mbox{}

% Réactiver le style de page mais sans afficher le numéro sur cette page blanche
\pagestyle{empty}
\pagenumbering{arabic}
\setcounter{page}{1}

% Afficher les numéros de page à partir de la première vraie page du contenu
\clearpage
\pagestyle{fancy}

$if(has-frontmatter)$
\frontmatter
$endif$
$if(title)$
\maketitle
$if(abstract)$
\begin{abstract}
$abstract$
\end{abstract}
$endif$
$endif$

$for(include-before)$
$include-before$

$endfor$
$if(toc)$
$if(toc-title)$
\renewcommand*\contentsname{$toc-title$}
$endif$
{
$if(colorlinks)$
\hypersetup{linkcolor=$if(toccolor)$$toccolor$$else$$endif$}
$endif$
\setcounter{tocdepth}{$toc-depth$}
\tableofcontents
}
$endif$
$if(lof)$
\listoffigures
$endif$
$if(lot)$
\listoftables
$endif$
$if(linestretch)$
\setstretch{$linestretch$}
$endif$
$if(has-frontmatter)$
\mainmatter
$endif$

% Contenu principal
$body$

$if(has-frontmatter)$
\backmatter
$endif$
$if(nocite-ids)$
\nocite{$for(nocite-ids)$$it$$sep$, $endfor$}
$endif$
$if(natbib)$
$if(bibliography)$
$if(biblio-title)$
$if(has-chapters)$
\renewcommand\bibname{$biblio-title$}
$else$
\renewcommand\refname{$biblio-title$}
$endif$
$endif$
\bibliography{$for(bibliography)$$bibliography$$sep$,$endfor$}

$endif$
$endif$
$if(biblatex)$
\printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$

$endif$
$for(include-after)$
$include-after$

$endfor$

\newpage  % Nouvelle page avant la dernière couverture
\insertbackcover

\end{document}
Lien permanent

Publiée 07 Mar, 11:18

touhami's gravatar image

touhami
9.8k410
Taux d'acceptation : 51%

EDIT : Je n'avais pas vu la réponse précédente, je refais donc mon post.

J'ai repris le template entier et modifié, j'ai par contre perdu quelques éléments entre les 2 versions :

  1. Plus de toc "isolée", c'est à dire sur une page dédié, avec des pages blanches avant et après. Il y avait aussi une ligne qui permettait de régler l'espacement entre le titre de la toc et la toc elle-même qui n'est plus là et je n'arrive pas à la repositionner (sans prendre d'erreur). C'était ce code qui marchait très bien : $if(toc)$ \cleardoublepage \section*{$toc-title$} % Affiche "Table des matières" sans numérotation \addtocontents{toc}{\protect\vspace{20mm}} % Espace entre le titre et la toc %\addcontentsline{toc}{section}{$toc-title$} % Ajoute la TOC elle-même dans la TOC \tableofcontents \cleardoublepage % Ajoute une nouvelle page après la TOC $endif$
  2. Il n'y a plus la séparation entre le titre H1 et le premier H2 (j'ai récupéré le code indiqué plus haut, tenté de le modifier, mais je prends des erreurs lors de la compilation). C'était ce code qui marchait très bien : % ---- TITRE H2 ---- \titleformat{\subsection} {\ifnum\value{subsection}=1\newpage\fi\hTwoFont\fontsize{24pt}{28pt}\bfseries\color{\HTwoColor}} {\ifthenelse{\equal{\TitleNumbering}{true}}{\thesubsection\hspace{-0.5em}}{}} {1em} {\TitleFormat}
  3. Je n'ai plus de gras, mais ça je sais que cela vient des polices qui sont variable, donc soit il faut un "code" spécifique, soit je doit revenir sur des fonts qui ne sont pas variable ? (là aussi j'ai essayé différente chose pour prendre en compte les polices variables, mais ça ne fonctionne pas - elles sont bien installées et j'ai fait des commandes comme fc-list | grep "Playfair Display" pour le vérifier)
  4. Les titres H1 sont bien dans le header de chaque page, mais j'aimerais ne pas l'avoir dans la page du H1 et sans numérotation.
  5. Les blocs de code en ligne refonctionnent, mais pas les blocs de code.

J'ai modifié le fichier YAML, que voici :

lang: FR-fr
book: true
fontsize: 11pt
papersize: "190mm,230mm"
csquotes: true
toc: true
toc-title: "Table des matières"
cover-image: "cover.png"  # Image pour la couverture (1ère de couverture)
back-cover-image: "backcover.png"  # Image pour la 4ème de couverture

Concernant la ligne papersize: "190mm,230mm", je prends un message [WARNING] [makePDF] LaTeX Warning: Unused global option(s): [190mm,230mmpaper].. Là aussi j'ai essayé plusieurs choses, dans le fichier YAML et le template, sans succès.

Lien permanent

Publiée 07 Mar, 13:05

LaTeXBold's gravatar image

LaTeXBold
113
Taux d'acceptation : 0%

Modifiée 07 Mar, 14:43

Commencer par remplacer book: true par documentclass: book dans le fichier YAML, ça peut régler les points 1 et 2.

(07 Mar, 17:32) touhami touhami's gravatar image

Pour 1, essayer ce code $if(toc)$ $if(toc-title)$ \renewcommand*\contentsname{$toc-title$} $endif$ { $if(colorlinks)$ \hypersetup{linkcolor=$if(toccolor)$$toccolor$$else$$endif$} $endif$ \setcounter{tocdepth}{$toc-depth$} \cleardoublepage \addtocontents{toc}{\protect\vspace{20mm}} % Espace entre le titre et la toc \tableofcontents \cleardoublepage } $endif$

Pour le point 4, ajouter dans le préambule \fancypagestyleassign{plain}{empty}

Pour le point 5 je n'ai aucune idée (je n'ai rien changé).

(07 Mar, 17:33) touhami touhami's gravatar image

Pour documentclass: book, je n'ai toujours pas de page blanche entre le H1 & H2.

Pour la toc, nikel, j'ai modifié légèrement le code :

``` $if(toc)$ $if(toc-title)$ renewcommand*contentsname{$toc-title$} $endif$ { $if(colorlinks)$ hypersetup{linkcolor=$if(toccolor)$$toccolor$$else$$endif$} $endif$ setcounter{tocdepth}{$toc-depth$} addtocontents{toc}{protectvspace{20mm}} % Espace entre le titre et la toc

clearpage thispagestyle{empty} % Supprime le header sur cette page tableofcontents clearpage thispagestyle{empty} % Supprime aussi le header sur la page suivante } $endif$ ```

(07 Mar, 19:33) LaTeXBold LaTeXBold's gravatar image

Pour ce qui est d'ajouter cette ligne : \fancypagestyleassign{plain}{empty}.

Provoque cette erreur :

Error producing PDF. ! Undefined control sequence. l.5 \fancypagestyleassign

Enfin, concernant le point 5, en fait cela n'a jamais fonctionné. J'ai bien une font type courrier, mais pas de fond gris, avec les bords arrondies comme les codes en ligne.

(07 Mar, 19:33) LaTeXBold LaTeXBold's gravatar image

Le documentclass: book règle des points, mais en génère de nouveaux. Par exemple avec book: true, j'ai bien les titres dans les headers, avec documentclass, je les ais aussi, mais ça ajouter "Chapitre x." devant le titre. Le documentclass: book, pose un souci au niveau de la numérotation des pages, car la page 1 démarre au premier H1. Dans les 2 cas je n'ai plus la séparation entre le titre H1 et le H2 suivant. Par contre avec book: true, je perds la coloration des titres.

(07 Mar, 20:27) LaTeXBold LaTeXBold's gravatar image

\fancypagestyleassign{plain}{empty} provoque une erreur puisque vous l'avez met avent \usepackage{fancyhdr}.

(07 Mar, 22:21) touhami touhami's gravatar image

Pour régler l'entete, ajouter

\renewcommand{\chaptermark}[1]{\markboth{\MakeUppercase{#1}}{}}

après

\renewcommand{\footrulewidth}{0pt} % Supprime la ligne de pied page

(07 Mar, 22:24) touhami touhami's gravatar image

Pourriez vous clarifier le problème : "Le documentclass: book, pose un souci au niveau de la numérotation des pages, car la page 1 démarre au premier H1. Dans les 2 cas je n'ai plus la séparation entre le titre H1 et le H2 suivant. Par contre avec book: true, je perds la coloration des titres."

(07 Mar, 22:28) touhami touhami's gravatar image
Affichage de 5 parmi 8 Afficher 3 commentaire(s) en plus

Pour avoir un peu plus de clarté, je reprends ici.

  • \renewcommand{\chaptermark}[1]{\markboth{\MakeUppercase{#1}}{}} : PARFAIT!
  • Je ne sais pas trop comment, mais j'ai récupéré la police en gras et gras+italique.
  • La couleur des titres (re)fonctionne.
  • La ligne \fancypagestyleassign{plain}{empty} pose bien un problème, effectivement l'erreur que j'ai affiché indique une ligne au début du document, mais j'avais essayé (et viens de refaire le test), même après la déclaration du package je prends l'erreur.

Pour les différences avec book et documentclass :

  • Avec book: true : la couleur des titres ne fonctionnent plus, le titre dans le header est numéroté, par contre les titres H3 et plus ne sont pas numéroté (ce que je souhaite).
  • Avec documentclass: book : la couleur des titres fonctionne, le header est niquel, mais les titres H3+ sont numérotés.

Je ne peux pas poster d'images car je n'ai pas assez de points, je propose un lien, j'ai vérifier les conditions je n'ai pas vu de règles à ce sujets. Il y a les 2 PDFs renommé pour faire la différence entre les 2.

https://www.swisstransfer.com/d/c0ed6d5a-0d43-4b5a-aba3-61a7adfeab41

Comment puis-je voter d'ailleurs, j'ai regardé un peu partout y compris avec votre pseudo, je n'ai pas trouvé.

Lien permanent

Publiée 08 Mar, 10:40

LaTeXBold's gravatar image

LaTeXBold
113
Taux d'acceptation : 0%

Si \fancypagestyleassign placée après \usepackage{fancyhdr} pose problème, alors il faut faire une mise à jour. Une autre solution est de remplacer \fancypagestyleassign{...}{...} par la commande \assignpagestyle{\chapter}{empty} (après \usepackage{titlesec}).

Pour ne pas numéroté les titres H3 ajouter \setcounter{secnumdepth}{1} dans le préambule.

(08 Mar, 11:03) touhami touhami's gravatar image

Voici le code à utiliser pour la séparation H1-H2

% ---- TITRE H2 ---- \titleformat{\section} {\hTwoFont\fontsize{24pt}{28pt}\bfseries\color{\HTwoColor}} {\ifthenelse{\equal{\TitleNumbering}{true}}{\thesection\hspace{-0.5em}}{}} {1em} {\TitleFormat} \let\OldSection\section \renewcommand{\section}{\ifnum\value{section}=0\clearpage\fi\OldSection}

(08 Mar, 12:25) touhami touhami's gravatar image

Nikel pour les headers et la séparation entre les titres H1 et H2.

(08 Mar, 14:41) LaTeXBold LaTeXBold's gravatar image

Je ne sais pas si c'est un problème ou si c'est normal.

Quand je compile (pour aller plus vite je ne génère pas les couvertures) la première page blanche est entièrement blanche (sans numéro de page ou autre), OK. La seconde par contre est numéroté 2, OK.

Ensuite j'ai la table des matières qui est noté "i", ça me va, je ne suis pas spécialiste de ces nomenclatures, mais OK.

J'ai ensuite une autre page complètement blanche, OK.

Le problème vient du premier titre H1 car la page est numéroté à 1. Du coup, même si la toc se retrouve avec la bonne numérotation, tout est décalé, car cela ne peut pas être la première page.

Voir les PDF partagés ci-dessus.

EDIT : le numéro de la page 1 (où il y a le titre H1) est centré aussi, alors qu'il devrait être à droite vu que normalement les titres H1 sont sur la page droite, jamais a gauche (si la configuration est bonne en tout cas).

Lien permanent

Publiée 08 Mar, 14:41

LaTeXBold's gravatar image

LaTeXBold
113
Taux d'acceptation : 0%

Modifiée 08 Mar, 15:08

Pour la numérotation des page (roman-arabic) c'est tout à fait normal. Pour une autre option essayer d'ajouter frontmatter: false dans votre fichier YAML. Ce qui n'est pas normal est que les pages (où il y a le titre H1) sont numérotés! puisque l'ajout de l'une des commandes: \assignpagestyle{\chapter}{empty} ou \fancypagestyleassign{plain}{empty} devrait supprimer l'entête et le pied de page.

(08 Mar, 17:28) touhami touhami's gravatar image

Alors effectivement je n'ai plus de numérotation de page sur la page de titre, par contre mon premier H1 démarre à la page 1.

(10 Mar, 11:52) LaTeXBold LaTeXBold's gravatar image

Pour la numérotation des pages, par défaut, il y a deux options:

  1. avec documentclass: book les premières pages (table des matières, liste des tableaux et des figures ...) sont numérotées ont roman. Puis à partir de la première page H1, la numérotation des page recommence en arabic.

  2. avec documentclass: book frontmatter: false tout le document est numéroté en arabic donc la première page de la table des matières est au moins 1,... le premier H1 sera sur la page 3 ou plus.

(10 Mar, 13:50) touhami touhami's gravatar image

Alors la numérotation arabic, c'est pas un souci, ça me va très bien. Par contre je ne sais pas pourquoi ça recommence à la page 1 à partir du premier titre H1 ?

(11 Mar, 11:04) LaTeXBold LaTeXBold's gravatar image

Je n'ai pas compris. Avez vous essayer la deuxième option que j'ai proposé:

documentclass: book frontmatter: false

(11 Mar, 16:49) touhami touhami's gravatar image

Oui oui, documentclass: book ça fait un petit moment que j'ai fait la modification et ça règle pas mal de choses. Pour frontmatter: false, ça ne change rien (en tout cas pas ce problème)

(11 Mar, 20:24) LaTeXBold LaTeXBold's gravatar image

Dans le PDF "livre documentclass.pdf" partagé plus haut avec le lien SwissTransfert, on voit bien le "i" sur la page de la toc (que j'ai perdu entre temps) et la page 1 sur la page du premier titre H1.

(11 Mar, 20:33) LaTeXBold LaTeXBold's gravatar image
Affichage de 5 parmi 7 Afficher 2 commentaire(s) en plus

Pour le problème de numérotation, Supprimer ou commenter les parties

$if(has-frontmatter)$
\frontmatter
$endif$

$if(has-frontmatter)$
\mainmatter
$endif$

$if(has-frontmatter)$
\backmatter
$endif$
Lien permanent

Publiée 15 Mar, 12:12

touhami's gravatar image

touhami
9.8k410
Taux d'acceptation : 51%

Effectivement j'ai la numérotation qui est maintenant correcte. Je ne sais pas pourquoi par contre je ne l'ai plus et n'arrive plus à la remettre sur la toc.

(16 Mar, 16:27) LaTeXBold LaTeXBold's gravatar image
Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.

Mots-clés de la question :

×39
×5
×4

Question posée : 28 Fév, 13:54

Question vue : 523 fois

Dernière mise à jour : 19 Mar, 11:24