Le jeudi 22 août 2013 22:44:58 UTC+2, Vincent Belaïche a écrit :
> "
bernard...@free.fr" writes:
>
> > Je ne sais pas ce que recouvre exactement ce redimensionnement, mais
> > je trouve l'affichage des mots « N/réf » et « V/réf » est beaucoup
> > trop petit (je n'ose pas dire chiures de mouche…)
>
> Cette modif :
>
> 1) permettait d'avoir plus de place pour la référence, actuellement
> c'est 17mm en dur, au lieu de ça j'avais crée une longueur mise par
> défaut à 17mm, mais redimensionable par l'utilisateur.
>
> 2) n'avait pas d'effet sur les mots N/réf et V/réf. Vous pouvez grossir
> la taille avec ce hack (pas testé):
>
> \expandafter\def
>
> \expandafter\nrefname
>
> \expandafter{%
>
> \expandafter\normalsize\nrefname}
Je testerai dès que j'aurai un peu de temps.
> Mais c'est vrai qu'on pourrait avoir une macro \auxlineformat définie
> par défaut à \scriptsize pour changer le format de cette ligne.
Je suis tout à fait d'accord
> >> Pour votre suggestion, ça pourrait être mis dans une option du
> >> \documentclass pour agir sur toutes les lettres du document, ou bien
> >> dans un argument optionnel de \opening pour agir seulement sur la lettre
> >> courante.
> >> Je me demande si c'est la bonne façon de faire, ou bien s'il ne vaudrait>
> >> pas mieux des macros dédiées pour configurer cela --- histoire de
> >> pouvoir appeler ce genre de configuration depuis le profil (\institut)>
> >> de la lettre.
>
> > Ah ! Ce pourrait être pas mal, en effet
>
> >>
> >> Dans ce cas on pourrait soit faire la configuration pour tout le doc,
> >> soit pour la lettre courante seulement selon qu'on appellerait la macro
> >> avant l'env. lettre, ou dans l'env. avant le \opening.
> > Suggestion : on pourrait aussi appeler l'environnement lettre ou la
> > commande \opening avec un système clef=valeur – et des valeurs des
> > clefs par défaut.
> En effet, un truc pas très amical chez lettre c'est que pour changer un>
> grand nombre de paramètres la seule façon c'est de taper du code TeX (du
> genre \def\nomparam{la valeur}, ou \malongeur=xxx, et ça c'est pas très >
> cool pour l'utilisateur LaTeX de base. Ça mériterait bien une refonte...
>
Sans compter que pour modifier des paramètres qui n'étaient pas prévus pour être touchés, j'ai dû tâtonner dans le cambouis avec des @ à gogo dans des codes auxquels je ne comprenais pas grand-chose (du style modifier la valeur fournie par \def\toaddress@let@hpos{...})
>
> Ce qui serait bien ça serait un truc un peu hiérarchique à la pgf, par
> exemple
> \lettresetup{toaddress={hpos= ..., vpos = ..., width=..., align=...,format=...},
> fromaddress={hpos= ..., vpos = ..., width=..., align=...,format=...},
> nref={width=..., format=..., name=...}
> }
>
J'applaudis des deux mains et je saute d'un pied sur l'autre !
> >> Si je comprends bien, quand l'option est activée, l'indentation du
> >> premier paragraphe se calcule comme la somme d'un décalage --- lui même
> >> configurable --- et de la longueur de l'ouverture.
>
> > C'est ça. Je vous joins le code que j'avais écrit pour ça : en gros,>
> > j'introduis une nouvelle longueur \initindent qui contient la longueur>
> > de la formule introductive, que j'ajoute à \openingindent :
>
> > \newlength{\initindent}
> > \newcommand{\ouv}[1]{% remplace \opening>
> > \opening{\mbox{}\medskip #1}%>
> > \settowidth{\initindent}{#1}%>
> > \addtolength{\initindent}{\openingindent}\addtolength{\initindent}{-\parindent}%
> > \hspace*{\initindent}>
> > }%
>
> Petite question: à quoi sert le \mbox{}\medskip dans l'appel à \opening
De mémoire (j'ai fait ça il y a deux ou trois ans) : sans le \mbox{}, le code n'était pas opérationnel. Quant au \medskip , c'est que le corps de la lettre commence… une ligne en dessous, ni plus ni moins, et que je trouve que c'est un peu insuffisant : j'aime que la tête (la formule introductive) se détache du corps (de la lettre) (dualisme, quand tu nous tiens !). Bref, sérieusement : \medskip est là pour l'esthétique.
> > D'autre part, j'avais fait une autre modification, destinée à ce que
> > les lignes de l'adresse du destinaire apparaissent centrées, plutôt
> > qu'alignées à gauche (ça me semblait plus esthétique – j'en suis moins
> > sûr maintenant).
>
> Ce n'est pas une question d'esthétique, mais plutôt de conformité aux
> attente de La Poste. Il me semble que l'alignement à gauche sans
> justification est la bonne convention.
>
Peut-être bien, en effet. Pour les machines à lire l'adresse. Mais aucun de courriers ainsi présentés ne m'est jamais revenu.
>
> Par contre pour l'expéditeur, je pense qu'on peut faire plus fantaisiste
> sans que ça gêne.
>
> > Pour cela, dans l'environnement pspicture qui
>
> Nota, c'est un env. picture et non pspicture.
>
C'est un regrettable lapsus. J'ai trop fait de figures de cours avec pstricks !
>
> > s'occupe de cette partie de la lettre
>
> > (\put(\toaddress@let@hpos,\toaddress@let@vpos){...}), je mettais tout
>
> > simplement le \toname\\\toaddress dans un environnement tabular à une
> > seule colonne centrée, précédé d'un \hfill. De plus, pour>
> > l'esthétique, il devenait nécessaire de centrer aussi le \fromlieu, et
> > donc je le faisais figurer aussi dans l'environnement tabular, en
> > supprimant la commande
>
> > \put(\fromlieu@let@hpos,\fromlieu@let@vpos){...
> > On pourrait peut-être proposer à l'utilisateur le choix de
> > l'alignement de la partie droite de l'en-tête ? Cela dit, je n'ai pas
> > constaté d'effets de bord de mes modifications, mais je ne suis pas du
> > tout sûr qu'il n'y en ait pas.
>
>
>
> La question que je me pose c'est si on reste bien dans la boîte
> englobante défini par \begin{picture}(\pict@let@width,\pict@let@height)
> ou si ça bave à l'extérieur...
>
Ça ne m'est jamais arrivé, mon on peut en effet imaginer qu'un adresse extravagante (au Pays de Galles, par exemple) donne lieu à un débordement. Mais un \toaddress déborderait alors aussi bien de la \parbox, il me semble ?
>
> > En tout état de cause, voici mon code pour ce résultat :
>
> > \put(\toaddress@let@hpos,\toaddress@let@vpos){\makebox(0,0)[tl]
> > {\parbox{\toaddress@let@width}{\hfill\begin{tabular}{@{}c@{}}%
> > \ifx\@empty\fromlieu
> > \else\fromlieu, %
> > \fi
> > \ifx\@empty\pdate ~%
> > \else \pdate
> > \fi
> > \tabularnewline
> > \rule{0pt}{10ex}
> > \tabularnewline
> > \toname\tabularnewline\toaddress\end{tabular}
> > }}}%
>
>
> Ne serait-il pas plus simple (pas testé) d'inserer un \centering immediatement après
> \parbox{\toaddress@let@width}{
> et consorts pour obtenir le même résultat.
>
J'avais commencé par là, en effet, mais le but était d'obtenir que lieu et date, et les coordonnées du destinataire non seulement fussent centrées les unes par rapport aux autres, mais encore que le bord droit de ces coordonnées s'alignât avec la marge droite. D'où le \hfill avant l'environnement tabular. La commande \centering ne fournit que le centrage des éléments les uns par rapport aux autres.
Ce n'est peut-être pas le plus astucieux (sûrement, même), mais c'est ce qui était à la portée de ma compréhension de LaTeX. En outre, avec un environnement tabular, on peut aussi bien tout aligner à gauche comme le demande La Poste (ou à droite si on a envie de se fâcher définitivement avec elle).
>
> Vincent.
Bernard