emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Nathan Trapuzzano <nbtrap@nbtrap.com>
To: Bastien <bzg@altern.org>
Cc: emacs-orgmode@gnu.org
Subject: Re: Bug: Table export to [tc]sv doesn't convert \vert [7.8.11]
Date: Wed, 02 Jan 2013 16:50:21 -0500	[thread overview]
Message-ID: <878v8bm7vg.fsf@nbtrap.com> (raw)
In-Reply-To: <87obhao9fa.fsf@bzg.ath.cx> (Bastien's message of "Mon, 31 Dec 2012 10:30:49 +0100")

Bastien <bzg@altern.org> writes:

> Hi Nathan,
>
> Nathan Trapuzzano <nbtrap@nbtrap.com> writes:
>
>> Of course the particular implementation will have to be seen before it
>> can be accepted, but I'd like to get the spec accepted (provisionally)
>> before setting to work on it.
>
> As a start, you can look at the way org-e-*.el backend export tables,
> (use `org-e-ascii-table-cell' as an entry point).  What we need is a
> callback function to convert entities in cells, in org-export.el.
>
> Since we already have org-entities, I would use it together with
> `org-entity-get-representation' to convert entities from the \vert{}
> representation to the "|" character (in the ASCII backend.)
>
>> Here's what I propose:
>>
>> 1. Do away with \vert{} entirely, leaving just \vert as an escape
>> sequence standing for |, no matter where it appears. \vert{}
>> unnecesarily complicates things, in my opinion.
>
> Better to rely on org-entities and the way entities are treated so far.

I only recently started using org-mode, let alone looking at the
source. I'll see what you mean if I get the time.

>> 2. The escape sequence must itself be escapable, wherefore I propose
>> to give the backslash special meaning in front of the string
>> "vert". Specifically:
>>
>>   a. An even number of consecutive backslashes followed by "vert"
>>   stands for that number of backslashes divided by two followed by
>>   "vert".
>>
>>   b. An odd number of consecutive backslashes followed by "vert"
>>   stands for that many backslashes integer-divided by two, followed by
>>   "|".
>>
>> For example, "\vert" exports to "|", "\\vert" to "\vert", "\\\vert" to
>> "\|", "\\\\vert" to "\\vert", and so on. Obviously, upon importing,
>> the reverse of the above will be carried out.
>
> I would not take that route -- from experience, escaping espace
> sequences can drive you mad, and all this is not intuitive for users.

The problem with not escaping escape sequences is that there always ends
up being some string of characters that cannot be represented. As for
driving one mad, I think that "\\\\+vert" is much simpler to understand
than "\\(\\b\\\\vert\\b\\|\\\\vert{}\\)", especially if the latter only
applies when the row in which the sequence falls is not escaped as you
describe below.

> I would simply convert entities by default and use a special table 
> cookie in lines where you do not want the conversion to happen.
>
> For example:
>
> | Header 1 | Header 2 |
> |----------+----------|
> | \vert{}  | ABC      |
>
> => convert to "|" 
>
> But:
>
> |   | Header 1 | Header 2 |
> |---+----------+----------|
> | \ | \vert{}  | ABC      |
>
> Don't convert.  The "\" char is free and a good choice here.

This would apply the escape to the entire row. I supposed it's better
than the way things are now, but it's still not a very good solution in
my mind.

  reply	other threads:[~2013-01-03  0:24 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-26  4:32 Bug: Table export to [tc]sv doesn't convert \vert [7.8.11] Nathan Trapuzzano
2012-12-28 17:26 ` Bastien
2012-12-30  1:25   ` Nathan Trapuzzano
2012-12-30  9:00     ` Bastien
2012-12-31  4:01       ` Nathan Trapuzzano
2012-12-31  9:30         ` Bastien
2013-01-02 21:50           ` Nathan Trapuzzano [this message]
2013-01-03  8:57             ` Bastien

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=878v8bm7vg.fsf@nbtrap.com \
    --to=nbtrap@nbtrap.com \
    --cc=bzg@altern.org \
    --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).