From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id eIntJDbDu2H9xwAAgWs5BA (envelope-from ) for ; Thu, 16 Dec 2021 23:52:38 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id KDCgIDbDu2ERVgAA1q6Kng (envelope-from ) for ; Thu, 16 Dec 2021 22:52:38 +0000 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 1E8B231D42 for ; Thu, 16 Dec 2021 23:52:38 +0100 (CET) Received: from localhost ([::1]:49846 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mxzc5-0006Nx-Bc for larch@yhetil.org; Thu, 16 Dec 2021 17:52:37 -0500 Received: from eggs.gnu.org ([209.51.188.92]:43774) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mxzbB-0006Mm-Mc for emacs-orgmode@gnu.org; Thu, 16 Dec 2021 17:51:41 -0500 Received: from [2607:f8b0:4864:20::62a] (port=40776 helo=mail-pl1-x62a.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mxzb9-0003aD-Qi for emacs-orgmode@gnu.org; Thu, 16 Dec 2021 17:51:41 -0500 Received: by mail-pl1-x62a.google.com with SMTP id v19so237370plo.7 for ; Thu, 16 Dec 2021 14:51:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=references:user-agent:from:to:subject:date:in-reply-to:message-id :mime-version; bh=DxcaLwYILN7a9zP2fAdEzwV9Uprp9wCXN4nSs70ASok=; b=AXJWVBIq6ZP/Wb2FFzifRwtg2E5SojE+aKVQ+lFeMnaizgFgr+VkJ/RZiwfJhaUvvz pG0ScRZbT72sTw32rDsAWtShYebwsyHAncmypznYG97G9JHx8g6mZQkZUBW3cQbYgTpq FIqAAhx99nhDae23dGjEt01Y1rST/U61GXSub7LVci6mskJuy4ZkUZOyhoDLXrjEtqDx y15Hd9Sj2zcwFfiLYrVazNTosNXuGNj40zNHkugWIzQJhgAZqGgbkmmHhL918nvxpGgo 48bnksFivLFqoS9pzcm1xBtEZuPIkcomoEbtFTrhryg//a4Qv5JQ9GctUmu1O3QNyVrJ sBwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:references:user-agent:from:to:subject:date :in-reply-to:message-id:mime-version; bh=DxcaLwYILN7a9zP2fAdEzwV9Uprp9wCXN4nSs70ASok=; b=3tTcYuWMe6RS0ZqIbSpzSQE2gg9UAHxoZJKg/DEJOh23LJCTSoBc3PX7dGK4KjcxDP MZ6/HtB1K0yjyU6xNLLRGfPQh0nlqPDYDHAF+2fS4QLpKueQ6WjzmZt1qa3ZmOUbGreB r3/kat5xYattQIftiMUZzvag6WojBPGt/opmwtD0xDkTBFHD9KzPJ8BGNtEiInQqTLng iYOIZovFOzB0PwFj7yHXf2W6S+XS99VWQ0j9g/UvDAn2HNao4aQUEX/qsNeunpaxpExU 8E/oQu8l1c0vdw0hlWjfpbKE9VnMLMBYDgmWlXckPrpsfbyxBvGRBAP/x5eGKHuQ2zzp v6lw== X-Gm-Message-State: AOAM532VoUhCyntquK7ZDMNVsoNwRXbt7ImcVQV3xTKY2+44AsnM0PUW LIvlx7u75mIp75YFl8d1V1+wqOuWRdk= X-Google-Smtp-Source: ABdhPJx+HpeKJujHE+h1KCyTtBOet3gBpAIFX762zTcuaIhwQ9k3XoOa7ctURog7q9PMoaFN6mumMA== X-Received: by 2002:a17:90a:2ec8:: with SMTP id h8mr8526051pjs.168.1639695097587; Thu, 16 Dec 2021 14:51:37 -0800 (PST) Received: from dingbat ([124.149.107.194]) by smtp.gmail.com with ESMTPSA id d23sm6347964pgm.37.2021.12.16.14.51.35 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Dec 2021 14:51:36 -0800 (PST) References: <874k78evcr.fsf@localhost> User-agent: mu4e 1.7.5; emacs 28.0.90 From: Tim Cross To: emacs-orgmode@gnu.org Subject: Re: format/fill of text in a cell in tables Date: Fri, 17 Dec 2021 08:51:59 +1100 In-reply-to: <874k78evcr.fsf@localhost> Message-ID: <87mtl0b1u2.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::62a (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::62a; envelope-from=theophilusx@gmail.com; helo=mail-pl1-x62a.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, 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: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" 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=1639695158; 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:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=DxcaLwYILN7a9zP2fAdEzwV9Uprp9wCXN4nSs70ASok=; b=Y1LSiAsDoTAvwMPpnr7XooHXGIW65W1UO/SYPr89F2jITjRNYq165HjE6xPlZOswOdy5bX MApkxKpLqHk7F3OKO1AV3KpwDrdNN8sKrR8JgMWFiLvxeOKoiYKN2QW+MjOZwFezVABL1d d0co1ScYIJLMXkhIMj8z7Tq4BCw+vmG5rjvgDG8rnTt2RJNFs3eyv+CkTP4S567l5I8KVC f5cq1SoasQoF/1MChKZKvKAq7hz2ILMXYFK4glJ4HnFLtqxqwkXvaooVesqmqcblSUsiGT A6WZDR8MYiFxMRgJKHCgNw23gY51Gq4CxyX4al0Mt3oWwOkA1Iy65I8MtTMGww== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1639695158; a=rsa-sha256; cv=none; b=d7uejnki0t4ze7bGSrnYPChlXiBYwnVJiSYy1/XoxfE0t74jzRdPZsoIIbTYJjYpVUz1O7 QBKZtb8DfzHstoC0xxmX/ypZw3BFtWCCcqkELVK2v5JjjrTPPgZY6K9K1eprWpbIy2nkJk S2RPdYhcSzjpzFo6oXL0hsn5aRrzPiLbdXJD92GF5B8nRZvyLXkM9jnXHARnp3r5Mala8Z sSo9xx9THf2/qF64GMnRUblatfeFxf37j5HOgaNMM3mj67RqQht44cKVcLkGoEXbSVJSEz lK5ng+jVoOp9QJv8Eb/c2ZSTMqg72AQCriz1+hF5Qhk60Rof30wFKlinfAYCGA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=AXJWVBIq; dmarc=pass (policy=none) header.from=gmail.com; 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: -7.69 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=AXJWVBIq; dmarc=pass (policy=none) header.from=gmail.com; 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: 1E8B231D42 X-Spam-Score: -7.69 X-Migadu-Scanner: scn0.migadu.com X-TUID: 2JHy35jQsx87 Ihor Radchenko writes: > George Michaelson writes: > >> Thank you for the continuing support for Org mode. I really appreciate >> the work done. >> >> I would love to understand why there is no built-in 'fill/wrap' >> function for text in a cell, inside an org mode table. >> >> Given how this is a layout mechanism, and heads to M-x ox- >> outcomes, it would be useful to recognize the output is often table >> edit states which do respect fill/wrap/center > > AFAIK, mostly technical difficulty. Emacs does not natively distinguish > individual table cells, so we would need to emulate cell editing if it > spans over multiple lines. > > Patches are welcome! > I agree. This is actually a much harder problem to solve than it may appear on the surface. There have been a number of proposals regarding how to do this over the years, but unfortunately, they have all had significant drawbacks or limitations. One of which is that formatting tables with multiple lines in LaTeX is actually a bit tricky (probably the only exporter where it is relatively straight-forward is HTML). This means you actually have two broad problems - handling cell wrapping in the org buffers and handling it cleanly in the different exporters. In addition to the problem of defining some mechanism to treat each table cell as if it was it's own 'minibuffer' (in TeX, you sometimes see the 'minipage' environment used in this context), you also have to define some mechanism to describe the relationship between the cells in order to handle things like centring and justification. screen/page width etc. To further complicate matters, you also have to consider what this would mean for org's spreadsheet like capabilities when applied to tables with cells wrapped over multiple lines. If you have lots of cells needing wrapping, the table is perhaps not the right layout mechanism to use. While it may seem like a convenient way to present content, often it isn't a great way to consume it. Donald Knuth wrote a bit about why tables with multiple cell lines were a poor choice. After years of dealing with project managers who too often use Excel to record, present and share data, I tend to agree with his views. I'm also old enough to remember when the table was the 'goto' solution for managing layout in HTML files and what a mess that became. While tables are great when you want to show 2-dimensional relationships, for other situations, alternatives like definition lists, nested lists and breaking the content up into subsections are often a good alternative. It could be argued that not supporting table wrapping is a positive aspect as it makes the author consider alternative layout approaches which may actually improve readability of the content. Finally, there is also an accessibility issue with multiple line tables. For users who rely on assistive technology to consume content, presenting information in a meaningful manner which is easy to navigate and can represent larger 'chunks' of information with appropriate indicators for the relationships between the cells is challenging. As an aside, I sometimes find it useful when thinking about how to layout information, how a typical user will consume it. We tend prefer layouts with infinite length (pages), but with set width. Scrolling up/down is convenient. Scrolling left/right is not. While larger screens means we have more width to work with when reading on the screen, this does not map well to printed pages as that 'width' has not changed - best we can do is switch to 'landscape' rather than portrait mode. The other problem with width is in variability - many people have wide screens on desktops, but narrow screens on mobile devices. We can see how quickly this becomes complex when we consider all the challenges we have had with respect to being able to render web content on different devices with varying screen sizes. Much of the complexity of CSS is related to column layout and screen sizes.