Comment mettre des éléments à une position donnée sur une page?
Le paradigme du monde est (en gros) que l'auteur écrit un texte, puis que et ses commandes décident de la façon dont tout ça est mis en page. Ce choix est parfois malheureux pour l'auteur qui, pour une raison ou une autre, doit parfois s'assurer que certaines choses apparaissent exactement là où il veut sur la page. Quelques extensions permettent cependant de positionner de répondre à ce besoin.
Avec l'extension TikZ
L'extension la plus polyvalente est TikZ :
\documentclass{article} \usepackage[showframe,paperwidth=6cm,paperheight=6cm,margin=4mm]{geometry} \usepackage{tikz} \pagestyle{empty} \begin{document} \begin{tikzpicture}[overlay,remember picture] \path (current page.north east) node[anchor=north east] {Coin superieur droit} ; \end{tikzpicture} \end{document}
overlay
et remember picture
sont indispensables pour placer des points de façon absolue sur la page:overlay
permet que des points soient placés en-dehors de l'image sans agrandir sa bounding box (autrement dit la boîte qui la délimite),
.aux
pour les placer aux bons endroits sur la page.
Avec l'extension textpos
L'extension textpos permet de construire des pages à partir de « blobs » (de n'importe quoi, en fait), répartis sur toute la page, comme sur une affiche. Vous devez utiliser pour cela l'environnement textblock
auquel vous donnez les coordonnées (x,y) (par rapport au coin supérieur gauche d'une page) ainsi que le contenu de ce « blob ».
Vous pouvez utiliser un repère absolu à l'aide de l'argument optionnel [absolute]
dont l'origine est donnée à l'aide de \textblockorigin
. Les abscisses et les ordonnées sont spécifiées avec \TPHorizModule
et \TPVertModule
. En voici un exemple :
\documentclass{article} \usepackage[absolute]{textpos} % Unités en abscisses et en ordonnées \setlength{\TPHorizModule}{100pt} \setlength{\TPVertModule}{\TPHorizModule} % Point de référence \textblockorigin{10mm}{10mm} \begin{document} \begin{textblock}{2}(1,1) Du texte de largeur 2 dont le coin haut/gauche est en (1,1). \end{textblock} \begin{textblock}{2}[0.5,0.5](3,2) Un autre texte de largeur 2 dont le centre est en (3,2). \end{textblock} \end{document}