Comment faire une ligne horizontale d'épaisseur réglable, de longueur définie comme une proportion la largeur de la page (ou du texte) et qu'on puisse centrer, mettre à gauche ou à droite ?

Posée 07 Jul '19, 07:21

idefix's gravatar image

idefix
95594051
Taux d'acceptation : 14%


J'ai trouvé ceci qui répond partiellement à ma question :

Ouvrir dans l'éditeur Overleaf
\documentclass[12pt]{article}
\usepackage[french]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lipsum}

\begin{document}
\title{Untitled}
\noindent au centre \newline
\noindent\hfill\rule{0.8\textwidth}{.4pt}\hfill\newline
\noindent à gauche\newline
\noindent\rule{0.8\textwidth}{.4pt}\newline
\lipsum
\end{document}
  • Une ligne centrée de 0.8 fois la largeur du texte et une épaisseur de 0.4 points ;
  • \noindent pour ne pas avoir de décalage au début de la ligne ;
  • \hfill pour mettre des espaces élastiques ? avant et après pour centrer la ligne ;
  • \rule pour tracer le trait avec la longueur en premier argument et l'épaisseur en second.

Mais il y a peut-être mieux ou d'autres façons de faire. Comment mettre la ligne à droite ?


@idefix : avez-vous essayé ce code trouvé ? Il ne me donne pas le résultat escompté.

@idefix : je confirme. Les deux traits sont alignés à gauche.

Selon moi ce serait le \newline juste avant qui tue la commande. Code corrigé :

Ouvrir dans l'éditeur Overleaf
\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{graphicx}
\usepackage{tikz}
\usepackage[french]{babel}
\usepackage{lipsum}

\begin{document}

\noindent test gauche \hfill centre \hfill droite \\

%%%%%%%
\noindent au centre % \newline % problème ICI

\noindent\hfil\rule{0.3\textwidth}{.4pt}\hfil\newline
à gauche\newline
\noindent\rule{0.8\textwidth}{.4pt}\hfil\newline

\lipsum[2-4]
\end{document}

Mais pourquoi \newline fait cet effet ? mystère.

Lien permanent

Publiée 07 Jul '19, 08:21

idefix's gravatar image

idefix
95594051
Taux d'acceptation : 14%

Modifiée 07 Jul '19, 23:29

@idefix : avez-vous essayé ce code trouvé ? Il ne me donne pas le résultat escompté.

