emacs-orgmode
[Top][All Lists]
Advanced

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

Re: Tables: missing multi-col/row syntax


From: TEC
Subject: Re: Tables: missing multi-col/row syntax
Date: Tue, 03 Nov 2020 03:46:54 +0800
User-agent: mu4e 1.4.13; emacs 27.1


Tom Gillespie <tgbugs@gmail.com> writes:

Any support for something like this would need to retain backward compatibility as well to avoid older versions reformatting the tables due to e.g. the presence of a double pipe. I also think that extending the table syntax in ways that makes it more complex than it already
is, will be a non-starter.

I am also concerned with avoiding disrupting previous table. I think that non-space double+ pipes should be alright (hence their part in my suggestion) as it still maintains that the number of columns is equal to
the number of pipes. E.g. currently
|| a    | b | = 3 columns, and is reformatted to |  | a | b |
proposal
|| a    | b | = 2 cells, 2+1=3 columns (same)

Thus, an alternate but more likely approach
would be to allow specification of what cells to merge outside the table as is done for formulas. It is not elegant, but it would be a layer on top of existing syntax, and it would allow the fundamental
structure of the table to remain the same -- rows of cells. For
example #+TBLCELLMERGE: @2-3$1 or something like that. Thoughts?
Tom

I like how this seems to address the issue while keeping backwards
compatibility, but I have two big concerns:
1. I think this could make it hard to see which cells are 'masked' by a
merge at a glance, and would make associated errors easy
2. I think that for say a table with 2-3 large sub-sections this could
lead to problematic formating.

Regarding 2, E.g. (content and form made up on the spot)

| Powerpoint | Voltage ripple while drawing 2A continuous load over Xs | | | | | Current ripple while drawing 24V continuous load over Xs | | | | | | | | 1s | 5s | 10s | 20s | 30s | 1s | 2s | 5s | 10s | 20 | 30s |
|------------+---------------------------------------------------------+----+-----+-----+-----+----------------------------------------------------------+----+----+-----+----+-----|
| Kitchen | 3% | 2% | 3% | 1% | 2% | 1% | 4% | 3% | 5% | 3% | 2% | | Bedroom | 1% | 2% | 1% | 2% | 1% | 2% | 1% | 1% | 1% | 2% | 1% |
#+TBLCELLMERGE: @2-6$1,@7-11$1

vs.

| Powerpoint ||||| Voltage ripple while drawing 2A continuous load over Xs |||||| Current ripple while drawing 24V continuous load over Xs | | | 1s | 5s | 10s | 20s | 30s | 1s | 2s | 5s | 10s | 20 | 30s |
|------------+----+----+-----+-----+---------------------------------------+----+----+----+-----+----+-------------------------------------|
| Kitchen | 3% | 2% | 3% | 1% | 2% | 1% | 4% | 3% | 5% | 3% | 2% | | Bedroom | 1% | 2% | 1% | 2% | 1% | 2% | 1% | 1% | 1% | 2% | 1% |

(NB: clearer without line wrapping, more concise examples definitely
available if I thought about it a tad more)

On Mon, Nov 2, 2020 at 1:37 PM TEC <tecosaur@gmail.com> wrote:

Hi all,

This is a pretty major 'feature request', but I think also an
important
one.

When developing large tables, it can often be /necessary/ to start
using
multi-column/row cells for clarity, and sensible exporting
results.

As far as I am aware, in Org does not currently have any
multi-col/row
syntax. The only viable method seems to be re-implementing the
table
using export blocks in every backend you may want to export to (in
my
case, usually TeX + HTML). This is clumsy, difficult to work with,
and
could be avoided should org gain support for multi-col/row syntax.

I appreciate that this would constitute a major change both the
Org's
syntax and the codebase, but I believe such a change is warranted
by the
advantages it would provide.

Both how this can be implemented while minimising/eliminating the
chance
of breaking well-formed current table elements, and what syntax
may be
both acceptable and seem sensible to use.

I would anticipate such a feature working by designating two
characters
to indicate "add row" and "add column". For example "|" and "-".
These
characters would take affect when /immediately following/ (no
space) a
cell separator ("|"), and designate the dimensions of the top
right cell.

Example:
| a | b | c |
|---+---+---|
| a | - | | |
| - | b | . |
| . | | | c |

Would be interpreted just as any current table is.

However,

| hello | there | you  |
|-------+-------+------|
|| two column   | cell |

Contains a 2x1 cell.

| a little | test |
|----------+------|
|- hello   | hi   |
| two row  | you  |

Contains a 1x2 cell. In a more complex example:

| a | b | c |
|---+---+---|
||-- hi | a |
| two x | . |
| three | b |
| c | - | . |

Contains a 2x3 cell.

This is just the first syntax that comes to mind, but hopefully
the
general form of this idea seems viable.

All the best,

Timothy.





reply via email to

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