Depuis de nombreuses années, j'utilise LaTeX pour rédiger des livres (je suis écrivain amateur). Ce qui me plaît, c'est la séparation du fond et de la forme : j'ai créé des classes qui gèrent la forme que j'attends d'un livre, ce qui me permet de me concentrer sur le fond de l'histoire dans mon document TeX.

Ce qui m'ennuie, c'est que, en réalité, la forme doit quand même être précisée dans le document, puisqu'il y faut l'instruction \documentclass{}. Or, j'aimerais bien générer plusieurs fichiers différents à partir du même document TeX. Typiquement, j'aimerais :

  • le fichier PDF principal, écrit selon les normes attendues dans l'édition, au format A5 ;
  • un fichier PDF brouillon, me permettant d'imprimer mes œuvres pour les relire (format A4, moins d'espacements, plus de marge pour prendre des notes, etc.) ;
  • un fichier ePub pour avoir une version électronique de mon livre.

Certains ont-ils déjà réalisé ce genre de choses ? Comment vous y prendriez-vous ?

Je pensais éventuellement utiliser l'instruction \input{}, ce qui demanderait de générer 3 classes différentes et bien synchrones (en terme de commandes). Cela vous semble-t-il être la meilleure solution ?

Posée 04 Mai '17, 16:40

sveyret's gravatar image

sveyret
143410
Taux d'acceptation : 50%

Modifiée 11 Aoû '17, 01:34

Pathe's gravatar image

Pathe ♦♦
7.5k42203251

Comment gérez vous la mise en page (marges, format A4,...)?

(04 Mai '17, 20:27) touhami touhami's gravatar image

Tout est paramétré dans un fichier de classe spécifique.

(04 Mai '17, 23:50) sveyret sveyret's gravatar image

Il est facile d'écrire un script qui permet de faire tous ça, mais il faut fournir des informations supplémentaires.

(05 Mai '17, 00:04) touhami touhami's gravatar image
1

Concernant la conversion en ebook, il y a maintenant tex4ebook, qui est un jeu d'extensions latex et de scripts lua.

(05 Mai '17, 01:13) Bernard Bernard's gravatar image

Quel genre d'information, Touhami ?

(05 Mai '17, 10:08) sveyret sveyret's gravatar image

La gestion de mise en page : avez vous par exemple \geometry{a4paper,left=2cm,right=3cm}...?

(05 Mai '17, 11:30) touhami touhami's gravatar image
Affichage de 5 parmi 6 Afficher 1 commentaire(s) en plus

Voici une solution basée sur un script (makefile) batch.

Par exemple, le fichier .tex est comme suit

Fichier.tex

Ouvrir dans l'éditeur Overleaf
\documentclass[french]{book}
\usepackage{lmodern}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{geometry}

\providecommand\monformat{a4paper,outer=2cm}
\expandafter\geometry\expandafter{\monformat,headheight=1cm}

\usepackage{mwe}

\title{Mon Livre}
\author{Moi Meme}

\begin{document}

\maketitle
\tableofcontents
\blinddocument
\end{document}

Le point clé est les deux lignes

Ouvrir dans l'éditeur Overleaf
\providecommand\monformat{a4paper,outer=2cm}
\expandafter\geometry\expandafter{\monformat,headheight=1cm}

ça marche aussi pour un fichier .cls.

Maintenant on passe au script

Compilateur.bat

Ouvrir dans l'éditeur Overleaf
@echo off
echo.
echo       ***********************************************************
echo       *                                                         *
echo       *          bienvenue au compilateur multi-versions        *
echo       *                                                         *
echo       ***********************************************************
echo.

rem Nom de fichier

set /p monfichier="Entrez un nom de fichier SVP (sans extension .tex) : "

rem ********** production de la version finale. +++++++++++++

pdflatex -jobname=%monfichier%-Livre \newcommand\monformat{a5paper,outer=2cm} \input{%monfichier%}

rem ---------- on peut ajouter d'autres commandes (makeinex,2*pdflatex,bibtex,...)

rem ********** suppression des fichiers temporaires +++++++++++++

for %%a in (*.aux, *.toc, *.lof, *.lot) do del %%a

rem ********** production de la version draft. +++++++++++++

pdflatex -jobname=%monfichier%-draft \newcommand\monformat{a4paper,outer=5cm} \input{%monfichier%}

rem ---------- on peut ajouter d'autres commandes (makeinex,2*pdflatex,bibtex,...)

rem ********** suppression des fichiers temporaires +++++++++++++

for %%a in (*.aux, *.toc, *.lof, *.lot) do del %%a

rem ********** production de la version ebook. +++++++++++++

rem ---------- REMARQUE : On peut utiliser l'un des deux lignes suivantes ---------

make4ht -u %monfichier%
rem htlatex %monfichier% "xhtml,charset=utf-8" " -cunihtf -utf8"

ebook-convert %monfichier%.html %monfichier%.epub --authors="Moi Meme"

Dans le dernier ligne "Moi Meme" à remplacer par "l'auteur de livre".

Enfin : il suffit de double cliquez le fichier .bat puis entrer, à la demande, le nom de fichier à compiler.

Lien permanent

Publiée 05 Mai '17, 14:11

touhami's gravatar image

touhami
9.7k410
Taux d'acceptation : 51%

Modifiée 05 Mai '17, 15:35

Je ne savais pas que je pouvais passer directement les commandes à pdflatex ! Super, merci beaucoup !

(06 Mai '17, 19:39) sveyret sveyret's gravatar image

Bonjour,

Grâce à votre aide, j'ai pu générer une classe pour mes livres. Cette classe est ouverte à vos commentaires afin que je puisse l'améliorer.

J'ai ouvert un autre sujet pour cela :

http://texnique.fr/osqa/questions/3352/ecrire-des-livres

Merci.

(02 Jul '17, 00:37) sveyret sveyret'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.