Calcul de longueur d'un texte

13 views
Skip to first unread message

projetmbc

unread,
Oct 24, 2022, 6:54:36 AM10/24/22
to
Bonjour.

Dans le code suivant, j'aimerai connaître la longueur de l'agument #2 qui est du type "texte développé", ceci afin de calculer la longueur de la 2nde ligne horizontale.

% ---- Code de départ --- %

\documentclass{article}

\newcommand\blabla{
Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla
}

\newcommand\rulerstest[2][4cm]{
\null\hfill\raisebox{2pt}{\rule{#1}{2pt}} \textbf{\,#2\,} \raisebox{2pt}{\rule{#1}{2pt}}\hfill\null

\blabla\

\null\hfill\raisebox{2pt}{\rule{120pt}{2pt}}\hfill\null
}


\begin{document}

\rulerstest{Titre court}

\bigskip

\rulerstest[2cm]{Titre trop long}

\end{document}

projetmbc

unread,
Oct 24, 2022, 6:56:07 AM10/24/22
to
J'ai oublié d'indiquer que la valeur à calculer sera celle remplaçant 120pt dans mon code de départ.

Denis Bitouzé

unread,
Oct 24, 2022, 7:13:00 AM10/24/22
to
Le 24/10/22 à 03h54, projetmbc a écrit :

> Bonjour.

Bonjour,

> Dans le code suivant, j'aimerai connaître la longueur de l'agument #2 qui est du
> type "texte développé", ceci afin de calculer la longueur de la 2nde ligne
> horizontale.

Je ne suis pas certain d'avoir compris mais peut-être la commande
`\widthof` du package `calc` est-elle ce que vous cherchez. Cf. ce qui
se trouve dans l'environnement `center` que j'ai ajouté à votre
exemple :

--8<---------------cut here---------------start------------->8---
\documentclass{article}

\usepackage{calc}

\newcommand\blabla{
Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla
}

\newcommand\rulerstest[2][4cm]{
\null\hfill\raisebox{2pt}{\rule{#1}{2pt}} \textbf{\,#2\,} \raisebox{2pt}{\rule{#1}{2pt}}\hfill\null

\begin{center}
\textbf{#2}

\rule{\widthof{\textbf{#2}}}{2pt}
\end{center}

\blabla\

\null\hfill\raisebox{2pt}{\rule{120pt}{2pt}}\hfill\null
}


\begin{document}


\rulerstest{Titre court}

\bigskip

\rulerstest[2cm]{Titre trop long}

\end{document}
--8<---------------cut here---------------end--------------->8---

--
Denis

projetmbc

unread,
Oct 24, 2022, 7:23:01 AM10/24/22
to
Merci Denis.

Ce que je voulais obtenir est ce qui suit.

--8<---------------cut here---------------start------------->8---
\newcommand\rulerstest[2][4cm]{
\null\hfill\raisebox{2pt}{\rule{#1}{2pt}}\textbf{\,#2\,}\raisebox{2pt}{\rule{#1}{2pt}}\hfill\null

\blabla

\null\hfill\raisebox{2pt}{\rule{#1*2+\widthof{\textbf{\,#2\,}}}{2pt}}\hfill\null
}
--8<---------------cut here---------------end--------------->8---

Denis Bitouzé

unread,
Oct 24, 2022, 7:29:03 AM10/24/22
to
Le 24/10/22 à 04h23, projetmbc a écrit :

> Merci Denis.

Padkoi.

> Ce que je voulais obtenir est ce qui suit.
>
> --8<---------------cut here---------------start------------->8---
> \newcommand\rulerstest[2][4cm]{
> \null\hfill\raisebox{2pt}{\rule{#1}{2pt}}\textbf{\,#2\,}\raisebox{2pt}{\rule{#1}{2pt}}\hfill\null
>
> \blabla
>
> \null\hfill\raisebox{2pt}{\rule{#1*2+\widthof{\textbf{\,#2\,}}}{2pt}}\hfill\null
> }
> --8<---------------cut here---------------end--------------->8---

Et ça a donc l'effet escompté ?
--
Denis

projetmbc

unread,
Oct 24, 2022, 7:32:15 AM10/24/22
to
Oui. Voici un fichier test.

--8<---------------cut here---------------start------------->8---
\documentclass{article}

\usepackage{calc}

\newcommand\blabla{
Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla
}

\newcommand\rulerstest[2][4cm]{
\null\hfill\raisebox{2pt}{\rule{#1}{2pt}}\textbf{\,#2\,}\raisebox{2pt}{\rule{#1}{2pt}}\hfill\null

\blabla

% Indication donné par D. Bitouzé sur fr.comp.text.tex .
\null\hfill\raisebox{2pt}{\rule{#1*2+\widthof{\textbf{\,#2\,}}}{2pt}}\hfill\null
}


\begin{document}


\rulerstest{Titre court}

\bigskip

\rulerstest{Titre trop long}

\bigskip

\rulerstest{Titre trop, trop, trop long}

\bigskip

\rulerstest[3cm]{Titre trop, trop, trop long}
Reply all
Reply to author
Forward
0 new messages