Le livre que j'essaie de produire comporte de nombreuses pages logiques qui ont vocation à figurer sur une seule page physique (cf. geometry). Voici un exemple concret : Ouvrir dans l'éditeur Overleaf
\documentclass[10pt]{extarticle} \usepackage[a5paper]{geometry} \usepackage[T1]{fontenc} \usepackage{ebgaramond} \usepackage{multirow} \usepackage{array, blkarray} \usepackage{booktabs} \usepackage[usestackEOL]{stackengine} \usepackage[normalem]{ulem} \usepackage{setspace} \usepackage{ragged2e} \newcommand{\lin}{\addfontfeature{Numbers=Lining}} \newcommand{\old}{\addfontfeature{Numbers=OldStyle}} \usepackage[most]{tcolorbox} \newtcolorbox{tcbdoublebox}[1][]{% enhanced jigsaw, sharp corners, colback=white, borderline={1pt}{-2pt}{black}, fontupper={\setlength{\parindent}{20pt}}, #1 } \begin{document} \begin{center} \begin{tcbdoublebox} \large MENU DE \lin30\old\ COUVERTS \linebreak \linebreak \normalsize \centering\textbf{SERVICE A L'ANGLAISE} \begin{spacing}{1.8} \noindent\centering{\uwave{\enspace\enspace\enspace\enspace\enspace\enspace\enspace\enspace}} \end{spacing} \smallskip \small \setlength{\BAextrarowheight}{1pt} {\RaggedRight \begin{blockarray}{p{.25\linewidth}p{.25\linewidth}p{.50\linewidth}} \multicolumn{3}{m{1\textwidth}}{\normalsize\noindent\centering\textsc{premier service}} \\ \addlinespace \addlinespace \begin{block}{c c\{l} & 2 & \enspace Turtle-soup, citrons. \\ & \textsc{soupières.} & \enspace Consommé au vermicelle. \\ \end{block} \addlinespace \begin{block}{c c\{l} & 2 & \enspace Saumon grillé, sauce Genevoise. \\ & \textsc{poissons.} & \enspace Merlans frits. \\ \end{block} \addlinespace \begin{block}{c c\{l} & 2 & \enspace Quartier de cerf, sauce Romaine. \\ & \textsc{relevés.} & \enspace Roast-beef et York-pudding. \\ \end{block} \addlinespace \begin{block}{c c\{l} & & \enspace Rissoles à la moelle. \\ & 4 & \enspace Poulets au riz. \\ & \textsc{entrées.} & \enspace Salmis de grives. \\ & & \enspace Timbale de ris d'agneau. \\ \end{block} \addlinespace \multicolumn{3}{m{1\textwidth}}{\normalsize\noindent\centering\textsc{deuxième service}} \\ \addlinespace \begin{block}{c c\{l} & 2 & \enspace Dinde truffée, au jus. \\ & \textsc{rôts.} & \enspace Bécasses rôties, au cresson. \\ \end{block} \addlinespace \begin{block}{c c\{l} & 2 & \enspace Flan de pommes. \\ & \textsc{relevés.} & \enspace Baba au madère. \\ \end{block} \addlinespace \begin{block}{c c\{l} & & \enspace Langoustes à la Mayonnaise. \\ & 4 & \enspace Œufs pochés au jus. \\ & \textsc{entremets.} & \enspace Asperges, sauce au beurre. \\ & & \enspace Macédoine aux fruits, garnie de gâteaux. \\ \end{block} \addlinespace \multicolumn{3}{m{1\textwidth}}{\normalsize\noindent\centering\textsc{side-table}} \\ \addlinespace \multicolumn{3}{m{1\textwidth}}{\normalsize\noindent\centering Bœuf salé. — Longes de veau.} \\ \addlinespace \end{blockarray} }% end raggedright \end{tcbdoublebox} \end{center} \clearpage \end{document} Cet exemple devrait normalement pourvoir être compilé sans problème en utilisant xelatex. Ces pages occupent à peu près une page physique mais il arrive que soit elles débordent sur la page suivante de une ou deux lignes, soit elles sont un peu trop courtes notamment si je choisis de passer la taille du texte de \normalsize à \small (par exemple) auquel cas une partie de la page est vide. Serait-il possible de demander à latex d'optimiser l'occupation de la page en ajustant automatiquement la taille de la police de caractère et ce quelle que soit la taille de police principale utilisée pour le document (8, 9, 10, 11, 12, 14pt) ? En d'autres termes obtenir de latex qu'il augmente ou réduise la taille de la police utilisée (en respectant les marges) de manière que cette page s'intègre harmonieusement au reste du document. Un peu ce que j'obtiens avec un document html ou epub en utilisant une image de type svg? Quelle approche recommandez-vous ? Posée 15 Aoû '20, 20:55 Chris Jones XL
Affichage de 5 parmi 6
Afficher 1 commentaire(s) en plus
|
Les conditions imposées sont à mon avis contradictoires : adaptation à la page et homogénéité.
Le plus simple est de remplacer la commande
\large
par une commande\tailledepolice
avec\newcommand{\tailledepolice}{\fontsize{12}{14}\selectfont}
12 taille de la police, 14 interligne. En générale
interligne >~= 1.2 * taille de la police
.Pour déterminer ces paramètres vous pouvez commencer par utiliser la commande de changement de taille de la police qui convient ,
\large
par exemple, puis vérifie avec\large\makeatletter(\f@size)\makeatother(\the\baselineskip)
.Une autre solution est d'utiliser l'extension adjustbox
\noindent \begin{adjustbox}{width=\textwidth,height=\textheight} Contenu \end{adjustbox}
@touhami je pense que dans la mesure où le document sera généré dans 6 tailles de polices différentes (8, 9, 10, 11, 12, et 14pt) une solution viable serait de réaliser les ~100 tables que comporte l'original dans des fichiers séparés en utilisant par ex. scalebox{} et setstretch{} afin d'obtenir quelque chose d´à peu près homogène et de les intégrer au moment de la compilation par le biais de includepdf out includegraphics. Cela devrait être gérable ainsi car les six version du document sont toutes à la même geometry (4.8 x 6.4in).
L'idée d'utiliser des fichiers séparés est bonne, bien qu'elle n'est pas obligatoire. En tous les cas pas besoin de compiler 100 fichiers donc soit
\input{fichier1}...
soit
[\newpage ou \par]\noindent \begin{adjustbox}{width=\textwidth,height=\textheight} Contenu \end{adjustbox}
directement dans le fichier principale.
@touhami je pense que des fichiers individuels avec un norme 'nom de fichier' (à définir) me donnerait peut être plus de souplesse (si je dois par ex. insérer du texte entre les tables, les référencer dans une liste de figures… etc.Par ailleurs cela évite une compilation de 2-3 minutes si je dois corriger une erreur triviale dans une table donnée… [ Hors-sujet : à quoi correspondent ces énigmatiques 'n'oubliez pas d'aller voter' qui concluent les messages 'email' que je reçois dans mon client pour chacun de vos 'commentaires'…? s'agit d'une 'signature' ajoutée par texnique.fr ?]
Tout à fait d'accord ;-)
Pour le point hors-sujet je n'ai aucune idée. @Pathe pourra peut-être nous aider.