Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Rédiger une lettre française avec XeLaTeX, quelle classe utiliser ?

430 views
Skip to first unread message

Damien Clauzel

unread,
Aug 8, 2013, 5:19:58 PM8/8/13
to
Bonjour à tous,

Je cherche une bonne classe pour rédiger une lettre française avec XeLaTeX, afin de profiter de son support avancé des polices.

J'utilise depuis des années la classe « lettre » de Denis Mégevand, mais celle-ci commence à prendre la poussière : la dernière version remonte à 2002. XeLaTeX ne peut pas compiler les documents qui l'utilisent en combinaison avec des paquets comme fontspec, xunicode, xltxtra… bref, tout ce qui fait l'intérêt de XeLaTeX par rapport à pdfTeX.

En fouillant sur le net, je trouve peu de résultats satisfaisants. Le meilleur serait la classe « isodoc », mais bien que les termes soient traduits, la mise en page est à l'américaine (alignement à gauche de la signature, par exemple).

D'où ma question : et vous, vous utilisez quoi pour rédiger (facilement) une (tripotée de) lettre(s) en XeLaTeX ?

Damien

prepa...@gmail.com

unread,
Aug 8, 2013, 6:27:47 PM8/8/13
to
Chez moi, la classe lettre fonctionne avec xelatex : je viens d'essayer successivement avec \setmainfont{Minion Pro} et \setmainfont{Gill Sans Std} et ça fonctionne parfaitement. Seul point : ce sont des courriers sans formules de maths.

Petite remarque en passant : il est inutile de charger xunicode et xlxtra, qui sont chargés par fontspec. Avez-vous supprimé du préambule les appels à inputenc et fontenc ?

Bernard

Vincent Belaďche

unread,
Aug 8, 2013, 11:38:41 PM8/8/13
to Vincent Belaďche
Au fait je suis depuis peu le mainteneur officiel de lettre avec la
bénédiction de D. Mégevand. J'ai déjà envoyé à Robin Fairbanks du CTAN
une mise à jour --- mais vacances d'été obligent je suppose qu'il lui
faut un peu de temps pour la mettre en ligne.

Donc, bon si il y a des modifs à faire, n'hésitez à le faire savoir en
donnant suite à ce fil.

Vincent.

PS-1: De toute façon même si le paquetage lui-même n'est pas à mettre à
jour, la documentation le mérite car elle ne dit rien concernant
l'usage avec XeLaTeX.

PS-2: Faisant partie également des mainteneurs de fmtcount je dois dire
qu'avec Nicola Talbot on a eu un problème concernant le chargement
automatique des langues en détectant ce que babel ou polyglossia
avait de chargé. Mais faute de réponse des mainteneurs de ces deux
paquetages le pb est resté en plan --- ça commence à faire un paie
de ça d'ailleurs.

Vincent Belaďche

unread,
Aug 8, 2013, 11:44:16 PM8/8/13
to Vincent Belaďche
Mes excuses à Robin, son nom est Fairbairns.

Vincent.

Damien Wyart

unread,
Aug 9, 2013, 2:22:43 AM8/9/13
to
* Damien Clauzel <dam...@clauzel.eu> in fr.comp.text.tex:
> Je cherche une bonne classe pour rédiger une lettre française avec
> XeLaTeX, afin de profiter de son support avancé des polices.

J'aime bien scrlttr2 de Koma-Script, mais je ne sais pas si cela
fonctionne avec XeLaTeX, que je n'utilise pas. Mais ça doit se tester
facilement...

http://www.komascript.de/files/scrguien.pdf

--
DW

Wolfgang Keller

unread,
Aug 9, 2013, 10:16:00 AM8/9/13
to
> Je cherche une bonne classe pour rédiger une lettre française avec
> XeLaTeX, afin de profiter de son support avancé des polices.

J'utilise scrlttr2 (Koma-Script) avec LuaLaTeX (et des polices OTF),
parce que celui-ci offre le meilleur support pour Microtype.

À+,

Wolfgang

Damien Clauzel

unread,
Aug 9, 2013, 1:05:11 PM8/9/13
to
Le vendredi 9 août 2013 00:27:47 UTC+2, prepa...@gmail.com a écrit :


J'ai des problèmes avec les commandes \ps, \cc et \encl qui affichent un carré barré en début de texte, et qui génèrent des espaces erratiques.

Mon ECM
___
\documentclass{lettre}

\usepackage{fontspec}
\setmainfont{Garamond Premier Pro}

\begin{document}

\begin{letter}

Ma bafouille.

\ps{Un court post-scriptum.}
\cc{Nom des autres destinataires}
\encl{Une pièce jointe}

