From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id GJ1AHsTBZGP83QAAbAwnHQ (envelope-from ) for ; Fri, 04 Nov 2022 08:39:48 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id kE1QHcTBZGNQEwAAG6o9tA (envelope-from ) for ; Fri, 04 Nov 2022 08:39:48 +0100 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 2B0013D7C6 for ; Fri, 4 Nov 2022 08:39:48 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oqrIf-0005Fn-0M; Fri, 04 Nov 2022 03:39:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oqrI9-0004fH-UX for emacs-orgmode@gnu.org; Fri, 04 Nov 2022 03:39:09 -0400 Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oqrHv-0004N4-9V for emacs-orgmode@gnu.org; Fri, 04 Nov 2022 03:39:04 -0400 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1oqrHi-0003G2-9U for emacs-orgmode@gnu.org; Fri, 04 Nov 2022 08:38:38 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: emacs-orgmode@gnu.org From: Max Nikulin Subject: Re: org table proposal: merge and split cells in org-tables Date: Fri, 4 Nov 2022 14:38:30 +0700 Message-ID: References: <877d0ia7vd.fsf@mat.ucm.es> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 Content-Language: en-US In-Reply-To: <877d0ia7vd.fsf@mat.ucm.es> Received-SPF: pass client-ip=116.202.254.214; envelope-from=geo-emacs-orgmode@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: 26 X-Spam_score: 2.6 X-Spam_bar: ++ X-Spam_report: (2.6 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FORGED_MUA_MOZILLA=2.309, FREEMAIL_FORGED_FROMDOMAIN=0.001, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, NICE_REPLY_A=-0.001, NML_ADSP_CUSTOM_MED=0.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Emacs-orgmode" Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1667547588; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=PRHA8AZ2LE811aqlyczGNRy0aH8MPNg7cZWP0WOyMVY=; b=Z/2isdV151sBSyDLZeOniNFDoG8SKMjGRDhhCW+qDqSXhLpaM3QbU8GQn7lxIT4GANVPcN 2Kxru/3JzIUfaKLv1DaIpfwNaeML1oQqe1xyO1nrjwf6/MPllkuMTsxXMlIGmoumLUsdBb JVGveRqKdOx+mTYH8F+9GElirA6oOwprMAk5qrSO5w/OJoYbzzEspLzbgBMZkHiTlDq+53 P7xXYA8IV+ZgxdLAW61BMb5NqVx1fXm0sI5+I7Cw1+X/aOaJWMJwWHBEC1iAUL+uN5EmOz wsSRq9rOtWkqU5yOv3FYCRbQn81/HFEBhpkECyBXBs9HLc6M7ShwWDqXSiWsng== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1667547588; a=rsa-sha256; cv=none; b=nEnb3n1c50tesE+SWTKoi0Q26q88QCjisWLImfpoMx1K/nqpHQxVwDgNviF7Z+MzhWRkAS E3mVHrUwvDAUdGoZcQY8E9TN5lqCg8sBcA6llrgFcfeiPmDuGmsGaU3ZZCES3wzZDiUTSC z+/RhPc5ZmQCMK1Squ429A4f5Dt2myg3Yd+Q/+u19Xdb9J2bwjIB3Up0GDjrfgPEezd33f AOfKFxXvLt/5UCyE9ueWt+E+mDmdZYX7YlNQLKrxR3xmRN5v4gnfg/jtqudpoV9sXy0WIF V6jahN2bYmyllkqHcUY+vfpa5jU5O1H21YFOLvVxumlN2fKo+1W4eEqS3b0a3A== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: 2.70 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 2B0013D7C6 X-Spam-Score: 2.70 X-Migadu-Scanner: scn1.migadu.com X-TUID: tyM8wsN1bcMM I believe that tables in Org are already too complicated due to the spreadsheet feature. However those who are brave enough to add cells spanning columns and rows may take some inspiration from reStructuredText, in particular horizontal lines marked by "+===+===+" https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#tables > Grid tables are described with a visual grid made up of the characters "-", "=", "|", and "+". The hyphen ("-") is used for horizontal lines (row separators). The equals sign ("=") may be used to separate optional header rows from the table body (not supported by the Emacs table mode). The vertical bar ("|") is used for vertical lines (column separators). The plus sign ("+") is used for intersections of horizontal and vertical lines. Example: > > +------------------------+------------+----------+----------+ > | Header row, column 1 | Header 2 | Header 3 | Header 4 | > | (header rows optional) | | | | > +========================+============+==========+==========+ > | body row 1, column 1 | column 2 | column 3 | column 4 | > +------------------------+------------+----------+----------+ > | body row 2 | Cells may span columns. | > +------------------------+------------+---------------------+ > | body row 3 | Cells may | - Table cells | > +------------------------+ span rows. | - contain | > | body row 4 | | - body elements. | > +------------------------+------------+---------------------+ RST tables have a feature making hard to implement autoalignment. If come cell have "|" with offset in respect to lines above and below then it is a regular character. Besides "grid" tables there are "simple" tables without vertical lines. Perhaps it better to implement new table features as src blocks for some new language and a dedicated Emacs mode. In the case of success such proof of concept may be merged into Org core. My impression is that Org tables quickly become hardly maintainable when their complexity is above some quite low threshold. E.g. automatic recalculation works only for first #+tblfm: line. It requires some efforts to figure out association of particular formula with cell spans. Merge cells add more complexity to formula ranges. Some protocol should be defined to allow source blocks to generate extended cells.