Texte sur 2/3 colonnes avec titres centrées

Tout ce qui concerne le langage TeX/LaTeX et ses variantes. Ce langage est utilisable sur le forum via les balises tex.
[participation réservée aux utilisateurs inscrits]
Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
sylvain34

Re: Texte sur 2/3 colonnes avec titres centrées

Message non lu par sylvain34 »

Bonjour Olivier,

Je te remercie pour toutes tes remarques. J'ai modifié et j'en prends note. :wink:

Une seule chose que je n'ai pas suivit c'est l'histoire de :

Code : Tout sélectionner

\frenchbsetup{StandardLists=True}% Il vaudrait mieux gérer les puces via \frenchbsetup de manière
% globale
qui doit-être en rapport avec :

Code : Tout sélectionner

 \begin{itemize}[label=\ding{111}, itemsep=-2pt]% a mettre dans le  \frenchbsetpup
Mais que je ne sais pas faire ou intégrer. Car, j'ai 3 styles de puces dans la suite, donc je ne sais pas si c'est possible.

Mais là, c'est un peu hors sujet :!:
marco56
Utilisateur chevronné
Utilisateur chevronné
Messages : 1136
Inscription : jeudi 25 novembre 2010, 22:10

Re: Texte sur 2/3 colonnes avec titres centrées

Message non lu par marco56 »

rebouxo a écrit :
marco56 a écrit :C'est pourtant simple : je suis un grand débutant !
J'ai laissé l'ancien code : il y a donc 2 essais, un avec tabular, l'autre avec minipage.
Dans tabular, j'ai fait 6 colonnes en les groupant par 2, 3 ou 6.
J'ai un peu l'impression que tu réponds à un message qui a disparu. D'autre part ce n'est pas la peine de s'énerver cela ne sert à rien.

Je ne pense pas qu'il y ait besoin de faire des tabular. Un tableau ne devrait pas servir à mettre en page une structure qui n'est pas en deux dimensions. Dans un tableau on essaye de mettre en relations deux bidules. Ici, il n'y a pas deux bidules, donc il n'y a pas besoin de tableau.

Je te poste un ECM qui reproduit la structure de l'exemple. En attendant, as-tu regarder du côté de moderncv ?

multicol c'est pour faire du texte sur deux colonnes, multicols c'est pour fusionner des cellules sur une même ligne.