\end{letter}
\end{document}
___



> Petite remarque en passant : il est inutile de charger xunicode et xlxtra, qui sont chargés par fontspec. Avez-vous supprimé du préambule les appels à inputenc et fontenc ?
Merci pour cette simplification !

Damien

Damien Clauzel

unread,
Aug 9, 2013, 1:10:53 PM8/9/13
to
Le vendredi 9 août 2013 08:22:43 UTC+2, Damien Wyart a écrit :

> J'aime bien scrlttr2 de Koma-Script, mais je ne sais pas si cela
> fonctionne avec XeLaTeX, que je n'utilise pas. Mais ça doit se tester
> facilement...
Je viens de tester : les exemples compilent sans soucis avec XeLaTeX.

En revanche, la mise en page n'est pas française, et je ne vois aucune option pour la paramétrer simplement.

Damien

Damien Wyart

unread,
Aug 9, 2013, 3:25:00 PM8/9/13
to
* Damien Clauzel <dam...@clauzel.eu> in fr.comp.text.tex:
> En revanche, la mise en page n'est pas française, et je ne vois aucune
> option pour la paramétrer simplement.

Oui, c'est vrai qu'il faut vite mettre les mains dans le cambouis pour
avoir exactement ce que l'on veut...

On peut s'inspirer de ceci :
http://pacquet.net/?q=node/2
(même sans utiliser la partie LyX).
Il y a une version proche distribuée avec Koma Script, NF.lco ; on peut
donc passer l'option NF à la classe scrlttr2.

Il y aussi ceci : http://pierre.fritsch.free.fr/blog/?p=374

Quelques explications intéressantes aussi ici (mais pas liées au
Français) :
http://tex.stackexchange.com/questions/103777/how-to-make-scrlttr2-look-like-letter

Sinon, il y a chletter (conventions suisses mais assez facile
à paramétrer).
http://mirrors.ctan.org/macros/latex/contrib/chletter/chletter.pdf

--
DW

Damien Clauzel

unread,
Aug 9, 2013, 4:36:47 PM8/9/13
to
Le vendredi 9 août 2013 21:25:00 UTC+2, Damien Wyart a écrit :

> Oui, c'est vrai qu'il faut vite mettre les mains dans le cambouis pour
> avoir exactement ce que l'on veut...

Mwouais :/

Je suis surtout à la recherche d'une solution clé en main pour générer une fournée de lettres bien présentables. Quelque chose comme la classe « lettre », donc, mais un poil plus à jour ;P

Damien

Wolfgang Keller

unread,
Aug 9, 2013, 5:31:03 PM8/9/13
to
> Je suis surtout à la recherche d'une solution clé en main pour
> générer une fournée de lettres bien présentables. Quelque chose comme
> la classe « lettre », donc, mais un poil plus à jour ;P

Je ne comprends pas votre problème.

C'est précisement ce que scrlttr2 fait, avec un simple

\LoadLetterOption{NF}

À+,

Wolfgang

Damien Clauzel

unread,
Aug 9, 2013, 6:32:56 PM8/9/13
to
Le vendredi 9 août 2013 23:31:03 UTC+2, Wolfgang Keller a écrit :

> Je ne comprends pas votre problème.
>
>
>
> C'est précisement ce que scrlttr2 fait, avec un simple
>
>
>
> \LoadLetterOption{NF}

Malheureusement, non : la mise en page n'est pas française. Par exemple, la signature de l'auteur de la lettre, accompagnée de son nom, est alignée à gauche. Également, les coordonnées de l'expéditeur sont en haut au milieu-droit, etc.

Il faudrait corriger à la main le positionnement des éléments, donc ça perd tout son intérêt par rapport à la classe « lettre » qui est correcte. Mais celle-ci me pose justement des soucis avec XeLaTeX…

Damien

bernard...@free.fr

unread,
Aug 10, 2013, 5:47:38 AM8/10/13
to
Je voulais signaler que, pour moi, les seuls problèmes avec xelatex sont les commades pour les annexes (\cc, \encl et \ps), poutr lesquelles apparaît un symbole qui ressemble à celui du produit tensoriel. Il me semble que c'est la même chose qui apparaît avec les lettres non-ascii lorsqu'on compile un fichier qui n'est pas en utf8. Si ça évoque quelque chose à quelqu'un de savant…

