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
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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()$
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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
957
Taux d'acceptation : 6%

Modifiée 02 Mar, 11:31

Pathe's gravatar image

Pathe ♦♦
7.6k50210253

1

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
1

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
1

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
1

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

« Précédent12

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
957
Taux d'acceptation : 6%

Modifiée 08 Mar, 15:08

1

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
1

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
1

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

J'ai essayé plusieurs choses pour modifier le format du PDF, mais je reste tout le temps au format A4. Je suis passé par le fichier YAML et par le template, dans les 2 cas, aucun n'est pris en compte.

Le format que j'essaye de mettre en place est 190mm / 230mm.

Lien permanent

Publiée 16 Mar, 16:29

LaTeXBold's gravatar image

LaTeXBold
957
Taux d'acceptation : 6%

Dans le fichier template.tex, supprimer ou commenter les parties

$if(papersize)$
$papersize$paper,
$endif$
$if(geometry)$
\usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry}
$endif$
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

puis remplacer

\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=12mm % Décalage pour la reliure
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

par

\geometry{paperwidth=190mm,
paperheight=230mm,
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=12mm % Décalage pour la reliure
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Lien permanent

Publiée 16 Mar, 23:27

touhami's gravatar image

touhami
10.0k410
Taux d'acceptation : 51%

J'ai un souci au niveau du code que je souhaite afficher dans le livre.

Concernant les codes en ligne, j'ai ceci dans le template :

% =============================
% 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}
% =============================
% Code inline (fond gris, arrondi, police Hack)
% =============================
\renewcommand{\texttt}[1]{%
\tcbox[
colback=gray!10, % Fond gris
arc=4pt, % Coins arrondis
boxrule=0pt, % Pas de bordure
left=4pt, right=4pt, % Espacement horizontal interne
top=0pt, bottom=0pt, % Espacement vertical interne
boxsep=0.5pt, % Espacement autour du texte
on line
]{\codeFont \strut#1}
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Globalement, c'est le résultat attendu (fond gris, avec des arrondis, une hauteur minimale pour gérer correctement les caractères comme le underscore et un interlignage qui ne change pas).

Par contre j'ai un espace entre le mot et le bloc en ligne, c'est parfait. Mais j'ai comme 2 espaces entre le code en ligne et le premier mot de la phrase à droite (voir fichier PDF partagé plus haut).

J'ai vérifié le fichier .tex généré et j'ai bien qu'un espace :

\emph{Lorem ipsum} dolor sit amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
minim veniam,quis nostrud exercitation ullamco laboris \texttt{nisi\ 0}
ut \texttt{\_} aliquip ex ea commodo consequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa
qui officia deserunt mollit anim id est laborum.
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

J'ai supprimé la configuration de la langue dans le fichier YAML, mais le problème persiste.

La seule solution que j'ai trouvé, c'est de ne pas avoir d'espace dans le fichier Markdown, donc de passer de ceci :

ullamco laboris `nisi 0` ut `_` aliquip
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

A ceci :

ullamco laboris `nisi 0`ut `_`aliquip
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Mais évidemment je préfèrerais trouver une solution de configuration plutôt dans le template.

L'autre souci vient des blocs de code qui ne fonctionnent pas. J'ai une font différente du texte des paragraphes, mais pas celle que j'utilise pour les codes en ligne (à savoir Hack). Pas de fond gris non plus, voici la configuration du template :

% =============================
% Blocs de code (fond gris, arrondi, police Hack)
% =============================
\newtcblisting{codeblock}{
colback=gray!10, % Fond gris clair pour le bloc
arc=4pt, % Coins arrondis (4px)
boxrule=0pt, % Épaisseur de la bordure
listing only, % Pas d'espace supplémentaire autour
breakable, % Autoriser la coupure sur plusieurs pages
fontupper=\codeFont\ttfamily, % Appliquer Hack
enhanced, % Améliore le rendu du fond et des bordures
listing engine=listings
}
% Appliquer ce style aux environnements verbatim
\let\oldverbatim\verbatim
\renewcommand{\verbatim}{\codeblock}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Lien permanent

Publiée 17 Mar, 12:02

LaTeXBold's gravatar image

LaTeXBold
957
Taux d'acceptation : 6%

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 :

×42
×7
×5

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

Question vue : 1,407 fois

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