J'ai bricolé avec The Gimp un cadre que je souhaite superposer à plusieurs pages contenant du texte ainsi que ce qui s'apparente à un logo: Je souhaiterais remplacer le cadre basique formé de deux lignes (créé à l'aide de tcolorbox) par ce cadre qui tente de reproduire l'aspect un peu kitsch de l'original: Le pdf résultant doit être aux dimensions (geometry) 4.8in x 6.4 in. J'ai essayé diverses solutions pour superposer mon fichier cadre (au format jpeg) avec le code latex en utilisant eso-pic, overlay, et tikz sans succès. Le pdf en sortie de compilation via xelatex est systématiquement aux dimensions US letter, ce qui semble dû à une incompatiblité entre les dimensions de mon jpeg et les dimensions données au pdf via geometry. Le message suivant est notamment imprimé par xelatex :
(… idem pour le height). Autre problème :je constate par ailleurs que le texte que j'avais l'intention de superposer au cadre est imprimé sur la page suivante, hors du cadre. Ce type de présentation n'ayant a priori rien de singulier (il s'agit ici d'exemples de menus intégrés à un livre de technique culinaire datant du milieu du XIXe siècle, mais la même approche serait applicable à moult autres domaines, posters, affiches, etc.) je serais curieux de savoir si quelqu'un ici a connaissance d'un article détaillé qui expliquerait à partir d''un exemple simple comment procéder. À défaut, quelqu'un ayant déja été confronté à ce type de problème pourrait-il m'indiquer laquelle de méthodes indiquées ci-dessus je devrais rechercher ? Bien entendu si cela est nécessaire j'ajouterai un exemple de code qui ne fonctionne pas avec l'un quelconque des packages sus-mentionnés. Modification — 09/20/20 : Quelques exemples de code minimal (MWE)¹ : (a) avec le package background : Ouvrir dans l'éditeur Overleaf
\documentclass{article} \usepackage[height=6.4in, width=4.8in, margin=0in, inner=0cm]{geometry} \usepackage[pages=some]{background} \backgroundsetup{ scale=1, color=black, opacity=1, angle=0, contents={% \includegraphics[width=\paperwidth,height=\paperheight]{images/frame1.jpg} }% } \begin{document} \BgThispage .................. TeX/LaTeX content .................. \clearpage text \end{document} (b) avec eso-pic & graphicx : Ouvrir dans l'éditeur Overleaf
\documentclass{article} \usepackage{eso-pic,graphicx} \usepackage[height=6.4in, width=4.8in, margin=.25in]{geometry} \begin{document} .................. TeX/LaTeX content ................. \AddToShipoutPictureBG*{\includegraphics[width=\paperwidth,height=\paperheight]{images/frame0.jpg}}; \clearpage text \end{document} (c) avec tikz : Ouvrir dans l'éditeur Overleaf
\documentclass{article} \usepackage{tikz} \usepackage[width=4.8in, height=6.4in, top=2cm, bottom=2cm, outer=0cm, inner=0cm]{geometry} \begin{document} Some content \tikz[remember picture,overlay] \node[opacity=0.3,inner sep=0pt] at (current page.center){\includegraphics[width=\paperwidth,height=\paperheight]{images/frame0.jpg}}; \clearpage text \end{document} ¹ bien entendu, le sous-répertoire ./images/ contient sous le nom de frame0.jpg ou frame1.jpg le cadre représenté dans le post initial aux même dimensions physiques (4.8x6.4 inches) spécifiées en paramètre du package geometry. Modification — 09/21/20 : Comme l'indique @mmarkey il suffisait de lire la documentation du package geometry. En remplaçant width=4.8in, height=6.4in par paperwidth=4.8in, paperheight=6.4in, l'erreur est corrigée et j'obtiens le résultat escompté. Voici le code : Ouvrir dans l'éditeur Overleaf
\documentclass{article} \usepackage[paperheight=6.4in, paperwidth=4.8in, margin=.25in]{geometry} \usepackage{wallpaper} \usepackage{adjustbox} \usepackage{multirow} \usepackage{array} \usepackage{blkarray} \usepackage{booktabs} \usepackage[usestackEOL]{stackengine} \usepackage{eqparbox} \usepackage[normalem]{ulem} \usepackage{setspace} \begin{document} \ULCornerWallPaper{1}{images/frame0.pdf} \begin{center} \small \setstretch{1.1} \scalebox{0.7}{\parbox{\linewidth}{% \vspace{2em} \hspace*{-0.1\textwidth}\includegraphics[width=.3\textwidth]{images/arms/01.png} \vspace{2em} \linebreak \linebreak \vspace{2em} \centering\large FAMILLE IMPÉRIALE DE FRANCE \vspace{-20pt} \begin{center} \rule[1ex]{.1\textwidth}{.5pt} \end{center} \smallskip \setlength{\BAextrarowheight}{1pt} \small \begin{blockarray}{p{.25\linewidth} p{.50\linewidth}} \begin{block}{c l} \textsc{potages.} & \enspace Pot-au-feu. - Pâtes d'Italie. \\ \end{block} \multicolumn{2}{c}{\enspace} \\ \begin{block}{c l} \textsc{hors-d'œuvre.} & \enspace Petits pâtés au naturel. \\ \end{block} \multicolumn{2}{c}{\enspace} \\ \begin{block}{c\{l} & \enspace Saumon à la sauce génevoise. \\ \textsc{grosses pièces.} & \enspace Pièce de bœuf à la jardinière. \\ & \enspace Rosbif garni de croquettes. \\ \end{block} \addlinespace \begin{block}{c\{l} & \enspace Tête de veau en tortue. \\ & \enspace Petites timbales à la Lavallière. \\ \textsc{entrées.} & \enspace Grenadins à la chicorée. \\ & \enspace Suprême de volaille aux pointes d'asperges. \enspace\enspace \\ & \enspace Chaufroix de foie-gras. \\ & \enspace Salade de filets de soles à la ravigote. \\ \end{block} \addlinespace \begin{block}{c l} \textsc{rôts.} & \enspace Faisans et chapons au cresson. \\ \end{block} \addlinespace \begin{block}{c\{l} & \enspace Artichauts frits. \\ & \enspace Choux-fleurs, sauce au beurre. \\ & \enspace Haricots verts sautés. \\ \textsc{entremets.} & \enspace Épinards, au velouté. \\ & \enspace Charlotte russe au chocolat. \\ & \enspace Timbale de poires à l'Italienne. \\ & \enspace Gelée macédoine de fruits. \\ & \enspace Pains la Mecque. \\ \end{block} \addlinespace \multicolumn{2}{c}{\textsc{dessert.}} \\ \multicolumn{2}{c}{\uwave{\enspace\enspace\enspace\enspace\enspace}} \\ \addlinespace \multicolumn{2}{c}{\textit{Dîner servi à la cour de France, en 1860,}} \\ \multicolumn{2}{c}{\textit{sous la direction de M. Benoit, avec le concours de MM. Brot, Mongrole, E. Laye,}} \\ \multicolumn{2}{c}{\textit{Al. Ranhoffer, Perrier, Delsart, Lambert, etc.}} \\ & \\ \end{blockarray} }} \end{center} \newpage \clearpage \end{document} et voici le résultat obtenu : Posée 20 Sep '20, 02:35 Chris Jones XL
Affichage de 5 parmi 6
Afficher 1 commentaire(s) en plus
|
Il faut utiliser Ouvrir dans l'éditeur Overleaf
\documentclass{article} \usepackage[paperheight=6.4in, paperwidth=4.8in, margin=1in]{geometry} \usepackage[pages=some]{background} \usepackage{lipsum} \backgroundsetup{ scale=1, color=black, opacity=1, angle=0, contents={% \includegraphics[width=\paperwidth,height=\paperheight]{frame.png} }% } \begin{document} \BgThispage \lipsum[1] \clearpage text \end{document} Par ailleurs, il y a aussi le package Publiée 21 Sep '20, 02:00 nmarkey |
Avez-vous un ECM ?
Est-ce que le cadre doit être aux dimensions de la feuille de papier, ou à celles de la zone de texte?
On trouvera, en page 18 de ce document de Jacques André, un tel cadre réalisé avec nos logiciels préférés.
L'installation de la fonte-casseau utilisée, RococoOrnamentsThreeMT, est détaillée ici par le même auteur.
@Bernard J'imagine qu'une marge même minimale serait préférable… de manière à mettre en valeur l'esthétique de mon superbe cadre (?). Contexte : les planches reproduisant les menus seront compilées à part et intégrées dans un deuxième temps au document final (par des includes). Le document étant généré via pandoc cela me permet de le compiler avec plusieurs tailles de police sans affecter le cadrage des menus : Suivant la taille de l'écran le lecteur choisira une taille de police adhoc alors que les menus princiers occupant chacun une page seront automatiquement zoomés à la taille de l'écran.
@Pathe C'est une autre approche. En théorie du moins je pourrais créer une fonte-JonesXL qui contiendrait des glyphes reproduisant qui les coins de mon cadre, qui les double lignes qui les relient pour créer le cadre. Ce qui reviendrait à faire faire par LaTeX le travail que j'ai fait manuellement avec The Gimp et rendrait inutile la surimpression. Quelque chose néanmoins me dit que cela est un peu au-delà de mes capacités.
@Chris Jones XL : cette méthode est proche du fonctionnement de TeX, qui juxtapose des boîtes pour composer une page.