emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: "Daniel E. Doherty" <ded@ddoherty.net>
To: emacs-orgmode@gnu.org
Subject: Re: Allow Currency Symbols and Grouping Commas in Table Numbers
Date: Fri, 27 May 2022 08:49:47 -0500	[thread overview]
Message-ID: <87y1ynul7o.fsf@ddoherty.net> (raw)
In-Reply-To: <87a6b3gza9.fsf@localhost>


On Fri, May 27 2022, Ihor Radchenko wrote:

Ihor, thanks for your thoughts, but this does not solve my problem.

Here is an sample org table that exemplifies the problem:

==================================================
#+begin_SRC emacs-lisp
  (setq org-calc-default-modes
    '(calc-internal-prec 12
             calc-float-format  (float 8)
             calc-angle-mode    deg
             calc-prefer-frac   nil
             calc-symbolic-mode nil
             calc-language latex ;; <--- this is new compared to default
             calc-date-format (YYYY "-" MM "-" DD " " Www (" " hh ":" mm))
             calc-display-working-message t))
#+end_SRC

#+RESULTS:
| calc-internal-prec | 12 | calc-float-format | (float 8) | calc-angle-mode | deg | calc-prefer-frac | nil | calc-symbolic-mode | nil | calc-language | latex | calc-date-format | (YYYY - MM - DD   Www (  hh : mm)) | calc-display-working-message | t |


| Description  | Amount          |
|--------------+-----------------|
| Mortage      | $125,000.26     |
| Credit Cards | 6,325.00        |
| Auto Loan    | 14,853.00       |
|--------------+-----------------|
| Total        | :=vsum(@I..@II) |
#+TBLFM: @5$2=vsum(@I..@II)

-> Error: Invalid field specifier "$125"

| Description  |    Amount |
|--------------+-----------|
| Mortage      | 125000.26 |
| Credit Cards |   6325.00 |
| Auto Loan    |  14853.00 |
|--------------+-----------|
| Total        | 146178.26 |
#+TBLFM: @5$2=vsum(@I..@II)


| Description  | Amount     |
|--------------+------------|
| Mortage      | 125,000.26 |
| Credit Cards | 6,325.00   |
| Auto Loan    | 14,853.00  |
|--------------+------------|
| Total        | 1323.26    |
#+TBLFM: @5$2=vsum(@I..@II)

Note that the total is wrong.


| Description  | Amount                     |
|--------------+----------------------------|
| Mortage      | \dollar 125000.26          |
| Credit Cards | 6325.00                    |
| Auto Loan    | 14853.00                   |
|--------------+----------------------------|
| Total        | 125000.26 \dollar + 21178. |
#+TBLFM: @5$2=vsum(@I..@II)

Total is still wrong.
============================================
>
> You can, for example, do
>
> | 1 USD | 2 USD | 4 USD | 7 USD |
>
> #+tblfm: $4=vsum($1..$3)
>
> Emacs calc is able to work with arbitrary ascii symbols or even units.
> However, calc does not appear work with unicode. If Emacs calc were to
> support unicode, it would automatically work in Org.
>
> Also, you can
>
> enable latex in calc via
> (setq org-calc-default-modes
>   '(calc-internal-prec 12
> 		       calc-float-format  (float 8)
> 		       calc-angle-mode    deg
> 		       calc-prefer-frac   nil
> 		       calc-symbolic-mode nil
>                        calc-language latex ;; <--- this is new compared to default
> 		       calc-date-format (YYYY "-" MM "-" DD " " Www (" " hh ":" mm))
> 		       calc-display-working-message t))
>

But it requires the \dollar on every entry.  The convention if
financial table is to include the currency symbol only on the first
item.

> Then, the following will work
>
> | \dollar1 | \dollar2 | \dollar3 | 6 \dollar |
>
> #+tblfm: $4=vsum($1..$3)

Whatever calc is able to handle, calc is not getting the entries
interpreted as numbers, or at least not the numbers that a human would
understand.

My elisp skills are limited, but it seems that org mode could, as a
matter of course, strip commas and currency symbols from the numbers
before delivering them to calc, and, if the user wants add back the
grouping commas and currency symbol with a format specifier in the
result.

Also, it would be better if the regular expression for recognizing
numbers allowed grouping commas and currency symbols to be included by
default so that financial-type numbers get right-aligned by default.

>
> Best,
> Ihor


--
====================================================
Daniel E. Doherty
Law Offices of Daniel E. Doherty
7300 W. 110th Street, Suite 930
Overland Park, KS 66210
913.338.7182 (Phone)
913.338.7164 (FAX)
ded@ddoherty.net


  parent reply	other threads:[~2022-05-27 14:14 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-26 19:40 Allow Currency Symbols and Grouping Commas in Table Numbers Daniel E. Doherty
2022-05-27  8:22 ` Ihor Radchenko
2022-05-27 11:00   ` Eric S Fraga
2022-05-27 11:17     ` Ihor Radchenko
2022-05-27 12:02       ` Eric S Fraga
2022-05-27 13:49   ` Daniel E. Doherty [this message]
2022-05-27 14:49     ` Ihor Radchenko
2022-05-31 14:19       ` Daniel E. Doherty
2022-06-02  4:57         ` Ihor Radchenko
2022-06-03 20:37           ` Daniel E. Doherty

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87y1ynul7o.fsf@ddoherty.net \
    --to=ded@ddoherty.net \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).