[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [AUCTeX] AUCTeX support in lettre

From: Vincent Belaïche
Subject: Re: [AUCTeX] AUCTeX support in lettre
Date: Tue, 1 Dec 2015 00:30:32 +0100

FYI, I will not do this work soon...

Now, concerning Eric's question about auto-completion, I do not intend to
reinvent the wheel. I will reuse whatever autocompletion mechanism is
provided by BBDB of with which BBDB has some already existing
connection. Well, my intention is plainly to use something like

(bbdb-completing-read-record "Recipient: ")

The technical problems which I forsee are the following:

- address presentation depends on recipient's country, so the question is
  how to configure that.

- Presence of country name in address depends on whether the sender and
  recipient are in the same country, and its presentation depends on the
  sender's country, for instance if you send a letter to Spain from
  France you would write Espagne, if you send it from Mexico you would
  write España, and if you send it from England you would write Spain.

- A same name can have several postal addresses, when there are several
  of them:
  - how to rank them / identify them
  - how to browse through them

My current thinking is that there will be some defcustom alist with some
mapping between county name regexp (e.g. "\\`U\.?S\.?A\.?\\'") and some
country symbol (e.g. 'usa), and then some other alist with some mapping
between country symbol and
1) some address formatter.
2) some alist for translating recipient's country symbol to country name 
   on sender's country symbol

The address formatter maybe a function or a string.

If formatter is a function then it would take as argument:

1) the recipient name
2) the recipient address streetline list, and
3) optionnally the translated recipient's country name (omission meaning
  do not insert.

For instance a standard formatter function could be:

(lambda (name streetlines &optional country)
  (insert "\\textsc{" name "}\\\\\n")
  (dolist (streetline streetlines)
     (insert streetline "\\\\\n"))
  (if country (insert country)
    (delet-region  (- (point) 3) (point))))

This function would be evalled in the letter buffer at point of
insertion of the address, and would do the string insertion by itself.

If formatter is a string it would contain markup for each of the address
field, plus some markup of what is conditional on field presence.  The
markup would be substituted with each field assigned the content of the
recipient address record, where country would be forced to nil in case
not to be inserted. For instance the string could use some XML-like
syntax as follows:


This would be easilly analysed with some expression like

        (insert "<body>" formatter-string "</body>")
        (xml-parse-region (point-min) (point-max)))


> To: address@hidden
> From: address@hidden
> Subject: Re: [AUCTeX] AUCTeX support in lettre
> Date: Sun, 15 Nov 2015 16:37:14 +0800
> Vincent Belaïche <address@hidden> writes:
>> Hello Mosè,
>> BBDB is some sort of phone book (well, it means insidious Big-Bother
>> Data Base). My intention is to have functions to read the to-address with
>> auto-completion by getting the data from BBDB by means of name or
>> organisation.
> Are you intending to provide support for some/all of the existing
> auto-completion packages (ac, helm, company, etc), or home-roll
> something of your own?
> Just curious, as I'm still fooling around with BBDB and completion. I
> use helm, and recently replaced auto-complete with company-mode, which I
> generally like better. But helm-bbdb is unmaintained (I asked, and was
> told I could have it!) and while company-mode completes fine on the To
> header in message-mode, it seems to have somehow broken cycling on the
> From header.
> Anyhow... this is a bit off-topic, so I won't follow up to the auctex
> list.
> E
>> It is not that simple because the way you present the address in a
>> postal sending may need some formatting dependent on the country, so
>> probably a defcustom is needed to make this more open. There may also be
>> some dependance on the LaTeX extension (koma-script, letter or lettre),
>> I have not investigated kom-script yet, but letter and lettre are quite
>> similar.
>> The same recipient name may also be associated with several snail mail
>> address, so there also needs to be some selection mechanism for this
>> case.
>> Concerning the place where to put the Elisp code, well I don't know
>> where the best place is, probably some new tex-bbdb.el would be a good
>> alternative.
>> VBR,
>> Vincent Belaïche
>> PS: CC to BBDB list.
>> ----------------------------------------
>>> From: address@hidden
>>> Date: Fri, 13 Nov 2015 12:23:13 +0100
>>> Subject: Re: [AUCTeX] AUCTeX support in lettre
>>> To: address@hidden
>>> CC: address@hidden
>>> Hi Vincent,
>>> 2015-11-12 23:23 GMT+01:00 Vincent Belaïche <address@hidden>:
>>>> Dear AUCTeX experts,
>>>> For your information I intend to add AUCTeX support to package lettre of 
>>>> which I am the maintainer.
>>>> Here is a preliminary verison, comments/brickbats welcome...
>>> Just a comment: please use `TeX-read-string' instead of `read-string' ;-)
>>>> My intention is to add BBDB support, I have seen that this is also
>>>> in the TODO list of AUCTeX for class letter. I think that it would
>>>> be a good idea if some code could be commonalized for all letter
>>>> supporting classes (the three main ones, AFAIK, are letter, lettre,
>>>> and koma-script).
>>> I don't know what BBDB actually does, could you please briefly explain
>>> which features provides and how do you plan to integrate with your
>>> package?
>>>> Any idea how to do that ? Any suggestion where to start ?
>>> Do you mean how to commonalize the functions used in those style
>>> files? If so, indeed we don't have a real place where to put
>>> functions that should be used only in style files, they simply go in
>>> tex.el or latex.el, where appropriate. tex-style.el has been used so
>>> far only for variables (as stated also in the header).
>>> Bye,
>>> Mosè
>> ------------------------------------------------------------------------------
>> _______________________________________________
>> address@hidden
>> BBDB Home Page:
> ------------------------------------------------------------------------------
> _______________________________________________
> address@hidden
> BBDB Home Page:

reply via email to

[Prev in Thread] Current Thread [Next in Thread]