D'autre part, je dosi dire aussi que les mêmes commandes, compilées avec pdflatex, provoquent l'apparition de ce qui ressemble à une ligature ct (un petit arc de cercle. Donc chez moi, et peut-être chez d'autres, même avec pdflatex, il y a un problème – qui se voit beaucoup qu'avec xelatex, naturellement.

Bernard

moi-meme

unread,
Aug 12, 2013, 10:25:57 AM8/12/13
to
Mais si mais si : il y a un package fait par Jean-Marie Pacquet en 2006
qui marche très bien. Je l'utilise même avec LyX sans souci.

Il y a des fichiers LyX de base et des fichiers .lco de configuration
pour Koma-Script (à la "normale").

Vus ici :
http://pacquet.net/?q=node/2

Vincent Bela�che

unread,
Aug 20, 2013, 4:33:10 PM8/20/13
to Vincent Bela�che
Le coup du produit tensoriel c'est l'un des bogues que j'ai corrigé sur
lettre, je peux vous envoyer la correction directement ---
malheureusement Robin Fairbarns ne l'a toujours pas mis en ligne.

Vincent.

Vincent Bela�che

unread,
Aug 20, 2013, 4:49:39 PM8/20/13
to Vincent Bela�che
vincent....@gmail.com (Vincent Bela�che) writes:


[...]

>
> Le coup du produit tensoriel c'est l'un des bogues que j'ai corrig�s
> sur lettre, je peux vous envoyer la correction directement ---
> malheureusement Robin Fairbairns ne l'a toujours pas mis en ligne.
>
> Vincent.

Bon, en attendant que �a arrive sur le CTAN, pour ceux que �a interresse
j'ai mis la correction sur ma page�:

http://vincentbelaiche.pagesperso-orange.fr/boite/lettre.tgz

Pri�re de me faire savoir si avec �a les probl�mes xelatex que vous avez
rencontr�s sont r�solus ...

Vincent.

PS: pour ceux qui sont sous Ou�ndoz, on peut ouvrir les tgz avec 7zip.

Vincent Bela�che

unread,
Aug 20, 2013, 4:51:09 PM8/20/13
to Vincent Bela�che
vincent....@gmail.com (Vincent Bela�che) writes:


[...]

>
> Le coup du produit tensoriel c'est l'un des bogues que j'ai corrig�s
> sur lettre, je peux vous envoyer la correction directement ---
> malheureusement Robin Fairbairns ne l'a toujours pas mis en ligne.
>
> Vincent.

Vincent Bela�che

unread,
Aug 20, 2013, 5:15:30 PM8/20/13
to Vincent Bela�che
Damien Clauzel <dam...@clauzel.eu> writes:

> Le vendredi 9 ao�t 2013 00:27:47 UTC+2, prepa...@gmail.com a �crit�:
>
>
> J'ai des probl�mes avec les commandes \ps, \cc et \encl qui affichent un carr� barr� en d�but de texte, et qui
> g�n�rent des espaces erratiques.
>
> Mon ECM
> ___
> \documentclass{lettre}
>
> \usepackage{fontspec}
> \setmainfont{Garamond Premier Pro}
>
> \begin{document}
>
> \begin{letter}
>
> Ma bafouille.
>
> \ps{Un court post-scriptum.}
> \cc{Nom des autres destinataires}
> \encl{Une pi�ce jointe}
>
> \end{letter}
> \end{document}
> ___
>
>
>
>> Petite remarque en passant : il est inutile de charger xunicode et xlxtra, qui sont charg�s par
> fontspec. Avez-vous supprim� du pr�ambule les appels � inputenc et fontenc ?
> Merci pour cette simplification !
>
> Damien

Je n'ai pas r�ussi � compiler parce que je n'ai pas Garamond Premier Pro
sur ma machine et je ne sais pas o� le prendre, mais en commentant cette
ligne voici ce qui compile chez moi:

-----------------------------------------------------------------------
\documentclass{lettre}

\usepackage{fontspec}
%\setmainfont{Garamond Premier Pro}

\begin{document}

\begin{letter}{adresse du destinataire}
\name{Mon Nom}
\opening{Salut mon gars}

Ma bafouille.

\closing{Hasta la vista camarade}

\ps{PS~:~}{Un court post-scriptum.}
\cc{Nom des autres destinataires}
\encl{Une pi�ce jointe}


\end{letter}
\end{document}
-----------------------------------------------------------------------

Les modifs:

- ajouter un arg � l'env. lettre
- ajouter \opening et \closing
- \ps prend 2 args

Vincent.

bernard...@free.fr

unread,
Aug 20, 2013, 8:36:10 PM8/20/13
to
Le mardi 20 août 2013 23:15:30 UTC+2, Vincent Belaïche a écrit :
> Damien Clauzel <dam...@clauzel.eu> writes:
>
>
>
> > Le vendredi 9 août 2013 00:27:47 UTC+2, prepa...@gmail.com a écrit :
>
> >
>
> >
>
> > J'ai des problèmes avec les commandes \ps, \cc et \encl qui affichent un carré barré en début de texte, et qui
>
> > génèrent des espaces erratiques.
>
> >
>
> > Mon ECM
>
> > ___
>
> > \documentclass{lettre}
>
> >
>
> > \usepackage{fontspec}
>
> > \setmainfont{Garamond Premier Pro}
>
> >
>
> > \begin{document}
>
> >
>
> > \begin{letter}
>
> >
>
> > Ma bafouille.
>
> >
>
> > \ps{Un court post-scriptum.}
>
> > \cc{Nom des autres destinataires}
>
> > \encl{Une pièce jointe}
>
> >
>
> > \end{letter}
>
> > \end{document}
>
> > ___
>
> >
>
> >
>
> >
>
> >> Petite remarque en passant : il est inutile de charger xunicode et xlxtra, qui sont chargés par
>
> > fontspec. Avez-vous supprimé du préambule les appels à inputenc et fontenc ?
>
> > Merci pour cette simplification !
>
> >
>
> > Damien
>
>
>
> Je n'ai pas réussi à compiler parce que je n'ai pas Garamond Premier Pro
>
> sur ma machine et je ne sais pas où le prendre, mais en commentant cette
>
> ligne voici ce qui compile chez moi:
>
>
>
> -----------------------------------------------------------------------
>
> \documentclass{lettre}
>
>
>
> \usepackage{fontspec}
>
> %\setmainfont{Garamond Premier Pro}
>
>
>
> \begin{document}
>
>
>
> \begin{letter}{adresse du destinataire}
>
> \name{Mon Nom}
>
> \opening{Salut mon gars}
>
>
>
> Ma bafouille.
>
>
>
> \closing{Hasta la vista camarade}
>
>
>
> \ps{PS~:~}{Un court post-scriptum.}
>
> \cc{Nom des autres destinataires}
>
> \encl{Une pièce jointe}
>
>
>
>
>
> \end{letter}
>
> \end{document}
>
> -----------------------------------------------------------------------
>
>
>
> Les modifs:
>
>
>
> - ajouter un arg à l'env. lettre
>
> - ajouter \opening et \closing
>
> - \ps prend 2 args
>
>
>
> Vincent.

J'ai sur ma machine Garamond Premier Pro, ainsi que Sabon Next LT Pro, et ça marche au petit poil ! Je joindrais bien le pdf, mais je ne sais pas faire (d'ailleurs est-ce possible ?). En tout cas, merci pour ce travail.

