Sujet : Re: \hbox \mbox et \dotfill
De : francois.patte (at) *nospam* mi.parisdescartes.fr (François Patte)
Groupes : fr.comp.text.texDate : 29. Sep 2021, 10:45:16
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <sj192t$8g1$1@dont-email.me>
References : 1 2
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.1.0
Le 29/09/2021 à 03:49, Jean-Côme Charpentier a écrit :
Le 28/09/2021 à 19:34, François Patte a écrit :
Bonjour,
bonjour,
\hbox \mbox "mangent" \dotfill (et, semble-t-il, tous les *fill).
C'est ça. Plus exactement \hbox tout nu et \mbox annulent tout ce qui est élastique (en étirement ou compression) et, en particulier tout ce qui est *fill puisque cela utilise en interne un "plus1fill".
Y a-t-il moyen de remiéder à ça?
Oui mais il faudrait savoir ce qu'on veut exactement. C'est quand même normal qu'une boîte interne ne puisse pas permettre des points de suite par défaut puisque sa largeur est celle de son contenu (sans élasticité). On peut forcer la main en imposant une largeur. Par exemple, si on reste à du TeX :
\hbox to10cm{Coucou \dotfill}
on peut aussi faire du LaTeX (c'est peut-être plus sûr si on ne connaît pas bien les modes de TeX) avec :
\makebox[10cm]{Coucou \dotfill}
Bien entendu, tout cela va être totalement indépendant de la largeur de ligne. Je ne sais pas si c'est bien cela qui est voulu !
Ah! Bien merci pour cette réponse et puisque c'est l'auteur de la macro qu'il a construite pour répondre à une de mes questions il y a quelques temps, je la re-soumets ici.
Voilà la macro:
\newlength{\hauteur}
\newcommand\abaisse[2]{%
\setlength{\hauteur}{%
\dimexpr \arraystretch\ht\strutbox+\arraystretch\dp\strutbox
}%
\setbox2=\hbox{#1}%
\setbox0=\hbox to\wd2{%
\hsize=\wd2
\vtop to \dimexpr \hauteur*#2{%
\vss
\hbox{#1}%
}%
}%
\box0
}
C'était pour aligner du texte dans les cellules d'un tableau du type:
\begin{longtable}{rp{.7\textwidth}rrrr}
Et obtenir comme résultat:
1 | du texte sur
plusieurs
lignes | quelque chose | ....
(J'ai marqué les colonnes par un | bien que ça n'existe pas forcément dans le tableau).
J'ai tenté de remplacer les \hbox de la macro par des \hbox to 10cm pour voir: si on remplace les 2 ça donne un résultat bizarre (on sort des limites de la page), si on remplace seulement la 2ème ça pourrait le faire mais les pointillés ne s'adapte pas à la largeur de la colonne:
\multicolumn{3}{l}{%
\abaisse{Ainsi le total de mouvement moyen diurne du soleil
est: \dotfill}{1}} & \multicolumn{3}{l}{%%
\begin{tabular}[t]{@{}ccc}
\textit{naj.} & \textit{vinaj.} &
\textit{tarp.}\footnoteAmark\
59 & 8 & 9
\end{tabular}
Je me demande d'ailleurs pourquoi cette possibilité n'existe pas dans les tableaux (La)TeX car c'est pratique pour décrire un algorithme:
1ère col .: numéro des opérations
2ème col.: description de l'opération
autres col. : résultat de la première opération
etc.
À moins que pour faire ça, il existe un "paquet" qui prend en charge ce type de disposition.
-- François PatteUniversité Paris Descartes