From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carsten Dominik Subject: Re: Alignment of numbers in tables with `nan' in some table cells Date: Tue, 14 Aug 2007 15:09:55 +0200 Message-ID: References: Mime-Version: 1.0 (Apple Message framework v624) Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Content-Transfer-Encoding: 7bit Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1IKwAE-0001hq-AP for emacs-orgmode@gnu.org; Tue, 14 Aug 2007 09:10:26 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1IKwAD-0001hL-B4 for emacs-orgmode@gnu.org; Tue, 14 Aug 2007 09:10:25 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IKwAD-0001hF-6O for emacs-orgmode@gnu.org; Tue, 14 Aug 2007 09:10:25 -0400 Received: from korteweg.uva.nl ([146.50.98.70]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1IKwAC-0002P1-KF for emacs-orgmode@gnu.org; Tue, 14 Aug 2007 09:10:24 -0400 In-Reply-To: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: cs-usenet@arcor.de Cc: emacs-orgmode@gnu.org Hi Christian, On Aug 12, 2007, at 22:33, Christian Schlauer wrote: > > | data 1 | data 2 | data 3 | result 1 | result 2 | > |--------+--------+--------+----------+----------| > | 23 | 25 | 17 | 8 | 15 | > | | 24 | 18 | 6 | -6 | > #+TBLFM: $4=$2-$3::$5=$1-$4 > > Now, a negative value doesn't make sense in my real table. So instead > of printing a nonsensical value, I'd prefer something else there. I > remembered that MATLAB has `NaN', and Calc has that, too: `nan', see > (info "(calc)Infinities"). So I put `nan' in line 3, column 1, and > recalculate the above table: > > | data 1 | data 2 | data 3 | result 1 | result 2 | > |--------+--------+--------+----------+----------| > | 23 | 25 | 17 | 8 | 15 | > | nan | 24 | 18 | 6 | nan | > #+TBLFM: $4=$2-$3::$5=$1-$4 > > It's almost perfect! It is clear that a result for column 5 in line 3 > does not exist as there are no data in column 1 of that line. The only > thing that is not perfect is that the alignment in columns 1 and 5 is > messed up due to `nan'. > > Could this be fixed? I like that little trick with nan, it is a nice demonstration the the full symbolic capabilities of Calc are still present in Org-mode tables. The table editor automatically chooses the alignment of a column, based on the content of the column. There are two customization variables involved in tuning this behavior: ,----[ C-h v org-table-number-regexp RET ] | org-table-number-regexp is a variable defined in `org.el'. | Its value is | "^\\([<>]?[-+^.0-9]*[0-9][-+^.0-9eEdDx()%:]*\\|\\(0[xX]\\)[0-9a-fA- F]+\\)$" | | | Documentation: | Regular expression for recognizing numbers in table columns. | If a table column contains mostly numbers, it will be aligned to the | right. If not, it will be aligned to the left. | | The default value of this option is a regular expression which allows | anything which looks remotely like a number as used in scientific | context. For example, all of the following will be considered a | number: | 12 12.2 2.4e-08 2x10^12 4.034+-0.02 2.7(10) >3.5 | | Other options offered by the customize interface are more restrictive. `--- ,----[ C-h v org-table-number-fraction RET ] | org-table-number-fraction is a variable defined in `org.el'. | Its value is 0.5 | | | Documentation: | Fraction of numbers in a column required to make the column align right. | In a column all non-white fields are considered. If at least this | fraction of fields is matched by `org-table-number-fraction', | alignment to the right border applies. `--- So you can either lower the threshold value in `org-table-number-fraction', or you can modify the regular expression so that it will interpret nan as a number. I will make the default regexp swallow nan. - Carsten