D'autre part, j'avais bricolé un aménagement de la classe lettre pour que la présentation de la formule d'ouverture soit comme on me l'avait apprise dans mon enfance : à savoir que la formule (, &c.) pouvait avoir une indentation (variable) par rapport au corps de la lettre , et que le début du corps est aligné verticalement avec la fin de la formule introductive, comme ceci :

Chère Mademoiselle,

Je serais très heureux blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla

Est-ce que cela vaudrait la peine, à votre avis, d'être rajouté ou adapté (le code n'est sûrement pas parfait) à la version officielle de la classe ?

Bernard

Vincent Bela�che

unread,
Aug 21, 2013, 3:30:55 PM8/21/13
to Vincent Bela�che
bernard...@free.fr writes:

> Le mardi 20 ao�t 2013 23:15:30 UTC+2, Vincent Bela�che a �crit�:

[...]

>>
>> Vincent.
>
> J'ai sur ma machine Garamond Premier Pro, ainsi que Sabon Next LT Pro, et �a marche au petit poil ! Je joindrais bien le pdf, mais je ne sais pas faire (d'ailleurs est-ce possible ?). En tout cas, merci pour ce travail.
>
> D'autre part, j'avais bricol� un am�nagement de la classe lettre pour que la pr�sentation de la formule d'ouverture soit comme on me l'avait apprise dans mon enfance : � savoir que la formule (, &c.) pouvait avoir une indentation (variable) par rapport au corps de la lettre , et que le d�but du corps est align� verticalement avec la fin de la formule introductive, comme ceci :
>
> Ch�re Mademoiselle,
>
> Je serais tr�s heureux blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla
>
> Est-ce que cela vaudrait la peine, � votre avis, d'�tre rajout� ou adapt� (le code n'est s�rement pas parfait) � la version officielle de la classe ?
>

Ben si c'est r�tro-compatible et qu'on le documente, pourquoi pas.

De toute fa�on je voulais aussi faire des ajouts fonctionnels ---
notamment la possibilit� de redimensionner les r�f�rences \Nref et
\Vref.

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 demance 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.

