2013/10/31 Nick Dokos <ndokos@gmail.com>
Cecil Westerhof <cldwesterhof@gmail.com> writes:

> I have the following table:
> |----------|
> | Duration |
> |----------|
> | 2@ 15    |
> | 2@ 30    |
> | 2@ 30    |
> | 0@ 45    |
> |----------|
> | 8@ 0' 0" |
> |----------|
> #+TBLFM: @>$1=vsum(@2..@-1)
>
> I would like the total be displayed like:
>     8@ 00'
> instead of:
>     8@ 0' 0"
>
> Is this possible?
>

You can get close by setting org-calc-default-modes as follows:

(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-date-format (YYYY "-" MM "-" DD " " Www (" " hh ":" mm))
                               calc-display-working-message t
                               calc-hms-format "%s@ %02s'"))

This is the default setting except for calc-hms-format. It does not
quite do what you want, but it's close (I expected the %02s to zero-fill
on the left, but apparently it does not for the %s format):

|----------|
| Duration |
|----------|
| 2@ 15    |
| 2@ 30    |
| 2@ 30    |
| 0@ 45    |
|----------|
| 8@  0'   |
|----------|
#+TBLFM: @>$1=vsum(@2..@-1)

I never answered. T_T I use the following now in my init:
(require 'org-table)
(setq org-calc-default-modes (cons 'calc-hms-format (cons '"%s@ %02s" org-calc-default-modes)))

The require is necessary to get org-calc-default-modes defined. The calc-hms-format is not defined, so this works, but I will write a function so also the other values can be changed.

The reason I use this, is that this does not have side effects. When the defaults change, your way would have a side effect.

The zero fill only works with a number format. That is the reason I can not get it the way I want, but I can live with that.


--
Cecil Westerhof