Comment faire en sorte que latex ajuste la taille d'une table à la page physique du document
Le livre que j'essaie de produire comporte de nombreuses pages logiques qui on ont vocation à figurer sur une seule page. page physique (cf. geometry).
Voici un exemple concret :
\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 occupe 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 ?