Dans ce cas on pourrait soit faire la configuration pour tout le doc,
soit pour la lettre courante seulement selon qu'on appelerait la macro
avant l'env. lettre, ou dans l'env. avant le \opening.

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 longeur de l'ouverture.

Vincent.

> Bernard

prepa...@gmail.com

unread,
Aug 22, 2013, 7:24:10 AM8/22/13
to
Le mercredi 21 août 2013 21:30:55 UTC+2, Vincent Belaïche a écrit :
> bernard...@free.fr writes:
>
>
>
> > Le mardi 20 août 2013 23:15:30 UTC+2, Vincent Belaïche a écrit :
>
>
>
> [...]
>
>
>
> >>
>
> >> Vincent.
>
> >
>
> > D'autre part, j'avais bricolé un aménagement de la classe lettre pour que la présentation de la formule d'ouverture soit comme on me l'avait apprise dans mon enfance : à savoir que la formule (, &c.) pouvait avoir une indentation (variable) par rapport au corps de la lettre , et que le début du corps est aligné verticalement avec la fin de la formule introductive, comme ceci :
>
> >
>
> > Chère Mademoiselle,
>
> >
>
> > Je serais très heureux blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla
>
> >
>
> > Est-ce que cela vaudrait la peine, à votre avis, d'être rajouté ou adapté (le code n'est sûrement pas parfait) à la version officielle de la classe ?
>
> >
>
>
>
> Ben si c'est rétro-compatible et qu'on le documente, pourquoi pas.
>
>
>
> De toute façon je voulais aussi faire des ajouts fonctionnels ---
>
> notamment la possibilité de redimensionner les références \Nref et
>
> \Vref.

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…)

> 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 comande \opening avec un système clef=valeur – et des valeurs des clefs par défaut.

>
> 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}
}%

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). Pour cela, dans l'environnement pspicture qui 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. 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}
}}}%
>
>
> Vincent.

Bernard

Vincent Bela�che

unread,
Aug 22, 2013, 4:44:58 PM8/22/13
to Vincent Bela�che
"bernard...@free.fr" <prepa...@gmail.com> writes:

> Le mercredi 21 août 2013 21:30:55 UTC+2, Vincent Belaïche a écrit :
>> bernard...@free.fr writes:

[...]

>> >
>>
>>
>>
>> Ben si c'est rétro-compatible et qu'on le documente, pourquoi pas.
>>
>>
>>
>> De toute façon je voulais aussi faire des ajouts fonctionnels ---
>>
>> notamment la possibilité de redimensionner les références \Nref et
>>
>> \Vref.
>
> 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}

Mais c'est vrai qu'on pourrait avoir une macro \auxlineformat définie
par défaut à \scriptsize pour changer le format de cette ligne.


>> 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
> comande \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...

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=...}
}


>>
>> 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

> 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.

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.

> 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...

> 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.

Vincent.

>> Vincent.
>
> Bernard

bernard...@free.fr

unread,
Aug 22, 2013, 7:11:21 PM8/22/13
to
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

Damien Clauzel

unread,
Aug 22, 2013, 10:40:28 PM8/22/13
to
Le mardi 20 août 2013 22:49:39 UTC+2, Vincent Belaïche a écrit :

> j'ai mis la correction sur ma page :
> http://vincentbelaiche.pagesperso-orange.fr/boite/lettre.tgz
>
> Prière de me faire savoir si avec ça les problèmes xelatex que vous avez
> rencontrés sont résolus ...

Cette version fonctionne parfaitement avec xelatex, bravo et merci ! ;)

Est-ce qu'il est possible d'avoir une valeur implicite pour le 1e argument de la nouvelle version de \ps, afin de garder la compatibilité avec les anciennes lettres ?

Damien

Vincent Bela�che

unread,
Aug 23, 2013, 2:46:30 AM8/23/13
to Vincent Bela�che
Damien Clauzel <dam...@clauzel.eu> writes:

> Le mardi 20 ao�t 2013 22:49:39 UTC+2, Vincent Bela�che a �crit�:
>
>> j'ai mis la correction sur ma page�:
>> http://vincentbelaiche.pagesperso-orange.fr/boite/lettre.tgz
>>
>> Pri�re de me faire savoir si avec �a les probl�mes xelatex que vous avez
>> rencontr�s sont r�solus ...
>
> Cette version fonctionne parfaitement avec xelatex, bravo et merci ! ;)
>
> Est-ce qu'il est possible d'avoir une valeur implicite pour le 1e
> argument de la nouvelle version de \ps, afin de garder la
> compatibilit� avec les anciennes lettres ?
>
> Damien


D'autant qu'il m'en souvienne \ps a toujours eu 2 arg.