(07 Jul '19, 12:13) Hugues Hugues's gravatar image

@idefix : je confirme. Les deux traits sont alignés à gauche.

(07 Jul '19, 17:34) Pathe ♦♦ Pathe's gravatar image
2

@idefix : merci d'ajouter ces questions à LA QUESTION :-)

(07 Jul '19, 18:25) touhami touhami's gravatar image
1

@touhami C'est bon comme ça ?

(07 Jul '19, 18:34) idefix idefix's gravatar image
1

@idefix : AMHA de « J'ai trouvé ceci qui » jusqu'à « Comment mettre la ligne à droite ? » ca fait partie de la question.

« Comment tracer par exemple une ligne sur toute la largeur de la page ? » c'est une nouvelle question.

Le reste est une autre question.

(07 Jul '19, 22:26) touhami touhami's gravatar image

@idefix : même si je loue les efforts de rédaction qui sont les vôtres, je pense également que, pour plus d'intelligibilité, la question gagnerait à être scindée en deux.

(07 Jul '19, 22:31) Pathe ♦♦ Pathe's gravatar image

@touhami et @Pathe J'essaye de saisir l'esprit du forum et les outils d'édition. Mais quand je scinde une question j'ai souvent l'impression de mal la scinder. En espérant que cette fois-ci, c'est vraiment bon.

Pour l'effet du \newline ça me parait un peu excessif d'ouvrir encore une nouvelle question. Mais je manque de recul sur LateX et ses rubriques, donc à vous de dire

(07 Jul '19, 23:27) idefix idefix's gravatar image
2

La question de \newline est la plus TeXnique et a en relation avec les ressorts. Pour donner une idée, comparer, dans un document, foo\par\hfill foo avec foo\newline\hfill foo. En effet, (La)TeX n'a pas du problème de commencer un paragraphe avec un ressort. Par contre, il efface tout ressort au début de lignes dans un paragraphe. L'espace entre mots est l'exemple le plus courant. Dans notre exemple (La)TeX efface le \hfill juste après \newline. Pour empêcher LaTeX de faire ça il suffit de taper foo\newline\mbox{}\hfill foo, comme ça le \hfill n'est plus au début de la ligne.

(08 Jul '19, 02:03) touhami touhami's gravatar image
Affichage de 5 parmi 8 Afficher 3 commentaire(s) en plus

Pour créer des rectangles complètement noirs, on utilise la commande \rule[décalage]{largeur}{hauteur}

  • décalage permet de spécifier le décalage par rapport à la ligne de texte : une valeur positive le place au-dessus alors qu’une négative, en dessous ;
  • largeur est la largeur du rectangle ;
  • hauteur est sa hauteur (ou épaisseur).

Si l’on veut tracer une ligne d’épaisseur 1 mm sur toute la largeur du texte, on écrit : \rule{\linewidth}{1mm}

Si l’on veut tracer une ligne d’épaisseur 1 mm, centrée sur la moitié de la largeur du texte, on écrit :

Ouvrir dans l'éditeur Overleaf
\begin{center}
 \rule{0.5\linewidth}{1pt}
 \end{center}

Donc pour mettre la réglure à gauche ou à droite, il faut utiliser les environnements flushleft ou flushright.

On peut également le faire en utilisant les ressorts (prochaine réponse)

Lien permanent

Publiée 07 Jul '19, 12:47

Hugues's gravatar image

Hugues
772916
Taux d'acceptation : 25%

Modifiée 07 Jul '19, 12:52

Vous pouvez définir une commande \crule[justifie]{proportion}{epaisseur}

Ouvrir dans l'éditeur Overleaf
\documentclass{article}
\newcommand{\crule}[3][c]{%
    \par\noindent
    \makebox[\linewidth][#1]{\rule{#2\linewidth}{#3}}}
\begin{document}
\crule{.75}{1pt}

\crule[r]{.75}{1pt}

\crule[l]{.75}{1pt}

\crule[c]{.75}{1pt}
\end{document}
Lien permanent

Publiée 07 Jul '19, 12:57

touhami's gravatar image

touhami
9.7k410
Taux d'acceptation : 51%

Je viens proposer l'utilisation des ressorts à la résolution du problème.

Les ressorts peuvent être intéressants à utiliser pour une mise en page plus aisée.

Ouvrir dans l'éditeur Overleaf
\rule{0.5\linewidth}{1mm} : réglure à gauche

\mbox{}\hfill\rule{0.5\linewidth}{1mm} : réglure centrée

\mbox{}\hfill\rule{0.5\linewidth}{1mm} : réglure à droite

\mbox{}\hfill\rule{0.5\linewidth}{1mm}\hfill\mbox{} : réglure centrée

\hspace{\stretch{1}} \rule{0.5\linewidth}{1mm} \hspace{\stretch{1}} : réglure centrée

\hspace{\stretch{1}} \rule{0.5\linewidth}{1mm} : réglure à droite

Voici ce que cela donne :

alt text

Lien permanent

Publiée 07 Jul '19, 17:10

Hugues's gravatar image

Hugues
772916
Taux d'acceptation : 25%

Modifiée 07 Jul '19, 17:28

Pathe's gravatar image

Pathe ♦♦
7.5k42203251

@Hugues Qu'appelez-vous au juste « des ressorts » ?

(07 Jul '19, 21:15) idefix idefix's gravatar image

@idefix: On appelle ressort toute macro qui sert à pousser

  • horizontalement sur une ligne : hfil, hfill et hspace{stretch{}}

  • verticalement sur une page : vfil, vfill et vspace{stretch{}}

(07 Jul '19, 22:07) Hugues Hugues's gravatar image

@Hugues ce serait la même chose que des « espaces élastiques » que j'ai pu lire sur certains sites?

Site parlant d'espace élastique

Et est-ce qu'il y a un rapport avec les « glues » (les colles ?) ou bien rien à voir ?

(07 Jul '19, 23:43) idefix idefix's gravatar image

@idefix : Oui, c'est la même chose.

(08 Jul '19, 10:12) Hugues Hugues's gravatar image
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.