Olivier
Je ne m'énervais pas : c'était simplement pour situer mon niveau.
Je n'ai pas testé les codes proposés par manque de temps, mais je vais m'y employer ce we. Dorénavant, je vais laisser les pros et attendre avant de répondre (pas d'amertume, simplement, de la modestie au vu de mon faible niveau).
Bon week-end à tous et à toutes.
rebouxo
Modérateur honoraire
Modérateur honoraire
Messages : 6962
Inscription : mercredi 15 février 2006, 13:18
Localisation : le havre
Contact :

Re: Texte sur 2/3 colonnes avec titres centrées

Message non lu par rebouxo »

sylvain34 a écrit :
Mais que je ne sais pas faire ou intégrer. Car, j'ai 3 styles de puces dans la suite, donc je ne sais pas si c'est possible.
Ha, je n'avais pas vu. Dans ce cas évidemment il vaut mieux faire comme cela.

Olivier
A line is a point that went for a walk. Paul Klee.
Par solidarité, pas de MP.
sylvain34

Re: Texte sur 2/3 colonnes avec titres centrées

Message non lu par sylvain34 »

Merci Olivier. Tu ne pouvais pas savoir, je n'avais pas posé la fin, donc tu n'avais pas vu que j'avais plusieurs puces :wink:
balf
Modérateur spécialisé
Modérateur spécialisé
Messages : 4065
Inscription : mercredi 02 janvier 2008, 23:18

Re: Texte sur 2/3 colonnes avec titres centrées

Message non lu par balf »

Je propose une autre façon de faire, avec tabularx et makecell. Cette dernière extension a une commande \thead qui permet de formater à sa guise les en-têtes de colonnes (centrées par défaut). Il me semble que ça fournit un code plus simple. L'inconvénient est qu'une liste, étant considérée comme une seule ligne du tableau, ne peut être coupée en fin de page si la liste est trop longue. Un avantage est que les listes de droite et de gauche sont indépendantes en ce sens que les items de droite et de gauche ne sont pas obligatoirement alignés hoizontalement.

Voici le code (j'ai complété et un peu nettoyé votre préambule) :

Code : Tout sélectionner

    \documentclass[11pt, a4paper,openany,frenchb]{report}

    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc} 
    \usepackage{lmodern} 
    
    \usepackage{fancyhdr}
    \usepackage{amsmath}
    \usepackage{amsfonts}
    \usepackage{amssymb}
    \usepackage{babel}  % Mettre l'option dans les option globales.
    \usepackage{graphicx}
    \usepackage{marvosym}
    \usepackage[vmargin=1cm, hmargin=1.5cm, noheadfoot, nomarginpar]{geometry}
    \usepackage{array}
    \usepackage[svgnames,dvipsnames,x11names]{xcolor}
    \usepackage{enumitem}
    \setlist[itemize]{label=\ding{111}, wide}
    \usepackage{pifont}
    \usepackage{url}
    \usepackage{lettrine}
    \usepackage{hyperref}
    \renewcommand{\LettrineFontHook}{\color[gray]{0.5}}
    \renewcommand{\footrulewidth}{0.5px}
    \newcommand*{\ligne}[1][1]{\rule[0.7em]{#1\textwidth}{0.8pt}\par}
    \usepackage{tabularx}%
    \usepackage{makecell} 
    \renewcommand{\theadfont}{\bfseries\boldmath}
    \let\titreCol\thead
    \pagestyle{empty}
    \frenchbsetup{StandardLists=True}%
    \begin{document}
 
    \begin{flushleft}
       \textit{\textsc{\lettrine[lines=1]{C}{ompétences}}}
       \color{Gray}\ligne
    \end{flushleft}

\noindent \begin{tabularx}{\linewidth}{@{}X@{\hspace{3em}}X@{}}%
    \titreCol{Géosciences/Terrain} & \titreCol{Informatique/SIG} \\
       \begin{itemize}
          \item Utilisation/interprétation de documents cartographiques, géomorphologiques, topographiques et géologiques
          \item Connaissance des mécanismes d'action des phénomènes (hydrométéorologiques, géologiques, morphodynamiques, …)
          \item Études d'aléas divers, GPS
          \item Études d'enjeux (bâtis, réseaux, humains)
          \item Relevés de terrain (hydraulique, géologique, géomorphologique)
          \item Réalisation de coupes de sols/Reconnaissance de matériaux
          \item Expériences pratiques de documents réglementaires (PPR, PLU, POS, …)%
          \end{itemize}
 &
          \begin{itemize}
          \item Maîtrise des logiciels de SIG
          \item Cartographies thématiques (risques, populations\ldots)
          \item Digitalisation, géoréférencement, exploitation de données
          \item Réalisation de scénarios de risques
          \item Réalisation de Modèles Numériques de Terrain (MNT)
          \item Télédétection, analyse et traitement d'images satellites et de photographies aériennes
          \item Analyses géographiques (statistiques, spatiales, environnementales\ldots)
          \item Traitement de données de sondages (pressiométrique, pénétrométrique, tarière manuelle, …)
          \end{itemize}
 \end{tabularx}

  \end{document}
et le résultat :
makecell-multicol.png
B.A.
sylvain34

Re: Texte sur 2/3 colonnes avec titres centrées

Message non lu par sylvain34 »

Bonjour Balf,

Je te remercie pour ce bout de code qui me plait aussi. Je vais le regarder de plus près ce soir ou demain pour comprendre un peu la différence avec le précédent.

Mais honnêtement, la différence entre les deux est pas énorme, et dans le premier code les listes ne sont pas alignés non plus.

Du coup les différences réelles seraient quoi?

Merci de ton aide en tout cas :wink:
sylvain34

Re: Texte sur 2/3 colonnes avec titres centrées

Message non lu par sylvain34 »

J'ai un peu de mal a compiler ce dernier code, je ne sais pas pourquoi, j'ai des erreurs, mais je comprends l'idée en tout cas.

Ce que je j'aime bien dans le fait de garder le multicol c'est qu'il m'aligne automatiquement j'ai l'impression les deux colonnes en termes de longueur. Si je rajoute un nouvelle puce dans une colonne ou l'autre, cela adapte tout automatiquement. La seule chose qui m'intrigue un peu c'est la commande :

Code : Tout sélectionner

\newcommand*{\titreCol}[1]
{
\makebox[\linewidth]{ \textbf{#1}}
Je ne suis pas familier avec le fait de créer de nouvelle commande et je n'ai pas encore eu l'occasion de le faire, mais j'ai compris en gros qu'on avait créer une commande intitulé "TitreCol" et qu'on avait fait une boite, mais je ne sais pas décrypter le reste? Comment faire pour espacer un peu entre le titre et les colonnes :?:
rebouxo
Modérateur honoraire
Modérateur honoraire
Messages : 6962
Inscription : mercredi 15 février 2006, 13:18
Localisation : le havre
Contact :

Re: Texte sur 2/3 colonnes avec titres centrées

Message non lu par rebouxo »

Rien de sorcier :
\newcommand c'est la commande pour faire une nouvelle commande. J'ai pris la version étoilée qui n'accepte que des arguments courts (pas de saut de ligne).
[1] : c'est le nombre d'argument (de 0 à 9).
Il devrait y avoir un % après l'accolade ouvrante (sinon, un espace parasite risque d'apparaître).
\makebox fabrique une boite qui peut prendre une largeur imposée par l'argument optionnel (entre les crochets). Ici, c'est la longueur de la ligne de texte (qui est différente de la largeur de texte \textwith qui correspond à la largeur de la ligne en simple colonne, sans puce ni retrait). Cette longueur varie donc si tu es en colonne multiple ou dans une liste...
\textbf met le texte en gras et #1 est la valeur du premier argument.

Olivier
A line is a point that went for a walk. Paul Klee.
Par solidarité, pas de MP.
sylvain34

Re: Texte sur 2/3 colonnes avec titres centrées

Message non lu par sylvain34 »

Merci Olivier pour le retour et l'explication :wink:

J'ai tout compris je pense. Impossible pour moi d'agrandir l'espace entre le texte dessous et le titre un peu?

Donc, si je comprends bien, la boite sera toujours centrés par rapport à la longueur de la ligne, c'est bien ça?

Autre petite question : Le fait que l'on soit dans "multicol", c'est ce qui me permet d'avoir toujours les 2 colonnes avec la longueur identique au final, même si je rajoute une puce ou 2, cela s'équilibre parfaitement, c'est bien ça.

Merci pour ton aide, et explication. :wink:

Sylvain
balf
Modérateur spécialisé
Modérateur spécialisé
Messages : 4065
Inscription : mercredi 02 janvier 2008, 23:18

Re: Texte sur 2/3 colonnes avec titres centrées

Message non lu par balf »

@sylvain34 : En effet, pour le résultat, il n'y a que des différences minimes (comme l'indentation de la liste de gauche, mais c'est un problème de paramétrage de enumitem). Il ya surtout des différences dans les extensions utilisées : je n'ai pas besoin de multicol et le changement de colonne ne se fait pas avec un \columnbreak, mais avec &. L'en-tête de colonne se fait simplement avec la commande \thead de makecell.

Hormis cela, il ne me semble pas souhaitable que les puces soient forcées à être alignées horizontalement : il ne s'agit pas de textes en parallèle, et certains items font 2 lignes à gauche pendant que celui de droite en fait 3. Les décalages sont donc inévitables.

Dernier point : il s'agirait d'agrandir l'espace entre les titres de colonnes et le contenu des colonnes ?

B.A.
sylvain34

Re: Texte sur 2/3 colonnes avec titres centrées

Message non lu par sylvain34 »

@ Balf.

Merci encore une fois pour les explications. Oui les différences ne sont pas énormes en soit.

Comme tu dis, il n'est pas souhaitable que les puces soient alignées puisque les textes sont plus ou moins longs. LE fait d'utiliser du Tabular plutôt que du multicol va t-il aussi automatiquement aligner l'ensemble des 2 colonnes dans la longueur. Je veux dire, si j'ajoute 1 ou 2 puces dans la première partie, est-ce que la deuxième colonne va s'ajuster automatiquement. Car avec Multicols, cela fonctionne bien. C'est plus esthétique je trouve.

Oui, j'aimerai pouvoir peut-être agrandir un peu l'espace entre les titres et les colonnes dessous. J'imagine que c'est possible dans les deux codes de toute façon?
balf
Modérateur spécialisé
Modérateur spécialisé
Messages : 4065
Inscription : mercredi 02 janvier 2008, 23:18

Re: Texte sur 2/3 colonnes avec titres centrées

Message non lu par balf »

Avec multicol, comme le titre est obtenu avec \makebox et est indépendant de ce qui suit, il suffit de rajouter à la fin de la définition de \titreCol un espace vertical de la valeur que vous voulez.

Avec makecell, le titre est incorporé à la table (du coup, on ne risque pas d'avoir les titres en bas d'une page et la suite à la page suivante). Il suffit de rajouter dans le préambule :

Code : Tout sélectionner

    \renewcommand{\theadgape}{\Gape[6pt]}
(J'ai mis 6 points parce ça me paraissait correct à mon goût). Ça rajoute 6 pt en haut et en bas à la hauteur naturelle de l'en-tête. Voici ce que ça donne :
makecell-multicol.png
B.A.
sylvain34

Re: Texte sur 2/3 colonnes avec titres centrées

Message non lu par sylvain34 »

@ Baf, merci encore de ta réponse.

Ok, c'est noté pour l'espace vertical a rajouter (\vspace{esp})

Pour Make cell, c'est bien aussi. Pas de soucis que ça passe sur la page d'après puisque c'est en haut d'une page et que ça ne grandira pas énormément pour l'instant.

Mais merci en tout cas
sylvain34

Re: Texte sur 2/3 colonnes avec titres centrées

Message non lu par sylvain34 »

Une chose que je viens de me rendre compte qui n'est pas esthétique quand même, c'est que je me retrouve si j'utilise multicol avec les 2 colonnes, mais les puces en haut ne sont pas l'une en face de l'autre et légèrement décalées.

Voilà le code que j'ai pour l'instant :

Code : Tout sélectionner

\documentclass[10.5pt, a4paper,openany]{report}

\usepackage[latin1]{inputenc}	
\usepackage{fancyhdr}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}	
\usepackage[frenchb]{babel}	
\usepackage{graphicx}
\usepackage{graphics}
\usepackage{marvosym}
\usepackage{color}
\usepackage[top=1cm, bottom=1cm, left=1.5cm , right=1.5cm]{geometry}
\usepackage{array}
\usepackage[svgnames,dvipsnames,x11names]{xcolor}
\usepackage{multicol}	
\usepackage{enumitem}	
\usepackage{pifont}
\usepackage{vwcol}	
\usepackage{url}
\usepackage{lettrine}	
\usepackage{supertabular}
\usepackage{hyperref}	

\renewcommand{\LettrineFontHook}{\color[gray]{0.5}}
\renewcommand{\footrulewidth}{0.5px}			
\newcommand*{\ligne}[1][1]{\rule[0.7em]{#1\textwidth}{1pt}\par}

\newcommand*{\titreCol}[1]{\makebox[\linewidth]{ \textbf{#1}}}

\renewcommand{\\}{\vspace{2ex}}
\renewcommand{\thepage}{}
\frenchbsetup{StandardLists=True}

\setlength\multicolsep{-5pt}

\begin{document}
\begin{flushleft}
	\textit{\textsc{\lettrine[lines=1]{C}{ompétences}}}	
	\color{Gray}\ligne
\end{flushleft}

\begin{multicols}{2}
\titreCol{Géosciences/Terrain}
\vspace{2pt}
	\begin{itemize}[label=\ding{111}, itemsep=-2pt]
		\item Utilisation/interprétation de documents cartographiques, géomorphologiques, topographiques, et géologiques 
		\item Connaissance des mécanismes d'action des phénomènes (hydrométéorologiques, géologiques, morphodynamiques\ldots)
		\item Études d'aléas divers, GPS
		\item Études d'enjeux (bâtis, réseaux, humains)
		\item Relevés de terrain (hydraulique, géologique, géomorphologique)
		\item Réalisation de coupes de sols/Reconnaissance de matériaux
		\item Expériences pratiques de documents réglementaires (PPR, PLU, POS,\ldots)
	\end{itemize}
 \vfill
  \columnbreak		
  \titreCol{Informatique/SIG}
		\begin{itemize}[label=\ding{111}, itemsep=-2pt]
		\item Maitrise des logiciels de SIG
		\item Cartographies thématiques (risques, populations\ldots)
		\item Digitalisation, géoréférencement, exploitation de données
		\item Réalisation de scénarios de risques
		\item Réalisation de Modèles Numériques de Terrain (MNT)
		\item Télédétection, analyse et traitement d'images satellites et de photographies aériennes
		\item Analyses géographiques (statistiques, spatiales, environnementales\ldots)
		\item Traitement de données de sondages (préssiométrique, pénétrométrique, tarière manuelle\ldots)
		\end{itemize}
\end{multicols}	
	
\end{document}	


Ce qui n'est pas le cas sur ton dernier exemple avec Tabular ou même sur ton premier.

Qu'est ce qui change / a changé? Comment ce fait-il que mes 2 premières puces ne s'aligne pas :?:

Ce qui est un peu compliqué c'est que ton dernier code, je ne peux pas l'utiliser tel quel, puisque tu as fait des modifications et j'utilise d'autres puces par la suite, différentes...

Une explication?

L'idée qui serait top a faire c'est que je puisse avoir les 2 colonnes, avec les deux premières puces qui s'alignent bien (comme sur l'exemple en Tabular c'est bon), mais que l'ensemble s'aligne aussi en terme de hauteur de cellule. Je veux dire que sur le bas des 2 colonnes, le texte soient automatiquement adapté et qu'il s'aligne sur le bas. Je viens de faire des essais et je peux bidouiller évidement avec l'espacement des puces sur le [itemsep=4pt] et changer la valeur.

Je ne sais pas si c'est possible tout ça finalement? Mais je pense que si, mais seulement avec le multicol je pense qui adapte automatiquement. J'ai tenté de rajouter 2 puces dans la première colonne et la deuxième adapte bien la taille comme ici :

Code : Tout sélectionner

\documentclass[10.5pt, a4paper,openany]{report}

\usepackage[latin1]{inputenc}	
\usepackage{fancyhdr}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}	
\usepackage[frenchb]{babel}	
\usepackage{graphicx}
\usepackage{graphics}
\usepackage{marvosym}
\usepackage{color}
\usepackage[top=1cm, bottom=1cm, left=1.5cm , right=1.5cm]{geometry}
\usepackage{array}
\usepackage[svgnames,dvipsnames,x11names]{xcolor}
\usepackage{multicol}	
\usepackage{enumitem}	
\usepackage{pifont}
\usepackage{vwcol}	
\usepackage{url}
\usepackage{lettrine}	
\usepackage{supertabular}
\usepackage{hyperref}	

\renewcommand{\LettrineFontHook}{\color[gray]{0.5}}
\renewcommand{\footrulewidth}{0.5px}			
\newcommand*{\ligne}[1][1]{\rule[0.7em]{#1\textwidth}{1pt}\par}

\newcommand*{\titreCol}[1]{\makebox[\linewidth]{ \textbf{#1}}}

\renewcommand{\\}{\vspace{2ex}}
\renewcommand{\thepage}{}
\frenchbsetup{StandardLists=True}

\setlength\multicolsep{-5pt}

\begin{document}
\begin{flushleft}
	\textit{\textsc{\lettrine[lines=1]{C}{ompétences}}}	
	\color{Gray}\ligne
\end{flushleft}

\begin{multicols}{2}
\titreCol{Géosciences/Terrain}
\vspace{2pt}
	\begin{itemize}[label=\ding{111}, itemsep=-2pt]
		\item Utilisation/interprétation de documents cartographiques, géomorphologiques, topographiques, et géologiques 
		\item Connaissance des mécanismes d'action des phénomènes (hydrométéorologiques, géologiques, morphodynamiques\ldots)
		\item Études d'aléas divers, GPS
		\item Études d'enjeux (bâtis, réseaux, humains)
		\item Relevés de terrain (hydraulique, géologique, géomorphologique)
		\item Réalisation de coupes de sols/Reconnaissance de matériaux
		\item Expériences pratiques de documents réglementaires (PPR, PLU, POS,\ldots)
		\item rajout d'une puce
		\item rajout encore
	\end{itemize}
 \vfill
  \columnbreak		
  \titreCol{Informatique/SIG}
		\begin{itemize}[label=\ding{111}, itemsep=-2pt]
		\item Maitrise des logiciels de SIG
		\item Cartographies thématiques (risques, populations\ldots)
		\item Digitalisation, géoréférencement, exploitation de données
		\item Réalisation de scénarios de risques
		\item Réalisation de Modèles Numériques de Terrain (MNT)
		\item Télédétection, analyse et traitement d'images satellites et de photographies aériennes
		\item Analyses géographiques (statistiques, spatiales, environnementales\ldots)
		\item Traitement de données de sondages (préssiométrique, pénétrométrique, tarière manuelle\ldots)
		\end{itemize}
\end{multicols}	
\end{document}	
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message