Je suis d'accord que �a serait mieux si le premier argument �tait un arg
optionnel (entre []), et m�me qu'on ait une option pour contr�ler cela
--- par ex. psname=P.S. (voir le fil avec Bernard Alfonsi) --- mais �a
me pose quand m�me un probl�me de conscience de changer la d�finition de
\ps d'une fa�on non r�trocompatible.

C'est pour cela que �a m'interesse de savoir � partir de quand c'est
pass� de 1 � 2 arg --- je pourrais faire des recherches, mais si vous
m'�criviez avec quelle version de lettre �a fonctionnait avec un seul
arg je gagnerai du temps.

Vincent.

Vincent Bela�che

unread,
Aug 23, 2013, 3:01:02 AM8/23/13
to Vincent Bela�che
bernard...@free.fr writes:

> Le jeudi 22 août 2013 22:44:58 UTC+2, Vincent Belaïche a écrit :

[...]

>
>> 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{...})

Oui j'avais moi même rencontrer le même genre de difficultés quand je
suis devenu utilisateur de lettre.

>>
>> 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 !
>

Je me demande quel serait le meilleur paquetage pour gérer les clef ---
xkeyval, pgfkeys... --- j'avoue que je ne connais pas bien les
différences.

Ça serait bien si on pouvait également avoir des raccourcis qui permette
d'affecteur plusieurs paramètres en même temps, par exemple:

ref={width=xxx}

pour faire

nref={width=xxx},vref={width=xxx}

comme ça on règle les deux largeurs en même temps.

>> >> 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.
>

N'est-ce pas la distance \openingspace qui sert à régler ce que vous
faites avec ce \medskip.

N'eût-il pas suffit d'un

\advance\openingspace by 1ex

par exemple.

>
>> > 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.

Merci La Poste

À dire vrai il faudrait que je cherche sur le site de La Poste pour être
sûr de ce qu'ils recommandent.

>>

[...]

>>
>>
>>
>> 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 ?

Je pense que ça reviendrait à la ligne --- pas testé, alors qu'avec un
tabular on dépasserait à droite.

Ceci dit entre être trop large ou trop haut, je me demande quel est le
moindre mal. Le but c'est de rester dans la fenêtre d'une enveloppe à
fenêtre.

>
>>
>> > En tout état de cause, voici mon code pour ce résultat :
>>

[...]

>>
>>
>> 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).
>

Ok, je vois. On aurait donc une option de plus à gérer: comment
aligne-t-on la boîte d'adresse au sein de la fenêtre d'adresse.

>>
>> Vincent.
>
> Bernard

Vincent

Damien Clauzel

unread,
Aug 23, 2013, 4:23:54 AM8/23/13
to
Le vendredi 23 août 2013 08:46:30 UTC+2, Vincent Belaïche a écrit :

> C'est pour cela que ça m'interesse de savoir à partir de quand c'est
>
> passé de 1 à 2 arg --- je pourrais faire des recherches, mais si vous
>
> m'écriviez avec quelle version de lettre ça fonctionnait avec un seul
>
> arg je gagnerai du temps.

Aucune idée. J'utilise très (très très très très) rarement les post-scriptum dans des lettres. Autant ils ont un intérêt dans une lettre manuscrite — difficile à corriger à moins de gratter le papier —, autant dans le numérique on peut reprendre un document sans pénalité.

Personnellement, changer le signature de la macro \ps ne me pose aucun soucis. C'est uniquement un réflexe d'informaticien qui me fait lever un sourcil (un coup de find + grep et je vérifie mes documents, donc aucun soucis réel de mon côté) ;)

Damien

Damien Clauzel

unread,
Aug 23, 2013, 4:33:46 AM8/23/13
to
Le vendredi 23 août 2013 09:01:02 UTC+2, Vincent Belaïche a écrit :

> >> > 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.
>
>
>
> Merci La Poste
>
>
>
> À dire vrai il faudrait que je cherche sur le site de La Poste pour être
>
> sûr de ce qu'ils recommandent.

J'ai refait récemment un modèle de document pour imprimer des enveloppes. Je me suis basé sur cette doc de la Poste pour placer les éléments correctement : http://www.laposte.fr/courrierinternational/index.php?id=405

Aucun soucis à signaler : les lettres arrivent là où elles sont supposées aller.

Damien

Le TeXnicien de surface

unread,
Aug 23, 2013, 5:30:07 AM8/23/13
to
Le 23/08/2013 09:01, Vincent Bela�che a écrit :
> bernard...@free.fr writes:

