J'utilise le package grid-system, de Marcus Bitzl, qui jusqu'à présent m'a donné entière satisfaction.

La syntaxe est très simple : il suffit de déclarer avec\begin{row} le nombre de cellules que comprend une rangée, et de les remplir une par une ; puis de passer à la rangée suivante, et ainsi de suite. À titre d'exemple, voici le code d'une rangée :

Ouvrir dans l'éditeur Overleaf
\begin{row}{<nombre de colonnes>}{<nombre de cellules>}%
\begin{cell}{<nombre de colonnes occupées>}
< contenu >
\end{cell}
\begin{cell}{<nombre de colonnes occupées>}
< contenu >
\end{cell}
\end{row}

Mais l'une des colonnes de ma grille occupe toute la largeur de l'empagement. Et là, je constate qu'une page divisée en une colonne est plus large que la même page divisée en quatre colonnes !

Dans l'ECM ci-dessous, l'image A occupe la dernière colonne de sa rangée : elle devrait donc être alignée sur la marge de droite, de même que l'image B qui, elle, occupe toute la largeur de la page puisque sa rangée ne comporte qu'une seule colonne.

Or on voit bien que la colonne occupée par l'image A se termine loin de la marge de droite, alors que l'image B, occupant toute la largeur de la seule colonne de cette rangée, va jusqu'à ladite marge. Pourquoi ?

Ouvrir dans l'éditeur Overleaf
\documentclass[a4paper, 12 pt, showframe, french]{scrartcl}

\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[light, largesmallcaps]{kpfonts}
\usepackage{mwe}
\usepackage{geometry}
\usepackage{lipsum}
\usepackage{microtype}
\usepackage{grid-system}
\usepackage{babel}

\begin{document}

\begin{row}{4}{4}
  \begin{cell}{3}
\lipsum[1]
  \end{cell}
  \begin{cell}{1}
    \raisebox{-\totalheight}{\centering \includegraphics[keepaspectratio = true, width = \textwidth]{example-image-a}}
  \end{cell}
\end{row}\\
\begin{row}{1}{1}
  \begin{cell}{1}
\raisebox{-\totalheight}{\centering \includegraphics[keepaspectratio = true, width = \textwidth]{example-image-b}}
    \end{cell}
\end{row}

\end{document}

Comment remédier à cela ? J'ai tenté d'augmenter la taille de l'image A, sans succès.


Nota : j'utilise la fonction \raisebox pour positionner l'image sous la première ligne de la cellule. Je préfèrerais l'aligner à hauteur de x, mais je ne sais pas le faire.

Posée 22 Oct, 04:08

Pathe's gravatar image

Pathe ♦♦
4.5k135123
Taux d'acceptation : 63%

Modifiée 22 Oct, 04:19

1

Comme il s'agit de 2 cellules (2 \begin{cell}) il faut taper \begin{row}{4}{2}% et pas \begin{row}{4}{4}.

Nota : ne pas oublier le %.

(22 Oct, 16:13) touhami touhami's gravatar image

Pour aligner l'image A vous pouvez essayer cet idée sinon vous pouvez utiliser l'extension calc.

(22 Oct, 16:26) touhami touhami's gravatar image
1

J'ai supprimé mon dernier commentaire, il semble que ce ne soit pas correcte. Je n'arrive pas à comprendre la doc.

(22 Oct, 23:28) touhami touhami's gravatar image

@Pathe Vous pouvez regarder du côté de l'extension hlist, elle permet de faire tout ça et plus, elle est totalement configurable et la doc en français.

(23 Oct, 12:33) touhami touhami's gravatar image

IL y a aussi l'extension grid, dont la documentation a belle allure, malgré un contenu trop peu détaillé.

(23 Oct, 15:39) Pathe ♦♦ Pathe's gravatar image

@Pathe si j'ai bien compris, grid c'est autre chose.

(23 Oct, 20:52) touhami touhami's gravatar image

Les deux permettent une mise en page selon un système de grille ; le problème est que grid ne propose que deux colonnes (si j'ai bien compris). Quant à leur doc, elle est très jolie mais, toujours si j'ai bien compris, ils proposent au lecteur d'en analyser le code pour comprendre le fonctionnement de l'extension... une démarche moyennement pédagogique.

(24 Oct, 02:00) Pathe ♦♦ Pathe's gravatar image

C'est vous voulez, l'idée de grille est différente pour les deux extension. grid tend à garder la distance entre les lignes constante (multiple d'une constante) comme si les lignes sont écrits sur un papier avec grille, ce n'est pas le cas pour grid-system, peut être l'idée de grille est qu'il y a des lignes et des colonnes.

(24 Oct, 12:10) touhami touhami's gravatar image
Affichage de 5 parmi 8 Afficher 3 commentaire(s) en plus

Grâce aux remarques de @touhami, et l'option valign=t de l'extension adjustbox, qui aligne précisément la figure avec le haut de la ligne supérieure, j'ai corrigé mon ECM, qui fonctionne désormais :

Ouvrir dans l'éditeur Overleaf
\documentclass[a4paper, 12 pt, showframe, french]{scrartcl}

\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[light, largesmallcaps]{kpfonts}
\usepackage{mwe}
\usepackage{geometry}
\usepackage{lipsum}
\usepackage{microtype}
\usepackage{grid-system}
\usepackage[Export]{adjustbox}
\usepackage{babel}

\begin{document}

\begin{row}{4}{2}
  \begin{cell}{3}
\lipsum[1]
  \end{cell}
  \begin{cell}{1}
   {\centering \includegraphics[keepaspectratio = true, width = \textwidth, valign=t]{example-image-a}}
  \end{cell}
\end{row}\\
\begin{row}{1}{1}
  \begin{cell}{1}
\raisebox{-\totalheight}{\centering \includegraphics[keepaspectratio = true, width = \textwidth]{example-image-b}}
    \end{cell}
\end{row}

\end{document}
Lien permanent

Publiée 23 Oct, 04:23

Pathe's gravatar image

Pathe ♦♦
4.5k135123
Taux d'acceptation : 63%

Modifiée 23 Oct, 16:11

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.

Mots-clés de la question :

×1
×1

Question posée : 22 Oct, 04:08

Question vue : 108 fois

Dernière mise à jour : 24 Oct, 12:10

Questions similaires