> Je me demande quel serait le meilleur paquetage pour gérer les clef ---
> xkeyval, pgfkeys... --- j'avoue que je ne connais pas bien les
> différences.
>
> Ça serait bien si on pouvait également avoir des raccourcis qui permette
> d'affecteur plusieurs paramètres en même temps, par exemple:
>
> ref={width=xxx}
>
> pour faire
>
> nref={width=xxx},vref={width=xxx}
>
> comme ça on règle les deux largeurs en même temps.

pour le coup, je pense que les "styles" de pgfkeys peuvent être utiles,
cependant il existe encore un autre moyen : l3keys + l3keys2e
c'est vrai qu'il faut un peu plonger dans la version expl3 des
primitives mais comme c'est très régulier c'est plus simple qu'avec
LaTeXe. l3keys définit un attribut ".meta" qui ressemble beaucoup au
"styles" de pgfkeys.

Si ça t'intéresse tu as des articles de l'auteur de l3keys, Joseph
Wright, dans TUGboat (notamment le 31, n° 1 de 2010), sur les clés avec
une comparaison de diverses solutions (30, n°1 de 2009).
Si ça t'intéresse aussi j'ai un début d'article qui reprend en français
une bonne partie de tout ça plus la trad des docs de pgfkeys et l3keys.
C'est encore en version alpha mais je peux transmettre en privé.

@+
--
Le TeXnicien de surface

bernard...@free.fr

unread,
Aug 23, 2013, 8:22:06 AM8/23/13
to
Le vendredi 23 août 2013 09:01:02 UTC+2, Vincent Belaïche a écrit :
> [...]
>
> Je me demande quel serait le meilleur paquetage pour gérer les clef ---
> xkeyval, pgfkeys... --- j'avoue que je ne connais pas bien les
> différences.
>
Pas d'idée précise. Je connais un peu xkeyval, parce que j'ai commencé par keyval. Toutefois, la suggestion du TeXnicien de surface (l3keys) me paraît séduisante (c'est « l'avenir » ?)

>
> Ça serait bien si on pouvait également avoir des raccourcis qui permettent
> d'affecter plusieurs paramètres en même temps, par exemple:
>
> ref={width=xxx}
>
> pour faire
>
> nref={width=xxx},vref={width=xxx}
>
> comme ça on règle les deux largeurs en même temps.
>

Un peu à la façon dont fonctionne l'extension geometry ?


> [...]
>
> > Bref, sérieusement : \medskip est là pour l'esthétique.
>
> N'est-ce pas la distance \openingspace qui sert à régler ce que vous
> faites avec ce \medskip.
> N'eût-il pas suffit d'un \advance\openingspace by 1ex > par exemple.

Après vérification dans le code et test, \openingspace est la distance verticale ajoutée entre l'adresse du destinataire et la ligne « Objet : » ou celle des références, et aussi entre ces lignes et la formule introductive.

Éventuellement, une nouvelle longueur (quelque chose comme \openingvskip) pourrait être utilisée pour pouvoir paramétrer la séparation verticale entre la formule et le corps de la lettre.

>
> [...]
>
> Ok, je vois. On aurait donc une option de plus à gérer: comment
> aligne-t-on la boîte d'adresse au sein de la fenêtre d'adresse.
>

Voui, même deux : celle de l'expéditeur peut aussi être concernée.


Rajoutis : à propos de l'inconvénient de l'emploi de l'environnement tabular et du risque de débordement, est-ce que l'emploi de tabular* ne permettrait pas d'y parer, à ce risque ? Je précise : l'entrée de l'environnement se ferait par :
\begin{tabular*}{\toaddress@let@width}{c@{}}

Cela permettrait d'assurer que la boîte « effective » contenant l'adresse soit placée contre le bord droit de la lettre, tout en gardant les éléments centrés les uns par rapport aux autres.

Le but final étant d'obtenir une boîte de la largeur de la plus longue ligne de l'adresse, puis de la placer à la marge droite.

Dernière solution : si débordement il devait y avoir, rien n'empêche de couper la ligne litigieuse en deux.

Un dernier point me titille depuis longtemps : pourquoi \letterwidth n'est-il pas égal à \textwidth ? J'ai dû bidouiller pour que le bord gauche de l'adresse de l'expéditeur soit aligné avec celui du corps de la lettre.

> >>
>
> >> Vincent.
>
> > Bernard
>
> Vincent

Bernard (et les autres…)

Vincent Bela�che

unread,
Aug 23, 2013, 4:12:48 PM8/23/13
to Vincent Bela�che
Damien Clauzel <dam...@clauzel.eu> writes:


[...]

>>
>>
>> Merci La Poste
>>
>>
>>
>> � dire vrai il faudrait que je cherche sur le site de La Poste pour �tre
>>
>> s�r de ce qu'ils recommandent.
>
> J'ai refait r�cemment un mod�le de document pour imprimer des
> enveloppes. Je me suis bas� sur cette doc de la Poste pour placer les
> �l�ments correctement :
> http://www.laposte.fr/courrierinternational/index.php?id=405
>
> Aucun soucis � signaler : les lettres arrivent l� o� elles sont suppos�es aller.
>
> Damien

Ok, �a confirme ce que je pensais: le destinataire est bien align� �
gauche.
Vincent.

Vincent Bela�che

unread,
Aug 23, 2013, 4:14:19 PM8/23/13
to Vincent Bela�che
Le TeXnicien de surface <le.texnicie...@chezmoi.invalid>
writes:
Oui ça m'interesse, même si je ne vais pas me plonger dedans tout de
suite. Merci pour la proposition.

Vincent.

Vincent Bela�che

unread,
Aug 23, 2013, 4:50:37 PM8/23/13
to Vincent Bela�che
Ok, peut-être que \bodyspace serait un meilleur nom, si \openingspace
c'est l'espace avant la formule d'ouverture, alors il est logique de
nommer \bodyspace l'espace avant le corps.

>>
>> [...]
>>
>> Ok, je vois. On aurait donc une option de plus à gérer: comment
>> aligne-t-on la boîte d'adresse au sein de la fenêtre d'adresse.
>>
>
> Voui, même deux : celle de l'expéditeur peut aussi être concernée.
>

Il faudrait pouvoir contrôler cela de façon séparée: typiquement on
pourrait centrer l'expériteur pour faire Zoli, mais garder le
destinataire aligné à gauche pour plaire à madame La Poste.

>
> Rajoutis : à propos de l'inconvénient de l'emploi de l'environnement
> tabular et du risque de débordement, est-ce que l'emploi de tabular*
> ne permettrait pas d'y parer, à ce risque ? Je précise : l'entrée de
> l'environnement se ferait par :
> \begin{tabular*}{\toaddress@let@width}{c@{}}
>
> Cela permettrait d'assurer que la boîte « effective » contenant
> l'adresse soit placée contre le bord droit de la lettre, tout en
> gardant les éléments centrés les uns par rapport aux autres.
>

Sauf que \toaddress@let@width est fixée à 80mm, il faudrait ajouter du
code pour le calculer comme la largeur de l'élément le plus
large. Enfin, bref à revient un peut à reinventer tabular, sauf qu'on
aurait la possibilité de limiter et replier qqchose de trop large (c'est
à dire limiter à (160mm-20mm-15mm) au max, si je me fie à

http://www.laposte.fr/courrierinternational/index.php?id=405

D'ailleurs, je me demande pourquoi \toaddress@let@width est fixée à
80mm, alors que La Poste dit 100mm mini.

> Le but final étant d'obtenir une boîte de la largeur de la plus longue
> ligne de l'adresse, puis de la placer à la marge droite.
>
> Dernière solution : si débordement il devait y avoir, rien n'empêche
> de couper la ligne litigieuse en deux.
>
> Un dernier point me titille depuis longtemps : pourquoi \letterwidth
> n'est-il pas égal à \textwidth ? J'ai dû bidouiller pour que le bord
> gauche de l'adresse de l'expéditeur soit aligné avec celui du corps de
> la lettre.
>

Apparemment la raison brute est qu'il y a un appel à

\marge{15mm}%

dans lettre.cls

et que ça réduit \letterwidth de 15mm par rapport à \textwidth.

Je suppose que la raison est que des commandes comme \lettercentering et
\normalcentering se differencie de 15mm, mais à dire vrai je n'ai jamais
utilisé ça.

Ceci dit qq chose me choque: c'est que juste après cet appel à \marge,
\letterwidth est utilisé pour calculé d'autre distance. Il me semble que
ça devrait être fait au sein de \marge parce que cette macro est
commentée comme faisant partie de l'interface utilisateur.


[...]

>
> Bernard (et les autres…)

Vincent.

Vincent Bela�che

unread,
Aug 23, 2013, 5:16:49 PM8/23/13
to Vincent Bela�che
Personnellement aussi je trouve aussi que ce \ps qui ne fait pas comme
tous les autres (\encl, \cc, et consorts) est un peu embêtant. Ça me
dirait bien de changer sa signature, mais il faut que j'y réflechisse un
peu plus. Il vaudrait mieux créer une nouvelle macro et faire brailler
\ps comme obsolète.

Que pensez vous de \Ps --- après tout \Vref et \Nref ont remplacé \vref
et \nref.

Par contre je suis toujours preneur de la version de lettre dans
laquelle \ps avait un seul argument. J'ai relu la liste de
"release-note" et rien trouvé sur ça.

Vincent.
0 new messages